diff --git a/src/generated/resources/assets/ctnhcore/lang/en_ud.json b/src/generated/resources/assets/ctnhcore/lang/en_ud.json index bbaf0d6e8..cc7ff042b 100644 --- a/src/generated/resources/assets/ctnhcore/lang/en_ud.json +++ b/src/generated/resources/assets/ctnhcore/lang/en_ud.json @@ -1,8 +1,8 @@ { - "apatite_vein_tf": "ɟ⟘ uıǝΛ ǝʇıʇɐdⱯ", - "arsenic_vein_ad": "pⱯ uıǝΛ ɔıuǝsɹⱯ", + "apatite_vein_tf": "uıǝΛ ǝʇıʇɐdⱯ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "arsenic_vein_ad": "uıǝΛ ɔıuǝsɹⱯ ɐɹʇsⱯ pⱯ", "bauxite_vein": "uıǝΛ ǝʇıxnɐᗺ", - "beryllium_vein_ad": "pⱯ uıǝΛ ɯnıןןʎɹǝᗺ", + "beryllium_vein_ad": "uıǝΛ ɯnıןןʎɹǝᗺ ɐɹʇsⱯ pⱯ", "bio_machine.ctnhcore.biomachine.growing_efficiency": "%d%%:ʎɔuǝıɔıɟɟƎ ɥʇʍoɹ⅁", "bio_machine.ctnhcore.biomachine.growing_temperature": "ɹ§Ɔ°%dᄅ§:ǝɹnʇɐɹǝdɯǝ⟘ ɥʇʍoɹ⅁", "block.ctnhcore.abyssalalloy_coil_block": "ʞɔoןᗺ ןıoƆ ʎoןןɐןɐssʎqⱯ", @@ -266,24 +266,42 @@ "block.ctnhcore.zpm_naquadah_reactor": "ɹ§III ɹoʇɔɐǝᴚ ɥɐpɐnbɐN ǝʇıןƎɔ§", "block.ctnhcore.zpm_neutron_accelerator": "ɹoʇɐɹǝןǝɔɔⱯ uoɹʇnǝN WԀZɔ§", "block.ctnhcore.zpm_personal_computer": "ɹ§III ɹǝʇndɯoƆ ןɐuosɹǝԀ ǝʇıןƎɔ§", - "calorite_vein_ad": "pⱯ uıǝΛ ǝʇıɹoןɐƆ", - "cassiterite_vein_ad": "pⱯ uıǝΛ ǝʇıɹǝʇıssɐƆ", - "cassiterite_vein_tf": "ɟ⟘ uıǝΛ ǝʇıɹǝʇıssɐƆ", - "chromium_vein_ad": "pⱯ uıǝΛ ɯnıɯoɹɥƆ", - "coal_vein_tf": "ɟ⟘ uıǝΛ ןɐoƆ", + "calorite_vein_ad": "uıǝΛ ǝʇıɹoןɐƆ ɐɹʇsⱯ pⱯ", + "cassiterite_vein_ad": "uıǝΛ ǝʇıɹǝʇıssɐƆ ɐɹʇsⱯ pⱯ", + "cassiterite_vein_tf": "uıǝΛ ǝʇıɹǝʇıssɐƆ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "chromium_vein_ad": "uıǝΛ ɯnıɯoɹɥƆ ɐɹʇsⱯ pⱯ", + "coal_vein_tf": "uıǝΛ ןɐoƆ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "config.ctnhcore.option.centrifugeRpmRequirement": "WԀᴚ ɯnɯıuıɯ ǝbnɟıɹʇuǝƆ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.centrifugeSpeedMultiplier": "ɹǝıןdıʇןnɯ pǝǝds ǝbnɟıɹʇuǝƆ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.centrifugeStressRequirement": "uoıʇdɯnsuoɔ ssǝɹʇs ǝbnɟıɹʇuǝƆ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.enableFTBUltimineOnGTOres": "buıuıɯ uıǝʌ ǝɹo ⟘⅁ ǝןqɐuƎ", + "config.ctnhcore.option.extractorRpmRequirement": "WԀᴚ ɯnɯıuıɯ ɹoʇɔɐɹʇxƎ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.extractorSpeedMultiplier": "ɹǝıןdıʇןnɯ pǝǝds ɹoʇɔɐɹʇxƎ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.extractorStressRequirement": "uoıʇdɯnsuoɔ ssǝɹʇs ɹoʇɔɐɹʇxƎ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.ftbPlugin": "suoıʇdO ᗺ⟘Ⅎ", + "config.ctnhcore.option.kinetic": "suoıʇdO ɔıʇǝuıʞ", + "config.ctnhcore.option.laserRpmRequirement": "WԀᴚ ɯnɯıuıɯ ɹǝsɐꞀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.laserSpeedMultiplier": "ɹǝıןdıʇןnɯ pǝǝds ɹǝsɐꞀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.laserStressRequirement": "uoıʇdɯnsuoɔ ssǝɹʇs ɹǝsɐꞀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.latheRpmRequirement": "WԀᴚ ɯnɯıuıɯ ǝɥʇɐꞀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.latheSpeedMultiplier": "ɹǝıןdıʇןnɯ pǝǝds ǝɥʇɐꞀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.latheStressRequirement": "uoıʇdɯnsuoɔ ssǝɹʇs ǝɥʇɐꞀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.mixerRpmRequirement": "WԀᴚ ɯnɯıuıɯ ɹǝxıW ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.mixerSpeedMultiplier": "ɹǝıןdıʇןnɯ pǝǝds ɹǝxıW ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.mixerStressRequirement": "uoıʇdɯnsuoɔ ssǝɹʇs ɹǝxıW ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.pressorRpmRequirement": "WԀᴚ ɯnɯıuıɯ ɹossǝɹԀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.pressorSpeedMultiplier": "ɹǝıןdıʇןnɯ pǝǝds ɹossǝɹԀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.pressorStressRequirement": "uoıʇdɯnsuoɔ ssǝɹʇs ɹossǝɹԀ ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.sifterRpmRequirement": "WԀᴚ ɯnɯıuıɯ ɹǝʇɟıS ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.sifterSpeedMultiplier": "ɹǝıןdıʇןnɯ pǝǝds ɹǝʇɟıS ןɐɔıuɐɥɔǝW", + "config.ctnhcore.option.sifterStressRequirement": "uoıʇdɯnsuoɔ ssǝɹʇs ɹǝʇɟıS ןɐɔıuɐɥɔǝW", "config.jade.plugin_ctnhcore.recipe_logic_provider": "oɟuI ɔıboꞀ ǝdıɔǝᴚ", "config.jade.plugin_ctnhcore.recipe_output_provider": "oɟuI ʇndʇnO ǝdıɔǝᴚ", "config.jade.plugin_ctnhcore.thread_status_provider": "oɟuI pɐǝɹɥ⟘", - "copper_vein_ad": "pⱯ uıǝΛ ɹǝddoƆ", - "ctnh.advanced_ram_chip.tooltip": "ʎɹoɯǝW ssǝɔɔⱯ ɯopuɐᴚ pǝɔuɐʌpⱯ", - "ctnh.advanced_ram_wafer.tooltip": "ɹǝɟɐM WⱯᴚ pǝɔuɐɥuƎ", - "ctnh.bauxite_process_catalyst": "ʇı uɹɐǝן oʇ ǝbɐןןıΛ ǝɥʇ ɟo oɹǝH ɐ sɐ ɟןǝsɹnoʎ ǝʌoɹd - ǝnbıuɥɔǝʇ ʇuǝıɔuɐ sıɥʇ pɹɐnb suɐıɹɐɹqıן ǝbɐןןıΛ", - "ctnh.blood_magic_gregtech_hv": "sǝʇıɹoǝʇǝɯ uoɯɯns oʇ ןɐnʇıᴚ uoɔɐǝᗺ ɹɐʇS buıןןɐℲ ǝɥʇ uı buıɹǝɟɟo uɐ sɐ ɯǝʇı sıɥʇ ǝs∩", - "ctnh.common_tooltip.parallel_hatch": "sןǝןןɐɹɐd ɟo ɹǝqɯnu ǝɥʇ ǝsɐǝɹɔuı sןǝʌǝן ǝbɐʇןoΛ", - "ctnh.common_tooltip.perfect_overclock": "!ʞɔoןɔɹǝʌO ʇɔǝɟɹǝԀ", - "ctnh.common_tooltip.steel_machine.0": "ʍoןǝq puɐ sǝɥɔʇɐɥ ʎbɹǝuǝ ǝpɐɹb-ΛH ǝsn ʎןuo uɐƆ", + "copper_vein_ad": "uıǝΛ ɹǝddoƆ ɐɹʇsⱯ pⱯ", "ctnh.common_tooltip.steel_machine.1": "ᄅƐ :ɯsıןǝןןɐɹɐd ɯnɯıxɐW", - "ctnh.common_tooltip.subtick_overclock": "˙ʎןןɐɔıʇɐɯoʇnɐ pǝɯɹoɟɹǝd ǝq ןןıʍ suoıʇɐןnɔןɐɔ ןǝןןɐɹɐd 'ʞɔıʇ Ɩ uɐɥʇ ssǝן sı ǝɯıʇunɹ ǝdıɔǝɹ uǝɥM", + "ctnh.compiler.id": "%s :ᗡI uoıbǝɹ pǝubıssⱯ", + "ctnh.compiler.noid": "¡ʇsoɥ ǝɥʇ oʇ pǝʇɔǝuuoɔ ʇou sı ɹǝqɯɐɥɔ sıɥ⟘ɔ§", "ctnh.computer.a1": "˙ɹ§ʎǝqo ㄣ§ןןıʍ ʎǝɥʇ ʇnq 'puɐʇsɹǝpun ʇou ʎɐɯ sbuıǝq ɹǝɥʇO ˙ǝbɹoɟ oʇ ظ§ɹ§ǝɔıɟıɹɔɐs ㄣ§ǝɹınbǝɹ sʞɹoʍ ʇɐǝɹb ןןⱯɔ§", "ctnh.computer.a2": "ǝuıɥɔɐW buıuıɟǝᴚ ǝsdɐuʎSɔ§ :ǝdʎʇ ǝuıɥɔɐW", "ctnh.computer.a3": "˙ǝɹɐʍʇǝʍ oʇuı ɯǝɥʇ buıʇɹǝʌuoɔ uǝʌǝ 'ɹǝʍod buıssǝɔoɹd ǝʌıssɐɯ buıuıɐb 'uoıʇɐʇndɯoɔ ɹoɟ ɹ§ǝɹɐʍʇǝʍㄣ§ sɐ sbuıǝq ʇuǝbıןןǝʇuı ɹǝɥʇo sǝs∩", @@ -291,44 +309,20 @@ "ctnh.computer.a5": "˙ʇɟǝן ǝq ןןıʍ ɹ§sdoɹp ou ㄣ§'suıɐɹq ɹıǝɥʇ oʇ ɹ§ǝbɐɯɐp ʇuǝuɐɯɹǝdㄣ§ ɹ§ǝןqɐʇıʌǝuIㄣ§ ˙sbuıǝq ʇuǝbıןןǝʇuı ןןɐ ɟo suıɐɹq ǝɥʇ pɐoןɹǝʌo ןןıʍ ǝuıɥɔɐɯ sıɥ⟘", "ctnh.computer.a6": "˙ɹ§sbuıǝq ǝןqɐdɐɔ-ǝɟıן ǝɹoɯ puɐ 'ɹǝʇnɔ 'ɹǝʇɹɐɯs ɔ§pǝǝu ǝM ˙ʍoן ooʇ ǝɹɐ ʇɔǝןןǝʇuı puɐ ǝɟıן ɹıǝɥʇ 'suɐɯnɥ ʍǝu ɹ§ǝɔuǝbıןןǝʇuı-ʍoןㄥ§ ǝɹɐ oɥʍ 'sɹǝbɐןןıʌ ǝʞıן sbuıǝq ɹoℲ", "ctnh.computer.a7": "˙ㄣ§sǝɔıɟıɹɔɐs ʎɹɐssǝɔǝu ןןɐ ǝʞɐɯ ㄣ§ʇsnɯ ǝʍ 'ǝbpǝןʍouʞ ssǝןpuǝ ɹoℲ", - "ctnh.doubt": "ǝɔuǝssƎ ǝɟıꞀ oʇuı ʇqnop ɹıǝɥʇ buısnɟuı puɐ ǝɔuǝssƎ ǝɟıꞀ uı pǝʞɐos sǝɹnʇɐǝɹɔ buıןןıʞ ʎq ʇı uıɐʇqO", - "ctnh.machine.naquadah_reactor.tooltip": "%s%% :ʎɔuǝıɔıɟɟƎ", - "ctnh.machine.rocket_engine.tooltip": "%s%% :ʎɔuǝıɔıɟɟƎ", - "ctnh.me_advanced_terminal.tooltip.1": "ʞɹoʍʇǝu ƎW ǝɥʇ ɯoɹɟ sɯǝʇı buısn sǝɹnʇɔnɹʇs ʞɔoןqıʇןnɯ pןınq uɐƆ", - "ctnh.me_advanced_terminal.tooltip.2": "ʇuıoԀ ssǝɔɔⱯ ssǝןǝɹıM ƎW ɐıʌ ʞɹoʍʇǝu ǝɥʇ oʇ sʇɔǝuuoƆ", - "ctnh.me_advanced_terminal.tooltip.3": "ʎɹoʇuǝʌuı s,ɹǝʎɐןd ǝɥʇ ɯoɹɟ sɯǝʇı sǝzıʇıɹoıɹԀ", - "ctnh.metallurgical_catalyst": "ɯǝɥʇ ɥʇıʍ buıɹǝʇɹɐq ʎɹʇ - ǝbpǝןʍouʞ sıɥʇ ssǝssod suıןbıԀ ɹǝɥʇǝN", - "ctnh.multiblock.advanced_coke_oven.tooltip.0": "ǝɔɐuɹnℲ ʇsɐןᗺ pǝɔuɐʌpⱯ", - "ctnh.multiblock.advanced_coke_oven.tooltip.1": "ɯsıןǝןןɐɹɐd ᄅƐ ɥʇıʍ sǝɯoƆן§9§", - "ctnh.multiblock.advanced_coke_oven.tooltip.2": "spuoɔǝs ϛƖ ʇɐ pǝxıɟ sı ǝɯıʇ ǝdıɔǝɹ puɐ 'sǝdıɔǝɹ ǝɔɐuɹnɟ ʇsɐןq unɹ ʎןuo uɐƆ", - "ctnh.multiblock.advanced_coke_oven.tooltip.3": "ןıo ɔıןouǝɥd puɐ sʇɔnpoɹd ǝʞoɔ ɟo ʇunoɯɐ ǝbɹɐן ɐ sǝɔnpoɹԀ", - "ctnh.multiblock.advanced_coke_oven.tooltip.4": "sןןǝɔ ǝɔɐuɹnɟ ʇsɐןq ǝsn ʇouuɐƆן§ɔ§", - "ctnh.multiblock.arcgenerator.info.0": "%d :ʎʇısuǝʇuI ɔɹⱯ xɐW", - "ctnh.multiblock.arcgenerator.info.1": "%d :ʎʇısuǝʇuI ɔɹⱯ ʇuǝɹɹnƆ", - "ctnh.multiblock.arcgenerator.info.2": "%%ɟᄅ˙% :ʎɔuǝıɔıɟɟƎ pǝʇɹoddnS xɐW", - "ctnh.multiblock.arcgenerator.info.3": "%%ɟᄅ˙% :ʎɔuǝıɔıɟɟƎ ʇuǝɹɹnƆ", - "ctnh.multiblock.astronomical.info.invalid": "ʇɥbıu ʇɐ pǝsn ǝq ʎןuo uɐƆ", - "ctnh.multiblock.astronomical.tooltip.0": "ʇןnɔıɟɟıp sı ɯǝɥʇ buıʎɟǝp ʇnq 'ʎsɐǝ sı suǝʌɐǝɥ ǝɥʇ buıʍouʞ", - "ctnh.multiblock.astronomical.tooltip.1": "buıʞɹoʍ ǝןıɥʍ snq dıɥɔ ǝɥʇ uı sdıɥɔ ǝɥʇ ɹoɟ ɐʇɐp ʇɔǝןןoɔ ʎןןɐɔıʇɐɯoʇnɐ ןןıʍ ʇnq 'ʇɥbıןuns ʇɔǝɹıp ɹǝpun ʞɹoʍ ʇouuɐƆ", - "ctnh.multiblock.bio_reactor.tooltip.0": "ʞuɐʇ bıq Ɐ", - "ctnh.multiblock.blaze_blast_furnace.info.pyrotheum": "ᗺɯ %d :ɯnǝɥʇoɹʎԀ buızɐןᗺ", - "ctnh.multiblock.blaze_blast_furnace.tooltip.0": "˙ǝɔɐuɹnɟ ʇsɐןq ɔıɹʇɔǝןǝ uɐ uɐɥʇ ɹǝʇsɐℲ", - "ctnh.multiblock.blaze_blast_furnace.tooltip.1": "˙sǝןqnop uoıʇdɯnsuoɔ ǝɥʇ 'ɹ§ΛH9§ ǝʌoqɐ ɹǝıʇ ǝbɐʇןoʌ ɥɔɐǝ ɹoℲ ˙puoɔǝs ɹǝd ɯnǝɥʇoɹʎԀ buızɐןᗺ ɟo ɹ§ᗺɯ0Ɩɐ§ sı uoıʇdɯnsuoɔ ǝsɐᗺ", - "ctnh.multiblock.blaze_blast_furnace.tooltip.2": "˙ʎbɹǝuǝ xϛㄥ˙0 sǝɯnsuoƆ", - "ctnh.multiblock.blaze_blast_furnace.tooltip.3": "˙ʎןsnoǝuɐʇןnɯıs sǝdıɔǝɹ 8 ɟo buıssǝɔoɹd sʍoןןⱯ", - "ctnh.multiblock.coke_tower.tooltip.0": "¡ǝuıן uoıʇɔnpoɹd ןɐɔıɯǝɥɔoɹʇǝd ɹnoʎ ןǝnɟ oʇ ʎʇıɔɐdɐɔ buıʞoɔ ǝןqɐpıɯɹoɟ sʇsɐoᗺ", - "ctnh.multiblock.coke_tower.tooltip.1": "sǝɔɐuɹnɟ ןɐıɹʇsnpuı buıןɐʌıɹ spǝǝds buıɹǝʇsıןq sɹǝʌıןǝᗡ", - "ctnh.multiblock.crystallizer.tooltip.0": "uoıʇɐzıןןɐʇsʎɹƆ ןɐuoıssǝɟoɹԀ", - "ctnh.multiblock.crystallizer.tooltip.1": "˙ʎןʇuǝıɔıɟɟǝ ǝɹoɯ sǝdıɔǝɹ ןɐʇsʎɹɔ sǝʇǝןdɯoɔ ɹǝzıןןɐʇsʎɹɔ ǝɥ⟘", - "ctnh.multiblock.crystallizer.tooltip.2": "˙sǝsɐǝɹɔuı ןǝʌǝן ןıoɔ ǝɥʇ sɐ sǝʌoɹdɯı ʎɔuǝıɔıɟɟƎ", - "ctnh.multiblock.crystallizer.tooltip.3": "˙sǝdıɔǝɹ ǝʌɐןɔoʇnɐ ǝɯos puɐ sǝdıɔǝɹ uoıʇısodǝp ɹodɐʌ ןɐɔıɯǝɥɔ ssǝɔoɹd uɐƆ", - "ctnh.multiblock.crystallizer.tooltip.4": "˙sןɐıɹǝʇɐɯ buıʌɐs ɹoɟ ʇuɐʇsıssɐ ʇsǝq ǝɥ⟘", - "ctnh.multiblock.cultivation_room.tooltip.1": "uoıʇɐɹǝɟıןoɹd ןɐbunɟ 'uoıʇɐqnɔuı ןɐıqoɹɔıW", - "ctnh.multiblock.cultivation_room.tooltip.2": "ɐıɹǝʇɔɐq puɐ ıbunɟ uıɐʇqo-oʇ-pɹɐɥ ǝʇɐʌıʇןnɔ oʇ ǝuıɥɔɐɯ sıɥʇ ǝzıןıʇ∩", - "ctnh.multiblock.decay_pools.tooltip.0": "ʎɐɔǝᗡ", - "ctnh.multiblock.decay_pools.tooltip.1": "˙pǝןqɐsıp sı uoıʇɐɹǝןǝɔɔɐ pןɹoʍ puɐ pǝɹǝʍodun sı ǝuıɥɔɐɯ ǝɥʇ '0 oʇ ʇǝs sı pɹɐoq ʇınɔɹıɔ ǝɥʇ uǝɥM", - "ctnh.multiblock.decay_pools.tooltip.2": "˙pǝןqɐuǝ sı uoıʇɐɹǝןǝɔɔɐ pןɹoʍ puɐ pǝɹǝʍod sı ǝuıɥɔɐɯ ǝɥʇ 'Ɩ oʇ ʇǝs sı pɹɐoq ʇınɔɹıɔ ǝɥʇ uǝɥM", - "ctnh.multiblock.decay_pools.tooltip.3": "˙ssǝɔoɹd ʎɐɔǝp ǝɥʇ sǝʇɐɹǝןǝɔɔⱯ", + "ctnh.dwof.tooltip": "ʇsoɯ ʇɐ ]pǝɔuɐʌpⱯ[ oʇ dn ʇı buısıɐɹ 'uoıʇɐɹǝdo buıɹnp ןǝpoɯ ǝɥʇ ɹoɟ ɐʇɐp sǝʇɐןnɯnɔɔⱯ", + "ctnh.eternal_engine.1": "ʞɔıʇ/∩Ǝ %d :ʇndʇno ɹǝʍod ʇuǝɹɹnƆ", + "ctnh.eternal_engine.2": "s 0009Ɛ/s ɟᄅ˙% :ǝɯıʇ buıʇɐɹǝdo ןɐʇo⟘", + "ctnh.item.dyson_tier1": "ɯɹɐʍS ǝuoɹᗡ ɔıɐʇןoʌoʇoɥԀ pǝʇɐɹbǝʇuI", + "ctnh.item.dyson_tier2": "ʎʞs ǝɥʇ ʇno sʞɔoןq ɯɹɐʍs ɹnOㄣ§", + "ctnh.item.runes.horizen_rune": "ǝǝS uɐƆ ǝʎƎ ǝɥʇ sɐ ɹɐℲ sⱯ", + "ctnh.item.runes.proliferation_rune": "ʇɔuıʇsuI ןɐɔıboןoıᗺ puɐ ǝɔuɐuıℲ", + "ctnh.item.runes.quasar_rune": "uoıʇɐǝɹƆ puɐ uoıʇɔnɹʇsǝᗡ ɟo uoıʇɐuɹǝʇןⱯ ǝɥ⟘", + "ctnh.item.runes.starlight_rune": "ɐɹʇsⱯ pⱯ ɐɹǝdsⱯ ɹǝԀ", + "ctnh.item.runes.twist_rune": "ʎʇıuɐɯnH puɐ pǝǝdS ɟo uoıʇɹoʇsıᗡ ǝɥ⟘", + "ctnh.magic.generator": "ɥʇɹɐƎ puɐ uǝʌɐǝH ɟo ǝɔuǝssƎ pǝuıɟǝᴚ", + "ctnh.magic.generator.1": "sǝןqnop uoıʇdɯnsuoɔ 'ɹ§ΛꞀㄥ§ ǝʌoqɐ ɹǝıʇ ǝbɐʇןoʌ ɥɔɐǝ ɹoℲ ˙ǝsɐq ʇɐ puoɔǝs ɹǝd ɐuɐW pınbıꞀ ɟo ᗺɯ ᄅƖ sǝɯnsuoɔ puɐ suoıʇɐɹǝdo ןǝןןɐɹɐd 8 sɐH", + "ctnh.me_advanced_terminal.tooltip.3": "ʇuıoԀ ssǝɔɔⱯ ssǝןǝɹıM ƎW uɐ ɐıʌ ʞɹoʍʇǝu ǝɥʇ oʇ sʇɔǝuuoƆ", + "ctnh.multiblock.arcreactor.tooltip": "ɹoʇɐɹǝuǝ⅁ ɔɹⱯ", "ctnh.multiblock.demon_generator.info.1": "%s :ǝɔuǝɹǝɟɟıᗡ uoıʇɐɹʇuǝɔuoƆ", "ctnh.multiblock.demon_generator.info.boosted": "ǝʌıʇɔⱯ ʇsooᗺ ǝɔuǝssƎ ǝɟıꞀq§", "ctnh.multiblock.demon_generator.info.corrosive": "ǝʌısoɹɹoƆ :ʇsooᗺ uoıʇɐzıןɐıɔǝdS", @@ -336,202 +330,125 @@ "ctnh.multiblock.demon_generator.info.destructive": "ǝʌıʇɔnɹʇsǝᗡ :ʇsooᗺ uoıʇɐzıןɐıɔǝdS", "ctnh.multiblock.demon_generator.info.steadfast": "ʇsɐɟpɐǝʇS :ʇsooᗺ uoıʇɐzıןɐıɔǝdS", "ctnh.multiblock.demon_generator.info.vengeful": "ןnɟǝbuǝΛ :ʇsooᗺ uoıʇɐzıןɐıɔǝdS", - "ctnh.multiblock.desalting_factory.tooltip.0": "¿ʇı ʇ,usı 'ʎןpuǝıɹɟ-oɔǝ—ɹǝʇɐʍɐǝs ɟo ʇno ʇןɐs buıʎɹᗡ", - "ctnh.multiblock.digestion_tank.tooltip.0": "˙˙˙sןɐıɹǝʇɐɯ ǝןqɐnןɐʌ ʎɹǝʌ sǝɔnpoɹd ʇı 'ʎןןɐnʇɔⱯ", - "ctnh.multiblock.digestion_tank.tooltip.1": ":ʞuɐ⟘ uoıʇsǝbıᗡ ǝɥʇ ɟo ɯsıuɐɥɔǝW buıʇsodɯoƆ", - "ctnh.multiblock.digestion_tank.tooltip.2": "˙pɹıɥʇ-ǝuo oʇ uʍop 'ʎɔuǝıɔıɟɟǝ ǝɥʇ ɹǝʍoן ǝɥʇ 'sǝʇɐıʌǝp ʇı ɹǝɥʇɹnɟ ǝɥ⟘ ˙ǝɹnʇɐɹǝdɯǝʇ ןɐɯıʇdo ʇɐ ʎɔuǝıɔıɟɟǝ xᄅ˙Ɩ ʇǝb sǝdıɔǝᴚ ˙sǝǝɹbǝp ɹ§8Ɛᄅ§ puɐ ɹ§9Ɛᄅ§ uǝǝʍʇǝq sı ǝɹnʇɐɹǝdɯǝʇ ɥʇʍoɹb ןɐɯıʇdo ǝɥ⟘", - "ctnh.multiblock.fermenting_tank.tooltip.0": "¡ʇı uo ǝʎǝ uɐ dǝǝʞ sʎɐʍןⱯ ˙ɥʇʍoɹb ןɐıqoɹɔıɯ ɹoɟ ʎןןɐɔıɟıɔǝds pǝubısǝp ʞuɐʇ Ɐ", - "ctnh.multiblock.fermenting_tank.tooltip.1": ":ʞuɐ⟘ buıʇuǝɯɹǝℲ ǝɥʇ ɟo ɯsıuɐɥɔǝW ɥʇʍoɹ⅁ ןɐɔıboןoıᗺ", - "ctnh.multiblock.fermenting_tank.tooltip.2": "˙pɹıɥʇ-ǝuo oʇ uʍop 'ʎɔuǝıɔıɟɟǝ ǝɥʇ ɹǝʍoן ǝɥʇ 'sǝʇɐıʌǝp ʇı ɹǝɥʇɹnɟ ǝɥ⟘ ˙ǝɹnʇɐɹǝdɯǝʇ ןɐɯıʇdo ʇɐ ʎɔuǝıɔıɟɟǝ xᄅ˙Ɩ ʇǝb sǝdıɔǝᴚ ˙sǝǝɹbǝp ɹ§8Ɛᄅ§ puɐ ɹ§9Ɛᄅ§ uǝǝʍʇǝq sı ǝɹnʇɐɹǝdɯǝʇ ɥʇʍoɹb ןɐɯıʇdo ǝɥ⟘", - "ctnh.multiblock.fermenting_tank.tooltip.3": "˙%0ᄅ ɟo ɯnɯıuıɯ ɐ ɥʇıʍ 'ʎʇdɯǝ ɹo ןןnɟ sı ʞuɐʇ ǝɥʇ uǝɥʍ ʇsǝʍoן sı ʎɔuǝıɔıɟɟƎ ˙ɹ§sǝןqnop ʎɔuǝıɔıɟɟǝ ɥʇʍoɹbᄅ§ 'ʎʇıɔɐdɐɔ sʇı ɟo ɟןɐɥ sı ʞuɐʇ ʇnduı ǝɥʇ uı ǝɯnןoʌ pınbıן ǝɥʇ uǝɥM ˙uoıʇɐnbǝ ɔıʇsıboן ǝɥʇ sʍoןןoɟ ɥʇʍoɹb ןɐıqoɹɔıW", - "ctnh.multiblock.forest_machine.info.humidity": "%d :ןǝʌǝן ʎʇıpıɯnH", - "ctnh.multiblock.forest_machine.info.parallel_count": "%d :ʇunoɔ ןǝןןɐɹɐԀ", - "ctnh.multiblock.forest_sea.tooltip.1": "ɐıuuǝןןıɯ ɹoɟ ǝpɐɥs ǝʇɐǝɹɔ 'puɐɥ ʎq sǝǝɹʇ ʇuɐןԀ", - "ctnh.multiblock.forest_sea.tooltip.2": "ɹǝqɯnן ɟo sǝıʇıʇuɐnb ǝbɹɐן ǝɔnpoɹd oʇ ɹǝʇɐʍ ʎןuo sǝɯnsuoɔ ʇɐɥʇ ǝuıɥɔɐɯ ǝʌıssɐɯ ɐ sı ɐǝS ʇsǝɹoℲ ǝɥ⟘", - "ctnh.multiblock.forest_sea.tooltip.3": "spuoɔǝs ϛ ʎɹǝʌǝ ʞɔǝɥɔ ǝbɐɹoʇs ɹǝʇɐʍ sɯɹoɟɹǝԀ", - "ctnh.multiblock.forest_sea.tooltip.4": "%Ɩ ʎq ʎʇıpıɯnɥ sǝsɐǝɹɔuı 'ʇuǝıɔıɟɟns sı ɹǝʇɐʍ uǝɥM", - "ctnh.multiblock.forest_sea.tooltip.5": "%0Ɩ ʎq ʎʇıpıɯnɥ sǝsɐǝɹɔǝp 'ʇuǝıɔıɟɟnsuı sı ɹǝʇɐʍ uǝɥM", - "ctnh.multiblock.forest_sea.tooltip.6": "ɹǝıʇ ǝbɐʇןoʌ puɐ ʎʇıpıɯnɥ ɥʇıʍ sǝsɐǝɹɔuı ǝnןɐʌ ןǝןןɐɹɐd ʇnq 'ʇuɐʇsuoɔ suıɐɯǝɹ ǝɯıʇ buıssǝɔoɹd ǝdıɔǝᴚ", - "ctnh.multiblock.forest_sea.tooltip.7": "¡sǝsnoɥuǝǝɹb uɐɥʇ ɹǝʇʇǝᗺ", - "ctnh.multiblock.greenhouse.tooltip.0": "ɯooᴚ uI ʇuɐןԀ", - "ctnh.multiblock.hyper_plasma_turbine.tooltip0": "ʎbɹǝuƎ ɐɯsɐןԀ ǝ§ puɐ ɟ§ uoıʇɐʇndɯoƆ ǝsıɔǝɹԀ ɐ§ ɟoɟ§ ʎSⱯ⟘NⱯℲ ꞀⱯNIℲϛ§", - "ctnh.multiblock.hyper_plasma_turbine.tooltip1": "˙SƎꞀᗺ∩Oᗡ uoıʇɔnpoɹԀ ʇndʇnO ǝɥʇ 'pǝpıʌoɹd uoıʇɐʇndɯoɔ %d ʎɹǝʌǝ ɹoℲ ˙uoıʇɔnpoɹԀ ǝsɐᗺ ǝɥʇ ɥɔɐǝɹ oʇ uoıʇɐʇndɯoɔ %d ǝpıʌoɹԀ", + "ctnh.multiblock.demon_will_generator.tooltip.0": "ɹǝʍoԀ ɔıuoɯǝᗡ buıssǝuɹɐH", + "ctnh.multiblock.demon_will_generator.tooltip.01": "sǝɥɔʇɐɥ ɹǝʇɹǝʌuoɔ ɟo ɹǝqɯnu ǝɥʇ uo ʇıɯıן ou sı ǝɹǝɥʇ ؛sǝɥɔʇɐɥ ɹǝʇɹǝʌuoɔ ǝbɐʇןoʌ sʍoןןⱯ", + "ctnh.multiblock.demon_will_generator.tooltip.1": "˙ʎןɹɐǝuıן sǝʇnqıɹʇuoɔ ssǝɔxǝ ǝɥʇ '00ϛ ǝʌoqɐ ؛00ϛ oʇ dn ʎןןɐıʇuǝuodxǝ ʇndʇno ɹǝʍod sǝsɐǝɹɔuı ǝɔuǝɹǝɟɟıp ǝɥ⟘ ˙ǝuıɥɔɐɯ ǝɥʇ ɟo sǝpıs ɥʇoq uo sʞunɥɔ ǝɥʇ uǝǝʍʇǝq uoıʇɐɹʇuǝɔuoɔ ןןıM ɔıuoɯǝᗡ uı ǝɔuǝɹǝɟɟıp ǝɥʇ ɯoɹɟ ɹǝʍod sǝʇɐɹǝuǝ⅁", + "ctnh.multiblock.demon_will_generator.tooltip.2": "˙ǝuıɥɔɐɯ ǝɥʇ ɟo sǝpıs ɥʇoq uo sʞɔoןq ʎoןןⱯ ɔıuoɯǝᗡ ǝɥʇ ʇɐ uoıʇɐɹʇuǝɔuoɔ ןןıM ǝɥʇ ǝsn suoıʇɐןnɔןɐƆ", + "ctnh.multiblock.demon_will_generator.tooltip.3": "˙ʎɔuǝıɔıɟɟǝ uoıʇɐɹǝuǝb sʇɔǝɟɟɐ sʞunɥɔ ɥʇoq uı sןןıM ɔıuoɯǝᗡ ɟo ʎʇısɹǝʌıp ǝɥ⟘", + "ctnh.multiblock.demon_will_generator.tooltip.4": "˙ǝɹoɔ ǝuo ǝɯnsuoɔ oʇ puoɔǝs ɹǝd ǝɔuɐɥɔ %ϛ ɐ sɐɥ ǝpoɯ sıɥʇ ؛ןןıM ɟo ǝdʎʇ ɐ uı ǝuıɥɔɐɯ ǝɥʇ ǝzıןɐıɔǝds oʇ pǝʇɹǝsuı ǝq uɐɔ sǝɹoƆ ןןıM", + "ctnh.multiblock.demon_will_generator.tooltip.5": "==============================\nɹ§)ǝʌıʇɐɔıןdıʇןnɯ( ǝɔuǝɹǝɟɟıp uoıʇɐɹʇuǝɔuoɔ ןןıM ɔıuoɯǝᗡ ǝɥʇ oʇ %ᄅ sppɐ ǝunɹ ɥɔɐƎ ---- sǝunᴚ ʎʇıɔɐdɐɔɹǝʌOɔ§\nɹ§ǝɔuǝɹǝɟɟıp uoıʇɐɹʇuǝɔuoɔ ןןıM ɔıuoɯǝᗡ ǝɥʇ oʇ ᄅ sppɐ ǝunɹ ɥɔɐƎ ---- sǝunᴚ ʎʇıɔɐdɐƆǝ§\nɹ§)uoıʇdɯnsuoɔ ןןıM ɔıuoɯǝᗡ buıɔnpǝɹ( uoıʇɐɹǝdo ǝdıɔǝɹ ǝuo ɟo uoıʇɐɹnp ǝɥʇ ǝsɐǝɹɔuI ---- sǝunᴚ pǝǝdSƐ§\nɹ§ǝpoW pǝıɟıʇɹoℲ ǝɔuǝssƎ ǝɟıꞀ ɟo ɹǝıןdıʇןnɯ ɹǝʍod ǝɥʇ ǝsɐǝɹɔuI ---- sǝunᴚ ǝɔıɟıɹɔɐS-ɟןǝS puɐ ǝɔıɟıɹɔɐSㄣ§\n:sǝsnuoq ʇuǝɹǝɟɟıp ɹoɟ pǝɔɐןdǝɹ ǝq uɐɔ ǝuıɥɔɐɯ ǝɥʇ ǝpısuı sʞɔoןq ǝunɹ ǝɥ⟘", + "ctnh.multiblock.demon_will_generator.tooltip.6": "puoɔǝs ɹǝd ǝɔuǝssƎ ǝɟıꞀ ɟo ɹ§ᗺɯ 00Ɩɐ§ buıɯnsuoɔ ǝןıɥʍ ʇndʇno ɹǝʍod buıןqnop 'ǝpoW ǝɔıɟıɹɔɐS pooןᗺ ǝʇɐʌıʇɔɐ oʇ ɹ§ǝɔuǝssƎ ǝɟıꞀㄣ§ ʇɹǝsuI", + "ctnh.multiblock.hybrid_mixer.tooltip.0": "ǝɔuɐssıɐuǝᴚ ɔıɹʇɔǝןƎ-ɔıʇǝuıʞ", + "ctnh.multiblock.hybrid_mixer.tooltip.1": "ɯsıuɐɥɔǝɯ ǝʌıɹp ssǝɹʇs-ǝbɐʇןoʌ ןɐıɔǝds ɐ sǝs∩", + "ctnh.multiblock.hybrid_mixer.tooltip.2": "Ɩ ʎq sǝsɐǝɹɔuı ɹǝıʇ ssǝɹʇs ǝɥʇ 'WԀᴚ 9ϛᄅ ʇɐ ؛WԀᴚ ㄣ9 ʇsɐǝן ʇɐ ǝɹınbǝɹ sǝɥɔʇɐɥ ʇnduı ssǝɹʇS ˙ɹǝıʇ ssǝɹʇs puɐ ɹǝıʇ ǝbɐʇןoʌ ǝdıɔǝɹ ǝɥʇ ɟo ɹǝʍoן ǝɥʇ sı ɹǝıʇ ǝbɐʇןoʌ ןɐnʇɔɐ s,ǝuıɥɔɐɯ ǝɥ⟘", + "ctnh.multiblock.hybrid_mixer.tooltip.3": "ㄣ× pǝǝds buıssǝɔoɹd 'ǝuo ʎq ǝsɐǝɹɔuı ɹǝıʇ ǝbɐʇןoʌ ǝdıɔǝɹ puɐ ɹǝıʇ ssǝɹʇs ɥʇoq ǝɯıʇ ɥɔɐǝ :buıʞɔoןɔɹǝʌo pıɹqʎH", + "ctnh.multiblock.hybrid_mixer.tooltip.4": "sǝsɐǝɹɔuı WԀᴚ sɐ ɹǝɥʇɹnɟ ǝsɐǝɹɔǝp pǝǝds ǝbɐʇןoʌ puɐ ǝɯıʇ ǝdıɔǝɹ 'WԀᴚ 8ᄅƖ ǝʌoqⱯ ˙8˙0× ǝɯıʇ ǝdıɔǝɹ 'WԀᴚ ㄣ9 ǝʌoqⱯ", "ctnh.multiblock.industrial_altar.info.current_lp": "%d :ʇunoɯɐ ԀꞀ ʇuǝɹɹnƆ", "ctnh.multiblock.industrial_altar.info.max_lp": "%d :ʇunoɯɐ ԀꞀ xɐW", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.0": "buıʞɐɯןǝǝʇs ɹoɟ ɹǝdןǝɥ ʇsǝq ɹnoʎ 'ǝɔɐuɹnɟ ʇsɐןq ǝʌıʇıɯıɹd ןnɟɹǝʍod ǝɹoɯ Ɐ", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.1": "pǝddoʇs sı ssǝɔoɹd ǝɥʇ ǝɔuo ʎןpıdɐɹ uʍop ןooɔ ןןıʍ puɐ 'ǝdıɔǝɹ ɐ buıuunɹ ǝןıɥʍ dn ʇɐǝɥ ʎןsnonuıʇuoɔ ןןıʍ ǝɔɐuɹnɟ ʇsɐןq ǝʌıʇıɯıɹd ןɐıɹʇsnpuı ǝɥ⟘", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.2": "ɯsıןǝןןɐɹɐd 8 ɟo ɯnɯıxɐɯ ɐ oʇ dn 'ǝɔɐuɹnɟ ʇsɐןq ǝʌıʇıɯıɹd ןɐıɹʇsnpuı ǝɥʇ ɟo ɯsıןǝןןɐɹɐd ǝɥʇ ɹǝɥbıɥ ǝɥʇ 'ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ɹǝɥbıɥ ǝɥ⟘", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.3": "ʎɔuǝıɔıɟɟǝ ǝןqnop ɟo ɯnɯıxɐɯ ɐ oʇ dn 'ǝɔɐuɹnɟ ʇsɐןq ǝʌıʇıɯıɹd ןɐıɹʇsnpuı ǝɥʇ ɟo ʎɔuǝıɔıɟɟǝ ǝɥʇ ɹǝɥbıɥ ǝɥʇ 'ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ɹǝɥbıɥ ǝɥ⟘", - "ctnh.multiblock.ion_exchanger.tooltip.0": "ǝbuɐɥɔxƎ uoI", - "ctnh.multiblock.large_bottle.tooltip.0": "˙ɹǝuıɐʇuoɔ ǝbɹɐן ɐ ʎןnɹʇ sı sıɥ⟘", - "ctnh.multiblock.large_bottle.tooltip.1": "˙pınbıן ɟo sʇǝʞɔnq 000'0Ɩ oʇ dn ǝɹoʇs uɐƆ", - "ctnh.multiblock.large_bottle.tooltip.2": "˙ɹ§s/qɯ00Ɩǝ§ ɟo ǝʇɐɹ ɐ ʇɐ pǝɯnsuoɔ ǝq ןןıʍ pınbıן sʇı 'ʞuɐʇ buıʇuǝɯɹǝɟ ǝbɹɐן ɐ ɥʇıʍ pǝsn uǝɥM", - "ctnh.multiblock.large_fermenting_tank.tooltip.0": "uoıʇɐʇuǝɯɹǝℲ ןɐıɹʇsnpuI ʇuǝıɔıɟɟƎ", - "ctnh.multiblock.large_fermenting_tank.tooltip.1": "˙)%00ᄅ( ɯnıpǝW ǝןıɹǝʇS ')%0ϛƖ( ɯnıpǝW ɔısɐᗺ ')%0ϛ( ɹǝʇɐM :sǝsɐǝɹɔuı ʎɔuǝıɔıɟɟǝ ɯnɯıuıɯ ǝɥʇ 'ǝdʎʇ pınbıן ɔıɟıɔǝds ɐ ɥʇıʍ ǝןʇʇoq uoıʇɐʇuǝɯɹǝɟ ǝbɹɐן ɐ buıɥɔɐʇʇɐ ʎᗺ ˙sǝɹnʇɔnɹʇs ʎɹɐıןıxnɐ ʇɔǝuuoɔ uɐƆ", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.0": "ɹǝqɯɐɥƆ uoıʇɔǝןןoƆ sɐ⅁ ןɐuoısuǝɯıᗡ", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.1": "uoısuǝɯıp ʎuɐ ɯoɹɟ sǝsɐb ʇɔǝןןoɔ uɐɔ ǝuıɥɔɐɯ sıɥ⟘", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.2": "sʇɔnpoɹd ǝɥʇ ʇɔǝןןoɔ oʇ ʎןqɯǝssⱯ ʇndʇnO ƎW uɐ ǝsn oʇ pǝpuǝɯɯoɔǝɹ sı ʇı 'ǝbɹɐן sı ʇndʇno sʇı ǝɔuıS", "ctnh.multiblock.large_miner_zpm.tooltip.0": "¿sןɐɹǝuıɯ ɟo ǝɔɹnos ǝɥʇ ʇnoqɐ pǝıɹɹoʍ ǝɹ,noʎ pɹɐǝH", - "ctnh.multiblock.large_steel_alloy_furnace.tooltip.0": "ǝɔɐuɹnℲ ʎoןןⱯ ןǝǝʇS", - "ctnh.multiblock.large_steel_furnace.tooltip.0": "ǝɔɐuɹnℲ ןǝǝʇS", + "ctnh.multiblock.lasersorter.recipe.cwut": "%d :uoıʇɐʇndɯoɔ ǝsɐq pǝɹınbǝᴚ", + "ctnh.multiblock.magic_fuel_generator.tip": "ɥʇɹɐƎ puɐ uǝʌɐǝH ɟo ǝɔuǝssƎ pǝuıɟǝᴚ", + "ctnh.multiblock.mana_reactor.tooltip.0": "uoıʇɐpunoℲ ɐuɐW ןɐıɹʇsnpuI", + "ctnh.multiblock.mana_reactor.tooltip.1": "sǝɥɔʇɐɥ ןoɹʇuoɔ ןǝןןɐɹɐd sʍoןןⱯ", "ctnh.multiblock.mana_turbine.info.consumption_rate": "%d:ǝʇɐᴚ uoıʇdɯnsuoƆ", "ctnh.multiblock.mana_turbine.info.efficiency": "%d%%:ʎɔuǝıɔıɟɟƎ buıʇɐɹǝuǝ⅁", - "ctnh.multiblock.martial_morality_eye.tooltip.0": "ǝʎƎ ןɐıpɹoɯıɹԀ ǝɥʇ ɟo uoısɹǝʌ ɹooԀ", - "ctnh.multiblock.martial_morality_eye.tooltip.1": "sǝbɐʇs ʎןɹɐǝ ǝɥʇ uı sǝuoʇs ʍɐɹ ㄣ9 puɐ ɯɐǝʇs ɟo qɯ000ㄣ9 sǝɯnsuoƆ", - "ctnh.multiblock.martial_morality_eye.tooltip.2": "uooW ǝɥʇ puɐ 'ʇsǝɹoℲ ʇɥbıןıʍ⟘ 'pןɹoʍɹǝʌO ǝɥʇ ɯoɹɟ sǝɹo sǝɔnpoɹԀ", - "ctnh.multiblock.martial_morality_eye.tooltip.3": "sǝsɐǝɹɔuı ןǝʌǝן ǝbɐʇןoʌ ǝɥʇ sɐ sǝdıɔǝɹ ǝɹoɯ sʞɔoןu∩", - "ctnh.multiblock.martial_morality_eye.tooltip.4": "sǝbɐʇs ʎןɹɐǝ ǝɥʇ uı sɹɐʇs buıןןɐɟ uɐɥʇ ןnɟǝsn ǝɹoW", - "ctnh.multiblock.martial_morality_eye.tooltip.5": "¡ʎɐʍɐ ʎɐʇS ˙ɹǝbuɐp ɟo ɐɹnɐ uɐ ɥʇıʍ pǝןןıɟ 'ǝɔɹoɟ snoıɹǝʇsʎɯ ɐ ǝʇɐuɐɯǝ oʇ sɯǝǝs ǝɹnʇɔnɹʇs ǝɥʇ ɟo ɹǝʇuǝɔ ǝɥ⟘", - "ctnh.multiblock.martial_morality_eye.tooltip.6": "ʎboןouɥɔǝ⟘ ǝɔɐdS ʇsıʍ⟘ :ǝɔɹnos ǝɹnʇɔnɹʇS", - "ctnh.multiblock.meadow.tooltip.0": "ǝɹnʇsɐԀ pǝʇɐɯoʇnⱯ", - "ctnh.multiblock.meadow.tooltip.1": "˙ssǝɹʇs pǝɹınbǝɹ ǝɥʇ ×u ɥʇıʍ pǝpıʌoɹd uǝɥʍ buıssǝɔoɹd ןǝןןɐɹɐd u suıɐ⅁", - "ctnh.multiblock.meadow.tooltip.2": "˙ǝɯıʇ ǝɯɐs ǝɥʇ ʇɐ sןɐɯıuɐ ʇuǝɹǝɟɟıp ɟo buıpǝǝɹq sʍoןןⱯ", - "ctnh.multiblock.meadow.tooltip.3": "¡buıɯɹɐɟ ʇou ǝɹɐ noʎ ʇɐɥʇ ʍouʞ noʎ uɐɔ ʎɐʍɐ unɹ sןɐɯıuɐ ǝɥʇ uǝɥʍ ʎןuO", "ctnh.multiblock.mega_lcr.info.coil": "%s :ǝɹnʇɐɹǝdɯǝ⟘ ןıoƆ ʇuǝɹɹnƆ", "ctnh.multiblock.mega_lcr.info.speed": "%s :ɹǝıןdıʇןnW ǝɯı⟘ ǝdıɔǝᴚ ʇuǝɹɹnƆ", - "ctnh.multiblock.nano_generator.tooltip.0": "ʇɐǝɥ uoıʇɔıɹɟ ɟo ɹǝʍod ǝɥʇ ǝzıןıʇ∩", - "ctnh.multiblock.nano_generator.tooltip.1": "ㄣᄅ0Ɩ :ʇunoɔ ןǝןןɐɹɐd ɯnɯıxɐW", - "ctnh.multiblock.nano_generator.tooltip.2": ")ʇunoɔ ןǝןןɐɹɐd(ʇɹbs * ǝɯıʇ ǝdıɔǝɹ sı ǝɯıʇ uoıʇɐɹǝdo ןɐnʇɔⱯ\n%ᄅ˙0 ʎq sǝsɐǝɹɔuı uoıʇɐɹǝuǝb ɹǝʍod ןןɐɹǝʌo ǝɥʇ 'ʇunoɔ ןǝןןɐɹɐd ɥɔɐǝ ɹoℲ", - "ctnh.multiblock.nano_generator.tooltip.3": "ʇunoɔ ןǝןןɐɹɐd 9ㄥϛ8ㄣ0Ɩ ɹǝd ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ ϛ :ʇǝǝɥs ǝןozɐpıɯızuǝqʎןoԀ\nʇunoɔ ןǝןןɐɹɐd ϛƐϛϛ9 ɹǝd ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ ᄅ˙Ɛ :ʇǝǝɥs ɹǝqqnɹ ǝuǝıpɐʇnq-ǝuǝɹʎʇS\nʇunoɔ ןǝןןɐɹɐd 960ㄣ ɹǝd ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ 0˙ᄅ :ʇǝǝɥs ɹǝqqnɹ ǝuoɔıןıS\nʇunoɔ ןǝןןɐɹɐd ㄣᄅ0Ɩ ɹǝd ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ ᄅ˙Ɩ :ʇǝǝɥs ǝuǝןʎɥʇǝʎןoԀ\nʇunoɔ ןǝןןɐɹɐd ᄅƖϛ ɹǝd ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ 8˙0 :ʇǝǝɥs ɹǝqqnᴚ\nɹǝıןdıʇןnɯ ㄣ˙0 :ןɐıɹǝʇɐɯ oN\nuoıʇdɯnsuoɔ ɟo ǝɔuɐɥɔ ɐ sɐɥ osןɐ ʇnq 'ɹǝıןdıʇןnɯ ǝɥʇ ǝɔuɐɥuǝ uɐɔ ǝuıɥɔɐɯ ǝɥʇ oʇuı sןɐıɹǝʇɐɯ ɔıɟıɔǝds buıʇɹǝsuI", - "ctnh.multiblock.naq_reactor.info.nickel_consumption": "%d :uoıʇdɯnsuoɔ ɐɯsɐןd ןǝʞɔıN", - "ctnh.multiblock.naq_reactor.info.parallel_count": "%d :ʇunoɔ ןǝןןɐɹɐd uoıʇɐɹǝuǝb ɹǝʍoԀ", - "ctnh.multiblock.naq_reactor.info.temperature": "%d :ǝɹnʇɐɹǝdɯǝʇ ǝɹoƆɔ§", - "ctnh.multiblock.naq_reactor_mk3.tooltip.1": "sǝןqɯǝɹʇ ɥʇɹɐǝ ǝɥʇ 'ʎbɹǝuǝ ʇsɐΛ", - "ctnh.multiblock.naq_reactor_mk3.tooltip.2": "ɐɯsɐןd ןǝʞɔıu ʇnoɥʇıʍ ןǝnɟ ǝɯnsuoɔ ʎןןnɟ ʇouuɐɔ - ןǝnɟ pǝbɹɐɥɔɹǝdns buısn ɹǝʍod sǝʇɐɹǝuǝ⅁", - "ctnh.multiblock.naq_reactor_mk3.tooltip.3": "uoıʇɐɹnbıɟuoɔ ǝuıɥɔɐɯ ǝɥʇ uı ʇuǝsǝɹd ǝq ʇsnɯ ǝɹoɔ ɹǝʍod Ɐ", - "ctnh.multiblock.naq_reactor_mk3.tooltip.4": "sǝʌoɹdɯı ʎɔuǝıɔıɟɟǝ uoıʇɐɹǝuǝb ɹǝʍod 'sǝsɐǝɹɔuı ǝɹnʇɐɹǝdɯǝʇ ǝɹoɔ ǝɥʇ sⱯ", - "ctnh.multiblock.photovoltaic_power_station.info.1": "%s%% :ʎɔuǝıɔıɟɟƎ", - "ctnh.multiblock.photovoltaic_power_station.info.2": "ʇ/∩Ǝ %s/%s :buıʇɐɹǝuǝ⅁", - "ctnh.multiblock.photovoltaic_power_station.info.invalid": "pǝʍopɐɥS", - "ctnh.multiblock.photovoltaic_power_station.info.night": "ʇɥbıu ʇⱯ", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.0": "uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɹɐןoS ɔısɐᗺ", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.1": "ʇ/∩Ǝ ᄅƖϛ ɹ§:ʇndʇnO ǝsɐᗺǝ§", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.2": "pןɹoʍɹǝʌO ǝɥʇ uı uoou sʇɔǝןɟǝɹ ʇndʇno ǝsɐᗺ ˙suoısuǝɯıp ssoɹɔɐ sǝıɹɐʌ ʎɔuǝıɔıɟɟƎ ˙ǝɯıʇʎɐp buıɹnp ʎןuo sǝʇɐɹǝdO", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.0": "uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɹɐןoS pǝɔuɐʌpⱯ", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.1": "ʇ/∩Ǝ 8ㄣ0ᄅ ɹ§:ʇndʇnO ǝsɐᗺǝ§", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.2": "pןɹoʍɹǝʌO ǝɥʇ uı uoou sʇɔǝןɟǝɹ ʇndʇno ǝsɐᗺ ˙suoısuǝɯıp ssoɹɔɐ sǝıɹɐʌ ʎɔuǝıɔıɟɟƎ ˙ǝɯıʇʎɐp buıɹnp ʎןuo sǝʇɐɹǝdO", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.0": "uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɹɐןoS ǝʇɐɯıʇן∩", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.1": "ʇ/∩Ǝ ᄅ6Ɩ8 ɹ§:ʇndʇnO ǝsɐᗺǝ§", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.2": "pןɹoʍɹǝʌO ǝɥʇ uı uoou sʇɔǝןɟǝɹ ʇndʇno ǝsɐᗺ ˙suoısuǝɯıp ssoɹɔɐ sǝıɹɐʌ ʎɔuǝıɔıɟɟƎ ˙ǝɯıʇʎɐp buıɹnp ʎןuo sǝʇɐɹǝdO", - "ctnh.multiblock.plasma_condenser.tooltip.1": "ʍǝp puɐ ʇsoɹɟ oʇuı sǝsuǝpuoɔ ɹıɐ ǝsuǝp ǝɥ⟘", - "ctnh.multiblock.sinope_chemical.info.level": "%d :ǝʇɐᴚ buıʇɐɹǝןǝɔɔⱯ ןıoƆ", - "ctnh.multiblock.sinope_chemical.info.parallel": "%d :ʇunoƆ ןǝןןɐɹɐԀ", - "ctnh.multiblock.sinope_chemical.tooltip.0": "˙ɹǝʍod ןɐıɹʇsnpuı s,ɹ§ʎɹʇunoɔ uɹǝʇsɐǝ snoıɹǝʇsʎɯ uıɐʇɹǝɔ Ɐq§ ɯoɹℲ", - "ctnh.multiblock.sinope_chemical.tooltip.1": "˙ןɐǝɹ sı ןǝןןɐɹɐd 'sǝǝʎoןdɯǝ ʎɐɹb ǝʌıǝɔǝp ʇ’uop sǝǝʎoןdɯǝ ʎɐɹ⅁", - "ctnh.multiblock.sinope_chemical.tooltip.2": "˙sʇsʎןɐʇɐɔ pǝǝu ʇ,uop sǝdıɔǝɹ 'sʇuǝɯǝɹınbǝɹ ןǝʌǝן ןןǝɥs oN", - "ctnh.multiblock.sinope_chemical.tooltip.3": "˙ʞɔoןq ןɐɹʇuǝɔ ǝɥʇ oʇ pǝʇɐןǝɹ sı ʇunoɔ ןǝןןɐɹɐԀ", - "ctnh.multiblock.sinope_chemical.tooltip.4": "ןǝןןɐɹɐd 8 :ʞɔoןq ʞɔoɹ uoɔıןıS", - "ctnh.multiblock.sinope_chemical.tooltip.5": "ןǝןןɐɹɐd ᄅƐ :ʞɔoןq ʞɔoɹ uoɔıןıs pǝɥɔıɹuƎ", - "ctnh.multiblock.sinope_chemical.tooltip.6": "ןǝןןɐɹɐd 8ᄅƖ :ʞɔoןq ʞɔoɹ uoɔıןıs ɹǝdnS", - "ctnh.multiblock.sinope_chemical.tooltip.7": ")pǝıןdıʇןnɯ ʎןʇuǝpuǝdǝpuı( %ϛᄅ ɟo uoıʇɔnpǝɹ ɯnɯıxɐɯ ɐ oʇ dn '%ϛ˙0 ʎq ǝɯıʇ uoıʇɐɹǝdo puɐ uoıʇdɯnsuoɔ ʎbɹǝuǝ sǝɔnpǝɹ ןǝןןɐɹɐd ןɐnʇɔɐ ɟo ʇuıod ɥɔɐƎ", - "ctnh.multiblock.sinope_chemical.tooltip.8": "%0ϛ+ ʎq pǝǝds uoıʇɐɹǝdo ǝɥʇ sǝsɐǝɹɔuı ʞ008Ɩ buıpıʌoɹd ןıoɔ ɥɔɐƎ", - "ctnh.multiblock.sinope_chemical.tooltip.9": "ɹ§¡pǝɥsıund ǝq ןןıʍ ןǝןןɐɹɐd ǝsןɐɟ ʎuⱯɔ§", - "ctnh.multiblock.sintering_kiln.tooltip.0": "sןɐıɹǝʇɐɯ buıʇɔɐdɯoɔ ɹoɟ suoʇsıd ןɐuɹǝʇuı ǝʇɐʌıʇɔɐ oʇ ssǝɹʇS ᄅ6Ɩ'8 sǝɹınbǝᴚ", - "ctnh.multiblock.slaughter_house.info.mobcount": ")%s( %d :sǝdʎ⟘ qoW", - "ctnh.multiblock.slaughter_house.tooltip.0": "ǝuıɥɔɐɯ buıןןıʞ ssǝןıɔɹǝɯ Ɐ", - "ctnh.multiblock.slaughter_house.tooltip.1": "pǝʇɹǝsuı ǝq uɐɔ sɹǝuʍɐds pǝɹǝʍod ǝןdıʇןnW ˙sdoɹp qoɯ buıpuodsǝɹɹoɔ ʇndʇno ʎןןɐɔıʇɐɯoʇnɐ ןןıʍ ǝuıɥɔɐɯ ǝɥʇ 'snq ʇnduı ǝɥʇ uı pǝɔɐןd ǝɹɐ sɹǝuʍɐds pǝɹǝʍod uǝɥM", - "ctnh.multiblock.slaughter_house.tooltip.2": ")ㄣ sǝpıʌoɹd ΛH( ʇunoɔ uʍɐds ןɐnʇɹıʌ oʇ ㄣ+ sppɐ ǝsɐǝɹɔuı ɹǝıʇ ǝbɐʇןoʌ ɥɔɐƎ", - "ctnh.multiblock.slaughter_house.tooltip.3": "ǝɯıʇ buıssǝɔoɹd ǝsɐǝɹɔuı ןןıʍ sǝnןɐʌ ɹoɯɹɐ puɐ ɥʇןɐǝɥ qoɯ ɹǝɥbıH", - "ctnh.multiblock.slaughter_house.tooltip.4": "ǝɯıʇ buıssǝɔoɹd ǝɔnpǝɹ ןןıʍ sʇuǝɯʇuɐɥɔuǝ puɐ ǝbɐɯɐp uodɐǝM", - "ctnh.multiblock.slaughter_house.tooltip.5": "ʇɔǝɟɟǝ ǝʞɐʇ osןɐ sʇuǝɯʇuɐɥɔuǝ ɹǝɥʇo puɐ ǝunʇɹoℲ", - "ctnh.multiblock.super_ebf.tooltip.0": "¡ɹǝʇsɐɟ %0ϛ ǝɹɐ sǝdıɔǝɹ ןןⱯ", - "ctnh.multiblock.sweat_shop.info.basic_rate": "%sx :ʎʇıʌıʇɔnpoɹԀ ǝsɐᗺ", - "ctnh.multiblock.sweat_shop.info.villager_count": "%s :ʇunoƆ ǝǝʎoןdɯƎ", - "ctnh.multiblock.sweat_shop.tooltip.0": "ǝnןɐΛ snןdɹnS puɐ uoıʇɔnpoɹԀ ɟo suɐǝW", - "ctnh.multiblock.sweat_shop.tooltip.1": ")sɹǝbɐןןıʌ ɟo ɹǝqɯnu / ᄅ( x ǝɯıʇ ǝdıɔǝᴚ ˙ʎɔuǝıɔıɟɟǝ sǝuıɯɹǝʇǝp ʎɹoʇɔɐɟ ǝɥʇ uı sɹǝbɐןןıʌ ɟo ɹǝqɯnu ǝɥ⟘", - "ctnh.multiblock.sweat_shop.tooltip.2": "˙Ɩ ʎq sǝsɐǝɹɔuı ʇıɯıן ǝɥʇ 'ɥʇbuǝן ʎɹoʇɔɐɟ ǝɥʇ oʇ pǝppɐ sʞɔoןq ㄣ ʎɹǝʌǝ ɹoɟ ؛sɹǝʞɹoʍ ㄣ :ʇıɯıן ןɐıʇıuI ˙ǝzıs ʎɹoʇɔɐɟ ǝɥʇ ʎq pǝʇıɯıן sı ʎɹoʇɔɐɟ ǝɥʇ uı sɹǝʞɹoʍ ɟo ɹǝqɯnu ǝʌıʇɔǝɟɟǝ ǝɥ⟘", - "ctnh.multiblock.sweat_shop.tooltip.3": "sǝdıɔǝᴚ buıɥɔʇƎ ɹǝsɐꞀ ---- ɹossǝɔoɹԀ ɹǝsɐꞀ\nsǝdıɔǝᴚ ǝuıɥɔɐW buıןןoᴚ ǝɹıM ---- ʍɐS pǝɹǝʍoԀ\nsǝdıɔǝᴚ ɹǝpuıɹ⅁ ---- ןǝǝɥM buıɥsnɹƆ\nsǝdıɔǝᴚ buıɯɹoℲ pınןℲ ---- uısɐᗺ ʞɹoM\nsǝdıɔǝᴚ ɹoʇɔɐɹʇxƎ ---- ɹǝuɹnᗺ ǝzɐןᗺ\nsǝdıɔǝᴚ ɹoʇɔɐɹʇxƎ ---- ǝbnɟıɹʇuǝƆ\nsǝdıɔǝᴚ ǝɥʇɐꞀ ---- ǝɥʇɐꞀ\nsǝdıɔǝᴚ ɹǝxıW ---- ɹǝxıW pǝɹǝʍoԀ\nsǝdıɔǝᴚ ןןıW buıןןoᴚ ---- ǝuıɥɔɐW buıןןoᴚ pǝɹǝʍoԀ\n:sǝdıɔǝɹ ǝןqɐןıɐʌɐ ǝɥʇ ǝuıɯɹǝʇǝp pǝɔɐןd )sǝuıɥɔɐɯ( sןɐıɹǝʇɐɯ uoıʇɔnpoɹd ǝɥ⟘", - "ctnh.multiblock.sweat_shop.tooltip.4": ")sǝuıɥɔɐɯ ɟo ɹǝqɯnu(ʇɹbs = ɯsıןǝןןɐɹɐԀ :sǝdıɔǝɹ buıpuodsǝɹɹoɔ ɟo ɯsıןǝןןɐɹɐd ǝɥʇ sǝuıɯɹǝʇǝp pǝɔɐןd )sǝuıɥɔɐɯ( sןɐıɹǝʇɐɯ uoıʇɔnpoɹd ɟo ɹǝqɯnu ǝɥ⟘", - "ctnh.multiblock.sweat_shop.tooltip.5": "))sɯɹɐ ɔıʇoqoɹ ɟo ɹǝqɯnu(ʇɹbs * ϛᄅ˙0 + Ɩ / Ɩ( x ǝɯıʇ ǝdıɔǝᴚ ˙pǝǝds uoıʇnɔǝxǝ ǝdıɔǝɹ ןןɐɹǝʌo ǝɥʇ sǝʌoɹdɯı sɯɹɐ ɔıʇoqoɹ buıppⱯ", - "ctnh.multiblock.sweat_shop.tooltip.6": "˙pǝǝds uoıʇnɔǝxǝ ǝdıɔǝɹ sǝʌoɹdɯı pǝɔɐןd sǝuıɥɔɐɯ ɟo ʎʇısɹǝʌıp ǝɥ⟘", - "ctnh.multiblock.sweat_shop.tooltip.7": "˙sןɐǝɯ ɹǝʞɹoʍ ǝןdɯıs ɟo sbuıʌɹǝs )sɹǝʞɹoʍ ɟo ɹǝqɯnu( ǝɯnsuoɔ sǝuıɥɔɐɯ 'spuoɔǝs ϛ ʎɹǝʌƎ", - "ctnh.multiblock.underfloor_heating_system.info.efficiency": "%d :ʎɔuǝıɔıɟɟƎ", - "ctnh.multiblock.underfloor_heating_system.info.rate": "%s :ǝʇɐᴚ", - "ctnh.multiblock.underfloor_heating_system.info.rate.tooltip": "buıʇɐǝɥ ɹooןɟ ǝɥʇ ɟo ɹǝʍod buıʇɐǝɥ ǝɥʇ ǝɔnpǝɹ oʇ ɯɐǝʇs ɟo uoıʇdɯnsuoɔ ǝɥʇ ǝɔnpǝᴚ", - "ctnh.multiblock.underfloor_heating_system.info.rate_modify": " :ǝʇɐɹ ʇsnظpⱯ", - "ctnh.multiblock.underfloor_heating_system.info.steam_consumption": "%d :ǝʇɐɹ uoıʇdɯnsuoɔ ɯɐǝʇS", - "ctnh.multiblock.underfloor_heating_system.tooltip.0": "ɯɐǝʇs ɥʇıʍ ʇɹɐǝɥ ɹnoʎ ɯɹɐM", - "ctnh.multiblock.underfloor_heating_system.tooltip.1": "ɯǝʇsʎs ǝɥʇ ǝʌoqɐ sʞɔoןq 0Ɩ uıɥʇıʍ sʞɹoʍ ʎןuo buıʇɐǝH ˙ʇı punoɹɐ ɹ§ɐǝɹɐ ʞunɥɔ ϛ×ϛ ɐɐ§ ʇɐǝɥ uɐɔ ʇı 'ʞunɥɔ ǝuo buıʎdnɔɔO ˙buıʇɐǝɥ ɹoɟ ɯɐǝʇs sǝsn ɯǝʇsʎs buıʇɐǝɥ ɹooןɟɹǝpun ǝɥ⟘", - "ctnh.multiblock.underfloor_heating_system.tooltip.2": "pǝʇsnɹ uǝɥʍ ɯǝʇsʎs ǝɥʇ ɟo ʎɔuǝıɔıɟɟǝ buıʇɐǝɥ ǝɥʇ buıɔnpǝɹ 'ǝɯıʇ ɹǝʌo ʇsnɹ ןןıʍ sǝןıʇ ʞɔıɹq ɹǝddoƆ", - "ctnh.multiblock.underfloor_heating_system.tooltip.3": "%ϛᄅ ʇɐ buıʇʇǝs ɯnɯıuıɯ ɥʇıʍ 'uoıʇdɯnsuoɔ ɯɐǝʇs puɐ ɹǝʍod buıʇɐǝɥ buıɔnpǝɹ sʍoןןɐ ǝʇɐɹ ǝןqɐʇsnظpⱯ", - "ctnh.multiblock.vacuum_sintering_tower.tooltip.0": "buıɹǝʇuıS ɯnnɔɐΛ", - "ctnh.multiblock.void_miner.info.cryotheum": " %d :uoıʇdɯnsuoɔ ɯnǝɥʇoʎɹƆ", - "ctnh.multiblock.void_miner.info.overheat": "¡¡¡buıʇɐǝɥɹǝʌO", - "ctnh.multiblock.void_miner.info.pyrotheum": " %d :uoıʇdɯnsuoɔ ɯnǝɥʇoɹʎԀ", + "ctnh.multiblock.meteor_capturer.tooltip.0": "pǝʞɔoןɔɹǝʌo ǝq ʇouuɐɔ ǝuıɥɔɐɯ sıɥ⟘\nɹ§¿sɹǝʇɐɹɔ ɹoǝʇǝɯ uı puɐן sʎɐʍןɐ sɹoǝʇǝɯ op ʎɥM8§", + "ctnh.multiblock.meteor_capturer.tooltip.1": "˙ǝɔɐds ɹǝʇno ɯoɹɟ sɹoǝʇǝɯ ɥɔıɹ-ǝɹo ןןnd oʇ ǝɔuǝssƎ ǝɟıꞀ ɟo ʇunoɯɐ ǝbɹɐן ɐ puɐ ɹǝɯıɹd ɟo ʇunoɯɐ ןןɐɯs ɐ sǝɯnsuoƆ", + "ctnh.multiblock.meteor_capturer.tooltip.2": "˙pǝpuǝɯɯoɔǝɹ ǝɹɐ sǝɥɔʇɐH ʇnduI pǝɔuɐʌpⱯ ؛ǝɔɐds ʇndʇno/ʇnduı ɟo ʇunoɯɐ ǝbɹɐן ɐ ǝɹınbǝɹ sǝdıɔǝᴚ", + "ctnh.multiblock.meteor_capturer.tooltip.3": "˙ǝpısuı ʇuǝɯdınbǝ ɹo ǝןdoǝd ǝɔɐןd ʇou oᗡ ˙)ʎןןɐǝɹ( ǝɹnʇɔnɹʇs ʞɔoןqıʇןnɯ ǝɥʇ ǝʌoqɐ ʎʇıʌɐɔ ǝɥʇ uı ǝʇɐɹǝuǝb sɹoǝʇǝW", + "ctnh.multiblock.meteor_capturer.tooltip.4": "˙)ʇsıxǝ sǝdıɔǝɹ ɥɔns ou( ǝɹnʇɔnɹʇs ʞɔoןqıʇןnɯ ǝɥʇ ʎoɹʇsǝp ןןıʍ ƐƖ uɐɥʇ ɹǝʇɐǝɹb snıpɐɹ ɐ ɥʇıʍ sǝdıɔǝᴚ", + "ctnh.multiblock.quasar_eye.tooltip.0": "spuɐɥ ɹ§ɹnoʎ9§ uı sʇsǝɹ ʍou ɹ§sɹɐsɐnbϛ§ buıʇɐǝɹɔ ɟo ǝןqɐdɐɔ ǝɔıʌǝp ɐ 'ɹ§ʎɹǝʇsʎW ǝʇɐɯıʇן∩ɔ§ ɹ§s,ɐuɐW6§", + "ctnh.multiblock.quasar_eye.tooltip.1": "ʇunoɯɐ ʇɔɐxǝ ǝɥʇ ɹoɟ IWƎ ʇןnsuoɔ ؛ᴚ§uoıʇdɯnsuoɔ ןǝnɟ ɐuɐɯ ןɐıʇıuıɹ§ sǝɹınbǝɹ uoıʇɐʌıʇɔɐ ǝuıɥɔɐW", + "ctnh.multiblock.quasar_eye.tooltip.10": "ɹǝʍod pǝɹoʇs ƎƖ uɐɥʇ ssǝן ɥʇıʍ ʇɹɐʇs ʇouuɐɔ ǝpoW uoıʇɐǝɹƆ ؛ʇndʇno sɐb ןɐuoıʇıppɐ ǝuo sǝɔnpoɹd pǝʇɐןnɯnɔɔɐ ∩Ǝ Ǝ000Ɩ ʎɹǝʌƎ ˙ʇndʇno ǝɥʇ ʎןdıʇןnɯ sןǝnɟ pǝɔuɐʌpⱯ ˙ɹǝʍod pǝʇɐןnɯnɔɔɐ ןןɐ ǝsɐǝןǝɹ 'ǝpoW uoıʇɐǝɹƆ uI", + "ctnh.multiblock.quasar_eye.tooltip.11": "ɹ§¡ǝɹnʇnɟ ǝɥʇ uı ǝpoןdxǝ ʇou ןןıʍ ʇı ǝǝʇuɐɹɐnb ʇouuɐɔ I ʇnqɔ§ 'ǝpoןdxǝ ʇou ןןıʍ ǝuıɥɔɐɯ sıɥʇ :ɹ§sʍǝu poo⅁q§", + "ctnh.multiblock.quasar_eye.tooltip.2": "ɹ§ʇsoɔ uoıʇɐʌıʇɔɐ uɐ ǝɹınbǝɹ ʇou sǝopq§ sɹǝıʇ ʎbɹǝuǝ ɥbıɥ ʇɐ sǝdıɔǝɹ ɹǝıʇ-ɹǝʍoן buıʇɐʌıʇɔⱯ", + "ctnh.multiblock.quasar_eye.tooltip.3": "ʎbɹǝuǝ ǝunɹ ɟo sʇunoɯɐ ǝʌıssɐɯ ǝʇɐɹǝuǝb oʇ ɹ§sǝunᴚ ɹɐsɐnὉϛ§ ǝsn ؛ʇndʇno ɹnoʎ uǝɥʇbuǝɹʇs puɐ ʎbɹǝuǝ ǝunɹ ǝsɐǝɹɔuı oʇ ɹ§sǝunᴚ Λ ɹǝı⟘q§ ʇnduI ˙ɥʇbuǝɹʇs ʇndʇno suɹǝʌob ɹ§ʎbɹǝuƎ ǝunᴚϛ§", + "ctnh.multiblock.quasar_eye.tooltip.4": "ǝdʎʇ ǝunɹ ǝןqɐɯnsuoɔ ɥɔɐǝ ɟo ɹ§ǝuo ʇsoɯ ʇɐɔ§ ǝɯnsuoɔ puɐ pɐǝɹ 'ɹ§uoıʇɐɹǝdo ǝdıɔǝɹ ɥɔɐǝ ǝɹoɟǝqϛ§ :sʍoןןoɟ sɐ pǝɹınbɔɐ sı ʎbɹǝuǝ ǝunᴚ", + "ctnh.multiblock.quasar_eye.tooltip.5": "ɹ§¡pǝʌןɐɥ sı ʎɔuǝıɔıɟɟǝɔ§ '0ϛ ʍoןǝq sı ʎbɹǝuǝ ǝunɹ uǝɥʍ ؛pǝɯnsuoɔ sı ʇı ɹ§ɹǝʇsɐɟɔ§ ǝɥʇ 'ʎbɹǝuǝ ǝunɹ ǝɥʇ ɹǝɥbıɥ ǝɥʇ :ɹ§buıuɹɐMɔ§", + "ctnh.multiblock.quasar_eye.tooltip.6": ")ɹǝıʇ ʎbɹǝuǝ + Ɩ( ɟo ɯnɯıxɐɯ ɐ ɥʇıʍ 'Ɩ + )0ϛ / )ʎbɹǝuǝ ǝunɹ((boן sı ʎɔuǝıɔıɟɟǝ ʎbɹǝuƎ", + "ctnh.multiblock.quasar_eye.tooltip.7": "ϛ × ʎɔuǝıɔıɟɟǝ sןɐnbǝ ɯsıןǝןןɐɹɐd puɐ 'ɯsıןǝןןɐɹɐd ʎq pǝıןdıʇןnɯ ǝɹɐ uoıʇɐɹnp puɐ uoıʇdɯnsuoɔ :ɯsıןǝןןɐɹɐd ǝɯıʇ sɐɥ ǝuıɥɔɐɯ ǝɥ⟘", + "ctnh.multiblock.quasar_eye.tooltip.8": ")ϛㄥ˙0 '0ϛ / )0ϛ - ʎbɹǝuǝ‾ǝunɹ((xɐɯ˙ɥʇɐW * ϛ0˙0 - Ɩ sı uoıʇdɯnsuoɔ ןǝnℲ", + "ctnh.multiblock.quasar_eye.tooltip.9": "uoıʇɐןnɯnɔɔɐ %Ɩ ןɐuoıʇıppɐ uɐ sʇuɐɹb ʎbɹǝuǝ ǝunɹ ϛᄅ ʎɹǝʌǝ ؛ǝʎƎ ɹɐsɐnὉ ǝɥʇ uı pǝʇɐןnɯnɔɔɐ sı ɹǝʍod pǝʇɐɹǝuǝb ɟo %Ɩ 'ǝpoɯ ןɐɯɹou uI", "ctnh.multiblock.water_power_station.info.0": "%d :ʍoןℲ ɹǝʇɐM", "ctnh.multiblock.water_power_station.info.1": "%d%% :ʎɔuǝıɔıɟɟƎ ןıoƆ", "ctnh.multiblock.water_power_station.info.2": "ʇ/∩Ǝ %d/%d :ʇndʇnO ɹǝʍoԀ", "ctnh.multiblock.water_power_station.tooltip.0": "¡ʎbɹǝuƎ ʎןpuǝıɹℲ-oɔƎ", "ctnh.multiblock.water_power_station.tooltip.1": "˙ɹǝןןoɹʇuoɔ ǝɥʇ uo pǝɹǝʇuǝɔ 'ㄣ ɟo ʇɥbıǝɥ puɐ ɥʇbuǝן ǝuıɥɔɐɯ ǝɥʇ oʇ ןɐnbǝ snıpɐɹ ɐ uıɥʇıʍ ɹǝʇɐʍ ɟo ʇunoɯɐ ǝɥʇ oʇ ןɐuoıʇɹodoɹd sı uoıʇɐɹǝuǝb ɹǝʍoԀ", "ctnh.multiblock.water_power_station.tooltip.2": "˙Ɩ oʇ 9˙0 ɟo ɹǝıןdıʇןnɯ ɐ uǝǝʍʇǝq ʎןɯopuɐɹ sǝʇɐnʇɔnןɟ ʇndʇno ɹǝʍoԀ", - "ctnh.multiblock.wide_accelerator.gui.electric": "ǝuıןɯɐǝᗺ uoɹʇɔǝןƎ", - "ctnh.multiblock.wide_accelerator.gui.name": "ǝuıןɯɐǝᗺ ssǝɔɔⱯ", - "ctnh.multiblock.wide_accelerator.gui.nu": "ǝuıןɯɐǝᗺ uoɹʇnǝN", - "ctnh.multiblock.wide_accelerator.gui.proton": "ǝuıןɯɐǝᗺ uoʇoɹԀ", - "ctnh.multiblock.wide_accelerator.info.consume": "ɟᄅ˙% :ɹǝıןdıʇןnW uoıʇdɯnsuoƆ ɹǝʍoԀ", - "ctnh.multiblock.wide_accelerator.info.electric_speed": "ΛǝW ɟᄅ˙% :ʎʇıɔoןǝΛ uoɹʇɔǝןƎ", - "ctnh.multiblock.wide_accelerator.info.nu_speed": "ΛǝW ɟᄅ˙% :ʎʇıɔoןǝΛ uoɹʇnǝN", - "ctnh.multiblock.wide_accelerator.info.proton_speed": "ΛǝW ɟᄅ˙% :ʎʇıɔoןǝΛ uoʇoɹԀ", - "ctnh.multiblock.wide_accelerator.tooltip.0": "ɹoʇɐɹbǝʇuI ɹoʇɐɹǝןǝɔɔⱯ ǝןɔıʇɹɐԀ", - "ctnh.multiblock.wide_accelerator.tooltip.1": "pǝʞɔoןɔɹǝʌo ǝq ʇouuɐɔ 'ɹ§spod ɹǝʇɹǝʌuoɔ ǝbɐʇןoʌɐ§ puɐ ɹ§spod ɹǝsɐן6§ sʇɹoddnS", - "ctnh.multiblock.wide_accelerator.tooltip.10": "sɹnɔɔo uoıʇɔunɟןɐɯ ɟı ɯsıןǝןןɐɹɐd ǝɔnpǝᴚ ˙ɹ§spod ɹǝsɐן6§ ɥʇıʍ pǝpuǝɯɯoɔǝᴚ ˙ɹ§buıddıɹʇ ʇınɔɹıɔɔ§ ɹo ɹ§ǝɹnןıɐɟ ǝdıɔǝɹɔ§ ǝsnɐɔ ʎɐɯ ǝbɐʇןoʌ ɹǝdoɹdɯI ˙uoıʇdɯnsuoɔ ɹǝʍod ǝɯǝɹʇxƎ :⅁NINᴚⱯM", - "ctnh.multiblock.wide_accelerator.tooltip.11": ")ןɐnʇdǝɔuoɔ ʎןʇuǝɹɹnƆ( ɹ§sɯǝʇsʎs ʇuǝɯuıɐʇuoɔ pǝןןɐʇsuı-ǝɹd ǝɹınbǝɹ sǝdıɔǝɹ snopɹɐzɐH :NOI⟘∩ⱯƆɔ§ ˙sʞuıן ʇuǝɯuıɐʇuoɔ ɐıʌ ǝןqɐןıɐʌɐ ɹǝɟsuɐɹʇ ǝןɔıʇɹɐԀ", - "ctnh.multiblock.wide_accelerator.tooltip.2": "sǝuıןɯɐǝq ǝןdıɹʇ ɥbnoɹɥʇ ʎןsnoǝuɐʇןnɯıs sǝdʎʇ ǝןɔıʇɹɐd ǝǝɹɥʇ sǝʇɐɹǝןǝɔɔⱯ", - "ctnh.multiblock.wide_accelerator.tooltip.3": "Λǝ⅁0ϛ ɟo pןoɥsǝɹɥʇ ɯnɯıxɐɯ ɥʇıʍ 'suoıʇɐɔıɟıɔǝds ǝdıɔǝɹ buıpǝǝɔxǝ ʎʇıɔoןǝʌ ǝןɔıʇɹɐd sǝɹınbǝᴚ", - "ctnh.multiblock.wide_accelerator.tooltip.4": "sǝnןɐʌ ʇןnɐɟǝp sǝsn ǝsıʍɹǝɥʇo 'ɯsıןǝןןɐɹɐd uoıʇɐɹǝןǝɔɔɐ/ǝdıɔǝɹ pǝzıɯoʇsnɔ ǝןqɐuǝ ɹ§spod ןoɹʇuoɔ ןǝןןɐɹɐԀq§", - "ctnh.multiblock.wide_accelerator.tooltip.5": ")ɹ§spod ןoɹʇuoɔq§ ʇnoɥʇıʍ sǝdıɔǝɹ pɹɐpuɐʇs( 9Ɩ :ɯsıןǝןןɐɹɐd ʇןnɐɟǝᗡ", - "ctnh.multiblock.wide_accelerator.tooltip.6": "sʇɔnpoɹd ou spןǝıʎ ʎʇıɔoןǝʌ ǝןɔıʇɹɐd ʇuǝıɔıɟɟnsuI", - "ctnh.multiblock.wide_accelerator.tooltip.7": "ǝpoɯ ǝdıɔǝɹ pǝʇɔǝןǝs ʎq sǝıɹɐʌ ɔıboן ןɐuoıʇɐɹǝdO", - "ctnh.multiblock.wide_accelerator.tooltip.8": "uoıʇɐɹǝdo buıɹnp ɹ§ʇuɐʇsuoɔ suıɐɯǝɹ ʎʇıɔoןǝʌ ǝןɔıʇɹɐԀ6§ ˙ʎʇıɔoןǝʌ pǝuıqɯoɔ ΛǝW00Ɩ ɹǝd %0Ɩ sǝsɐǝɹɔuı ʇsoɔ ʎbɹǝuƎ ˙ɯsıןǝןןɐɹɐd-ㄣᄅ0Ɩ ʇןnɐɟǝᗡ :ƎᗡOW NOI⟘ⱯᴚƎꞀƎƆƆⱯ", - "ctnh.multiblock.wide_accelerator.tooltip.9": "uoıʇɐɹǝdo-ʇsod )ʎʇıɔoןǝʌ pǝɹınbǝɹ(ʇɹbs ʎq ʎʇıɔoןǝʌ ǝןɔıʇɹɐd sǝɔnpǝᴚ ˙ΛǝW00Ɩ ɹǝd %ϛ˙ᄅ sǝsɐǝɹɔuı ʇsoɔ ʎbɹǝuƎ ˙ɯsıןǝןןɐɹɐd-ǝןbuıs ʇןnɐɟǝᗡ :ƎᗡOW NOI⟘ⱯᴚƎꞀƎƆƎᗡ", - "ctnh.multiblock.wind_array.tooltip0": "Ǝᴚ∩⟘ⱯN ɟo ᴚƎMOԀ Ǝ∩ᴚ⟘ ǝɥ⟘ :ɟןoM puıMo§ㄥ§", - "ctnh.multiblock.wind_array.tooltip1": "--------------------8§ɐʇɐᗡ ɔısɐᗺɐ§-----------------8§", - "ctnh.multiblock.wind_array.tooltip10": "˙ʞɹoʍʇǝu ǝɥʇ ɯoɹɟ pǝʇɔɐɹʇxǝ ǝq ןןıʍ ʇuɐɔıɹqnꞀɟ§", - "ctnh.multiblock.wind_array.tooltip11": "˙ǝɔɹoɟ ǝɹnʇɐu ɯoɹɟ NOI⟘Ɔ∩ᴚ⟘SƎᗡ ǝɥʇ ʇsısǝɹ oʇ sǝןnɹ ǝɥʇ ʎƎᗺO Oᗡϛ§", - "ctnh.multiblock.wind_array.tooltip2": ")ɥʇɹɐǝ uo(ㄥ§ ʇ/∩Ǝ %dǝ§ :uoıʇɔnpoɹԀ ɔısɐᗺ -ɟ§", - "ctnh.multiblock.wind_array.tooltip3": "ㄣx ɹǝpunɥ⟘ 'ᄅx ʎuıɐᴚǝ§ :ʇsooᗺ ɹǝɥʇɐǝM -ɟ§", - "ctnh.multiblock.wind_array.tooltip4": ")ㄣ9-9ϛᄅ( / )ㄣ9-9ϛᄅ '0 'ㄣ9-ʎ(dɯɐןƆǝ§ :ʇsooᗺ ǝpnʇıʇןⱯ -ɟ§", - "ctnh.multiblock.wind_array.tooltip5": "])ǝzıSʇǝN(ᄅboן[*Ɛ˙0 ǝ§ :ʇsooᗺ ʞɹoʍʇǝN -ɟ§", - "ctnh.multiblock.wind_array.tooltip6": "˙uoıʇɔnpoɹd ǝuıɯɹǝʇǝp oʇ pǝıןdıʇןnɯ ǝɹɐ sʇsooq ןןⱯɟ§", - "ctnh.multiblock.wind_array.tooltip7": "˙ʇuɐɔıɹqnꞀ ɟ§ʇ/ᗺɯ %dǝ§ sǝɹınbǝᴚɟ§", - "ctnh.multiblock.wind_array.tooltip8": "------------------8§ʞɹoʍʇǝN puıMɐ§-----------------8§", - "ctnh.multiblock.wind_array.tooltip9": "˙ʞɹoʍʇǝN puıM ɐ ɯɹoɟ Ɩ =< ɟo ǝɔuɐʇsıp ɐ uıɥʇıʍ ǝɹnʇɔnɹʇs pǝubıןⱯɟ§", "ctnh.multiblock.zenith_machine.info.max_parallel": "%d:sןǝןןɐɹɐԀ xɐW", "ctnh.multiblock.zenith_machine.info.now_parallel": "%d:sןǝןןɐɹɐԀ ʍoN", - "ctnh.mutliblock.wind_power_array.info.network_dirty": ")s(puoɔǝs %d uı pןınqǝɹ ןןıʍ ʞɹoʍʇǝN", - "ctnh.mutliblock.wind_power_array.info.network_machine": "%d:ʇunoƆ ǝuıɥɔɐW ʞɹoʍʇǝN", - "ctnh.mutliblock.wind_power_array.info.network_machine_efficiency": "%d :ʎɔuǝıɔıɟɟƎ buıʇɐɹǝuǝ⅁", - "ctnh.platinum_metal_catalyst_shard1": "dn ɯǝɥʇ ɥsıɟ - sǝɹnsɐǝɹʇ ɔıʇɐnbɐ oʇuı ǝsǝɥʇ pǝuɹnʇ ǝɯıʇ ɟo sǝpıʇ ǝɥ⟘", - "ctnh.platinum_metal_catalyst_shard2": "ɯǝɥʇ ɥʇıʍ ǝpɐɹʇ oʇ ʇdɯǝʇʇɐ - ʇǝɹɔǝs sıɥʇ pןoɥ sǝuO pǝuʍoɹᗡ ןɐssʎqɐ ǝɥ⟘", - "ctnh.psionic_medulla": "ןɐnʇıɹ uoıʇɔɐɹʇxƎ ǝɹnʇɐǝɹƆ ןıʌƎ ɔıbɐW pooןᗺ ǝɥʇ ɥbnoɹɥʇ sǝʌןƎ ɯıǝɥɟןⱯ buıʇɔɐɹʇxǝ ʎq ʇı uıɐʇqO", - "ctnh.recipe.accelerator.mode.element": "uoıʇɐɹǝןǝɔɔⱯ uoɹʇɔǝןƎ :ǝpoW", - "ctnh.recipe.accelerator.mode.element.consume": "uoɹʇɔǝןƎ :ǝןɔıʇɹɐԀ pǝʇɐɹǝןǝɔɔⱯ", - "ctnh.recipe.accelerator.mode.nu": "uoıʇɐɹǝןǝɔɔⱯ uoɹʇnǝN :ǝpoW", - "ctnh.recipe.accelerator.mode.nu.consume": "uoɹʇnǝN :ǝןɔıʇɹɐԀ pǝʇɐɹǝןǝɔɔⱯ", - "ctnh.recipe.accelerator.mode.proton": "uoıʇɐɹǝןǝɔɔⱯ uoʇoɹԀ :ǝpoW", - "ctnh.recipe.accelerator.mode.proton.consume": "uoʇoɹԀ :ǝןɔıʇɹɐԀ pǝʇɐɹǝןǝɔɔⱯ", - "ctnh.recipe.accelerator.mode.speed.g": "Λǝ⅁ ɟᄅ˙% :ʎʇıɔoןǝΛ pǝɹınbǝᴚ", - "ctnh.recipe.accelerator.mode.speed.m": "ΛǝW ɟᄅ˙% :ʎʇıɔoןǝΛ pǝɹınbǝᴚ", + "ctnh.nuclear_reactor.basic": "ɹǝʍod oʇuı pǝʇɹǝʌuoɔ ǝq uɐɔ ɥɔıɥʍ 'ʇɐǝɥ ɟo ʇunoɯɐ ǝbɹɐן ɐ sǝɔnpoɹd ʇɐɥʇ ǝuıɥɔɐɯ buıɯnsuoɔ-ʎbɹǝuǝ uɐ sı sıɥ⟘", + "ctnh.nuclear_reactor.coolant": "uoıʇdɯnsuoɔ sǝɔnpǝɹ ʎʇıɔɐdɐɔ ʇɐǝɥ ʇuɐןooɔ ɹǝɥbıɥ ǝןıɥʍ 'uoıʇdɯnsuoɔ ʇuɐןooɔ sǝsɐǝɹɔuı ǝɹnʇɐɹǝdɯǝʇ ɹoʇɔɐǝɹ ɹǝɥbıH ˙)Ɔ°006( ʎoןןɐ ɯnıssɐʇod-ɯnıpos ɹo ')Ɔ°008( ɯnıpos ')Ɔ°0ϛㄣ( ɯnıɹǝʇnǝp ')Ɔ°0ϛƖ( ɯɐǝʇs ǝq uɐɔ ʇuɐןooƆ", + "ctnh.nuclear_reactor.overclock": "uoıʇɐɹǝdo ɟo puoɔǝs ǝuo ʎɹǝʌǝ ɹoɟ spuoɔǝs oʍʇ ʎq sǝsɐǝɹɔuı ssǝɹboɹd ǝdıɔǝɹ 'ʇuǝsǝɹd ʇuɐןooɔ ɥʇıʍ ʇnq 'uoıʇɐɹǝdo ɹoɟ pǝɹınbǝɹ ʇou sı ʇuɐןooƆ", + "ctnh.nuclear_reactor.safe": "buıʇɐǝɥɹǝʌo ɯoɹɟ ǝpoןdxǝ ʇou ןןıʍ ɹoʇɔɐǝɹ ǝɥ⟘", + "ctnh.plasma_alloy.tooltip.recipe": "ɹǝʇןǝɯS ʇsɐןᗺ ʎoןןⱯ :ǝdʎ⟘ ǝdıɔǝᴚ", "ctnh.recipe.hellforge.info.drain": "ןןıM %s :uıɐɹᗡ", - "ctnh.recipe.hellforge.info.minimum_drain": "ןןıM %s :uıɐɹᗡɯnɯıuıW", - "ctnh.recipe.industrial_altar.info.0": "ɟƖ˙% :ʇnduı/uoıʇdɯnsuoɔ ԀꞀ", + "ctnh.recipe.hellforge.info.minimum_drain": "ןןıM %s :uıɐɹᗡ ɯnɯıuıW", "ctnh.recipe.quasar_eye.info.0": "ɟƖ˙% :ʇsoƆ uoıʇɐʌıʇɔⱯ", "ctnh.recipe.quasar_eye.info.1": "%d :ɹǝı⟘ ʎbɹǝuƎ", "ctnh.recipe.quasar_eye.info.2": "%d :ɹǝı⟘ uoıʇɐʌıʇɔⱯ", "ctnh.recipe_type.info": "%s:ǝdʎ⟘ ǝdıɔǝᴚ", - "ctnh.stone_process_catalyst": "ǝbɐןןıΛ ǝɥʇ ɟo oɹǝH ɐ ǝɯoɔǝq noʎ ɹǝʇɟɐ noʎ ɥɔɐǝʇ ןן,ʎǝɥʇ - ǝnbıuɥɔǝʇ ʇuǝıɔuɐ sıɥʇ ʍouʞ suosɐɯǝuoʇs ǝbɐןןıΛ", + "ctnh.recipe_type.list": "%s '%s", "ctnh.test_terminal.error_info": ")%s(", - "ctnh.test_terminal.lack_error": "pǝǝu noʎ '%s ʇⱯ", - "ctnh.test_terminal.position": ")%s'%s'%s(", - "ctnh.test_terminal.success": "!ʞO sı buıɥʇʎɹǝʌƎ", - "ctnh.test_terminal.wrong_error": "ǝq pןnoɥs ʇı '%s ʇⱯ", - "ctnh.testing_terminal.tooltip.1": "ʞɔoןqıʇןnɯ ǝɥʇ buıpןınq uǝɥʍ ɹoɹɹǝ ǝɥʇ ʞɔǝɥɔ oʇ ǝs∩", - "ctnh.testing_terminal.tooltip.2": "oɟuı ɹoɹɹǝ ǝɥʇ ʍoɥs oʇ ɹǝןןoɹʇuoɔ ǝɥʇ ʞɔıןɔ-ʇɥbıᴚ", - "ctnh.testing_terminal.tooltip.3": "ǝpoɯ pǝddıןℲ/ןɐɯɹoN uǝǝʍʇǝq ǝbuɐɥɔ oʇ ʇɟıɥS ɥʇıʍ ʞɔıןɔ-ʇɥbıᴚ", - "ctnh.tooltips.simplecomputationmachine": "ΛH uɐɥʇ ɹǝʍoן ou sı ɹǝıʇ ɥɔıɥʍ sǝdıɔǝɹ buıןpuɐɥ uǝɥʍ ʇ/∩MƆ )ΛH - ןǝʌǝן ǝdıɔǝɹ(^ᄅ sǝɹınbǝᴚ", + "ctnh.trap_electric": "∩Ǝ %d :ɹǝʍod pǝɹoʇs ʇuǝɹɹnƆ", + "ctnh.u_sinope.1": "¿¿¿ / buıssǝɔoɹԀ ןɐɔıɯǝɥɔoɹʇǝԀ ɯnnɔɐΛ / ɹǝıɟıpıןoS pınןℲ / ɹǝʇɐǝH pınןℲ / ɹǝʞɔɐɹƆ / ɯooᴚ uoıʇɐןןıʇsıᗡ / ɹǝʍo⟘ uoıʇɐןןıʇsıᗡ :sǝdʎʇ ǝdıɔǝᴚ", + "ctnh.u_sinope.2": "ǝɯɐb ǝɥʇ buızǝǝɹɟ uoıʇɔǝʇǝp pıoʌɐ oʇ ʎןʇɔǝɹıp ɹǝןןoɹʇuoɔ ǝɥʇ ʞɐǝɹq oʇ ʇsǝq sı ʇı 'ǝɹnʇɔnɹʇs ǝɥʇ buıʎɟıpoɯ uǝɥM ˙sʇuıɹdǝnןq ɯoɹɟ dןǝɥ ʞǝǝs ؛ɹɐǝq oʇ IWƎ ɹnoʎ ɹoɟ ɥɔnɯ ooʇ sı ǝɹnʇɔnɹʇs ǝʇɐɯıʇןn sʇIɔ§", + "ctnh.u_sinope.3": ")%66˙66 ʎq pǝɔnpǝɹ ʎɔuǝıɔıɟɟǝ( ǝsdɐןןoɔ ןןıʍ ɐǝɹɐ buıpunoɹɹns ǝɥʇ ǝsıʍɹǝɥʇo ؛ɯnnɔɐʌ ɐ uı ʇןınq ǝq ʎןuo uɐɔ ǝɹnʇɔnɹʇs ʇuɐıb sıɥ⟘", + "ctnh.u_sinope.4": "%66˙66 ʎq pǝɔnpǝɹ sı ʎɔuǝıɔıɟɟǝ ؛ǝʌoqɐ ɹo ΛI∩ ʇɐ sןıoɔ puɐʇsɥʇıʍ ʇouuɐɔ ʇı 'pǝsn ǝɹɐ sןɐıɹǝʇɐɯ buıɹǝǝuıbuǝ ןɐuoısuǝɯıp-ɹnoɟ ssǝןu∩", + "ctnh.u_sinope.5": "%66 ʎq pǝɔnpǝɹ sı ʎɔuǝıɔıɟɟǝ ǝsıʍɹǝɥʇo ؛ɹǝıʇ ǝbɐʇןoʌ ןıoɔ ǝɥʇ ǝʌoqɐ ǝuo ɹǝıʇ ǝdıɔǝɹ ɐ ʇsoɯ ʇɐ ǝsn uɐɔ noʎ ˙ɹǝıʇ ǝdıɔǝɹ ɯnɯıxɐɯ ǝɥʇ sǝuıɯɹǝʇǝp ɹǝıʇ ןıoƆ", + "ctnh.u_sinope.6": "%66 ʎq pǝɔnpǝɹ sı ʎɔuǝıɔıɟɟǝ ǝsıʍɹǝɥʇo ؛ΛԀO ɥɔɐǝɹ ʇsnɯ ɹǝıʇ ǝbɐʇןoʌ ǝdıɔǝɹ ǝɥʇ ʇnq 'pǝʍoןןɐ ǝɹɐ sǝɥɔʇɐɥ ɹǝsɐꞀ", + "ctnh.u_sinope.7": "pǝǝds %000ϛ ɹǝɥʇouɐ ppɐ sןɐıɹǝʇɐɯ buıɹǝǝuıbuǝ ןɐuoısuǝɯıp-ɹnoℲ ˙pǝǝds buıssǝɔoɹd %ƐƐƐ sppɐ sןǝןןɐɹɐd 00Ɩ ʎɹǝʌǝ ؛pǝǝds buıssǝɔoɹd %ϛϛϛ sppɐ ΛH∩ ǝʌoqɐ ɹǝıʇ ǝdıɔǝɹ ɥɔɐƎ ˙ΛԀO sǝɥɔɐǝɹ ɥɔʇɐɥ ʎbɹǝuǝ ǝɥʇ uǝɥʍ sʞɔoןun buıʞɔoןɔɹǝʌo ssǝןssoꞀ ˙ᄅƐ^ᄅ ʇɐ pǝddɐɔ 'suoıʇɐɹǝdo ןǝןןɐɹɐd )ɹǝıʇ ǝbɐʇןoʌ(^8 sɐɥ ʞɔoןqıʇןnɯ sıɥʇ 'sǝdıɔǝɹ ןɐɯɹou ɹoℲ", + "ctnh.u_sinope.8": "puoɔǝs Ɩ ʇɐ pǝxıɟ sı ǝɯıʇ 'ΛI∩ ʇsɐǝן ʇɐ sı ɹǝıʇ ןıoɔ ǝɥʇ puɐ pǝsn ǝɹɐ sןɐıɹǝʇɐɯ buıɹǝǝuıbuǝ ןɐuoısuǝɯıp-ɹnoɟ ɟI ˙0Ɩ ʎq sǝsɐǝɹɔuı ɯsıןǝןןɐɹɐd puɐ spuoɔǝs 0Ɩ ʎq sǝsɐǝɹɔǝp ǝɯıʇ 'ΛH∩ ǝʌoqɐ ɹǝıʇ ǝbɐʇןoʌ ɥɔɐǝ ɹoɟ ؛0Ɩ ʇɐ ɯsıןǝןןɐɹɐd puɐ spuoɔǝs 00Ɩ ʇɐ pǝxıɟ sı ǝɯıʇ :sɔıuɐɥɔǝɯ ןɐıɔǝds ǝsn sǝdʎʇ ǝdıɔǝɹ ǝnbıun s,ʞɔoןqıʇןnɯ sıɥ⟘", + "ctnh.u_sinope.story.1": "ɹǝɥʇǝboʇ ןǝqɐᗺ ɟo ɹǝʍo⟘ ןɐıɹʇsnpuı sıɥʇ ʇןınq puɐ pǝʇıun pooʇs ǝןdoǝd 'uɐbǝq ɹɐʍ ǝɥʇ ǝɹoɟǝᗺ", + "ctnh.u_sinope.story.2": "ɹɐʍ ǝɥʇ ɟo sǝpıs ɥʇoq ɥʇıʍ buoןɐ ɯnnɔɐʌ ǝɥʇ uı pǝɹǝʇʇɐɥs 'suınɹ ןɐuɹǝʇǝ ǝɯɐɔǝq ɹǝʍoʇ ɯnnɔɐʌ sıɥʇ uǝɥʍ 'ɹɐM ןɐuɹǝʇƎ ǝɥʇ ןıʇu∩", + "ctnh.u_sinope.story.3": "ןɐʌıʌǝɹ s,ʎʇıuɐɯnɥ pןɐɹǝɥ ןןıʍ ǝɹnʇɔnɹʇs ʇuɐıb sıɥʇ ʍouʞ noʎ ʇnq 'ɹǝɥʇo ɥɔɐǝ pǝʎoɹʇsǝp ɹɐʍ ʇɐɥʇ ɟo sǝpıs ɥʇoq ɹǝɥʇǝɥʍ ʍouʞ ɹǝbuoן ou uɐɔ noʎ", + "ctnhcore.arc_generator.arcgeneratorinfo0": "%d :ʎʇısuǝʇuI ɔɹⱯ xɐW", + "ctnhcore.arc_generator.arcgeneratorinfo1": "%d :ʎʇısuǝʇuI ɔɹⱯ ʇuǝɹɹnƆ", + "ctnhcore.arc_generator.arcgeneratorinfo2": "%%ɟᄅ˙% :ʎɔuǝıɔıɟɟƎ pǝʇɹoddnS xɐW", + "ctnhcore.arc_generator.arcgeneratorinfo3": "%%ɟᄅ˙% :ʎɔuǝıɔıɟɟƎ ʇuǝɹɹnƆ", + "ctnhcore.arc_reactor.arcreactorarc": "%d :ʎʇısuǝʇuI ɔɹⱯ ʇndʇnO", + "ctnhcore.arc_reactor.arcreactorconnect": "ɹ§pǝןqɐuƎ ǝbpıɹᗺq§", + "ctnhcore.astronomicalmachine.astronomicalinfoinvalid": "ʇɥbıu ʇɐ pǝsn ǝq ʎןuo uɐƆ", + "ctnhcore.blazeblastfurnacemachine.blazeblastfurnaceinfopyrotheum": "ᗺɯ %d :ɯnǝɥʇoɹʎԀ buızɐןᗺ", "ctnhcore.blazeblastfurnacemachine.insufficient_pyrotheum": "ɯnǝɥʇoɹʎԀ ʇuǝıɔıɟɟnsuI", - "ctnhcore.copyright.info": "HN⟘Ɔ ʎq pǝppⱯ", + "ctnhcore.connectterminalitem.itemterminallocation": ")%s'%s'%s( :sǝʇɐuıpɹooɔ punoᗺ", + "ctnhcore.connectterminalitem.itemterminalsuccessclear": "¡pǝɹɐǝןɔ sǝʇɐuıpɹooƆ", + "ctnhcore.connectterminalitem.itemterminalsuccessget": "¡pǝɹınbɔɐ sǝʇɐuıpɹooƆ", + "ctnhcore.connectterminalitem.itemterminalsuccesswrite": "¡ʎןןnɟssǝɔɔns uǝʇʇıɹʍ sǝʇɐuıpɹooƆ", + "ctnhcore.connectterminalitem.itemterminaltips": "sǝʇɐuıpɹooɔ ǝɥʇ ɹɐǝןɔ oʇ ʞɔoןq ʎuɐ ʞɔıןɔ-ʇɥbıɹ+ʇɟıɥS\nuoıʇɐʇs ɔıɐʇןoʌoʇoɥd ǝɥʇ oʇ ɹǝןןoɹʇuoɔ ǝɥʇ puıq oʇ uıɐbɐ ʞɔıןɔ-ʇɥbıɹ uǝɥʇ 'ʇı puıq oʇ ɹǝןןoɹʇuoɔ ǝןnpoɯ ɔıɐʇןoʌoʇoɥd ɐ ʞɔıןɔ-ʇɥbıᴚ", + "ctnhcore.copyright.info": "HN⟘Ɔ ʎq pǝppⱯ9§", + "ctnhcore.cryotheumfreezer.cryotheumfreezerui0": "%d :sʇuıod ןɐʇsʎɹƆ ɹɐǝ⟘ ʇuǝɹɹnƆ", + "ctnhcore.cryotheumfreezer.cryotheumfreezerui5": "%d / %d :uoıʇdɯnsuoɔ ɯnǝɥʇoʎɹƆ ʇuǝɹɹnƆq§", "ctnhcore.cryotheumfreezer.insufficient_cryotheum": "ɯnǝɥʇoʎɹƆ ʇuǝıɔıɟɟnsuI", + "ctnhcore.ctnhcommontooltips.commontooltipparallelhatch": "sןǝןןɐɹɐd ɟo ɹǝqɯnu ǝɥʇ ǝsɐǝɹɔuı sןǝʌǝן ǝbɐʇןoΛ", + "ctnhcore.ctnhcommontooltips.commontooltipperfectoverclock": "!ʞɔoןɔɹǝʌO ʇɔǝɟɹǝԀ", + "ctnhcore.ctnhcommontooltips.commontooltipsteelmachine0": "ʍoןǝq puɐ sǝɥɔʇɐɥ ʎbɹǝuǝ ǝpɐɹb-ΛH ǝsn ʎןuo uɐƆ", + "ctnhcore.ctnhcommontooltips.commontooltipsubtickoverclock": "˙ʎןןɐɔıʇɐɯoʇnɐ pǝɯɹoɟɹǝd ǝq ןןıʍ suoıʇɐןnɔןɐɔ ןǝןןɐɹɐd 'ʞɔıʇ Ɩ uɐɥʇ ssǝן sı ǝɯıʇunɹ ǝdıɔǝɹ uǝɥM", + "ctnhcore.ctnhcommontooltips.gtceumultiblocklasertooltip": "pǝʇʇıɯɹǝd sı ɹǝqɯɐɥɔ ɹǝsɐן ǝɥʇ ɟo ǝsn ǝɥ⟘", + "ctnhcore.ctnhcommontooltips.gtceurecipemodifierdefaultfail": "pǝןıɐɟ uoıʇɐɔıɟıpoɯ ǝdıɔǝᴚ", + "ctnhcore.ctnhcoreemiplugin.bauxiteprocesscatalyst": "ʇı uɹɐǝן oʇ ǝbɐןןıΛ ǝɥʇ ɟo oɹǝH ɐ sɐ ɟןǝsɹnoʎ ǝʌoɹd - ǝnbıuɥɔǝʇ ʇuǝıɔuɐ sıɥʇ pɹɐnb suɐıɹɐɹqıן ǝbɐןןıΛ", + "ctnhcore.ctnhcoreemiplugin.bloodmagicgregtechhv": "sǝʇıɹoǝʇǝɯ uoɯɯns oʇ ןɐnʇıᴚ uoɔɐǝᗺ ɹɐʇS buıןןɐℲ ǝɥʇ uı buıɹǝɟɟo uɐ sɐ ɯǝʇı sıɥʇ ǝs∩", + "ctnhcore.ctnhcoreemiplugin.doubt": "ǝɔuǝssƎ ǝɟıꞀ oʇuı ʇqnop ɹıǝɥʇ buısnɟuı puɐ ǝɔuǝssƎ ǝɟıꞀ uı pǝʞɐos sǝɹnʇɐǝɹɔ buıןןıʞ ʎq ʇı uıɐʇqO", + "ctnhcore.ctnhcoreemiplugin.metallurgicalcatalyst": "ɯǝɥʇ ɥʇıʍ buıɹǝʇɹɐq ʎɹʇ - ǝbpǝןʍouʞ sıɥʇ ssǝssod suıןbıԀ ɹǝɥʇǝN", + "ctnhcore.ctnhcoreemiplugin.platinummetalcatalystshard1": "dn ɯǝɥʇ ɥsıɟ - sǝɹnsɐǝɹʇ ɔıʇɐnbɐ oʇuı ǝsǝɥʇ pǝuɹnʇ ǝɯıʇ ɟo sǝpıʇ ǝɥ⟘", + "ctnhcore.ctnhcoreemiplugin.platinummetalcatalystshard2": "ɯǝɥʇ ɥʇıʍ ǝpɐɹʇ oʇ ʇdɯǝʇʇɐ - ʇǝɹɔǝs sıɥʇ pןoɥ sǝuO pǝuʍoɹᗡ ןɐssʎqɐ ǝɥ⟘", + "ctnhcore.ctnhcoreemiplugin.psionicmedulla": "ןɐnʇıɹ uoıʇɔɐɹʇxƎ ǝɹnʇɐǝɹƆ ןıʌƎ ɔıbɐW pooןᗺ ǝɥʇ ɥbnoɹɥʇ sǝʌןƎ ɯıǝɥɟןⱯ buıʇɔɐɹʇxǝ ʎq ʇı uıɐʇqO", + "ctnhcore.ctnhcoreemiplugin.stoneprocesscatalyst": "ǝbɐןןıΛ ǝɥʇ ɟo oɹǝH ɐ ǝɯoɔǝq noʎ ɹǝʇɟɐ noʎ ɥɔɐǝʇ ןן,ʎǝɥʇ - ǝnbıuɥɔǝʇ ʇuǝıɔuɐ sıɥʇ ʍouʞ suosɐɯǝuoʇs ǝbɐןןıΛ", + "ctnhcore.ctnhcreativemodetabs.itemgroupblock": "sʞɔoןᗺ HN⟘Ɔ", + "ctnhcore.ctnhcreativemodetabs.itemgroupitem": "sɯǝʇI HN⟘Ɔ", + "ctnhcore.ctnhcreativemodetabs.itemgroupmachine": "sǝuıɥɔɐW HN⟘Ɔ", + "ctnhcore.ctnhdimensionmarkers.dimensionadastraglacio": "oıɔɐן⅁", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramars": "sɹɐW", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramercury": "ʎɹnɔɹǝW", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramoon": "uooW", + "ctnhcore.ctnhdimensionmarkers.dimensionadastravenus": "snuǝΛ", + "ctnhcore.ctnhdimensionmarkers.dimensionadextendrajupiter": "ɹǝʇıdnſ", + "ctnhcore.ctnhdimensionmarkers.dimensionaethertheaether": "ɹǝɥʇǝⱯ", + "ctnhcore.ctnhdimensionmarkers.dimensiontwilightforesttwilightforest": "ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore.ctnhitems.advancedramchiptooltip.tooltip": "ʎɹoɯǝW ssǝɔɔⱯ ɯopuɐᴚ pǝɔuɐʌpⱯ", + "ctnhcore.ctnhitems.advancedramwafertooltip.tooltip": "ɹǝɟɐM WⱯᴚ pǝɔuɐɥuƎ", "ctnhcore.ctnhitems.chip_t1.tooltip": "Ɩ⟘ ʇǝʞɔoᴚ buıʞɐɯ ɹoɟ pǝs∩ㄥ§", "ctnhcore.ctnhitems.chip_t2.tooltip": "ᄅ⟘ ʇǝʞɔoᴚ buıʞɐɯ ɹoɟ pǝs∩ㄥ§", "ctnhcore.ctnhitems.chip_t3.tooltip": "Ɛ⟘ ʇǝʞɔoᴚ buıʞɐɯ ɹoɟ pǝs∩ㄥ§", @@ -544,18 +461,311 @@ "ctnhcore.ctnhitems.heavy_plate_t2.tooltip": "ᄅ⟘ㄥ§", "ctnhcore.ctnhitems.heavy_plate_t3.tooltip": "Ɛ⟘ㄥ§", "ctnhcore.ctnhitems.heavy_plate_t4.tooltip": "ㄣ⟘ㄥ§", + "ctnhcore.ctnhitems.itemecologicalstardesc.tooltip": "ɯǝʇsʎsoɔǝ uɐ ɟo ǝɔuǝssǝ ǝɥʇ ןןɐ suıɐʇuoƆ", + "ctnhcore.ctnhitems.itemnuclearreactorheat.tooltip": "Ɔ°%d :ǝɹnʇɐɹǝdɯǝ⟘ ɹoʇɔɐǝᴚ ǝsɐᗺ", + "ctnhcore.ctnhitems.itemsculkcelldesc.tooltip": "˙˙˙˙uoıʇɐıʇuǝɹǝɟɟıᗡ", + "ctnhcore.ctnhitems.meadvancedterminaltooltip1.tooltip": "ǝpoW uoıʇɐɯɹoℲ snouoɹɥɔuʎsⱯ - ןɐuıɯɹǝ⟘ ǝɹnʇɔnɹʇS ʞɔoןqıʇןnW ɥɔǝ⟘bǝɹ⅁ן§", + "ctnhcore.ctnhitems.meadvancedterminaltooltip2.tooltip": "ʎɐןdsıp ʇsoן-buoן ɐ ɥʇıʍ sɹǝʞɔıןɟ uǝǝɹɔs ןɐuıɯɹǝʇ sʇı ؛ןǝpoɯ dıɥsbɐןɟ ɹǝɯɹoɟ ǝɥʇ ɟo ɐɔıןdǝɹ Ɐ", "ctnhcore.ctnhitems.radioactive_waste.tooltip": "ʇuǝıɔıɟɟnsuı sı pǝǝds ǝɥʇ uǝɥʍ ǝʇsɐʍ ǝɔnpoɹd ןןıʍ ɹoʇɐʌıʇɔⱯ uoɹʇnǝNㄥ§", + "ctnhcore.ctnhitems.simplenutritiousmealtooltip1.tooltip": "suoıʇɔunɟ ןɐɔıboןoısʎɥd ɔısɐq s,ʎpoq ǝɥʇ suıɐʇuıɐW", + "ctnhcore.ctnhitems.testingterminaltooltip1.tooltip": "ʞɔoןqıʇןnɯ ǝɥʇ buıpןınq uǝɥʍ ɹoɹɹǝ ǝɥʇ ʞɔǝɥɔ oʇ ǝs∩", + "ctnhcore.ctnhitems.testingterminaltooltip2.tooltip": "oɟuı ɹoɹɹǝ ǝɥʇ ʍoɥs oʇ ɹǝןןoɹʇuoɔ ǝɥʇ ʞɔıןɔ-ʇɥbıᴚ", + "ctnhcore.ctnhitems.testingterminaltooltip3.tooltip": "ǝpoɯ pǝddıןℲ/ןɐɯɹoN uǝǝʍʇǝq ǝbuɐɥɔ oʇ ʇɟıɥS ɥʇıʍ ʞɔıןɔ-ʇɥbıᴚ", + "ctnhcore.ctnhmachineutils.tooltipssimplecomputationmachine": "unɹ oʇ uoıʇɐʇndɯoɔ ǝɹınbǝɹ sǝdıɔǝɹ ǝɯoS :ǝʇoN", + "ctnhcore.ctnhpredicates.spacephotovoltaicbasestationjeierrorpvblock": "ǝdʎʇ ǝɯɐs ǝɥʇ ǝq ʇsnɯ sʞɔoןq ɔıɐʇןoʌoʇoɥd ןןⱯɔ§", + "ctnhcore.ctnhrecipemodifiers.gtceurecipemodifiercoiltemperaturetoolow": "¡ʍoן ooʇ ǝɹnʇɐɹǝdɯǝʇ ןıoƆ", + "ctnhcore.ctnhrecipemodifiers.gtceurecipemodifierinsufficientvoltage": "¡ʍoן ooʇ ɹǝıʇ ǝbɐʇןoΛ", + "ctnhcore.ctnhrecipetypes.accdanger": "ʇuǝɯıɹǝdxƎ ǝןɔıʇɹɐԀ snoɹǝbuɐᗡɔ§", + "ctnhcore.ctnhrecipetypes.ctnhsrcsacrifice": "%s :sǝɔıɟıɹɔɐS", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeelement": "uoıʇɐɹǝןǝɔɔⱯ uoɹʇɔǝןƎ :ǝpoW", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeelementconsume": "uoɹʇɔǝןƎ :ǝןɔıʇɹɐԀ pǝʇɐɹǝןǝɔɔⱯ", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodenu": "uoıʇɐɹǝןǝɔɔⱯ uoɹʇnǝN :ǝpoW", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodenuconsume": "uoɹʇnǝN :ǝןɔıʇɹɐԀ pǝʇɐɹǝןǝɔɔⱯ", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeproton": "uoıʇɐɹǝןǝɔɔⱯ uoʇoɹԀ :ǝpoW", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeprotonconsume": "uoʇoɹԀ :ǝןɔıʇɹɐԀ pǝʇɐɹǝןǝɔɔⱯ", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodespeedg": "Λǝ⅁ ɟᄅ˙% :ʎʇıɔoןǝΛ pǝɹınbǝᴚ", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodespeedm": "ΛǝW ɟᄅ˙% :ʎʇıɔoןǝΛ pǝɹınbǝᴚ", + "ctnhcore.ctnhrecipetypes.recipearcgeneratormaxrequire": "%d :ʎʇısuǝʇuI ɔɹⱯ pǝɹınbǝᴚ ɹǝʍoԀ-ןןnℲ", + "ctnhcore.ctnhrecipetypes.recipearcgeneratorrequire": "%d :ʎʇısuǝʇuI ɔɹⱯ pǝɹınbǝᴚ", + "ctnhcore.ctnhrecipetypes.recipeindustrialaltarinfo0": "ɟƖ˙% :ʇnduı/uoıʇdɯnsuoɔ ԀꞀ", + "ctnhcore.ctnhrecipetypes.spacephotovoltaicbasestationrecipeeutmodel": "ʇ∩Ǝ %d :uoıʇdɯnsuoɔ ǝbɐʇןoʌ pǝʇɐןnɯıS", + "ctnhcore.ctnhrecipetypes.spacephotovoltaicbasestationrecipepvctier": "%d :ɹǝıʇ ʞɔoןq ɔıɐʇןoʌoʇoɥd pǝɹınbǝᴚ", "ctnhcore.factorymachine.no_meal": "¡ʎɹbunɥ ǝɹɐ sǝǝʎoןdɯƎ", "ctnhcore.factorymachine.no_suitable_machine": "ǝuıɥɔɐW ʇɔǝɹɹoƆ oN", "ctnhcore.factorymachine.no_villager": "ǝǝʎoןdɯƎ oN", + "ctnhcore.factorymachine.sweatshopinfobasicrate": "%sx :ʎʇıʌıʇɔnpoɹԀ ǝsɐᗺ", + "ctnhcore.factorymachine.sweatshopinfovillagercount": "%s :ʇunoƆ ǝǝʎoןdɯƎ", + "ctnhcore.forestmachine.forestmachineinfohumidity": "%d :ןǝʌǝן ʎʇıpıɯnH", + "ctnhcore.forestmachine.forestmachineinfoparallelcount": "%d :ʇunoɔ ןǝןןɐɹɐԀ", + "ctnhcore.hyperplasmaturbineregister.hyperplasmaturbinetooltip0": "ʎbɹǝuƎ ɐɯsɐןԀ ǝ§ puɐ ɟ§ uoıʇɐʇndɯoƆ ǝsıɔǝɹԀ ɐ§ ɟoɟ§ ʎSⱯ⟘NⱯℲ ꞀⱯNIℲϛ§", + "ctnhcore.hyperplasmaturbineregister.hyperplasmaturbinetooltip1": "˙SƎꞀᗺ∩Oᗡ uoıʇɔnpoɹԀ ʇndʇnO ǝɥʇ 'pǝpıʌoɹd uoıʇɐʇndɯoɔ %d ʎɹǝʌǝ ɹoℲ ˙uoıʇɔnpoɹԀ ǝsɐᗺ ǝɥʇ ɥɔɐǝɹ oʇ uoıʇɐʇndɯoɔ %d ǝpıʌoɹԀ", + "ctnhcore.idataitem.datanoise": "%s :ǝsıou ʇuǝɹɹnƆ", + "ctnhcore.idataitem.itemdatatip1": "p+%sɔ+%sq+%sɐ :ɐןnɯɹoɟ ʇuǝɹɹnƆ", + "ctnhcore.idataitem.itemdatatip2": "%s :ɹǝıןdıʇןnɯ pǝuıɐʇqO", + "ctnhcore.idroneitem.itemdronedurability": "%d :ʎʇıןıqɐɹnᗡ ǝuoɹᗡ ɯnɯıxɐW", + "ctnhcore.idroneitem.itemdroneeut": "ʇ/∩Ǝ %d :ǝuoɹp ǝuo ʎq pǝʇɐɹǝuǝb ǝbɐʇןoΛ", + "ctnhcore.idroneitem.itemdronetier": "%d :ɹǝı⟘ ǝuoɹᗡ", + "ctnhcore.industrialprimitiveblastfurnacemachine.industrialprimitiveblastfurnaceinfoparallelcount": "%d :ʇunoɔ ןǝןןɐɹɐԀ", "ctnhcore.largenaquadahreactormachine.power": "%s :ɹǝʍoԀ", - "ctnhcore.machine.digital_miner.tooltip.0": "sǝɹo buıuıɯ ʎןuo 'sǝdıd buıuıɯ ou puɐ pǝǝds ɹǝʇsɐɟ 'sbuıɥ⟘W⟘⅁ ɯoɹℲㄥ§", - "ctnhcore.machine.digital_miner.tooltip.1": "buıʞɹoʍ ǝןıɥʍ ʞunɥɔ ɟןǝs buıpɐoן ǝɔɹoℲq§", - "ctnhcore.machine.digital_miner.tooltip.2": "sʞɔıʇ ㄥ§%dɟ§ sǝʞɐʇ ʞɔoןq ɥɔɐǝ 'buıʞɹoʍ ǝןıɥʍㄥ§ ʇ/∩Ǝ %dɟ§ sǝs∩", - "ctnhcore.machine.oxygen_enricher.no_input": "ʎןddns uǝbʎxo ʇuǝıɔıɟɟnsuI", - "ctnhcore.machine.oxygen_enricher.tooltip.0": "ɯooɹ pǝןɐǝs ǝןqɐɥʇɐǝɹq ɐ uıɐʇuıɐɯ oʇ pınןɟ uǝbʎxo sǝɯnsuoƆ", - "ctnhcore.machine.oxygen_enricher.tooltip.1": "sʞɔoןq %s uıɥʇıʍ sǝɔɐds pǝsoןɔuǝ oʇ uǝbʎxo sǝıןddnS", - "ctnhcore.machine.oxygen_required": "ǝɹǝɥdsoɯʇɐ ǝןqɐɥʇɐǝɹq ɐ sǝɹınbǝɹ ǝuıɥɔɐɯ sıɥ⟘", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui1": "ɟᄅ˙% / ɟᄅ˙% :pǝǝds ɹǝzǝǝɹɟ ʇuǝɹɹnƆ", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui2": "ןǝuɐԀ ǝpɐɹbd∩ uǝdO", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui3": "ɟᄅ˙% / ɟᄅ˙% :ʎɔuǝıɔıɟɟǝ ʎbɹǝuǝ ʇuǝɹɹnƆ", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui4": "%d / %d :ɯsıןǝןןɐɹɐd ʇuǝɹɹnƆ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting1": "ɹǝı⟘ ןıoƆ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting10": "ɹǝı⟘ ɹɐʇןⱯ pooןᗺ ןɐıɹʇsnpuI", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting10tooltip": "IΛ ɹǝı⟘ oʇ spuodsǝɹɹoɔ ㄣ puɐ II ɹǝı⟘ oʇ spuodsǝɹɹoɔ 0\n)ㄣ-0( pןınq oʇ ɹǝıʇ ɹɐʇןⱯ pooןᗺ ןɐıɹʇsnpuI ǝɥʇ ʇǝS\nsɹɐʇןⱯ pooןᗺ ןɐıɹʇsnpuI ɟo uoıʇɐɯɹoɟ ɔıʇɐɯoʇnɐ oʇ sǝıןddɐ ʎןuO", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting1tooltip": "sıɥʇ buıʇʇǝs ɹǝʇɟɐ pǝɹoubı ǝɹɐ sʇuǝɯǝɹınbǝɹ uʍo s,ǝɹnʇɔnɹʇs ǝɥ⟘\n)pǝıɟıɔǝds ɹǝıʇ ou :0( ʎןןɐɔıʇɐɯoʇnɐ pǝɔɐןd sןıoɔ ɟo ɹǝıʇ ǝɥʇ ʇǝS", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting2": "ʇunoƆ ǝɹnʇɔnɹʇS pǝʇɐǝdǝᴚ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting2tooltip": "sɯooɹuɐǝןƆ oʇ ʎןddɐ ʇou sǝoᗡ\n)˙ɔʇǝ 'sǝuıꞀ ʎןqɯǝssⱯ 'sɹǝʍo⟘ uoıʇɐןןıʇsıᗡ( sǝɹnʇɔnɹʇs ǝןqɐʇɐǝdǝɹ ɹoɟ pǝɔɐןd suoıʇɔǝs pǝʇɐǝdǝɹ ɟo ɹǝqɯnu ǝɥʇ ʇǝS", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting3": "ǝpoW ssǝןɥɔʇɐH", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting3tooltip": "pǝɔɐןd ǝq ןןıʍ sǝɥɔʇɐɥ ou 'pǝןqɐuǝ uǝɥM\n)pǝןqɐuǝ :Ɩ 'pǝןqɐsıp :0( ǝpoɯ ssǝןɥɔʇɐɥ ǝןqɐuƎ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting4": "ǝpoW ʇuǝɯǝɔɐןdǝᴚ ןıoƆ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting4tooltip": "sןıoɔ pǝɔɐןdǝɹ ǝɥʇ ɹoɟ ɯooɹ sɐɥ ʎɹoʇuǝʌuı ǝɥʇ ǝɹns ǝʞɐW\nɹǝıʇ pǝıɟıɔǝds ǝɥʇ ɥʇıʍ pǝɔɐןdǝɹ ǝɹɐ sןıoɔ ןןɐ 'pǝןqɐuǝ uǝɥM\n)pǝןqɐuǝ :Ɩ 'pǝןqɐsıp :0( ǝpoɯ ʇuǝɯǝɔɐןdǝɹ ןıoɔ ǝןqɐuƎ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting5": "ǝbɐɹoʇS ƎⱯ ǝs∩", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting5tooltip": "ʇuıoԀ ssǝɔɔⱯ ssǝןǝɹıM ƎW uɐ ɥbnoɹɥʇ ʞɹoʍʇǝu ǝɥʇ oʇ ʇɔǝuuoƆ\nʇsɹıɟ pǝɥɔɹɐǝs sı ǝbɐɹoʇs ƎⱯ ǝɥʇ 'pǝןqɐuǝ uǝɥM\n)pǝןqɐuǝ :Ɩ 'pǝןqɐsıp :0( ǝbɐɹoʇs ƎⱯ ǝןqɐuƎ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting6": "spınןℲ ǝɔɐןԀ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting6tooltip": "Ɩ ɟo ǝzıs ʞɔɐʇs ɐ ǝʌɐɥ ʇsnɯ sɹǝuıɐʇuoɔ pınןɟ ǝןqɐʞɔɐʇS\nǝbɐɹoʇs ƎⱯ ɹo ʞɔɐdʞɔɐq/ʎɹoʇuǝʌuı ǝɥʇ uı sɹǝuıɐʇuoɔ pınןɟ ɯoɹɟ pǝɯnsuoɔ puɐ ɹoɟ pǝɥɔɹɐǝs ǝɹɐ spınןɟ 'pǝןqɐuǝ uǝɥM\n)pǝןqɐuǝ :Ɩ 'pǝןqɐsıp :0( ʇuǝɯǝɔɐןd pınןɟ ǝןqɐuƎ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting7": "spınןℲ uı ǝɔɐןԀ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting7tooltip": "spınןɟ uı pǝɔɐןd ǝq ʇou ןןıʍ spınןɟ 'spınןℲ ǝɔɐןԀ ɥʇıʍ ɹǝɥʇǝboʇ pǝןqɐuǝ uǝɥM\nǝɔɐds ʎʇdɯǝ sɐ pǝʇɐǝɹʇ ǝɹɐ ǝɔɐds ǝɥʇ uı spınןɟ 'pǝןqɐuǝ uǝɥM\n)pǝןqɐuǝ :Ɩ 'pǝןqɐsıp :0( spınןɟ uı sʞɔoןq ǝɔɐןԀ", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsettingtitle": "sbuıʇʇǝS uoıʇɐɯɹoℲ ʞɔoןqıʇןnW", + "ctnhcore.mechanical.mechanicallathestructure": "uoıʇɐʇuǝıɹo puɐ uoıʇısod buıpnןɔuı 'uoıʇɐɯɹoɟuı ǝɹnʇɔnɹʇs s,IWƎ uı uʍoɥs sɐ ʎןʇɔɐxǝ pǝɔɐןd ǝq ʇsnɯ ǝɹnʇɔnɹʇs ǝɥʇ uı ǝɥʇɐן ǝɥ⟘", + "ctnhcore.mechanical.mechanicallathestructure1": "pǝɹınbǝɹ ʎןןɐnʇɔɐ ǝɹɐ 9 ʎןuo ؛ʇɔǝɹɹoɔuı sı IWƎ uı uʍoɥs sǝɥʇɐן ɟo ɹǝqɯnu ǝɥ⟘ㄥ§", + "ctnhcore.multiblocksa.advancedcokeoventooltip0": "uǝʌO ǝʞoƆ pǝɔuɐʌpⱯ", + "ctnhcore.multiblocksa.advancedcokeoventooltip1": "ɯsıןǝןןɐɹɐd ᄅƐ ɥʇıʍ sǝɯoƆן§9§", + "ctnhcore.multiblocksa.advancedcokeoventooltip2": "spuoɔǝs ϛƖ ʇɐ pǝxıɟ sı ǝɯıʇ ǝdıɔǝɹ puɐ 'sǝdıɔǝɹ uǝʌo ǝʞoɔ unɹ ʎןuo uɐƆ", + "ctnhcore.multiblocksa.advancedcokeoventooltip3": "ןıo ɔıןouǝɥd puɐ sʇɔnpoɹd ǝʞoɔ ɟo ʇunoɯɐ ǝbɹɐן ɐ sǝɔnpoɹԀ", + "ctnhcore.multiblocksa.advancedcokeoventooltip4": "sןןǝɔ uǝʌo ǝʞoɔ ǝsn ʇouuɐƆן§ɔ§", + "ctnhcore.multiblocksa.astronomicaltooltip0": "ʇןnɔıɟɟıp sı ɯǝɥʇ buıʎɟǝp ʇnq 'ʎsɐǝ sı suǝʌɐǝɥ ǝɥʇ buıʍouʞ", + "ctnhcore.multiblocksa.astronomicaltooltip1": "buıʞɹoʍ ǝןıɥʍ snq dıɥɔ ǝɥʇ uı sdıɥɔ ǝɥʇ ɹoɟ ɐʇɐp ʇɔǝןןoɔ ʎןןɐɔıʇɐɯoʇnɐ ןןıʍ ʇnq 'ʇɥbıןuns ʇɔǝɹıp ɹǝpun ʞɹoʍ ʇouuɐƆ", + "ctnhcore.multiblocksa.bioreactortooltip0": "ʞuɐʇ bıq Ɐ", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip0": "˙ǝɔɐuɹnɟ ʇsɐןq ɔıɹʇɔǝןǝ uɐ uɐɥʇ ɹǝʇsɐℲ", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip1": "˙sǝןqnop uoıʇdɯnsuoɔ ǝɥʇ 'ɹ§ΛH9§ ǝʌoqɐ ɹǝıʇ ǝbɐʇןoʌ ɥɔɐǝ ɹoℲ ˙puoɔǝs ɹǝd ɯnǝɥʇoɹʎԀ buızɐןᗺ ɟo ɹ§ᗺɯ0Ɩɐ§ sı uoıʇdɯnsuoɔ ǝsɐᗺ", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip2": "˙ʎbɹǝuǝ xϛㄥ˙0 sǝɯnsuoƆ", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip3": "˙ʎןsnoǝuɐʇןnɯıs sǝdıɔǝɹ 8 ɟo buıssǝɔoɹd sʍoןןⱯ", + "ctnhcore.multiblocksa.coketowertooltip0": "¡ǝuıן uoıʇɔnpoɹd ןɐɔıɯǝɥɔoɹʇǝd ɹnoʎ ןǝnɟ oʇ ʎʇıɔɐdɐɔ buıʞoɔ ǝןqɐpıɯɹoɟ sʇsɐoᗺ", + "ctnhcore.multiblocksa.coketowertooltip1": "sǝɔɐuɹnɟ ןɐıɹʇsnpuı buıןɐʌıɹ spǝǝds buıɹǝʇsıןq sɹǝʌıןǝᗡ", + "ctnhcore.multiblocksa.crystallizertooltip0": "uoıʇɐzıןןɐʇsʎɹƆ ןɐuoıssǝɟoɹԀ", + "ctnhcore.multiblocksa.crystallizertooltip1": "˙ʎןʇuǝıɔıɟɟǝ ǝɹoɯ sǝdıɔǝɹ ןɐʇsʎɹɔ sǝʇǝןdɯoɔ ɹǝzıןןɐʇsʎɹɔ ǝɥ⟘", + "ctnhcore.multiblocksa.crystallizertooltip2": "˙sǝsɐǝɹɔuı ןǝʌǝן ןıoɔ ǝɥʇ sɐ sǝʌoɹdɯı ʎɔuǝıɔıɟɟƎ", + "ctnhcore.multiblocksa.crystallizertooltip3": "˙sǝdıɔǝɹ ǝʌɐןɔoʇnɐ ǝɯos puɐ sǝdıɔǝɹ uoıʇısodǝp ɹodɐʌ ןɐɔıɯǝɥɔ ssǝɔoɹd uɐƆ", + "ctnhcore.multiblocksa.crystallizertooltip4": "˙sןɐıɹǝʇɐɯ buıʌɐs ɹoɟ ʇuɐʇsıssɐ ʇsǝq ǝɥ⟘", + "ctnhcore.multiblocksa.decaypoolstooltip0": "ʎɐɔǝᗡ", + "ctnhcore.multiblocksa.decaypoolstooltip1": "˙pǝןqɐsıp sı uoıʇɐɹǝןǝɔɔɐ pןɹoʍ puɐ pǝɹǝʍodun sı ǝuıɥɔɐɯ ǝɥʇ '0 oʇ ʇǝs sı pɹɐoq ʇınɔɹıɔ ǝɥʇ uǝɥM", + "ctnhcore.multiblocksa.decaypoolstooltip2": "˙pǝןqɐuǝ sı uoıʇɐɹǝןǝɔɔɐ pןɹoʍ puɐ pǝɹǝʍod sı ǝuıɥɔɐɯ ǝɥʇ 'Ɩ oʇ ʇǝs sı pɹɐoq ʇınɔɹıɔ ǝɥʇ uǝɥM", + "ctnhcore.multiblocksa.decaypoolstooltip3": "˙ssǝɔoɹd ʎɐɔǝp ǝɥʇ sǝʇɐɹǝןǝɔɔⱯ", + "ctnhcore.multiblocksa.desaltingfactorytooltip0": "¿ʇı ʇ,usı 'ʎןpuǝıɹɟ-oɔǝ—ɹǝʇɐʍɐǝs ɟo ʇno ʇןɐs buıʎɹᗡ", + "ctnhcore.multiblocksa.digestiontanktooltip0": "˙˙˙sןɐıɹǝʇɐɯ ǝןqɐnןɐʌ ʎɹǝʌ sǝɔnpoɹd ʇı 'ʎןןɐnʇɔⱯ", + "ctnhcore.multiblocksa.digestiontanktooltip1": ":ʞuɐ⟘ uoıʇsǝbıᗡ ǝɥʇ ɟo ɯsıuɐɥɔǝW buıʇsodɯoƆ", + "ctnhcore.multiblocksa.digestiontanktooltip2": "˙pɹıɥʇ-ǝuo oʇ uʍop 'ʎɔuǝıɔıɟɟǝ ǝɥʇ ɹǝʍoן ǝɥʇ 'sǝʇɐıʌǝp ʇı ɹǝɥʇɹnɟ ǝɥ⟘ ˙ǝɹnʇɐɹǝdɯǝʇ ןɐɯıʇdo ʇɐ ʎɔuǝıɔıɟɟǝ xᄅ˙Ɩ ʇǝb sǝdıɔǝᴚ ˙sǝǝɹbǝp ɹ§8Ɛᄅ§ puɐ ɹ§9Ɛᄅ§ uǝǝʍʇǝq sı ǝɹnʇɐɹǝdɯǝʇ ɥʇʍoɹb ןɐɯıʇdo ǝɥ⟘", + "ctnhcore.multiblocksa.fermentingtanktooltip0": "¡ʇı uo ǝʎǝ uɐ dǝǝʞ sʎɐʍןⱯ ˙ɥʇʍoɹb ןɐıqoɹɔıɯ ɹoɟ ʎןןɐɔıɟıɔǝds pǝubısǝp ʞuɐʇ Ɐ", + "ctnhcore.multiblocksa.fermentingtanktooltip1": ":ʞuɐ⟘ buıʇuǝɯɹǝℲ ǝɥʇ ɟo ɯsıuɐɥɔǝW ɥʇʍoɹ⅁ ןɐɔıboןoıᗺ", + "ctnhcore.multiblocksa.fermentingtanktooltip2": "˙pɹıɥʇ-ǝuo oʇ uʍop 'ʎɔuǝıɔıɟɟǝ ǝɥʇ ɹǝʍoן ǝɥʇ 'sǝʇɐıʌǝp ʇı ɹǝɥʇɹnɟ ǝɥ⟘ ˙ǝɹnʇɐɹǝdɯǝʇ ןɐɯıʇdo ʇɐ ʎɔuǝıɔıɟɟǝ xᄅ˙Ɩ ʇǝb sǝdıɔǝᴚ ˙sǝǝɹbǝp ɹ§8Ɛᄅ§ puɐ ɹ§9Ɛᄅ§ uǝǝʍʇǝq sı ǝɹnʇɐɹǝdɯǝʇ ɥʇʍoɹb ןɐɯıʇdo ǝɥ⟘", + "ctnhcore.multiblocksa.fermentingtanktooltip3": "˙%0ᄅ ɟo ɯnɯıuıɯ ɐ ɥʇıʍ 'ʎʇdɯǝ ɹo ןןnɟ sı ʞuɐʇ ǝɥʇ uǝɥʍ ʇsǝʍoן sı ʎɔuǝıɔıɟɟƎ ˙ɹ§sǝןqnop ʎɔuǝıɔıɟɟǝ ɥʇʍoɹbᄅ§ 'ʎʇıɔɐdɐɔ sʇı ɟo ɟןɐɥ sı ʞuɐʇ ʇnduı ǝɥʇ uı ǝɯnןoʌ pınbıן ǝɥʇ uǝɥM ˙uoıʇɐnbǝ ɔıʇsıboן ǝɥʇ sʍoןןoɟ ɥʇʍoɹb ןɐıqoɹɔıW", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip0": "buıʞɐɯןǝǝʇs ɹoɟ ɹǝdןǝɥ ʇsǝq ɹnoʎ 'ǝɔɐuɹnɟ ʇsɐןq ǝʌıʇıɯıɹd ןnɟɹǝʍod ǝɹoɯ Ɐ", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip1": "pǝddoʇs sı ssǝɔoɹd ǝɥʇ ǝɔuo ʎןpıdɐɹ uʍop ןooɔ ןןıʍ puɐ 'ǝdıɔǝɹ ɐ buıuunɹ ǝןıɥʍ dn ʇɐǝɥ ʎןsnonuıʇuoɔ ןןıʍ ǝɔɐuɹnɟ ʇsɐןq ǝʌıʇıɯıɹd ןɐıɹʇsnpuı ǝɥ⟘", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip2": "ɯsıןǝןןɐɹɐd 8 ɟo ɯnɯıxɐɯ ɐ oʇ dn 'ǝɔɐuɹnɟ ʇsɐןq ǝʌıʇıɯıɹd ןɐıɹʇsnpuı ǝɥʇ ɟo ɯsıןǝןןɐɹɐd ǝɥʇ ɹǝɥbıɥ ǝɥʇ 'ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ɹǝɥbıɥ ǝɥ⟘", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip3": "ʎɔuǝıɔıɟɟǝ ǝןqnop ɟo ɯnɯıxɐɯ ɐ oʇ dn 'ǝɔɐuɹnɟ ʇsɐןq ǝʌıʇıɯıɹd ןɐıɹʇsnpuı ǝɥʇ ɟo ʎɔuǝıɔıɟɟǝ ǝɥʇ ɹǝɥbıɥ ǝɥʇ 'ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ɹǝɥbıɥ ǝɥ⟘", + "ctnhcore.multiblocksa.ionexchangertooltip0": "ǝbuɐɥɔxƎ uoI", + "ctnhcore.multiblocksa.largebottletooltip0": "˙ɹǝuıɐʇuoɔ ǝbɹɐן ɐ ʎןnɹʇ sı sıɥ⟘", + "ctnhcore.multiblocksa.largebottletooltip1": "˙pınbıן ɟo sʇǝʞɔnq 000'0Ɩ oʇ dn ǝɹoʇs uɐƆ", + "ctnhcore.multiblocksa.largebottletooltip2": "˙ɹ§s/qɯ00Ɩǝ§ ɟo ǝʇɐɹ ɐ ʇɐ pǝɯnsuoɔ ǝq ןןıʍ pınbıן sʇı 'ʞuɐʇ buıʇuǝɯɹǝɟ ǝbɹɐן ɐ ɥʇıʍ pǝsn uǝɥM", + "ctnhcore.multiblocksa.largefermentingtanktooltip0": "uoıʇɐʇuǝɯɹǝℲ ןɐıɹʇsnpuI ʇuǝıɔıɟɟƎ", + "ctnhcore.multiblocksa.largefermentingtanktooltip1": "˙)%00ᄅ( ɯnıpǝW ǝןıɹǝʇS ')%0ϛƖ( ɯnıpǝW ɔısɐᗺ ')%0ϛ( ɹǝʇɐM :sǝsɐǝɹɔuı ʎɔuǝıɔıɟɟǝ ɯnɯıuıɯ ǝɥʇ 'ǝdʎʇ pınbıן ɔıɟıɔǝds ɐ ɥʇıʍ ǝןʇʇoq uoıʇɐʇuǝɯɹǝɟ ǝbɹɐן ɐ buıɥɔɐʇʇɐ ʎᗺ ˙sǝɹnʇɔnɹʇs ʎɹɐıןıxnɐ ʇɔǝuuoɔ uɐƆ", + "ctnhcore.multiblocksa.largegascollectionchambertooltip0": "ɹǝqɯɐɥƆ uoıʇɔǝןןoƆ sɐ⅁ ןɐuoısuǝɯıᗡ", + "ctnhcore.multiblocksa.largegascollectionchambertooltip1": "uoısuǝɯıp ʎuɐ ɯoɹɟ sǝsɐb ʇɔǝןןoɔ uɐɔ ǝuıɥɔɐɯ sıɥ⟘", + "ctnhcore.multiblocksa.largegascollectionchambertooltip2": "sʇɔnpoɹd ǝɥʇ ʇɔǝןןoɔ oʇ ʎןqɯǝssⱯ ʇndʇnO ƎW uɐ ǝsn oʇ pǝpuǝɯɯoɔǝɹ sı ʇı 'ǝbɹɐן sı ʇndʇno sʇı ǝɔuıS", + "ctnhcore.multiblocksa.largesteelalloyfurnacetooltip0": "ǝɔɐuɹnℲ ʎoןןⱯ ןǝǝʇS", + "ctnhcore.multiblocksa.largesteelfurnacetooltip0": "ǝɔɐuɹnℲ ןǝǝʇS", + "ctnhcore.multiblocksa.martialmoralityeyetooltip0": "ǝʎƎ ןɐıpɹoɯıɹԀ ǝɥʇ ɟo uoısɹǝʌ ɹooԀ", + "ctnhcore.multiblocksa.martialmoralityeyetooltip1": "sǝbɐʇs ʎןɹɐǝ ǝɥʇ uı sǝuoʇs ʍɐɹ ㄣ9 puɐ ɯɐǝʇs ɟo qɯ000ㄣ9 sǝɯnsuoƆ", + "ctnhcore.multiblocksa.martialmoralityeyetooltip2": "uooW ǝɥʇ puɐ 'ʇsǝɹoℲ ʇɥbıןıʍ⟘ 'pןɹoʍɹǝʌO ǝɥʇ ɯoɹɟ sǝɹo sǝɔnpoɹԀ", + "ctnhcore.multiblocksa.martialmoralityeyetooltip3": "sǝsɐǝɹɔuı ןǝʌǝן ǝbɐʇןoʌ ǝɥʇ sɐ sǝdıɔǝɹ ǝɹoɯ sʞɔoןu∩", + "ctnhcore.multiblocksa.martialmoralityeyetooltip4": "sǝbɐʇs ʎןɹɐǝ ǝɥʇ uı sɹɐʇs buıןןɐɟ uɐɥʇ ןnɟǝsn ǝɹoW", + "ctnhcore.multiblocksa.martialmoralityeyetooltip5": "¡ʎɐʍɐ ʎɐʇS ˙ɹǝbuɐp ɟo ɐɹnɐ uɐ ɥʇıʍ pǝןןıɟ 'ǝɔɹoɟ snoıɹǝʇsʎɯ ɐ ǝʇɐuɐɯǝ oʇ sɯǝǝs ǝɹnʇɔnɹʇs ǝɥʇ ɟo ɹǝʇuǝɔ ǝɥ⟘", + "ctnhcore.multiblocksa.martialmoralityeyetooltip6": "ʎboןouɥɔǝ⟘ ǝɔɐdS ʇsıʍ⟘ :ǝɔɹnos ǝɹnʇɔnɹʇS", + "ctnhcore.multiblocksa.meadowtooltip0": "buızɐɹ⅁ pǝʇɐɯoʇnⱯㄥ§", + "ctnhcore.multiblocksa.meadowtooltip1": "˙ssǝɹʇs pǝɹınbǝɹ ǝɥʇ ×u ɥʇıʍ pǝpıʌoɹd uǝɥʍ buıssǝɔoɹd ןǝןןɐɹɐd u suıɐ⅁", + "ctnhcore.multiblocksa.meadowtooltip2": "˙ǝɯıʇ ǝɯɐs ǝɥʇ ʇɐ sןɐɯıuɐ ʇuǝɹǝɟɟıp ɟo buıpǝǝɹq sʍoןןⱯ", + "ctnhcore.multiblocksa.meadowtooltip3": "¡sdoɹɔ buıʍoɹb ʇou ǝɹɐ noʎ ʇɐɥʇ ǝzıןɐǝɹ noʎ ןןıʍ ʎɐʍɐ unɹ sןɐɯıuɐ ǝɥʇ uǝɥʍ ʎןuOㄥ§", + "ctnhcore.multiblocksa.megalcrtooltip0": "ɹ§spɐǝɹɥʇ snouoɹɥɔuʎsɐ ㄣ sɐHq§", + "ctnhcore.multiblocksa.megalcrtooltip1": "uoıʇɐɹǝdo pǝpɐǝɹɥʇıʇןnɯ ǝɹnbıɟuoɔ oʇ ɹ§sǝɥɔʇɐH ןoɹʇuoƆ pɐǝɹɥ⟘ snouoɹɥɔuʎsⱯp§ ǝs∩", + "ctnhcore.multiblocksa.naqreactormk3tooltip1": "sǝןqɯǝɹʇ ɥʇɹɐǝ ǝɥʇ 'ʎbɹǝuǝ ʇsɐΛ", + "ctnhcore.multiblocksa.naqreactormk3tooltip2": "ɐɯsɐןd ןǝʞɔıu ʇnoɥʇıʍ ןǝnɟ ǝɯnsuoɔ ʎןןnɟ ʇouuɐɔ - ןǝnɟ pǝbɹɐɥɔɹǝdns buısn ɹǝʍod sǝʇɐɹǝuǝ⅁", + "ctnhcore.multiblocksa.naqreactormk3tooltip3": "uoıʇɐɹnbıɟuoɔ ǝuıɥɔɐɯ ǝɥʇ uı ʇuǝsǝɹd ǝq ʇsnɯ ǝɹoɔ ɹǝʍod Ɐ", + "ctnhcore.multiblocksa.naqreactormk3tooltip4": "sǝʌoɹdɯı ʎɔuǝıɔıɟɟǝ uoıʇɐɹǝuǝb ɹǝʍod 'sǝsɐǝɹɔuı ǝɹnʇɐɹǝdɯǝʇ ǝɹoɔ ǝɥʇ sⱯ", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip0": "uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɹɐןoS ɔısɐᗺ", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip1": "ʇ/∩Ǝ ᄅƖϛ ɹ§:ʇndʇnO ǝsɐᗺǝ§", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip2": "pןɹoʍɹǝʌO ǝɥʇ uı uoou sʇɔǝןɟǝɹ ʇndʇno ǝsɐᗺ ˙suoısuǝɯıp ssoɹɔɐ sǝıɹɐʌ ʎɔuǝıɔıɟɟƎ ˙ǝɯıʇʎɐp buıɹnp ʎןuo sǝʇɐɹǝdO", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip0": "uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɹɐןoS pǝɔuɐʌpⱯ", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip1": "ʇ/∩Ǝ 8ㄣ0ᄅ ɹ§:ʇndʇnO ǝsɐᗺǝ§", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip2": "pןɹoʍɹǝʌO ǝɥʇ uı uoou sʇɔǝןɟǝɹ ʇndʇno ǝsɐᗺ ˙suoısuǝɯıp ssoɹɔɐ sǝıɹɐʌ ʎɔuǝıɔıɟɟƎ ˙ǝɯıʇʎɐp buıɹnp ʎןuo sǝʇɐɹǝdO", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip0": "uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɹɐןoS ǝʇɐɯıʇן∩", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip1": "ʇ/∩Ǝ ᄅ6Ɩ8 ɹ§:ʇndʇnO ǝsɐᗺǝ§", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip2": "pןɹoʍɹǝʌO ǝɥʇ uı uoou sʇɔǝןɟǝɹ ʇndʇno ǝsɐᗺ ˙suoısuǝɯıp ssoɹɔɐ sǝıɹɐʌ ʎɔuǝıɔıɟɟƎ ˙ǝɯıʇʎɐp buıɹnp ʎןuo sǝʇɐɹǝdO", + "ctnhcore.multiblocksa.plasmacondensertooltip1": "ʍǝp puɐ ʇsoɹɟ oʇuı sǝsuǝpuoɔ ɹıɐ ǝsuǝp ǝɥ⟘", + "ctnhcore.multiblocksa.sinteringkilntooltip0": "sןɐıɹǝʇɐɯ buıʇɔɐdɯoɔ ɹoɟ suoʇsıd ןɐuɹǝʇuı ǝʇɐʌıʇɔɐ oʇ ssǝɹʇS ᄅ6Ɩ'8 sǝɹınbǝᴚ", + "ctnhcore.multiblocksa.slaughterhousetooltip0": "ǝuıɥɔɐɯ buıןןıʞ ssǝןıɔɹǝɯ Ɐ", + "ctnhcore.multiblocksa.slaughterhousetooltip1": "pǝʇɹǝsuı ǝq uɐɔ sɹǝuʍɐds pǝɹǝʍod ǝןdıʇןnW ˙sdoɹp qoɯ buıpuodsǝɹɹoɔ ʇndʇno ʎןןɐɔıʇɐɯoʇnɐ ןןıʍ ǝuıɥɔɐɯ ǝɥʇ 'snq ʇnduı ǝɥʇ uı pǝɔɐןd ǝɹɐ sɹǝuʍɐds pǝɹǝʍod uǝɥM", + "ctnhcore.multiblocksa.slaughterhousetooltip2": ")ㄣ sǝpıʌoɹd ΛH( ʇunoɔ uʍɐds ןɐnʇɹıʌ oʇ ㄣ+ sppɐ ǝsɐǝɹɔuı ɹǝıʇ ǝbɐʇןoʌ ɥɔɐƎ", + "ctnhcore.multiblocksa.slaughterhousetooltip3": "ǝɯıʇ buıssǝɔoɹd ǝsɐǝɹɔuı ןןıʍ sǝnןɐʌ ɹoɯɹɐ puɐ ɥʇןɐǝɥ qoɯ ɹǝɥbıH", + "ctnhcore.multiblocksa.slaughterhousetooltip4": "ǝɯıʇ buıssǝɔoɹd ǝɔnpǝɹ ןןıʍ sʇuǝɯʇuɐɥɔuǝ puɐ ǝbɐɯɐp uodɐǝM", + "ctnhcore.multiblocksa.slaughterhousetooltip5": "ʇɔǝɟɟǝ ǝʞɐʇ osןɐ sʇuǝɯʇuɐɥɔuǝ ɹǝɥʇo puɐ ǝunʇɹoℲ", + "ctnhcore.multiblocksa.supercentrifuge": "ǝbnɟıɹʇuǝƆ ɹǝdnS", + "ctnhcore.multiblocksa.supercentrifugeparallel": "ǝpoɯ ǝbnɟıɹʇuǝɔ ןɐɯɹou uı suoıʇɐɹǝdo ןǝןןɐɹɐd 8 sǝpıʌoɹԀ", + "ctnhcore.multiblocksa.superebftooltip0": "¡ɹǝʇsɐɟ %0ϛ ǝɹɐ sǝdıɔǝɹ ןןⱯ", + "ctnhcore.multiblocksa.sweatshoptooltip0": "ǝnןɐΛ snןdɹnS puɐ uoıʇɔnpoɹԀ ɟo suɐǝW", + "ctnhcore.multiblocksa.sweatshoptooltip1": ")sɹǝbɐןןıʌ ɟo ɹǝqɯnu / ᄅ( x ǝɯıʇ ǝdıɔǝᴚ ˙ʎɔuǝıɔıɟɟǝ sǝuıɯɹǝʇǝp ʎɹoʇɔɐɟ ǝɥʇ uı sɹǝbɐןןıʌ ɟo ɹǝqɯnu ǝɥ⟘", + "ctnhcore.multiblocksa.sweatshoptooltip2": "˙Ɩ ʎq sǝsɐǝɹɔuı ʇıɯıן ǝɥʇ 'ɥʇbuǝן ʎɹoʇɔɐɟ ǝɥʇ oʇ pǝppɐ sʞɔoןq ㄣ ʎɹǝʌǝ ɹoɟ ؛sɹǝʞɹoʍ ㄣ :ʇıɯıן ןɐıʇıuI ˙ǝzıs ʎɹoʇɔɐɟ ǝɥʇ ʎq pǝʇıɯıן sı ʎɹoʇɔɐɟ ǝɥʇ uı sɹǝʞɹoʍ ɟo ɹǝqɯnu ǝʌıʇɔǝɟɟǝ ǝɥ⟘", + "ctnhcore.multiblocksa.sweatshoptooltip3": "==============================\nsǝdıɔǝᴚ buıɥɔʇƎ ɹǝsɐꞀ ---- ɹossǝɔoɹԀ ɹǝsɐꞀ\nsǝdıɔǝᴚ ǝuıɥɔɐW buıןןoᴚ ǝɹıM ---- ʍɐS pǝɹǝʍoԀ\nsǝdıɔǝᴚ ɹǝpuıɹ⅁ ---- ןǝǝɥM buıɥsnɹƆ\nsǝdıɔǝᴚ buıɯɹoℲ pınןℲ ---- uısɐᗺ ʞɹoM\nsǝdıɔǝᴚ ɹoʇɔɐɹʇxƎ ---- ɹǝuɹnᗺ ǝzɐןᗺ\nsǝdıɔǝᴚ ǝbnɟıɹʇuǝƆ ---- ǝbnɟıɹʇuǝƆ\nsǝdıɔǝᴚ ǝɥʇɐꞀ ---- ǝɥʇɐꞀ\nsǝdıɔǝᴚ ɹǝxıW ---- ɹǝxıW pǝɹǝʍoԀ\nsǝdıɔǝᴚ ןןıW buıןןoᴚ ---- ǝuıɥɔɐW buıןןoᴚ pǝɹǝʍoԀ\n:sǝdıɔǝɹ ǝןqɐןıɐʌɐ ǝɥʇ ǝuıɯɹǝʇǝp pǝɔɐןd )sǝuıɥɔɐɯ( sןɐıɹǝʇɐɯ uoıʇɔnpoɹd ǝɥ⟘", + "ctnhcore.multiblocksa.sweatshoptooltip4": ")sǝuıɥɔɐɯ ɟo ɹǝqɯnu(ʇɹbs = ɯsıןǝןןɐɹɐԀ :sǝdıɔǝɹ buıpuodsǝɹɹoɔ ɟo ɯsıןǝןןɐɹɐd ǝɥʇ sǝuıɯɹǝʇǝp pǝɔɐןd )sǝuıɥɔɐɯ( sןɐıɹǝʇɐɯ uoıʇɔnpoɹd ɟo ɹǝqɯnu ǝɥ⟘", + "ctnhcore.multiblocksa.sweatshoptooltip5": "))sɯɹɐ ɔıʇoqoɹ ɟo ɹǝqɯnu(ʇɹbs * ϛᄅ˙0 + Ɩ / Ɩ( x ǝɯıʇ ǝdıɔǝᴚ ˙pǝǝds uoıʇnɔǝxǝ ǝdıɔǝɹ ןןɐɹǝʌo ǝɥʇ sǝʌoɹdɯı sɯɹɐ ɔıʇoqoɹ buıppⱯ", + "ctnhcore.multiblocksa.sweatshoptooltip6": "˙pǝǝds uoıʇnɔǝxǝ ǝdıɔǝɹ sǝʌoɹdɯı pǝɔɐןd sǝuıɥɔɐɯ ɟo ʎʇısɹǝʌıp ǝɥ⟘", + "ctnhcore.multiblocksa.sweatshoptooltip7": "˙ɹǝıʇ ǝdıɔǝɹ ǝɥʇ ɟo ǝɹɐnbs ǝɥʇ ʎq pǝıןdıʇןnɯ sı ǝɯıʇ ǝsɐq ǝɥʇ ǝɹoɯ ǝɥʇ 'ɹǝıʇ ǝbɐʇןoʌ ǝdıɔǝɹ ǝɥʇ ɹǝɥbıɥ ǝɥ⟘ ˙xᄅ sı ǝɯıʇ ǝdıɔǝɹ ǝsɐq ǝɥ⟘", + "ctnhcore.multiblocksa.sweatshoptooltip8": "˙sןɐǝW ɹǝʞɹoM ǝןdɯıS ɟo sbuıʌɹǝs )sǝǝʎoןdɯǝ ɟo ɹǝqɯnu( sǝɯnsuoɔ ǝuıɥɔɐɯ ǝɥʇ 'spuoɔǝs ϛ ʎɹǝʌƎ", + "ctnhcore.multiblocksa.ultrasonicapparatus": "ɹoʇdnɹsıᗡ ɔıuosɐɹʇן∩", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip0": "ɯɐǝʇs ɥʇıʍ ʇɹɐǝɥ ɹnoʎ ɯɹɐM", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip1": "ɯǝʇsʎs ǝɥʇ ǝʌoqɐ sʞɔoןq 0Ɩ uıɥʇıʍ sʞɹoʍ ʎןuo buıʇɐǝH ˙ʇı punoɹɐ ɹ§ɐǝɹɐ ʞunɥɔ ϛ×ϛ ɐɐ§ ʇɐǝɥ uɐɔ ʇı 'ʞunɥɔ ǝuo buıʎdnɔɔO ˙buıʇɐǝɥ ɹoɟ ɯɐǝʇs sǝsn ɯǝʇsʎs buıʇɐǝɥ ɹooןɟɹǝpun ǝɥ⟘", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip2": "pǝʇsnɹ uǝɥʍ ɯǝʇsʎs ǝɥʇ ɟo ʎɔuǝıɔıɟɟǝ buıʇɐǝɥ ǝɥʇ buıɔnpǝɹ 'ǝɯıʇ ɹǝʌo ʇsnɹ ןןıʍ sǝןıʇ ʞɔıɹq ɹǝddoƆ", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip3": "%ϛᄅ ʇɐ buıʇʇǝs ɯnɯıuıɯ ɥʇıʍ 'uoıʇdɯnsuoɔ ɯɐǝʇs puɐ ɹǝʍod buıʇɐǝɥ buıɔnpǝɹ sʍoןןɐ ǝʇɐɹ ǝןqɐʇsnظpⱯ", + "ctnhcore.multiblocksa.vacuumsinteringtowertooltip0": "buıɹǝʇuıS ɯnnɔɐΛ", + "ctnhcore.multiblocksa.voidminertooltip0": "ǝɔuǝssǝ s,ɥʇɹɐǝ ǝɥʇ buıbbıp 'sןɐıɹǝʇɐɯ s,uǝʌɐǝɥ buıʇsǝʌɹɐH", + "ctnhcore.multiblocksa.voidminertooltip1": "sǝɹo sʇɔɐɹʇxǝ puɐ sǝʇɐɹǝuǝb ʎןןɐɔıʇɐɯoʇnɐ ɹǝuıW pıoΛ ǝɥ⟘", + "ctnhcore.multiblocksa.voidminertooltip2": "ɹǝdןǝɥ ןɐıʇuǝssǝ uɐ sı ɹǝuıW pıoΛ ǝɥʇ 'sןɐɹǝuıɯ ɹoɟ puɐɯǝp ǝbnɥ ɐ ǝʌɐɥ noʎ ɟI", + "ctnhcore.multiblocksa.voidminertooltip3": "ǝɹnʇɐɹǝdɯǝʇ buıʇsnظpɐ uǝɥʍ pǝɯnsuoɔ ǝɹɐ ɯnǝɥʇoɹʎԀ puɐ ɯnǝɥʇoʎɹƆ ؛pınןɟ buıןןıɹp ɟo ᗺ 000'00Ɩ sǝɯnsuoɔ uoıʇɐɹǝdo ɥɔɐƎ", + "ctnhcore.multiblocksa.voidminertooltip4": "˙ᄅ0˙Ɩ ʎq pǝıןdıʇןnɯ sı uoıʇdɯnsuoɔ uǝɥʇ ')00Ɩ / uoıʇdɯnsuoɔ(ɹooןɟ ʎq sǝsɐǝɹɔuı ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ 'ןnɟssǝɔɔns ɟı ؛ᗺɯ 000Ɩ sı uoıʇdɯnsuoɔ ןɐıʇıuI ˙ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ǝsıɐɹ oʇ ɯnǝɥʇoɹʎԀ ǝɯnsuoɔ oʇ sʇdɯǝʇʇɐ ǝuıɥɔɐɯ ǝɥʇ 'suoıʇɐɹǝdo pǝɹǝqɯnu-ppo ǝɹoɟǝᗺ", + "ctnhcore.multiblocksa.voidminertooltip5": "˙ᄅ0˙Ɩ ʎq pǝıןdıʇןnɯ sı uoıʇdɯnsuoɔ uǝɥʇ ')00Ɩ / uoıʇdɯnsuoɔ(ɹooןɟ ʎq sǝsɐǝɹɔǝp ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ 'ןnɟssǝɔɔns ɟı ؛ᗺɯ 000Ɩ sı uoıʇdɯnsuoɔ ןɐıʇıuI ˙ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ɹǝʍoן oʇ ɯnǝɥʇoʎɹƆ ǝɯnsuoɔ oʇ sʇdɯǝʇʇɐ ǝuıɥɔɐɯ ǝɥʇ 'suoıʇɐɹǝdo pǝɹǝqɯnu-uǝʌǝ ǝɹoɟǝᗺ", + "ctnhcore.multiblocksa.voidminertooltip6": "ɹǝıןdıʇןnɯ ʇndʇno s,ɹǝuıW pıoΛ ǝɥʇ ɹǝɥbıɥ ǝɥʇ 'ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ɹǝɥbıɥ ǝɥ⟘", + "ctnhcore.multiblocksa.voidminertooltip7": "˙uoıʇɐɹǝdo ןɐɯɹou sǝɯnsǝɹ uǝɥʇ 'ʞ 0 sǝɥɔɐǝɹ ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ןıʇun ǝpoɯ buıןooɔ pǝɔɹoɟ sɹǝʇuǝ ɹǝuıW pıoΛ ǝɥʇ 'ʞ 000'ϛᄅ ʇⱯ", + "ctnhcore.multiblocksa.voidminertooltip8": "˙ǝɹnʇɐɹǝdɯǝʇ ǝɥʇ ןoɹʇuoɔ oʇ sʇnduı ɯnǝɥʇoʎɹƆ puɐ ɯnǝɥʇoɹʎԀ ǝʇɐuɹǝʇןⱯ", + "ctnhcore.multiblocksb.arcgeneratortooltip1": "ɹǝddıᴚ ɹǝʇʇɐW", + "ctnhcore.multiblocksb.arcgeneratortooltip2": "ǝʇǝןdɯoɔ sı uoıʇɔǝuuoɔ ǝɥʇ ʇɐɥʇ sʍoɥs ɹoʇɐɹǝuǝ⅁ ɔɹⱯ ǝɥʇ 'pǝʞuıן uǝɥM ˙ɹǝןןoɹʇuoɔ s,ǝuıɥɔɐɯ sıɥʇ ǝʌoqɐ sʞɔoןq ǝʌıɟ ǝq ʇsnɯ ɹoʇɐɹǝuǝ⅁ ɔɹⱯ ǝɥ⟘ ˙ɹoʇɐɹǝuǝ⅁ ɔɹⱯ uɐ ɥʇıʍ pǝsn ǝq ʇsnɯ ǝuıɥɔɐɯ sıɥ⟘", + "ctnhcore.multiblocksb.arcgeneratortooltip3": "unɹ ʇouuɐɔ ǝdıɔǝɹ ǝɥʇ 'ɯnɯıuıɯ s,ǝdıɔǝɹ ǝɥʇ ʍoןǝq sı ʎʇısuǝʇuı ɔɹɐ ɟI", + "ctnhcore.multiblocksb.arcgeneratortooltip4": "ʎɔuǝıɔıɟɟǝ uoıʇɐɹǝuǝb ɹǝʍod ɯnɯıxɐɯ ǝuıɥɔɐɯ ǝɥʇ pǝǝɔxǝ ʇouuɐɔ ʇnq '%00Ɩ pǝǝɔxǝ ʎɐɯ ʎɔuǝıɔıɟɟƎ ˙ʎɔuǝıɔıɟɟǝ )ʎʇısuǝʇuı ɔɹɐ pǝɹınbǝɹ - ʎʇısuǝʇuı ɔɹɐ pǝɹınbǝɹ ɹǝʍod-ןןnɟ( / )ʎʇısuǝʇuı ɔɹɐ pǝɹınbǝɹ ǝdıɔǝɹ - ʎʇısuǝʇuı ɔɹɐ ǝuıɥɔɐɯ( ʇɐ sunɹ ǝdıɔǝɹ ǝɥʇ 'ɯnɯıxɐɯ ǝdıɔǝɹ ǝɥʇ spǝǝɔxǝ ʎʇısuǝʇuı ɔɹɐ uǝɥM", + "ctnhcore.multiblocksb.arcgeneratortooltip5": "ʇndʇno ɐɹʇxǝ ɟo ʇunoɯɐ ןןɐɯs ɐ sǝɔnpoɹd uoıʇɐןıɥıuuɐ ǝʇǝןdɯoɔuı '%00Ɩ ʍoןǝq sı ʎɔuǝıɔıɟɟǝ uǝɥM", + "ctnhcore.multiblocksb.arcgeneratortooltiparct11": "000Ɩ :ʎʇısuǝʇuI ɔɹⱯ pǝʇɹoddnS ɯnɯıxɐWq§", + "ctnhcore.multiblocksb.arcgeneratortooltiparct12": "%ϛㄥ :ʎɔuǝıɔıɟɟƎ uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɯnɯıxɐWɔ§", + "ctnhcore.multiblocksb.arcgeneratortooltiparct21": "0000Ɩ :ʎʇısuǝʇuI ɔɹⱯ pǝʇɹoddnS ɯnɯıxɐWq§", + "ctnhcore.multiblocksb.arcgeneratortooltiparct22": "%ϛᄅƖ :ʎɔuǝıɔıɟɟƎ uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɯnɯıxɐWɔ§", + "ctnhcore.multiblocksb.arcgeneratortooltiparct31": "0000ϛ :ʎʇısuǝʇuI ɔɹⱯ pǝʇɹoddnS ɯnɯıxɐWq§", + "ctnhcore.multiblocksb.arcgeneratortooltiparct32": "%ϛᄅᄅ :ʎɔuǝıɔıɟɟƎ uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ɯnɯıxɐWɔ§", + "ctnhcore.multiblocksb.arcgeneratortooltipt21": "ɹǝddıᴚ ɹɐןnɔǝןoW", + "ctnhcore.multiblocksb.arcgeneratortooltipt31": "ɹǝddıᴚ ɔıɯoʇⱯ", + "ctnhcore.multiblocksb.arcreactortooltip1": "pǝןqɐuǝ sı ǝbpıɹq ǝɥʇ ʇɐɥʇ sʍoɥs ɹoʇɐɹǝuǝ⅁ ɔɹⱯ ǝɥʇ 'pǝʞuıן uǝɥʍ ؛ɹǝןןoɹʇuoɔ s,ɹǝddıᴚ ɔɹⱯ ǝɥʇ ǝʌoqɐ sʞɔoןq ǝʌıɟ ǝq ʇsnɯ ɹoʇɐɹǝuǝ⅁ ɔɹⱯ ǝɥ⟘ ˙ɹǝddıᴚ ɔɹⱯ uɐ ɥʇıʍ pǝsn ǝq ʇsnɯ ǝuıɥɔɐɯ sıɥ⟘", + "ctnhcore.multiblocksb.arcreactortooltip2": "ɯsıןǝןןɐɹɐd ǝɹoɯ ǝʌɐɥ sǝuıɥɔɐɯ ɹǝıʇ-ɹǝɥbıɥ puɐ 'pǝʞɔoןɔɹǝʌo ǝq ʇouuɐɔ 'ǝdıɔǝɹ ɐ sunɹ ʇı ǝɯıʇ ɥɔɐǝ ʎʇısuǝʇuı ɔɹɐ 0Ɩ sǝɔnpoɹd ǝuıɥɔɐɯ ǝɥ⟘", + "ctnhcore.multiblocksb.arcreactortooltipt1": "Ɩ :ɯsıןǝןןɐɹɐd ǝuıɥɔɐW", + "ctnhcore.multiblocksb.cryotheumfreezertip0": "ɯnǝɥʇoʎɹƆ ǝʞıן ןןɐɟ sɹɐǝ⟘q§", + "ctnhcore.multiblocksb.cryotheumfreezertip1": "sǝןdnɹpɐnb uoıʇdɯnsuoɔ 'ɹ§ΛI6§ ǝʌoqɐ ɹǝıʇ ǝbɐʇןoʌ ɥɔɐǝ ɹoɟ ؛ɯnǝɥʇoʎɹƆ ɟo ᗺɯ ןǝןןɐɹɐd × ϛ sǝɯnsuoɔ uoıʇɐɹǝdo ǝdıɔǝɹ ɥɔɐƎ", + "ctnhcore.multiblocksb.cryotheumfreezertip2": "sǝןdnɹpɐnb ʇunoɯɐ ʇǝbɹɐʇ ǝɥʇ uǝɥʇ 'ʇuıod ǝuo sʇuɐɹb pǝɯnsuoɔ ɯnǝɥʇoʎɹƆ ɟo ᗺɯ 0000Ɩ ʎɹǝʌƎ ˙uǝǝɹɔs ǝpɐɹbdn ǝɥʇ uı sʇuıod ppɐ ؛sʇuıod ןɐʇsʎɹƆ ɹɐǝ⟘ Ɛ puɐ suoıʇɐɹǝdo ןǝןןɐɹɐd ㄣ ɥʇıʍ sʇɹɐʇS", + "ctnhcore.multiblocksb.cultivationroomtooltip1": "uoıʇɐɹǝɟıןoɹd ןɐbunɟ 'uoıʇɐqnɔuı ןɐıqoɹɔıW", + "ctnhcore.multiblocksb.cultivationroomtooltip2": "ɐıɹǝʇɔɐq puɐ ıbunɟ uıɐʇqo-oʇ-pɹɐɥ ǝʇɐʌıʇןnɔ oʇ ǝuıɥɔɐɯ sıɥʇ ǝzıןıʇ∩", + "ctnhcore.multiblocksb.fluiddrillingrigdepletioninf": "¿ʇnoqɐ pǝıɹɹoʍ noʎ ǝɹɐ ʇɐɥʍ—buıɐ§ʇsɐןp§ɹǝʌq§Ǝ9§", + "ctnhcore.multiblocksb.fluiddrillingrigdescriptioninf": "ǝʇıuıɟuI ǝɥʇ ɯoɹɟ spınןɟ ɟo ɐǝs ɐ buıןןıɹᗡ9§", + "ctnhcore.multiblocksb.forestseatooltip1": "ɐıuuǝןןıɯ ɹoɟ ǝpɐɥs ǝʇɐǝɹɔ 'puɐɥ ʎq sǝǝɹʇ ʇuɐןԀ", + "ctnhcore.multiblocksb.forestseatooltip2": "ɹǝqɯnן ɟo sǝıʇıʇuɐnb ǝbɹɐן ǝɔnpoɹd oʇ ɹǝʇɐʍ ʎןuo sǝɯnsuoɔ ʇɐɥʇ ǝuıɥɔɐɯ ǝʌıssɐɯ ɐ sı ɐǝS ʇsǝɹoℲ ǝɥ⟘", + "ctnhcore.multiblocksb.forestseatooltip3": "spuoɔǝs ϛ ʎɹǝʌǝ ʞɔǝɥɔ ǝbɐɹoʇs ɹǝʇɐʍ sɯɹoɟɹǝԀ", + "ctnhcore.multiblocksb.forestseatooltip4": "%Ɩ ʎq ʎʇıpıɯnɥ sǝsɐǝɹɔuı 'ʇuǝıɔıɟɟns sı ɹǝʇɐʍ uǝɥM", + "ctnhcore.multiblocksb.forestseatooltip5": "%0Ɩ ʎq ʎʇıpıɯnɥ sǝsɐǝɹɔǝp 'ʇuǝıɔıɟɟnsuı sı ɹǝʇɐʍ uǝɥM", + "ctnhcore.multiblocksb.forestseatooltip6": "ɹǝıʇ ǝbɐʇןoʌ puɐ ʎʇıpıɯnɥ ɥʇıʍ sǝsɐǝɹɔuı ǝnןɐʌ ןǝןןɐɹɐd ʇnq 'ʇuɐʇsuoɔ suıɐɯǝɹ ǝɯıʇ buıssǝɔoɹd ǝdıɔǝᴚ", + "ctnhcore.multiblocksb.forestseatooltip7": "¡sǝsnoɥuǝǝɹb uɐɥʇ ɹǝʇʇǝᗺ", + "ctnhcore.multiblocksb.lasersortertooltip0": "ʎɔuǝnbǝɹɟ ɹǝsɐן ǝɥʇ sʇsnظpɐ ʎןsnonuıʇuoƆ", + "ctnhcore.multiblocksb.lasersortertooltip1": "buıɥɔʇƎ ɹǝsɐꞀ / uoıʇnqıɹʇsıᗡ ɹǝsɐꞀ :sǝdʎʇ ǝdıɔǝᴚ", + "ctnhcore.multiblocksb.lasersortertooltip10": "sʞɔoןɔɹǝʌo ʇɔǝɟɹǝd oʇuı sʞɔoןɔɹǝʌo ʎssoן ןןɐ buıʇɹǝʌuoɔ oʇ dn 'ɹǝıʇ ʞɔoןɔɹǝʌo s,ǝuıɥɔɐɯ ǝɥʇ pǝǝɔxǝ ʇouuɐɔ suoısɹǝʌuoƆ ˙)ᄅ× pǝǝds buıssǝɔoɹd( ʞɔoןɔɹǝʌo ʇɔǝɟɹǝd ɐ oʇuı pǝʇɹǝʌuoɔ sı ʞɔoןɔɹǝʌo ʎssoן ǝuo 'ʇuǝɯǝɹınbǝɹ ǝsɐq ǝɥʇ sǝןqnop uoıʇɐʇndɯoɔ ʇnduı ǝɯıʇ ɥɔɐƎ", + "ctnhcore.multiblocksb.lasersortertooltip11": "ㄣ× ǝɯıʇ ןɐuıɟ puɐ pǝןqɐsıp ǝɹɐ ǝʌoqɐ sǝsnuoq ןןɐ 'ǝןdıʇןnɯ ɹǝbǝʇuı uɐ ʇou sı uoıʇɐʇndɯoɔ ʇnduı ɟIɔ§", + "ctnhcore.multiblocksb.lasersortertooltip2": "ǝʇɐɹǝdo oʇ uoıʇɐʇndɯoɔ sǝɯnsuoɔ ǝuıɥɔɐɯ sıɥ⟘", + "ctnhcore.multiblocksb.lasersortertooltip3": "————————ǝpoW buıɥɔʇƎ ɹǝsɐꞀ————————", + "ctnhcore.multiblocksb.lasersortertooltip4": "sǝןqnop ʇuǝɯǝɹınbǝɹ ǝsɐq ǝɥʇ 'ΛnꞀ ǝʌoqɐ ɹǝıʇ ǝbɐʇןoʌ ɥɔɐǝ ɹoɟ ؛∩MƆ 8 ʇɐ pǝxıɟ sı ʇuǝɯǝɹınbǝɹ uoıʇɐʇndɯoɔ ǝsɐq ǝɥʇ 'ʍoןǝq puɐ ΛnꞀ ʇⱯ", + "ctnhcore.multiblocksb.lasersortertooltip5": "Ɛ^)ʇuǝɯǝɹınbǝɹ ǝsɐq / uoıʇɐʇndɯoɔ ʇnduı(ɹooןɟ = ɯsıןǝןןɐɹɐd puɐ ϛᄅ˙Ɩ× ʇndʇno ןɐuıɟ 'ʇuǝɯǝɹınbǝɹ ǝsɐq ǝɥʇ ɟo ǝןdıʇןnɯ ɹǝbǝʇuı uɐ sı uoıʇɐʇndɯoɔ ʇnduı ɟI", + "ctnhcore.multiblocksb.lasersortertooltip6": "sʞɔoןɔɹǝʌo ʇɔǝɟɹǝd oʇuı sʞɔoןɔɹǝʌo ʎssoן ןןɐ buıʇɹǝʌuoɔ oʇ dn 'ɹǝıʇ ʞɔoןɔɹǝʌo s,ǝuıɥɔɐɯ ǝɥʇ pǝǝɔxǝ ʇouuɐɔ suoısɹǝʌuoƆ ˙)ᄅ× pǝǝds buıssǝɔoɹd( ʞɔoןɔɹǝʌo ʇɔǝɟɹǝd ɐ oʇuı pǝʇɹǝʌuoɔ sı ʞɔoןɔɹǝʌo ʎssoן ǝuo 'ʇuǝɯǝɹınbǝɹ ǝsɐq ǝɥʇ sǝןqnop uoıʇɐʇndɯoɔ ʇnduı ǝɯıʇ ɥɔɐƎ", + "ctnhcore.multiblocksb.lasersortertooltip7": "————————ǝpoW uoıʇnqıɹʇsıᗡ ɹǝsɐꞀ————————", + "ctnhcore.multiblocksb.lasersortertooltip8": "ɐןnɯɹoɟ buıɥɔʇƎ ɹǝsɐꞀ ǝɥʇ buısn ʇı ǝʇɐןnɔןɐɔ 'ʇou sǝop ʇı ɟı ؛uoıʇɐʇndɯoɔ pǝɹınbǝɹ ǝɥʇ sǝıɟıɔǝds ǝdıɔǝɹ ǝɥ⟘", + "ctnhcore.multiblocksb.lasersortertooltip9": "Ɛ^)ʇuǝɯǝɹınbǝɹ ǝsɐq / uoıʇɐʇndɯoɔ ʇnduı(ɹooןɟ = ɯsıןǝןןɐɹɐd 'ʇuǝɯǝɹınbǝɹ ǝsɐq ǝɥʇ ɟo ǝןdıʇןnɯ ɹǝbǝʇuı uɐ sı uoıʇɐʇndɯoɔ ʇnduı ɟI", + "ctnhcore.multiblocksb.nanogeneratortooltip0": "ʇɐǝɥ uoıʇɔıɹɟ ɟo ɹǝʍod ǝɥʇ ǝzıןıʇ∩", + "ctnhcore.multiblocksb.nanogeneratortooltip1": "8ㄣ0ᄅ :ʇunoɔ ןǝןןɐɹɐd ɯnɯıxɐW", + "ctnhcore.multiblocksb.nanogeneratortooltip2": ")ʇunoɔ ןǝןןɐɹɐd(ʇɹbs * ǝɯıʇ ǝdıɔǝɹ sı ǝɯıʇ uoıʇɐɹǝdo ןɐnʇɔⱯ\n%ㄣ ʎq sǝsɐǝɹɔuı uoıʇɐɹǝuǝb ɹǝʍod ןɐʇoʇ 'ssǝɔoɹd ןǝןןɐɹɐd ɥɔɐǝ ɹoℲ", + "ctnhcore.multiblocksb.nanogeneratortooltip3": "9ㄥϛ8ㄣ0Ɩ / ʇunoɔ ןǝןןɐɹɐd = ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ xϛ :ʇǝǝɥS ǝןozɐpıɯızuǝqʎןoԀ\n0ㄥ0ƖƐƖ / ʇunoɔ ןǝןןɐɹɐd = ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ x9˙ㄣ :ʇǝǝɥS ɹǝqqnᴚ ǝuǝıpɐʇnᗺ-ǝuǝɹʎʇS\nϛƐϛϛ9 / ʇunoɔ ןǝןןɐɹɐd = ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ xᄅ˙Ɛ :ʇǝǝɥS ƎℲ⟘Ԁ\n960ㄣ / ʇunoɔ ןǝןןɐɹɐd = ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ xㄣ˙ᄅ :ʇǝǝɥS ɹǝqqnᴚ ǝuoɔıןıS\nㄣᄅ0Ɩ / ʇunoɔ ןǝןןɐɹɐd = ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ x9˙Ɩ :ʇǝǝɥS ǝuǝןʎɥʇǝʎןoԀ\nᄅƖϛ / ʇunoɔ ןǝןןɐɹɐd = ǝɔuɐɥɔ uoıʇdɯnsuoɔ 'ɹǝıןdıʇןnɯ x0˙Ɩ :ʇǝǝɥS ɹǝqqnᴚ\nɹǝıןdıʇןnɯ x8˙0 :ןɐıɹǝʇɐɯ oN\npǝɯnsuoɔ ǝq osןɐ ʎɐɯ ןɐıɹǝʇɐɯ ɥɔɐǝ ʇnq 'ɹǝıןdıʇןnɯ ǝɥʇ sǝsɐǝɹɔuı ɹǝןןoɹʇuoɔ ǝɥʇ oʇuı sןɐıɹǝʇɐɯ ɔıɟıɔǝds buıʇɹǝsuI", + "ctnhcore.multiblocksb.neuromatrixcompilertip0": "ɔıboן ןɐuoɹnǝu oʇuı uoıʇɔǝɟɹǝd ǝʇɐɯıʇןn ɹno buıןıdɯoɔ 'sǝʌןǝsɹno ǝɔuǝnbǝs ɔıʇǝuǝb ʎɹǝʌǝ ǝpoɔuǝ ʍou ןןıʍ ǝM ˙ʍoןs puɐ ʇuǝıɔıɟɟǝuı sı ǝɟıן pǝsɐq-uoqɹɐɔ ɟo uoıʇnןoʌǝ ןɐɹnʇɐu ǝɥʇ oʇ ʎןǝɹıʇuǝ sbuıǝq buıʌıן ɟo uoıʇnןoʌǝ ǝɥʇ buıʌɐǝꞀ", + "ctnhcore.multiblocksb.neuromatrixcompilertip01": "pǝʞɔoןɔɹǝʌo ǝq ʇouuɐɔ puɐ ɔıboן ʇnduı ןɐɯɹou ǝsn ʇou sǝop ʇı 'sǝuıɥɔɐɯ ɹǝɥʇo ǝʞıןu∩ ˙sǝɔuǝnbǝs ןɐɹnǝu sǝןıdɯoɔ )ԀWƆ( ɹǝןıdɯoƆ xıɹʇɐW ןɐɹnǝN ǝɥ⟘", + "ctnhcore.multiblocksb.neuromatrixcompilertip1": "ㄣ sı ʇɥbıɹ-ʞɔɐq puɐ 'Ɛ sı ʇɟǝן-ʞɔɐq 'ᄅ sı ʇɥbıɹ-ʇuoɹɟ 'Ɩ sı ɹǝןןoɹʇuoɔ ǝɥʇ ɟo ʇɟǝן-ʇuoɹɟ ǝɥʇ :sʍoןןoɟ sɐ pǝxıɟ ʎןʇuǝɹɹnɔ ǝɹɐ suoıbǝᴚ ˙)pǝʇuǝɯǝןdɯı ʇou( uoıbǝɹ pǝubıssɐ sʇı sʎɐןdsıp ɹǝqɯɐɥɔ ɥɔɐǝ 'buıpoɔuǝ ɹǝʇɟⱯ ˙ɹǝıʇ ǝɯɐs ǝɥʇ ǝq ʇsnɯ sɹǝqɯɐɥɔ ɥɔɹɐǝsǝɹ ןןɐ puɐ 'pǝʇǝןdɯoɔ sı ǝɹnʇɔnɹʇs ǝɥʇ uǝɥʍ pǝpoɔuǝ sı ɹǝqɯɐɥɔ ɥɔɐƎ ˙sɹǝqɯɐɥƆ ɥɔɹɐǝsǝᴚ xıɹʇɐW ןɐɹnǝN 9 ɟo sʇsısuoɔ ʇnduı ǝuıɥɔɐɯ ǝɥ⟘", + "ctnhcore.multiblocksb.neuromatrixcompilertip10": "ɹǝıןdıʇןnɯ ϛ˙0 ɐ sǝɯoɔǝq ǝsıou 'Ɩ˙Ɩ puɐ 6˙0 uǝǝʍʇǝq sı ɯɹǝʇ ɹoɹɹǝ uoıbǝɹ ǝɥʇ ɟı puɐ 'ϛ oʇ dn ʎq pǝıןdıʇןnɯ ǝq uɐɔ uoıʇɐnʇɔnןɟ ǝsıou ؛ǝsıou ʎq pǝuıɯɹǝʇǝp sı uoıbǝɹ ǝɥ⟘ ˙ϵ+p+Ɛxɔ+ᄅxq+Ɩxɐ=)Ɛx'ᄅx'Ɩx(ɟ uoıʇɔunɟ ʇןnsǝɹ ǝsıou ǝɥʇ ǝuıɟǝp 'sןıɐɟ uoıʇɐʇndɯoɔ ɟI", + "ctnhcore.multiblocksb.neuromatrixcompilertip11": "oıʇɐɹ ɯɹǝʇ-ɹoɹɹǝ ǝɥʇ sı Ɛ uoıʇɐɯɹoɟuı puɐ 'ʎ ɟo ɹǝıןdıʇןnɯ ɐ sɐ uoıʇɔunɟ ǝsıou ǝɥʇ ɯoɹɟ ǝnןɐʌ ʇןnsǝɹ ǝɥʇ sı ᄅ uoıʇɐɯɹoɟuı 'pǝsn uoıʇɐnbǝ ǝɥʇ sı Ɩ uoıʇɐɯɹoɟuı :uoıʇɐɯɹoɟuı ɟo sǝɔǝıd ǝǝɹɥʇ suıɐʇuoɔ ʇǝsɐʇɐp pǝןıdɯoɔ ןɐuıɟ ǝɥ⟘", + "ctnhcore.multiblocksb.neuromatrixcompilertip12": "pǝɯɹoɟ-ǝɹ sı ǝɹnʇɔnɹʇs ǝɥʇ ɹo pǝʇnɔǝxǝ sı ǝdıɔǝɹ ɐ uǝɥʍ uoıʇɐnbǝ ǝɥʇ puɐ ʎ sʇǝsǝɹ ʇI ˙ǝdıɔǝɹ ǝɯɐs ǝɥʇ buıʇnɔǝxǝ uǝɥʍ ʇǝsǝɹ ʇou sı uoıʇɐnbǝ ǝɥ⟘", + "ctnhcore.multiblocksb.neuromatrixcompilertip2": "ɹǝqɯɐɥɔ buıpuodsǝɹɹoɔ ǝɥʇ uı uʍoɥs 'ʇןnɐɟ ǝuıɥɔɐɯ ɐ ǝsnɐɔ ןןıʍ ʇuǝɯǝɔɐןd ɹǝqɯɐɥɔ ןɐuɹǝʇxǝ ɹo ʇuǝɯǝɔɐןd ʇɔǝɹɹoɔuı ʎuⱯ ˙9 uoıbǝᴚ uı ɹ§ʇǝsɐʇɐᗡ ɥɔɹɐǝsǝᴚ6§ ǝɥʇ ǝɔɐןԀ ˙ɹ§ϛ-Ɩ suoıbǝᴚ6§ uı ʍoɹ puoɔǝs ǝɥʇ oʇ ʍoɹ ʇsɹıɟ ǝɥʇ ɯoɹɟ puɐ ɹ§ʇɥbıɹ oʇ ʇɟǝן ɯoɹɟɹ§ pǝɔɐןd '6§ɹǝpɹo ɯǝʇı IWƎ ǝɥʇ ʍoןןoɟ ʎןʇɔıɹʇs ʇsnɯɔ§ sʇnduı ǝuıɥɔɐW", + "ctnhcore.multiblocksb.neuromatrixcompilertip3": "unɹ ʇou ןןıʍ ǝdıɔǝɹ ǝɥʇ ǝsıʍɹǝɥʇo ؛ɹǝıʇ ǝdıɔǝɹ ǝɥʇ ʇsɐǝן ʇɐ ǝq ʇsnɯ sɹǝqɯɐɥƆ ɥɔɹɐǝsǝᴚ xıɹʇɐW ןɐɹnǝN ןןⱯ", + "ctnhcore.multiblocksb.neuromatrixcompilertip4": "————————sɔıuɐɥɔǝW ǝuıɥɔɐW ןןɐɹǝʌO————————", + "ctnhcore.multiblocksb.neuromatrixcompilertip5": "ʎ uıɐʇqo oʇ sǝbuɐɹ uǝʌıb ǝɥʇ uıɥʇıʍ Ɛx puɐ 'ᄅx 'Ɩx sǝsooɥɔ ʎןɯopuɐɹ uǝɥʇ ʇI ˙suoıbǝɹ ʇǝbɹɐʇ ǝɥʇ ʎq pǝɯnsuoɔ sɯǝʇı ɟo sǝıʇıʇuɐnb ǝɥʇ ǝɹɐ Ɛx puɐ 'ᄅx 'Ɩx ǝɹǝɥʍ 'ɹ§p+Ɛxɔ+ᄅxq+Ɩxɐ=ʎ9§=)Ɛx'ᄅx'Ɩx(Ⅎ sǝʇɐɹǝuǝb puɐ ɹ§ssǝuɯopuɐɹ oʇ ɟןǝsʇı sʇsnɹʇuǝ9§ ǝuıɥɔɐɯ ǝɥʇ 'pǝʇɔǝʇǝp sı ǝdıɔǝɹ ʍǝu ɐ ɹǝʌǝuǝɥM", + "ctnhcore.multiblocksb.neuromatrixcompilertip6": "uoıʇɔunɟ ǝɥʇ uıɐʇqo oʇ sɹǝqɯɐɥɔ ɹıǝɥʇ uı sɯǝʇı ןןɐ ǝɯnsuoɔ ʎǝɥʇ 'pǝɥsıuıɟ uǝɥʍ ؛s ϛ ɹoɟ unɹ ɥɔɐǝ ϛ-Ɩ suoıbǝᴚ ˙suıbǝq uoıʇɐʇndɯoɔ ןɐɔıboן 'sunɹ ǝdıɔǝɹ ɐ uǝɥM", + "ctnhcore.multiblocksb.neuromatrixcompilertip7": "pǝɯɹoɟɹǝd sı uoıʇɐןıdɯoɔ ןɐuıɟ ǝɥʇ puɐ 'ǝnןɐʌ ǝnɹʇ ǝɥʇ ɥʇıʍ pǝɹɐdɯoɔ sı ʎ pǝʇɐןnɔןɐɔ ǝɥʇ 'pǝıןddns ǝɹɐ Ɛx puɐ 'ᄅx 'Ɩx 'ssǝɔoɹd sıɥʇ buıɹnᗡ ˙s ϛ ɹoɟ sunɹ ssǝɔoɹd uoıʇɐʇndɯoɔ ןɐʇoʇ ɐ 'ɥsıuıɟ ϛ-Ɩ suoıbǝᴚ ɹǝʇɟⱯ", + "ctnhcore.multiblocksb.neuromatrixcompilertip8": "————————uoıʇɐןıdɯoƆ ןɐuıℲ————————", + "ctnhcore.multiblocksb.neuromatrixcompilertip9": "ʇndʇno ǝdıɔǝɹ ǝɥʇ sǝɯoɔǝq ʇǝsɐʇɐp pǝןıdɯoɔ ǝɥʇ puɐ spǝǝɔɔns uoıʇɐʇndɯoɔ ǝɥʇ 'ʎ ǝnɹʇ sǝɯıʇ Ɩ˙Ɩ oʇ 6˙0 uıɥʇıʍ sı ʎ ʇןnsǝɹ ɟI ˙ʎ ʇןnsǝɹ ɥʇıʍ ʎ ǝnɹʇ sǝɹɐdɯoɔ uoıʇɐןıdɯoɔ ןɐuıℲ", + "ctnhcore.multiblocksb.neuromatrixcompilertippart1": ")x(Ⅎ uoıʇɔunɟ ɹoɟ Ɛx puɐ 'ᄅx 'Ɩx ןɐnʇɔɐ ǝɥʇ ǝpıʌoɹd :Ɛ-Ɩ suoıbǝᴚ", + "ctnhcore.multiblocksb.neuromatrixcompilertippart2": "ϵ ǝsıou sǝuıɯɹǝʇǝp puɐ )x(Ⅎ uoıʇɔunɟ uı p ʇuɐʇsuoɔ ǝɥʇ sʇuǝsǝɹdǝɹ :ㄣ uoıbǝᴚ", + "ctnhcore.multiblocksb.neuromatrixcompilertippart3": "ʇɔɐdɯı ǝsıou ou sǝsnɐɔ ʇı 'ʇuǝɯǝɹınbǝɹ ǝdıɔǝɹ ǝɥʇ spǝǝɔxǝ pɹɐoq ʇınɔɹıɔ pǝpıʌoɹd ǝɥʇ ɟI ˙uoıʇɐnʇɔnןɟ ϵ ǝsıou sǝuıɯɹǝʇǝp puɐ uoıʇɐןıdɯoɔ ןɐɹnǝu ɹoɟ ʇɹoddns pɹɐoq-ʇınɔɹıɔ sǝpıʌoɹd :ϛ uoıbǝᴚ", + "ctnhcore.multiblocksb.neuromatrixcompilertippart4": "ǝןɔʎɔ uoıʇɐʇndɯoɔ ןɐɔıboן ɐ ɹǝʇɟɐ ʇןnsǝɹ ǝɥʇ uo pǝsɐq ʇǝsɐʇɐp ןɐɹnǝu ǝɥʇ sǝıɟıpoɯ puɐ ʇןnsǝɹ uoıʇɐןıdɯoɔ ןɐuıɟ ǝɥʇ sʇɔǝןןoɔ :9 uoıbǝᴚ", + "ctnhcore.multiblocksb.plasmaalloytooltip1": "uןıʞ ʎɹɐʇoᴚ ǝɥʇ ɟo ǝbuǝʌǝᴚ ǝɥ⟘ㄣ§", + "ctnhcore.multiblocksb.plasmaalloytooltip10": "¡%0ϛ puɐ %0 uǝǝʍʇǝq sǝʇɐnʇɔnןɟ ʇndʇno ןɐuıɟ '%000ϛ spǝǝɔxǝ snuoq pǝǝds ǝɥʇ uǝɥMɔ§", + "ctnhcore.multiblocksb.plasmaalloytooltip11": "pǝǝds ןɐuıbıɹo ǝɥʇ ʍoןǝq sןןɐɟ ʇı ɟı pǝʇɔǝظǝɹ sı uoıʇɐɹǝdo puɐ 'ㄣ ʎq pǝpıʌıp sı pǝǝds ןɐuıɟ 'ɥɔʇɐɥ ɹǝsɐן ɐ buısn uǝɥʍ ؛ɹ§sǝɥɔʇɐɥ ɹǝsɐןq§ sʍoןןⱯ", + "ctnhcore.multiblocksb.plasmaalloytooltip2": "0000Ɩ / )0000Ɩ - ǝɹnʇɐɹǝdɯǝʇ ןıoɔ( ɟo ɹǝıןdıʇןnɯ pǝǝds ןɐuoıʇıppɐ uɐ sʇuɐɹb ʇı 'ʞ 0000Ɩ ǝʌoqɐ ؛suoıʇɐɹǝdo ןǝןןɐɹɐd ㄣ sʇuɐɹb ǝɹnʇɐɹǝdɯǝʇ ןıoɔ ɟo ʞ 008Ɩ ʎɹǝʌƎ", + "ctnhcore.multiblocksb.plasmaalloytooltip3": "ʇsooq pǝǝds ןɐuoıʇıppɐ uɐ uıɐb oʇ uoıʇɐɹǝdo ǝɹoɟǝq ɐɯsɐןd ɟo )uoıʇdɯnsuoɔ ɐɯsɐןd buıpuodsǝɹɹoɔ × ʇunoɔ ןǝןןɐɹɐd( sǝɯnsuoƆ", + "ctnhcore.multiblocksb.plasmaalloytooltip4": "%00Ɩ+ pǝǝds 'ɐɯsɐןd ןǝןןɐɹɐd × 00ϛ sǝɯnsuoɔ :ɐɯsɐןd ɯnıןǝH", + "ctnhcore.multiblocksb.plasmaalloytooltip5": "%00ᄅ+ pǝǝds 'ɐɯsɐןd ןǝןןɐɹɐd × 00Ɛ sǝɯnsuoɔ :ɐɯsɐןd uǝboɹʇıu ɹo uǝbʎxO", + "ctnhcore.multiblocksb.plasmaalloytooltip6": "%00Ɛ+ pǝǝds 'ɐɯsɐןd ןǝןןɐɹɐd × 00ᄅ sǝɯnsuoɔ :ɐɯsɐןd uoɹı ɹo ןǝʞɔıN", + "ctnhcore.multiblocksb.plasmaalloytooltip7": "ssǝɔoɹd buıʇןǝɯs ɹnoʎ ɟo ʞsıɹ ǝɥʇ ǝsɐǝɹɔuı osןɐ ʇnqɔ§ 'sǝsnuoq pǝǝds ןɐuoıʇıppɐ ʇuɐɹb sɐɯsɐןd buıʇןǝɯs ןɐıɔǝdS", + "ctnhcore.multiblocksb.plasmaalloytooltip8": ")sǝɥɔʇɐɥ ʎbɹǝuǝ dɯɐ-ıʇןnɯ ǝsn ؛buıuunɹ ɯoɹɟ sǝdıɔǝɹ ʇuǝʌǝɹd ʎɐɯ ɥɔıɥʍɔ§( uoıʇdɯnsuoɔ ǝbɐʇןoʌ sǝןqnop puɐ 'ϛ× pǝǝds 'ɐɯsɐןd 00Ɩ pǝxıɟ ɐ sǝɯnsuoɔ :ɐɯsɐןԀ ɥɐpɐnbɐN pǝɥɔıɹuƎ pǝssǝɹdɯoƆ", + "ctnhcore.multiblocksb.plasmaalloytooltip9": "%00Ɩ puɐ %08 uǝǝʍʇǝq ǝʇɐnʇɔnןɟ ʇndʇno ןɐuıɟ sǝʞɐɯ puɐɔ§ '0Ɩ× pǝǝds 'ɐɯsɐןd ןǝןןɐɹɐd × 0ϛ sǝɯnsuoɔ :ɐɯsɐןԀ ɹǝɥʇǝⱯ ɔıʇǝbɹǝuƎ ɹǝdnS pǝuıɟǝᴚ", + "ctnhcore.multiblocksb.pvdronetooltip0": "ʇɔǝظoɹԀ ɯɹɐʍS uosʎᗡ", + "ctnhcore.multiblocksb.pvdronetooltip1": "ɹǝıןdıʇןnɯ ǝɯıʇ-buıssǝɔoɹd ǝɥʇ sןɐnbǝ ɯsıןǝןןɐɹɐd ؛sǝɥɔʇɐɥ ןoɹʇuoɔ ןǝןןɐɹɐd sʍoןןⱯ", + "ctnhcore.multiblocksb.pvdronetooltip2": "sǝɹnʇɔnɹʇs oʍʇ ǝsǝɥʇ puıq oʇ ןɐuıɯɹǝ⟘ buıpuıᗺ ɔıɐʇןoʌoʇoɥԀ ǝɥʇ ǝsn ؛uoıʇɐʇs ɔıɐʇןoʌoʇoɥd ǝɥʇ oʇ ʇsooq ɹǝʍod ɐ sǝpıʌoɹԀ", + "ctnhcore.multiblocksb.pvdronetooltip3": "sǝsnuoq uoıʇɐʇs puɐ uoısuǝɯıp ʎq pǝʇɔǝɟɟɐ osןɐ sı uoıʇɐɹǝuǝb ǝuoɹp ؛spuǝ uoıʇɐɹǝdo uǝɥʍ puɐ spuoɔǝs ϛ ʎɹǝʌǝ pǝɯnsuoɔ ǝq oʇ ǝɔuɐɥɔ ɐ sɐɥ ǝuoɹp ɥɔɐƎ ˙ɯǝɥʇ buıʇʇıɯsuɐɹʇ uıbǝq oʇ ɹǝpןoɥ ǝuoɹp ǝɥʇ uı sǝuoɹp ǝɔɐןԀ", + "ctnhcore.multiblocksb.pvdronetooltip4": ")))6 - x( * ϛᄅ˙0-(dxǝ˙ɥʇɐW + 0˙Ɩ( / 0˙Ɩ = ǝɔuɐɥɔ uoıʇdɯnsuoɔ ǝuoɹᗡ", + "ctnhcore.multiblocksb.pvdronetooltip5": "pǝʞɔoןɔɹǝʌo ǝq ʇouuɐɔ ؛Ɩ ɹǝıןdıʇןnɯ ʍoןǝq ʇndʇno oN ˙)sǝbɐʇןoʌ ǝuoɹp ɟo ɯns(ʇɹbs × Ɩ˙0 = ɹǝıןdıʇןnɯ ʇndʇno 'sɹoǝʇǝɯ ʇɔǝןןoɔ sǝuoɹp uǝɥM", + "ctnhcore.multiblocksb.sinopechemicaltooltip0": "˙ɹǝʍod ןɐıɹʇsnpuı s,ɹ§ʎɹʇunoɔ uɹǝʇsɐǝ snoıɹǝʇsʎɯ uıɐʇɹǝɔ Ɐq§ ɯoɹℲ", + "ctnhcore.multiblocksb.sinopechemicaltooltip1": "˙ןɐǝɹ sı ןǝןןɐɹɐd 'sǝǝʎoןdɯǝ ʎɐɹb ǝʌıǝɔǝp ʇ’uop sǝǝʎoןdɯǝ ʎɐɹ⅁", + "ctnhcore.multiblocksb.sinopechemicaltooltip2": "˙sʇsʎןɐʇɐɔ pǝǝu ʇ,uop sǝdıɔǝɹ 'sʇuǝɯǝɹınbǝɹ ןǝʌǝן ןןǝɥs oN", + "ctnhcore.multiblocksb.sinopechemicaltooltip3": "˙ʞɔoןq ןɐɹʇuǝɔ ǝɥʇ oʇ pǝʇɐןǝɹ sı ʇunoɔ ןǝןןɐɹɐԀ", + "ctnhcore.multiblocksb.sinopechemicaltooltip4": "ןǝןןɐɹɐd 8 :ʞɔoןq ʞɔoɹ uoɔıןıS", + "ctnhcore.multiblocksb.sinopechemicaltooltip5": "ןǝןןɐɹɐd ᄅƐ :ʞɔoןq ʞɔoɹ uoɔıןıs pǝɥɔıɹuƎ", + "ctnhcore.multiblocksb.sinopechemicaltooltip6": "ןǝןןɐɹɐd 8ᄅƖ :ʞɔoןq ʞɔoɹ uoɔıןıs ɹǝdnS", + "ctnhcore.multiblocksb.sinopechemicaltooltip7": ")pǝıןdıʇןnɯ ʎןʇuǝpuǝdǝpuı( %ϛᄅ ɟo uoıʇɔnpǝɹ ɯnɯıxɐɯ ɐ oʇ dn '%ϛ˙0 ʎq ǝɯıʇ uoıʇɐɹǝdo puɐ uoıʇdɯnsuoɔ ʎbɹǝuǝ sǝɔnpǝɹ ןǝןןɐɹɐd ןɐnʇɔɐ ɟo ʇuıod ɥɔɐƎ", + "ctnhcore.multiblocksb.sinopechemicaltooltip8": "%00Ɩ+ ʎq pǝǝds uoıʇɐɹǝdo ǝɥʇ sǝsɐǝɹɔuı ʞ008Ɩ buıpıʌoɹd ןıoɔ ɥɔɐƎ", + "ctnhcore.multiblocksb.sinopechemicaltooltip9": "ɹ§¡pǝɥsıund ǝq ןןıʍ ןǝןןɐɹɐd ǝsןɐɟ ʎuⱯɔ§", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip0": "ǝɔɐdS ɥbnoɹɥ⟘ ɥʇɐԀ snoıɹoן⅁ Ɐ9§", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip2": "ɹǝɥʇɹnɟ ʇndʇno sǝsɐǝɹɔuı sןɐıɹǝʇɐɯ ɔıɟıɔǝds buıɯnsuoɔ ؛ㄣ ʎq ʇndʇno buıʎןdıʇןnɯ 'ʇuǝɯuoɹıʌuǝ ʎʇıʌɐɹb-oɹǝz ɐ sɐ pǝʇɐǝɹʇ sı uoıʇɐʇs ǝɥ⟘ ˙ʇndʇno ɹǝʍod ǝsɐǝɹɔuı ɹǝıʇ ʞɔoןq ɔıɐʇןoʌoʇoɥd puɐ ǝdʎʇ ʇǝuɐןd 'ǝpoɯ uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ǝɔɐdS uI", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip3": "ɹǝʍod Ⅎ pǝʇɐןnɯıs s,ǝdıɔǝɹ ǝɥʇ ɯoɹɟ pǝʇɐןnɔןɐɔ ǝɹɐ ɯsıןǝןןɐɹɐd puɐ pǝǝdS ˙Ɩ ʇɐ pǝʞɔoן sı ʇndʇno ɹǝʍod puɐ pǝɯnsuoɔ sı ʇ∩Ǝ ou 'ǝpoɯ ʎןqɯǝssⱯ ɔıɐʇןoʌoʇoɥԀ ǝɔɐdS uI", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip4": "pǝʍoןןɐ ǝɹɐ sǝɹnʇɔnɹʇs ʎɹɐıןıxnɐ ɹǝɥʇǝɥʍ puɐ ɹǝıʇ ɔıɐʇןoʌoʇoɥd ǝןqɐsn ǝɥʇ ǝuıɯɹǝʇǝp sʞɔoןq ןɐɹnʇɔnɹʇs ǝɔɐdS ˙ɹǝıןdıʇןnɯ ʇɥbıן ɯnɯıxɐɯ ǝɥʇ ǝuıɯɹǝʇǝp sʞɔoןq ןɐɹnʇɔnɹʇs ʇuɐʇsısǝɹ-ʇɐǝɥ puɐ ǝɔuɐʇsısǝɹ ʇɐǝɥ ʞɔoןq ɔıɐʇןoʌoʇoɥԀ ˙unɹ uɐɔ sǝdıɔǝɹ ʎןqɯǝssɐ ǝɔɐds ɹǝɥʇǝɥʍ ǝuıɯɹǝʇǝp ʎʇısuǝʇuı ʇɥbıן puɐ ɹǝıʇ ɔıɐʇןoʌoʇoɥԀ", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip5": "pǝɹɐnbs sı ɹǝıןdıʇןnɯ ǝɯıʇ ןɐuıɟ ǝɥʇ 'ɹǝʍod pǝʇɐןnɯıs uɐɥʇ ɹǝʍoן sı ʇndʇno uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ǝɔɐdS ɟI ˙)ʇndʇno uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ǝɔɐdS / ɹǝʍod pǝʇɐןnɯıs( = ɹǝıןdıʇןnɯ ǝɯıʇ ןɐuıɟ puɐ ')ɹǝʍod pǝʇɐןnɯıs / ʇndʇno uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ǝɔɐdS( = ɯsıןǝןןɐɹɐd ןɐuıɟ 'ǝpoɯ ʎןqɯǝssⱯ ɔıɐʇןoʌoʇoɥԀ ǝɔɐdS uI", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltipex": "¡ǝʇǝןdɯoɔ ʇǝʎ ʇou sı ʇı ؛puɐdxǝ oʇ ǝnuıʇuoɔ ןןıʍ ǝɹnʇɔnɹʇs sıɥ⟘9§", + "ctnhcore.multiblocksb.wideacceleratortooltip0": "ɹoʇɐɹbǝʇuI ɹoʇɐɹǝןǝɔɔⱯ ǝןɔıʇɹɐԀ", + "ctnhcore.multiblocksb.wideacceleratortooltip1": "ɹ§sǝɥɔʇɐɥ ɹǝʇɹǝʌuoɔ ǝbɐʇןoʌɐ§ puɐ ɹ§sǝɥɔʇɐɥ ɹǝsɐן6§ ɟo ǝsn ǝɥʇ sʍoןןⱯ", + "ctnhcore.multiblocksb.wideacceleratortooltip10": "sɹnɔɔo uoıʇɔunɟןɐɯ ɟı ɯsıןǝןןɐɹɐd ǝɔnpǝᴚ ˙ɹ§sǝɥɔʇɐɥ ɹǝsɐן6§ ɥʇıʍ pǝpuǝɯɯoɔǝᴚ ˙ɹ§buıddıɹʇ ʇınɔɹıɔɔ§ ɹo ɹ§ǝɹnןıɐɟ ǝdıɔǝɹɔ§ ǝsnɐɔ ʎɐɯ ǝbɐʇןoʌ ɹǝdoɹdɯI ˙uoıʇdɯnsuoɔ ɹǝʍod ǝɯǝɹʇxƎ :⅁NINᴚⱯM", + "ctnhcore.multiblocksb.wideacceleratortooltip11": ")ןɐnʇdǝɔuoɔ ʎןʇuǝɹɹnƆ( ɹ§sɯǝʇsʎs ʇuǝɯuıɐʇuoɔ pǝןןɐʇsuı-ǝɹd ǝɹınbǝɹ sǝdıɔǝɹ snopɹɐzɐH :NOI⟘∩ⱯƆɔ§ ˙sʞuıן ʇuǝɯuıɐʇuoɔ ɐıʌ ǝןqɐןıɐʌɐ ɹǝɟsuɐɹʇ ǝןɔıʇɹɐԀ", + "ctnhcore.multiblocksb.wideacceleratortooltip2": "sǝuıןɯɐǝq ǝǝɹɥʇ ɥbnoɹɥʇ sǝןɔıʇɹɐd ɟo sǝdʎʇ ǝǝɹɥʇ sǝʇɐɹǝןǝɔɔⱯ", + "ctnhcore.multiblocksb.wideacceleratortooltip3": "˙suoısoןdxǝ buıʇuǝʌǝɹd puɐ ǝɟɐs ʎɹǝʌ ǝuıɥɔɐɯ ǝɥʇ buıʞɐɯ 'Λǝ⅁ 0ϛ ʇɐ pǝddɐɔ sı ʎʇıɔoןǝʌ ǝןɔıʇɹɐԀ ˙ǝsıʍɹǝɥʇo unɹ ʇouuɐɔ ʇı ؛sʇuǝɯǝɹınbǝɹ ǝdıɔǝɹ ǝɥʇ pǝǝɔxǝ oʇ sǝıʇıɔoןǝʌ ǝןɔıʇɹɐd sǝɹınbǝɹ ʎןuo ǝuıɥɔɐɯ ǝɥ⟘", + "ctnhcore.multiblocksb.wideacceleratortooltip4": "pǝsn sı ǝnןɐʌ ʇןnɐɟǝp ǝɥʇ 'ǝuo ʇnoɥʇıʍ ؛ɹ§sǝɥɔʇɐɥ ןoɹʇuoɔ ןǝןןɐɹɐdq§ ɟo ǝsn ǝɥʇ sʍoןןⱯ", + "ctnhcore.multiblocksb.wideacceleratortooltip5": "sǝssǝɔoɹd ןǝןןɐɹɐd 9Ɩ sı ʇןnɐɟǝp ǝɥʇ 'ɹ§ɥɔʇɐɥ ןoɹʇuoɔ ןǝןןɐɹɐdq§ ɐ ʇnoɥʇıʍ sǝdıɔǝɹ ןɐɯɹou buıuunɹ uǝɥM", + "ctnhcore.multiblocksb.wideacceleratortooltip6": "sʇɔnpoɹd ou spןǝıʎ ʎʇıɔoןǝʌ ǝןɔıʇɹɐd ʇuǝıɔıɟɟnsuI", + "ctnhcore.multiblocksb.wideacceleratortooltip7": "˙ǝɔuo ʇɐ ΛǝW 00Ɩ ʎq ʇı ǝbuɐɥɔ oʇ ןɹʇƆ pןoɥ ؛ǝɔuo ʇɐ ΛǝW 0Ɩ ʎq ʎʇıɔoןǝʌ ǝbuɐɥɔ oʇ ʇɟıɥS pןoH ˙ʎbɹǝuǝ pǝɹoʇs ɯoɹɟ ∩Ǝ W0Ɩ sǝɯnsuoɔ ʎʇıɔoןǝʌ ǝןɔıʇɹɐd uı ǝsɐǝɹɔuı ΛǝW Ɩ ɥɔɐƎ ˙ǝɔɐɟɹǝʇuı uoıʇɐɹǝןǝɔɔɐ ǝɥʇ uı sǝıʇıɔoןǝʌ ǝןɔıʇɹɐd ǝǝɹɥʇ ǝɥʇ ʇsnظpɐ oʇ pǝsn ǝq uɐɔ ʎbɹǝuǝ pǝɹoʇS ˙∩Ǝ Ǝ0ϛ oʇ dn ǝɹoʇs uɐɔ ǝuıɥɔɐɯ ǝɥ⟘", + "ctnhcore.multiblocksb.wideacceleratortooltip8": "˙ʞɔıʇ ɹǝd %0Ɩ ʎq sʎɐɔǝp ʎʇıɔoןǝʌ ǝןɔıʇɹɐd 'ʇuǝıɔıɟɟnsuı sı ɹǝʍod ɟI ˙ʞɔıʇ ɹǝd ʎbɹǝuǝ pǝɹoʇs ɟo ∩Ǝ 00Ɩ sǝɯnsuoɔ ǝuıɥɔɐɯ ǝɥʇ 'sǝıʇıɔoןǝʌ ǝןɔıʇɹɐd ǝǝɹɥʇ ǝɥʇ ɟo ɯns ǝɥʇ uı ΛǝW Ɩ ʎɹǝʌǝ ɹoℲ", + "ctnhcore.multiblocksb.wideacceleratortooltip9": "˙ʇuǝıɔıɟɟnsuı sı ʎbɹǝuǝ pǝɹoʇs sʇı ssǝןun ǝuıɥɔɐɯ ǝɥʇ ǝbɹɐɥɔ ʇou ןןıʍ sǝɥɔʇɐɥ ʎbɹǝuǝ ǝɥʇ 'uoıʇɐɹǝdo buıɹnp 'ɹǝʌǝʍoH ˙sǝɥɔʇɐɥ ʎbɹǝuǝ ǝɥʇ ɯoɹɟ ʎbɹǝuǝ ǝsn oʇ sǝnuıʇuoɔ ʇı 'buıuunɹ ǝןıɥM ˙ʇןnɐɟǝp ʎq ɟןǝsʇı ǝbɹɐɥɔ oʇ sǝɥɔʇɐɥ ǝbɐɹoʇs-ʎbɹǝuǝ ǝɥʇ uı ʎbɹǝuǝ ןןɐ sǝsn ʇı 'ǝןpı sı ǝuıɥɔɐɯ ǝɥʇ uǝɥM", + "ctnhcore.multiblocksc.greenhousetooltip0": "ɯooᴚ uI ʇuɐןԀ", + "ctnhcore.naqreactormachine.naqreactorinfonickelconsumption": "%d :uoıʇdɯnsuoɔ ɐɯsɐןd ןǝʞɔıN", + "ctnhcore.naqreactormachine.naqreactorinfoparallelcount": "%d :ʇunoɔ ןǝןןɐɹɐd uoıʇɐɹǝuǝb ɹǝʍoԀ", + "ctnhcore.naqreactormachine.naqreactorinfotemperature": "%d :ǝɹnʇɐɹǝdɯǝʇ ǝɹoƆɔ§", + "ctnhcore.neuromatrixcompiler.compilererror0": "ɹoɹɹǝ uʍouʞu∩ɔ§", + "ctnhcore.neuromatrixcompiler.compilererror1": "Ɩ uoıbǝᴚ ɥɔʇɐɯ ʇou sǝop ɹǝıʇ ɹǝqɯɐɥƆɔ§", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfopartstates": "%s :snʇɐʇs %d uoıbǝᴚ", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateerror": "%s :ǝdʎʇ 'ɹoɹɹƎɔ§", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostatefinish": "ǝʇǝןdɯoƆɐ§", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateidle": "ǝןpI9§", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostatewaiting": "˙˙˙˙˙˙buıʇıɐMq§", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateworking": "%ss/%ss :buıʞɹoM6§", + "ctnhcore.oxygencondition.ctnhmachineoxygenrequired": "ǝɹǝɥdsoɯʇɐ ǝןqɐɥʇɐǝɹq ɐ sǝɹınbǝɹ ǝuıɥɔɐɯ sıɥ⟘", + "ctnhcore.oxygenenrichermachine.ctnhmachineoxygenenrichernoinput": "ʎןddns uǝbʎxo ʇuǝıɔıɟɟnsuI", + "ctnhcore.photovoltaicdronestation.pvdroneinfot1": "%d :pǝıןddns ɹǝʍoԀ", + "ctnhcore.photovoltaicdronestation.pvdroneinfot2": "ɟㄣ˙% :ǝɔuɐɥɔ uoıʇdɯnsuoɔ ǝuoɹᗡ", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfo1": "%s%% :ʎɔuǝıɔıɟɟƎ", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfo2": "ʇ/∩Ǝ %s/%s :buıʇɐɹǝuǝ⅁", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfoinvalid": "pǝʍopɐɥS", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfonight": "ʇɥbıu ʇⱯ", "ctnhcore.ponder.assembly_line_building.header": "ǝuıꞀ ʎןqɯǝssⱯ ǝʇɐɯoʇnɐ oʇ ʍoH", "ctnhcore.ponder.assembly_line_building.text_1": "˙ɹǝןןoɹʇuoɔ ǝuıꞀ ʎןqɯǝssⱯ uɐ ǝɔɐןd 'ʇsɹıℲ", "ctnhcore.ponder.assembly_line_building.text_10": "˙ʇɔnpoɹd uıɐɯ ǝɥʇ ɹoɟ ʇıɐʍ oʇ ǝpoɯ ʞɔoן ɹǝpıʌoɹd uɹǝʇʇɐd ǝɥʇ ʇǝs uǝɥʇ 'uoʇʇnq ,+, ǝɥʇ ɥʇıʍ uɹǝʇʇɐd ʞɔıןɔ-ǝuo ǝɥʇ ǝpoɔuƎ", @@ -607,32 +817,241 @@ "ctnhcore.ponder.tag.ctnhponder.description": "sɹǝpuoԀ ǝuıɥɔɐW ɔıɹʇɔǝןƎ HN⟘Ɔ", "ctnhcore.ponder.tag.mechanical_multiblock": "ʞɔoןqıʇןnW ןɐɔıuɐɥɔǝW", "ctnhcore.ponder.tag.mechanical_multiblock.description": "sǝuıɥɔɐɯ ʞɔoןqıʇןnɯ ןɐɔıuɐɥɔǝɯ HN⟘Ɔ uo sɹǝpuoԀ", + "ctnhcore.portalblockmixin.messageportalinvaliddimension": "pןɹoʍɹǝʌO ǝɥʇ uı pǝsn ǝq ʎןuo uɐɔ ןɐʇɹod sıɥ⟘", "ctnhcore.recipe_logic.insufficient_cwut": "uoıʇɐʇndɯoƆ ʇuǝıɔıɟɟnsuI", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificeempty": "punoɟ sǝɔıɟıɹɔɐs oN", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificelocked": "ᗡƎʞƆOꞀ ǝɔıɟıɹɔɐS", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificeunlocked": "ᗡƎʞƆOꞀN∩ ǝɔıɟıɹɔɐS", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcwetwareduration": "sʞɔıʇ %s :uoıʇɐɹnp ǝɹɐʍʇǝM", + "ctnhcore.sinopechemical.sinopechemicalinfolevel": "%d :ǝʇɐᴚ buıʇɐɹǝןǝɔɔⱯ ןıoƆ", + "ctnhcore.sinopechemical.sinopechemicalinfoparallel": "%d :ʇunoƆ ןǝןןɐɹɐԀ", + "ctnhcore.slaughterhousemachine.slaughterhouseinfomobcount": ")%s( %d :sǝdʎ⟘ qoW", "ctnhcore.spacephotovoltaicbasestation.orbit_only": "ǝdıɔǝɹ sıɥʇ unɹ oʇ ʇuǝɯoɹıʌuǝ ʇıqɹo spǝǝN", - "ctnhcore.src.sacrifice": "%s :sǝɔıɟıɹɔɐS", - "ctnhcore.src.sacrifice_empty": "punoɟ sǝɔıɟıɹɔɐs oN", - "ctnhcore.src.sacrifice_locked": "ᗡƎʞƆOꞀ ǝɔıɟıɹɔɐS", - "ctnhcore.src.sacrifice_unlocked": "ᗡƎʞƆOꞀN∩ ǝɔıɟıɹɔɐS", - "ctnhcore.src.wetware_duration": "sʞɔıʇ %s :uoıʇɐɹnp ǝɹɐʍʇǝM", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier0": "%d :ɹǝıʇ ʞɔoןq ɔıɐʇןoʌoʇoɥd ʇuǝɹɹnƆ", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier1": "%d :ɹǝıʇ ǝɔuɐʇsısǝɹ-ʇɐǝɥ ǝɹnʇɔnɹʇs ʇuǝɹɹnƆ", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier2": "ɟᄅ˙% :uoıʇɐɹǝuǝb ɹǝʍod ʇuǝɹɹnƆ", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier3": "%d :ɹǝıןdıʇןnɯ ʇɥbıן ןɐuoısuǝɯıp ʇuǝɹɹnƆ", + "ctnhcore.superconducting_penning_trap.antielectric": "%d :ʇunoɯɐ uoɹʇısoԀ", + "ctnhcore.superconducting_penning_trap.antinu": "%d :ʇunoɯɐ uoɹʇnǝuıʇuⱯ", + "ctnhcore.superconducting_penning_trap.antiproton": "%d :ʇunoɯɐ uoʇoɹdıʇuⱯ", + "ctnhcore.superconducting_penning_trap.noenergywaring": "¡ןıɐɟ oʇ ʇnoqɐ sı pןǝıɟ ʇuǝɯuıɐʇuoɔ ǝɥʇ ؛ɹǝʍod ʇuǝıɔıɟɟnsuı :buıuɹɐMɔ§", + "ctnhcore.superconducting_penning_trap.restoredanger": "sןɐıɹǝʇɐɯ snopɹɐzɐɥ uıɐʇuoƆ", + "ctnhcore.superconducting_penning_trap.trapelectricmax": "∩Ǝ %d :ɹǝʍod pǝɹoʇs ɯnɯıxɐW", "ctnhcore.testingterminalbehavior.flipmode": "uO sı ǝpoW dıןℲ", "ctnhcore.testingterminalbehavior.normalmode": "uO sı ǝpoW ןɐɯɹoN", - "desh_vein_ad": "pⱯ uıǝΛ ɥsǝᗡ", - "diamond_vein_tf": "ɟ⟘ uıǝΛ puoɯɐıᗡ", - "enchantment.ctnhcore.cooling.desc": "ʎʇıןıqɐ buıpuǝɟǝp pןoɔ ɹnoʎ ǝɔuɐɥuƎ", - "enchantment.ctnhcore.warming.desc": "ʎʇıןıqɐ buıpuǝɟǝp ʇoɥ ɹnoʎ ǝɔuɐɥuƎ", + "ctnhcore.testingterminalbehavior.testterminallackerror": "pǝǝu noʎ '%s ʇⱯ", + "ctnhcore.testingterminalbehavior.testterminalposition": ")%s'%s'%s(", + "ctnhcore.testingterminalbehavior.testterminalsuccess": "!ʞO sı buıɥʇʎɹǝʌƎ", + "ctnhcore.testingterminalbehavior.testterminalwrongerror": "ǝq pןnoɥs ʇı '%s ʇⱯ", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminfoefficiency": "%d :ʎɔuǝıɔıɟɟƎ", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforate": "%s :ǝʇɐᴚ", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforatemodify": " :ǝʇɐɹ ʇsnظpⱯ", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforatetooltip": "buıʇɐǝɥ ɹooןɟ ǝɥʇ ɟo ɹǝʍod buıʇɐǝɥ ǝɥʇ ǝɔnpǝɹ oʇ ɯɐǝʇs ɟo uoıʇdɯnsuoɔ ǝɥʇ ǝɔnpǝᴚ", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminfosteamconsumption": "%d :ǝʇɐɹ uoıʇdɯnsuoɔ ɯɐǝʇS", + "ctnhcore.voidminerprocessingmachine.voidminerinfocryotheum": " %d :uoıʇdɯnsuoɔ ɯnǝɥʇoʎɹƆ", + "ctnhcore.voidminerprocessingmachine.voidminerinfooverheat": "¡¡¡buıʇɐǝɥɹǝʌO", + "ctnhcore.voidminerprocessingmachine.voidminerinfopyrotheum": " %d :uoıʇdɯnsuoɔ ɯnǝɥʇoɹʎԀ", + "ctnhcore.wideparticleaccelerator.connect": "pǝɥsıןqɐʇsǝ uoıʇɔǝuuoƆ", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoconsume": "ɟᄅ˙% :ɹǝıןdıʇןnW uoıʇdɯnsuoƆ ɹǝʍoԀ", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoelectricspeed": "ΛǝW ɟᄅ˙% :ʎʇıɔoןǝΛ uoɹʇɔǝןƎ", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfonuspeed": "ΛǝW ɟᄅ˙% :ʎʇıɔoןǝΛ uoɹʇnǝN", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfopower": "Ǝ ɟᄅ˙%/Ǝ ɟᄅ˙% :ʎbɹǝuǝ pǝɹoʇS", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoprotonspeed": "ΛǝW ɟᄅ˙% :ʎʇıɔoןǝΛ uoʇoɹԀ", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkdirty": ")s(puoɔǝs %d uı pןınqǝɹ ןןıʍ ʞɹoʍʇǝN", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkmachine": "%d:ʇunoƆ ǝuıɥɔɐW ʞɹoʍʇǝN", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkmachineefficiency": "%d :ʎɔuǝıɔıɟɟƎ buıʇɐɹǝuǝ⅁", + "ctnhcore.windpowerarrayregister.windarraytooltip0": "Ǝᴚ∩⟘ⱯN ɟo ᴚƎMOԀ Ǝ∩ᴚ⟘ ǝɥ⟘ :ɟןoM puıMo§ㄥ§", + "ctnhcore.windpowerarrayregister.windarraytooltip1": "--------------------8§ɐʇɐᗡ ɔısɐᗺɐ§-----------------8§", + "ctnhcore.windpowerarrayregister.windarraytooltip10": "˙ʞɹoʍʇǝu ǝɥʇ ɯoɹɟ pǝʇɔɐɹʇxǝ ǝq ןןıʍ ʇuɐɔıɹqnꞀɟ§", + "ctnhcore.windpowerarrayregister.windarraytooltip11": "˙ǝɔɹoɟ ǝɹnʇɐu ɯoɹɟ NOI⟘Ɔ∩ᴚ⟘SƎᗡ ǝɥʇ ʇsısǝɹ oʇ sǝןnɹ ǝɥʇ ʎƎᗺO Oᗡϛ§", + "ctnhcore.windpowerarrayregister.windarraytooltip2": ")ɥʇɹɐǝ uo(ㄥ§ ʇ/∩Ǝ %dǝ§ :uoıʇɔnpoɹԀ ɔısɐᗺ -ɟ§", + "ctnhcore.windpowerarrayregister.windarraytooltip3": "ㄣx ɹǝpunɥ⟘ 'ᄅx ʎuıɐᴚǝ§ :ʇsooᗺ ɹǝɥʇɐǝM -ɟ§", + "ctnhcore.windpowerarrayregister.windarraytooltip4": ")ㄣ9-9ϛᄅ( / )ㄣ9-9ϛᄅ '0 'ㄣ9-ʎ(dɯɐןƆǝ§ :ʇsooᗺ ǝpnʇıʇןⱯ -ɟ§", + "ctnhcore.windpowerarrayregister.windarraytooltip5": "])ǝzıSʇǝN(ᄅboן[*Ɛ˙0 ǝ§ :ʇsooᗺ ʞɹoʍʇǝN -ɟ§", + "ctnhcore.windpowerarrayregister.windarraytooltip6": "˙uoıʇɔnpoɹd ǝuıɯɹǝʇǝp oʇ pǝıןdıʇןnɯ ǝɹɐ sʇsooq ןןⱯɟ§", + "ctnhcore.windpowerarrayregister.windarraytooltip7": "˙ʇuɐɔıɹqnꞀ ɟ§s/ᗺɯ %dǝ§ sǝɹınbǝᴚɟ§", + "ctnhcore.windpowerarrayregister.windarraytooltip8": "------------------8§ʞɹoʍʇǝN puıMɐ§-----------------8§", + "ctnhcore.windpowerarrayregister.windarraytooltip9": "˙ʞɹoʍʇǝN puıM ɐ ɯɹoɟ Ɩ =< ɟo ǝɔuɐʇsıp ɐ uıɥʇıʍ ǝɹnʇɔnɹʇs pǝubıןⱯɟ§", + "ctnhcore.wpaacceleratorgui.wideacceleratorguielectric": "ǝuıןɯɐǝᗺ uoɹʇɔǝןƎ", + "ctnhcore.wpaacceleratorgui.wideacceleratorguiname": "ǝuıןɯɐǝᗺ ssǝɔɔⱯ", + "ctnhcore.wpaacceleratorgui.wideacceleratorguinu": "ǝuıןɯɐǝᗺ uoɹʇnǝN", + "ctnhcore.wpaacceleratorgui.wideacceleratorguiproton": "ǝuıןɯɐǝᗺ uoʇoɹԀ", + "ctnhcore:ancient_debris_vein": "uıǝΛ sıɹqǝᗡ ʇuǝıɔuⱯ", + "ctnhcore:apatite_vein_tf": "uıǝΛ ǝʇıʇɐdⱯ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:arctic_crystal_core_vein": "uıǝΛ ǝɹoƆ ןɐʇsʎɹƆ ɔıʇɔɹⱯ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:arsenic_vein": "uıǝΛ ןǝʞɔıN ɔıuǝsɹⱯ pǝᴚ", + "ctnhcore:arsenic_vein_ad": "uıǝΛ ɔıuǝsɹⱯ ǝɔɐdS", + "ctnhcore:bauxite_vein": "uıǝΛ ǝʇıxnɐᗺ uooW", + "ctnhcore:bauxite_vein_aether": "uıǝΛ ǝʇıxnɐᗺ ɹǝɥʇǝⱯ", + "ctnhcore:beryllium_vein_ad": "uıǝΛ ɯnıןןʎɹǝᗺ ǝɔɐdS", + "ctnhcore:calorite_vein_ad": "uıǝΛ ǝʇıɹoןɐƆ ǝɔɐdS", + "ctnhcore:cassiterite_vein_ad": "uıǝΛ ǝʇıɹǝʇıssɐƆ ǝɔɐdS", + "ctnhcore:chromite_vein": "uıǝΛ ǝʇıɯoɹɥƆ", + "ctnhcore:chromium_vein_ad": "uıǝΛ ɯnıɯoɹɥƆ ʎɹnɔɹǝW", + "ctnhcore:combustible_ice_vein_aether": "uıǝΛ ǝɔI ǝןqıʇsnqɯoƆ ɹǝɥʇǝⱯ", + "ctnhcore:copper_vein_ad": "uıǝΛ ɹǝddoƆ ǝɔɐdS", + "ctnhcore:cryolite_vein": "uıǝΛ ǝʇıןoʎɹƆ", + "ctnhcore:cryolite_vein_aether": "uıǝΛ ǝʇıןoʎɹƆ ɹǝɥʇǝⱯ", + "ctnhcore:desh_vein_ad": "uıǝΛ ɥsǝᗡ uooW", + "ctnhcore:diamond_vein_tf": "uıǝΛ puoɯɐıᗡ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:dragonflame_vein": "uıǝΛ ǝɯɐןɟuobɐɹᗡ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:eclipse_shadow_vein": "uıǝΛ ʍopɐɥS ǝsdıןɔƎ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:europium_vein": "uıǝΛ ǝʇıɹonןℲ ɯnıdoɹnƎ", + "ctnhcore:galena_vein_ad": "uıǝΛ ɐuǝןɐ⅁ ǝɔɐdS", + "ctnhcore:galena_vein_tf": "uıǝΛ ɐuǝןɐ⅁ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:illusion_iron_vein": "uıǝΛ uoɹI uoısnןןI", + "ctnhcore:ilmenite_vein": "uıǝΛ ǝʇıuǝɯןI", + "ctnhcore:iridium_vein_ad": "uıǝΛ ɯnıpıɹI snuǝΛ", + "ctnhcore:iron_vein_ad": "uıǝΛ uoɹI pǝpuɐᗺ ǝɔɐdS", + "ctnhcore:iron_vein_tf": "uıǝΛ uoɹI ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:kaolinite_vein": "uıǝΛ ǝʇıuıןoɐʞ", + "ctnhcore:lapis_ore_vein": "uıǝΛ ıןnzɐꞀ sıdɐꞀ ʎɹnɔɹǝW", + "ctnhcore:lich_bone_vein": "uıǝΛ ǝuoᗺ ɥɔıꞀ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:lubricant_vein_ad": "uıǝΛ ɔןɐ⟘ ʎɹnɔɹǝW", + "ctnhcore:magnesite_vein_ad": "uıǝΛ ǝʇısǝubɐW ʎɹnɔɹǝW", + "ctnhcore:magnetite_vein_ad": "uıǝΛ ǝʇıʇǝubɐW ǝɔɐdS", + "ctnhcore:mana_fused_vein": "uıǝΛ pǝsnℲ-ɐuɐW", + "ctnhcore:manganese_vein_ad": "uıǝΛ ǝsǝuɐbuɐW ǝɔɐdS", + "ctnhcore:molybdenum_vein_ad": "uıǝΛ ǝʇıuǝpqʎןoW ǝɔɐdS", + "ctnhcore:monazite_vein_n": "uıǝΛ ǝʇızɐuoW uooW", + "ctnhcore:moon_seawater_vein": "ʇısodǝᗡ ɹǝʇɐM ɐǝS uooW", + "ctnhcore:naquadah_vein_ad": "uıǝΛ ɥɐpɐnbɐN snuǝΛ", + "ctnhcore:naquadah_vein_ad_mars": "uıǝΛ ɥɐpɐnbɐN sɹɐW", + "ctnhcore:nether_quartz_vein_ow": "uıǝΛ zʇɹɐnὉ pןɹoʍɹǝʌO", + "ctnhcore:neutronium_vein_ad": "uıǝΛ ɯnıuoɹʇnǝN oıɔɐן⅁", + "ctnhcore:nickel_vein": "uıǝΛ ןǝʞɔıN", + "ctnhcore:nickel_vein_ad": "uıǝΛ ןǝʞɔıN ǝɔɐdS", + "ctnhcore:niobium_vein_ad": "uıǝΛ ɯnıqoıN oıɔɐן⅁", + "ctnhcore:olivine_vein_ad": "uıǝΛ ǝuıʌıןO ʎɹnɔɹǝW", + "ctnhcore:osmium_vein_ad": "uıǝΛ ɯnıɯsO oıɔɐן⅁", + "ctnhcore:ostrum_vein_ad": "uıǝΛ ɯnɹʇsO sɹɐW", + "ctnhcore:phosphate_vein": "uıǝΛ ǝʇɐɥdsoɥԀ", + "ctnhcore:pitchblende_vein_ad": "uıǝΛ ǝpuǝןqɥɔʇıԀ ǝɔɐdS", + "ctnhcore:platinum_vein_ad": "uıǝΛ ɯnuıʇɐןԀ ǝɔɐdS", + "ctnhcore:precious_alloy_vein": "uıǝΛ ʎoןןⱯ snoıɔǝɹԀ", + "ctnhcore:pyrolusite_vein_ad": "uıǝΛ ǝʇısnןoɹʎԀ snuǝΛ", + "ctnhcore:quartzite_vein": "uıǝΛ ǝʇızʇɹɐnὉ", + "ctnhcore:redstone_vein_ad": "uıǝΛ ǝuoʇspǝᴚ ǝɔɐdS", + "ctnhcore:rhodium_sulfur_crystal_vein": "uıǝΛ ןɐʇsʎɹƆ ɹnɟןnS ɯnıpoɥᴚ", + "ctnhcore:ruthenium_amalgam_vein": "uıǝΛ ɯɐbןɐɯⱯ ɯnıuǝɥʇnᴚ", + "ctnhcore:rutile_vein_ad": "uıǝΛ ǝןıʇnᴚ snuǝΛ", + "ctnhcore:saltpeter_vein_ad": "uıǝΛ ɹǝʇǝdʇןɐS ʎɹnɔɹǝW", + "ctnhcore:salts_vein_ad": "uıǝΛ sʇןɐS sɹɐW", + "ctnhcore:salts_vein_tf": "uıǝΛ sʇןɐS ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:scheelite_vein_ad": "uıǝΛ ǝʇıןǝǝɥɔS ǝɔɐdS", + "ctnhcore:scheelite_vein_aether": "uıǝΛ ǝʇıןǝǝɥɔS ɹǝɥʇǝⱯ", + "ctnhcore:seawater_vein_overworld": "ʇısodǝᗡ ɹǝʇɐʍɐǝS", + "ctnhcore:sheldonite_vein_moon": "uıǝΛ ǝʇıuopןǝɥS uooW", + "ctnhcore:steel_leaf_vein": "uıǝΛ ɟɐǝꞀ ןǝǝʇS ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:sulfur_vein_ad": "uıǝΛ ɹnɟןnS ǝɔɐdS", + "ctnhcore:tetrahedrite_vein_ad": "uıǝΛ ǝʇıɹpǝɥɐɹʇǝ⟘ ǝɔɐdS", + "ctnhcore:thorium_vein_ad": "uıǝΛ ɯnıɹoɥ⟘ ǝɔɐdS", + "ctnhcore:thunderstrike_vein": "uıǝΛ ǝʞıɹʇsɹǝpunɥ⟘ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:toxic_swamp_amber_vein": "uıǝΛ ɹǝqɯⱯ dɯɐʍS ɔıxo⟘ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "ctnhcore:tuff_uraninite_vein_ad": "uıǝΛ ǝʇıuıuɐɹ∩ ɟɟn⟘ ǝɔɐdS", + "ctnhcore:uranium238_vein_ad": "uıǝΛ 8Ɛᄅ-ɯnıuɐɹ∩ ʎɹnɔɹǝW", + "ctnhcore:wollastonite_vein": "uıǝΛ ǝʇıuoʇsɐןןoM", + "ctnhcore:zanite_vein_aether": "uıǝΛ ǝʇıuɐZ ɹǝɥʇǝⱯ", + "ctnhcore:zinc_vein": "uıǝΛ ɔuıZ", + "ctnhcore:zircon_vein_aether": "uıǝΛ uoɔɹıZ ɹǝɥʇǝⱯ", + "ctnhcore:zirkelite_vein": "uıǝΛ ǝʇıןǝʞɹıZ", + "desh_vein_ad": "uıǝΛ ɥsǝᗡ ɐɹʇsⱯ pⱯ", + "diamond_vein_tf": "uıǝΛ puoɯɐıᗡ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "enchantment.ctnhcore.cooling.desc": "pןoɔ oʇ ǝɔuɐʇsısǝɹ sǝʌoɹdɯI", + "enchantment.ctnhcore.warming.desc": "ʇɐǝɥ oʇ ǝɔuɐʇsısǝɹ sǝʌoɹdɯI", "fermenting_tank_machine.ctnhcore.fermentingtankmachine.growing_efficiency": "%d%%:ʎɔuǝıɔıɟɟƎ ɥʇʍoɹ⅁", "fermenting_tank_machine.ctnhcore.fermentingtankmachine.growing_temperature": "ɹ§Ɔ°%dᄅ§:ǝɹnʇɐɹǝdɯǝ⟘ ɥʇʍoɹ⅁", - "galena_vein_ad": "pⱯ uıǝΛ ɐuǝןɐ⅁", - "galena_vein_tf": "ɟ⟘ uıǝΛ ɐuǝןɐ⅁", - "gold_vein_tf": "ɟ⟘ uıǝΛ pןo⅁", + "galena_vein_ad": "uıǝΛ ɐuǝןɐ⅁ ɐɹʇsⱯ pⱯ", + "galena_vein_tf": "uıǝΛ ɐuǝןɐ⅁ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gold_vein_tf": "uıǝΛ pןo⅁ ʇsǝɹoℲ ʇɥbıןıʍ⟘", "gtceu.astronomical_observatory": "ʎɹoʇɐʌɹǝsqO ןɐɔıɯouoɹʇsⱯ", "gtceu.bedrock_drilling_rigs": "sbıᴚ buıןןıɹᗡ ʞɔoɹpǝᗺ", "gtceu.big_dam": "ɯɐᗡ bıᗺ", "gtceu.coke_oven": "uǝʌO ǝʞoƆ", - "gtceu.multiblock.laser.tooltip": "pǝʇʇıɯɹǝd sı ɹǝqɯɐɥɔ ɹǝsɐן ǝɥʇ ɟo ǝsn ǝɥ⟘", + "gtceu.jei.ore_vein.ancient_debris_vein": "uıǝΛ sıɹqǝᗡ ʇuǝıɔuⱯ", + "gtceu.jei.ore_vein.apatite_vein_tf": "uıǝΛ ǝʇıʇɐdⱯ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.arctic_crystal_core_vein": "uıǝΛ ǝɹoƆ ןɐʇsʎɹƆ ɔıʇɔɹⱯ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.arsenic_vein": "uıǝΛ ןǝʞɔıN ɔıuǝsɹⱯ pǝᴚ", + "gtceu.jei.ore_vein.arsenic_vein_ad": "uıǝΛ ɔıuǝsɹⱯ ǝɔɐdS", + "gtceu.jei.ore_vein.bauxite_vein": "uıǝΛ ǝʇıxnɐᗺ uooW", + "gtceu.jei.ore_vein.bauxite_vein_aether": "uıǝΛ ǝʇıxnɐᗺ ɹǝɥʇǝⱯ", + "gtceu.jei.ore_vein.beryllium_vein_ad": "uıǝΛ ɯnıןןʎɹǝᗺ ǝɔɐdS", + "gtceu.jei.ore_vein.calorite_vein_ad": "uıǝΛ ǝʇıɹoןɐƆ ǝɔɐdS", + "gtceu.jei.ore_vein.cassiterite_vein_ad": "uıǝΛ ǝʇıɹǝʇıssɐƆ ǝɔɐdS", + "gtceu.jei.ore_vein.chromite_vein": "uıǝΛ ǝʇıɯoɹɥƆ", + "gtceu.jei.ore_vein.chromium_vein_ad": "uıǝΛ ɯnıɯoɹɥƆ ʎɹnɔɹǝW", + "gtceu.jei.ore_vein.combustible_ice_vein_aether": "uıǝΛ ǝɔI ǝןqıʇsnqɯoƆ ɹǝɥʇǝⱯ", + "gtceu.jei.ore_vein.copper_vein_ad": "uıǝΛ ɹǝddoƆ ǝɔɐdS", + "gtceu.jei.ore_vein.cryolite_vein": "uıǝΛ ǝʇıןoʎɹƆ", + "gtceu.jei.ore_vein.cryolite_vein_aether": "uıǝΛ ǝʇıןoʎɹƆ ɹǝɥʇǝⱯ", + "gtceu.jei.ore_vein.desh_vein_ad": "uıǝΛ ɥsǝᗡ uooW", + "gtceu.jei.ore_vein.diamond_vein_tf": "uıǝΛ puoɯɐıᗡ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.dragonflame_vein": "uıǝΛ ǝɯɐןɟuobɐɹᗡ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.eclipse_shadow_vein": "uıǝΛ ʍopɐɥS ǝsdıןɔƎ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.europium_vein": "uıǝΛ ǝʇıɹonןℲ ɯnıdoɹnƎ", + "gtceu.jei.ore_vein.galena_vein_ad": "uıǝΛ ɐuǝןɐ⅁ ǝɔɐdS", + "gtceu.jei.ore_vein.galena_vein_tf": "uıǝΛ ɐuǝןɐ⅁ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.gold_vein_tf": "uıǝΛ ǝʇıʇǝubɐW ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.illusion_iron_vein": "uıǝΛ uoɹI uoısnןןI", + "gtceu.jei.ore_vein.ilmenite_vein": "uıǝΛ ǝʇıuǝɯןI", + "gtceu.jei.ore_vein.iridium_vein_ad": "uıǝΛ ɯnıpıɹI snuǝΛ", + "gtceu.jei.ore_vein.iron_vein_ad": "uıǝΛ uoɹI pǝpuɐᗺ ǝɔɐdS", + "gtceu.jei.ore_vein.iron_vein_tf": "uıǝΛ uoɹI ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.kaolinite_vein": "uıǝΛ ǝʇıuıןoɐʞ", + "gtceu.jei.ore_vein.lapis_ore_vein": "uıǝΛ ıןnzɐꞀ sıdɐꞀ ʎɹnɔɹǝW", + "gtceu.jei.ore_vein.lich_bone_vein": "uıǝΛ ǝuoᗺ ɥɔıꞀ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.lubricant_vein_ad": "uıǝΛ ɔןɐ⟘ ʎɹnɔɹǝW", + "gtceu.jei.ore_vein.magnesite_vein_ad": "uıǝΛ ǝʇısǝubɐW ʎɹnɔɹǝW", + "gtceu.jei.ore_vein.magnetite_vein_ad": "uıǝΛ ǝʇıʇǝubɐW ǝɔɐdS", + "gtceu.jei.ore_vein.mana_fused_vein": "uıǝΛ pǝsnℲ-ɐuɐW", + "gtceu.jei.ore_vein.manganese_vein_ad": "uıǝΛ ǝsǝuɐbuɐW ǝɔɐdS", + "gtceu.jei.ore_vein.molybdenum_vein_ad": "uıǝΛ ǝʇıuǝpqʎןoW ǝɔɐdS", + "gtceu.jei.ore_vein.monazite_vein_n": "uıǝΛ ǝʇızɐuoW uooW", + "gtceu.jei.ore_vein.naquadah_vein_ad": "uıǝΛ ɥɐpɐnbɐN snuǝΛ", + "gtceu.jei.ore_vein.naquadah_vein_ad_mars": "uıǝΛ ɥɐpɐnbɐN sɹɐW", + "gtceu.jei.ore_vein.nether_quartz_vein_ow": "uıǝΛ zʇɹɐnὉ pןɹoʍɹǝʌO", + "gtceu.jei.ore_vein.neutronium_vein_ad": "uıǝΛ ɯnıuoɹʇnǝN oıɔɐן⅁", + "gtceu.jei.ore_vein.nickel_vein": "uıǝΛ ןǝʞɔıN", + "gtceu.jei.ore_vein.nickel_vein_ad": "uıǝΛ ןǝʞɔıN ǝɔɐdS", + "gtceu.jei.ore_vein.niobium_vein_ad": "uıǝΛ ɯnıqoıN oıɔɐן⅁", + "gtceu.jei.ore_vein.olivine_vein_ad": "uıǝΛ ǝuıʌıןO ʎɹnɔɹǝW", + "gtceu.jei.ore_vein.osmium_vein_ad": "uıǝΛ ɯnıɯsO oıɔɐן⅁", + "gtceu.jei.ore_vein.ostrum_vein_ad": "uıǝΛ ɯnɹʇsO sɹɐW", + "gtceu.jei.ore_vein.phosphate_vein": "uıǝΛ ǝʇɐɥdsoɥԀ", + "gtceu.jei.ore_vein.pitchblende_vein_ad": "uıǝΛ ǝpuǝןqɥɔʇıԀ ǝɔɐdS", + "gtceu.jei.ore_vein.platinum_vein_ad": "uıǝΛ ɯnuıʇɐןԀ ǝɔɐdS", + "gtceu.jei.ore_vein.precious_alloy_vein": "uıǝΛ ʎoןןⱯ snoıɔǝɹԀ", + "gtceu.jei.ore_vein.pyrolusite_vein_ad": "uıǝΛ ǝʇısnןoɹʎԀ snuǝΛ", + "gtceu.jei.ore_vein.quartzite_vein": "uıǝΛ ǝʇızʇɹɐnὉ", + "gtceu.jei.ore_vein.redstone_vein_ad": "uıǝΛ ǝuoʇspǝᴚ ǝɔɐdS", + "gtceu.jei.ore_vein.rhodium_sulfur_crystal_vein": "uıǝΛ ןɐʇsʎɹƆ ɹnɟןnS ɯnıpoɥᴚ", + "gtceu.jei.ore_vein.ruthenium_amalgam_vein": "uıǝΛ ɯɐbןɐɯⱯ ɯnıuǝɥʇnᴚ", + "gtceu.jei.ore_vein.rutile_vein_ad": "uıǝΛ ǝןıʇnᴚ snuǝΛ", + "gtceu.jei.ore_vein.saltpeter_vein_ad": "uıǝΛ ɹǝʇǝdʇןɐS ʎɹnɔɹǝW", + "gtceu.jei.ore_vein.salts_vein_ad": "uıǝΛ sʇןɐS sɹɐW", + "gtceu.jei.ore_vein.salts_vein_tf": "uıǝΛ sʇןɐS ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.scheelite_vein_ad": "uıǝΛ ǝʇıןǝǝɥɔS ǝɔɐdS", + "gtceu.jei.ore_vein.scheelite_vein_aether": "uıǝΛ ǝʇıןǝǝɥɔS ɹǝɥʇǝⱯ", + "gtceu.jei.ore_vein.sheldonite_vein_moon": "uıǝΛ ǝʇıuopןǝɥS uooW", + "gtceu.jei.ore_vein.steel_leaf_vein": "uıǝΛ ɟɐǝꞀ ןǝǝʇS ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.sulfur_vein_ad": "uıǝΛ ɹnɟןnS ǝɔɐdS", + "gtceu.jei.ore_vein.tetrahedrite_vein_ad": "uıǝΛ ǝʇıɹpǝɥɐɹʇǝ⟘ ǝɔɐdS", + "gtceu.jei.ore_vein.thorium_vein_ad": "uıǝΛ ɯnıɹoɥ⟘ ǝɔɐdS", + "gtceu.jei.ore_vein.thunderstrike_vein": "uıǝΛ ǝʞıɹʇsɹǝpunɥ⟘ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.toxic_swamp_amber_vein": "uıǝΛ ɹǝqɯⱯ dɯɐʍS ɔıxo⟘ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "gtceu.jei.ore_vein.tuff_uraninite_vein_ad": "uıǝΛ ǝʇıuıuɐɹ∩ ɟɟn⟘ ǝɔɐdS", + "gtceu.jei.ore_vein.uranium238_vein_ad": "uıǝΛ 8Ɛᄅ-ɯnıuɐɹ∩ ʎɹnɔɹǝW", + "gtceu.jei.ore_vein.wollastonite_vein": "uıǝΛ ǝʇıuoʇsɐןןoM", + "gtceu.jei.ore_vein.zanite_vein_aether": "uıǝΛ ǝʇıuɐZ ɹǝɥʇǝⱯ", + "gtceu.jei.ore_vein.zinc_vein": "uıǝΛ ɔuıZ", + "gtceu.jei.ore_vein.zircon_vein_aether": "uıǝΛ uoɔɹıZ ɹǝɥʇǝⱯ", + "gtceu.jei.ore_vein.zirkelite_vein": "uıǝΛ ǝʇıןǝʞɹıZ", "gtceu.naq_mk1": "ןǝnℲ ɹǝdnS", "gtceu.photovoltaic_power": "buıɹǝʍoԀ ɔıɐʇןoʌoʇoɥԀ", "gtceu.plasma_condenser": "uoıʇɐsuǝpuoƆ ɐɯsɐןԀ", + "gtceu.recipe_logic.recipe_waiting": ":buıʇıɐʍ ǝdıɔǝᴚ", + "gtceu.recipe_logic.setup_fail": ":ʇɹɐʇs oʇ pǝןıɐɟ ǝdıɔǝᴚ", + "gtceu.recipe_modifier.insufficient_eu_to_start_fusion": "uoıʇɔɐǝɹ uoısnɟ ǝɥʇ ʇɹɐʇs oʇ ʎbɹǝuǝ ɥbnouǝ ʇoN", "gtceu.slaughter_house": "ǝsnoH ɹǝʇɥbnɐןS", "gtceu.underfloor_heating_system": "buıʇɐǝH ɹooןɟɹǝpu∩", "gui.ctnh.neutron_sensor.invert.disabled": "˙ǝnןɐʌ ɯnɯıuıɯ ǝɥʇ uɐɥʇ ssǝן sı ʇı uǝɥʍ ןɐubıs ǝuoʇspǝɹ ɐ buıʇʇıɯǝ doʇs puɐ 'sǝnןɐʌ ɯnɯıxɐɯ puɐ ɯnɯıuıɯ ʇǝs ǝɥʇ uǝǝʍʇǝq sı ʎbɹǝuǝ ɔıʇǝuıʞ uoɹʇnǝu ǝɥʇ uǝɥʍ ןɐubıs ǝuoʇspǝɹ ɐ ʇıɯǝ ןןıʍ ɹosuǝs ǝɥʇ 'ʇןnɐɟǝp ʎᗺ\nɔıboן ǝuoʇspǝɹ ǝsɹǝʌǝɹ oʇ ɥɔʇıʍS\n\nןɐɯɹoN :ʇndʇnO", @@ -654,9 +1073,13 @@ "info.multiblock.neutron_activator.ctnhcore.neutronactivatormachine.efficiency": "%s%% :ʎɔuǝıɔıɟɟƎ", "info.multiblock.neutron_activator.ctnhcore.neutronactivatormachine.ev": "Λǝ%d :ʎbɹǝuƎ ɔıʇǝuıʞ uoɹʇnǝN ʇuǝɹɹnƆ", "info.multiblock.neutron_activator.ctnhcore.neutronactivatormachine.height_tooltip": "%s :ʇɥbıǝH", - "iridium_vein_ad": "pⱯ uıǝΛ ɯnıpıɹI", - "iron_vein_ad": "pⱯ uıǝΛ uoɹI", - "iron_vein_tf": "ɟ⟘ uıǝΛ uoɹI", + "iridium_vein_ad": "uıǝΛ ɯnıpıɹI ɐɹʇsⱯ pⱯ", + "iron_vein_ad": "uıǝΛ uoɹI ɐɹʇsⱯ pⱯ", + "iron_vein_tf": "uıǝΛ uoɹI ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "item.ctnh.me_advanced_terminal.setting.8": "ǝpoW ןɐʌoɯǝᴚ", + "item.ctnh.me_advanced_terminal.setting.8.tooltip": "ǝbɐɹoʇs ƎⱯ uı pǝɹoʇs ʎןןɐɔıʇɐɯoʇnɐ ǝɹɐ sʞɔoןq pǝʌoɯǝɹ 'ǝbɐɹoʇS ƎⱯ ɥʇıʍ ɹǝɥʇǝboʇ pǝןqɐuǝ uǝɥM\nsʞɔoןq pǝʌoɯǝɹ ɹoɟ ɯooɹ sɐɥ ʎɹoʇuǝʌuı ǝɥʇ ǝɹns ǝʞɐW\n)pǝןqɐuǝ :Ɩ 'pǝןqɐsıp :0( ǝpoɯ ןɐʌoɯǝɹ ǝןqɐuƎ", + "item.ctnh.me_advanced_terminal.setting.9": "uoıʇɐɹnbıɟuoƆ uoıʇɐɯɹoℲ ʞɔoןqıʇןnW", + "item.ctnh.me_advanced_terminal.setting.9.tooltip": "uoıʇɐɹnbıɟuoɔ uoıʇɐɯɹoɟ ʞɔoןqıʇןnW", "item.ctnhcore.advanced_ram_chip": "dıɥƆ ɯɐᴚ pǝɔuɐʌpⱯ", "item.ctnhcore.advanced_ram_wafer": "ɹǝɟɐM ɯɐᴚ pǝɔuɐʌpⱯ", "item.ctnhcore.animal_excreta": "ɐʇǝɹɔxƎ ןɐɯıuⱯ", @@ -788,23 +1211,33 @@ "item.ctnhcore.tumor": "ɹoɯn⟘", "item.ctnhcore.uhv_voltage_coil": "ןıoƆ ǝbɐʇןoΛ ɥbıH ɐɹʇן∩", "item.ctnhcore.yharim": "ʇobuI ɯıɹɐɥʎ", - "itemGroup.ctnhcore.block": "sʞɔoןᗺ HN⟘Ɔ", - "itemGroup.ctnhcore.item": "sɯǝʇI HN⟘Ɔ", - "itemGroup.ctnhcore.machine": "sǝuıɥɔɐW HN⟘Ɔ", "kaolinite_vein": "uıǝΛ ǝʇıuıןoɐʞ", - "lapis_vein_ad": "pⱯ uıǝΛ sıdɐꞀ", - "lapis_vein_tf": "ɟ⟘ uıǝΛ sıdɐꞀ", - "lubricant_vein_ad": "pⱯ uıǝΛ ʇuɐɔıɹqnꞀ", - "lubricant_vein_tf": "ɟ⟘ uıǝΛ ʇuɐɔıɹqnꞀ", + "lapis_vein_ad": "uıǝΛ ıןnzɐꞀ sıdɐꞀ ɐɹʇsⱯ pⱯ", + "lapis_vein_tf": "uıǝΛ ıןnzɐꞀ sıdɐꞀ ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "lubricant_vein_ad": "uıǝΛ ǝuoʇsdɐoS ɐɹʇsⱯ pⱯ", + "lubricant_vein_tf": "uıǝΛ ǝuoʇsdɐoS ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip0.tooltip": "sǝɹo buıuıɯ ʎןuo 'sǝdıd buıuıɯ ou puɐ pǝǝds ɹǝʇsɐɟ 'sbuıɥ⟘W⟘⅁ ɯoɹℲㄥ§", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip1.tooltip": "buıʞɹoʍ ǝןıɥʍ ʞunɥɔ ɟןǝs buıpɐoן ǝɔɹoℲq§", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip2.tooltip": "sʞɔıʇ ㄥ§%dɟ§ sǝʞɐʇ ʞɔoןq ɥɔɐǝ 'buıʞɹoʍ ǝןıɥʍㄥ§ ʇ/∩Ǝ %dɟ§ sǝs∩", + "machine.ctnhcore.ctnhmachines.ctnhmachineoxygenenrichertooltip0.tooltip": "ɯooɹ pǝןɐǝs ǝןqɐɥʇɐǝɹq ɐ uıɐʇuıɐɯ oʇ pınןɟ uǝbʎxo sǝɯnsuoƆ", + "machine.ctnhcore.ctnhmachines.ctnhmachineoxygenenrichertooltip1.tooltip": "sʞɔoןq %s uıɥʇıʍ sǝɔɐds pǝsoןɔuǝ oʇ uǝbʎxo sǝıןddnS", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk10tooltip.tooltip": "˙ʎןsnoǝuɐʇןnɯıs pǝssǝɔoɹd ǝq oʇ sǝdıɔǝɹ 960ㄣ oʇ dn sʍoןןⱯ", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk11tooltip.tooltip": "˙ʎןsnoǝuɐʇןnɯıs pǝssǝɔoɹd ǝq oʇ sǝdıɔǝɹ ㄣ8Ɛ9Ɩ oʇ dn sʍoןןⱯ", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk12tooltip.tooltip": "˙ʎןsnoǝuɐʇןnɯıs pǝssǝɔoɹd ǝq oʇ sǝdıɔǝɹ 9Ɛϛϛ9 oʇ dn sʍoןןⱯ", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk13tooltip.tooltip": "˙ʎןsnoǝuɐʇןnɯıs pǝssǝɔoɹd ǝq oʇ sǝdıɔǝɹ ㄣㄣƖᄅ9ᄅ oʇ dn sʍoןןⱯ", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk14tooltip.tooltip": "˙ʎןsnoǝuɐʇןnɯıs pǝssǝɔoɹd ǝq oʇ sǝdıɔǝɹ 9ㄥϛ8ㄣ0Ɩ oʇ dn sʍoןןⱯ", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk9tooltip.tooltip": "˙ʎןsnoǝuɐʇןnɯıs pǝssǝɔoɹd ǝq oʇ sǝdıɔǝɹ ㄣᄅ0Ɩ oʇ dn sʍoןןⱯ", + "machine.ctnhcore.ctnhmachines.machinenaquadahreactortooltip.tooltip": "%s%% :ʎɔuǝıɔıɟɟƎ", + "machine.ctnhcore.ctnhmachines.machinerocketenginetooltip.tooltip": "%s%% :ʎɔuǝıɔıɟɟƎ", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.0": "¡uoɹʇnǝN ǝɥʇ ǝʇɐɹǝןǝɔɔⱯ oʇ ∩Ǝ ʇnduIㄥ§o§", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.1": "%s :ʇnduI ∩Ǝ xɐW9§", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.2": "%s :ʇsoƆ ∩Ǝ xɐW9§", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.3": "˙ʎbɹǝuǝ ɔıʇǝuıʞ uoɹʇnǝu ɟo q§Λǝ-0ᄅ~0Ɩǝ§ oʇ pǝʇɹǝʌuoɔ ǝq ןןıʍ ∩Ǝ ɥɔɐƎq§", "machine.ctnhcore.gtnnmachines.neutron_sensor.tooltip.0": "ㄥ§ɹoʇɐʌıʇɔⱯ uoɹʇnǝNq§ uo pǝןןɐʇsuı ǝq pןnoƆㄥ§", "machine.ctnhcore.gtnnmachines.neutron_sensor.tooltip.1": "˙sbuıʇʇǝs ɹoɟ I∩⅁ ǝɥʇ uǝdo oʇ ʞɔıןɔ-ʇɥbıɹ 'ןɐubıs ǝuoʇs pǝɹ ʇndʇnoㄥ§ ʎbɹǝuǝ ɔıʇǝuıʞ uoɹʇnǝu9§ uo pǝsɐᗺ", - "magnesite_vein_ad": "pⱯ uıǝΛ ǝʇısǝubɐW", - "magnetite_vein_ad": "pⱯ uıǝΛ ǝʇıʇǝubɐW", - "manganese_vein_ad": "pⱯ uıǝΛ ǝsǝuɐbuɐW", + "magnesite_vein_ad": "uıǝΛ ǝʇısǝubɐW ɐɹʇsⱯ pⱯ", + "magnetite_vein_ad": "uıǝΛ ǝʇıʇǝubɐW ɐɹʇsⱯ pⱯ", + "manganese_vein_ad": "uıǝΛ ǝsǝuɐbuɐW ɐɹʇsⱯ pⱯ", "material.ctnhcore.1_chloro_2_ethylhexane": "ǝuɐxǝɥןʎɥʇƎ ᄅ oɹoןɥƆ Ɩ", "material.ctnhcore.2_ethylhexanol": "ןouɐxǝɥןʎɥʇƎ ᄅ", "material.ctnhcore.acetaldehyde": "ǝpʎɥǝpןɐʇǝɔⱯ", @@ -1339,11 +1772,14 @@ "material.ctnhcore.zr_hf_chloride": "ǝpıɹoןɥƆ ɟH ɹZ", "material.ctnhcore.zr_hf_oxy_chloride": "ǝpıɹoןɥƆ ʎxO ɟH ɹZ", "material.ctnhcore.zr_hf_separation_mix": "xıW uoıʇɐɹɐdǝS ɟH ɹZ", - "message.ctnhcore.portal.invalid_dimension": "pןɹoʍɹǝʌO ǝɥʇ uı pǝsn ǝq ʎןuo uɐɔ ןɐʇɹod sıɥ⟘", - "molybdenite_vein_tf": "ɟ⟘ uıǝΛ ǝʇıuǝpqʎןoW", - "molybdenum_vein_ad": "pⱯ uıǝΛ ɯnuǝpqʎןoW", - "monazite_vein_n": "N uıǝΛ ǝʇızɐuoW", + "molybdenite_vein_tf": "uıǝΛ ǝʇıuǝpqʎןoW ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "molybdenum_vein_ad": "uıǝΛ ɯnuǝpqʎןoW ɐɹʇsⱯ pⱯ", + "monazite_vein_n": "uıǝΛ ǝʇızɐuoW uooW", + "multiblock.ctnh.nuclear_reactor.consume_amount": "s/ᗺɯ %s :ǝʇɐɹ uoıʇdɯnsuoɔ ʇuɐןooƆ", + "multiblock.ctnh.nuclear_reactor.coolant": "%s :ʇuɐןooƆ", + "multiblock.ctnh.nuclear_reactor.coolant_amount": "ᗺɯ %s :ʇunoɯɐ ʇuɐןooƆ", "multiblock.ctnhcore.gtmachinemodify.cleanroom_restriction.tooltip": "ʇɥbıʍ ɹo ɥʇbuǝן uɐɥʇ ɹǝʇɐǝɹb sı ʇɥbıǝɥ ɟı buıʞɹoʍ doʇS", + "multiblock.ctnhcore.gtmachinemodify.gcymreduction.tooltip": "9˙0× ʎbɹǝuǝ ǝdıɔǝɹ '8˙0× ǝɯıʇ ǝdıɔǝᴚ", "multiblock.ctnhcore.gtmachinemodify.precision_assembly.tooltip.0": "ʎןqɯǝssⱯ uoısıɔǝɹԀ :ǝdʎʇ ǝdıɔǝɹ ǝןqɐןıɐʌɐ ɹǝɥʇO", "multiblock.ctnhcore.gtmachinemodify.precision_assembly.tooltip.1": "ǝpoɯ ʎןqɯǝssɐ uoısıɔǝɹd uı ǝןqıssod ʇou sı uoıʇɐzıןǝןןɐɹɐԀ :Ǝ⟘ON", "multiblock.ctnhcore.gtnnmultiblocks.chemical_plant.tooltip.0": "ɹǝıʇ/pǝǝds 9§%0ϛ+ǝ§ :ןıoƆ9§", @@ -1366,19 +1802,20 @@ "multiblock.ctnhcore.gtnnmultiblocks.neutron_activator.tooltip.3": "ʇsnp ɯnıןןʎɹǝq ɹo ɯnısǝɔ ʇnduı uǝɥʍ ʎןǝʇɐıpǝɯɯı ʎbɹǝuǝ ɔıʇǝuıʞ uoɹʇnǝu9§ ΛǝW0Ɩǝ§ qɹosqⱯ9§", "multiblock.ctnhcore.gtnnmultiblocks.neutron_activator.tooltip.4": "¡ǝpoןdxǝ ןןıʍ ʇı '9§ΛǝW00ᄅƖㄣ§ spǝǝɔxǝ ʎbɹǝuǝ ɔıʇǝuıʞ uoɹʇnǝu ǝɥʇ uǝɥM9§", "multiblock.ctnhcore.gtnnmultiblocks.neutron_activator.tooltip.5": "˙ʇndʇno ǝɥʇ sɐ pǝɔnpoɹd ǝq ןןıʍ ǝʇsɐʍ ǝʌıʇɔɐoıpɐɹ ʎןuo 'ǝdıɔǝɹ ǝɥʇ uı pǝıɟıɔǝds ǝbuɐɹ pǝɹınbǝɹ ǝɥʇ ǝpısʇno sןןɐɟ ʎbɹǝuǝ ɔıʇǝuıʞ s,uoɹʇnǝu ǝɥʇ ɟı9§", - "naquadah_vein_ad": "pⱯ uıǝΛ ɥɐpɐnbɐN", - "naquadah_vein_ad_mars": "sɹɐW pⱯ uıǝΛ ɥɐpɐnbɐN", - "neutronium_vein_ad": "pⱯ uıǝΛ ɯnıuoɹʇnǝN", - "nickel_vein_ad": "pⱯ uıǝΛ ןǝʞɔıN", - "nickel_vein_tf": "ɟ⟘ uıǝΛ ןǝʞɔıN", - "niobium_vein_ad": "pⱯ uıǝΛ ɯnıqoıN", - "olivine_vein_ad": "pⱯ uıǝΛ ǝuıʌıןO", - "olivine_vein_tf": "ɟ⟘ uıǝΛ ǝuıʌıןO", - "osmium_vein_ad": "pⱯ uıǝΛ ɯnıɯsO", - "ostrum_vein_ad": "pⱯ uıǝΛ ɯnɹʇsO", - "pitchblende_vein_ad": "pⱯ uıǝΛ ǝpuǝןqɥɔʇıԀ", - "platinum_vein_ad": "pⱯ uıǝΛ ɯnuıʇɐןԀ", - "pyrolusite_vein_ad": "pⱯ uıǝΛ ǝʇısnןoɹʎԀ", + "naquadah_vein_ad": "uıǝΛ ɥɐpɐnbɐN ɐɹʇsⱯ pⱯ", + "naquadah_vein_ad_mars": "uıǝΛ ɥɐpɐnbɐN sɹɐW", + "neutronium_vein_ad": "uıǝΛ ɯnıuoɹʇnǝN ɐɹʇsⱯ pⱯ", + "nickel_vein_ad": "uıǝΛ ןǝʞɔıN ɐɹʇsⱯ pⱯ", + "nickel_vein_tf": "uıǝΛ ןǝʞɔıN ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "niobium_vein_ad": "uıǝΛ ɯnıqoıN ɐɹʇsⱯ pⱯ", + "nuclear_reactor": "uoısɹǝʌuoƆ ʎbɹǝuƎ ɹɐǝןɔnN", + "olivine_vein_ad": "uıǝΛ ǝuıʌıןO ɐɹʇsⱯ pⱯ", + "olivine_vein_tf": "uıǝΛ ǝuıʌıןO ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "osmium_vein_ad": "uıǝΛ ɯnıɯsO ɐɹʇsⱯ pⱯ", + "ostrum_vein_ad": "uıǝΛ ɯnɹʇsO ɐɹʇsⱯ pⱯ", + "pitchblende_vein_ad": "uıǝΛ ǝpuǝןqɥɔʇıԀ ɐɹʇsⱯ pⱯ", + "platinum_vein_ad": "uıǝΛ ɯnuıʇɐןԀ ɐɹʇsⱯ pⱯ", + "pyrolusite_vein_ad": "uıǝΛ ǝʇısnןoɹʎԀ ɐɹʇsⱯ pⱯ", "quartzite_vein": "uıǝΛ ǝʇızʇɹɐnὉ", "recipe.biochemistry.ctnhcore.biochemistryrecipes.digestion_info": "uoıʇɐɹnʇɐs puɐ uoıʇıɹʇnu s,pooɟ ǝɥʇ oʇ pǝʇɐןǝɹ sı ʇndʇnO ʇɔɐxƎ ǝɥ⟘", "recipe.biochemistry.ctnhcore.biochemistryrecipes.food_info": "pooɟ ʎuⱯ", @@ -1391,21 +1828,22 @@ "recipe.condition.plant_casing.ctnhcore.plantcasingcondition.tooltip": ")%s( %s :buısɐƆ", "recipe.condition.plant_casing.ctnhcore.plantcasingcondition.tungsten_steel": "ןǝǝʇS uǝʇsbun⟘", "recipe.condition.tier_casing.ctnhcore.tiercasingcondition.tooltip": "%s :ɹǝı⟘ buısɐƆ", - "redstone_vein_ad": "pⱯ uıǝΛ ǝuoʇspǝᴚ", - "rutile_vein_ad": "pⱯ uıǝΛ ǝןıʇnᴚ", - "saltpeter_vein_ad": "pⱯ uıǝΛ ɹǝʇǝdʇןɐS", - "salts_vein_ad": "pⱯ uıǝΛ sʇןɐS", - "salts_vein_tf": "ɟ⟘ uıǝΛ sʇןɐS", - "sapphire_vein_tf": "ɟ⟘ uıǝΛ ǝɹıɥddɐS", - "scheelite_vein_ad": "pⱯ uıǝΛ ǝʇıןǝǝɥɔS", - "sulfur_vein_ad": "pⱯ uıǝΛ ɹnɟןnS", - "tetrahedrite_vein_ad": "pⱯ uıǝΛ ǝʇıɹpǝɥɐɹʇǝ⟘", + "redstone_vein_ad": "uıǝΛ ǝuoʇspǝᴚ ɐɹʇsⱯ pⱯ", + "rutile_vein_ad": "uıǝΛ ǝןıʇnᴚ ɐɹʇsⱯ pⱯ", + "saltpeter_vein_ad": "uıǝΛ ɹǝʇǝdʇןɐS ɐɹʇsⱯ pⱯ", + "salts_vein_ad": "uıǝΛ sʇןɐS ɐɹʇsⱯ pⱯ", + "salts_vein_tf": "uıǝΛ sʇןɐS ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "sapphire_vein_tf": "uıǝΛ ǝɹıɥddɐS ʇsǝɹoℲ ʇɥbıןıʍ⟘", + "scheelite_vein_ad": "uıǝΛ ǝʇıןǝǝɥɔS ɐɹʇsⱯ pⱯ", + "sulfur_vein_ad": "uıǝΛ ɹnɟןnS ɐɹʇsⱯ pⱯ", + "tetrahedrite_vein_ad": "uıǝΛ ǝʇıɹpǝɥɐɹʇǝ⟘ ɐɹʇsⱯ pⱯ", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.0": ":sǝɹnʇɐǝɟ buıʍoןןoɟ ǝɥʇ sɐɥ uoısuǝɯıᗡ pıoΛ ǝɥ⟘", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.1": "ʎןןɐɹnʇɐu uʍɐds sqoɯ oN - ", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.2": "ʎןןɐuoıʇıpuoɔun ʇɥbıןɟ ǝʌıʇɐǝɹɔ pǝʇuɐɹb ǝɹɐ sɹǝʎɐןԀ - ", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.3": "ʇıɯıן ǝɔuɐʇsıp ou ǝʌɐɥ sʇuıoԀ ssǝɔɔⱯ ssǝןǝɹıM ƎW - ", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.4": "uoıʇɔunɟ ʇou op sɹoʇɐɹǝuǝb puıʍ puɐ sןǝuɐd ɹɐןoS - ", - "tuff_uraninite_vein_ad": "pⱯ uıǝΛ ǝʇıuıuɐɹ∩ ɟɟn⟘", - "uranium238_vein_ad": "pⱯ uıǝΛ 8Ɛᄅɯnıuɐɹ∩", - "wollastonite_vein": "uıǝΛ ǝʇıuoʇsɐןןoM" + "tuff_uraninite_vein_ad": "uıǝΛ ǝʇıuıuɐɹ∩ ɟɟn⟘ ɐɹʇsⱯ pⱯ", + "uranium238_vein_ad": "uıǝΛ 8Ɛᄅ-ɯnıuɐɹ∩ ɐɹʇsⱯ pⱯ", + "wollastonite_vein": "uıǝΛ ǝʇıɯoןoᗡ", + "zenith_machine_sp": "¡buıpןǝıʎu∩ spuɐʇS uoɔɐǝᗺ ɔıuoısԀ ǝɥ⟘ϛ§" } \ No newline at end of file diff --git a/src/generated/resources/assets/ctnhcore/lang/en_us.json b/src/generated/resources/assets/ctnhcore/lang/en_us.json index 0f64a2f0e..07bcb6abb 100644 --- a/src/generated/resources/assets/ctnhcore/lang/en_us.json +++ b/src/generated/resources/assets/ctnhcore/lang/en_us.json @@ -1,8 +1,8 @@ { - "apatite_vein_tf": "Apatite Vein Tf", - "arsenic_vein_ad": "Arsenic Vein Ad", + "apatite_vein_tf": "Twilight Forest Apatite Vein", + "arsenic_vein_ad": "Ad Astra Arsenic Vein", "bauxite_vein": "Bauxite Vein", - "beryllium_vein_ad": "Beryllium Vein Ad", + "beryllium_vein_ad": "Ad Astra Beryllium Vein", "bio_machine.ctnhcore.biomachine.growing_efficiency": "Growth Efficiency:%d%%", "bio_machine.ctnhcore.biomachine.growing_temperature": "Growth Temperature:§2%d°C§r", "block.ctnhcore.abyssalalloy_coil_block": "Abyssalalloy Coil Block", @@ -266,24 +266,42 @@ "block.ctnhcore.zpm_naquadah_reactor": "§cElite Naquadah Reactor III§r", "block.ctnhcore.zpm_neutron_accelerator": "§cZPM Neutron Accelerator", "block.ctnhcore.zpm_personal_computer": "§cElite Personal Computer III§r", - "calorite_vein_ad": "Calorite Vein Ad", - "cassiterite_vein_ad": "Cassiterite Vein Ad", - "cassiterite_vein_tf": "Cassiterite Vein Tf", - "chromium_vein_ad": "Chromium Vein Ad", - "coal_vein_tf": "Coal Vein Tf", + "calorite_vein_ad": "Ad Astra Calorite Vein", + "cassiterite_vein_ad": "Ad Astra Cassiterite Vein", + "cassiterite_vein_tf": "Twilight Forest Cassiterite Vein", + "chromium_vein_ad": "Ad Astra Chromium Vein", + "coal_vein_tf": "Twilight Forest Coal Vein", + "config.ctnhcore.option.centrifugeRpmRequirement": "Mechanical Centrifuge minimum RPM", + "config.ctnhcore.option.centrifugeSpeedMultiplier": "Mechanical Centrifuge speed multiplier", + "config.ctnhcore.option.centrifugeStressRequirement": "Mechanical Centrifuge stress consumption", + "config.ctnhcore.option.enableFTBUltimineOnGTOres": "Enable GT ore vein mining", + "config.ctnhcore.option.extractorRpmRequirement": "Mechanical Extractor minimum RPM", + "config.ctnhcore.option.extractorSpeedMultiplier": "Mechanical Extractor speed multiplier", + "config.ctnhcore.option.extractorStressRequirement": "Mechanical Extractor stress consumption", + "config.ctnhcore.option.ftbPlugin": "FTB Options", + "config.ctnhcore.option.kinetic": "Kinetic Options", + "config.ctnhcore.option.laserRpmRequirement": "Mechanical Laser minimum RPM", + "config.ctnhcore.option.laserSpeedMultiplier": "Mechanical Laser speed multiplier", + "config.ctnhcore.option.laserStressRequirement": "Mechanical Laser stress consumption", + "config.ctnhcore.option.latheRpmRequirement": "Mechanical Lathe minimum RPM", + "config.ctnhcore.option.latheSpeedMultiplier": "Mechanical Lathe speed multiplier", + "config.ctnhcore.option.latheStressRequirement": "Mechanical Lathe stress consumption", + "config.ctnhcore.option.mixerRpmRequirement": "Mechanical Mixer minimum RPM", + "config.ctnhcore.option.mixerSpeedMultiplier": "Mechanical Mixer speed multiplier", + "config.ctnhcore.option.mixerStressRequirement": "Mechanical Mixer stress consumption", + "config.ctnhcore.option.pressorRpmRequirement": "Mechanical Pressor minimum RPM", + "config.ctnhcore.option.pressorSpeedMultiplier": "Mechanical Pressor speed multiplier", + "config.ctnhcore.option.pressorStressRequirement": "Mechanical Pressor stress consumption", + "config.ctnhcore.option.sifterRpmRequirement": "Mechanical Sifter minimum RPM", + "config.ctnhcore.option.sifterSpeedMultiplier": "Mechanical Sifter speed multiplier", + "config.ctnhcore.option.sifterStressRequirement": "Mechanical Sifter stress consumption", "config.jade.plugin_ctnhcore.recipe_logic_provider": "Recipe Logic Info", "config.jade.plugin_ctnhcore.recipe_output_provider": "Recipe Output Info", "config.jade.plugin_ctnhcore.thread_status_provider": "Thread Info", - "copper_vein_ad": "Copper Vein Ad", - "ctnh.advanced_ram_chip.tooltip": "Advanced Random Access Memory", - "ctnh.advanced_ram_wafer.tooltip": "Enhanced RAM Wafer", - "ctnh.bauxite_process_catalyst": "Village librarians guard this ancient technique - prove yourself as a Hero of the Village to learn it", - "ctnh.blood_magic_gregtech_hv": "Use this item as an offering in the Falling Star Beacon Ritual to summon meteorites", - "ctnh.common_tooltip.parallel_hatch": "Voltage levels increase the number of parallels", - "ctnh.common_tooltip.perfect_overclock": "Perfect Overclock!", - "ctnh.common_tooltip.steel_machine.0": "Can only use HV-grade energy hatches and below", + "copper_vein_ad": "Ad Astra Copper Vein", "ctnh.common_tooltip.steel_machine.1": "Maximum parallelism: 32", - "ctnh.common_tooltip.subtick_overclock": "When recipe runtime is less than 1 tick, parallel calculations will be performed automatically.", + "ctnh.compiler.id": "Assigned region ID: %s", + "ctnh.compiler.noid": "§cThis chamber is not connected to the host!", "ctnh.computer.a1": "§cAll great works require§4 sacrifice§r§j to forge. Other beings may not understand, but they will§4 obey§r.", "ctnh.computer.a2": "Machine type: §cSynapse Refining Machine", "ctnh.computer.a3": "Uses other intelligent beings as §4wetware§r for computation, gaining massive processing power, even converting them into wetware.", @@ -291,44 +309,20 @@ "ctnh.computer.a5": "This machine will overload the brains of all intelligent beings. §4Inevitable§r §4permanent damage§r to their brains,§4 no drops§r will be left.", "ctnh.computer.a6": "For beings like villagers, who are §7low-intelligence§r new humans, their life and intellect are too low. We need§c smarter, cuter, and more life-capable beings§r.", "ctnh.computer.a7": "For endless knowledge, we must§4 make all necessary sacrifices§4.", - "ctnh.doubt": "Obtain it by killing creatures soaked in Life Essence and infusing their doubt into Life Essence", - "ctnh.machine.naquadah_reactor.tooltip": "Efficiency: %s%%", - "ctnh.machine.rocket_engine.tooltip": "Efficiency: %s%%", - "ctnh.me_advanced_terminal.tooltip.1": "Can build multiblock structures using items from the ME network", - "ctnh.me_advanced_terminal.tooltip.2": "Connects to the network via ME Wireless Access Point", - "ctnh.me_advanced_terminal.tooltip.3": "Prioritizes items from the player's inventory", - "ctnh.metallurgical_catalyst": "Nether Piglins possess this knowledge - try bartering with them", - "ctnh.multiblock.advanced_coke_oven.tooltip.0": "Advanced Blast Furnace", - "ctnh.multiblock.advanced_coke_oven.tooltip.1": "§6§lComes with 32 parallelism", - "ctnh.multiblock.advanced_coke_oven.tooltip.2": "Can only run blast furnace recipes, and recipe time is fixed at 15 seconds", - "ctnh.multiblock.advanced_coke_oven.tooltip.3": "Produces a large amount of coke products and phenolic oil", - "ctnh.multiblock.advanced_coke_oven.tooltip.4": "§c§lCannot use blast furnace cells", - "ctnh.multiblock.arcgenerator.info.0": "Max Arc Intensity: %d", - "ctnh.multiblock.arcgenerator.info.1": "Current Arc Intensity: %d", - "ctnh.multiblock.arcgenerator.info.2": "Max Supported Efficiency: %.2f%%", - "ctnh.multiblock.arcgenerator.info.3": "Current Efficiency: %.2f%%", - "ctnh.multiblock.astronomical.info.invalid": "Can only be used at night", - "ctnh.multiblock.astronomical.tooltip.0": "Knowing the heavens is easy, but defying them is difficult", - "ctnh.multiblock.astronomical.tooltip.1": "Cannot work under direct sunlight, but will automatically collect data for the chips in the chip bus while working", - "ctnh.multiblock.bio_reactor.tooltip.0": "A big tank", - "ctnh.multiblock.blaze_blast_furnace.info.pyrotheum": "Blazing Pyrotheum: %d mB", - "ctnh.multiblock.blaze_blast_furnace.tooltip.0": "Faster than an electric blast furnace.", - "ctnh.multiblock.blaze_blast_furnace.tooltip.1": "Base consumption is §a10mB§r of Blazing Pyrotheum per second. For each voltage tier above §6HV§r, the consumption doubles.", - "ctnh.multiblock.blaze_blast_furnace.tooltip.2": "Consumes 0.75x energy.", - "ctnh.multiblock.blaze_blast_furnace.tooltip.3": "Allows processing of 8 recipes simultaneously.", - "ctnh.multiblock.coke_tower.tooltip.0": "Boasts formidable coking capacity to fuel your petrochemical production line!", - "ctnh.multiblock.coke_tower.tooltip.1": "Delivers blistering speeds rivaling industrial furnaces", - "ctnh.multiblock.crystallizer.tooltip.0": "Professional Crystallization", - "ctnh.multiblock.crystallizer.tooltip.1": "The crystallizer completes crystal recipes more efficiently.", - "ctnh.multiblock.crystallizer.tooltip.2": "Efficiency improves as the coil level increases.", - "ctnh.multiblock.crystallizer.tooltip.3": "Can process chemical vapor deposition recipes and some autoclave recipes.", - "ctnh.multiblock.crystallizer.tooltip.4": "The best assistant for saving materials.", - "ctnh.multiblock.cultivation_room.tooltip.1": "Microbial incubation, fungal proliferation", - "ctnh.multiblock.cultivation_room.tooltip.2": "Utilize this machine to cultivate hard-to-obtain fungi and bacteria", - "ctnh.multiblock.decay_pools.tooltip.0": "Decay", - "ctnh.multiblock.decay_pools.tooltip.1": "When the circuit board is set to 0, the machine is unpowered and world acceleration is disabled.", - "ctnh.multiblock.decay_pools.tooltip.2": "When the circuit board is set to 1, the machine is powered and world acceleration is enabled.", - "ctnh.multiblock.decay_pools.tooltip.3": "Accelerates the decay process.", + "ctnh.dwof.tooltip": "Accumulates data for the model during operation, raising it up to [Advanced] at most", + "ctnh.eternal_engine.1": "Current power output: %d EU/tick", + "ctnh.eternal_engine.2": "Total operating time: %.2f s/36000 s", + "ctnh.item.dyson_tier1": "Integrated Photovoltaic Drone Swarm", + "ctnh.item.dyson_tier2": "§4Our swarm blocks out the sky", + "ctnh.item.runes.horizen_rune": "As Far as the Eye Can See", + "ctnh.item.runes.proliferation_rune": "Finance and Biological Instinct", + "ctnh.item.runes.quasar_rune": "The Alternation of Destruction and Creation", + "ctnh.item.runes.starlight_rune": "Per Aspera Ad Astra", + "ctnh.item.runes.twist_rune": "The Distortion of Speed and Humanity", + "ctnh.magic.generator": "Refined Essence of Heaven and Earth", + "ctnh.magic.generator.1": "Has 8 parallel operations and consumes 12 mB of Liquid Mana per second at base. For each voltage tier above §7LV§r, consumption doubles", + "ctnh.me_advanced_terminal.tooltip.3": "Connects to the network via an ME Wireless Access Point", + "ctnh.multiblock.arcreactor.tooltip": "Arc Generator", "ctnh.multiblock.demon_generator.info.1": "Concentration Difference: %s", "ctnh.multiblock.demon_generator.info.boosted": "§bLife Essence Boost Active", "ctnh.multiblock.demon_generator.info.corrosive": "Specialization Boost: Corrosive", @@ -336,202 +330,125 @@ "ctnh.multiblock.demon_generator.info.destructive": "Specialization Boost: Destructive", "ctnh.multiblock.demon_generator.info.steadfast": "Specialization Boost: Steadfast", "ctnh.multiblock.demon_generator.info.vengeful": "Specialization Boost: Vengeful", - "ctnh.multiblock.desalting_factory.tooltip.0": "Drying salt out of seawater—eco-friendly, isn't it?", - "ctnh.multiblock.digestion_tank.tooltip.0": "Actually, it produces very valuable materials...", - "ctnh.multiblock.digestion_tank.tooltip.1": "Composting Mechanism of the Digestion Tank:", - "ctnh.multiblock.digestion_tank.tooltip.2": "The optimal growth temperature is between §236§r and §238§r degrees. Recipes get 1.2x efficiency at optimal temperature. The further it deviates, the lower the efficiency, down to one-third.", - "ctnh.multiblock.fermenting_tank.tooltip.0": "A tank designed specifically for microbial growth. Always keep an eye on it!", - "ctnh.multiblock.fermenting_tank.tooltip.1": "Biological Growth Mechanism of the Fermenting Tank:", - "ctnh.multiblock.fermenting_tank.tooltip.2": "The optimal growth temperature is between §236§r and §238§r degrees. Recipes get 1.2x efficiency at optimal temperature. The further it deviates, the lower the efficiency, down to one-third.", - "ctnh.multiblock.fermenting_tank.tooltip.3": "Microbial growth follows the logistic equation. When the liquid volume in the input tank is half of its capacity, §2growth efficiency doubles§r. Efficiency is lowest when the tank is full or empty, with a minimum of 20%.", - "ctnh.multiblock.forest_machine.info.humidity": "Humidity level: %d", - "ctnh.multiblock.forest_machine.info.parallel_count": "Parallel count: %d", - "ctnh.multiblock.forest_sea.tooltip.1": "Plant trees by hand, create shade for millennia", - "ctnh.multiblock.forest_sea.tooltip.2": "The Forest Sea is a massive machine that consumes only water to produce large quantities of lumber", - "ctnh.multiblock.forest_sea.tooltip.3": "Performs water storage check every 5 seconds", - "ctnh.multiblock.forest_sea.tooltip.4": "When water is sufficient, increases humidity by 1%", - "ctnh.multiblock.forest_sea.tooltip.5": "When water is insufficient, decreases humidity by 10%", - "ctnh.multiblock.forest_sea.tooltip.6": "Recipe processing time remains constant, but parallel value increases with humidity and voltage tier", - "ctnh.multiblock.forest_sea.tooltip.7": "Better than greenhouses!", - "ctnh.multiblock.greenhouse.tooltip.0": "Plant In Room", - "ctnh.multiblock.hyper_plasma_turbine.tooltip0": "§5FINAL FANTASY §fof §a Precise Computation §f and §e Plasma Energy", - "ctnh.multiblock.hyper_plasma_turbine.tooltip1": "Provide %d computation to reach the Base Production. For every %d computation provided, the Output Production DOUBLES.", + "ctnh.multiblock.demon_will_generator.tooltip.0": "Harnessing Demonic Power", + "ctnh.multiblock.demon_will_generator.tooltip.01": "Allows voltage converter hatches; there is no limit on the number of converter hatches", + "ctnh.multiblock.demon_will_generator.tooltip.1": "Generates power from the difference in Demonic Will concentration between the chunks on both sides of the machine. The difference increases power output exponentially up to 500; above 500, the excess contributes linearly.", + "ctnh.multiblock.demon_will_generator.tooltip.2": "Calculations use the Will concentration at the Demonic Alloy blocks on both sides of the machine.", + "ctnh.multiblock.demon_will_generator.tooltip.3": "The diversity of Demonic Wills in both chunks affects generation efficiency.", + "ctnh.multiblock.demon_will_generator.tooltip.4": "Will Cores can be inserted to specialize the machine in a type of Will; this mode has a 5% chance per second to consume one core.", + "ctnh.multiblock.demon_will_generator.tooltip.5": "The rune blocks inside the machine can be replaced for different bonuses:\n§4Sacrifice and Self-Sacrifice Runes ---- Increase the power multiplier of Life Essence Fortified Mode§r\n§3Speed Runes ---- Increase the duration of one recipe operation (reducing Demonic Will consumption)§r\n§eCapacity Runes ---- Each rune adds 2 to the Demonic Will concentration difference§r\n§cOvercapacity Runes ---- Each rune adds 2% to the Demonic Will concentration difference (multiplicative)§r\n==============================", + "ctnh.multiblock.demon_will_generator.tooltip.6": "Insert §4Life Essence§r to activate Blood Sacrifice Mode, doubling power output while consuming §a100 mB§r of Life Essence per second", + "ctnh.multiblock.hybrid_mixer.tooltip.0": "Kinetic-Electric Renaissance", + "ctnh.multiblock.hybrid_mixer.tooltip.1": "Uses a special voltage-stress drive mechanism", + "ctnh.multiblock.hybrid_mixer.tooltip.2": "The machine's actual voltage tier is the lower of the recipe voltage tier and stress tier. Stress input hatches require at least 64 RPM; at 256 RPM, the stress tier increases by 1", + "ctnh.multiblock.hybrid_mixer.tooltip.3": "Hybrid overclocking: each time both stress tier and recipe voltage tier increase by one, processing speed ×4", + "ctnh.multiblock.hybrid_mixer.tooltip.4": "Above 64 RPM, recipe time ×0.8. Above 128 RPM, recipe time and voltage speed decrease further as RPM increases", "ctnh.multiblock.industrial_altar.info.current_lp": "Current LP amount: %d", "ctnh.multiblock.industrial_altar.info.max_lp": "Max LP amount: %d", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.0": "A more powerful primitive blast furnace, your best helper for steelmaking", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.1": "The industrial primitive blast furnace will continuously heat up while running a recipe, and will cool down rapidly once the process is stopped", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.2": "The higher the temperature, the higher the parallelism of the industrial primitive blast furnace, up to a maximum of 8 parallelism", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.3": "The higher the temperature, the higher the efficiency of the industrial primitive blast furnace, up to a maximum of double efficiency", - "ctnh.multiblock.ion_exchanger.tooltip.0": "Ion Exchange", - "ctnh.multiblock.large_bottle.tooltip.0": "This is truly a large container.", - "ctnh.multiblock.large_bottle.tooltip.1": "Can store up to 10,000 buckets of liquid.", - "ctnh.multiblock.large_bottle.tooltip.2": "When used with a large fermenting tank, its liquid will be consumed at a rate of §e100mb/s§r.", - "ctnh.multiblock.large_fermenting_tank.tooltip.0": "Efficient Industrial Fermentation", - "ctnh.multiblock.large_fermenting_tank.tooltip.1": "Can connect auxiliary structures. By attaching a large fermentation bottle with a specific liquid type, the minimum efficiency increases: Water (50%), Basic Medium (150%), Sterile Medium (200%).", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.0": "Dimensional Gas Collection Chamber", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.1": "This machine can collect gases from any dimension", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.2": "Since its output is large, it is recommended to use an ME Output Assembly to collect the products", "ctnh.multiblock.large_miner_zpm.tooltip.0": "Heard you're worried about the source of minerals?", - "ctnh.multiblock.large_steel_alloy_furnace.tooltip.0": "Steel Alloy Furnace", - "ctnh.multiblock.large_steel_furnace.tooltip.0": "Steel Furnace", + "ctnh.multiblock.lasersorter.recipe.cwut": "Required base computation: %d", + "ctnh.multiblock.magic_fuel_generator.tip": "Refined Essence of Heaven and Earth", + "ctnh.multiblock.mana_reactor.tooltip.0": "Industrial Mana Foundation", + "ctnh.multiblock.mana_reactor.tooltip.1": "Allows parallel control hatches", "ctnh.multiblock.mana_turbine.info.consumption_rate": "Consumption Rate:%d", "ctnh.multiblock.mana_turbine.info.efficiency": "Generating Efficiency:%d%%", - "ctnh.multiblock.martial_morality_eye.tooltip.0": "Poor version of the Primordial Eye", - "ctnh.multiblock.martial_morality_eye.tooltip.1": "Consumes 64000mb of steam and 64 raw stones in the early stages", - "ctnh.multiblock.martial_morality_eye.tooltip.2": "Produces ores from the Overworld, Twilight Forest, and the Moon", - "ctnh.multiblock.martial_morality_eye.tooltip.3": "Unlocks more recipes as the voltage level increases", - "ctnh.multiblock.martial_morality_eye.tooltip.4": "More useful than falling stars in the early stages", - "ctnh.multiblock.martial_morality_eye.tooltip.5": "The center of the structure seems to emanate a mysterious force, filled with an aura of danger. Stay away!", - "ctnh.multiblock.martial_morality_eye.tooltip.6": "Structure source: Twist Space Technology", - "ctnh.multiblock.meadow.tooltip.0": "Automated Pasture", - "ctnh.multiblock.meadow.tooltip.1": "Gains n parallel processing when provided with n× the required stress.", - "ctnh.multiblock.meadow.tooltip.2": "Allows breeding of different animals at the same time.", - "ctnh.multiblock.meadow.tooltip.3": "Only when the animals run away can you know that you are not farming!", "ctnh.multiblock.mega_lcr.info.coil": "Current Coil Temperature: %s", "ctnh.multiblock.mega_lcr.info.speed": "Current Recipe Time Multiplier: %s", - "ctnh.multiblock.nano_generator.tooltip.0": "Utilize the power of friction heat", - "ctnh.multiblock.nano_generator.tooltip.1": "Maximum parallel count: 1024", - "ctnh.multiblock.nano_generator.tooltip.2": "For each parallel count, the overall power generation increases by 0.2%\nActual operation time is recipe time * sqrt(parallel count)", - "ctnh.multiblock.nano_generator.tooltip.3": "Inserting specific materials into the machine can enhance the multiplier, but also has a chance of consumption\nNo material: 0.4 multiplier\nRubber sheet: 0.8 multiplier, consumption chance per 512 parallel count\nPolyethylene sheet: 1.2 multiplier, consumption chance per 1024 parallel count\nSilicone rubber sheet: 2.0 multiplier, consumption chance per 4096 parallel count\nStyrene-butadiene rubber sheet: 3.2 multiplier, consumption chance per 65535 parallel count\nPolybenzimidazole sheet: 5 multiplier, consumption chance per 1048576 parallel count", - "ctnh.multiblock.naq_reactor.info.nickel_consumption": "Nickel plasma consumption: %d", - "ctnh.multiblock.naq_reactor.info.parallel_count": "Power generation parallel count: %d", - "ctnh.multiblock.naq_reactor.info.temperature": "§cCore temperature: %d", - "ctnh.multiblock.naq_reactor_mk3.tooltip.1": "Vast energy, the earth trembles", - "ctnh.multiblock.naq_reactor_mk3.tooltip.2": "Generates power using supercharged fuel - cannot fully consume fuel without nickel plasma", - "ctnh.multiblock.naq_reactor_mk3.tooltip.3": "A power core must be present in the machine configuration", - "ctnh.multiblock.naq_reactor_mk3.tooltip.4": "As the core temperature increases, power generation efficiency improves", - "ctnh.multiblock.photovoltaic_power_station.info.1": "Efficiency: %s%%", - "ctnh.multiblock.photovoltaic_power_station.info.2": "Generating: %s/%s EU/t", - "ctnh.multiblock.photovoltaic_power_station.info.invalid": "Shadowed", - "ctnh.multiblock.photovoltaic_power_station.info.night": "At night", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.0": "Basic Solar Power Generation", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.1": "§eBase Output:§r 512 EU/t", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.2": "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.0": "Advanced Solar Power Generation", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.1": "§eBase Output:§r 2048 EU/t", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.2": "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.0": "Ultimate Solar Power Generation", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.1": "§eBase Output:§r 8192 EU/t", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.2": "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld", - "ctnh.multiblock.plasma_condenser.tooltip.1": "The dense air condenses into frost and dew", - "ctnh.multiblock.sinope_chemical.info.level": "Coil Accelerating Rate: %d", - "ctnh.multiblock.sinope_chemical.info.parallel": "Parallel Count: %d", - "ctnh.multiblock.sinope_chemical.tooltip.0": "From §bA certain mysterious eastern country§r's industrial power.", - "ctnh.multiblock.sinope_chemical.tooltip.1": "Gray employees don’t deceive gray employees, parallel is real.", - "ctnh.multiblock.sinope_chemical.tooltip.2": "No shell level requirements, recipes don't need catalysts.", - "ctnh.multiblock.sinope_chemical.tooltip.3": "Parallel count is related to the central block.", - "ctnh.multiblock.sinope_chemical.tooltip.4": "Silicon rock block: 8 parallel", - "ctnh.multiblock.sinope_chemical.tooltip.5": "Enriched silicon rock block: 32 parallel", - "ctnh.multiblock.sinope_chemical.tooltip.6": "Super silicon rock block: 128 parallel", - "ctnh.multiblock.sinope_chemical.tooltip.7": "Each point of actual parallel reduces energy consumption and operation time by 0.5%, up to a maximum reduction of 25% (independently multiplied)", - "ctnh.multiblock.sinope_chemical.tooltip.8": "Each coil providing 1800K increases the operation speed by +50%", - "ctnh.multiblock.sinope_chemical.tooltip.9": "§cAny false parallel will be punished!§r", - "ctnh.multiblock.sintering_kiln.tooltip.0": "Requires 8,192 Stress to activate internal pistons for compacting materials", - "ctnh.multiblock.slaughter_house.info.mobcount": "Mob Types: %d (%s)", - "ctnh.multiblock.slaughter_house.tooltip.0": "A merciless killing machine", - "ctnh.multiblock.slaughter_house.tooltip.1": "When powered spawners are placed in the input bus, the machine will automatically output corresponding mob drops. Multiple powered spawners can be inserted", - "ctnh.multiblock.slaughter_house.tooltip.2": "Each voltage tier increase adds +4 to virtual spawn count (HV provides 4)", - "ctnh.multiblock.slaughter_house.tooltip.3": "Higher mob health and armor values will increase processing time", - "ctnh.multiblock.slaughter_house.tooltip.4": "Weapon damage and enchantments will reduce processing time", - "ctnh.multiblock.slaughter_house.tooltip.5": "Fortune and other enchantments also take effect", - "ctnh.multiblock.super_ebf.tooltip.0": "All recipes are 50% faster!", - "ctnh.multiblock.sweat_shop.info.basic_rate": "Base Productivity: x%s", - "ctnh.multiblock.sweat_shop.info.villager_count": "Employee Count: %s", - "ctnh.multiblock.sweat_shop.tooltip.0": "Means of Production and Surplus Value", - "ctnh.multiblock.sweat_shop.tooltip.1": "The number of villagers in the factory determines efficiency. Recipe time x (2 / number of villagers)", - "ctnh.multiblock.sweat_shop.tooltip.2": "The effective number of workers in the factory is limited by the factory size. Initial limit: 4 workers; for every 4 blocks added to the factory length, the limit increases by 1.", - "ctnh.multiblock.sweat_shop.tooltip.3": "The production materials (machines) placed determine the available recipes:\nPowered Rolling Machine ---- Rolling Mill Recipes\nPowered Mixer ---- Mixer Recipes\nLathe ---- Lathe Recipes\nCentrifuge ---- Extractor Recipes\nBlaze Burner ---- Extractor Recipes\nWork Basin ---- Fluid Forming Recipes\nCrushing Wheel ---- Grinder Recipes\nPowered Saw ---- Wire Rolling Machine Recipes\nLaser Processor ---- Laser Etching Recipes", - "ctnh.multiblock.sweat_shop.tooltip.4": "The number of production materials (machines) placed determines the parallelism of corresponding recipes: Parallelism = sqrt(number of machines)", - "ctnh.multiblock.sweat_shop.tooltip.5": "Adding robotic arms improves the overall recipe execution speed. Recipe time x (1 / 1 + 0.25 * sqrt(number of robotic arms))", - "ctnh.multiblock.sweat_shop.tooltip.6": "The diversity of machines placed improves recipe execution speed.", - "ctnh.multiblock.sweat_shop.tooltip.7": "Every 5 seconds, machines consume (number of workers) servings of simple worker meals.", - "ctnh.multiblock.underfloor_heating_system.info.efficiency": "Efficiency: %d", - "ctnh.multiblock.underfloor_heating_system.info.rate": "Rate: %s", - "ctnh.multiblock.underfloor_heating_system.info.rate.tooltip": "Reduce the consumption of steam to reduce the heating power of the floor heating", - "ctnh.multiblock.underfloor_heating_system.info.rate_modify": "Adjust rate: ", - "ctnh.multiblock.underfloor_heating_system.info.steam_consumption": "Steam consumption rate: %d", - "ctnh.multiblock.underfloor_heating_system.tooltip.0": "Warm your heart with steam", - "ctnh.multiblock.underfloor_heating_system.tooltip.1": "The underfloor heating system uses steam for heating. Occupying one chunk, it can heat §aa 5×5 chunk area§r around it. Heating only works within 10 blocks above the system", - "ctnh.multiblock.underfloor_heating_system.tooltip.2": "Copper brick tiles will rust over time, reducing the heating efficiency of the system when rusted", - "ctnh.multiblock.underfloor_heating_system.tooltip.3": "Adjustable rate allows reducing heating power and steam consumption, with minimum setting at 25%", - "ctnh.multiblock.vacuum_sintering_tower.tooltip.0": "Vacuum Sintering", - "ctnh.multiblock.void_miner.info.cryotheum": "Cryotheum consumption: %d ", - "ctnh.multiblock.void_miner.info.overheat": "Overheating!!!", - "ctnh.multiblock.void_miner.info.pyrotheum": "Pyrotheum consumption: %d ", + "ctnh.multiblock.meteor_capturer.tooltip.0": "§8Why do meteors always land in meteor craters?§r\nThis machine cannot be overclocked", + "ctnh.multiblock.meteor_capturer.tooltip.1": "Consumes a small amount of primer and a large amount of Life Essence to pull ore-rich meteors from outer space.", + "ctnh.multiblock.meteor_capturer.tooltip.2": "Recipes require a large amount of input/output space; Advanced Input Hatches are recommended.", + "ctnh.multiblock.meteor_capturer.tooltip.3": "Meteors generate in the cavity above the multiblock structure (really). Do not place people or equipment inside.", + "ctnh.multiblock.meteor_capturer.tooltip.4": "Recipes with a radius greater than 13 will destroy the multiblock structure (no such recipes exist).", + "ctnh.multiblock.quasar_eye.tooltip.0": "§9Mana's§r §cUltimate Mystery§r, a device capable of creating §5quasars§r now rests in §6your§r hands", + "ctnh.multiblock.quasar_eye.tooltip.1": "Machine activation requires §rinitial mana fuel consumption§R; consult EMI for the exact amount", + "ctnh.multiblock.quasar_eye.tooltip.10": "In Creation Mode, release all accumulated power. Advanced fuels multiply the output. Every 1000E EU accumulated produces one additional gas output; Creation Mode cannot start with less than 1E stored power", + "ctnh.multiblock.quasar_eye.tooltip.11": "§bGood news§r: this machine will not explode, §cbut I cannot guarantee it will not explode in the future!§r", + "ctnh.multiblock.quasar_eye.tooltip.2": "Activating lower-tier recipes at high energy tiers §bdoes not require an activation cost§r", + "ctnh.multiblock.quasar_eye.tooltip.3": "§5Rune Energy§r governs output strength. Input §bTier V Runes§r to increase rune energy and strengthen your output; use §5Quasar Runes§r to generate massive amounts of rune energy", + "ctnh.multiblock.quasar_eye.tooltip.4": "Rune energy is acquired as follows: §5before each recipe operation§r, read and consume §cat most one§r of each consumable rune type", + "ctnh.multiblock.quasar_eye.tooltip.5": "§cWarning§r: the higher the rune energy, the §cfaster§r it is consumed; when rune energy is below 50, §cefficiency is halved!§r", + "ctnh.multiblock.quasar_eye.tooltip.6": "Energy efficiency is log((rune energy) / 50) + 1, with a maximum of (1 + energy tier)", + "ctnh.multiblock.quasar_eye.tooltip.7": "The machine has time parallelism: consumption and duration are multiplied by parallelism, and parallelism equals efficiency × 5", + "ctnh.multiblock.quasar_eye.tooltip.8": "Fuel consumption is 1 - 0.05 * Math.max((rune_energy - 50) / 50, 0.75)", + "ctnh.multiblock.quasar_eye.tooltip.9": "In normal mode, 1% of generated power is accumulated in the Quasar Eye; every 25 rune energy grants an additional 1% accumulation", "ctnh.multiblock.water_power_station.info.0": "Water Flow: %d", "ctnh.multiblock.water_power_station.info.1": "Coil Efficiency: %d%%", "ctnh.multiblock.water_power_station.info.2": "Power Output: %d/%d EU/t", "ctnh.multiblock.water_power_station.tooltip.0": "Eco-Friendly Energy!", "ctnh.multiblock.water_power_station.tooltip.1": "Power generation is proportional to the amount of water within a radius equal to the machine length and height of 4, centered on the controller.", "ctnh.multiblock.water_power_station.tooltip.2": "Power output fluctuates randomly between a multiplier of 0.6 to 1.", - "ctnh.multiblock.wide_accelerator.gui.electric": "Electron Beamline", - "ctnh.multiblock.wide_accelerator.gui.name": "Access Beamline", - "ctnh.multiblock.wide_accelerator.gui.nu": "Neutron Beamline", - "ctnh.multiblock.wide_accelerator.gui.proton": "Proton Beamline", - "ctnh.multiblock.wide_accelerator.info.consume": "Power Consumption Multiplier: %.2f", - "ctnh.multiblock.wide_accelerator.info.electric_speed": "Electron Velocity: %.2f MeV", - "ctnh.multiblock.wide_accelerator.info.nu_speed": "Neutron Velocity: %.2f MeV", - "ctnh.multiblock.wide_accelerator.info.proton_speed": "Proton Velocity: %.2f MeV", - "ctnh.multiblock.wide_accelerator.tooltip.0": "Particle Accelerator Integrator", - "ctnh.multiblock.wide_accelerator.tooltip.1": "Supports §9laser pods§r and §avoltage converter pods§r, cannot be overclocked", - "ctnh.multiblock.wide_accelerator.tooltip.10": "WARNING: Extreme power consumption. Improper voltage may cause §crecipe failure§r or §ccircuit tripping§r. Recommended with §9laser pods§r. Reduce parallelism if malfunction occurs", - "ctnh.multiblock.wide_accelerator.tooltip.11": "Particle transfer available via containment links. §cCAUTION: Hazardous recipes require pre-installed containment systems§r (Currently conceptual)", - "ctnh.multiblock.wide_accelerator.tooltip.2": "Accelerates three particle types simultaneously through triple beamlines", - "ctnh.multiblock.wide_accelerator.tooltip.3": "Requires particle velocity exceeding recipe specifications, with maximum threshold of 50GeV", - "ctnh.multiblock.wide_accelerator.tooltip.4": "§bParallel control pods§r enable customized recipe/acceleration parallelism, otherwise uses default values", - "ctnh.multiblock.wide_accelerator.tooltip.5": "Default parallelism: 16 (standard recipes without §bcontrol pods§r)", - "ctnh.multiblock.wide_accelerator.tooltip.6": "Insufficient particle velocity yields no products", - "ctnh.multiblock.wide_accelerator.tooltip.7": "Operational logic varies by selected recipe mode", - "ctnh.multiblock.wide_accelerator.tooltip.8": "ACCELERATION MODE: Default 1024-parallelism. Energy cost increases 10% per 100MeV combined velocity. §9Particle velocity remains constant§r during operation", - "ctnh.multiblock.wide_accelerator.tooltip.9": "DECELERATION MODE: Default single-parallelism. Energy cost increases 2.5% per 100MeV. Reduces particle velocity by sqrt(required velocity) post-operation", - "ctnh.multiblock.wind_array.tooltip0": "§7§oWind Wolf: The TRUE POWER of NATURE", - "ctnh.multiblock.wind_array.tooltip1": "§8-----------------§aBasic Data§8--------------------", - "ctnh.multiblock.wind_array.tooltip10": "§fLubricant will be extracted from the network.", - "ctnh.multiblock.wind_array.tooltip11": "§5DO OBEY the rules to resist the DESTRUCTION from nature force.", - "ctnh.multiblock.wind_array.tooltip2": "§f- Basic Production: §e%d EU/t §7(on earth)", - "ctnh.multiblock.wind_array.tooltip3": "§f- Weather Boost: §eRainy x2, Thunder x4", - "ctnh.multiblock.wind_array.tooltip4": "§f- Altitude Boost: §eClamp(Y-64, 0, 256-64) / (256-64)", - "ctnh.multiblock.wind_array.tooltip5": "§f- Network Boost: §e 0.3*[log2(NetSize)]", - "ctnh.multiblock.wind_array.tooltip6": "§fAll boosts are multiplied to determine production.", - "ctnh.multiblock.wind_array.tooltip7": "§fRequires §e%d mB/t§f Lubricant.", - "ctnh.multiblock.wind_array.tooltip8": "§8-----------------§aWind Network§8------------------", - "ctnh.multiblock.wind_array.tooltip9": "§fAligned structure within a distance of <= 1 form a Wind Network.", "ctnh.multiblock.zenith_machine.info.max_parallel": "Max Parallels:%d", "ctnh.multiblock.zenith_machine.info.now_parallel": "Now Parallels:%d", - "ctnh.mutliblock.wind_power_array.info.network_dirty": "Network will rebuild in %d second(s)", - "ctnh.mutliblock.wind_power_array.info.network_machine": "Network Machine Count:%d", - "ctnh.mutliblock.wind_power_array.info.network_machine_efficiency": "Generating Efficiency: %d", - "ctnh.platinum_metal_catalyst_shard1": "The tides of time turned these into aquatic treasures - fish them up", - "ctnh.platinum_metal_catalyst_shard2": "The abyssal Drowned Ones hold this secret - attempt to trade with them", - "ctnh.psionic_medulla": "Obtain it by extracting Alfheim Elves through the Blood Magic Evil Creature Extraction ritual", - "ctnh.recipe.accelerator.mode.element": "Mode: Electron Acceleration", - "ctnh.recipe.accelerator.mode.element.consume": "Accelerated Particle: Electron", - "ctnh.recipe.accelerator.mode.nu": "Mode: Neutron Acceleration", - "ctnh.recipe.accelerator.mode.nu.consume": "Accelerated Particle: Neutron", - "ctnh.recipe.accelerator.mode.proton": "Mode: Proton Acceleration", - "ctnh.recipe.accelerator.mode.proton.consume": "Accelerated Particle: Proton", - "ctnh.recipe.accelerator.mode.speed.g": "Required Velocity: %.2f GeV", - "ctnh.recipe.accelerator.mode.speed.m": "Required Velocity: %.2f MeV", + "ctnh.nuclear_reactor.basic": "This is an energy-consuming machine that produces a large amount of heat, which can be converted into power", + "ctnh.nuclear_reactor.coolant": "Coolant can be steam (150°C), deuterium (450°C), sodium (800°C), or sodium-potassium alloy (900°C). Higher reactor temperature increases coolant consumption, while higher coolant heat capacity reduces consumption", + "ctnh.nuclear_reactor.overclock": "Coolant is not required for operation, but with coolant present, recipe progress increases by two seconds for every one second of operation", + "ctnh.nuclear_reactor.safe": "The reactor will not explode from overheating", + "ctnh.plasma_alloy.tooltip.recipe": "Recipe Type: Alloy Blast Smelter", "ctnh.recipe.hellforge.info.drain": "Drain: %s Will", - "ctnh.recipe.hellforge.info.minimum_drain": "MinimumDrain: %s Will", - "ctnh.recipe.industrial_altar.info.0": "LP consumption/input: %.1f", + "ctnh.recipe.hellforge.info.minimum_drain": "Minimum Drain: %s Will", "ctnh.recipe.quasar_eye.info.0": "Activation Cost: %.1f", "ctnh.recipe.quasar_eye.info.1": "Energy Tier: %d", "ctnh.recipe.quasar_eye.info.2": "Activation Tier: %d", "ctnh.recipe_type.info": "Recipe Type:%s", - "ctnh.stone_process_catalyst": "Village stonemasons know this ancient technique - they'll teach you after you become a Hero of the Village", + "ctnh.recipe_type.list": "%s, %s", "ctnh.test_terminal.error_info": "(%s)", - "ctnh.test_terminal.lack_error": "At %s, you need", - "ctnh.test_terminal.position": "(%s,%s,%s)", - "ctnh.test_terminal.success": "Everything is OK!", - "ctnh.test_terminal.wrong_error": "At %s, it should be", - "ctnh.testing_terminal.tooltip.1": "Use to check the error when building the multiblock", - "ctnh.testing_terminal.tooltip.2": "Right-click the controller to show the error info", - "ctnh.testing_terminal.tooltip.3": "Right-click with Shift to change between Normal/Flipped mode", - "ctnh.tooltips.simplecomputationmachine": "Requires 2^(recipe level - HV) CWU/t when handling recipes which tier is no lower than HV", + "ctnh.trap_electric": "Current stored power: %d EU", + "ctnh.u_sinope.1": "Recipe types: Distillation Tower / Distillation Room / Cracker / Fluid Heater / Fluid Solidifier / Vacuum Petrochemical Processing / ???", + "ctnh.u_sinope.2": "§cIts ultimate structure is too much for your EMI to bear; seek help from blueprints. When modifying the structure, it is best to break the controller directly to avoid detection freezing the game", + "ctnh.u_sinope.3": "This giant structure can only be built in a vacuum; otherwise the surrounding area will collapse (efficiency reduced by 99.99%)", + "ctnh.u_sinope.4": "Unless four-dimensional engineering materials are used, it cannot withstand coils at UIV or above; efficiency is reduced by 99.99%", + "ctnh.u_sinope.5": "Coil tier determines the maximum recipe tier. You can use at most a recipe tier one above the coil voltage tier; otherwise efficiency is reduced by 99%", + "ctnh.u_sinope.6": "Laser hatches are allowed, but the recipe voltage tier must reach OPV; otherwise efficiency is reduced by 99%", + "ctnh.u_sinope.7": "For normal recipes, this multiblock has 8^(voltage tier) parallel operations, capped at 2^32. Lossless overclocking unlocks when the energy hatch reaches OPV. Each recipe tier above UHV adds 555% processing speed; every 100 parallels adds 333% processing speed. Four-dimensional engineering materials add another 5000% speed", + "ctnh.u_sinope.8": "This multiblock's unique recipe types use special mechanics: time is fixed at 100 seconds and parallelism at 10; for each voltage tier above UHV, time decreases by 10 seconds and parallelism increases by 10. If four-dimensional engineering materials are used and the coil tier is at least UIV, time is fixed at 1 second", + "ctnh.u_sinope.story.1": "Before the war began, people stood united and built this industrial Tower of Babel together", + "ctnh.u_sinope.story.2": "Until the Eternal War, when this vacuum tower became eternal ruins, shattered in the vacuum along with both sides of the war", + "ctnh.u_sinope.story.3": "You can no longer know whether both sides of that war destroyed each other, but you know this giant structure will herald humanity's revival", + "ctnhcore.arc_generator.arcgeneratorinfo0": "Max Arc Intensity: %d", + "ctnhcore.arc_generator.arcgeneratorinfo1": "Current Arc Intensity: %d", + "ctnhcore.arc_generator.arcgeneratorinfo2": "Max Supported Efficiency: %.2f%%", + "ctnhcore.arc_generator.arcgeneratorinfo3": "Current Efficiency: %.2f%%", + "ctnhcore.arc_reactor.arcreactorarc": "Output Arc Intensity: %d", + "ctnhcore.arc_reactor.arcreactorconnect": "§bBridge Enabled§r", + "ctnhcore.astronomicalmachine.astronomicalinfoinvalid": "Can only be used at night", + "ctnhcore.blazeblastfurnacemachine.blazeblastfurnaceinfopyrotheum": "Blazing Pyrotheum: %d mB", "ctnhcore.blazeblastfurnacemachine.insufficient_pyrotheum": "Insufficient Pyrotheum", - "ctnhcore.copyright.info": "Added by CTNH", + "ctnhcore.connectterminalitem.itemterminallocation": "Bound coordinates: (%s,%s,%s)", + "ctnhcore.connectterminalitem.itemterminalsuccessclear": "Coordinates cleared!", + "ctnhcore.connectterminalitem.itemterminalsuccessget": "Coordinates acquired!", + "ctnhcore.connectterminalitem.itemterminalsuccesswrite": "Coordinates written successfully!", + "ctnhcore.connectterminalitem.itemterminaltips": "Right-click a photovoltaic module controller to bind it, then right-click again to bind the controller to the photovoltaic station\nShift+right-click any block to clear the coordinates", + "ctnhcore.copyright.info": "§6Added by CTNH", + "ctnhcore.cryotheumfreezer.cryotheumfreezerui0": "Current Tear Crystal points: %d", + "ctnhcore.cryotheumfreezer.cryotheumfreezerui5": "§bCurrent Cryotheum consumption: %d / %d", "ctnhcore.cryotheumfreezer.insufficient_cryotheum": "Insufficient Cryotheum", + "ctnhcore.ctnhcommontooltips.commontooltipparallelhatch": "Voltage levels increase the number of parallels", + "ctnhcore.ctnhcommontooltips.commontooltipperfectoverclock": "Perfect Overclock!", + "ctnhcore.ctnhcommontooltips.commontooltipsteelmachine0": "Can only use HV-grade energy hatches and below", + "ctnhcore.ctnhcommontooltips.commontooltipsubtickoverclock": "When recipe runtime is less than 1 tick, parallel calculations will be performed automatically.", + "ctnhcore.ctnhcommontooltips.gtceumultiblocklasertooltip": "The use of the laser chamber is permitted", + "ctnhcore.ctnhcommontooltips.gtceurecipemodifierdefaultfail": "Recipe modification failed", + "ctnhcore.ctnhcoreemiplugin.bauxiteprocesscatalyst": "Village librarians guard this ancient technique - prove yourself as a Hero of the Village to learn it", + "ctnhcore.ctnhcoreemiplugin.bloodmagicgregtechhv": "Use this item as an offering in the Falling Star Beacon Ritual to summon meteorites", + "ctnhcore.ctnhcoreemiplugin.doubt": "Obtain it by killing creatures soaked in Life Essence and infusing their doubt into Life Essence", + "ctnhcore.ctnhcoreemiplugin.metallurgicalcatalyst": "Nether Piglins possess this knowledge - try bartering with them", + "ctnhcore.ctnhcoreemiplugin.platinummetalcatalystshard1": "The tides of time turned these into aquatic treasures - fish them up", + "ctnhcore.ctnhcoreemiplugin.platinummetalcatalystshard2": "The abyssal Drowned Ones hold this secret - attempt to trade with them", + "ctnhcore.ctnhcoreemiplugin.psionicmedulla": "Obtain it by extracting Alfheim Elves through the Blood Magic Evil Creature Extraction ritual", + "ctnhcore.ctnhcoreemiplugin.stoneprocesscatalyst": "Village stonemasons know this ancient technique - they'll teach you after you become a Hero of the Village", + "ctnhcore.ctnhcreativemodetabs.itemgroupblock": "CTNH Blocks", + "ctnhcore.ctnhcreativemodetabs.itemgroupitem": "CTNH Items", + "ctnhcore.ctnhcreativemodetabs.itemgroupmachine": "CTNH Machines", + "ctnhcore.ctnhdimensionmarkers.dimensionadastraglacio": "Glacio", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramars": "Mars", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramercury": "Mercury", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramoon": "Moon", + "ctnhcore.ctnhdimensionmarkers.dimensionadastravenus": "Venus", + "ctnhcore.ctnhdimensionmarkers.dimensionadextendrajupiter": "Jupiter", + "ctnhcore.ctnhdimensionmarkers.dimensionaethertheaether": "Aether", + "ctnhcore.ctnhdimensionmarkers.dimensiontwilightforesttwilightforest": "Twilight Forest", + "ctnhcore.ctnhitems.advancedramchiptooltip.tooltip": "Advanced Random Access Memory", + "ctnhcore.ctnhitems.advancedramwafertooltip.tooltip": "Enhanced RAM Wafer", "ctnhcore.ctnhitems.chip_t1.tooltip": "§7Used for making Rocket T1", "ctnhcore.ctnhitems.chip_t2.tooltip": "§7Used for making Rocket T2", "ctnhcore.ctnhitems.chip_t3.tooltip": "§7Used for making Rocket T3", @@ -544,18 +461,311 @@ "ctnhcore.ctnhitems.heavy_plate_t2.tooltip": "§7T2", "ctnhcore.ctnhitems.heavy_plate_t3.tooltip": "§7T3", "ctnhcore.ctnhitems.heavy_plate_t4.tooltip": "§7T4", + "ctnhcore.ctnhitems.itemecologicalstardesc.tooltip": "Contains all the essence of an ecosystem", + "ctnhcore.ctnhitems.itemnuclearreactorheat.tooltip": "Base Reactor Temperature: %d°C", + "ctnhcore.ctnhitems.itemsculkcelldesc.tooltip": "Differentiation....", + "ctnhcore.ctnhitems.meadvancedterminaltooltip1.tooltip": "§lGregTech Multiblock Structure Terminal - Asynchronous Formation Mode", + "ctnhcore.ctnhitems.meadvancedterminaltooltip2.tooltip": "A replica of the former flagship model; its terminal screen flickers with a long-lost display", "ctnhcore.ctnhitems.radioactive_waste.tooltip": "§7Neutron Activator will produce waste when the speed is insufficient", + "ctnhcore.ctnhitems.simplenutritiousmealtooltip1.tooltip": "Maintains the body's basic physiological functions", + "ctnhcore.ctnhitems.testingterminaltooltip1.tooltip": "Use to check the error when building the multiblock", + "ctnhcore.ctnhitems.testingterminaltooltip2.tooltip": "Right-click the controller to show the error info", + "ctnhcore.ctnhitems.testingterminaltooltip3.tooltip": "Right-click with Shift to change between Normal/Flipped mode", + "ctnhcore.ctnhmachineutils.tooltipssimplecomputationmachine": "Note: Some recipes require computation to run", + "ctnhcore.ctnhpredicates.spacephotovoltaicbasestationjeierrorpvblock": "§cAll photovoltaic blocks must be the same type", + "ctnhcore.ctnhrecipemodifiers.gtceurecipemodifiercoiltemperaturetoolow": "Coil temperature too low!", + "ctnhcore.ctnhrecipemodifiers.gtceurecipemodifierinsufficientvoltage": "Voltage tier too low!", + "ctnhcore.ctnhrecipetypes.accdanger": "§cDangerous Particle Experiment", + "ctnhcore.ctnhrecipetypes.ctnhsrcsacrifice": "Sacrifices: %s", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeelement": "Mode: Electron Acceleration", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeelementconsume": "Accelerated Particle: Electron", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodenu": "Mode: Neutron Acceleration", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodenuconsume": "Accelerated Particle: Neutron", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeproton": "Mode: Proton Acceleration", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeprotonconsume": "Accelerated Particle: Proton", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodespeedg": "Required Velocity: %.2f GeV", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodespeedm": "Required Velocity: %.2f MeV", + "ctnhcore.ctnhrecipetypes.recipearcgeneratormaxrequire": "Full-Power Required Arc Intensity: %d", + "ctnhcore.ctnhrecipetypes.recipearcgeneratorrequire": "Required Arc Intensity: %d", + "ctnhcore.ctnhrecipetypes.recipeindustrialaltarinfo0": "LP consumption/input: %.1f", + "ctnhcore.ctnhrecipetypes.spacephotovoltaicbasestationrecipeeutmodel": "Simulated voltage consumption: %d EUt", + "ctnhcore.ctnhrecipetypes.spacephotovoltaicbasestationrecipepvctier": "Required photovoltaic block tier: %d", "ctnhcore.factorymachine.no_meal": "Employees are hungry!", "ctnhcore.factorymachine.no_suitable_machine": "No Correct Machine", "ctnhcore.factorymachine.no_villager": "No Employee", + "ctnhcore.factorymachine.sweatshopinfobasicrate": "Base Productivity: x%s", + "ctnhcore.factorymachine.sweatshopinfovillagercount": "Employee Count: %s", + "ctnhcore.forestmachine.forestmachineinfohumidity": "Humidity level: %d", + "ctnhcore.forestmachine.forestmachineinfoparallelcount": "Parallel count: %d", + "ctnhcore.hyperplasmaturbineregister.hyperplasmaturbinetooltip0": "§5FINAL FANTASY §fof §a Precise Computation §f and §e Plasma Energy", + "ctnhcore.hyperplasmaturbineregister.hyperplasmaturbinetooltip1": "Provide %d computation to reach the Base Production. For every %d computation provided, the Output Production DOUBLES.", + "ctnhcore.idataitem.datanoise": "Current noise: %s", + "ctnhcore.idataitem.itemdatatip1": "Current formula: a%s+b%s+c%s+d", + "ctnhcore.idataitem.itemdatatip2": "Obtained multiplier: %s", + "ctnhcore.idroneitem.itemdronedurability": "Maximum Drone Durability: %d", + "ctnhcore.idroneitem.itemdroneeut": "Voltage generated by one drone: %d EU/t", + "ctnhcore.idroneitem.itemdronetier": "Drone Tier: %d", + "ctnhcore.industrialprimitiveblastfurnacemachine.industrialprimitiveblastfurnaceinfoparallelcount": "Parallel count: %d", "ctnhcore.largenaquadahreactormachine.power": "Power: %s", - "ctnhcore.machine.digital_miner.tooltip.0": "§7From GTMThings, faster speed and no mining pipes, only mining ores", - "ctnhcore.machine.digital_miner.tooltip.1": "§bForce loading self chunk while working", - "ctnhcore.machine.digital_miner.tooltip.2": "Uses §f%d EU/t §7while working, each block takes §f%d§7 ticks", - "ctnhcore.machine.oxygen_enricher.no_input": "Insufficient oxygen supply", - "ctnhcore.machine.oxygen_enricher.tooltip.0": "Consumes oxygen fluid to maintain a breathable sealed room", - "ctnhcore.machine.oxygen_enricher.tooltip.1": "Supplies oxygen to enclosed spaces within %s blocks", - "ctnhcore.machine.oxygen_required": "This machine requires a breathable atmosphere", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui1": "Current freezer speed: %.2f / %.2f", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui2": "Open Upgrade Panel", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui3": "Current energy efficiency: %.2f / %.2f", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui4": "Current parallelism: %d / %d", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting1": "Coil Tier", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting10": "Industrial Blood Altar Tier", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting10tooltip": "Only applies to automatic formation of Industrial Blood Altars\nSet the Industrial Blood Altar tier to build (0-4)\n0 corresponds to Tier II and 4 corresponds to Tier VI", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting1tooltip": "Set the tier of coils placed automatically (0: no tier specified)\nThe structure's own requirements are ignored after setting this", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting2": "Repeated Structure Count", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting2tooltip": "Set the number of repeated sections placed for repeatable structures (Distillation Towers, Assembly Lines, etc.)\nDoes not apply to Cleanrooms", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting3": "Hatchless Mode", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting3tooltip": "Enable hatchless mode (0: disabled, 1: enabled)\nWhen enabled, no hatches will be placed", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting4": "Coil Replacement Mode", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting4tooltip": "Enable coil replacement mode (0: disabled, 1: enabled)\nWhen enabled, all coils are replaced with the specified tier\nMake sure the inventory has room for the replaced coils", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting5": "Use AE Storage", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting5tooltip": "Enable AE storage (0: disabled, 1: enabled)\nWhen enabled, the AE storage is searched first\nConnect to the network through an ME Wireless Access Point", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting6": "Place Fluids", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting6tooltip": "Enable fluid placement (0: disabled, 1: enabled)\nWhen enabled, fluids are searched for and consumed from fluid containers in the inventory/backpack or AE storage\nStackable fluid containers must have a stack size of 1", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting7": "Place in Fluids", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting7tooltip": "Place blocks in fluids (0: disabled, 1: enabled)\nWhen enabled, fluids in the space are treated as empty space\nWhen enabled together with Place Fluids, fluids will not be placed in fluids", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsettingtitle": "Multiblock Formation Settings", + "ctnhcore.mechanical.mechanicallathestructure": "The lathe in the structure must be placed exactly as shown in EMI's structure information, including position and orientation", + "ctnhcore.mechanical.mechanicallathestructure1": "§7The number of lathes shown in EMI is incorrect; only 6 are actually required", + "ctnhcore.multiblocksa.advancedcokeoventooltip0": "Advanced Coke Oven", + "ctnhcore.multiblocksa.advancedcokeoventooltip1": "§6§lComes with 32 parallelism", + "ctnhcore.multiblocksa.advancedcokeoventooltip2": "Can only run coke oven recipes, and recipe time is fixed at 15 seconds", + "ctnhcore.multiblocksa.advancedcokeoventooltip3": "Produces a large amount of coke products and phenolic oil", + "ctnhcore.multiblocksa.advancedcokeoventooltip4": "§c§lCannot use coke oven cells", + "ctnhcore.multiblocksa.astronomicaltooltip0": "Knowing the heavens is easy, but defying them is difficult", + "ctnhcore.multiblocksa.astronomicaltooltip1": "Cannot work under direct sunlight, but will automatically collect data for the chips in the chip bus while working", + "ctnhcore.multiblocksa.bioreactortooltip0": "A big tank", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip0": "Faster than an electric blast furnace.", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip1": "Base consumption is §a10mB§r of Blazing Pyrotheum per second. For each voltage tier above §6HV§r, the consumption doubles.", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip2": "Consumes 0.75x energy.", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip3": "Allows processing of 8 recipes simultaneously.", + "ctnhcore.multiblocksa.coketowertooltip0": "Boasts formidable coking capacity to fuel your petrochemical production line!", + "ctnhcore.multiblocksa.coketowertooltip1": "Delivers blistering speeds rivaling industrial furnaces", + "ctnhcore.multiblocksa.crystallizertooltip0": "Professional Crystallization", + "ctnhcore.multiblocksa.crystallizertooltip1": "The crystallizer completes crystal recipes more efficiently.", + "ctnhcore.multiblocksa.crystallizertooltip2": "Efficiency improves as the coil level increases.", + "ctnhcore.multiblocksa.crystallizertooltip3": "Can process chemical vapor deposition recipes and some autoclave recipes.", + "ctnhcore.multiblocksa.crystallizertooltip4": "The best assistant for saving materials.", + "ctnhcore.multiblocksa.decaypoolstooltip0": "Decay", + "ctnhcore.multiblocksa.decaypoolstooltip1": "When the circuit board is set to 0, the machine is unpowered and world acceleration is disabled.", + "ctnhcore.multiblocksa.decaypoolstooltip2": "When the circuit board is set to 1, the machine is powered and world acceleration is enabled.", + "ctnhcore.multiblocksa.decaypoolstooltip3": "Accelerates the decay process.", + "ctnhcore.multiblocksa.desaltingfactorytooltip0": "Drying salt out of seawater—eco-friendly, isn't it?", + "ctnhcore.multiblocksa.digestiontanktooltip0": "Actually, it produces very valuable materials...", + "ctnhcore.multiblocksa.digestiontanktooltip1": "Composting Mechanism of the Digestion Tank:", + "ctnhcore.multiblocksa.digestiontanktooltip2": "The optimal growth temperature is between §236§r and §238§r degrees. Recipes get 1.2x efficiency at optimal temperature. The further it deviates, the lower the efficiency, down to one-third.", + "ctnhcore.multiblocksa.fermentingtanktooltip0": "A tank designed specifically for microbial growth. Always keep an eye on it!", + "ctnhcore.multiblocksa.fermentingtanktooltip1": "Biological Growth Mechanism of the Fermenting Tank:", + "ctnhcore.multiblocksa.fermentingtanktooltip2": "The optimal growth temperature is between §236§r and §238§r degrees. Recipes get 1.2x efficiency at optimal temperature. The further it deviates, the lower the efficiency, down to one-third.", + "ctnhcore.multiblocksa.fermentingtanktooltip3": "Microbial growth follows the logistic equation. When the liquid volume in the input tank is half of its capacity, §2growth efficiency doubles§r. Efficiency is lowest when the tank is full or empty, with a minimum of 20%.", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip0": "A more powerful primitive blast furnace, your best helper for steelmaking", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip1": "The industrial primitive blast furnace will continuously heat up while running a recipe, and will cool down rapidly once the process is stopped", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip2": "The higher the temperature, the higher the parallelism of the industrial primitive blast furnace, up to a maximum of 8 parallelism", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip3": "The higher the temperature, the higher the efficiency of the industrial primitive blast furnace, up to a maximum of double efficiency", + "ctnhcore.multiblocksa.ionexchangertooltip0": "Ion Exchange", + "ctnhcore.multiblocksa.largebottletooltip0": "This is truly a large container.", + "ctnhcore.multiblocksa.largebottletooltip1": "Can store up to 10,000 buckets of liquid.", + "ctnhcore.multiblocksa.largebottletooltip2": "When used with a large fermenting tank, its liquid will be consumed at a rate of §e100mb/s§r.", + "ctnhcore.multiblocksa.largefermentingtanktooltip0": "Efficient Industrial Fermentation", + "ctnhcore.multiblocksa.largefermentingtanktooltip1": "Can connect auxiliary structures. By attaching a large fermentation bottle with a specific liquid type, the minimum efficiency increases: Water (50%), Basic Medium (150%), Sterile Medium (200%).", + "ctnhcore.multiblocksa.largegascollectionchambertooltip0": "Dimensional Gas Collection Chamber", + "ctnhcore.multiblocksa.largegascollectionchambertooltip1": "This machine can collect gases from any dimension", + "ctnhcore.multiblocksa.largegascollectionchambertooltip2": "Since its output is large, it is recommended to use an ME Output Assembly to collect the products", + "ctnhcore.multiblocksa.largesteelalloyfurnacetooltip0": "Steel Alloy Furnace", + "ctnhcore.multiblocksa.largesteelfurnacetooltip0": "Steel Furnace", + "ctnhcore.multiblocksa.martialmoralityeyetooltip0": "Poor version of the Primordial Eye", + "ctnhcore.multiblocksa.martialmoralityeyetooltip1": "Consumes 64000mb of steam and 64 raw stones in the early stages", + "ctnhcore.multiblocksa.martialmoralityeyetooltip2": "Produces ores from the Overworld, Twilight Forest, and the Moon", + "ctnhcore.multiblocksa.martialmoralityeyetooltip3": "Unlocks more recipes as the voltage level increases", + "ctnhcore.multiblocksa.martialmoralityeyetooltip4": "More useful than falling stars in the early stages", + "ctnhcore.multiblocksa.martialmoralityeyetooltip5": "The center of the structure seems to emanate a mysterious force, filled with an aura of danger. Stay away!", + "ctnhcore.multiblocksa.martialmoralityeyetooltip6": "Structure source: Twist Space Technology", + "ctnhcore.multiblocksa.meadowtooltip0": "§7Automated Grazing", + "ctnhcore.multiblocksa.meadowtooltip1": "Gains n parallel processing when provided with n× the required stress.", + "ctnhcore.multiblocksa.meadowtooltip2": "Allows breeding of different animals at the same time.", + "ctnhcore.multiblocksa.meadowtooltip3": "§7Only when the animals run away will you realize that you are not growing crops!", + "ctnhcore.multiblocksa.megalcrtooltip0": "§bHas 4 asynchronous threads§r", + "ctnhcore.multiblocksa.megalcrtooltip1": "Use §dAsynchronous Thread Control Hatches§r to configure multithreaded operation", + "ctnhcore.multiblocksa.naqreactormk3tooltip1": "Vast energy, the earth trembles", + "ctnhcore.multiblocksa.naqreactormk3tooltip2": "Generates power using supercharged fuel - cannot fully consume fuel without nickel plasma", + "ctnhcore.multiblocksa.naqreactormk3tooltip3": "A power core must be present in the machine configuration", + "ctnhcore.multiblocksa.naqreactormk3tooltip4": "As the core temperature increases, power generation efficiency improves", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip0": "Basic Solar Power Generation", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip1": "§eBase Output:§r 512 EU/t", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip2": "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip0": "Advanced Solar Power Generation", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip1": "§eBase Output:§r 2048 EU/t", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip2": "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip0": "Ultimate Solar Power Generation", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip1": "§eBase Output:§r 8192 EU/t", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip2": "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld", + "ctnhcore.multiblocksa.plasmacondensertooltip1": "The dense air condenses into frost and dew", + "ctnhcore.multiblocksa.sinteringkilntooltip0": "Requires 8,192 Stress to activate internal pistons for compacting materials", + "ctnhcore.multiblocksa.slaughterhousetooltip0": "A merciless killing machine", + "ctnhcore.multiblocksa.slaughterhousetooltip1": "When powered spawners are placed in the input bus, the machine will automatically output corresponding mob drops. Multiple powered spawners can be inserted", + "ctnhcore.multiblocksa.slaughterhousetooltip2": "Each voltage tier increase adds +4 to virtual spawn count (HV provides 4)", + "ctnhcore.multiblocksa.slaughterhousetooltip3": "Higher mob health and armor values will increase processing time", + "ctnhcore.multiblocksa.slaughterhousetooltip4": "Weapon damage and enchantments will reduce processing time", + "ctnhcore.multiblocksa.slaughterhousetooltip5": "Fortune and other enchantments also take effect", + "ctnhcore.multiblocksa.supercentrifuge": "Super Centrifuge", + "ctnhcore.multiblocksa.supercentrifugeparallel": "Provides 8 parallel operations in normal centrifuge mode", + "ctnhcore.multiblocksa.superebftooltip0": "All recipes are 50% faster!", + "ctnhcore.multiblocksa.sweatshoptooltip0": "Means of Production and Surplus Value", + "ctnhcore.multiblocksa.sweatshoptooltip1": "The number of villagers in the factory determines efficiency. Recipe time x (2 / number of villagers)", + "ctnhcore.multiblocksa.sweatshoptooltip2": "The effective number of workers in the factory is limited by the factory size. Initial limit: 4 workers; for every 4 blocks added to the factory length, the limit increases by 1.", + "ctnhcore.multiblocksa.sweatshoptooltip3": "The production materials (machines) placed determine the available recipes:\nPowered Rolling Machine ---- Rolling Mill Recipes\nPowered Mixer ---- Mixer Recipes\nLathe ---- Lathe Recipes\nCentrifuge ---- Centrifuge Recipes\nBlaze Burner ---- Extractor Recipes\nWork Basin ---- Fluid Forming Recipes\nCrushing Wheel ---- Grinder Recipes\nPowered Saw ---- Wire Rolling Machine Recipes\nLaser Processor ---- Laser Etching Recipes\n==============================", + "ctnhcore.multiblocksa.sweatshoptooltip4": "The number of production materials (machines) placed determines the parallelism of corresponding recipes: Parallelism = sqrt(number of machines)", + "ctnhcore.multiblocksa.sweatshoptooltip5": "Adding robotic arms improves the overall recipe execution speed. Recipe time x (1 / 1 + 0.25 * sqrt(number of robotic arms))", + "ctnhcore.multiblocksa.sweatshoptooltip6": "The diversity of machines placed improves recipe execution speed.", + "ctnhcore.multiblocksa.sweatshoptooltip7": "The base recipe time is 2x. The higher the recipe voltage tier, the more the base time is multiplied by the square of the recipe tier.", + "ctnhcore.multiblocksa.sweatshoptooltip8": "Every 5 seconds, the machine consumes (number of employees) servings of Simple Worker Meals.", + "ctnhcore.multiblocksa.ultrasonicapparatus": "Ultrasonic Disruptor", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip0": "Warm your heart with steam", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip1": "The underfloor heating system uses steam for heating. Occupying one chunk, it can heat §aa 5×5 chunk area§r around it. Heating only works within 10 blocks above the system", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip2": "Copper brick tiles will rust over time, reducing the heating efficiency of the system when rusted", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip3": "Adjustable rate allows reducing heating power and steam consumption, with minimum setting at 25%", + "ctnhcore.multiblocksa.vacuumsinteringtowertooltip0": "Vacuum Sintering", + "ctnhcore.multiblocksa.voidminertooltip0": "Harvesting heaven's materials, digging the earth's essence", + "ctnhcore.multiblocksa.voidminertooltip1": "The Void Miner automatically generates and extracts ores", + "ctnhcore.multiblocksa.voidminertooltip2": "If you have a huge demand for minerals, the Void Miner is an essential helper", + "ctnhcore.multiblocksa.voidminertooltip3": "Each operation consumes 100,000 B of drilling fluid; Cryotheum and Pyrotheum are consumed when adjusting temperature", + "ctnhcore.multiblocksa.voidminertooltip4": "Before odd-numbered operations, the machine attempts to consume Pyrotheum to raise the temperature. Initial consumption is 1000 mB; if successful, the temperature increases by floor(consumption / 100), then consumption is multiplied by 1.02.", + "ctnhcore.multiblocksa.voidminertooltip5": "Before even-numbered operations, the machine attempts to consume Cryotheum to lower the temperature. Initial consumption is 1000 mB; if successful, the temperature decreases by floor(consumption / 100), then consumption is multiplied by 1.02.", + "ctnhcore.multiblocksa.voidminertooltip6": "The higher the temperature, the higher the Void Miner's output multiplier", + "ctnhcore.multiblocksa.voidminertooltip7": "At 25,000 K, the Void Miner enters forced cooling mode until the temperature reaches 0 K, then resumes normal operation.", + "ctnhcore.multiblocksa.voidminertooltip8": "Alternate Pyrotheum and Cryotheum inputs to control the temperature.", + "ctnhcore.multiblocksb.arcgeneratortooltip1": "Matter Ripper", + "ctnhcore.multiblocksb.arcgeneratortooltip2": "This machine must be used with an Arc Generator. The Arc Generator must be five blocks above this machine's controller. When linked, the Arc Generator shows that the connection is complete", + "ctnhcore.multiblocksb.arcgeneratortooltip3": "If arc intensity is below the recipe's minimum, the recipe cannot run", + "ctnhcore.multiblocksb.arcgeneratortooltip4": "When arc intensity exceeds the recipe maximum, the recipe runs at (machine arc intensity - recipe required arc intensity) / (full-power required arc intensity - required arc intensity) efficiency. Efficiency may exceed 100%, but cannot exceed the machine maximum power generation efficiency", + "ctnhcore.multiblocksb.arcgeneratortooltip5": "When efficiency is below 100%, incomplete annihilation produces a small amount of extra output", + "ctnhcore.multiblocksb.arcgeneratortooltiparct11": "§bMaximum Supported Arc Intensity: 1000", + "ctnhcore.multiblocksb.arcgeneratortooltiparct12": "§cMaximum Power Generation Efficiency: 75%", + "ctnhcore.multiblocksb.arcgeneratortooltiparct21": "§bMaximum Supported Arc Intensity: 10000", + "ctnhcore.multiblocksb.arcgeneratortooltiparct22": "§cMaximum Power Generation Efficiency: 125%", + "ctnhcore.multiblocksb.arcgeneratortooltiparct31": "§bMaximum Supported Arc Intensity: 50000", + "ctnhcore.multiblocksb.arcgeneratortooltiparct32": "§cMaximum Power Generation Efficiency: 225%", + "ctnhcore.multiblocksb.arcgeneratortooltipt21": "Molecular Ripper", + "ctnhcore.multiblocksb.arcgeneratortooltipt31": "Atomic Ripper", + "ctnhcore.multiblocksb.arcreactortooltip1": "This machine must be used with an Arc Ripper. The Arc Generator must be five blocks above the Arc Ripper's controller; when linked, the Arc Generator shows that the bridge is enabled", + "ctnhcore.multiblocksb.arcreactortooltip2": "The machine produces 10 arc intensity each time it runs a recipe, cannot be overclocked, and higher-tier machines have more parallelism", + "ctnhcore.multiblocksb.arcreactortooltipt1": "Machine parallelism: 1", + "ctnhcore.multiblocksb.cryotheumfreezertip0": "§bTears fall like Cryotheum", + "ctnhcore.multiblocksb.cryotheumfreezertip1": "Each recipe operation consumes 5 × parallel mB of Cryotheum; for each voltage tier above §9IV§r, consumption quadruples", + "ctnhcore.multiblocksb.cryotheumfreezertip2": "Starts with 4 parallel operations and 3 Tear Crystal points; add points in the upgrade screen. Every 10000 mB of Cryotheum consumed grants one point, then the target amount quadruples", + "ctnhcore.multiblocksb.cultivationroomtooltip1": "Microbial incubation, fungal proliferation", + "ctnhcore.multiblocksb.cultivationroomtooltip2": "Utilize this machine to cultivate hard-to-obtain fungi and bacteria", + "ctnhcore.multiblocksb.fluiddrillingrigdepletioninf": "§6E§bver§dlast§aing—what are you worried about?", + "ctnhcore.multiblocksb.fluiddrillingrigdescriptioninf": "§6Drilling a sea of fluids from the Infinite", + "ctnhcore.multiblocksb.forestseatooltip1": "Plant trees by hand, create shade for millennia", + "ctnhcore.multiblocksb.forestseatooltip2": "The Forest Sea is a massive machine that consumes only water to produce large quantities of lumber", + "ctnhcore.multiblocksb.forestseatooltip3": "Performs water storage check every 5 seconds", + "ctnhcore.multiblocksb.forestseatooltip4": "When water is sufficient, increases humidity by 1%", + "ctnhcore.multiblocksb.forestseatooltip5": "When water is insufficient, decreases humidity by 10%", + "ctnhcore.multiblocksb.forestseatooltip6": "Recipe processing time remains constant, but parallel value increases with humidity and voltage tier", + "ctnhcore.multiblocksb.forestseatooltip7": "Better than greenhouses!", + "ctnhcore.multiblocksb.lasersortertooltip0": "Continuously adjusts the laser frequency", + "ctnhcore.multiblocksb.lasersortertooltip1": "Recipe types: Laser Distribution / Laser Etching", + "ctnhcore.multiblocksb.lasersortertooltip10": "Each time input computation doubles the base requirement, one lossy overclock is converted into a perfect overclock (processing speed ×2). Conversions cannot exceed the machine's overclock tier, up to converting all lossy overclocks into perfect overclocks", + "ctnhcore.multiblocksb.lasersortertooltip11": "§cIf input computation is not an integer multiple, all bonuses above are disabled and final time ×4", + "ctnhcore.multiblocksb.lasersortertooltip2": "This machine consumes computation to operate", + "ctnhcore.multiblocksb.lasersortertooltip3": "————————Laser Etching Mode————————", + "ctnhcore.multiblocksb.lasersortertooltip4": "At LuV and below, the base computation requirement is fixed at 8 CWU; for each voltage tier above LuV, the base requirement doubles", + "ctnhcore.multiblocksb.lasersortertooltip5": "If input computation is an integer multiple of the base requirement, final output ×1.25 and parallelism = floor(input computation / base requirement)^3", + "ctnhcore.multiblocksb.lasersortertooltip6": "Each time input computation doubles the base requirement, one lossy overclock is converted into a perfect overclock (processing speed ×2). Conversions cannot exceed the machine's overclock tier, up to converting all lossy overclocks into perfect overclocks", + "ctnhcore.multiblocksb.lasersortertooltip7": "————————Laser Distribution Mode————————", + "ctnhcore.multiblocksb.lasersortertooltip8": "The recipe specifies the required computation; if it does not, calculate it using the Laser Etching formula", + "ctnhcore.multiblocksb.lasersortertooltip9": "If input computation is an integer multiple of the base requirement, parallelism = floor(input computation / base requirement)^3", + "ctnhcore.multiblocksb.nanogeneratortooltip0": "Utilize the power of friction heat", + "ctnhcore.multiblocksb.nanogeneratortooltip1": "Maximum parallel count: 2048", + "ctnhcore.multiblocksb.nanogeneratortooltip2": "For each parallel process, total power generation increases by 4%\nActual operation time is recipe time * sqrt(parallel count)", + "ctnhcore.multiblocksb.nanogeneratortooltip3": "Inserting specific materials into the controller increases the multiplier, but each material may also be consumed\nNo material: 0.8x multiplier\nRubber Sheet: 1.0x multiplier, consumption chance = parallel count / 512\nPolyethylene Sheet: 1.6x multiplier, consumption chance = parallel count / 1024\nSilicone Rubber Sheet: 2.4x multiplier, consumption chance = parallel count / 4096\nPTFE Sheet: 3.2x multiplier, consumption chance = parallel count / 65535\nStyrene-Butadiene Rubber Sheet: 4.6x multiplier, consumption chance = parallel count / 131070\nPolybenzimidazole Sheet: 5x multiplier, consumption chance = parallel count / 1048576", + "ctnhcore.multiblocksb.neuromatrixcompilertip0": "Leaving the evolution of living beings entirely to the natural evolution of carbon-based life is inefficient and slow. We will now encode every genetic sequence ourselves, compiling our ultimate perfection into neuronal logic", + "ctnhcore.multiblocksb.neuromatrixcompilertip01": "The Neural Matrix Compiler (CMP) compiles neural sequences. Unlike other machines, it does not use normal input logic and cannot be overclocked", + "ctnhcore.multiblocksb.neuromatrixcompilertip1": "The machine input consists of 6 Neural Matrix Research Chambers. Each chamber is encoded when the structure is completed, and all research chambers must be the same tier. After encoding, each chamber displays its assigned region (not implemented). Regions are currently fixed as follows: the front-left of the controller is 1, front-right is 2, back-left is 3, and back-right is 4", + "ctnhcore.multiblocksb.neuromatrixcompilertip10": "If computation fails, define the noise result function f(x1,x2,x3)=ax1+bx2+cx3+d+ϵ. The region is determined by noise; noise fluctuation can be multiplied by up to 5, and if the region error term is between 0.9 and 1.1, noise becomes a 0.5 multiplier", + "ctnhcore.multiblocksb.neuromatrixcompilertip11": "The final compiled dataset contains three pieces of information: information 1 is the equation used, information 2 is the result value from the noise function as a multiplier of y, and information 3 is the error-term ratio", + "ctnhcore.multiblocksb.neuromatrixcompilertip12": "The equation is not reset when executing the same recipe. It resets y and the equation when a recipe is executed or the structure is re-formed", + "ctnhcore.multiblocksb.neuromatrixcompilertip2": "Machine inputs §cmust strictly follow the EMI item order§9, placed §rfrom left to right§r and from the first row to the second row in §9Regions 1-5§r. Place the §9Research Dataset§r in Region 6. Any incorrect placement or external chamber placement will cause a machine fault, shown in the corresponding chamber", + "ctnhcore.multiblocksb.neuromatrixcompilertip3": "All Neural Matrix Research Chambers must be at least the recipe tier; otherwise the recipe will not run", + "ctnhcore.multiblocksb.neuromatrixcompilertip4": "————————Overall Machine Mechanics————————", + "ctnhcore.multiblocksb.neuromatrixcompilertip5": "Whenever a new recipe is detected, the machine §6entrusts itself to randomness§r and generates F(x1,x2,x3)=§6y=ax1+bx2+cx3+d§r, where x1, x2, and x3 are the quantities of items consumed by the target regions. It then randomly chooses x1, x2, and x3 within the given ranges to obtain y", + "ctnhcore.multiblocksb.neuromatrixcompilertip6": "When a recipe runs, logical computation begins. Regions 1-5 each run for 5 s; when finished, they consume all items in their chambers to obtain the function", + "ctnhcore.multiblocksb.neuromatrixcompilertip7": "After Regions 1-5 finish, a total computation process runs for 5 s. During this process, x1, x2, and x3 are supplied, the calculated y is compared with the true value, and the final compilation is performed", + "ctnhcore.multiblocksb.neuromatrixcompilertip8": "————————Final Compilation————————", + "ctnhcore.multiblocksb.neuromatrixcompilertip9": "Final compilation compares true y with result y. If result y is within 0.9 to 1.1 times true y, the computation succeeds and the compiled dataset becomes the recipe output", + "ctnhcore.multiblocksb.neuromatrixcompilertippart1": "Regions 1-3: provide the actual x1, x2, and x3 for function F(x)", + "ctnhcore.multiblocksb.neuromatrixcompilertippart2": "Region 4: represents the constant d in function F(x) and determines noise ϵ", + "ctnhcore.multiblocksb.neuromatrixcompilertippart3": "Region 5: provides circuit-board support for neural compilation and determines noise ϵ fluctuation. If the provided circuit board exceeds the recipe requirement, it causes no noise impact", + "ctnhcore.multiblocksb.neuromatrixcompilertippart4": "Region 6: collects the final compilation result and modifies the neural dataset based on the result after a logical computation cycle", + "ctnhcore.multiblocksb.plasmaalloytooltip1": "§4The Revenge of the Rotary Kiln", + "ctnhcore.multiblocksb.plasmaalloytooltip10": "§cWhen the speed bonus exceeds 5000%, final output fluctuates between 0% and 50%!", + "ctnhcore.multiblocksb.plasmaalloytooltip11": "Allows §blaser hatches§r; when using a laser hatch, final speed is divided by 4, and operation is rejected if it falls below the original speed", + "ctnhcore.multiblocksb.plasmaalloytooltip2": "Every 1800 K of coil temperature grants 4 parallel operations; above 10000 K, it grants an additional speed multiplier of (coil temperature - 10000) / 10000", + "ctnhcore.multiblocksb.plasmaalloytooltip3": "Consumes (parallel count × corresponding plasma consumption) of plasma before operation to gain an additional speed boost", + "ctnhcore.multiblocksb.plasmaalloytooltip4": "Helium plasma: consumes 500 × parallel plasma, speed +100%", + "ctnhcore.multiblocksb.plasmaalloytooltip5": "Oxygen or nitrogen plasma: consumes 300 × parallel plasma, speed +200%", + "ctnhcore.multiblocksb.plasmaalloytooltip6": "Nickel or iron plasma: consumes 200 × parallel plasma, speed +300%", + "ctnhcore.multiblocksb.plasmaalloytooltip7": "Special smelting plasmas grant additional speed bonuses, §cbut also increase the risk of your smelting process", + "ctnhcore.multiblocksb.plasmaalloytooltip8": "Compressed Enriched Naquadah Plasma: consumes a fixed 100 plasma, speed ×5, and doubles voltage consumption (§cwhich may prevent recipes from running; use multi-amp energy hatches)", + "ctnhcore.multiblocksb.plasmaalloytooltip9": "Refined Super Energetic Aether Plasma: consumes 50 × parallel plasma, speed ×10, §cand makes final output fluctuate between 80% and 100%", + "ctnhcore.multiblocksb.pvdronetooltip0": "Dyson Swarm Project", + "ctnhcore.multiblocksb.pvdronetooltip1": "Allows parallel control hatches; parallelism equals the processing-time multiplier", + "ctnhcore.multiblocksb.pvdronetooltip2": "Provides a power boost to the photovoltaic station; use the Photovoltaic Binding Terminal to bind these two structures", + "ctnhcore.multiblocksb.pvdronetooltip3": "Place drones in the drone holder to begin transmitting them. Each drone has a chance to be consumed every 5 seconds and when operation ends; drone generation is also affected by dimension and station bonuses", + "ctnhcore.multiblocksb.pvdronetooltip4": "Drone consumption chance = 1.0 / (1.0 + Math.exp(-0.25 * (x - 9)))", + "ctnhcore.multiblocksb.pvdronetooltip5": "When drones collect meteors, output multiplier = 0.1 × sqrt(sum of drone voltages). No output below multiplier 1; cannot be overclocked", + "ctnhcore.multiblocksb.sinopechemicaltooltip0": "From §bA certain mysterious eastern country§r's industrial power.", + "ctnhcore.multiblocksb.sinopechemicaltooltip1": "Gray employees don’t deceive gray employees, parallel is real.", + "ctnhcore.multiblocksb.sinopechemicaltooltip2": "No shell level requirements, recipes don't need catalysts.", + "ctnhcore.multiblocksb.sinopechemicaltooltip3": "Parallel count is related to the central block.", + "ctnhcore.multiblocksb.sinopechemicaltooltip4": "Silicon rock block: 8 parallel", + "ctnhcore.multiblocksb.sinopechemicaltooltip5": "Enriched silicon rock block: 32 parallel", + "ctnhcore.multiblocksb.sinopechemicaltooltip6": "Super silicon rock block: 128 parallel", + "ctnhcore.multiblocksb.sinopechemicaltooltip7": "Each point of actual parallel reduces energy consumption and operation time by 0.5%, up to a maximum reduction of 25% (independently multiplied)", + "ctnhcore.multiblocksb.sinopechemicaltooltip8": "Each coil providing 1800K increases the operation speed by +100%", + "ctnhcore.multiblocksb.sinopechemicaltooltip9": "§cAny false parallel will be punished!§r", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip0": "§6A Glorious Path Through Space", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip2": "In Space Power Generation mode, planet type and photovoltaic block tier increase power output. The station is treated as a zero-gravity environment, multiplying output by 4; consuming specific materials increases output further", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip3": "In Space Photovoltaic Assembly mode, no EUt is consumed and power output is locked at 1. Speed and parallelism are calculated from the recipe's simulated F power", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip4": "Photovoltaic tier and light intensity determine whether space assembly recipes can run. Photovoltaic block heat resistance and heat-resistant structural blocks determine the maximum light multiplier. Space structural blocks determine the usable photovoltaic tier and whether auxiliary structures are allowed", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip5": "In Space Photovoltaic Assembly mode, final parallelism = (Space Power Generation output / simulated power), and final time multiplier = (simulated power / Space Power Generation output). If Space Power Generation output is lower than simulated power, the final time multiplier is squared", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltipex": "§6This structure will continue to expand; it is not yet complete!", + "ctnhcore.multiblocksb.wideacceleratortooltip0": "Particle Accelerator Integrator", + "ctnhcore.multiblocksb.wideacceleratortooltip1": "Allows the use of §9laser hatches§r and §avoltage converter hatches§r", + "ctnhcore.multiblocksb.wideacceleratortooltip10": "WARNING: Extreme power consumption. Improper voltage may cause §crecipe failure§r or §ccircuit tripping§r. Recommended with §9laser hatches§r. Reduce parallelism if malfunction occurs", + "ctnhcore.multiblocksb.wideacceleratortooltip11": "Particle transfer available via containment links. §cCAUTION: Hazardous recipes require pre-installed containment systems§r (Currently conceptual)", + "ctnhcore.multiblocksb.wideacceleratortooltip2": "Accelerates three types of particles through three beamlines", + "ctnhcore.multiblocksb.wideacceleratortooltip3": "The machine only requires particle velocities to exceed the recipe requirements; it cannot run otherwise. Particle velocity is capped at 50 GeV, making the machine very safe and preventing explosions.", + "ctnhcore.multiblocksb.wideacceleratortooltip4": "Allows the use of §bparallel control hatches§r; without one, the default value is used", + "ctnhcore.multiblocksb.wideacceleratortooltip5": "When running normal recipes without a §bparallel control hatch§r, the default is 16 parallel processes", + "ctnhcore.multiblocksb.wideacceleratortooltip6": "Insufficient particle velocity yields no products", + "ctnhcore.multiblocksb.wideacceleratortooltip7": "The machine can store up to 50E EU. Stored energy can be used to adjust the three particle velocities in the acceleration interface. Each 1 MeV increase in particle velocity consumes 10M EU from stored energy. Hold Shift to change velocity by 10 MeV at once; hold Ctrl to change it by 100 MeV at once.", + "ctnhcore.multiblocksb.wideacceleratortooltip8": "For every 1 MeV in the sum of the three particle velocities, the machine consumes 100 EU of stored energy per tick. If power is insufficient, particle velocity decays by 10% per tick.", + "ctnhcore.multiblocksb.wideacceleratortooltip9": "When the machine is idle, it uses all energy in the energy-storage hatches to charge itself by default. While running, it continues to use energy from the energy hatches. However, during operation, the energy hatches will not charge the machine unless its stored energy is insufficient.", + "ctnhcore.multiblocksc.greenhousetooltip0": "Plant In Room", + "ctnhcore.naqreactormachine.naqreactorinfonickelconsumption": "Nickel plasma consumption: %d", + "ctnhcore.naqreactormachine.naqreactorinfoparallelcount": "Power generation parallel count: %d", + "ctnhcore.naqreactormachine.naqreactorinfotemperature": "§cCore temperature: %d", + "ctnhcore.neuromatrixcompiler.compilererror0": "§cUnknown error", + "ctnhcore.neuromatrixcompiler.compilererror1": "§cChamber tier does not match Region 1", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfopartstates": "Region %d status: %s", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateerror": "§cError, type: %s", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostatefinish": "§aComplete", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateidle": "§6Idle", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostatewaiting": "§bWaiting......", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateworking": "§9Working: %ss/%ss", + "ctnhcore.oxygencondition.ctnhmachineoxygenrequired": "This machine requires a breathable atmosphere", + "ctnhcore.oxygenenrichermachine.ctnhmachineoxygenenrichernoinput": "Insufficient oxygen supply", + "ctnhcore.photovoltaicdronestation.pvdroneinfot1": "Power supplied: %d", + "ctnhcore.photovoltaicdronestation.pvdroneinfot2": "Drone consumption chance: %.4f", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfo1": "Efficiency: %s%%", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfo2": "Generating: %s/%s EU/t", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfoinvalid": "Shadowed", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfonight": "At night", "ctnhcore.ponder.assembly_line_building.header": "How to automate Assembly Line", "ctnhcore.ponder.assembly_line_building.text_1": "First, place an Assembly Line controller.", "ctnhcore.ponder.assembly_line_building.text_10": "Encode the one-click pattern with the '+' button, then set the pattern provider lock mode to wait for the main product.", @@ -607,32 +817,241 @@ "ctnhcore.ponder.tag.ctnhponder.description": "CTNH Electric Machine Ponders", "ctnhcore.ponder.tag.mechanical_multiblock": "Mechanical Multiblock", "ctnhcore.ponder.tag.mechanical_multiblock.description": "Ponders on CTNH mechanical multiblock machines", + "ctnhcore.portalblockmixin.messageportalinvaliddimension": "This portal can only be used in the Overworld", "ctnhcore.recipe_logic.insufficient_cwut": "Insufficient Computation", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificeempty": "No sacrifices found", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificelocked": "Sacrifice LOCKED", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificeunlocked": "Sacrifice UNLOCKED", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcwetwareduration": "Wetware duration: %s ticks", + "ctnhcore.sinopechemical.sinopechemicalinfolevel": "Coil Accelerating Rate: %d", + "ctnhcore.sinopechemical.sinopechemicalinfoparallel": "Parallel Count: %d", + "ctnhcore.slaughterhousemachine.slaughterhouseinfomobcount": "Mob Types: %d (%s)", "ctnhcore.spacephotovoltaicbasestation.orbit_only": "Needs orbit enviroment to run this recipe", - "ctnhcore.src.sacrifice": "Sacrifices: %s", - "ctnhcore.src.sacrifice_empty": "No sacrifices found", - "ctnhcore.src.sacrifice_locked": "Sacrifice LOCKED", - "ctnhcore.src.sacrifice_unlocked": "Sacrifice UNLOCKED", - "ctnhcore.src.wetware_duration": "Wetware duration: %s ticks", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier0": "Current photovoltaic block tier: %d", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier1": "Current structure heat-resistance tier: %d", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier2": "Current power generation: %.2f", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier3": "Current dimensional light multiplier: %d", + "ctnhcore.superconducting_penning_trap.antielectric": "Positron amount: %d", + "ctnhcore.superconducting_penning_trap.antinu": "Antineutron amount: %d", + "ctnhcore.superconducting_penning_trap.antiproton": "Antiproton amount: %d", + "ctnhcore.superconducting_penning_trap.noenergywaring": "§cWarning: insufficient power; the containment field is about to fail!", + "ctnhcore.superconducting_penning_trap.restoredanger": "Contain hazardous materials", + "ctnhcore.superconducting_penning_trap.trapelectricmax": "Maximum stored power: %d EU", "ctnhcore.testingterminalbehavior.flipmode": "Flip Mode is On", "ctnhcore.testingterminalbehavior.normalmode": "Normal Mode is On", - "desh_vein_ad": "Desh Vein Ad", - "diamond_vein_tf": "Diamond Vein Tf", - "enchantment.ctnhcore.cooling.desc": "Enhance your cold defending ability", - "enchantment.ctnhcore.warming.desc": "Enhance your hot defending ability", + "ctnhcore.testingterminalbehavior.testterminallackerror": "At %s, you need", + "ctnhcore.testingterminalbehavior.testterminalposition": "(%s,%s,%s)", + "ctnhcore.testingterminalbehavior.testterminalsuccess": "Everything is OK!", + "ctnhcore.testingterminalbehavior.testterminalwrongerror": "At %s, it should be", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminfoefficiency": "Efficiency: %d", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforate": "Rate: %s", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforatemodify": "Adjust rate: ", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforatetooltip": "Reduce the consumption of steam to reduce the heating power of the floor heating", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminfosteamconsumption": "Steam consumption rate: %d", + "ctnhcore.voidminerprocessingmachine.voidminerinfocryotheum": "Cryotheum consumption: %d ", + "ctnhcore.voidminerprocessingmachine.voidminerinfooverheat": "Overheating!!!", + "ctnhcore.voidminerprocessingmachine.voidminerinfopyrotheum": "Pyrotheum consumption: %d ", + "ctnhcore.wideparticleaccelerator.connect": "Connection established", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoconsume": "Power Consumption Multiplier: %.2f", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoelectricspeed": "Electron Velocity: %.2f MeV", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfonuspeed": "Neutron Velocity: %.2f MeV", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfopower": "Stored energy: %.2f E/%.2f E", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoprotonspeed": "Proton Velocity: %.2f MeV", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkdirty": "Network will rebuild in %d second(s)", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkmachine": "Network Machine Count:%d", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkmachineefficiency": "Generating Efficiency: %d", + "ctnhcore.windpowerarrayregister.windarraytooltip0": "§7§oWind Wolf: The TRUE POWER of NATURE", + "ctnhcore.windpowerarrayregister.windarraytooltip1": "§8-----------------§aBasic Data§8--------------------", + "ctnhcore.windpowerarrayregister.windarraytooltip10": "§fLubricant will be extracted from the network.", + "ctnhcore.windpowerarrayregister.windarraytooltip11": "§5DO OBEY the rules to resist the DESTRUCTION from nature force.", + "ctnhcore.windpowerarrayregister.windarraytooltip2": "§f- Basic Production: §e%d EU/t §7(on earth)", + "ctnhcore.windpowerarrayregister.windarraytooltip3": "§f- Weather Boost: §eRainy x2, Thunder x4", + "ctnhcore.windpowerarrayregister.windarraytooltip4": "§f- Altitude Boost: §eClamp(Y-64, 0, 256-64) / (256-64)", + "ctnhcore.windpowerarrayregister.windarraytooltip5": "§f- Network Boost: §e 0.3*[log2(NetSize)]", + "ctnhcore.windpowerarrayregister.windarraytooltip6": "§fAll boosts are multiplied to determine production.", + "ctnhcore.windpowerarrayregister.windarraytooltip7": "§fRequires §e%d mB/s§f Lubricant.", + "ctnhcore.windpowerarrayregister.windarraytooltip8": "§8-----------------§aWind Network§8------------------", + "ctnhcore.windpowerarrayregister.windarraytooltip9": "§fAligned structure within a distance of <= 1 form a Wind Network.", + "ctnhcore.wpaacceleratorgui.wideacceleratorguielectric": "Electron Beamline", + "ctnhcore.wpaacceleratorgui.wideacceleratorguiname": "Access Beamline", + "ctnhcore.wpaacceleratorgui.wideacceleratorguinu": "Neutron Beamline", + "ctnhcore.wpaacceleratorgui.wideacceleratorguiproton": "Proton Beamline", + "ctnhcore:ancient_debris_vein": "Ancient Debris Vein", + "ctnhcore:apatite_vein_tf": "Twilight Forest Apatite Vein", + "ctnhcore:arctic_crystal_core_vein": "Twilight Forest Arctic Crystal Core Vein", + "ctnhcore:arsenic_vein": "Red Arsenic Nickel Vein", + "ctnhcore:arsenic_vein_ad": "Space Arsenic Vein", + "ctnhcore:bauxite_vein": "Moon Bauxite Vein", + "ctnhcore:bauxite_vein_aether": "Aether Bauxite Vein", + "ctnhcore:beryllium_vein_ad": "Space Beryllium Vein", + "ctnhcore:calorite_vein_ad": "Space Calorite Vein", + "ctnhcore:cassiterite_vein_ad": "Space Cassiterite Vein", + "ctnhcore:chromite_vein": "Chromite Vein", + "ctnhcore:chromium_vein_ad": "Mercury Chromium Vein", + "ctnhcore:combustible_ice_vein_aether": "Aether Combustible Ice Vein", + "ctnhcore:copper_vein_ad": "Space Copper Vein", + "ctnhcore:cryolite_vein": "Cryolite Vein", + "ctnhcore:cryolite_vein_aether": "Aether Cryolite Vein", + "ctnhcore:desh_vein_ad": "Moon Desh Vein", + "ctnhcore:diamond_vein_tf": "Twilight Forest Diamond Vein", + "ctnhcore:dragonflame_vein": "Twilight Forest Dragonflame Vein", + "ctnhcore:eclipse_shadow_vein": "Twilight Forest Eclipse Shadow Vein", + "ctnhcore:europium_vein": "Europium Fluorite Vein", + "ctnhcore:galena_vein_ad": "Space Galena Vein", + "ctnhcore:galena_vein_tf": "Twilight Forest Galena Vein", + "ctnhcore:illusion_iron_vein": "Illusion Iron Vein", + "ctnhcore:ilmenite_vein": "Ilmenite Vein", + "ctnhcore:iridium_vein_ad": "Venus Iridium Vein", + "ctnhcore:iron_vein_ad": "Space Banded Iron Vein", + "ctnhcore:iron_vein_tf": "Twilight Forest Iron Vein", + "ctnhcore:kaolinite_vein": "Kaolinite Vein", + "ctnhcore:lapis_ore_vein": "Mercury Lapis Lazuli Vein", + "ctnhcore:lich_bone_vein": "Twilight Forest Lich Bone Vein", + "ctnhcore:lubricant_vein_ad": "Mercury Talc Vein", + "ctnhcore:magnesite_vein_ad": "Mercury Magnesite Vein", + "ctnhcore:magnetite_vein_ad": "Space Magnetite Vein", + "ctnhcore:mana_fused_vein": "Mana-Fused Vein", + "ctnhcore:manganese_vein_ad": "Space Manganese Vein", + "ctnhcore:molybdenum_vein_ad": "Space Molybdenite Vein", + "ctnhcore:monazite_vein_n": "Moon Monazite Vein", + "ctnhcore:moon_seawater_vein": "Moon Sea Water Deposit", + "ctnhcore:naquadah_vein_ad": "Venus Naquadah Vein", + "ctnhcore:naquadah_vein_ad_mars": "Mars Naquadah Vein", + "ctnhcore:nether_quartz_vein_ow": "Overworld Quartz Vein", + "ctnhcore:neutronium_vein_ad": "Glacio Neutronium Vein", + "ctnhcore:nickel_vein": "Nickel Vein", + "ctnhcore:nickel_vein_ad": "Space Nickel Vein", + "ctnhcore:niobium_vein_ad": "Glacio Niobium Vein", + "ctnhcore:olivine_vein_ad": "Mercury Olivine Vein", + "ctnhcore:osmium_vein_ad": "Glacio Osmium Vein", + "ctnhcore:ostrum_vein_ad": "Mars Ostrum Vein", + "ctnhcore:phosphate_vein": "Phosphate Vein", + "ctnhcore:pitchblende_vein_ad": "Space Pitchblende Vein", + "ctnhcore:platinum_vein_ad": "Space Platinum Vein", + "ctnhcore:precious_alloy_vein": "Precious Alloy Vein", + "ctnhcore:pyrolusite_vein_ad": "Venus Pyrolusite Vein", + "ctnhcore:quartzite_vein": "Quartzite Vein", + "ctnhcore:redstone_vein_ad": "Space Redstone Vein", + "ctnhcore:rhodium_sulfur_crystal_vein": "Rhodium Sulfur Crystal Vein", + "ctnhcore:ruthenium_amalgam_vein": "Ruthenium Amalgam Vein", + "ctnhcore:rutile_vein_ad": "Venus Rutile Vein", + "ctnhcore:saltpeter_vein_ad": "Mercury Saltpeter Vein", + "ctnhcore:salts_vein_ad": "Mars Salts Vein", + "ctnhcore:salts_vein_tf": "Twilight Forest Salts Vein", + "ctnhcore:scheelite_vein_ad": "Space Scheelite Vein", + "ctnhcore:scheelite_vein_aether": "Aether Scheelite Vein", + "ctnhcore:seawater_vein_overworld": "Seawater Deposit", + "ctnhcore:sheldonite_vein_moon": "Moon Sheldonite Vein", + "ctnhcore:steel_leaf_vein": "Twilight Forest Steel Leaf Vein", + "ctnhcore:sulfur_vein_ad": "Space Sulfur Vein", + "ctnhcore:tetrahedrite_vein_ad": "Space Tetrahedrite Vein", + "ctnhcore:thorium_vein_ad": "Space Thorium Vein", + "ctnhcore:thunderstrike_vein": "Twilight Forest Thunderstrike Vein", + "ctnhcore:toxic_swamp_amber_vein": "Twilight Forest Toxic Swamp Amber Vein", + "ctnhcore:tuff_uraninite_vein_ad": "Space Tuff Uraninite Vein", + "ctnhcore:uranium238_vein_ad": "Mercury Uranium-238 Vein", + "ctnhcore:wollastonite_vein": "Wollastonite Vein", + "ctnhcore:zanite_vein_aether": "Aether Zanite Vein", + "ctnhcore:zinc_vein": "Zinc Vein", + "ctnhcore:zircon_vein_aether": "Aether Zircon Vein", + "ctnhcore:zirkelite_vein": "Zirkelite Vein", + "desh_vein_ad": "Ad Astra Desh Vein", + "diamond_vein_tf": "Twilight Forest Diamond Vein", + "enchantment.ctnhcore.cooling.desc": "Improves resistance to cold", + "enchantment.ctnhcore.warming.desc": "Improves resistance to heat", "fermenting_tank_machine.ctnhcore.fermentingtankmachine.growing_efficiency": "Growth Efficiency:%d%%", "fermenting_tank_machine.ctnhcore.fermentingtankmachine.growing_temperature": "Growth Temperature:§2%d°C§r", - "galena_vein_ad": "Galena Vein Ad", - "galena_vein_tf": "Galena Vein Tf", - "gold_vein_tf": "Gold Vein Tf", + "galena_vein_ad": "Ad Astra Galena Vein", + "galena_vein_tf": "Twilight Forest Galena Vein", + "gold_vein_tf": "Twilight Forest Gold Vein", "gtceu.astronomical_observatory": "Astronomical Observatory", "gtceu.bedrock_drilling_rigs": "Bedrock Drilling Rigs", "gtceu.big_dam": "Big Dam", "gtceu.coke_oven": "Coke Oven", - "gtceu.multiblock.laser.tooltip": "The use of the laser chamber is permitted", + "gtceu.jei.ore_vein.ancient_debris_vein": "Ancient Debris Vein", + "gtceu.jei.ore_vein.apatite_vein_tf": "Twilight Forest Apatite Vein", + "gtceu.jei.ore_vein.arctic_crystal_core_vein": "Twilight Forest Arctic Crystal Core Vein", + "gtceu.jei.ore_vein.arsenic_vein": "Red Arsenic Nickel Vein", + "gtceu.jei.ore_vein.arsenic_vein_ad": "Space Arsenic Vein", + "gtceu.jei.ore_vein.bauxite_vein": "Moon Bauxite Vein", + "gtceu.jei.ore_vein.bauxite_vein_aether": "Aether Bauxite Vein", + "gtceu.jei.ore_vein.beryllium_vein_ad": "Space Beryllium Vein", + "gtceu.jei.ore_vein.calorite_vein_ad": "Space Calorite Vein", + "gtceu.jei.ore_vein.cassiterite_vein_ad": "Space Cassiterite Vein", + "gtceu.jei.ore_vein.chromite_vein": "Chromite Vein", + "gtceu.jei.ore_vein.chromium_vein_ad": "Mercury Chromium Vein", + "gtceu.jei.ore_vein.combustible_ice_vein_aether": "Aether Combustible Ice Vein", + "gtceu.jei.ore_vein.copper_vein_ad": "Space Copper Vein", + "gtceu.jei.ore_vein.cryolite_vein": "Cryolite Vein", + "gtceu.jei.ore_vein.cryolite_vein_aether": "Aether Cryolite Vein", + "gtceu.jei.ore_vein.desh_vein_ad": "Moon Desh Vein", + "gtceu.jei.ore_vein.diamond_vein_tf": "Twilight Forest Diamond Vein", + "gtceu.jei.ore_vein.dragonflame_vein": "Twilight Forest Dragonflame Vein", + "gtceu.jei.ore_vein.eclipse_shadow_vein": "Twilight Forest Eclipse Shadow Vein", + "gtceu.jei.ore_vein.europium_vein": "Europium Fluorite Vein", + "gtceu.jei.ore_vein.galena_vein_ad": "Space Galena Vein", + "gtceu.jei.ore_vein.galena_vein_tf": "Twilight Forest Galena Vein", + "gtceu.jei.ore_vein.gold_vein_tf": "Twilight Forest Magnetite Vein", + "gtceu.jei.ore_vein.illusion_iron_vein": "Illusion Iron Vein", + "gtceu.jei.ore_vein.ilmenite_vein": "Ilmenite Vein", + "gtceu.jei.ore_vein.iridium_vein_ad": "Venus Iridium Vein", + "gtceu.jei.ore_vein.iron_vein_ad": "Space Banded Iron Vein", + "gtceu.jei.ore_vein.iron_vein_tf": "Twilight Forest Iron Vein", + "gtceu.jei.ore_vein.kaolinite_vein": "Kaolinite Vein", + "gtceu.jei.ore_vein.lapis_ore_vein": "Mercury Lapis Lazuli Vein", + "gtceu.jei.ore_vein.lich_bone_vein": "Twilight Forest Lich Bone Vein", + "gtceu.jei.ore_vein.lubricant_vein_ad": "Mercury Talc Vein", + "gtceu.jei.ore_vein.magnesite_vein_ad": "Mercury Magnesite Vein", + "gtceu.jei.ore_vein.magnetite_vein_ad": "Space Magnetite Vein", + "gtceu.jei.ore_vein.mana_fused_vein": "Mana-Fused Vein", + "gtceu.jei.ore_vein.manganese_vein_ad": "Space Manganese Vein", + "gtceu.jei.ore_vein.molybdenum_vein_ad": "Space Molybdenite Vein", + "gtceu.jei.ore_vein.monazite_vein_n": "Moon Monazite Vein", + "gtceu.jei.ore_vein.naquadah_vein_ad": "Venus Naquadah Vein", + "gtceu.jei.ore_vein.naquadah_vein_ad_mars": "Mars Naquadah Vein", + "gtceu.jei.ore_vein.nether_quartz_vein_ow": "Overworld Quartz Vein", + "gtceu.jei.ore_vein.neutronium_vein_ad": "Glacio Neutronium Vein", + "gtceu.jei.ore_vein.nickel_vein": "Nickel Vein", + "gtceu.jei.ore_vein.nickel_vein_ad": "Space Nickel Vein", + "gtceu.jei.ore_vein.niobium_vein_ad": "Glacio Niobium Vein", + "gtceu.jei.ore_vein.olivine_vein_ad": "Mercury Olivine Vein", + "gtceu.jei.ore_vein.osmium_vein_ad": "Glacio Osmium Vein", + "gtceu.jei.ore_vein.ostrum_vein_ad": "Mars Ostrum Vein", + "gtceu.jei.ore_vein.phosphate_vein": "Phosphate Vein", + "gtceu.jei.ore_vein.pitchblende_vein_ad": "Space Pitchblende Vein", + "gtceu.jei.ore_vein.platinum_vein_ad": "Space Platinum Vein", + "gtceu.jei.ore_vein.precious_alloy_vein": "Precious Alloy Vein", + "gtceu.jei.ore_vein.pyrolusite_vein_ad": "Venus Pyrolusite Vein", + "gtceu.jei.ore_vein.quartzite_vein": "Quartzite Vein", + "gtceu.jei.ore_vein.redstone_vein_ad": "Space Redstone Vein", + "gtceu.jei.ore_vein.rhodium_sulfur_crystal_vein": "Rhodium Sulfur Crystal Vein", + "gtceu.jei.ore_vein.ruthenium_amalgam_vein": "Ruthenium Amalgam Vein", + "gtceu.jei.ore_vein.rutile_vein_ad": "Venus Rutile Vein", + "gtceu.jei.ore_vein.saltpeter_vein_ad": "Mercury Saltpeter Vein", + "gtceu.jei.ore_vein.salts_vein_ad": "Mars Salts Vein", + "gtceu.jei.ore_vein.salts_vein_tf": "Twilight Forest Salts Vein", + "gtceu.jei.ore_vein.scheelite_vein_ad": "Space Scheelite Vein", + "gtceu.jei.ore_vein.scheelite_vein_aether": "Aether Scheelite Vein", + "gtceu.jei.ore_vein.sheldonite_vein_moon": "Moon Sheldonite Vein", + "gtceu.jei.ore_vein.steel_leaf_vein": "Twilight Forest Steel Leaf Vein", + "gtceu.jei.ore_vein.sulfur_vein_ad": "Space Sulfur Vein", + "gtceu.jei.ore_vein.tetrahedrite_vein_ad": "Space Tetrahedrite Vein", + "gtceu.jei.ore_vein.thorium_vein_ad": "Space Thorium Vein", + "gtceu.jei.ore_vein.thunderstrike_vein": "Twilight Forest Thunderstrike Vein", + "gtceu.jei.ore_vein.toxic_swamp_amber_vein": "Twilight Forest Toxic Swamp Amber Vein", + "gtceu.jei.ore_vein.tuff_uraninite_vein_ad": "Space Tuff Uraninite Vein", + "gtceu.jei.ore_vein.uranium238_vein_ad": "Mercury Uranium-238 Vein", + "gtceu.jei.ore_vein.wollastonite_vein": "Wollastonite Vein", + "gtceu.jei.ore_vein.zanite_vein_aether": "Aether Zanite Vein", + "gtceu.jei.ore_vein.zinc_vein": "Zinc Vein", + "gtceu.jei.ore_vein.zircon_vein_aether": "Aether Zircon Vein", + "gtceu.jei.ore_vein.zirkelite_vein": "Zirkelite Vein", "gtceu.naq_mk1": "Super Fuel", "gtceu.photovoltaic_power": "Photovoltaic Powering", "gtceu.plasma_condenser": "Plasma Condensation", + "gtceu.recipe_logic.recipe_waiting": "Recipe waiting:", + "gtceu.recipe_logic.setup_fail": "Recipe failed to start:", + "gtceu.recipe_modifier.insufficient_eu_to_start_fusion": "Not enough energy to start the fusion reaction", "gtceu.slaughter_house": "Slaughter House", "gtceu.underfloor_heating_system": "Underfloor Heating", "gui.ctnh.neutron_sensor.invert.disabled": "Output: Normal\n\nSwitch to reverse redstone logic\nBy default, the sensor will emit a redstone signal when the neutron kinetic energy is between the set minimum and maximum values, and stop emitting a redstone signal when it is less than the minimum value.", @@ -654,9 +1073,13 @@ "info.multiblock.neutron_activator.ctnhcore.neutronactivatormachine.efficiency": "Efficiency: %s%%", "info.multiblock.neutron_activator.ctnhcore.neutronactivatormachine.ev": "Current Neutron Kinetic Energy: %deV", "info.multiblock.neutron_activator.ctnhcore.neutronactivatormachine.height_tooltip": "Height: %s", - "iridium_vein_ad": "Iridium Vein Ad", - "iron_vein_ad": "Iron Vein Ad", - "iron_vein_tf": "Iron Vein Tf", + "iridium_vein_ad": "Ad Astra Iridium Vein", + "iron_vein_ad": "Ad Astra Iron Vein", + "iron_vein_tf": "Twilight Forest Iron Vein", + "item.ctnh.me_advanced_terminal.setting.8": "Removal Mode", + "item.ctnh.me_advanced_terminal.setting.8.tooltip": "Enable removal mode (0: disabled, 1: enabled)\nMake sure the inventory has room for removed blocks\nWhen enabled together with AE Storage, removed blocks are automatically stored in AE storage", + "item.ctnh.me_advanced_terminal.setting.9": "Multiblock Formation Configuration", + "item.ctnh.me_advanced_terminal.setting.9.tooltip": "Multiblock formation configuration", "item.ctnhcore.advanced_ram_chip": "Advanced Ram Chip", "item.ctnhcore.advanced_ram_wafer": "Advanced Ram Wafer", "item.ctnhcore.animal_excreta": "Animal Excreta", @@ -788,23 +1211,33 @@ "item.ctnhcore.tumor": "Tumor", "item.ctnhcore.uhv_voltage_coil": "Ultra High Voltage Coil", "item.ctnhcore.yharim": "Yharim Ingot", - "itemGroup.ctnhcore.block": "CTNH Blocks", - "itemGroup.ctnhcore.item": "CTNH Items", - "itemGroup.ctnhcore.machine": "CTNH Machines", "kaolinite_vein": "Kaolinite Vein", - "lapis_vein_ad": "Lapis Vein Ad", - "lapis_vein_tf": "Lapis Vein Tf", - "lubricant_vein_ad": "Lubricant Vein Ad", - "lubricant_vein_tf": "Lubricant Vein Tf", + "lapis_vein_ad": "Ad Astra Lapis Lazuli Vein", + "lapis_vein_tf": "Twilight Forest Lapis Lazuli Vein", + "lubricant_vein_ad": "Ad Astra Soapstone Vein", + "lubricant_vein_tf": "Twilight Forest Soapstone Vein", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip0.tooltip": "§7From GTMThings, faster speed and no mining pipes, only mining ores", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip1.tooltip": "§bForce loading self chunk while working", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip2.tooltip": "Uses §f%d EU/t §7while working, each block takes §f%d§7 ticks", + "machine.ctnhcore.ctnhmachines.ctnhmachineoxygenenrichertooltip0.tooltip": "Consumes oxygen fluid to maintain a breathable sealed room", + "machine.ctnhcore.ctnhmachines.ctnhmachineoxygenenrichertooltip1.tooltip": "Supplies oxygen to enclosed spaces within %s blocks", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk10tooltip.tooltip": "Allows up to 4096 recipes to be processed simultaneously.", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk11tooltip.tooltip": "Allows up to 16384 recipes to be processed simultaneously.", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk12tooltip.tooltip": "Allows up to 65536 recipes to be processed simultaneously.", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk13tooltip.tooltip": "Allows up to 262144 recipes to be processed simultaneously.", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk14tooltip.tooltip": "Allows up to 1048576 recipes to be processed simultaneously.", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk9tooltip.tooltip": "Allows up to 1024 recipes to be processed simultaneously.", + "machine.ctnhcore.ctnhmachines.machinenaquadahreactortooltip.tooltip": "Efficiency: %s%%", + "machine.ctnhcore.ctnhmachines.machinerocketenginetooltip.tooltip": "Efficiency: %s%%", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.0": "§o§7Input EU to Accelerate the Neutron!", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.1": "§6Max EU Input: %s", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.2": "§6Max EU Cost: %s", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.3": "§bEach EU will be converted to §e10~20-eV§b of neutron kinetic energy.", "machine.ctnhcore.gtnnmachines.neutron_sensor.tooltip.0": "§7Could be installed on §bNeutron Activator§7", "machine.ctnhcore.gtnnmachines.neutron_sensor.tooltip.1": "Based on §6neutron kinetic energy §7output red stone signal, right-click to open the GUI for settings.", - "magnesite_vein_ad": "Magnesite Vein Ad", - "magnetite_vein_ad": "Magnetite Vein Ad", - "manganese_vein_ad": "Manganese Vein Ad", + "magnesite_vein_ad": "Ad Astra Magnesite Vein", + "magnetite_vein_ad": "Ad Astra Magnetite Vein", + "manganese_vein_ad": "Ad Astra Manganese Vein", "material.ctnhcore.1_chloro_2_ethylhexane": "1 Chloro 2 Ethylhexane", "material.ctnhcore.2_ethylhexanol": "2 Ethylhexanol", "material.ctnhcore.acetaldehyde": "Acetaldehyde", @@ -1339,11 +1772,14 @@ "material.ctnhcore.zr_hf_chloride": "Zr Hf Chloride", "material.ctnhcore.zr_hf_oxy_chloride": "Zr Hf Oxy Chloride", "material.ctnhcore.zr_hf_separation_mix": "Zr Hf Separation Mix", - "message.ctnhcore.portal.invalid_dimension": "This portal can only be used in the Overworld", - "molybdenite_vein_tf": "Molybdenite Vein Tf", - "molybdenum_vein_ad": "Molybdenum Vein Ad", - "monazite_vein_n": "Monazite Vein N", + "molybdenite_vein_tf": "Twilight Forest Molybdenite Vein", + "molybdenum_vein_ad": "Ad Astra Molybdenum Vein", + "monazite_vein_n": "Moon Monazite Vein", + "multiblock.ctnh.nuclear_reactor.consume_amount": "Coolant consumption rate: %s mB/s", + "multiblock.ctnh.nuclear_reactor.coolant": "Coolant: %s", + "multiblock.ctnh.nuclear_reactor.coolant_amount": "Coolant amount: %s mB", "multiblock.ctnhcore.gtmachinemodify.cleanroom_restriction.tooltip": "Stop working if height is greater than length or wight", + "multiblock.ctnhcore.gtmachinemodify.gcymreduction.tooltip": "Recipe time ×0.8, recipe energy ×0.6", "multiblock.ctnhcore.gtmachinemodify.precision_assembly.tooltip.0": "Other available recipe type: Precision Assembly", "multiblock.ctnhcore.gtmachinemodify.precision_assembly.tooltip.1": "NOTE: Parallelization is not possible in precision assembly mode", "multiblock.ctnhcore.gtnnmultiblocks.chemical_plant.tooltip.0": "§6Coil: §e+50%§6 speed/tier", @@ -1366,19 +1802,20 @@ "multiblock.ctnhcore.gtnnmultiblocks.neutron_activator.tooltip.3": "§6Absorb §e10MeV §6neutron kinetic energy immediately when input cesium or beryllium dust", "multiblock.ctnhcore.gtnnmultiblocks.neutron_activator.tooltip.4": "§6When the neutron kinetic energy exceeds §41200MeV§6, it will explode!", "multiblock.ctnhcore.gtnnmultiblocks.neutron_activator.tooltip.5": "§6if the neutron's kinetic energy falls outside the required range specified in the recipe, only radioactive waste will be produced as the output.", - "naquadah_vein_ad": "Naquadah Vein Ad", - "naquadah_vein_ad_mars": "Naquadah Vein Ad Mars", - "neutronium_vein_ad": "Neutronium Vein Ad", - "nickel_vein_ad": "Nickel Vein Ad", - "nickel_vein_tf": "Nickel Vein Tf", - "niobium_vein_ad": "Niobium Vein Ad", - "olivine_vein_ad": "Olivine Vein Ad", - "olivine_vein_tf": "Olivine Vein Tf", - "osmium_vein_ad": "Osmium Vein Ad", - "ostrum_vein_ad": "Ostrum Vein Ad", - "pitchblende_vein_ad": "Pitchblende Vein Ad", - "platinum_vein_ad": "Platinum Vein Ad", - "pyrolusite_vein_ad": "Pyrolusite Vein Ad", + "naquadah_vein_ad": "Ad Astra Naquadah Vein", + "naquadah_vein_ad_mars": "Mars Naquadah Vein", + "neutronium_vein_ad": "Ad Astra Neutronium Vein", + "nickel_vein_ad": "Ad Astra Nickel Vein", + "nickel_vein_tf": "Twilight Forest Nickel Vein", + "niobium_vein_ad": "Ad Astra Niobium Vein", + "nuclear_reactor": "Nuclear Energy Conversion", + "olivine_vein_ad": "Ad Astra Olivine Vein", + "olivine_vein_tf": "Twilight Forest Olivine Vein", + "osmium_vein_ad": "Ad Astra Osmium Vein", + "ostrum_vein_ad": "Ad Astra Ostrum Vein", + "pitchblende_vein_ad": "Ad Astra Pitchblende Vein", + "platinum_vein_ad": "Ad Astra Platinum Vein", + "pyrolusite_vein_ad": "Ad Astra Pyrolusite Vein", "quartzite_vein": "Quartzite Vein", "recipe.biochemistry.ctnhcore.biochemistryrecipes.digestion_info": "The Exact Output is related to the food's nutrition and saturation", "recipe.biochemistry.ctnhcore.biochemistryrecipes.food_info": "Any food", @@ -1391,21 +1828,22 @@ "recipe.condition.plant_casing.ctnhcore.plantcasingcondition.tooltip": "Casing: %s (%s)", "recipe.condition.plant_casing.ctnhcore.plantcasingcondition.tungsten_steel": "Tungsten Steel", "recipe.condition.tier_casing.ctnhcore.tiercasingcondition.tooltip": "Casing Tier: %s", - "redstone_vein_ad": "Redstone Vein Ad", - "rutile_vein_ad": "Rutile Vein Ad", - "saltpeter_vein_ad": "Saltpeter Vein Ad", - "salts_vein_ad": "Salts Vein Ad", - "salts_vein_tf": "Salts Vein Tf", - "sapphire_vein_tf": "Sapphire Vein Tf", - "scheelite_vein_ad": "Scheelite Vein Ad", - "sulfur_vein_ad": "Sulfur Vein Ad", - "tetrahedrite_vein_ad": "Tetrahedrite Vein Ad", + "redstone_vein_ad": "Ad Astra Redstone Vein", + "rutile_vein_ad": "Ad Astra Rutile Vein", + "saltpeter_vein_ad": "Ad Astra Saltpeter Vein", + "salts_vein_ad": "Ad Astra Salts Vein", + "salts_vein_tf": "Twilight Forest Salts Vein", + "sapphire_vein_tf": "Twilight Forest Sapphire Vein", + "scheelite_vein_ad": "Ad Astra Scheelite Vein", + "sulfur_vein_ad": "Ad Astra Sulfur Vein", + "tetrahedrite_vein_ad": "Ad Astra Tetrahedrite Vein", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.0": "The Void Dimension has the following features:", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.1": " - No mobs spawn naturally", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.2": " - Players are granted creative flight unconditionally", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.3": " - ME Wireless Access Points have no distance limit", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.4": " - Solar panels and wind generators do not function", - "tuff_uraninite_vein_ad": "Tuff Uraninite Vein Ad", - "uranium238_vein_ad": "Uranium238 Vein Ad", - "wollastonite_vein": "Wollastonite Vein" + "tuff_uraninite_vein_ad": "Ad Astra Tuff Uraninite Vein", + "uranium238_vein_ad": "Ad Astra Uranium-238 Vein", + "wollastonite_vein": "Dolomite Vein", + "zenith_machine_sp": "§5The Psionic Beacon Stands Unyielding!" } \ No newline at end of file diff --git a/src/generated/resources/assets/ctnhcore/lang/zh_cn.json b/src/generated/resources/assets/ctnhcore/lang/zh_cn.json index 3c587ea6f..f0da172a8 100644 --- a/src/generated/resources/assets/ctnhcore/lang/zh_cn.json +++ b/src/generated/resources/assets/ctnhcore/lang/zh_cn.json @@ -5,7 +5,6 @@ "beryllium_vein_ad": "铍矿脉", "bio_machine.ctnhcore.biomachine.growing_efficiency": "生长效率:%d%%", "bio_machine.ctnhcore.biomachine.growing_temperature": "生长温度:§2%d°C§r", - "block.ctnhcore.abyssalalloy_coil_block": "渊狱合金线圈", "block.ctnhcore.advance_assembly_line": "进阶装配线", "block.ctnhcore.advance_machine_casing_assembly_control": "进阶线程控制器方块", "block.ctnhcore.advance_machine_casing_assembly_line": "进阶装配线外壳", @@ -22,13 +21,10 @@ "block.ctnhcore.arc_generator": "电弧撕裂者", "block.ctnhcore.arc_generator_mk1": "超压电弧撕裂者MK1", "block.ctnhcore.arc_generator_mk2": "过载电弧撕裂者MK1", - "block.ctnhcore.arc_reactor": "电弧发生器", "block.ctnhcore.astronomical_observatory": "天文台", - "block.ctnhcore.atoms_split_blocks": "原子裂解方块", "block.ctnhcore.bedrock_drilling_rigs": "基岩钻机", "block.ctnhcore.bio_reactor": "生物反应器", "block.ctnhcore.bio_reactor_casing": "生物反应器外壳", - "block.ctnhcore.black_titanium_coil_block": "黑钛合金线圈", "block.ctnhcore.blaze_blast_furnace": "§c炽焱高炉", "block.ctnhcore.blaze_blast_furnace_casing": "炽焱高炉机械外壳", "block.ctnhcore.blue_framed_glass": "蓝色镶边玻璃", @@ -84,9 +80,7 @@ "block.ctnhcore.hv_personal_computer": "§6HV§r个人计算机", "block.ctnhcore.hyper_casing": "黑钚强化硅岩合金机械方块", "block.ctnhcore.hyper_plasma_turbine": "超極等离子涡轮", - "block.ctnhcore.hyper_plasma_turbine_rotor": "超極等离子涡轮转子", "block.ctnhcore.industrial_primitive_blast_furnace": "工业土高炉", - "block.ctnhcore.infinity_coil_block": "无尽线圈", "block.ctnhcore.ion_exchanger": "离子交换机", "block.ctnhcore.iridium_casing": "铱机械方块", "block.ctnhcore.iv_chemical_generator": "化学能吞噬者", @@ -161,6 +155,7 @@ "block.ctnhcore.max_parallel_hatch": "§c§lMAX§r并行控制仓", "block.ctnhcore.meadow": "§6牧场", "block.ctnhcore.mechanical_centrifuge": "机械离心厂", + "block.ctnhcore.mechanical_extractor": "机械熔炼厂", "block.ctnhcore.mechanical_lathe": "机械车床厂", "block.ctnhcore.mechanical_mixer": "机械搅拌厂", "block.ctnhcore.mechanical_pressor": "机械辊压厂", @@ -178,7 +173,6 @@ "block.ctnhcore.naq_reactor_mk3": "超级硅岩反应堆", "block.ctnhcore.naquadah_alloy_casing_block": "三钛强化中子素硅岩合金机械方块", "block.ctnhcore.naquadah_casing_block": "铿铀强化硅岩铕机械方块", - "block.ctnhcore.naquadah_firebox_casing": "硅岩燃烧室", "block.ctnhcore.naquadah_gearbox": "硅岩合金齿轮箱机械方块", "block.ctnhcore.natural_ecological_shell_casing": "环保机械外壳", "block.ctnhcore.neruo_martix_compiler": "神经矩阵编译器", @@ -195,7 +189,6 @@ "block.ctnhcore.photovoltaic_power_station_energetic": "充能光伏发电站", "block.ctnhcore.photovoltaic_power_station_pulsating": "脉冲光伏发电站", "block.ctnhcore.photovoltaic_power_station_vibrant": "振动光伏发电站", - "block.ctnhcore.pikyonium_coil_block": "皮卡优线圈", "block.ctnhcore.plasma_alloy_blast_smelter": "等离子合金冶炼转底炉", "block.ctnhcore.plasma_condenser": "等离子冷凝器", "block.ctnhcore.plasma_cooled_core": "等离子交换热线圈方块", @@ -218,7 +211,6 @@ "block.ctnhcore.space_elevator_mechanical_casing": "太空电梯机械方块", "block.ctnhcore.space_elevator_power_core": "太空电梯维持反应堆核心", "block.ctnhcore.space_photovoltai_cbase_station": "太空光伏基站", - "block.ctnhcore.starmetal_coil_block": "星辉线圈", "block.ctnhcore.stellar_radiation_router_casing": "恒星辐射分流方块", "block.ctnhcore.sterile_cleanroom_maintenance_hatch": "无菌超净间维护仓", "block.ctnhcore.super_centrifuge": "超速离心机", @@ -228,8 +220,6 @@ "block.ctnhcore.superconducting_penning_trap": "超导潘宁势阱", "block.ctnhcore.supercooled_bloock": "超级冷冻机械线圈", "block.ctnhcore.sweat_shop": "§4血汗工厂", - "block.ctnhcore.test_machine_casing": "测试方块", - "block.ctnhcore.titansteel_coil_block": "泰坦钢线圈", "block.ctnhcore.tungstencu_diamond_plating_casing": "W-Cu覆膜金刚石机械方块", "block.ctnhcore.uev_parallel_hatch": "§aUEV§r并行控制仓", "block.ctnhcore.uev_personal_computer": "§aUEV§r个人计算机", @@ -266,8 +256,6 @@ "block.ctnhcore.zpm_naquadah_reactor": "§c精英硅岩发电机 IV", "block.ctnhcore.zpm_neutron_accelerator": "§cZPM 中子加速器", "block.ctnhcore.zpm_personal_computer": "§cZPM§r个人计算机", - "block.gtceu.starlight": "星能液", - "block.gtceu.sulfuric_acid": "硫酸", "calorite_vein_ad": "耐热合金矿脉", "cassiterite_vein_ad": "锡石矿脉", "cassiterite_vein_tf": "锡石矿脉", @@ -277,6 +265,9 @@ "config.ctnhcore.option.centrifugeSpeedMultiplier": "机械离心厂加速倍率", "config.ctnhcore.option.centrifugeStressRequirement": "机械离心厂应力消耗", "config.ctnhcore.option.enableFTBUltimineOnGTOres": "开启GT矿物连锁", + "config.ctnhcore.option.extractorRpmRequirement": "机械提取厂最低转速需求", + "config.ctnhcore.option.extractorSpeedMultiplier": "机械提取厂加速倍率", + "config.ctnhcore.option.extractorStressRequirement": "机械提取厂应力消耗", "config.ctnhcore.option.ftbPlugin": "FTB相关", "config.ctnhcore.option.kinetic": "应力相关", "config.ctnhcore.option.laserRpmRequirement": "机械激光厂最低转速需求", @@ -298,21 +289,7 @@ "config.jade.plugin_ctnhcore.recipe_output_provider": "配方输出信息", "config.jade.plugin_ctnhcore.thread_status_provider": "线程信息", "copper_vein_ad": "铜矿脉", - "ctnh.acc.danger": "§c危险粒子实验", - "ctnh.advanced_ram_chip.tooltip": "更好的随机存取存储器", - "ctnh.advanced_ram_wafer.tooltip": "更好的内存原料", - "ctnh.anti_electric": "反电子量:%d", - "ctnh.anti_nu": "反中子量:%d", - "ctnh.anti_proton": "反质子量:%d", - "ctnh.bauxite_process_catalyst": "村庄里的图书管理员掌握这个古老的技术,成为村庄英雄后他就会传授给你", - "ctnh.blood_magic_gregtech_hv": "在坠星位标仪式中使用此物品作为祭品可以召唤陨石", - "ctnh.common_tooltip.parallel_hatch": "·允许使用并行控制仓", - "ctnh.common_tooltip.perfect_overclock": "无损超频!", - "ctnh.common_tooltip.steel_machine.0": "只能使用HV级能源仓及以下等级", "ctnh.common_tooltip.steel_machine.1": "最大并行为32", - "ctnh.common_tooltip.subtick_overclock": "当配方运行时间小于1t时,会自动计算并行", - "ctnh.compiler.error.0": "§c未知错误", - "ctnh.compiler.error.1": "§c舱室等级与片区1不匹配", "ctnh.compiler.id": "该舱室被分配到的片区编号:%s", "ctnh.compiler.noid": "§c当前舱室尚未连接到主机!", "ctnh.computer.a1": "§c一切伟大之作都需要§4牺牲§r§j来铸就。其他生物或许不能理解,但他们必将§4服从§r。", @@ -322,100 +299,27 @@ "ctnh.computer.a5": "该机器会超载所有智慧生物体的大脑。§4不可避免§r地§4永久损坏§r智慧生物的大脑,§4不会留下§r任何掉落物", "ctnh.computer.a6": "诸如村民这种§7低智慧§r的新人类的生命与智慧太低了,我们需要§c更加聪明,可爱和生命更高的生物§r", "ctnh.computer.a7": "为了无尽的知识,我们必须§4做出一切必要的牺牲§4", - "ctnh.connect": "连接已搭建", - "ctnh.data.noise": "当前噪声值:%s", - "ctnh.doubt": "通过击杀浸泡在生命源质的生物,将其困扰注入生命源质之中获得", "ctnh.dwof.tooltip": "运行时为模型积累数据,至多将模型提高至[进阶]等级", "ctnh.eternal_engine.1": "当前发电量:%d EU /tick", "ctnh.eternal_engine.2": "累计的工作时间:%.2f s/36000 s", - "ctnh.gcym.reduction": "配方耗时x0.8,配方耗能x0.6", - "ctnh.item.data.tip1": "当前公式: a%s+b%s+c%s+d", - "ctnh.item.data.tip2": "获取的倍率: %s", - "ctnh.item.drone_durability": "无人机最大耐久:%d", - "ctnh.item.drone_eut": "单个无人机产生的电压: %dEU/t", - "ctnh.item.drone_tier": "无人机等级:%d", "ctnh.item.dyson_tier1": "集成性光伏无人机蜂群", "ctnh.item.dyson_tier2": "§4我们的蜂群遮天蔽日", - "ctnh.item.nuclear_reactor_heat": "基础堆温:%d°C", "ctnh.item.runes.horizen_rune": "视野所向之处", "ctnh.item.runes.proliferation_rune": "金融与生物的本能", "ctnh.item.runes.quasar_rune": "毁灭与创造交替", "ctnh.item.runes.starlight_rune": "Per Aspera Ad Astra", "ctnh.item.runes.twist_rune": "速度与人性的扭曲", - "ctnh.item.terminal.location": "已经绑定的坐标:(%s,%s,%s)", - "ctnh.item.terminal.success_clear": "已清除坐标!", - "ctnh.item.terminal.success_get": "已经获取坐标!", - "ctnh.item.terminal.success_write": "已成功写入坐标!", - "ctnh.item.terminal.tips": "使用右键绑定光伏模块控制器,然后再右键将控制器和光伏基站绑定\nshift+右键任意方块清除坐标", - "ctnh.machine.naquadah_reactor.tooltip": "效率: %s%%", - "ctnh.machine.rocket_engine.tooltip": "效率: %s%%", "ctnh.magic.generator": "精炼天地之魔精", "ctnh.magic.generator.1": "具有8并行,每秒基础消耗12mB液态魔力,电压每超过§7LV§r一级,消耗量变为原来的两倍", - "ctnh.me_advanced_terminal.tooltip.1": "§l格雷科技-多方块结构终端-异步成型模式", - "ctnh.me_advanced_terminal.tooltip.2": "复刻了曾经的旗舰款,终端屏幕上闪烁着久违的画面", "ctnh.me_advanced_terminal.tooltip.3": "通过ME无线访问点链接到网络", - "ctnh.mechanical_lathe.structure": "结构中的车床必须严格依照EMI结构信息页面展示的位置和方向摆放", - "ctnh.mechanical_lathe.structure.1": "§7EMI中显示的车床数量有问题,实际只需要6个", - "ctnh.metallurgical_catalyst": "地狱的猪灵掌握这个技术,尝试与他们交易吧", - "ctnh.multiblock.advanced_coke_oven.tooltip.0": "高级焦炉", - "ctnh.multiblock.advanced_coke_oven.tooltip.1": "§6§l自带32并行", - "ctnh.multiblock.advanced_coke_oven.tooltip.2": "只可运行焦炉配方,且运行配方时间固定为15s", - "ctnh.multiblock.advanced_coke_oven.tooltip.3": "产生大量的焦化产物与杂酚油", - "ctnh.multiblock.advanced_coke_oven.tooltip.4": "§c§l不能使用焦炉仓", - "ctnh.multiblock.arcgenerator.info.0": "电弧最大强度:%d", - "ctnh.multiblock.arcgenerator.info.1": "电弧强度:%d", - "ctnh.multiblock.arcgenerator.info.2": "支持最大效率:%.2f%%", - "ctnh.multiblock.arcgenerator.info.3": "当前效率:%.2f%%", - "ctnh.multiblock.arcgenerator.tooltip.1": "物质撕裂器", - "ctnh.multiblock.arcgenerator.tooltip.2": "该机器必须配合电弧生成器使用,要求电弧生成器必须在该机器主方块上方5格,当完成链接时,电弧生成器会显示已完成连接", - "ctnh.multiblock.arcgenerator.tooltip.3": "当电弧强度小于配方最小电弧强度时,配方将无法运行", - "ctnh.multiblock.arcgenerator.tooltip.4": "当电弧强度大于配方最大电弧强度时,配方将以(机器电弧强度-配方需求电弧强度)/(满功率需求电弧强度-需求电弧强度)的效率运行。效率允许超过100%,但不能超过机器最大发电效率", - "ctnh.multiblock.arcgenerator.tooltip.5": "当效率未达100%时,因为湮灭的不完全,将产生少量额外产出", - "ctnh.multiblock.arcgenerator.tooltip.arc.t1.1": "§b最大支持电弧强度:1000", - "ctnh.multiblock.arcgenerator.tooltip.arc.t1.2": "§c最大发电效率:75%", - "ctnh.multiblock.arcgenerator.tooltip.arc.t2.1": "§b最大支持电弧强度:10000", - "ctnh.multiblock.arcgenerator.tooltip.arc.t2.2": "§c最大发电效率:125%", - "ctnh.multiblock.arcgenerator.tooltip.arc.t3.1": "§b最大支持电弧强度:50000", - "ctnh.multiblock.arcgenerator.tooltip.arc.t3.2": "§c最大发电效率:225%", - "ctnh.multiblock.arcgenerator.tooltip.t2.1": "分子撕裂器", - "ctnh.multiblock.arcgenerator.tooltip.t3.1": "原子撕裂器", - "ctnh.multiblock.arcreactor.arc": "可输出的电弧强度:%d", - "ctnh.multiblock.arcreactor.connect": "§b桥接已启用§r", "ctnh.multiblock.arcreactor.tooltip": "电弧发生者", - "ctnh.multiblock.arcreactor.tooltip.1": "该机器必须配合电弧撕裂者使用,要求电弧生成器必须在电弧撕裂者主方块上方5格,当完成链接时,电弧生成器会显示桥接已启用", - "ctnh.multiblock.arcreactor.tooltip.2": "机器基础每次运行配方产生10电弧强度,无法超频,高等级机器具有更高并行数", - "ctnh.multiblock.arcreactor.tooltip.t1": "该机器并行数:1", - "ctnh.multiblock.astronomical.info.invalid": "只能在夜晚使用", - "ctnh.multiblock.astronomical.tooltip.0": "知天易,逆天难", - "ctnh.multiblock.astronomical.tooltip.1": "无法在阳光直射下工作,工作时会自动为芯片总线中的芯片收集数据", - "ctnh.multiblock.bio_reactor.tooltip.0": "一个大罐子", - "ctnh.multiblock.blaze_blast_furnace.info.pyrotheum": "烈焰之炽焱:%d mB", - "ctnh.multiblock.blaze_blast_furnace.tooltip.0": "比电力高炉快", - "ctnh.multiblock.blaze_blast_furnace.tooltip.1": "每秒基础消耗§a10mB§r烈焰之炽焱,电压每超过§6HV§r一级,消耗量变为原来的两倍", - "ctnh.multiblock.blaze_blast_furnace.tooltip.2": "运行耗能x0.75", - "ctnh.multiblock.blaze_blast_furnace.tooltip.3": "允许一次性处理8个配方", - "ctnh.multiblock.coke_tower.tooltip.0": "拥有强大的焦化产能来支撑你的木化产线!", - "ctnh.multiblock.coke_tower.tooltip.1": "有着如同工业熔炉一般的速度", - "ctnh.multiblock.cryotheum_freezer.tip.0": "§b泪水如凛冰般落下", - "ctnh.multiblock.cryotheum_freezer.tip.1": "每次运行配方消耗5*并行mb极寒之凛冰,电压每高于§9IV§r一级,这个消耗就翻4倍", - "ctnh.multiblock.cryotheum_freezer.tip.2": "初始具有4并行和3泪之晶点数,可以在升级界面加点。每消耗10000mb凛冰,就获得一点点数,随后将目标翻四倍", - "ctnh.multiblock.cryotheum_freezer.ui.0": "当前泪之晶点数:%d", - "ctnh.multiblock.cryotheum_freezer.ui.1": "当前冷冻机加速:%.2f / %.2f", - "ctnh.multiblock.cryotheum_freezer.ui.2": "打开升级面板", - "ctnh.multiblock.cryotheum_freezer.ui.3": "当前能量利用效率:%.2f / %.2f", - "ctnh.multiblock.cryotheum_freezer.ui.4": "当前并行:%d / %d", - "ctnh.multiblock.cryotheum_freezer.ui.5": "§b当前消耗的凛冰:%d / %d", - "ctnh.multiblock.crystallizer.tooltip.0": "专业结晶", - "ctnh.multiblock.crystallizer.tooltip.1": "结晶器能更加快速的完成晶体配方", - "ctnh.multiblock.crystallizer.tooltip.2": "随着线圈等级上升,工作效率逐级提升", - "ctnh.multiblock.crystallizer.tooltip.3": "可以运行部分化学气相沉积的配方和部分高压釜的配方", - "ctnh.multiblock.crystallizer.tooltip.4": "省材料的最佳帮手", - "ctnh.multiblock.cultivation_room.tooltip.1": "菌群孕育,菌种滋长", - "ctnh.multiblock.cultivation_room.tooltip.2": "运用好这台机器来繁殖那些难以获取的真菌和细菌", - "ctnh.multiblock.decay_pools.tooltip.0": "衰变", - "ctnh.multiblock.decay_pools.tooltip.1": "当电路板为0时为不通电状态---不启用世界加速", - "ctnh.multiblock.decay_pools.tooltip.2": "当电路板为1时为通电状态---启用世界加速", - "ctnh.multiblock.decay_pools.tooltip.3": "加速衰变过程", + "ctnh.multiblock.demon_generator.info.1": "浓度差:%s", + "ctnh.multiblock.demon_generator.info.boosted": "§b生命源质增幅已启用", + "ctnh.multiblock.demon_generator.info.corrosive": "专精增益:腐蚀", + "ctnh.multiblock.demon_generator.info.default": "专精增益:无", + "ctnh.multiblock.demon_generator.info.destructive": "专精增益:毁灭", + "ctnh.multiblock.demon_generator.info.steadfast": "专精增益:坚毅", + "ctnh.multiblock.demon_generator.info.vengeful": "专精增益:复仇", "ctnh.multiblock.demon_will_generator.tooltip.0": "借用恶魔之力", "ctnh.multiblock.demon_will_generator.tooltip.01": "允许使用变电仓,不限制变电仓数量", "ctnh.multiblock.demon_will_generator.tooltip.1": "利用机器两侧的区块内的恶魔意志浓度差发电,浓度差与发电量呈指数关系,当浓度差超过500时,超过500的浓度与发电量改为线性关系", @@ -424,150 +328,27 @@ "ctnh.multiblock.demon_will_generator.tooltip.4": "机器内可以放入意志核心,将机器转化为对于某种意志专精的模式,该模式下每秒会有5%的概率消耗一个核心", "ctnh.multiblock.demon_will_generator.tooltip.5": "机器内的符文方块可替换,从而起到不同的增益效果:\n§4献祭符文和牺牲符文----提高生命源质强化模式的发电倍率§r\n§3速度符文----提升一次配方运行的时长(节省恶魔意志消耗)§r\n§e增容符文----每一个符文增加2点恶魔意志浓度差§r\n§c超容符文----每一个符文增加百分之2的恶魔意志浓度差(叠乘)§r\n==============================", "ctnh.multiblock.demon_will_generator.tooltip.6": "输入§4生命源质§r开启血祭模式,发电量翻倍,每秒消耗§a100mb§r的生命源质", - "ctnh.multiblock.desalting_factory.tooltip.0": "从海水中烘干出盐,很环保不是吗?", - "ctnh.multiblock.digestion_tank.tooltip.0": "其实产生的是很有价值的原料......", - "ctnh.multiblock.digestion_tank.tooltip.1": "化粪池堆肥机制:", - "ctnh.multiblock.digestion_tank.tooltip.2": "当化粪池温度处于§236§r至§238§r度之间时为最适生长温度,配方获得1.2倍效率,越偏离最适生长温度,配方效率越低,最低为三分之一", - "ctnh.multiblock.fermenting_tank.tooltip.0": "一个专为微生物提供的生长罐,注意时刻关注他!", - "ctnh.multiblock.fermenting_tank.tooltip.1": "发酵罐的生物生长机制:", - "ctnh.multiblock.fermenting_tank.tooltip.2": "当发酵罐温度处于§236§r至§238§r度之间时为最适生长温度,配方获得1.2倍效率,越偏离最适生长温度,配方效率越低,最低为三分之一", - "ctnh.multiblock.fermenting_tank.tooltip.3": "微生物的生长符合逻辑斯蒂方程,当输入仓内液体体积为容量的一半时,§2生长效率达到两倍§r,而满仓和空仓时生长效率最低,保底为20%", - "ctnh.multiblock.fluid_drilling_rig.depletion.inf": "§6永§b不§d损§a耗,你在担心什么?", - "ctnh.multiblock.fluid_drilling_rig.description.inf": "§6钻取来自无尽之中的流体之海", - "ctnh.multiblock.forest_machine.info.humidity": "湿度值:%d", - "ctnh.multiblock.forest_machine.info.parallel_count": "并行数:%d", - "ctnh.multiblock.forest_sea.tooltip.1": "手植千木,绿荫千秋", - "ctnh.multiblock.forest_sea.tooltip.2": "林海树场是一个只消耗水来产出大量木材的大机器", - "ctnh.multiblock.forest_sea.tooltip.3": "每5s进行一次水储量的判定", - "ctnh.multiblock.forest_sea.tooltip.4": "水充足时,增加1%的湿度值", - "ctnh.multiblock.forest_sea.tooltip.5": "水不足时,减少10%的湿度值", - "ctnh.multiblock.forest_sea.tooltip.6": "配方运行时间不变,但并行值会随湿度值与电压等级上升", - "ctnh.multiblock.forest_sea.tooltip.7": "比温室好!", - "ctnh.multiblock.greenhouse.tooltip.0": "室内种植", "ctnh.multiblock.hybrid_mixer.tooltip.0": "动力学的电力复兴", "ctnh.multiblock.hybrid_mixer.tooltip.1": "执行特殊的电压-应力驱动机制", "ctnh.multiblock.hybrid_mixer.tooltip.2": "机器真实电压等级为配方电压等级和应力等级的较小值。应力输入仓要求转速至少为64,应力输入仓转速为256时,应力等级+1", "ctnh.multiblock.hybrid_mixer.tooltip.3": "混合动力超频:应力等级和配方电压等级每同时提升一级,运行速度*4", "ctnh.multiblock.hybrid_mixer.tooltip.4": "当转速超过64时,使配方时间*0.8。转速超过128时配方时间和电压速度将随着转速提升进一步减少", - "ctnh.multiblock.hyper_plasma_turbine.tooltip0": "§a精密计算§f与§e等离子体§f的§5终极艺术", - "ctnh.multiblock.hyper_plasma_turbine.tooltip1": "提供%d算力以达到基础功率,每提供%d算力,输出功率翻一倍", "ctnh.multiblock.industrial_altar.info.current_lp": "当前含有lp量:%d", "ctnh.multiblock.industrial_altar.info.max_lp": "最大lp量:%d", - "ctnh.multiblock.industrial_primitive_blast_furnace.info.parallel_count": "并行数:%d", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.0": "更强大的土高炉,你的炼钢好帮手", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.1": "工业土高炉在持续运行配方时,会不断升温,而一旦中止,则会迅速冷却", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.2": "温度越高,工业土高炉的并行数越高,最高为8并行", - "ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.3": "温度越高,工业土高炉的效率越高,最高为两倍效率", - "ctnh.multiblock.ion_exchanger.tooltip.0": "离子交换", - "ctnh.multiblock.large_bottle.tooltip.0": "真是一个大罐子", - "ctnh.multiblock.large_bottle.tooltip.1": "可以存储10000桶液体", - "ctnh.multiblock.large_bottle.tooltip.2": "与大型发酵罐一起使用时,其中的液体会以§e100mb/s§r的速度消耗", - "ctnh.multiblock.large_fermenting_tank.tooltip.0": "高效工业化发酵生产", - "ctnh.multiblock.large_fermenting_tank.tooltip.1": "可接入附属结构,在对应位置连接上一个大发酵瓶后,可以根据发酵瓶中的液体种类提升保底效率:水(50%),简易培养基(150%),无菌培养基(200%)", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.0": "全维度集气", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.1": "这台机器可以收集任意维度的气体", - "ctnh.multiblock.large_gas_collection_chamber.tooltip.2": "由于它的产量较大,建议你用ME输出总成来收集产物", "ctnh.multiblock.large_miner_zpm.tooltip.0": "听说你很担心矿物的来源?", - "ctnh.multiblock.large_steel_alloy_furnace.tooltip.0": "钢质合金炉", - "ctnh.multiblock.large_steel_furnace.tooltip.0": "钢质熔炉", "ctnh.multiblock.lasersorter.recipe.cwut": "所需的基础算力:%d", - "ctnh.multiblock.lasersorter.tooltip.0": "持续调整激光频率", - "ctnh.multiblock.lasersorter.tooltip.1": "配方类型:激光分配/激光蚀刻", - "ctnh.multiblock.lasersorter.tooltip.10": "输入的算力每比基础算力多一倍,将一次超频转化为无损超频(即运行速度*2),该效果转化的次数不超过你能超频的等级(即上限为将你所有的有损超频转化为无损)", - "ctnh.multiblock.lasersorter.tooltip.11": "§c如果输入的算力不为整数倍,则以上所有的增益全部无效且最终所需时间*4", - "ctnh.multiblock.lasersorter.tooltip.2": "本机器需要消耗算力才能运行", - "ctnh.multiblock.lasersorter.tooltip.3": "————————激光蚀刻模式————————", - "ctnh.multiblock.lasersorter.tooltip.4": "LuV及以下的电压固定基础请求8算力,电压每高于LuV一级,请求的基础算力翻倍", - "ctnh.multiblock.lasersorter.tooltip.5": "输入的算力如果为基础请求算力的整数倍,则最终输出*1.25,并行等同于⌊(输入的算力/基础请求算力)⌋的三次方", - "ctnh.multiblock.lasersorter.tooltip.6": "输入的算力每比基础算力多一倍,将一次超频转化为无损超频(即运行速度*2),该效果转化的次数不超过你能超频的等级(即上限为将你所有的有损超频转化为无损)", - "ctnh.multiblock.lasersorter.tooltip.7": "————————激光分配模式————————", - "ctnh.multiblock.lasersorter.tooltip.8": "配方给出请求算力,如果配方没有给出则按照激光蚀刻模式的公式计算", - "ctnh.multiblock.lasersorter.tooltip.9": "输入的算力如果为基础请求算力的整数倍,则并行等同于⌊(输入的算力/基础请求算力)⌋的三次方", "ctnh.multiblock.magic_fuel_generator.tip": "精炼天地之魔精", "ctnh.multiblock.mana_reactor.tooltip.0": "工业魔力奠基者", "ctnh.multiblock.mana_reactor.tooltip.1": "允许使用并行控制仓", - "ctnh.multiblock.martial_morality_eye.tooltip.0": "丐版鸿蒙之眼", - "ctnh.multiblock.martial_morality_eye.tooltip.1": "原始时代时消耗64000mb的蒸汽和64个原石", - "ctnh.multiblock.martial_morality_eye.tooltip.2": "产出主世界和暮色森林以及月球的矿", - "ctnh.multiblock.martial_morality_eye.tooltip.3": "随着电压等级提高能够解锁更多配方", - "ctnh.multiblock.martial_morality_eye.tooltip.4": "在前期比坠星好用", - "ctnh.multiblock.martial_morality_eye.tooltip.5": "结构中心似乎存在着神秘力量,充满危险的气息,请远离!", - "ctnh.multiblock.martial_morality_eye.tooltip.6": "结构来源:Twist Space Technology", - "ctnh.multiblock.meadow.tooltip.0": "§7自动化放牧", - "ctnh.multiblock.meadow.tooltip.1": "输入配方所需n倍应力时,获得n并行", - "ctnh.multiblock.meadow.tooltip.2": "可以同时养殖不同动物", - "ctnh.multiblock.meadow.tooltip.3": "§7只有动物跑出去时,你才知道你不是在种菜!", + "ctnh.multiblock.mana_turbine.info.consumption_rate": "消耗速率:%d", + "ctnh.multiblock.mana_turbine.info.efficiency": "发电效率:%d%%", "ctnh.multiblock.mega_lcr.info.coil": "当前线圈温度:%s", "ctnh.multiblock.mega_lcr.info.speed": "当前配方时间倍率:%s", - "ctnh.multiblock.mega_lcr.tooltip.0": "§b具有4个异步线程§r", - "ctnh.multiblock.mega_lcr.tooltip.1": "使用§d异步线程控制仓§r以配置多线程运行模式", "ctnh.multiblock.meteor_capturer.tooltip.0": "§8为什么陨石总能落在陨石坑里?§r\n该机器无法超频", "ctnh.multiblock.meteor_capturer.tooltip.1": "消耗少量引物和大量的生命源质,从外太空拉取满是矿石的陨石。", "ctnh.multiblock.meteor_capturer.tooltip.2": "配方需要大量的输入输出空间,建议使用高级输入总成。", "ctnh.multiblock.meteor_capturer.tooltip.3": "陨石会在多方块结构上方的空腔内生成(真的)。不要在里面放置人或设备。", "ctnh.multiblock.meteor_capturer.tooltip.4": "半径大于13的配方会破坏多方块结构(不存在这种配方)。", - "ctnh.multiblock.nano_generator.tooltip.0": "利用摩擦热的力量", - "ctnh.multiblock.nano_generator.tooltip.1": "最大并行数:2048", - "ctnh.multiblock.nano_generator.tooltip.2": "每有1并行数,总体发电量提升4%\n实际运行时间为配方时间*sqrt(并行数)", - "ctnh.multiblock.nano_generator.tooltip.3": "在控制器内放入特定材料可提升倍率,但也有概率消耗\n无材料:0.8倍率\n橡胶片:1.0倍率,并行数/512几率消耗\n聚乙烯片:1.6倍率,并行数/1024几率消耗\n硅橡胶片:2.4倍率,并行数/4096几率消耗\n聚四氟乙烯片:3.2倍率,并行数/65535几率消耗\n丁苯橡胶片:4.6倍率,并行数/131070几率消耗\n聚苯并咪唑片:5倍率,并行数/1048576几率消耗", - "ctnh.multiblock.naq_reactor.info.nickel_consumption": "镍等离子体消耗量: %d", - "ctnh.multiblock.naq_reactor.info.parallel_count": "发电并行数: %d", - "ctnh.multiblock.naq_reactor.info.temperature": "§c内核温度: %d", - "ctnh.multiblock.naq_reactor_mk3.tooltip.1": "浩瀚能量,天地震动", - "ctnh.multiblock.naq_reactor_mk3.tooltip.2": "利用超能燃料进行发电,无镍等离子体时无法完全消耗燃料", - "ctnh.multiblock.naq_reactor_mk3.tooltip.3": "机器构型中必须有一个动力仓", - "ctnh.multiblock.naq_reactor_mk3.tooltip.4": "随着内核温度上升,发电效率增大", - "ctnh.multiblock.neuro_martix_compiler.tip.0": "将生物的进化之道完全放任于碳基生物的自然演变是一种低效且缓慢的做法,现在我们将亲自编码每一个基因序列,将我们的至臻完美编译在神经元的逻辑之中", - "ctnh.multiblock.neuro_martix_compiler.tip.01": "神经矩阵编码器(CMP)是一台编译神经序列的机器,其不同于其他机器,不执行正常的输入逻辑,无法超频", - "ctnh.multiblock.neuro_martix_compiler.tip.1": "该机器的输入由6个神经矩阵研究舱室组成,每个舱室在结构完成时将被编码,所有研究舱室必须为同一等级,编码完成后,每个研究舱室将会显示他们所属的片区(并未实现)现在片区分配固定为:机器主方块左前方为1,右前方为2,左后方为3,右后方为4", - "ctnh.multiblock.neuro_martix_compiler.tip.10": "如果运算失败,则定义噪声结果函数f(x1,x2,x3)=ax1+bx2+cx3+d+ϵ,根据噪声决定片区,噪声波动最多翻倍5倍,片区误差项为0.9-1.1间,则噪声变为0.5倍率", - "ctnh.multiblock.neuro_martix_compiler.tip.11": "最终编译数据集将获得三个信息,信息1代表本次的方程,信息2代表噪声结果函数获得的结果值对于y的倍率,信息3代表误差项的比率", - "ctnh.multiblock.neuro_martix_compiler.tip.12": "在执行相同配方时方程不会重置,在执行配方或者结构重新成型时,重置y和方程", - "ctnh.multiblock.neuro_martix_compiler.tip.2": "该机器的输入§c必须严格按照EMI的物品顺序§9从左到右§r从第一行到第二行放置在§91-5片区§r,同时在第六片区放置§9研究数据集§r§r,任何错误的放置或者外部舱室的放置都会导致机器故障并在对应舱室显示故障", - "ctnh.multiblock.neuro_martix_compiler.tip.3": "必须保证所有神经矩阵研究舱室的等级不低于配方等级,否则配方不会运行", - "ctnh.multiblock.neuro_martix_compiler.tip.4": "————————机器总体机制————————", - "ctnh.multiblock.neuro_martix_compiler.tip.5": "每次检测到新的配方时,机器将§6完美诉诸于随机§r,生成函数F(x1,x2,x3)=§6y=ax1+bx2+cx3+d§r,其中,x1,x2,x3为期望的片区所消耗的物品数量,同时在给定范围内随机x1,x2,x3,获取答案y", - "ctnh.multiblock.neuro_martix_compiler.tip.6": "当配方执行时,在开始逻辑运算,1-5片区将各自运行5s,运行完毕时将消耗舱室内所有物品来取得函数", - "ctnh.multiblock.neuro_martix_compiler.tip.7": "在片区1-5执行完毕后,进行持续5s的总计算流程,在此过程中给出x1,x2,x3,计算得到计算值y,与真实比较,进行最终编译运算", - "ctnh.multiblock.neuro_martix_compiler.tip.8": "————————最终编译运算————————", - "ctnh.multiblock.neuro_martix_compiler.tip.9": "最终编译运算将比较真实y与结果y,如果结果y的值在真实值y的0.9-1.1倍内,则运算成功,将编译数据集变为配方输出", - "ctnh.multiblock.neuro_martix_compiler.tip.part1": "片区1-3:用于提供函数F(x)的真实x1,x2,x3", - "ctnh.multiblock.neuro_martix_compiler.tip.part2": "片区4:代表函数F(x)的常数量d,同时决定噪声ϵ", - "ctnh.multiblock.neuro_martix_compiler.tip.part3": "片区5:此片区用为神经编译提供电路板支持,决定噪声ϵ波动,如果提供电路板大于配方给定值则不造成噪声影响", - "ctnh.multiblock.neuro_martix_compiler.tip.part4": "片区6:收集最终编译结果的片区,在完成一次逻辑运算流程后,将根据结果对神经数据集进行修改", - "ctnh.multiblock.photovoltaic_power_station.info.1": "发电效率:%s%%", - "ctnh.multiblock.photovoltaic_power_station.info.2": "产能功率:%s/%s EU/t", - "ctnh.multiblock.photovoltaic_power_station.info.invalid": "有方块阻挡", - "ctnh.multiblock.photovoltaic_power_station.info.night": "光照过于微弱", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.0": "简易太阳能发电", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.1": "§e基础产能功率:§r512 EU/t", - "ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.2": "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.0": "高效太阳能发电", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.1": "§e基础产能功率:§r2048 EU/t", - "ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.2": "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.0": "究极太阳能发电", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.1": "§e基础产能功率:§r8192 EU/t", - "ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.2": "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率", - "ctnh.multiblock.plasma_alloy.tooltip.1": "§4转底炉的复仇", - "ctnh.multiblock.plasma_alloy.tooltip.10": "§c速度增幅超过5000%时,最终产物量将会在0%-50%中浮动!", - "ctnh.multiblock.plasma_alloy.tooltip.11": "允许使用§b激光仓§r,使用激光仓时最终速度将除以4,速度低于原速度时拒绝运行", - "ctnh.multiblock.plasma_alloy.tooltip.2": "线圈温度每有1800K,获得4点并行,线圈温度超过10000K时,获得(线圈温度-10000)/10000的额外加速", - "ctnh.multiblock.plasma_alloy.tooltip.3": "运行前消耗(并行数*对应等离子体消耗)的等离子体,获得额外加速", - "ctnh.multiblock.plasma_alloy.tooltip.4": "氦等离子体:消耗500*并行的等离子体,速度+100%", - "ctnh.multiblock.plasma_alloy.tooltip.5": "氧,氮等离子体:消耗300*并行的等离子体,速度+200%", - "ctnh.multiblock.plasma_alloy.tooltip.6": "镍,铁等离子体:消耗200*并行的等离子体,速度+300%", - "ctnh.multiblock.plasma_alloy.tooltip.7": "消耗特殊的冶炼等离子体可以获得额外的速度加成,§c但是同样会将增加你冶炼的风险", - "ctnh.multiblock.plasma_alloy.tooltip.8": "压缩精金等离子:消耗固定100等离子体,使速度*5,使消耗电压翻倍(§c这可能导致配方不运行,请使用多安能源仓)", - "ctnh.multiblock.plasma_alloy.tooltip.9": "精炼超能以太等离子体:消耗50*并行等离子体,使速度*10,§c使最终产物在80%-100%中浮动", - "ctnh.multiblock.plasma_condenser.tooltip.1": "氤氲之气,凝为霜露", - "ctnh.multiblock.pvdrone.info.t1": "提供的能量:%d", - "ctnh.multiblock.pvdrone.info.t2": "无人机消耗概率:%.4f", - "ctnh.multiblock.pvdrone.tooltip.0": "戴森云计划", - "ctnh.multiblock.pvdrone.tooltip.1": "允许使用并行控制仓,并行数为运行时间倍率", - "ctnh.multiblock.pvdrone.tooltip.2": "为光伏基站提供电力增幅,使用光伏绑定终端来为这两个结构绑定", - "ctnh.multiblock.pvdrone.tooltip.3": "将无人机放入无人机支架以开始发送无人机,每5秒和运行结束时,每个无人机都有一定概率消耗,无人机发电同样受维度和空间站增幅", - "ctnh.multiblock.pvdrone.tooltip.4": "无人机的消耗概率公式为1.0 / (1.0 + Math.exp(-0.25* (x - 9)))", - "ctnh.multiblock.pvdrone.tooltip.5": "使用无人机收集陨石时,产出的倍率公式为0.1*Math.sqrt(无人机电压之和),倍率小于1时无产出,无法超频", "ctnh.multiblock.quasar_eye.tooltip.0": "§9魔力§r的§c终极奥秘§r,足以制造§5类星体§r的装置掌握在§6你§r的手中", "ctnh.multiblock.quasar_eye.tooltip.1": "该机器启动需要§r初始魔力燃料消耗§R,查阅EMI以查找消耗量", "ctnh.multiblock.quasar_eye.tooltip.10": "在创生模式下释放所有积累的电量,使用高级燃料可以使输出获得倍乘。同时每积累1000E EU就额外产出一份气体产出,积累电量小于1E时无法启动创生模式", @@ -580,164 +361,28 @@ "ctnh.multiblock.quasar_eye.tooltip.7": "该机器拥有时间并行,消耗量和持续时间均会乘上并行数,且并行数为效率*5", "ctnh.multiblock.quasar_eye.tooltip.8": "该机器燃料消耗量为1-0.05*Math.max((rune_energy-50)/50,0.75)", "ctnh.multiblock.quasar_eye.tooltip.9": "在普通模式下发电时积将发电量的1%积累入类星体之眼之中,你每有25符文能量,就可以额外积累1%", - "ctnh.multiblock.sinope_chemical.info.level": "线圈加速倍率:%d", - "ctnh.multiblock.sinope_chemical.info.parallel": "并行数:%d", - "ctnh.multiblock.sinope_chemical.tooltip.0": "来自§b某个神秘东方大国§r的工业力量", - "ctnh.multiblock.sinope_chemical.tooltip.1": "格雷员工不骗格雷员工,并行是真实的", - "ctnh.multiblock.sinope_chemical.tooltip.2": "没有外壳等级要求,配方不需要催化剂", - "ctnh.multiblock.sinope_chemical.tooltip.3": "并行数与中心的方块有关", - "ctnh.multiblock.sinope_chemical.tooltip.4": "硅岩块:8并行", - "ctnh.multiblock.sinope_chemical.tooltip.5": "富集硅岩块:32并行", - "ctnh.multiblock.sinope_chemical.tooltip.6": "超能硅岩块:128并行", - "ctnh.multiblock.sinope_chemical.tooltip.7": "每一点实际的并行数减少0.5%的能耗和运行时间,至多减少25%(独立乘区)", - "ctnh.multiblock.sinope_chemical.tooltip.8": "线圈每提供1800K,运行速度+100%", - "ctnh.multiblock.sinope_chemical.tooltip.9": "§c任何虚假的并行都将绳之以法!§r", - "ctnh.multiblock.sintering_kiln.tooltip.0": "需要通入8192应力使其内部活塞压实待加工料", - "ctnh.multiblock.slaughter_house.info.mobcount": "怪物种类:%d (%s)", - "ctnh.multiblock.slaughter_house.tooltip.0": "无情的杀戮机器", - "ctnh.multiblock.slaughter_house.tooltip.1": "输入总线放入电动刷怪笼后,机器会自动输出对应怪物的战利品,可放入多个电动刷怪笼", - "ctnh.multiblock.slaughter_house.tooltip.2": "电压每升高1级,虚拟刷怪量会增加4(HV为4)", - "ctnh.multiblock.slaughter_house.tooltip.3": "怪物血量和护甲值越高,配方运行所需时间越长", - "ctnh.multiblock.slaughter_house.tooltip.4": "武器的伤害和附魔会减少配方运行的时间", - "ctnh.multiblock.slaughter_house.tooltip.5": "时运等附魔也能生效", - "ctnh.multiblock.spacephotovoltaicbasestation.tooltip.0": "§6光辉灿烂的太空之路", - "ctnh.multiblock.spacephotovoltaicbasestation.tooltip.2": "在太空发电模式下,星球类型和光伏方块的等级都会提升发电量,在空间站被视为无重力环境,且发电量*4,消耗特定材料以进一步提升发电量", - "ctnh.multiblock.spacephotovoltaicbasestation.tooltip.3": "在太空光伏组装模式下,不消耗EUt,发电量将锁定为1,根据配方的模拟F功率来计算速度和并行量", - "ctnh.multiblock.spacephotovoltaicbasestation.tooltip.4": "光伏等级,光照强度共同决定了是否可以执行太空组装配方,光伏方块耐热性和耐热结构方块决定了可以获得的光照最大倍率,太空结构方块决定了可以使用的光伏方块等级和是否可以使用附属结构", - "ctnh.multiblock.spacephotovoltaicbasestation.tooltip.5": "在太空光伏组装模式下,最终并行为(太空发电模式下发电量/模拟功率),最终时间倍率为(模拟功率/太空发电模式下发电量),当太空发电模式下发电量小于模拟功率时,最终时间倍率将变为平方", - "ctnh.multiblock.spacephotovoltaicbasestation.tooltip.ex": "§6该结构将持续拓展,这还不是它的完全体状态!", - "ctnh.multiblock.sweat_shop.info.basic_rate": "基础效率:x%s", - "ctnh.multiblock.sweat_shop.info.villager_count": "员工数量:%s", - "ctnh.multiblock.sweat_shop.tooltip.0": "生产资料与剩余价值", - "ctnh.multiblock.sweat_shop.tooltip.1": "工厂内的村民数量决定了工作效率,配方耗时x(2/村民数量)", - "ctnh.multiblock.sweat_shop.tooltip.2": "工厂内的有效员工数量受限于工厂大小,初始上限为4,工厂长度每增加4格上限+1", - "ctnh.multiblock.sweat_shop.tooltip.3": "放入的生产资料(机器)决定了可以工作的配方:\n动力辊压机----卷板机配方\n动力搅拌机----搅拌机配方\n车床----车床配方\n离心机----离心机配方\n烈焰人燃烧室----提取机配方\n工作盆----流体成型配方\n粉碎轮----研磨机配方\n动力锯----线材轧机配方\n激光加工器----激光蚀刻配方\n==============================", - "ctnh.multiblock.sweat_shop.tooltip.4": "放入的生产资料(机器)数量决定了对应工作配方的并行数:并行数 = sqrt(机器数)", - "ctnh.multiblock.sweat_shop.tooltip.5": "放入机械手可以提高整体配方运行速度,配方耗时x (1/1 + 0.25 * sqrt(机械手数))", - "ctnh.multiblock.sweat_shop.tooltip.6": "放入机器的多样性会提高配方运行速度", - "ctnh.multiblock.sweat_shop.tooltip.7": "基础配方耗时为2倍,配方所需的电压等级越高,基础耗时x(配方等级的平方)", - "ctnh.multiblock.sweat_shop.tooltip.8": "每5秒机器会消耗(员工数量)份简易营养餐", - "ctnh.multiblock.underfloor_heating_system.info.efficiency": "效率:%d", - "ctnh.multiblock.underfloor_heating_system.info.rate": "速率:%s", - "ctnh.multiblock.underfloor_heating_system.info.rate.tooltip": "减少蒸汽的消耗来降低地暖的发热功率", - "ctnh.multiblock.underfloor_heating_system.info.rate_modify": "调节速率:", - "ctnh.multiblock.underfloor_heating_system.info.steam_consumption": "蒸汽消耗速率:%d", - "ctnh.multiblock.underfloor_heating_system.tooltip.0": "用蒸汽温暖你的心", - "ctnh.multiblock.underfloor_heating_system.tooltip.1": "地暖系统依靠蒸汽供暖,占地一个区块,能对§a周围5*5的区块§r产生供暖,供暖只会在地暖上方十格内生效", - "ctnh.multiblock.underfloor_heating_system.tooltip.2": "铜砖瓦会生锈,生锈后地暖系统的供暖能力会减弱", - "ctnh.multiblock.underfloor_heating_system.tooltip.3": "可以调节速率,以降低供暖功率并减少蒸汽消耗,最低降至25%", - "ctnh.multiblock.vacuum_sintering_tower.tooltip.0": "真空烧结", - "ctnh.multiblock.void_miner.info.cryotheum": "极寒之凛冰消耗:%d ", - "ctnh.multiblock.void_miner.info.overheat": "过热!!!", - "ctnh.multiblock.void_miner.info.pyrotheum": "烈焰之炽焱消耗:%d ", - "ctnh.multiblock.void_miner.tooltip.0": "取天材,掘地精", - "ctnh.multiblock.void_miner.tooltip.1": "虚空采矿场自动生成并提取矿石", - "ctnh.multiblock.void_miner.tooltip.2": "如果你对矿物需求极大,虚空采矿机是必不可少的帮手", - "ctnh.multiblock.void_miner.tooltip.3": "每次工作消耗100,000B钻井液,升降温度时消耗极寒之凛冰和烈焰之炽焱", - "ctnh.multiblock.void_miner.tooltip.4": "在奇数次运行前,机器会试图消耗烈焰之炽焱来升温。初始烈焰之炽焱消耗量为1000mb,若成功消耗,则温度将会增加 ⌊(消耗量 ÷ 100)⌋,接着消耗量将会自乘以 1.02", - "ctnh.multiblock.void_miner.tooltip.5": "在偶数次运行前,机器会试图消耗极寒之凛冰来降温。初始极寒之凛冰消耗量为1000mb,若成功消耗,则温度将会降低 ⌊(消耗量 ÷ 100)⌋,接着消耗量将会自乘以 1.02", - "ctnh.multiblock.void_miner.tooltip.6": "温度越高,虚空采矿场的产出倍率越高", - "ctnh.multiblock.void_miner.tooltip.7": "当温度达到25000K时,虚空采矿机将进入强制降温模式,直至温度降至0K时,恢复正常工作模式", - "ctnh.multiblock.void_miner.tooltip.8": "请交替输入烈焰之炽焱和极寒之凛冰来控制温度", "ctnh.multiblock.water_power_station.info.0": "水量:%d", "ctnh.multiblock.water_power_station.info.1": "线圈效率:%d%%", "ctnh.multiblock.water_power_station.info.2": "产能功率:%d/%d EU/t", "ctnh.multiblock.water_power_station.tooltip.0": "环保能源!", "ctnh.multiblock.water_power_station.tooltip.1": "发电量和以控制器为中心,机器长度为半径,高为4的范围内的水量成正比", "ctnh.multiblock.water_power_station.tooltip.2": "发电量随机在0.6至1的倍率间波动", - "ctnh.multiblock.wide_accelerator.gui.electric": "电子轨道", - "ctnh.multiblock.wide_accelerator.gui.name": "访问轨道", - "ctnh.multiblock.wide_accelerator.gui.nu": "中子轨道", - "ctnh.multiblock.wide_accelerator.gui.proton": "原子轨道", - "ctnh.multiblock.wide_accelerator.info.consume": "电量消耗倍率:%.2f", - "ctnh.multiblock.wide_accelerator.info.electric_speed": "电子速度:%.2fMev", - "ctnh.multiblock.wide_accelerator.info.nu_speed": "中子速度:%.2fMev", - "ctnh.multiblock.wide_accelerator.info.power": "存储的电量:%.2f E/%.2f E", - "ctnh.multiblock.wide_accelerator.info.proton_speed": "质子速度:%.2fMev", - "ctnh.multiblock.wide_accelerator.tooltip.0": "粒子加速集成者", - "ctnh.multiblock.wide_accelerator.tooltip.1": "允许§9使用激光仓§r和§a变电仓§r", - "ctnh.multiblock.wide_accelerator.tooltip.10": "注意:本机器用电量极高,且暂时无法做到只能计算正确并行,使用低电压可能导致§c配方无法运行§r或者§c跳电§r,建议搭配§9激光仓§r使用,如遇配方不工作,请报告给作者", - "ctnh.multiblock.wide_accelerator.tooltip.11": "可以与约束器链接传递部分粒子。§c警告:如果没有链接约束器,不要随意尝试某些危险的配方§r (目前还是饼)", - "ctnh.multiblock.wide_accelerator.tooltip.2": "通过三个轨道加速三种粒子", - "ctnh.multiblock.wide_accelerator.tooltip.3": "本机器只要求粒子速度大于配方需求,不满足需求无法运行。粒子速度不会超过50Gev,这台机器非常安全,不会引发爆炸。", - "ctnh.multiblock.wide_accelerator.tooltip.4": "允许使用§b并行控制仓§r,不适用并行控制仓则使用默认值", - "ctnh.multiblock.wide_accelerator.tooltip.5": "在运行一般配方时如无§b并行控制仓§r,默认使用16并行", - "ctnh.multiblock.wide_accelerator.tooltip.6": "如果粒子速度过慢,则什么都不会产生", - "ctnh.multiblock.wide_accelerator.tooltip.7": "本机器可以存储至多50E EU能量,存储的能量可以在加速界面调整三种粒子速度,每调整1M ev粒子速度需要消耗10M EU存储的能量,按住shift时可以一次性更改10M ev粒子速度,按住ctrl时可以一次性更改100M ev粒子速度", - "ctnh.multiblock.wide_accelerator.tooltip.8": "三种粒子轨道速度之和每有1M ev,每tick便消耗机器存储的100EU能量,电量不足时,每tick粒子速度会衰减10%", - "ctnh.multiblock.wide_accelerator.tooltip.9": "机器没有运行时,默认使用存储能源舱室的所有能源为机器充能。机器运行时仍然使用能源仓的能量。但在机器运行时除非机器存储电量不够,否则能源仓不会为机器充能", - "ctnh.multiblock.wind_array.tooltip0": "§7§o风力狼群:真正的自然之力", - "ctnh.multiblock.wind_array.tooltip1": "§8---------------§a基础数据§8-----------------", - "ctnh.multiblock.wind_array.tooltip10": "§f润滑油会从风力网络中抽取.", - "ctnh.multiblock.wind_array.tooltip11": "§5顺应风力网络的工作规律,以抵挡自然之力的摧残", - "ctnh.multiblock.wind_array.tooltip2": "§f- 基础发电功率: §e%d EU/t §7(地球)", - "ctnh.multiblock.wind_array.tooltip3": "§f- 天气风力增益: §e雨天x2,雷雨x4", - "ctnh.multiblock.wind_array.tooltip4": "§f- 高度增益: §e Clamp(Y-64, 0, 256-64) / (256-64)", - "ctnh.multiblock.wind_array.tooltip5": "§f- 网络增益: §e 0.3*[log2(网络大小)]", - "ctnh.multiblock.wind_array.tooltip6": "§f增益乘算得到发电效率", - "ctnh.multiblock.wind_array.tooltip7": "§f需要§e%d mB/s§f 润滑油以维护机器运行", - "ctnh.multiblock.wind_array.tooltip8": "§8---------------§a风力网络§8-----------------", - "ctnh.multiblock.wind_array.tooltip9": "§f所有结构对齐且间距<=1的风力发电机阵列会组成风力网络", "ctnh.multiblock.zenith_machine.info.max_parallel": "最大并行数:%d", "ctnh.multiblock.zenith_machine.info.now_parallel": "当前并行数:%d", - "ctnh.mutliblock.wind_power_array.info.network_dirty": "网络将在%d秒后重建", - "ctnh.mutliblock.wind_power_array.info.network_machine": "发电网络机器数:%d", - "ctnh.mutliblock.wind_power_array.info.network_machine_efficiency": "发电效率:%d", - "ctnh.neuro_matrix_compiler.info.part_states": "片区%d状态:%s", - "ctnh.neuro_matrix_compiler.info.state.error": "§c错误,类型:%s", - "ctnh.neuro_matrix_compiler.info.state.finish": "§a完成", - "ctnh.neuro_matrix_compiler.info.state.idle": "§6待机", - "ctnh.neuro_matrix_compiler.info.state.waiting": "§b等待中......", - "ctnh.neuro_matrix_compiler.info.state.working": "§9运行中:%ss/%ss", - "ctnh.no_energy_waring": "§c警告:供电不足,约束场即将失效!", "ctnh.nuclear_reactor.basic": "这是一个耗能设备,但是会产生大量的热量,可以转化用以发电", "ctnh.nuclear_reactor.coolant": "冷却液可以使用蒸汽(150°C),氘(450°C),钠(800°C),钠钾合金(900°C),反应的堆温越高,消耗冷却液的速度越快,冷却液的热容越大,消耗速度越慢", "ctnh.nuclear_reactor.overclock": "冷却液并非运行所必须,但是在有冷却液时,配方每运行一秒,进度会增加两秒", "ctnh.nuclear_reactor.safe": "反应堆不会过热爆炸", "ctnh.plasma_alloy.tooltip.recipe": "配方类型:合金冶炼炉", - "ctnh.platinum_metal_catalyst_shard1": "久远的时间使他们变成了水里的宝藏,通过钓鱼获得", - "ctnh.platinum_metal_catalyst_shard2": "深渊里的深潜一组掌握这个技术,尝试与他们交易吧", - "ctnh.psionic_medulla": "通过血魔法邪恶的生灵萃取仪式萃取艾尔夫海姆精灵获取", - "ctnh.recipe.accelerator.mode.element": "模式:加速电子", - "ctnh.recipe.accelerator.mode.element.consume": "加速类型:电子", - "ctnh.recipe.accelerator.mode.nu": "模式:加速中子", - "ctnh.recipe.accelerator.mode.nu.consume": "加速类型:中子", - "ctnh.recipe.accelerator.mode.proton": "模式:加速质子", - "ctnh.recipe.accelerator.mode.proton.consume": "加速类型:质子", - "ctnh.recipe.accelerator.mode.speed.g": "需求速度:%.2fGev", - "ctnh.recipe.accelerator.mode.speed.m": "需求速度:%.2fMev", - "ctnh.recipe.arc_generator.max_require": "满功率需求电弧强度:%d", - "ctnh.recipe.arc_generator.require": "需求电弧强度:%d", "ctnh.recipe.hellforge.info.drain": "消耗:%s意志", "ctnh.recipe.hellforge.info.minimum_drain": "最少:%s意志", - "ctnh.recipe.industrial_altar.info.0": "消耗/输入的lp量:%.1f", "ctnh.recipe.quasar_eye.info.0": "启动消耗:%.1f", "ctnh.recipe.quasar_eye.info.1": "能量等级: %d", "ctnh.recipe.quasar_eye.info.2": "启动等级: %d", "ctnh.recipe_type.info": "配方类型:%s", "ctnh.recipe_type.list": "%s, %s", - "ctnh.restore_danger": "约束危险物质", - "ctnh.simple_nutritious_meal.tooltip.1": "能维持机体基本的生理功能", - "ctnh.spacephotovoltaicbasestation.info.pvc_tier.0": "当前光伏方块等级:%d", - "ctnh.spacephotovoltaicbasestation.info.pvc_tier.1": "当前结构耐热等级:%d", - "ctnh.spacephotovoltaicbasestation.info.pvc_tier.2": "当前结构发电量:%.2f", - "ctnh.spacephotovoltaicbasestation.info.pvc_tier.3": "当前维度光倍率:%d", - "ctnh.spacephotovoltaicbasestation.jei.error.pv_block": "§c必须使用同种光伏方块", - "ctnh.spacephotovoltaicbasestation.recipe.eut_model": "模拟电压消耗: %d EUt", - "ctnh.spacephotovoltaicbasestation.recipe.pvc_tier": "需求光伏方块等级: %d", - "ctnh.stone_process_catalyst": "村庄里的石匠掌握这个古老的技术,成为村庄英雄后他就会传授给你", - "ctnh.super_centrifuge.parallel": "普通离心机模式下会获得8并行", "ctnh.test_terminal.error_info": "(%s)", - "ctnh.test_terminal.lack_error": "在%s处缺少", - "ctnh.test_terminal.position": "(%s,%s,%s)", - "ctnh.test_terminal.success": "一切正常!", - "ctnh.test_terminal.wrong_error": "在%s处应为", - "ctnh.testing_terminal.tooltip.1": "用于检测多方块搭建时产生的错误", - "ctnh.testing_terminal.tooltip.2": "右键多方块的主方块以显示错误信息", - "ctnh.testing_terminal.tooltip.3": "按住Shift右键切换普通/翻转模式", - "ctnh.tooltips.simplecomputationmachine": "注意:部分配方需要算力执行", "ctnh.trap_electric": "当前存储电量:%deu", - "ctnh.trap_electric_max": "允许存储电量上限:%deu", "ctnh.u_sinope.1": "配方类型:蒸馏塔/蒸馏室/裂化机/流体加热机/流体固化机/真空石化处理/???", "ctnh.u_sinope.2": "§c它那究极的结构已然无法让你的EMI承受,你需要寻求蓝图的帮忙,同时在修改结构时最好直接破坏主方块以避免检测卡死游戏", "ctnh.u_sinope.3": "巨型的结构只能在真空建立,否则巨大的结构将会使周围坍缩(效率减少99.99%)", @@ -751,10 +396,18 @@ "ctnh.u_sinope.story.3": "你已无法再知晓那场战争的双方是否已经相互毁灭,但你直到,这座巨型结构将宣告着人类的复兴", "ctnhcore.accelerator_upmode": "粒子加速", "ctnhcore.arc_generator": "物质撕裂湮灭", + "ctnhcore.arc_generator.arcgeneratorinfo0": "电弧最大强度:%d", + "ctnhcore.arc_generator.arcgeneratorinfo1": "电弧强度:%d", + "ctnhcore.arc_generator.arcgeneratorinfo2": "支持最大效率:%.2f%%", + "ctnhcore.arc_generator.arcgeneratorinfo3": "当前效率:%.2f%%", "ctnhcore.arc_reactor": "电弧发生", + "ctnhcore.arc_reactor.arcreactorarc": "可输出的电弧强度:%d", + "ctnhcore.arc_reactor.arcreactorconnect": "§b桥接已启用§r", "ctnhcore.astronomical_observatory": "天文台", + "ctnhcore.astronomicalmachine.astronomicalinfoinvalid": "只能在夜晚使用", "ctnhcore.bedrock_drilling_rigs": "基岩钻机", "ctnhcore.bio_reactor": "生物反应", + "ctnhcore.blazeblastfurnacemachine.blazeblastfurnaceinfopyrotheum": "烈焰之炽焱:%d mB", "ctnhcore.blazeblastfurnacemachine.insufficient_pyrotheum": "烈焰之炽焱不足", "ctnhcore.chemical_generator": "化学能发电", "ctnhcore.chemical_plant": "化工厂", @@ -763,11 +416,45 @@ "ctnhcore.compiler_recipe": "神经矩阵编译", "ctnhcore.component_assembly_line": "部件装配", "ctnhcore.condensing_discrete": "冷凝离散", + "ctnhcore.connectterminalitem.itemterminallocation": "已经绑定的坐标:(%s,%s,%s)", + "ctnhcore.connectterminalitem.itemterminalsuccessclear": "已清除坐标!", + "ctnhcore.connectterminalitem.itemterminalsuccessget": "已经获取坐标!", + "ctnhcore.connectterminalitem.itemterminalsuccesswrite": "已成功写入坐标!", + "ctnhcore.connectterminalitem.itemterminaltips": "使用右键绑定光伏模块控制器,然后再右键将控制器和光伏基站绑定\nshift+右键任意方块清除坐标", "ctnhcore.copyright.info": "§6由CTNH添加", + "ctnhcore.cryotheumfreezer.cryotheumfreezerui0": "当前泪之晶点数:%d", + "ctnhcore.cryotheumfreezer.cryotheumfreezerui5": "§b当前消耗的凛冰:%d / %d", "ctnhcore.cryotheumfreezer.insufficient_cryotheum": "极寒之凛冰不足", "ctnhcore.crystallizer": "结晶反应", "ctnhcore.ct_assembly_line": "机械装配线", "ctnhcore.ct_assembly_line_maker": "机械部件装配线", + "ctnhcore.ctnhcommontooltips.commontooltipparallelhatch": "·允许使用并行控制仓", + "ctnhcore.ctnhcommontooltips.commontooltipperfectoverclock": "无损超频!", + "ctnhcore.ctnhcommontooltips.commontooltipsteelmachine0": "只能使用HV级能源仓及以下等级", + "ctnhcore.ctnhcommontooltips.commontooltipsubtickoverclock": "当配方运行时间小于1t时,会自动计算并行", + "ctnhcore.ctnhcommontooltips.gtceumultiblocklasertooltip": "允许使用激光仓", + "ctnhcore.ctnhcommontooltips.gtceurecipemodifierdefaultfail": "配方修改失败", + "ctnhcore.ctnhcoreemiplugin.bauxiteprocesscatalyst": "村庄里的图书管理员掌握这个古老的技术,成为村庄英雄后他就会传授给你", + "ctnhcore.ctnhcoreemiplugin.bloodmagicgregtechhv": "在坠星位标仪式中使用此物品作为祭品可以召唤陨石", + "ctnhcore.ctnhcoreemiplugin.doubt": "通过击杀浸泡在生命源质的生物,将其困扰注入生命源质之中获得", + "ctnhcore.ctnhcoreemiplugin.metallurgicalcatalyst": "地狱的猪灵掌握这个技术,尝试与他们交易吧", + "ctnhcore.ctnhcoreemiplugin.platinummetalcatalystshard1": "久远的时间使他们变成了水里的宝藏,通过钓鱼获得", + "ctnhcore.ctnhcoreemiplugin.platinummetalcatalystshard2": "深渊里的深潜一组掌握这个技术,尝试与他们交易吧", + "ctnhcore.ctnhcoreemiplugin.psionicmedulla": "通过血魔法邪恶的生灵萃取仪式萃取艾尔夫海姆精灵获取", + "ctnhcore.ctnhcoreemiplugin.stoneprocesscatalyst": "村庄里的石匠掌握这个古老的技术,成为村庄英雄后他就会传授给你", + "ctnhcore.ctnhcreativemodetabs.itemgroupblock": "CTNH方块", + "ctnhcore.ctnhcreativemodetabs.itemgroupitem": "CTNH物品", + "ctnhcore.ctnhcreativemodetabs.itemgroupmachine": "CTNH机器", + "ctnhcore.ctnhdimensionmarkers.dimensionadastraglacio": "霜原星", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramars": "火星", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramercury": "水星", + "ctnhcore.ctnhdimensionmarkers.dimensionadastramoon": "月球", + "ctnhcore.ctnhdimensionmarkers.dimensionadastravenus": "金星", + "ctnhcore.ctnhdimensionmarkers.dimensionadextendrajupiter": "木星", + "ctnhcore.ctnhdimensionmarkers.dimensionaethertheaether": "天境", + "ctnhcore.ctnhdimensionmarkers.dimensiontwilightforesttwilightforest": "暮色森林", + "ctnhcore.ctnhitems.advancedramchiptooltip.tooltip": "更好的随机存取存储器", + "ctnhcore.ctnhitems.advancedramwafertooltip.tooltip": "更好的内存原料", "ctnhcore.ctnhitems.chip_t1.tooltip": "§7用于制作1阶火箭", "ctnhcore.ctnhitems.chip_t2.tooltip": "§7用于制作2阶火箭", "ctnhcore.ctnhitems.chip_t3.tooltip": "§7用于制作3阶火箭", @@ -780,7 +467,35 @@ "ctnhcore.ctnhitems.heavy_plate_t2.tooltip": "§72阶", "ctnhcore.ctnhitems.heavy_plate_t3.tooltip": "§73阶", "ctnhcore.ctnhitems.heavy_plate_t4.tooltip": "§74阶", + "ctnhcore.ctnhitems.itemecologicalstardesc.tooltip": "蕴含生态圈的所有精华", + "ctnhcore.ctnhitems.itemnuclearreactorheat.tooltip": "基础堆温:%d°C", + "ctnhcore.ctnhitems.itemsculkcelldesc.tooltip": "分化....", + "ctnhcore.ctnhitems.meadvancedterminaltooltip1.tooltip": "§l格雷科技-多方块结构终端-异步成型模式", + "ctnhcore.ctnhitems.meadvancedterminaltooltip2.tooltip": "复刻了曾经的旗舰款,终端屏幕上闪烁着久违的画面", "ctnhcore.ctnhitems.radioactive_waste.tooltip": "§7中子活化器在速度不达标时运行配方会产生废料", + "ctnhcore.ctnhitems.simplenutritiousmealtooltip1.tooltip": "能维持机体基本的生理功能", + "ctnhcore.ctnhitems.testingterminaltooltip1.tooltip": "用于检测多方块搭建时产生的错误", + "ctnhcore.ctnhitems.testingterminaltooltip2.tooltip": "右键多方块的主方块以显示错误信息", + "ctnhcore.ctnhitems.testingterminaltooltip3.tooltip": "按住Shift右键切换普通/翻转模式", + "ctnhcore.ctnhmachineutils.tooltipssimplecomputationmachine": "注意:部分配方需要算力执行", + "ctnhcore.ctnhpredicates.spacephotovoltaicbasestationjeierrorpvblock": "§c必须使用同种光伏方块", + "ctnhcore.ctnhrecipemodifiers.gtceurecipemodifiercoiltemperaturetoolow": "线圈温度过低!", + "ctnhcore.ctnhrecipemodifiers.gtceurecipemodifierinsufficientvoltage": "电压等级过低!", + "ctnhcore.ctnhrecipetypes.accdanger": "§c危险粒子实验", + "ctnhcore.ctnhrecipetypes.ctnhsrcsacrifice": "牺牲者: %s", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeelement": "模式:加速电子", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeelementconsume": "加速类型:电子", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodenu": "模式:加速中子", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodenuconsume": "加速类型:中子", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeproton": "模式:加速质子", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodeprotonconsume": "加速类型:质子", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodespeedg": "需求速度:%.2fGev", + "ctnhcore.ctnhrecipetypes.recipeacceleratormodespeedm": "需求速度:%.2fMev", + "ctnhcore.ctnhrecipetypes.recipearcgeneratormaxrequire": "满功率需求电弧强度:%d", + "ctnhcore.ctnhrecipetypes.recipearcgeneratorrequire": "需求电弧强度:%d", + "ctnhcore.ctnhrecipetypes.recipeindustrialaltarinfo0": "消耗/输入的lp量:%.1f", + "ctnhcore.ctnhrecipetypes.spacephotovoltaicbasestationrecipeeutmodel": "模拟电压消耗: %d EUt", + "ctnhcore.ctnhrecipetypes.spacephotovoltaicbasestationrecipepvctier": "需求光伏方块等级: %d", "ctnhcore.cultivation_room": "培养", "ctnhcore.decay_pools": "衰变罐", "ctnhcore.dehydrator": "脱水", @@ -792,42 +507,307 @@ "ctnhcore.factorymachine.no_meal": "员工饥肠辘辘!", "ctnhcore.factorymachine.no_suitable_machine": "缺少所需的生产资料", "ctnhcore.factorymachine.no_villager": "没有员工", + "ctnhcore.factorymachine.sweatshopinfobasicrate": "基础效率:x%s", + "ctnhcore.factorymachine.sweatshopinfovillagercount": "员工数量:%s", "ctnhcore.fermenting": "发酵罐", + "ctnhcore.forestmachine.forestmachineinfohumidity": "湿度值:%d", + "ctnhcore.forestmachine.forestmachineinfoparallelcount": "并行数:%d", "ctnhcore.fuel_refining": "燃料精炼", "ctnhcore.gas_centrifuge": "气体离心", "ctnhcore.greenhouse": "温室", "ctnhcore.homemade_bedrock_ore_machine": "", "ctnhcore.hot_coolant_turbine": "热冷却涡轮", + "ctnhcore.hyperplasmaturbineregister.hyperplasmaturbinetooltip0": "§a精密计算§f与§e等离子体§f的§5终极艺术", + "ctnhcore.hyperplasmaturbineregister.hyperplasmaturbinetooltip1": "提供%d算力以达到基础功率,每提供%d算力,输出功率翻一倍", + "ctnhcore.idataitem.datanoise": "当前噪声值:%s", + "ctnhcore.idataitem.itemdatatip1": "当前公式: a%s+b%s+c%s+d", + "ctnhcore.idataitem.itemdatatip2": "获取的倍率: %s", + "ctnhcore.idroneitem.itemdronedurability": "无人机最大耐久:%d", + "ctnhcore.idroneitem.itemdroneeut": "单个无人机产生的电压: %dEU/t", + "ctnhcore.idroneitem.itemdronetier": "无人机等级:%d", "ctnhcore.industrial_altar": "§4工业血之祭坛§r", + "ctnhcore.industrialprimitiveblastfurnacemachine.industrialprimitiveblastfurnaceinfoparallelcount": "并行数:%d", "ctnhcore.ion_exchanger": "离子交换", "ctnhcore.large_naquadah_reactor": "大型硅岩反应", "ctnhcore.largenaquadahreactormachine.power": "发电倍率: %s", "ctnhcore.laser_sorter_recipe": "激光分配", - "ctnhcore.machine.digital_miner.tooltip.0": "§7来自GTMThings的挖矿黑科技,速度更快且无采矿管道,仅挖取矿石", - "ctnhcore.machine.digital_miner.tooltip.1": "§b工作时自带自身区块强加载", - "ctnhcore.machine.digital_miner.tooltip.2": "工作时消耗§f%d EU/t§7,每个方块需要§f%d§7刻", - "ctnhcore.machine.oxygen_enricher.no_input": "氧气供应不足", - "ctnhcore.machine.oxygen_enricher.tooltip.0": "消耗氧气流体以维持密闭空间内的可呼吸环境", - "ctnhcore.machine.oxygen_enricher.tooltip.1": "可为半径 %s 格的密闭空间供氧", - "ctnhcore.machine.oxygen_required": "此机器需要在可供氧环境中运行", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui1": "当前冷冻机加速:%.2f / %.2f", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui2": "打开升级面板", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui3": "当前能量利用效率:%.2f / %.2f", + "ctnhcore.machinemodefancyconfiguratortest.cryotheumfreezerui4": "当前并行:%d / %d", "ctnhcore.magic_fuel_generator": "魔力燃料精炼", "ctnhcore.martial_morality_eye": "武德之眼", "ctnhcore.meadow": "牧场养殖", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting1": "线圈等级", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting10": "工业血之祭坛结构等级", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting10tooltip": "仅对工业血之祭坛自动成型生效\n设置要构建的工业血之祭坛等级(0-4)\n0 对应二阶,4 对应六阶", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting1tooltip": "设置自动放置的线圈等级(0:不指定等级)\n设置后会忽略结构本身的要求", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting2": "重复结构次数", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting2tooltip": "设置可重复结构(蒸馏塔、装配线等)的重复部分放置次数\n对超净间无效", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting3": "无仓室模式", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting3tooltip": "是否启用无仓室模式(0:不启用,1:启用)\n启用无仓室模式后不会放置任何仓室", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting4": "线圈替换模式", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting4tooltip": "是否启用线圈替换模式(0:不启用,1:启用)\n启用线圈替换模式会将所有线圈替换为指定等级的线圈\n请确保物品栏中有空间存放替换下来的线圈", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting5": "使用AE存储", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting5tooltip": "是否启用AE库存(0:不启用,1:启用)\n启用后将优先在AE库存中检索\n通过ME无线访问点链接到网络", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting6": "放置流体", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting6tooltip": "是否启用流体放置(0:不启用,1:启用)\n启用后将检索并消耗物品栏/背包流体容器中的或AE库存中的流体\n可堆叠的流体容器须保证堆叠数为1", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting7": "在流体中放置", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsetting7tooltip": "是否在流体中放置方块(0:不启用,1:启用)\n启用后会将空间中的流体视为空位\n与“放置流体”同时启用时,不会在流体中放置流体", + "ctnhcore.meadvancedterminalbehavior.itemmeadvancedterminalsettingtitle": "多方块结构成型配置", + "ctnhcore.mechanical.mechanicallathestructure": "结构中的车床必须严格依照EMI结构信息页面展示的位置和方向摆放", + "ctnhcore.mechanical.mechanicallathestructure1": "§7EMI中显示的车床数量有问题,实际只需要6个", "ctnhcore.mechanical_centrifuge_recipes": "机械离心", "ctnhcore.mechanical_lathe_recipes": "机械车床", "ctnhcore.mechanical_mixer_recipes": "机械搅拌", "ctnhcore.mechanical_pressor_recipes": "机械辊压", "ctnhcore.mechanical_sifter_recipes": "机械筛选", + "ctnhcore.multiblocksa.advancedcokeoventooltip0": "高级焦炉", + "ctnhcore.multiblocksa.advancedcokeoventooltip1": "§6§l自带32并行", + "ctnhcore.multiblocksa.advancedcokeoventooltip2": "只可运行焦炉配方,且运行配方时间固定为15s", + "ctnhcore.multiblocksa.advancedcokeoventooltip3": "产生大量的焦化产物与杂酚油", + "ctnhcore.multiblocksa.advancedcokeoventooltip4": "§c§l不能使用焦炉仓", + "ctnhcore.multiblocksa.astronomicaltooltip0": "知天易,逆天难", + "ctnhcore.multiblocksa.astronomicaltooltip1": "无法在阳光直射下工作,工作时会自动为芯片总线中的芯片收集数据", + "ctnhcore.multiblocksa.bioreactortooltip0": "一个大罐子", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip0": "比电力高炉快", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip1": "每秒基础消耗§a10mB§r烈焰之炽焱,电压每超过§6HV§r一级,消耗量变为原来的两倍", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip2": "运行耗能x0.75", + "ctnhcore.multiblocksa.blazeblastfurnacetooltip3": "允许一次性处理8个配方", + "ctnhcore.multiblocksa.coketowertooltip0": "拥有强大的焦化产能来支撑你的木化产线!", + "ctnhcore.multiblocksa.coketowertooltip1": "有着如同工业熔炉一般的速度", + "ctnhcore.multiblocksa.crystallizertooltip0": "专业结晶", + "ctnhcore.multiblocksa.crystallizertooltip1": "结晶器能更加快速的完成晶体配方", + "ctnhcore.multiblocksa.crystallizertooltip2": "随着线圈等级上升,工作效率逐级提升", + "ctnhcore.multiblocksa.crystallizertooltip3": "可以运行部分化学气相沉积的配方和部分高压釜的配方", + "ctnhcore.multiblocksa.crystallizertooltip4": "省材料的最佳帮手", + "ctnhcore.multiblocksa.decaypoolstooltip0": "衰变", + "ctnhcore.multiblocksa.decaypoolstooltip1": "当电路板为0时为不通电状态---不启用世界加速", + "ctnhcore.multiblocksa.decaypoolstooltip2": "当电路板为1时为通电状态---启用世界加速", + "ctnhcore.multiblocksa.decaypoolstooltip3": "加速衰变过程", + "ctnhcore.multiblocksa.desaltingfactorytooltip0": "从海水中烘干出盐,很环保不是吗?", + "ctnhcore.multiblocksa.digestiontanktooltip0": "其实产生的是很有价值的原料......", + "ctnhcore.multiblocksa.digestiontanktooltip1": "化粪池堆肥机制:", + "ctnhcore.multiblocksa.digestiontanktooltip2": "当化粪池温度处于§236§r至§238§r度之间时为最适生长温度,配方获得1.2倍效率,越偏离最适生长温度,配方效率越低,最低为三分之一", + "ctnhcore.multiblocksa.fermentingtanktooltip0": "一个专为微生物提供的生长罐,注意时刻关注他!", + "ctnhcore.multiblocksa.fermentingtanktooltip1": "发酵罐的生物生长机制:", + "ctnhcore.multiblocksa.fermentingtanktooltip2": "当发酵罐温度处于§236§r至§238§r度之间时为最适生长温度,配方获得1.2倍效率,越偏离最适生长温度,配方效率越低,最低为三分之一", + "ctnhcore.multiblocksa.fermentingtanktooltip3": "微生物的生长符合逻辑斯蒂方程,当输入仓内液体体积为容量的一半时,§2生长效率达到两倍§r,而满仓和空仓时生长效率最低,保底为20%", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip0": "更强大的土高炉,你的炼钢好帮手", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip1": "工业土高炉在持续运行配方时,会不断升温,而一旦中止,则会迅速冷却", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip2": "温度越高,工业土高炉的并行数越高,最高为8并行", + "ctnhcore.multiblocksa.industrialprimitiveblastfurnacetooltip3": "温度越高,工业土高炉的效率越高,最高为两倍效率", + "ctnhcore.multiblocksa.ionexchangertooltip0": "离子交换", + "ctnhcore.multiblocksa.largebottletooltip0": "真是一个大罐子", + "ctnhcore.multiblocksa.largebottletooltip1": "可以存储10000桶液体", + "ctnhcore.multiblocksa.largebottletooltip2": "与大型发酵罐一起使用时,其中的液体会以§e100mb/s§r的速度消耗", + "ctnhcore.multiblocksa.largefermentingtanktooltip0": "高效工业化发酵生产", + "ctnhcore.multiblocksa.largefermentingtanktooltip1": "可接入附属结构,在对应位置连接上一个大发酵瓶后,可以根据发酵瓶中的液体种类提升保底效率:水(50%),简易培养基(150%),无菌培养基(200%)", + "ctnhcore.multiblocksa.largegascollectionchambertooltip0": "全维度集气", + "ctnhcore.multiblocksa.largegascollectionchambertooltip1": "这台机器可以收集任意维度的气体", + "ctnhcore.multiblocksa.largegascollectionchambertooltip2": "由于它的产量较大,建议你用ME输出总成来收集产物", + "ctnhcore.multiblocksa.largesteelalloyfurnacetooltip0": "钢质合金炉", + "ctnhcore.multiblocksa.largesteelfurnacetooltip0": "钢质熔炉", + "ctnhcore.multiblocksa.martialmoralityeyetooltip0": "丐版鸿蒙之眼", + "ctnhcore.multiblocksa.martialmoralityeyetooltip1": "原始时代时消耗64000mb的蒸汽和64个原石", + "ctnhcore.multiblocksa.martialmoralityeyetooltip2": "产出主世界和暮色森林以及月球的矿", + "ctnhcore.multiblocksa.martialmoralityeyetooltip3": "随着电压等级提高能够解锁更多配方", + "ctnhcore.multiblocksa.martialmoralityeyetooltip4": "在前期比坠星好用", + "ctnhcore.multiblocksa.martialmoralityeyetooltip5": "结构中心似乎存在着神秘力量,充满危险的气息,请远离!", + "ctnhcore.multiblocksa.martialmoralityeyetooltip6": "结构来源:Twist Space Technology", + "ctnhcore.multiblocksa.meadowtooltip0": "§7自动化放牧", + "ctnhcore.multiblocksa.meadowtooltip1": "输入配方所需n倍应力时,获得n并行", + "ctnhcore.multiblocksa.meadowtooltip2": "可以同时养殖不同动物", + "ctnhcore.multiblocksa.meadowtooltip3": "§7只有动物跑出去时,你才知道你不是在种菜!", + "ctnhcore.multiblocksa.megalcrtooltip0": "§b具有4个异步线程§r", + "ctnhcore.multiblocksa.megalcrtooltip1": "使用§d异步线程控制仓§r以配置多线程运行模式", + "ctnhcore.multiblocksa.naqreactormk3tooltip1": "浩瀚能量,天地震动", + "ctnhcore.multiblocksa.naqreactormk3tooltip2": "利用超能燃料进行发电,无镍等离子体时无法完全消耗燃料", + "ctnhcore.multiblocksa.naqreactormk3tooltip3": "机器构型中必须有一个动力仓", + "ctnhcore.multiblocksa.naqreactormk3tooltip4": "随着内核温度上升,发电效率增大", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip0": "简易太阳能发电", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip1": "§e基础产能功率:§r512 EU/t", + "ctnhcore.multiblocksa.photovoltaicpowerstationenergetictooltip2": "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip0": "高效太阳能发电", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip1": "§e基础产能功率:§r2048 EU/t", + "ctnhcore.multiblocksa.photovoltaicpowerstationpulsatingtooltip2": "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip0": "究极太阳能发电", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip1": "§e基础产能功率:§r8192 EU/t", + "ctnhcore.multiblocksa.photovoltaicpowerstationvibranttooltip2": "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率", + "ctnhcore.multiblocksa.plasmacondensertooltip1": "氤氲之气,凝为霜露", + "ctnhcore.multiblocksa.sinteringkilntooltip0": "需要通入8192应力使其内部活塞压实待加工料", + "ctnhcore.multiblocksa.slaughterhousetooltip0": "无情的杀戮机器", + "ctnhcore.multiblocksa.slaughterhousetooltip1": "输入总线放入电动刷怪笼后,机器会自动输出对应怪物的战利品,可放入多个电动刷怪笼", + "ctnhcore.multiblocksa.slaughterhousetooltip2": "电压每升高1级,虚拟刷怪量会增加4(HV为4)", + "ctnhcore.multiblocksa.slaughterhousetooltip3": "怪物血量和护甲值越高,配方运行所需时间越长", + "ctnhcore.multiblocksa.slaughterhousetooltip4": "武器的伤害和附魔会减少配方运行的时间", + "ctnhcore.multiblocksa.slaughterhousetooltip5": "时运等附魔也能生效", + "ctnhcore.multiblocksa.supercentrifuge": "超速离心", + "ctnhcore.multiblocksa.supercentrifugeparallel": "普通离心机模式下会获得8并行", + "ctnhcore.multiblocksa.superebftooltip0": "所有配方速度提高50%!", + "ctnhcore.multiblocksa.sweatshoptooltip0": "生产资料与剩余价值", + "ctnhcore.multiblocksa.sweatshoptooltip1": "工厂内的村民数量决定了工作效率,配方耗时x(2/村民数量)", + "ctnhcore.multiblocksa.sweatshoptooltip2": "工厂内的有效员工数量受限于工厂大小,初始上限为4,工厂长度每增加4格上限+1", + "ctnhcore.multiblocksa.sweatshoptooltip3": "放入的生产资料(机器)决定了可以工作的配方:\n动力辊压机----卷板机配方\n动力搅拌机----搅拌机配方\n车床----车床配方\n离心机----离心机配方\n烈焰人燃烧室----提取机配方\n工作盆----流体成型配方\n粉碎轮----研磨机配方\n动力锯----线材轧机配方\n激光加工器----激光蚀刻配方\n==============================", + "ctnhcore.multiblocksa.sweatshoptooltip4": "放入的生产资料(机器)数量决定了对应工作配方的并行数:并行数 = sqrt(机器数)", + "ctnhcore.multiblocksa.sweatshoptooltip5": "放入机械手可以提高整体配方运行速度,配方耗时x (1/1 + 0.25 * sqrt(机械手数))", + "ctnhcore.multiblocksa.sweatshoptooltip6": "放入机器的多样性会提高配方运行速度", + "ctnhcore.multiblocksa.sweatshoptooltip7": "基础配方耗时为2倍,配方所需的电压等级越高,基础耗时x(配方等级的平方)", + "ctnhcore.multiblocksa.sweatshoptooltip8": "每5秒机器会消耗(员工数量)份简易营养餐", + "ctnhcore.multiblocksa.ultrasonicapparatus": "超声破碎", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip0": "用蒸汽温暖你的心", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip1": "地暖系统依靠蒸汽供暖,占地一个区块,能对§a周围5*5的区块§r产生供暖,供暖只会在地暖上方十格内生效", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip2": "铜砖瓦会生锈,生锈后地暖系统的供暖能力会减弱", + "ctnhcore.multiblocksa.underfloorheatingsystemtooltip3": "可以调节速率,以降低供暖功率并减少蒸汽消耗,最低降至25%", + "ctnhcore.multiblocksa.vacuumsinteringtowertooltip0": "真空烧结", + "ctnhcore.multiblocksa.voidminertooltip0": "取天材,掘地精", + "ctnhcore.multiblocksa.voidminertooltip1": "虚空采矿场自动生成并提取矿石", + "ctnhcore.multiblocksa.voidminertooltip2": "如果你对矿物需求极大,虚空采矿机是必不可少的帮手", + "ctnhcore.multiblocksa.voidminertooltip3": "每次工作消耗100,000B钻井液,升降温度时消耗极寒之凛冰和烈焰之炽焱", + "ctnhcore.multiblocksa.voidminertooltip4": "在奇数次运行前,机器会试图消耗烈焰之炽焱来升温。初始烈焰之炽焱消耗量为1000mb,若成功消耗,则温度将会增加 ⌊(消耗量 ÷ 100)⌋,接着消耗量将会自乘以 1.02", + "ctnhcore.multiblocksa.voidminertooltip5": "在偶数次运行前,机器会试图消耗极寒之凛冰来降温。初始极寒之凛冰消耗量为1000mb,若成功消耗,则温度将会降低 ⌊(消耗量 ÷ 100)⌋,接着消耗量将会自乘以 1.02", + "ctnhcore.multiblocksa.voidminertooltip6": "温度越高,虚空采矿场的产出倍率越高", + "ctnhcore.multiblocksa.voidminertooltip7": "当温度达到25000K时,虚空采矿机将进入强制降温模式,直至温度降至0K时,恢复正常工作模式", + "ctnhcore.multiblocksa.voidminertooltip8": "请交替输入烈焰之炽焱和极寒之凛冰来控制温度", + "ctnhcore.multiblocksb.arcgeneratortooltip1": "物质撕裂器", + "ctnhcore.multiblocksb.arcgeneratortooltip2": "该机器必须配合电弧生成器使用,要求电弧生成器必须在该机器主方块上方5格,当完成链接时,电弧生成器会显示已完成连接", + "ctnhcore.multiblocksb.arcgeneratortooltip3": "当电弧强度小于配方最小电弧强度时,配方将无法运行", + "ctnhcore.multiblocksb.arcgeneratortooltip4": "当电弧强度大于配方最大电弧强度时,配方将以(机器电弧强度-配方需求电弧强度)/(满功率需求电弧强度-需求电弧强度)的效率运行。效率允许超过100%,但不能超过机器最大发电效率", + "ctnhcore.multiblocksb.arcgeneratortooltip5": "当效率未达100%时,因为湮灭的不完全,将产生少量额外产出", + "ctnhcore.multiblocksb.arcgeneratortooltiparct11": "§b最大支持电弧强度:1000", + "ctnhcore.multiblocksb.arcgeneratortooltiparct12": "§c最大发电效率:75%", + "ctnhcore.multiblocksb.arcgeneratortooltiparct21": "§b最大支持电弧强度:10000", + "ctnhcore.multiblocksb.arcgeneratortooltiparct22": "§c最大发电效率:125%", + "ctnhcore.multiblocksb.arcgeneratortooltiparct31": "§b最大支持电弧强度:50000", + "ctnhcore.multiblocksb.arcgeneratortooltiparct32": "§c最大发电效率:225%", + "ctnhcore.multiblocksb.arcgeneratortooltipt21": "分子撕裂器", + "ctnhcore.multiblocksb.arcgeneratortooltipt31": "原子撕裂器", + "ctnhcore.multiblocksb.arcreactortooltip1": "该机器必须配合电弧撕裂者使用,要求电弧生成器必须在电弧撕裂者主方块上方5格,当完成链接时,电弧生成器会显示桥接已启用", + "ctnhcore.multiblocksb.arcreactortooltip2": "机器基础每次运行配方产生10电弧强度,无法超频,高等级机器具有更高并行数", + "ctnhcore.multiblocksb.arcreactortooltipt1": "该机器并行数:1", + "ctnhcore.multiblocksb.cryotheumfreezertip0": "§b泪水如凛冰般落下", + "ctnhcore.multiblocksb.cryotheumfreezertip1": "每次运行配方消耗5*并行mb极寒之凛冰,电压每高于§9IV§r一级,这个消耗就翻4倍", + "ctnhcore.multiblocksb.cryotheumfreezertip2": "初始具有4并行和3泪之晶点数,可以在升级界面加点。每消耗10000mb凛冰,就获得一点点数,随后将目标翻四倍", + "ctnhcore.multiblocksb.cultivationroomtooltip1": "菌群孕育,菌种滋长", + "ctnhcore.multiblocksb.cultivationroomtooltip2": "运用好这台机器来繁殖那些难以获取的真菌和细菌", + "ctnhcore.multiblocksb.fluiddrillingrigdepletioninf": "§6永§b不§d损§a耗,你在担心什么?", + "ctnhcore.multiblocksb.fluiddrillingrigdescriptioninf": "§6钻取来自无尽之中的流体之海", + "ctnhcore.multiblocksb.forestseatooltip1": "手植千木,绿荫千秋", + "ctnhcore.multiblocksb.forestseatooltip2": "林海树场是一个只消耗水来产出大量木材的大机器", + "ctnhcore.multiblocksb.forestseatooltip3": "每5s进行一次水储量的判定", + "ctnhcore.multiblocksb.forestseatooltip4": "水充足时,增加1%的湿度值", + "ctnhcore.multiblocksb.forestseatooltip5": "水不足时,减少10%的湿度值", + "ctnhcore.multiblocksb.forestseatooltip6": "配方运行时间不变,但并行值会随湿度值与电压等级上升", + "ctnhcore.multiblocksb.forestseatooltip7": "比温室好!", + "ctnhcore.multiblocksb.lasersortertooltip0": "持续调整激光频率", + "ctnhcore.multiblocksb.lasersortertooltip1": "配方类型:激光分配/激光蚀刻", + "ctnhcore.multiblocksb.lasersortertooltip10": "输入的算力每比基础算力多一倍,将一次超频转化为无损超频(即运行速度*2),该效果转化的次数不超过你能超频的等级(即上限为将你所有的有损超频转化为无损)", + "ctnhcore.multiblocksb.lasersortertooltip11": "§c如果输入的算力不为整数倍,则以上所有的增益全部无效且最终所需时间*4", + "ctnhcore.multiblocksb.lasersortertooltip2": "本机器需要消耗算力才能运行", + "ctnhcore.multiblocksb.lasersortertooltip3": "————————激光蚀刻模式————————", + "ctnhcore.multiblocksb.lasersortertooltip4": "LuV及以下的电压固定基础请求8算力,电压每高于LuV一级,请求的基础算力翻倍", + "ctnhcore.multiblocksb.lasersortertooltip5": "输入的算力如果为基础请求算力的整数倍,则最终输出*1.25,并行等同于⌊(输入的算力/基础请求算力)⌋的三次方", + "ctnhcore.multiblocksb.lasersortertooltip6": "输入的算力每比基础算力多一倍,将一次超频转化为无损超频(即运行速度*2),该效果转化的次数不超过你能超频的等级(即上限为将你所有的有损超频转化为无损)", + "ctnhcore.multiblocksb.lasersortertooltip7": "————————激光分配模式————————", + "ctnhcore.multiblocksb.lasersortertooltip8": "配方给出请求算力,如果配方没有给出则按照激光蚀刻模式的公式计算", + "ctnhcore.multiblocksb.lasersortertooltip9": "输入的算力如果为基础请求算力的整数倍,则并行等同于⌊(输入的算力/基础请求算力)⌋的三次方", + "ctnhcore.multiblocksb.nanogeneratortooltip0": "利用摩擦热的力量", + "ctnhcore.multiblocksb.nanogeneratortooltip1": "最大并行数:2048", + "ctnhcore.multiblocksb.nanogeneratortooltip2": "每有1并行数,总体发电量提升4%\n实际运行时间为配方时间*sqrt(并行数)", + "ctnhcore.multiblocksb.nanogeneratortooltip3": "在控制器内放入特定材料可提升倍率,但也有概率消耗\n无材料:0.8倍率\n橡胶片:1.0倍率,并行数/512几率消耗\n聚乙烯片:1.6倍率,并行数/1024几率消耗\n硅橡胶片:2.4倍率,并行数/4096几率消耗\n聚四氟乙烯片:3.2倍率,并行数/65535几率消耗\n丁苯橡胶片:4.6倍率,并行数/131070几率消耗\n聚苯并咪唑片:5倍率,并行数/1048576几率消耗", + "ctnhcore.multiblocksb.neuromatrixcompilertip0": "将生物的进化之道完全放任于碳基生物的自然演变是一种低效且缓慢的做法,现在我们将亲自编码每一个基因序列,将我们的至臻完美编译在神经元的逻辑之中", + "ctnhcore.multiblocksb.neuromatrixcompilertip01": "神经矩阵编码器(CMP)是一台编译神经序列的机器,其不同于其他机器,不执行正常的输入逻辑,无法超频", + "ctnhcore.multiblocksb.neuromatrixcompilertip1": "该机器的输入由6个神经矩阵研究舱室组成,每个舱室在结构完成时将被编码,所有研究舱室必须为同一等级,编码完成后,每个研究舱室将会显示他们所属的片区(并未实现)现在片区分配固定为:机器主方块左前方为1,右前方为2,左后方为3,右后方为4", + "ctnhcore.multiblocksb.neuromatrixcompilertip10": "如果运算失败,则定义噪声结果函数f(x1,x2,x3)=ax1+bx2+cx3+d+ϵ,根据噪声决定片区,噪声波动最多翻倍5倍,片区误差项为0.9-1.1间,则噪声变为0.5倍率", + "ctnhcore.multiblocksb.neuromatrixcompilertip11": "最终编译数据集将获得三个信息,信息1代表本次的方程,信息2代表噪声结果函数获得的结果值对于y的倍率,信息3代表误差项的比率", + "ctnhcore.multiblocksb.neuromatrixcompilertip12": "在执行相同配方时方程不会重置,在执行配方或者结构重新成型时,重置y和方程", + "ctnhcore.multiblocksb.neuromatrixcompilertip2": "该机器的输入§c必须严格按照EMI的物品顺序§9从左到右§r从第一行到第二行放置在§91-5片区§r,同时在第六片区放置§9研究数据集§r§r,任何错误的放置或者外部舱室的放置都会导致机器故障并在对应舱室显示故障", + "ctnhcore.multiblocksb.neuromatrixcompilertip3": "必须保证所有神经矩阵研究舱室的等级不低于配方等级,否则配方不会运行", + "ctnhcore.multiblocksb.neuromatrixcompilertip4": "————————机器总体机制————————", + "ctnhcore.multiblocksb.neuromatrixcompilertip5": "每次检测到新的配方时,机器将§6完美诉诸于随机§r,生成函数F(x1,x2,x3)=§6y=ax1+bx2+cx3+d§r,其中,x1,x2,x3为期望的片区所消耗的物品数量,同时在给定范围内随机x1,x2,x3,获取答案y", + "ctnhcore.multiblocksb.neuromatrixcompilertip6": "当配方执行时,在开始逻辑运算,1-5片区将各自运行5s,运行完毕时将消耗舱室内所有物品来取得函数", + "ctnhcore.multiblocksb.neuromatrixcompilertip7": "在片区1-5执行完毕后,进行持续5s的总计算流程,在此过程中给出x1,x2,x3,计算得到计算值y,与真实比较,进行最终编译运算", + "ctnhcore.multiblocksb.neuromatrixcompilertip8": "————————最终编译运算————————", + "ctnhcore.multiblocksb.neuromatrixcompilertip9": "最终编译运算将比较真实y与结果y,如果结果y的值在真实值y的0.9-1.1倍内,则运算成功,将编译数据集变为配方输出", + "ctnhcore.multiblocksb.neuromatrixcompilertippart1": "片区1-3:用于提供函数F(x)的真实x1,x2,x3", + "ctnhcore.multiblocksb.neuromatrixcompilertippart2": "片区4:代表函数F(x)的常数量d,同时决定噪声ϵ", + "ctnhcore.multiblocksb.neuromatrixcompilertippart3": "片区5:此片区用为神经编译提供电路板支持,决定噪声ϵ波动,如果提供电路板大于配方给定值则不造成噪声影响", + "ctnhcore.multiblocksb.neuromatrixcompilertippart4": "片区6:收集最终编译结果的片区,在完成一次逻辑运算流程后,将根据结果对神经数据集进行修改", + "ctnhcore.multiblocksb.plasmaalloytooltip1": "§4转底炉的复仇", + "ctnhcore.multiblocksb.plasmaalloytooltip10": "§c速度增幅超过5000%时,最终产物量将会在0%-50%中浮动!", + "ctnhcore.multiblocksb.plasmaalloytooltip11": "允许使用§b激光仓§r,使用激光仓时最终速度将除以4,速度低于原速度时拒绝运行", + "ctnhcore.multiblocksb.plasmaalloytooltip2": "线圈温度每有1800K,获得4点并行,线圈温度超过10000K时,获得(线圈温度-10000)/10000的额外加速", + "ctnhcore.multiblocksb.plasmaalloytooltip3": "运行前消耗(并行数*对应等离子体消耗)的等离子体,获得额外加速", + "ctnhcore.multiblocksb.plasmaalloytooltip4": "氦等离子体:消耗500*并行的等离子体,速度+100%", + "ctnhcore.multiblocksb.plasmaalloytooltip5": "氧,氮等离子体:消耗300*并行的等离子体,速度+200%", + "ctnhcore.multiblocksb.plasmaalloytooltip6": "镍,铁等离子体:消耗200*并行的等离子体,速度+300%", + "ctnhcore.multiblocksb.plasmaalloytooltip7": "消耗特殊的冶炼等离子体可以获得额外的速度加成,§c但是同样会将增加你冶炼的风险", + "ctnhcore.multiblocksb.plasmaalloytooltip8": "压缩精金等离子:消耗固定100等离子体,使速度*5,使消耗电压翻倍(§c这可能导致配方不运行,请使用多安能源仓)", + "ctnhcore.multiblocksb.plasmaalloytooltip9": "精炼超能以太等离子体:消耗50*并行等离子体,使速度*10,§c使最终产物在80%-100%中浮动", + "ctnhcore.multiblocksb.pvdronetooltip0": "戴森云计划", + "ctnhcore.multiblocksb.pvdronetooltip1": "允许使用并行控制仓,并行数为运行时间倍率", + "ctnhcore.multiblocksb.pvdronetooltip2": "为光伏基站提供电力增幅,使用光伏绑定终端来为这两个结构绑定", + "ctnhcore.multiblocksb.pvdronetooltip3": "将无人机放入无人机支架以开始发送无人机,每5秒和运行结束时,每个无人机都有一定概率消耗,无人机发电同样受维度和空间站增幅", + "ctnhcore.multiblocksb.pvdronetooltip4": "无人机的消耗概率公式为1.0 / (1.0 + Math.exp(-0.25* (x - 9)))", + "ctnhcore.multiblocksb.pvdronetooltip5": "使用无人机收集陨石时,产出的倍率公式为0.1*Math.sqrt(无人机电压之和),倍率小于1时无产出,无法超频", + "ctnhcore.multiblocksb.sinopechemicaltooltip0": "来自§b某个神秘东方大国§r的工业力量", + "ctnhcore.multiblocksb.sinopechemicaltooltip1": "格雷员工不骗格雷员工,并行是真实的", + "ctnhcore.multiblocksb.sinopechemicaltooltip2": "没有外壳等级要求,配方不需要催化剂", + "ctnhcore.multiblocksb.sinopechemicaltooltip3": "并行数与中心的方块有关", + "ctnhcore.multiblocksb.sinopechemicaltooltip4": "硅岩块:8并行", + "ctnhcore.multiblocksb.sinopechemicaltooltip5": "富集硅岩块:32并行", + "ctnhcore.multiblocksb.sinopechemicaltooltip6": "超能硅岩块:128并行", + "ctnhcore.multiblocksb.sinopechemicaltooltip7": "每一点实际的并行数减少0.5%的能耗和运行时间,至多减少25%(独立乘区)", + "ctnhcore.multiblocksb.sinopechemicaltooltip8": "线圈每提供1800K,运行速度+100%", + "ctnhcore.multiblocksb.sinopechemicaltooltip9": "§c任何虚假的并行都将绳之以法!§r", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip0": "§6光辉灿烂的太空之路", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip2": "在太空发电模式下,星球类型和光伏方块的等级都会提升发电量,在空间站被视为无重力环境,且发电量*4,消耗特定材料以进一步提升发电量", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip3": "在太空光伏组装模式下,不消耗EUt,发电量将锁定为1,根据配方的模拟F功率来计算速度和并行量", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip4": "光伏等级,光照强度共同决定了是否可以执行太空组装配方,光伏方块耐热性和耐热结构方块决定了可以获得的光照最大倍率,太空结构方块决定了可以使用的光伏方块等级和是否可以使用附属结构", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltip5": "在太空光伏组装模式下,最终并行为(太空发电模式下发电量/模拟功率),最终时间倍率为(模拟功率/太空发电模式下发电量),当太空发电模式下发电量小于模拟功率时,最终时间倍率将变为平方", + "ctnhcore.multiblocksb.spacephotovoltaicbasestationtooltipex": "§6该结构将持续拓展,这还不是它的完全体状态!", + "ctnhcore.multiblocksb.wideacceleratortooltip0": "粒子加速集成者", + "ctnhcore.multiblocksb.wideacceleratortooltip1": "允许§9使用激光仓§r和§a变电仓§r", + "ctnhcore.multiblocksb.wideacceleratortooltip10": "注意:本机器用电量极高,且暂时无法做到只能计算正确并行,使用低电压可能导致§c配方无法运行§r或者§c跳电§r,建议搭配§9激光仓§r使用,如遇配方不工作,请报告给作者", + "ctnhcore.multiblocksb.wideacceleratortooltip11": "可以与约束器链接传递部分粒子。§c警告:如果没有链接约束器,不要随意尝试某些危险的配方§r (目前还是饼)", + "ctnhcore.multiblocksb.wideacceleratortooltip2": "通过三个轨道加速三种粒子", + "ctnhcore.multiblocksb.wideacceleratortooltip3": "本机器只要求粒子速度大于配方需求,不满足需求无法运行。粒子速度不会超过50Gev,这台机器非常安全,不会引发爆炸。", + "ctnhcore.multiblocksb.wideacceleratortooltip4": "允许使用§b并行控制仓§r,不适用并行控制仓则使用默认值", + "ctnhcore.multiblocksb.wideacceleratortooltip5": "在运行一般配方时如无§b并行控制仓§r,默认使用16并行", + "ctnhcore.multiblocksb.wideacceleratortooltip6": "如果粒子速度过慢,则什么都不会产生", + "ctnhcore.multiblocksb.wideacceleratortooltip7": "本机器可以存储至多50E EU能量,存储的能量可以在加速界面调整三种粒子速度,每调整1M ev粒子速度需要消耗10M EU存储的能量,按住shift时可以一次性更改10M ev粒子速度,按住ctrl时可以一次性更改100M ev粒子速度", + "ctnhcore.multiblocksb.wideacceleratortooltip8": "三种粒子轨道速度之和每有1M ev,每tick便消耗机器存储的100EU能量,电量不足时,每tick粒子速度会衰减10%", + "ctnhcore.multiblocksb.wideacceleratortooltip9": "机器没有运行时,默认使用存储能源舱室的所有能源为机器充能。机器运行时仍然使用能源仓的能量。但在机器运行时除非机器存储电量不够,否则能源仓不会为机器充能", + "ctnhcore.multiblocksc.greenhousetooltip0": "室内种植", "ctnhcore.nano_generator": "摩擦发电", "ctnhcore.naq_mk1": "超能燃料", + "ctnhcore.naqreactormachine.naqreactorinfonickelconsumption": "镍等离子体消耗量: %d", + "ctnhcore.naqreactormachine.naqreactorinfoparallelcount": "发电并行数: %d", + "ctnhcore.naqreactormachine.naqreactorinfotemperature": "§c内核温度: %d", "ctnhcore.naquadah_reactor": "硅岩反应", + "ctnhcore.neuromatrixcompiler.compilererror0": "§c未知错误", + "ctnhcore.neuromatrixcompiler.compilererror1": "§c舱室等级与片区1不匹配", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfopartstates": "片区%d状态:%s", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateerror": "§c错误,类型:%s", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostatefinish": "§a完成", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateidle": "§6待机", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostatewaiting": "§b等待中......", + "ctnhcore.neuromatrixcompiler.neuromatrixcompilerinfostateworking": "§9运行中:%ss/%ss", "ctnhcore.neutron_activator": "中子活化", "ctnhcore.nuclear_reactor": "裂变反应", "ctnhcore.oxygen_enricher": "氧气富集器", + "ctnhcore.oxygencondition.ctnhmachineoxygenrequired": "此机器需要在可供氧环境中运行", + "ctnhcore.oxygenenrichermachine.ctnhmachineoxygenenrichernoinput": "氧气供应不足", "ctnhcore.personal_computer": "个人电脑", "ctnhcore.phase_inversion": "反相蚀刻", "ctnhcore.photovoltaic_assember": "太空光伏组装", "ctnhcore.photovoltaic_generator": "光伏发电", + "ctnhcore.photovoltaicdronestation.pvdroneinfot1": "提供的能量:%d", + "ctnhcore.photovoltaicdronestation.pvdroneinfot2": "无人机消耗概率:%.4f", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfo1": "发电效率:%s%%", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfo2": "产能功率:%s/%s EU/t", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfoinvalid": "有方块阻挡", + "ctnhcore.photovoltaicpowerstationmachine.photovoltaicpowerstationinfonight": "光照过于微弱", "ctnhcore.plasma_condenser": "等离子冷凝", "ctnhcore.ponder.assembly_line_building.header": "如何自动化装配线", "ctnhcore.ponder.assembly_line_building.text_1": "首先放置装配线主方块。", @@ -880,6 +860,7 @@ "ctnhcore.ponder.tag.ctnhponder.description": "CTNHCore机器思索", "ctnhcore.ponder.tag.mechanical_multiblock": "机械多方块机器", "ctnhcore.ponder.tag.mechanical_multiblock.description": "CTNH机械多方块机器思索", + "ctnhcore.portalblockmixin.messageportalinvaliddimension": "该传送门只能在主世界使用", "ctnhcore.precision_assembly": "精密组装", "ctnhcore.pv_drone_recipe": "光伏无人机", "ctnhcore.pvb_recipe": "物理气相沉积", @@ -887,24 +868,73 @@ "ctnhcore.resonant_assemble": "振动共鸣组装", "ctnhcore.rocket_engine": "火箭引擎", "ctnhcore.scalable_reservoir_computing": "突触凝练", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificeempty": "无牺牲者", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificelocked": "已锁定牺牲者!", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcsacrificeunlocked": "无法锁定牺牲者", + "ctnhcore.scalablereservoircomputingmachine.ctnhsrcwetwareduration": "湿件剩余存活时间: %s ticks", "ctnhcore.silica_rock_fuel_refinery": "硅岩燃料精炼", "ctnhcore.sinope": "规模化化工", + "ctnhcore.sinopechemical.sinopechemicalinfolevel": "线圈加速倍率:%d", + "ctnhcore.sinopechemical.sinopechemicalinfoparallel": "并行数:%d", "ctnhcore.sintering_kiln": "烧结", "ctnhcore.slaughter_house": "屠宰场", + "ctnhcore.slaughterhousemachine.slaughterhouseinfomobcount": "怪物种类:%d (%s)", "ctnhcore.spacephotovoltaicbasestation.orbit_only": "该配方需要在空间站维度运行", - "ctnhcore.src.sacrifice": "牺牲者: %s", - "ctnhcore.src.sacrifice_empty": "无牺牲者", - "ctnhcore.src.sacrifice_locked": "已锁定牺牲者!", - "ctnhcore.src.sacrifice_unlocked": "无法锁定牺牲者", - "ctnhcore.src.wetware_duration": "湿件剩余存活时间: %s ticks", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier0": "当前光伏方块等级:%d", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier1": "当前结构耐热等级:%d", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier2": "当前结构发电量:%.2f", + "ctnhcore.spacephotovoltaicbasestation.spacephotovoltaicbasestationinfopvctier3": "当前维度光倍率:%d", + "ctnhcore.superconducting_penning_trap.antielectric": "反电子量:%d", + "ctnhcore.superconducting_penning_trap.antinu": "反中子量:%d", + "ctnhcore.superconducting_penning_trap.antiproton": "反质子量:%d", + "ctnhcore.superconducting_penning_trap.noenergywaring": "§c警告:供电不足,约束场即将失效!", + "ctnhcore.superconducting_penning_trap.restoredanger": "约束危险物质", + "ctnhcore.superconducting_penning_trap.trapelectricmax": "允许存储电量上限:%deu", "ctnhcore.testingterminalbehavior.flipmode": "翻转模式启动", "ctnhcore.testingterminalbehavior.normalmode": "普通模式启动", + "ctnhcore.testingterminalbehavior.testterminallackerror": "在%s处缺少", + "ctnhcore.testingterminalbehavior.testterminalposition": "(%s,%s,%s)", + "ctnhcore.testingterminalbehavior.testterminalsuccess": "一切正常!", + "ctnhcore.testingterminalbehavior.testterminalwrongerror": "在%s处应为", "ctnhcore.ultrasonication": "超声破碎", "ctnhcore.underfloor_heating_system": "地暖", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminfoefficiency": "效率:%d", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforate": "速率:%s", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforatemodify": "调节速率:", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminforatetooltip": "减少蒸汽的消耗来降低地暖的发热功率", + "ctnhcore.underfloorheatingmachine.underfloorheatingsysteminfosteamconsumption": "蒸汽消耗速率:%d", "ctnhcore.vacuum_sintering": "真空烧结", "ctnhcore.void_miner": "虚空采矿", + "ctnhcore.voidminerprocessingmachine.voidminerinfocryotheum": "极寒之凛冰消耗:%d ", + "ctnhcore.voidminerprocessingmachine.voidminerinfooverheat": "过热!!!", + "ctnhcore.voidminerprocessingmachine.voidminerinfopyrotheum": "烈焰之炽焱消耗:%d ", "ctnhcore.water_power": "水力发电", + "ctnhcore.wideparticleaccelerator.connect": "连接已搭建", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoconsume": "电量消耗倍率:%.2f", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoelectricspeed": "电子速度:%.2fMev", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfonuspeed": "中子速度:%.2fMev", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfopower": "存储的电量:%.2f E/%.2f E", + "ctnhcore.wideparticleaccelerator.wideacceleratorinfoprotonspeed": "质子速度:%.2fMev", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkdirty": "网络将在%d秒后重建", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkmachine": "发电网络机器数:%d", + "ctnhcore.windpowerarraymachine.windpowerarrayinfonetworkmachineefficiency": "发电效率:%d", + "ctnhcore.windpowerarrayregister.windarraytooltip0": "§7§o风力狼群:真正的自然之力", + "ctnhcore.windpowerarrayregister.windarraytooltip1": "§8---------------§a基础数据§8-----------------", + "ctnhcore.windpowerarrayregister.windarraytooltip10": "§f润滑油会从风力网络中抽取.", + "ctnhcore.windpowerarrayregister.windarraytooltip11": "§5顺应风力网络的工作规律,以抵挡自然之力的摧残", + "ctnhcore.windpowerarrayregister.windarraytooltip2": "§f- 基础发电功率: §e%d EU/t §7(地球)", + "ctnhcore.windpowerarrayregister.windarraytooltip3": "§f- 天气风力增益: §e雨天x2,雷雨x4", + "ctnhcore.windpowerarrayregister.windarraytooltip4": "§f- 高度增益: §e Clamp(Y-64, 0, 256-64) / (256-64)", + "ctnhcore.windpowerarrayregister.windarraytooltip5": "§f- 网络增益: §e 0.3*[log2(网络大小)]", + "ctnhcore.windpowerarrayregister.windarraytooltip6": "§f增益乘算得到发电效率", + "ctnhcore.windpowerarrayregister.windarraytooltip7": "§f需要§e%d mB/s§f 润滑油以维护机器运行", + "ctnhcore.windpowerarrayregister.windarraytooltip8": "§8---------------§a风力网络§8-----------------", + "ctnhcore.windpowerarrayregister.windarraytooltip9": "§f所有结构对齐且间距<=1的风力发电机阵列会组成风力网络", "ctnhcore.wood_bionics": "§e林海树场", + "ctnhcore.wpaacceleratorgui.wideacceleratorguielectric": "电子轨道", + "ctnhcore.wpaacceleratorgui.wideacceleratorguiname": "访问轨道", + "ctnhcore.wpaacceleratorgui.wideacceleratorguinu": "中子轨道", + "ctnhcore.wpaacceleratorgui.wideacceleratorguiproton": "原子轨道", "ctnhcore.zenith_extruder": "天顶塑形", "ctnhcore:ancient_debris_vein": "远古残骸矿脉", "ctnhcore:apatite_vein_tf": "暮色森林磷灰石矿脉", @@ -987,23 +1017,17 @@ "ctnhcore:zirkelite_vein": "钛锆钍石矿脉", "desh_vein_ad": "戴斯矿脉", "diamond_vein_tf": "钻石矿脉", - "dimension.ad_astra:glacio": "霜原星", - "dimension.ad_astra:mars": "火星", - "dimension.ad_astra:mercury": "水星", - "dimension.ad_astra:moon": "月球", - "dimension.ad_astra:venus": "金星", - "dimension.ad_extendra:jupiter": "木星", - "dimension.aether:the_aether": "天境", - "dimension.twilightforest:twilight_forest": "暮色森林", - "enchantment.ctnhcore.cooling": "御暑", "enchantment.ctnhcore.cooling.desc": "增强御寒能力", - "enchantment.ctnhcore.warming": "御寒", "enchantment.ctnhcore.warming.desc": "增强御暑能力", "fermenting_tank_machine.ctnhcore.fermentingtankmachine.growing_efficiency": "生长效率:%d%%", "fermenting_tank_machine.ctnhcore.fermentingtankmachine.growing_temperature": "生长温度:§2%d°C§r", "galena_vein_ad": "方铅矿脉", "galena_vein_tf": "方铅矿脉", "gold_vein_tf": "金矿脉", + "gtceu.astronomical_observatory": "天文台", + "gtceu.bedrock_drilling_rigs": "基岩钻机", + "gtceu.big_dam": "大坝", + "gtceu.coke_oven": "焦炉", "gtceu.jei.ore_vein.ancient_debris_vein": "远古残骸矿脉", "gtceu.jei.ore_vein.apatite_vein_tf": "暮色森林磷灰石矿脉", "gtceu.jei.ore_vein.arctic_crystal_core_vein": "暮色森林极寒冰核矿脉", @@ -1082,19 +1106,14 @@ "gtceu.jei.ore_vein.zinc_vein": "锌矿脉", "gtceu.jei.ore_vein.zircon_vein_aether": "天境锆石矿脉", "gtceu.jei.ore_vein.zirkelite_vein": "钛锆钍石矿脉", - "gtceu.machine.parallel_hatch_mk10.tooltip": "允许同时处理至多4096个配方。", - "gtceu.machine.parallel_hatch_mk11.tooltip": "允许同时处理至多16384个配方。", - "gtceu.machine.parallel_hatch_mk12.tooltip": "允许同时处理至多65536个配方。", - "gtceu.machine.parallel_hatch_mk13.tooltip": "允许同时处理至多262144个配方。", - "gtceu.machine.parallel_hatch_mk14.tooltip": "允许同时处理至多1048576个配方。", - "gtceu.machine.parallel_hatch_mk9.tooltip": "允许同时处理至多1024个配方。", - "gtceu.multiblock.laser.tooltip": "允许使用激光仓", + "gtceu.naq_mk1": "超级燃料", + "gtceu.photovoltaic_power": "光伏发电", + "gtceu.plasma_condenser": "等离子冷凝", "gtceu.recipe_logic.recipe_waiting": "配方等待中:", "gtceu.recipe_logic.setup_fail": "配方启动失败:", - "gtceu.recipe_modifier.coil_temperature_too_low": "线圈温度过低!", - "gtceu.recipe_modifier.default_fail": "配方修改失败", "gtceu.recipe_modifier.insufficient_eu_to_start_fusion": "缺少足够能量以启动核聚变反应", - "gtceu.recipe_modifier.insufficient_voltage": "电压等级过低!", + "gtceu.slaughter_house": "屠宰场", + "gtceu.underfloor_heating_system": "地暖", "gui.ctnh.neutron_sensor.invert.disabled": "输出:正常\n\n切换以反转红石逻辑\n默认情况下,中子动能介于所设定的最小值和最大值之间时传感器将发出红石信号,小于最小值时则停止发出红石信号", "gui.ctnh.neutron_sensor.invert.enabled": "输出:反转\n\n切换以反转红石逻辑\n默认情况下,中子动能介于所设定的最小值和最大值之间时传感器将发出红石信号,小于最小值时则停止发出红石信号", "gui.digital_miner.ctnhcore.digitalminer.horizontal_range": "水平范围:", @@ -1117,28 +1136,10 @@ "iridium_vein_ad": "铱矿脉", "iron_vein_ad": "铁矿脉", "iron_vein_tf": "铁矿脉", - "item.ctnh.ecological_star.desc": "蕴含生态圈的所有精华", - "item.ctnh.me_advanced_terminal.setting.1": "线圈等级", - "item.ctnh.me_advanced_terminal.setting.1.tooltip": "设置自动放置的线圈等级(0:不指定等级)\n设置后会忽略结构本身的要求", - "item.ctnh.me_advanced_terminal.setting.10": "工业血之祭坛结构等级", - "item.ctnh.me_advanced_terminal.setting.10.tooltip": "仅对工业血之祭坛自动成型生效\n设置要构建的工业血之祭坛等级(0-4)\n0 对应二阶,4 对应六阶", - "item.ctnh.me_advanced_terminal.setting.2": "重复结构次数", - "item.ctnh.me_advanced_terminal.setting.2.tooltip": "设置可重复结构(蒸馏塔、装配线等)的重复部分放置次数\n对超净间无效", - "item.ctnh.me_advanced_terminal.setting.3": "无仓室模式", - "item.ctnh.me_advanced_terminal.setting.3.tooltip": "是否启用无仓室模式(0:不启用,1:启用)\n启用无仓室模式后不会放置任何仓室", - "item.ctnh.me_advanced_terminal.setting.4": "线圈替换模式", - "item.ctnh.me_advanced_terminal.setting.4.tooltip": "是否启用线圈替换模式(0:不启用,1:启用)\n启用线圈替换模式会将所有线圈替换为指定等级的线圈\n请确保物品栏中有空间存放替换下来的线圈", - "item.ctnh.me_advanced_terminal.setting.5": "使用AE存储", - "item.ctnh.me_advanced_terminal.setting.5.tooltip": "是否启用AE库存(0:不启用,1:启用)\n启用后将优先在AE库存中检索\n通过ME无线访问点链接到网络", - "item.ctnh.me_advanced_terminal.setting.6": "放置流体", - "item.ctnh.me_advanced_terminal.setting.6.tooltip": "是否启用流体放置(0:不启用,1:启用)\n启用后将检索并消耗物品栏/背包流体容器中的或AE库存中的流体\n可堆叠的流体容器须保证堆叠数为1", - "item.ctnh.me_advanced_terminal.setting.7": "在流体中放置", - "item.ctnh.me_advanced_terminal.setting.7.tooltip": "是否在流体中放置方块(0:不启用,1:启用)\n启用后会将空间中的流体视为空位\n与“放置流体”同时启用时,不会在流体中放置流体", "item.ctnh.me_advanced_terminal.setting.8": "拆除模式", "item.ctnh.me_advanced_terminal.setting.8.tooltip": "是否启用拆除模式(0:不启用,1:启用)\n请确保物品栏中有空间存放拆除的方块\n与“使用AE存储”同时启用时,拆除的方块会自动存入AE存储", "item.ctnh.me_advanced_terminal.setting.9": "多方块成型配置", "item.ctnh.me_advanced_terminal.setting.9.tooltip": "多方块成型配置", - "item.ctnh.me_advanced_terminal.setting.title": "多方块结构成型配置", "item.ctnhcore.advanced_ram_chip": "进阶RAM芯片", "item.ctnhcore.advanced_ram_wafer": "进阶RAM晶圆", "item.ctnhcore.animal_excreta": "动物排泄物", @@ -1267,15 +1268,24 @@ "item.ctnhcore.tumor": "肿瘤", "item.ctnhcore.uhv_voltage_coil": "极高压线圈", "item.ctnhcore.yharim": "§6圣金源锭", - "item.sculk_cell.desc": "分化....", - "itemGroup.ctnhcore.block": "CTNH方块", - "itemGroup.ctnhcore.item": "CTNH物品", - "itemGroup.ctnhcore.machine": "CTNH机器", "kaolinite_vein": "高岭石矿脉", "lapis_vein_ad": "青金石矿脉", "lapis_vein_tf": "青金石矿脉", "lubricant_vein_ad": "皂石矿脉", "lubricant_vein_tf": "皂石矿脉", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip0.tooltip": "§7来自GTMThings的挖矿黑科技,速度更快且无采矿管道,仅挖取矿石", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip1.tooltip": "§b工作时自带自身区块强加载", + "machine.ctnhcore.ctnhmachines.ctnhmachinedigitalminertooltip2.tooltip": "工作时消耗§f%d EU/t§7,每个方块需要§f%d§7刻", + "machine.ctnhcore.ctnhmachines.ctnhmachineoxygenenrichertooltip0.tooltip": "消耗氧气流体以维持密闭空间内的可呼吸环境", + "machine.ctnhcore.ctnhmachines.ctnhmachineoxygenenrichertooltip1.tooltip": "可为半径 %s 格的密闭空间供氧", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk10tooltip.tooltip": "允许同时处理至多4096个配方。", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk11tooltip.tooltip": "允许同时处理至多16384个配方。", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk12tooltip.tooltip": "允许同时处理至多65536个配方。", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk13tooltip.tooltip": "允许同时处理至多262144个配方。", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk14tooltip.tooltip": "允许同时处理至多1048576个配方。", + "machine.ctnhcore.ctnhmachines.gtceumachineparallelhatchmk9tooltip.tooltip": "允许同时处理至多1024个配方。", + "machine.ctnhcore.ctnhmachines.machinenaquadahreactortooltip.tooltip": "效率: %s%%", + "machine.ctnhcore.ctnhmachines.machinerocketenginetooltip.tooltip": "效率: %s%%", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.0": "§o§7输入EU,加速中子!", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.1": "§6最大EU输入: %s", "machine.ctnhcore.gtnnmachines.neutron_accelerator.tooltip.2": "§6最大EU消耗: %s", @@ -1892,7 +1902,6 @@ "material.gtceu.zircon": "锆石", "material.gtceu.zirconium_tetrachloride": "四氯化锆", "material.gtceu.zirkelite": "钛锆钍石", - "message.ctnhcore.portal.invalid_dimension": "该传送门只能在主世界使用", "molybdenite_vein_tf": "辉钼矿脉", "molybdenum_vein_ad": "钼矿脉", "monazite_vein_n": "独居石矿脉", @@ -1900,6 +1909,7 @@ "multiblock.ctnh.nuclear_reactor.coolant": "冷却液:%s", "multiblock.ctnh.nuclear_reactor.coolant_amount": "冷却液量:%s mB", "multiblock.ctnhcore.gtmachinemodify.cleanroom_restriction.tooltip": "高度大于长度或宽度时,将会停止工作", + "multiblock.ctnhcore.gtmachinemodify.gcymreduction.tooltip": "配方耗时x0.8,配方耗能x0.6", "multiblock.ctnhcore.gtmachinemodify.precision_assembly.tooltip.0": "其他可用配方类型: 精密组装", "multiblock.ctnhcore.gtmachinemodify.precision_assembly.tooltip.1": "注意:在精密组装模式下无法并行", "multiblock.ctnhcore.gtnnmultiblocks.chemical_plant.tooltip.0": "§6线圈:§e+50%§6 速度/级", @@ -1956,7 +1966,6 @@ "sapphire_vein_tf": "蓝宝石矿脉", "scheelite_vein_ad": "白钨矿脉", "sulfur_vein_ad": "硫矿脉", - "super_centrifuge": "超速离心", "tagprefix.black_stone": "嵌%s黑石", "tagprefix.catalyst": "%s催化剂", "tagprefix.holystone": "圣石%s矿石", @@ -1970,7 +1979,6 @@ "tooltip.ctnhcore.forgeclienteventhandler.void_feature.3": " - ME无线访问点无距离限制", "tooltip.ctnhcore.forgeclienteventhandler.void_feature.4": " - 光伏、风力发电机无法工作", "tuff_uraninite_vein_ad": "晶质铀矿脉", - "ultrasonic_apparatus": "超声破碎", "uranium238_vein_ad": "铀238矿脉", "wollastonite_vein": "白云石矿脉", "zenith_machine_sp": "§5灵能灯塔屹立不倒!" diff --git a/src/main/java/io/github/cpearl0/ctnhcore/CTNHConfig.java b/src/main/java/io/github/cpearl0/ctnhcore/CTNHConfig.java index 62c79c94d..0e06577b1 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/CTNHConfig.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/CTNHConfig.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import dev.toma.configuration.Configuration; import dev.toma.configuration.config.Config; @@ -8,6 +12,151 @@ @Config(id = CTNHCore.MODID) public class CTNHConfig { + @Key("config.ctnhcore.option.centrifugeRpmRequirement") + @CN("机械离心厂最低转速需求") + @EN("Mechanical Centrifuge minimum RPM") + public static Lang configOptionCentrifugeRpmRequirement; + + + @Key("config.ctnhcore.option.centrifugeSpeedMultiplier") + @CN("机械离心厂加速倍率") + @EN("Mechanical Centrifuge speed multiplier") + public static Lang configOptionCentrifugeSpeedMultiplier; + + + @Key("config.ctnhcore.option.centrifugeStressRequirement") + @CN("机械离心厂应力消耗") + @EN("Mechanical Centrifuge stress consumption") + public static Lang configOptionCentrifugeStressRequirement; + + + @Key("config.ctnhcore.option.enableFTBUltimineOnGTOres") + @CN("开启GT矿物连锁") + @EN("Enable GT ore vein mining") + public static Lang configOptionEnableFtbUltimineOnGtOres; + + + @Key("config.ctnhcore.option.extractorRpmRequirement") + @CN("机械提取厂最低转速需求") + @EN("Mechanical Extractor minimum RPM") + public static Lang configOptionExtractorRpmRequirement; + + + @Key("config.ctnhcore.option.extractorSpeedMultiplier") + @CN("机械提取厂加速倍率") + @EN("Mechanical Extractor speed multiplier") + public static Lang configOptionExtractorSpeedMultiplier; + + + @Key("config.ctnhcore.option.extractorStressRequirement") + @CN("机械提取厂应力消耗") + @EN("Mechanical Extractor stress consumption") + public static Lang configOptionExtractorStressRequirement; + + + @Key("config.ctnhcore.option.ftbPlugin") + @CN("FTB相关") + @EN("FTB Options") + public static Lang configOptionFtbPlugin; + + + @Key("config.ctnhcore.option.kinetic") + @CN("应力相关") + @EN("Kinetic Options") + public static Lang configOptionKinetic; + + + @Key("config.ctnhcore.option.laserRpmRequirement") + @CN("机械激光厂最低转速需求") + @EN("Mechanical Laser minimum RPM") + public static Lang configOptionLaserRpmRequirement; + + + @Key("config.ctnhcore.option.laserSpeedMultiplier") + @CN("机械激光厂加速倍率") + @EN("Mechanical Laser speed multiplier") + public static Lang configOptionLaserSpeedMultiplier; + + + @Key("config.ctnhcore.option.laserStressRequirement") + @CN("机械激光厂应力消耗") + @EN("Mechanical Laser stress consumption") + public static Lang configOptionLaserStressRequirement; + + + @Key("config.ctnhcore.option.latheRpmRequirement") + @CN("机械车床厂最低转速需求") + @EN("Mechanical Lathe minimum RPM") + public static Lang configOptionLatheRpmRequirement; + + + @Key("config.ctnhcore.option.latheSpeedMultiplier") + @CN("机械车床厂加速倍率") + @EN("Mechanical Lathe speed multiplier") + public static Lang configOptionLatheSpeedMultiplier; + + + @Key("config.ctnhcore.option.latheStressRequirement") + @CN("机械车床厂应力消耗") + @EN("Mechanical Lathe stress consumption") + public static Lang configOptionLatheStressRequirement; + + + @Key("config.ctnhcore.option.mixerRpmRequirement") + @CN("机械搅拌厂最低转速需求") + @EN("Mechanical Mixer minimum RPM") + public static Lang configOptionMixerRpmRequirement; + + + @Key("config.ctnhcore.option.mixerSpeedMultiplier") + @CN("机械搅拌厂加速倍率") + @EN("Mechanical Mixer speed multiplier") + public static Lang configOptionMixerSpeedMultiplier; + + + @Key("config.ctnhcore.option.mixerStressRequirement") + @CN("机械搅拌厂应力消耗") + @EN("Mechanical Mixer stress consumption") + public static Lang configOptionMixerStressRequirement; + + + @Key("config.ctnhcore.option.pressorRpmRequirement") + @CN("机械辊压厂最低转速需求") + @EN("Mechanical Pressor minimum RPM") + public static Lang configOptionPressorRpmRequirement; + + + @Key("config.ctnhcore.option.pressorSpeedMultiplier") + @CN("机械辊压厂加速倍率") + @EN("Mechanical Pressor speed multiplier") + public static Lang configOptionPressorSpeedMultiplier; + + + @Key("config.ctnhcore.option.pressorStressRequirement") + @CN("机械辊压厂应力消耗") + @EN("Mechanical Pressor stress consumption") + public static Lang configOptionPressorStressRequirement; + + + @Key("config.ctnhcore.option.sifterRpmRequirement") + @CN("机械筛选厂最低转速需求") + @EN("Mechanical Sifter minimum RPM") + public static Lang configOptionSifterRpmRequirement; + + + @Key("config.ctnhcore.option.sifterSpeedMultiplier") + @CN("机械筛选厂加速倍率") + @EN("Mechanical Sifter speed multiplier") + public static Lang configOptionSifterSpeedMultiplier; + + + @Key("config.ctnhcore.option.sifterStressRequirement") + @CN("机械筛选厂应力消耗") + @EN("Mechanical Sifter stress consumption") + public static Lang configOptionSifterStressRequirement; + + + public static CTNHConfig INSTANCE; private static final Object LOCK = new Object(); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/api/Pattern/CTNHPredicates.java b/src/main/java/io/github/cpearl0/ctnhcore/api/Pattern/CTNHPredicates.java index 50521fc31..2461d1388 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/api/Pattern/CTNHPredicates.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/api/Pattern/CTNHPredicates.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.api.Pattern; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.block.PhotovoltaicBlock; import io.github.cpearl0.ctnhcore.common.block.SpaceStructuralFramework; @@ -26,6 +29,12 @@ public class CTNHPredicates { + @CN("§c必须使用同种光伏方块") + @EN("§cAll photovoltaic blocks must be the same type") + public static Lang spacePhotovoltaicBaseStationJeiErrorPvBlock; + + + public static TraceabilityPredicate PhotovoltaicBlock() { return (new TraceabilityPredicate((blockWorldState) -> { BlockState blockState = blockWorldState.getBlockState(); @@ -50,7 +59,7 @@ public static TraceabilityPredicate PhotovoltaicBlock() { .fromBlockState(((PhotovoltaicBlock) ((Supplier) pb.getValue()).get()).defaultBlockState())) .toArray((x$0) -> new BlockInfo[x$0]))) .addTooltips(new Component[] { - Component.translatable("ctnh.spacephotovoltaicbasestation.jei.error.pv_block") }); + spacePhotovoltaicBaseStationJeiErrorPvBlock.translate() }); } public static TraceabilityPredicate SpaceStructuralFrameworkBlock() { @@ -76,7 +85,7 @@ public static TraceabilityPredicate SpaceStructuralFrameworkBlock() { .sorted(Comparator.comparingInt((value) -> value.getKey().getTier())) .map((pb) -> BlockInfo.fromBlockState((pb.getValue()).get().defaultBlockState())) .toArray(BlockInfo[]::new))) - .addTooltips(Component.translatable("ctnh.spacephotovoltaicbasestation.jei.error.pv_block")); + .addTooltips(spacePhotovoltaicBaseStationJeiErrorPvBlock.translate()); } static TraceabilityPredicate autoLaserAbilities(GTRecipeType... recipeType) { diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/gui/MachineModeFancyConfiguratorTest.java b/src/main/java/io/github/cpearl0/ctnhcore/common/gui/MachineModeFancyConfiguratorTest.java index c53f48858..149902ba7 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/gui/MachineModeFancyConfiguratorTest.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/gui/MachineModeFancyConfiguratorTest.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.gui; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.machine.multiblock.electric.CryotheumFreezer; import io.github.cpearl0.ctnhcore.registry.CTNHGuiTextures; @@ -20,6 +23,27 @@ public class MachineModeFancyConfiguratorTest implements IFancyUIProvider { + @CN("当前冷冻机加速:%.2f / %.2f") + @EN("Current freezer speed: %.2f / %.2f") + public static Lang cryotheumFreezerUi1; + + + @CN("打开升级面板") + @EN("Open Upgrade Panel") + public static Lang cryotheumFreezerUi2; + + + @CN("当前能量利用效率:%.2f / %.2f") + @EN("Current energy efficiency: %.2f / %.2f") + public static Lang cryotheumFreezerUi3; + + + @CN("当前并行:%d / %d") + @EN("Current parallelism: %d / %d") + public static Lang cryotheumFreezerUi4; + + + protected CryotheumFreezer machine; public MachineModeFancyConfiguratorTest(IRecipeLogicMachine machine) { @@ -38,15 +62,15 @@ public IGuiTexture getTabIcon() { } public MutableComponent target() { - return Component.translatable("ctnh.multiblock.cryotheum_freezer.ui.1", machine.speed_up, 3.5); + return cryotheumFreezerUi1.translate( machine.speed_up, 3.5); } public MutableComponent target2() { - return Component.translatable("ctnh.multiblock.cryotheum_freezer.ui.3", machine.energy_muti, 3.5); + return cryotheumFreezerUi3.translate( machine.energy_muti, 3.5); } public MutableComponent target3() { - return Component.translatable("ctnh.multiblock.cryotheum_freezer.ui.4", 2 * Math.pow(2, machine.parallel_muti), + return cryotheumFreezerUi4.translate( 2 * Math.pow(2, machine.parallel_muti), 2 * Math.pow(2, 10)); } @@ -174,7 +198,7 @@ public Widget createMainPage(FancyMachineUIWidget widget) { @Override public List getTabTooltips() { List tooltip = new ArrayList<>(); - tooltip.add(Component.translatable("ctnh.multiblock.cryotheum_freezer.ui.2")); + tooltip.add(cryotheumFreezerUi2.translate()); return tooltip; } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/gui/WPAAcceleratorGui.java b/src/main/java/io/github/cpearl0/ctnhcore/common/gui/WPAAcceleratorGui.java index 572107b24..dcdd9bd6a 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/gui/WPAAcceleratorGui.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/gui/WPAAcceleratorGui.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.gui; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.machine.multiblock.electric.WideParticleAccelerator; import io.github.cpearl0.ctnhcore.registry.CTNHBlocks; @@ -21,6 +24,27 @@ public class WPAAcceleratorGui implements IFancyUIProvider { + @CN("电子轨道") + @EN("Electron Beamline") + public static Lang wideAcceleratorGuiElectric; + + + @CN("访问轨道") + @EN("Access Beamline") + public static Lang wideAcceleratorGuiName; + + + @CN("中子轨道") + @EN("Neutron Beamline") + public static Lang wideAcceleratorGuiNu; + + + @CN("原子轨道") + @EN("Proton Beamline") + public static Lang wideAcceleratorGuiProton; + + + protected WideParticleAccelerator machine; public WPAAcceleratorGui(IRecipeLogicMachine machine) { @@ -29,22 +53,22 @@ public WPAAcceleratorGui(IRecipeLogicMachine machine) { } public MutableComponent get_mode() { - return (Component.translatable("ctnh.multiblock.wide_accelerator.info.power", + return (WideParticleAccelerator.wideAcceleratorInfoPower.translate( (double) machine.store_energy / 1000000, (double) machine.max_energy / 1000000)); } public Function target() { - return speed -> Component.translatable("ctnh.multiblock.wide_accelerator.info.electric_speed", speed * 50000) + return speed -> WideParticleAccelerator.wideAcceleratorInfoElectricSpeed.translate( speed * 50000) .getString(); } public Function target2() { - return speed -> Component.translatable("ctnh.multiblock.wide_accelerator.info.nu_speed", speed * 50000) + return speed -> WideParticleAccelerator.wideAcceleratorInfoNuSpeed.translate( speed * 50000) .getString(); } public Function target3() { - return speed -> Component.translatable("ctnh.multiblock.wide_accelerator.info.proton_speed", speed * 50000) + return speed -> WideParticleAccelerator.wideAcceleratorInfoProtonSpeed.translate( speed * 50000) .getString(); } @@ -115,7 +139,7 @@ public Widget createMainPage(FancyMachineUIWidget widget) { /// / 电子轨道逻辑/ //// /// ////////////////////////// group.addWidget(new TextTextureWidget(10, 40, 40, 15) - .setText(Component.translatable("ctnh.multiblock.wide_accelerator.gui.electric"))); + .setText(wideAcceleratorGuiElectric.translate())); var speed_progress = (new ProgressWidget(machine.get_electric, 50, 60, 100, 15, new ProgressTexture(CTNHGuiTextures.TEST_BAR, CTNHGuiTextures.TEST_BAR_FULL) @@ -155,7 +179,7 @@ public Widget createMainPage(FancyMachineUIWidget widget) { /// ////////////////////////// /// group.addWidget(new TextTextureWidget(10, 120 - 35, 40, 15) - .setText(Component.translatable("ctnh.multiblock.wide_accelerator.gui.nu"))); + .setText(wideAcceleratorGuiNu.translate())); var speed_progress2 = (new ProgressWidget(machine.get_nu, 50, 120 - 10, 100, 15, new ProgressTexture(CTNHGuiTextures.TEST_BAR, CTNHGuiTextures.TEST_BAR_FULL) .setFillDirection(ProgressTexture.FillDirection.LEFT_TO_RIGHT)) @@ -192,7 +216,7 @@ public Widget createMainPage(FancyMachineUIWidget widget) { /// / 原子轨道逻辑/ //// /// ////////////////////////// group.addWidget(new TextTextureWidget(10, 140, 40, 15) - .setText(Component.translatable("ctnh.multiblock.wide_accelerator.gui.proton"))); + .setText(wideAcceleratorGuiProton.translate())); var speed_progress3 = (new ProgressWidget(machine.get_proton, 50, 160, 100, 15, new ProgressTexture(CTNHGuiTextures.TEST_BAR, CTNHGuiTextures.TEST_BAR_FULL) .setFillDirection(ProgressTexture.FillDirection.LEFT_TO_RIGHT)) @@ -248,7 +272,7 @@ public Widget createMainPage(FancyMachineUIWidget widget) { @Override public List getTabTooltips() { List tooltip = new ArrayList<>(); - tooltip.add(Component.translatable("ctnh.multiblock.wide_accelerator.gui.name")); + tooltip.add(wideAcceleratorGuiName.translate()); return tooltip; } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/item/ConnectTerminalItem.java b/src/main/java/io/github/cpearl0/ctnhcore/common/item/ConnectTerminalItem.java index 3950bbd9a..85e056ba5 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/item/ConnectTerminalItem.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/item/ConnectTerminalItem.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.item; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.machine.multiblock.electric.SpacePhotovoltaicBaseStation; import io.github.cpearl0.ctnhcore.common.machine.multiblock.generator.PhotoVoltaicDroneStation; @@ -27,6 +30,32 @@ public class ConnectTerminalItem extends ComponentItem { + @CN("已经绑定的坐标:(%s,%s,%s)") + @EN("Bound coordinates: (%s,%s,%s)") + public static Lang itemTerminalLocation; + + + @CN("已清除坐标!") + @EN("Coordinates cleared!") + public static Lang itemTerminalSuccessClear; + + + @CN("已经获取坐标!") + @EN("Coordinates acquired!") + public static Lang itemTerminalSuccessGet; + + + @CN("已成功写入坐标!") + @EN("Coordinates written successfully!") + public static Lang itemTerminalSuccessWrite; + + + @CN("使用右键绑定光伏模块控制器,然后再右键将控制器和光伏基站绑定\nshift+右键任意方块清除坐标") + @EN("Right-click a photovoltaic module controller to bind it, then right-click again to bind the controller to the photovoltaic station\nShift+right-click any block to clear the coordinates") + public static Lang itemTerminalTips; + + + public ConnectTerminalItem(Properties properties) { super(properties .rarity(Rarity.EPIC)); @@ -39,7 +68,7 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { if (context.getPlayer() != null && context.getPlayer().isShiftKeyDown()) { CompoundTag newTag = new CompoundTag(); stack.setTag(newTag); - player.displayClientMessage(Component.translatable("ctnh.item.terminal.success_clear"), true); + player.displayClientMessage(itemTerminalSuccessClear.translate(), true); // 也可以在这里处理右键点击方块的逻辑 return InteractionResult.PASS; @@ -55,14 +84,14 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { nbt.putInt("block_x", blockPos.getX()); nbt.putInt("block_y", blockPos.getY()); nbt.putInt("block_z", blockPos.getZ()); - player.displayClientMessage(Component.translatable("ctnh.item.terminal.success_get"), true); + player.displayClientMessage(itemTerminalSuccessGet.translate(), true); } if (machine instanceof SpacePhotovoltaicBaseStation spb) { if (nbt.contains("block_x")) { var pos = new BlockPos(nbt.getInt("block_x"), nbt.getInt("block_y"), nbt.getInt("block_z")); spb.Drone_location = pos; - player.displayClientMessage(Component.translatable("ctnh.item.terminal.success_write"), true); + player.displayClientMessage(itemTerminalSuccessWrite.translate(), true); } } return InteractionResult.SUCCESS; @@ -88,11 +117,11 @@ private IMultiController getMachineController(Level level, BlockPos blockPos) { public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltipComponents, TooltipFlag isAdvanced) { CompoundTag nbt = stack.getOrCreateTag(); - tooltipComponents.add(Component.translatable("ctnh.item.terminal.tips")); + tooltipComponents.add(itemTerminalTips.translate()); if (nbt.contains("block_x")) { tooltipComponents.add( - Component.translatable("ctnh.item.terminal.location", String.format("%d", nbt.getInt("block_x")), + itemTerminalLocation.translate( String.format("%d", nbt.getInt("block_x")), String.format("%d", nbt.getInt("block_y")), String.format("%d", nbt.getInt("block_y")))); } super.appendHoverText(stack, level, tooltipComponents, isAdvanced); // 调用父类方法以处理原版提示信息 diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/item/IDataItem.java b/src/main/java/io/github/cpearl0/ctnhcore/common/item/IDataItem.java index 65eddb046..2422190e5 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/item/IDataItem.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/item/IDataItem.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.item; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.item.ComponentItem; @@ -15,6 +18,22 @@ public class IDataItem extends ComponentItem { + @CN("当前噪声值:%s") + @EN("Current noise: %s") + public static Lang dataNoise; + + + @CN("当前公式: a%s+b%s+c%s+d") + @EN("Current formula: a%s+b%s+c%s+d") + public static Lang itemDataTip1; + + + @CN("获取的倍率: %s") + @EN("Obtained multiplier: %s") + public static Lang itemDataTip2; + + + public IDataItem(Properties properties) { super(properties .rarity(Rarity.EPIC)); @@ -26,16 +45,16 @@ public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltipComponents, TooltipFlag isAdvanced) { - tooltipComponents.add(Component.translatable("ctnh.item.drone_tier", String.format("%d", tier))); - tooltipComponents.add(Component.translatable("ctnh.item.drone_eut", String.format("%d", eut))); - tooltipComponents.add(Component.translatable("ctnh.item.drone_durability", String.format("%d", durability))); + tooltipComponents.add(itemDroneTier.translate( String.format("%d", tier))); + tooltipComponents.add(itemDroneEut.translate( String.format("%d", eut))); + tooltipComponents.add(itemDroneDurability.translate( String.format("%d", durability))); super.appendHoverText(stack, level, tooltipComponents, isAdvanced); // 调用父类方法以处理原版提示信息 } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/item/MEAdvancedTerminalBehavior.java b/src/main/java/io/github/cpearl0/ctnhcore/common/item/MEAdvancedTerminalBehavior.java index 819a33247..1d6c6d453 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/item/MEAdvancedTerminalBehavior.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/item/MEAdvancedTerminalBehavior.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.common.item; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.common.gui.terminal.TerminalInputWidget; import io.github.cpearl0.ctnhcore.event.BuildTaskManager; @@ -49,6 +53,116 @@ public class MEAdvancedTerminalBehavior implements IItemUIFactory { + @CN("线圈等级") + @EN("Coil Tier") + public static Lang itemMeAdvancedTerminalSetting1; + + + @CN("设置自动放置的线圈等级(0:不指定等级)\n设置后会忽略结构本身的要求") + @EN("Set the tier of coils placed automatically (0: no tier specified)\nThe structure's own requirements are ignored after setting this") + public static Lang itemMeAdvancedTerminalSetting1Tooltip; + + + @CN("工业血之祭坛结构等级") + @EN("Industrial Blood Altar Tier") + public static Lang itemMeAdvancedTerminalSetting10; + + + @CN("仅对工业血之祭坛自动成型生效\n设置要构建的工业血之祭坛等级(0-4)\n0 对应二阶,4 对应六阶") + @EN("Only applies to automatic formation of Industrial Blood Altars\nSet the Industrial Blood Altar tier to build (0-4)\n0 corresponds to Tier II and 4 corresponds to Tier VI") + public static Lang itemMeAdvancedTerminalSetting10Tooltip; + + + @CN("重复结构次数") + @EN("Repeated Structure Count") + public static Lang itemMeAdvancedTerminalSetting2; + + + @CN("设置可重复结构(蒸馏塔、装配线等)的重复部分放置次数\n对超净间无效") + @EN("Set the number of repeated sections placed for repeatable structures (Distillation Towers, Assembly Lines, etc.)\nDoes not apply to Cleanrooms") + public static Lang itemMeAdvancedTerminalSetting2Tooltip; + + + @CN("无仓室模式") + @EN("Hatchless Mode") + public static Lang itemMeAdvancedTerminalSetting3; + + + @CN("是否启用无仓室模式(0:不启用,1:启用)\n启用无仓室模式后不会放置任何仓室") + @EN("Enable hatchless mode (0: disabled, 1: enabled)\nWhen enabled, no hatches will be placed") + public static Lang itemMeAdvancedTerminalSetting3Tooltip; + + + @CN("线圈替换模式") + @EN("Coil Replacement Mode") + public static Lang itemMeAdvancedTerminalSetting4; + + + @CN("是否启用线圈替换模式(0:不启用,1:启用)\n启用线圈替换模式会将所有线圈替换为指定等级的线圈\n请确保物品栏中有空间存放替换下来的线圈") + @EN("Enable coil replacement mode (0: disabled, 1: enabled)\nWhen enabled, all coils are replaced with the specified tier\nMake sure the inventory has room for the replaced coils") + public static Lang itemMeAdvancedTerminalSetting4Tooltip; + + + @CN("使用AE存储") + @EN("Use AE Storage") + public static Lang itemMeAdvancedTerminalSetting5; + + + @CN("是否启用AE库存(0:不启用,1:启用)\n启用后将优先在AE库存中检索\n通过ME无线访问点链接到网络") + @EN("Enable AE storage (0: disabled, 1: enabled)\nWhen enabled, the AE storage is searched first\nConnect to the network through an ME Wireless Access Point") + public static Lang itemMeAdvancedTerminalSetting5Tooltip; + + + @CN("放置流体") + @EN("Place Fluids") + public static Lang itemMeAdvancedTerminalSetting6; + + + @CN("是否启用流体放置(0:不启用,1:启用)\n启用后将检索并消耗物品栏/背包流体容器中的或AE库存中的流体\n可堆叠的流体容器须保证堆叠数为1") + @EN("Enable fluid placement (0: disabled, 1: enabled)\nWhen enabled, fluids are searched for and consumed from fluid containers in the inventory/backpack or AE storage\nStackable fluid containers must have a stack size of 1") + public static Lang itemMeAdvancedTerminalSetting6Tooltip; + + + @CN("在流体中放置") + @EN("Place in Fluids") + public static Lang itemMeAdvancedTerminalSetting7; + + + @CN("是否在流体中放置方块(0:不启用,1:启用)\n启用后会将空间中的流体视为空位\n与“放置流体”同时启用时,不会在流体中放置流体") + @EN("Place blocks in fluids (0: disabled, 1: enabled)\nWhen enabled, fluids in the space are treated as empty space\nWhen enabled together with Place Fluids, fluids will not be placed in fluids") + public static Lang itemMeAdvancedTerminalSetting7Tooltip; + + + @Key("item.ctnh.me_advanced_terminal.setting.8") + @CN("拆除模式") + @EN("Removal Mode") + public static Lang itemMeAdvancedTerminalSetting8; + + + @Key("item.ctnh.me_advanced_terminal.setting.8.tooltip") + @CN("是否启用拆除模式(0:不启用,1:启用)\n请确保物品栏中有空间存放拆除的方块\n与“使用AE存储”同时启用时,拆除的方块会自动存入AE存储") + @EN("Enable removal mode (0: disabled, 1: enabled)\nMake sure the inventory has room for removed blocks\nWhen enabled together with AE Storage, removed blocks are automatically stored in AE storage") + public static Lang itemMeAdvancedTerminalSetting8Tooltip; + + + @Key("item.ctnh.me_advanced_terminal.setting.9") + @CN("多方块成型配置") + @EN("Multiblock Formation Configuration") + public static Lang itemMeAdvancedTerminalSetting9; + + + @Key("item.ctnh.me_advanced_terminal.setting.9.tooltip") + @CN("多方块成型配置") + @EN("Multiblock formation configuration") + public static Lang itemMeAdvancedTerminalSetting9Tooltip; + + + @CN("多方块结构成型配置") + @EN("Multiblock Formation Settings") + public static Lang itemMeAdvancedTerminalSettingTitle; + + + // 配置键常量 private static final String COIL_TIER_KEY = "CoilTier"; private static final String REPEAT_COUNT_KEY = "RepeatCount"; @@ -162,68 +276,68 @@ private Widget createSettingsWidget(Player player) { // .addWidget(new AlignLabelWidget(89, 5, "item.ctnh.me_advanced_terminal.setting.title") // .setTextAlign(ALIGN_CENTER)); .addWidget(new LabelWidget(40, 5, - Component.translatable("item.ctnh.me_advanced_terminal.setting.title").getString())); + itemMeAdvancedTerminalSettingTitle.translate().getString())); List settings = Arrays.asList( new SettingConfig( - "item.ctnh.me_advanced_terminal.setting.1", + itemMeAdvancedTerminalSetting1.key(), getCoilTooltip(), COIL_TIER_KEY, () -> getTagValue(handItem, COIL_TIER_KEY, 0), value -> setTagValue(handItem, COIL_TIER_KEY, value), 0, GTCEuAPI.HEATING_COILS.size()), new SettingConfig( - "item.ctnh.me_advanced_terminal.setting.2", + itemMeAdvancedTerminalSetting2.key(), new ArrayList<>(Collections.singletonList( - Component.translatable("item.ctnh.me_advanced_terminal.setting.2.tooltip"))), + itemMeAdvancedTerminalSetting2Tooltip.translate())), REPEAT_COUNT_KEY, () -> getTagValue(handItem, REPEAT_COUNT_KEY, 0), value -> setTagValue(handItem, REPEAT_COUNT_KEY, value), 0, 99), new SettingConfig( - "item.ctnh.me_advanced_terminal.setting.10", + itemMeAdvancedTerminalSetting10.key(), new ArrayList<>(Collections.singletonList( - Component.translatable("item.ctnh.me_advanced_terminal.setting.10.tooltip"))), + itemMeAdvancedTerminalSetting10Tooltip.translate())), ALTAR_TIER_KEY, () -> getTagValue(handItem, ALTAR_TIER_KEY, 0), value -> setTagValue(handItem, ALTAR_TIER_KEY, value), 0, 4), new SettingConfig( - "item.ctnh.me_advanced_terminal.setting.3", + itemMeAdvancedTerminalSetting3.key(), new ArrayList<>(Collections.singletonList( - Component.translatable("item.ctnh.me_advanced_terminal.setting.3.tooltip"))), + itemMeAdvancedTerminalSetting3Tooltip.translate())), NO_HATCH_MODE_KEY, () -> getTagValue(handItem, NO_HATCH_MODE_KEY, 1), value -> setTagValue(handItem, NO_HATCH_MODE_KEY, value), 0, 1), new SettingConfig( - "item.ctnh.me_advanced_terminal.setting.4", + itemMeAdvancedTerminalSetting4.key(), new ArrayList<>(Collections.singletonList( - Component.translatable("item.ctnh.me_advanced_terminal.setting.4.tooltip"))), + itemMeAdvancedTerminalSetting4Tooltip.translate())), REPLACE_COIL_MODE_KEY, () -> getTagValue(handItem, REPLACE_COIL_MODE_KEY, 0), value -> setTagValue(handItem, REPLACE_COIL_MODE_KEY, value), 0, 1), new SettingConfig( - "item.ctnh.me_advanced_terminal.setting.5", + itemMeAdvancedTerminalSetting5.key(), new ArrayList<>(Collections.singletonList( - Component.translatable("item.ctnh.me_advanced_terminal.setting.5.tooltip"))), + itemMeAdvancedTerminalSetting5Tooltip.translate())), USE_AE_KEY, () -> getTagValue(handItem, USE_AE_KEY, 0), value -> setTagValue(handItem, USE_AE_KEY, value), 0, 1), new SettingConfig( - "item.ctnh.me_advanced_terminal.setting.6", + itemMeAdvancedTerminalSetting6.key(), new ArrayList<>(Collections.singletonList( - Component.translatable("item.ctnh.me_advanced_terminal.setting.6.tooltip"))), + itemMeAdvancedTerminalSetting6Tooltip.translate())), PLACE_FLUID_KEY, () -> getTagValue(handItem, PLACE_FLUID_KEY, 0), value -> setTagValue(handItem, PLACE_FLUID_KEY, value), 0, 1), new SettingConfig( - "item.ctnh.me_advanced_terminal.setting.7", + itemMeAdvancedTerminalSetting7.key(), new ArrayList<>(Collections.singletonList( - Component.translatable("item.ctnh.me_advanced_terminal.setting.7.tooltip"))), + itemMeAdvancedTerminalSetting7Tooltip.translate())), PLACE_IN_FLUID_KEY, () -> getTagValue(handItem, PLACE_IN_FLUID_KEY, 0), value -> setTagValue(handItem, PLACE_IN_FLUID_KEY, value), @@ -248,7 +362,7 @@ private Widget createSettingsWidget(Player player) { private List getCoilTooltip() { List lines = new ArrayList<>(); - lines.add(Component.translatable("item.ctnh.me_advanced_terminal.setting.1.tooltip")); + lines.add(itemMeAdvancedTerminalSetting1Tooltip.translate()); GTCEuAPI.HEATING_COILS.entrySet().stream() .sorted(Comparator.comparingInt(entry -> entry.getKey().getTier())) .forEach(entry -> lines.add(Component.literal(String.valueOf(entry.getKey().getTier() + 1)) diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/item/TestingTerminalBehavior.java b/src/main/java/io/github/cpearl0/ctnhcore/common/item/TestingTerminalBehavior.java index 685e54351..15def903c 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/item/TestingTerminalBehavior.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/item/TestingTerminalBehavior.java @@ -1,4 +1,5 @@ package io.github.cpearl0.ctnhcore.common.item; +import com.ctnhlang.Key; import com.gregtechceu.gtceu.api.item.component.IInteractionItem; import com.gregtechceu.gtceu.api.machine.MetaMachine; @@ -38,6 +39,33 @@ public class TestingTerminalBehavior implements IInteractionItem { + @Key("ctnh.test_terminal.error_info") + @CN("(%s)") + @EN("(%s)") + public static Lang testTerminalErrorInfo; + + + @CN("在%s处缺少") + @EN("At %s, you need") + public static Lang testTerminalLackError; + + + @CN("(%s,%s,%s)") + @EN("(%s,%s,%s)") + public static Lang testTerminalPosition; + + + @CN("一切正常!") + @EN("Everything is OK!") + public static Lang testTerminalSuccess; + + + @CN("在%s处应为") + @EN("At %s, it should be") + public static Lang testTerminalWrongError; + + + private static final String TAG_FLIPPED = "IsFlipped"; @CN("翻转模式启动") @@ -95,7 +123,7 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { if (controller.isFormed()) { player.sendSystemMessage( - Component.translatable("ctnh.test_terminal.success") + testTerminalSuccess.translate() .withStyle(ChatFormatting.GREEN)); return InteractionResult.SUCCESS; } @@ -174,16 +202,16 @@ private List generateErrorMessages(PatternError error) { if (error instanceof SinglePredicateError) { - messages.add(Component.translatable( - "ctnh.test_terminal.lack_error", - Component.translatable("ctnh.test_terminal.position", + messages.add(testTerminalLackError.translate( + + testTerminalPosition.translate( pos.getX(), pos.getY(), pos.getZ()))); } else { - messages.add(Component.translatable( - "ctnh.test_terminal.wrong_error", - Component.translatable("ctnh.test_terminal.position", + messages.add(testTerminalWrongError.translate( + + testTerminalPosition.translate( pos.getX(), pos.getY(), pos.getZ()))); } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/SlaughterHouseMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/SlaughterHouseMachine.java index a9e6d3591..7eac3ec35 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/SlaughterHouseMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/SlaughterHouseMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.api.gui.CTNHGuiTextures; @@ -64,6 +67,12 @@ public class SlaughterHouseMachine extends RecipeElectricMultiblockMachine implements IMachineModifyDrops { + @CN("怪物种类:%d (%s)") + @EN("Mob Types: %d (%s)") + public static Lang slaughterHouseInfoMobcount; + + + @Persisted public final NotifiableItemStackHandler machineStorage; public UUID uuid = UUID.randomUUID(); @@ -451,6 +460,6 @@ public void addDisplayText(@NotNull List textList) { super.addDisplayText(textList); var mobName = mobList.stream().map(mob -> EntityType.byString(mob).get().getDescription().getString()).toList(); textList.add(textList.size(), - Component.translatable("ctnh.multiblock.slaughter_house.info.mobcount", mobList.size(), mobName)); + slaughterHouseInfoMobcount.translate( mobList.size(), mobName)); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/UnderfloorHeatingMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/UnderfloorHeatingMachine.java index 7b9c70327..dca7cc92f 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/UnderfloorHeatingMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/UnderfloorHeatingMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; import com.gregtechceu.gtceu.api.machine.feature.multiblock.IDisplayUIMachine; @@ -27,6 +30,32 @@ public class UnderfloorHeatingMachine extends RecipeMultiblockMachine implements IDisplayUIMachine { + @CN("效率:%d") + @EN("Efficiency: %d") + public static Lang underfloorHeatingSystemInfoEfficiency; + + + @CN("速率:%s") + @EN("Rate: %s") + public static Lang underfloorHeatingSystemInfoRate; + + + @CN("减少蒸汽的消耗来降低地暖的发热功率") + @EN("Reduce the consumption of steam to reduce the heating power of the floor heating") + public static Lang underfloorHeatingSystemInfoRateTooltip; + + + @CN("调节速率:") + @EN("Adjust rate: ") + public static Lang underfloorHeatingSystemInfoRateModify; + + + @CN("蒸汽消耗速率:%d") + @EN("Steam consumption rate: %d") + public static Lang underfloorHeatingSystemInfoSteamConsumption; + + + @Getter public int rate = 100; public double steam_consumption_default = 8; @@ -111,15 +140,15 @@ public void addDisplayText(List textList) { textList.add(Component.translatable("gtceu.multiblock.waiting") .setStyle(Style.EMPTY.withColor(ChatFormatting.RED))); } - textList.add(Component.translatable("ctnh.multiblock.underfloor_heating_system.info.steam_consumption", + textList.add(underfloorHeatingSystemInfoSteamConsumption.translate( String.format("%.1f", steam_consumption_default * rate / 100))); - var rateText = Component.translatable("ctnh.multiblock.underfloor_heating_system.info.rate", + var rateText = underfloorHeatingSystemInfoRate.translate( ChatFormatting.AQUA.toString() + rate + "%") .withStyle(Style.EMPTY.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, - Component.translatable("ctnh.multiblock.underfloor_heating_system.info.rate.tooltip")))); + underfloorHeatingSystemInfoRateTooltip.translate()))); textList.add(rateText); - var buttonText = Component.translatable("ctnh.multiblock.underfloor_heating_system.info.rate_modify"); + var buttonText = underfloorHeatingSystemInfoRateModify.translate(); buttonText.append(" "); buttonText.append(ComponentPanelWidget.withButton(Component.literal("[-]"), "sub")); buttonText.append(" "); @@ -129,7 +158,7 @@ public void addDisplayText(List textList) { if (efficiency == 0) { efficiency = getEfficiency(); } - textList.add(Component.translatable("ctnh.multiblock.underfloor_heating_system.info.efficiency", + textList.add(underfloorHeatingSystemInfoEfficiency.translate( String.format("%.1f", efficiency * 100))); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/AstronomicalMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/AstronomicalMachine.java index 63676c4cd..73306fdec 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/AstronomicalMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/AstronomicalMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.machine.multiblock.part.CircuitBusPartMachine; @@ -25,6 +28,12 @@ public class AstronomicalMachine extends RecipeElectricMultiblockMachine { + @CN("只能在夜晚使用") + @EN("Can only be used at night") + public static Lang astronomicalInfoInvalid; + + + public static final int START_TIME = 23000; public static final int END_TIME = 13000; @@ -48,7 +57,7 @@ public boolean keepSubscribing() { @Override public Component beforeWorking(@NotNull GTRecipe recipe) { if (isValidPhotovoltaicPower()) return null; - return Component.translatable("ctnh.multiblock.astronomical.info.invalid"); + return astronomicalInfoInvalid.translate(); // final boolean[] begin = {false}; // getParts().stream() // .filter(part -> part instanceof CircuitBusPartMachine) @@ -67,7 +76,7 @@ public Component beforeWorking(@NotNull GTRecipe recipe) { public void addDisplayText(@NotNull List textList) { if (isFormed()) { if (!isValidPhotovoltaicPower()) { - textList.add(Component.translatable("ctnh.multiblock.astronomical.info.invalid") + textList.add(astronomicalInfoInvalid.translate() .withStyle(ChatFormatting.RED)); } else { super.addDisplayText(textList); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/BlazeBlastFurnaceMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/BlazeBlastFurnaceMachine.java index 5420090e2..d010c04b0 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/BlazeBlastFurnaceMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/BlazeBlastFurnaceMachine.java @@ -1,4 +1,5 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import io.github.cpearl0.ctnhcore.utils.CTNHCommonTooltips; import io.github.cpearl0.ctnhcore.registry.material.CTNHMaterials; @@ -26,6 +27,12 @@ public class BlazeBlastFurnaceMachine extends CoilWorkableElectricMultiblockMachine { + @CN("烈焰之炽焱:%d mB") + @EN("Blazing Pyrotheum: %d mB") + public static Lang blazeBlastFurnaceInfoPyrotheum; + + + public BlazeBlastFurnaceMachine(IMachineBlockEntity holder) { super(holder); } @@ -76,14 +83,14 @@ public void addDisplayText(@NotNull List textList) { if (isFormed()) { textList.add(Component.translatable("gtceu.multiblock.blast_furnace.max_temperature", Component.literal(getCoilType().getCoilTemperature() + "K").withStyle(ChatFormatting.RED))); - textList.add(Component.translatable("ctnh.multiblock.blaze_blast_furnace.info.pyrotheum", current)); + textList.add(blazeBlastFurnaceInfoPyrotheum.translate( current)); } } public static Component recipeModifier(MetaMachine machine, RecipeHandlerGroup group, GTRecipe recipe) { int parallel = ParallelLogic.getParallelAmount(group, recipe, 8); if (parallel == 0) - return Component.translatable("gtceu.recipe_modifier.default_fail"); + return CTNHCommonTooltips.gtceuRecipeModifierDefaultFail.translate(); recipe.multiplyEUt(0.5 * parallel); recipe.multiplyAllContents(parallel); recipe.parallels *= parallel; diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/CryotheumFreezer.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/CryotheumFreezer.java index 0bf9c02cb..2ba02848c 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/CryotheumFreezer.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/CryotheumFreezer.java @@ -30,6 +30,17 @@ public class CryotheumFreezer extends RecipeElectricMultiblockMachine implements IFancyUIMachine { + @CN("当前泪之晶点数:%d") + @EN("Current Tear Crystal points: %d") + public static Lang cryotheumFreezerUi0; + + + @CN("§b当前消耗的凛冰:%d / %d") + @EN("§bCurrent Cryotheum consumption: %d / %d") + public static Lang cryotheumFreezerUi5; + + + public CryotheumFreezer(IMachineBlockEntity holder, Object... args) { super(holder, args); } @@ -53,7 +64,7 @@ public CryotheumFreezer(IMachineBlockEntity holder, Object... args) { public long target = 100000L; public MutableComponent provider_a() { - return Component.translatable("ctnh.multiblock.cryotheum_freezer.ui.0", a); + return cryotheumFreezerUi0.translate( a); } @CN("极寒之凛冰不足") @@ -113,6 +124,6 @@ public void attachSideTabs(TabsWidget sideTabs) { public void addDisplayText(List textList) { super.addDisplayText(textList); textList.add(textList.size(), - Component.translatable("ctnh.multiblock.cryotheum_freezer.ui.5", used_energy, target)); + cryotheumFreezerUi5.translate( used_energy, target)); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/FactoryMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/FactoryMachine.java index 823195f14..022d114a9 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/FactoryMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/FactoryMachine.java @@ -1,4 +1,5 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import io.github.cpearl0.ctnhcore.utils.CTNHCommonTooltips; import io.github.cpearl0.ctnhcore.registry.CTNHItems; import io.github.cpearl0.ctnhcore.registry.CTNHRecipeModifiers; @@ -38,6 +39,17 @@ public class FactoryMachine extends RecipeElectricMultiblockMachine implements IMachineModifyDrops { + @CN("基础效率:x%s") + @EN("Base Productivity: x%s") + public static Lang sweatShopInfoBasicRate; + + + @CN("员工数量:%s") + @EN("Employee Count: %s") + public static Lang sweatShopInfoVillagerCount; + + + public int CENTRIFUGE_COUNT = 0; public int LATHE_COUNT = 0; public int CRUSHING_COUNT = 0; @@ -225,7 +237,7 @@ public static Component recipeModifier(MetaMachine machine, RecipeHandlerGroup g var recipeType = recipe.recipeType; var recipeTier = recipe.tier; if (fmachine.basicRate == 0) { - return Component.translatable("gtceu.recipe_modifier.default_fail"); + return CTNHCommonTooltips.gtceuRecipeModifierDefaultFail.translate(); } recipe.multiplyDuration(2 / fmachine.basicRate * Math.pow(recipeTier, 2)); if (recipeType.equals(GTRecipeTypes.CENTRIFUGE_RECIPES)) { @@ -300,8 +312,8 @@ public void addDisplayText(List textList) { updateVillagerCount(); updateBasicRate(); super.addDisplayText(textList); - textList.add(Component.translatable("ctnh.multiblock.sweat_shop.info.villager_count", VILLAGER_COUNT)); + textList.add(sweatShopInfoVillagerCount.translate( VILLAGER_COUNT)); textList.add( - Component.translatable("ctnh.multiblock.sweat_shop.info.basic_rate", String.format("%.2f", basicRate))); + sweatShopInfoBasicRate.translate( String.format("%.2f", basicRate))); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/ForestMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/ForestMachine.java index cb3e5b2ed..37dd71f4c 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/ForestMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/ForestMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; import com.gregtechceu.gtceu.api.machine.MetaMachine; @@ -18,6 +21,17 @@ public class ForestMachine extends RecipeElectricMultiblockMachine { + @CN("湿度值:%d") + @EN("Humidity level: %d") + public static Lang forestMachineInfoHumidity; + + + @CN("并行数:%d") + @EN("Parallel count: %d") + public static Lang forestMachineInfoParallelCount; + + + // 湿度值 private int humidity = 0; // 初始湿度为0% private static final int MAX_HUMIDITY = 100; // 最大湿度为100% @@ -86,8 +100,8 @@ public static Component recipeModifier(MetaMachine machine, RecipeHandlerGroup g @Override public void addDisplayText(List textList) { super.addDisplayText(textList); - textList.add(Component.translatable("ctnh.multiblock.forest_machine.info.humidity", humidity + "%")); - textList.add(Component.translatable("ctnh.multiblock.forest_machine.info.parallel_count", getParallelCount())); + textList.add(forestMachineInfoHumidity.translate( humidity + "%")); + textList.add(forestMachineInfoParallelCount.translate( getParallelCount())); } @Override diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/NeuroMatrixCompiler.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/NeuroMatrixCompiler.java index f69ae3345..0f060f97c 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/NeuroMatrixCompiler.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/NeuroMatrixCompiler.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.machine.multiblock.part.CompilerMachine; import io.github.cpearl0.ctnhcore.registry.CTNHItems; @@ -32,6 +35,47 @@ public class NeuroMatrixCompiler extends RecipeElectricMultiblockMachine implements ITieredMachine { + @CN("§c未知错误") + @EN("§cUnknown error") + public static Lang compilerError0; + + + @CN("§c舱室等级与片区1不匹配") + @EN("§cChamber tier does not match Region 1") + public static Lang compilerError1; + + + @CN("片区%d状态:%s") + @EN("Region %d status: %s") + public static Lang neuroMatrixCompilerInfoPartStates; + + + @CN("§c错误,类型:%s") + @EN("§cError, type: %s") + public static Lang neuroMatrixCompilerInfoStateError; + + + @CN("§a完成") + @EN("§aComplete") + public static Lang neuroMatrixCompilerInfoStateFinish; + + + @CN("§6待机") + @EN("§6Idle") + public static Lang neuroMatrixCompilerInfoStateIdle; + + + @CN("§b等待中......") + @EN("§bWaiting......") + public static Lang neuroMatrixCompilerInfoStateWaiting; + + + @CN("§9运行中:%ss/%ss") + @EN("§9Working: %ss/%ss") + public static Lang neuroMatrixCompilerInfoStateWorking; + + + public NeuroMatrixCompiler(IMachineBlockEntity holder) { super(holder); } @@ -384,39 +428,39 @@ public void addDisplayText(List textList) { public MutableComponent error_analyse(int i) { if (i == -1) { - return Component.translatable("ctnh.compiler.error.0"); + return compilerError0.translate(); } if (i == 0) - return Component.translatable("ctnh.compiler.error.1"); - return Component.translatable("ctnh.compiler.error.0"); + return compilerError1.translate(); + return compilerError0.translate(); } public MutableComponent addProgressPartSatus(int i) { if (states.get(i) == 0) { - return (Component.translatable("ctnh.neuro_matrix_compiler.info.part_states", - new Object[] { i + 1, Component.translatable("ctnh.neuro_matrix_compiler.info.state.idle") })); + return (neuroMatrixCompilerInfoPartStates.translate( + new Object[] { i + 1, neuroMatrixCompilerInfoStateIdle.translate() })); } if (states.get(i) == 1) { - return (Component.translatable("ctnh.neuro_matrix_compiler.info.part_states", + return (neuroMatrixCompilerInfoPartStates.translate( new Object[] { i + 1, - Component.translatable("ctnh.neuro_matrix_compiler.info.state.working", new Object[] { + neuroMatrixCompilerInfoStateWorking.translate( new Object[] { String.format("%.2f", (double) this.recipeLogic.getProgress() / 20), String.format("%.2f", (double) this.recipeLogic.getMaxProgress() / 120) }) })); } if (states.get(i) == 2) { - return (Component.translatable("ctnh.neuro_matrix_compiler.info.part_states", - new Object[] { i + 1, Component.translatable("ctnh.neuro_matrix_compiler.info.state.error", + return (neuroMatrixCompilerInfoPartStates.translate( + new Object[] { i + 1, neuroMatrixCompilerInfoStateError.translate( new Object[] { error_analyse(error_message.get(i)) }) })); } if (states.get(i) == 3) { - return (Component.translatable("ctnh.neuro_matrix_compiler.info.part_states", - new Object[] { i + 1, Component.translatable("ctnh.neuro_matrix_compiler.info.state.finish") })); + return (neuroMatrixCompilerInfoPartStates.translate( + new Object[] { i + 1, neuroMatrixCompilerInfoStateFinish.translate() })); } if (states.get(i) == 4) { - return (Component.translatable("ctnh.neuro_matrix_compiler.info.part_states", - new Object[] { i + 1, Component.translatable("ctnh.neuro_matrix_compiler.info.state.waiting") })); + return (neuroMatrixCompilerInfoPartStates.translate( + new Object[] { i + 1, neuroMatrixCompilerInfoStateWaiting.translate() })); } - return (Component.translatable("ctnh.neuro_matrix_compiler.info.part_states", - new Object[] { i + 1, Component.translatable("ctnh.neuro_matrix_compiler.info.state.error") })); + return (neuroMatrixCompilerInfoPartStates.translate( + new Object[] { i + 1, neuroMatrixCompilerInfoStateError.translate() })); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/ScalableReservoirComputingMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/ScalableReservoirComputingMachine.java index 53493e01e..7c30dc62c 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/ScalableReservoirComputingMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/ScalableReservoirComputingMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.machine.trait.ScalableReservoirComputingLogic; @@ -23,6 +26,27 @@ public class ScalableReservoirComputingMachine extends RecipeElectricMultiblockMachine implements ComputationProducer, IControllable { + @CN("无牺牲者") + @EN("No sacrifices found") + public static Lang ctnhSrcSacrificeEmpty; + + + @CN("已锁定牺牲者!") + @EN("Sacrifice LOCKED") + public static Lang ctnhSrcSacrificeLocked; + + + @CN("无法锁定牺牲者") + @EN("Sacrifice UNLOCKED") + public static Lang ctnhSrcSacrificeUnlocked; + + + @CN("湿件剩余存活时间: %s ticks") + @EN("Wetware duration: %s ticks") + public static Lang ctnhSrcWetwareDuration; + + + public ScalableReservoirComputingMachine(IMachineBlockEntity holder, Object... args) { super(holder, args); } @@ -102,13 +126,21 @@ public static enum SacrificeLockState { SacrificeLockState sacrificeLockState = SacrificeLockState.SACRIFICE_EMPTY; + private static Lang sacrificeStatus(SacrificeLockState state) { + return switch (state) { + case SACRIFICE_EMPTY -> ctnhSrcSacrificeEmpty; + case SACRIFICE_LOCKED -> ctnhSrcSacrificeLocked; + case SACRIFICE_UNLOCKED -> ctnhSrcSacrificeUnlocked; + }; + } + @Override public void addDisplayText(@NotNull List textList) { if (isFormed()) { if (!isActive()) { - textList.add(Component.translatable("ctnhcore.src." + sacrificeLockState.name().toLowerCase())); + textList.add(sacrificeStatus(sacrificeLockState).translate()); } - textList.add(Component.translatable("ctnhcore.src.wetware_duration", + textList.add(ctnhSrcWetwareDuration.translate( FormattingUtil.formatNumbers(duration))); textList.add(Component.translatable("gtceu.multiblock.computation.max", FormattingUtil.formatNumbers(maxCWUt))); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/SinopeChemical.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/SinopeChemical.java index c6d02c776..00c1847b2 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/SinopeChemical.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/SinopeChemical.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.data.tag.TagPrefix; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; @@ -22,6 +25,17 @@ public class SinopeChemical extends CoilWorkableElectricMultiblockMachine implements ITieredMachine { + @CN("线圈加速倍率:%d") + @EN("Coil Accelerating Rate: %d") + public static Lang sinopeChemicalInfoLevel; + + + @CN("并行数:%d") + @EN("Parallel Count: %d") + public static Lang sinopeChemicalInfoParallel; + + + public int parallel = 0; public int machine_tier = 0; @@ -69,9 +83,9 @@ public void addDisplayText(List textList) { super.addDisplayText(textList); var tier = getTier(); - textList.add(textList.size(), Component.translatable("ctnh.multiblock.sinope_chemical.info.level", + textList.add(textList.size(), sinopeChemicalInfoLevel.translate( String.format("%d", machine_tier * 2))); textList.add(textList.size(), - Component.translatable("ctnh.multiblock.sinope_chemical.info.parallel", String.format("%d", parallel))); + sinopeChemicalInfoParallel.translate( String.format("%d", parallel))); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/SpacePhotovoltaicBaseStation.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/SpacePhotovoltaicBaseStation.java index ab76e2f3e..3203256a3 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/SpacePhotovoltaicBaseStation.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/SpacePhotovoltaicBaseStation.java @@ -30,6 +30,27 @@ public class SpacePhotovoltaicBaseStation extends RecipeElectricMultiblockMachine implements ITieredMachine { + @CN("当前光伏方块等级:%d") + @EN("Current photovoltaic block tier: %d") + public static Lang spacephotovoltaicbasestationInfoPvcTier0; + + + @CN("当前结构耐热等级:%d") + @EN("Current structure heat-resistance tier: %d") + public static Lang spacephotovoltaicbasestationInfoPvcTier1; + + + @CN("当前结构发电量:%.2f") + @EN("Current power generation: %.2f") + public static Lang spacephotovoltaicbasestationInfoPvcTier2; + + + @CN("当前维度光倍率:%d") + @EN("Current dimensional light multiplier: %d") + public static Lang spacephotovoltaicbasestationInfoPvcTier3; + + + public SpacePhotovoltaicBaseStation(IMachineBlockEntity holder, Object... args) { super(holder, args); } @@ -176,12 +197,12 @@ public static Component recipeModifier(MetaMachine machine, RecipeHandlerGroup g public void addDisplayText(List textList) { textList.add(textList.size(), - Component.translatable("ctnh.spacephotovoltaicbasestation.info.pvc_tier.0", String.format("%d", heat))); + spacephotovoltaicbasestationInfoPvcTier0.translate( String.format("%d", heat))); textList.add(textList.size(), - Component.translatable("ctnh.spacephotovoltaicbasestation.info.pvc_tier.1", String.format("%d", heat))); - textList.add(textList.size(), Component.translatable("ctnh.spacephotovoltaicbasestation.info.pvc_tier.2", + spacephotovoltaicbasestationInfoPvcTier1.translate( String.format("%d", heat))); + textList.add(textList.size(), spacephotovoltaicbasestationInfoPvcTier2.translate( String.format("%.2f", muti * 131072 * heat))); - textList.add(textList.size(), Component.translatable("ctnh.spacephotovoltaicbasestation.info.pvc_tier.3", + textList.add(textList.size(), spacephotovoltaicbasestationInfoPvcTier3.translate( String.format("%.1f", muti))); super.addDisplayText(textList); } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/Superconducting_Penning_Trap.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/Superconducting_Penning_Trap.java index c55a48d35..02273bd85 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/Superconducting_Penning_Trap.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/Superconducting_Penning_Trap.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import com.gregtechceu.gtceu.api.capability.IControllable; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; @@ -26,6 +30,43 @@ public class Superconducting_Penning_Trap extends RecipeElectricMultiblockMachine implements ITieredMachine, IExplosionMachine, IControllable { + @CN("反电子量:%d") + @EN("Positron amount: %d") + public static Lang antiElectric; + + + @CN("反中子量:%d") + @EN("Antineutron amount: %d") + public static Lang antiNu; + + + @CN("反质子量:%d") + @EN("Antiproton amount: %d") + public static Lang antiProton; + + + @CN("§c警告:供电不足,约束场即将失效!") + @EN("§cWarning: insufficient power; the containment field is about to fail!") + public static Lang noEnergyWaring; + + + @CN("约束危险物质") + @EN("Contain hazardous materials") + public static Lang restoreDanger; + + + @Key("ctnh.trap_electric") + @CN("当前存储电量:%deu") + @EN("Current stored power: %d EU") + public static Lang trapElectric; + + + @CN("允许存储电量上限:%deu") + @EN("Maximum stored power: %d EU") + public static Lang trapElectricMax; + + + public BlockPos pos; public Level level; public boolean isconnect = false; @@ -168,24 +209,24 @@ public void tick() { @Override public void addDisplayText(List textList) { if (isconnect) { - textList.add(textList.size(), Component.translatable("ctnh.connect")); + textList.add(textList.size(), WideParticleAccelerator.connect.translate()); } if (no_energy_waring) { - textList.add(textList.size(), Component.translatable("ctnh.no_energy_waring")); + textList.add(textList.size(), noEnergyWaring.translate()); } MultiblockDisplayText.builder(textList, isFormed()) .setWorkingStatus(true, isActive() && isWorkingEnabled()) // transform into two-state system for display .setWorkingStatusKeys( "gtceu.multiblock.idling", "gtceu.multiblock.idling", - "ctnh.restore_danger") + restoreDanger.key()) .addEnergyUsageExactLine(energy) .addWorkingStatusLine(); - textList.add(textList.size(), Component.translatable("ctnh.trap_electric_max", String.format("%d", anti_nu))); - textList.add(textList.size(), Component.translatable("ctnh.anti_electric", String.format("%d", anti_electron))); - textList.add(textList.size(), Component.translatable("ctnh.anti_nu", String.format("%d", anti_nu))); - textList.add(textList.size(), Component.translatable("ctnh.anti_proton", String.format("%d", anti_proton))); - textList.add(textList.size(), Component.translatable("ctnh.anti_electric", String.format("%d", anti_electron))); + textList.add(textList.size(), trapElectricMax.translate( String.format("%d", anti_nu))); + textList.add(textList.size(), antiElectric.translate( String.format("%d", anti_electron))); + textList.add(textList.size(), antiNu.translate( String.format("%d", anti_nu))); + textList.add(textList.size(), antiProton.translate( String.format("%d", anti_proton))); + textList.add(textList.size(), antiElectric.translate( String.format("%d", anti_electron))); } @Override diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/VoidMinerProcessingMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/VoidMinerProcessingMachine.java index 45315779f..4f80d1273 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/VoidMinerProcessingMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/VoidMinerProcessingMachine.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import io.github.cpearl0.ctnhcore.common.machine.multiblock.generator.NaqReactorMachine; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.capability.recipe.FluidRecipeCapability; import com.gregtechceu.gtceu.api.capability.recipe.ItemRecipeCapability; @@ -36,6 +40,22 @@ @Getter public class VoidMinerProcessingMachine extends RecipeElectricMultiblockMachine { + @CN("极寒之凛冰消耗:%d ") + @EN("Cryotheum consumption: %d ") + public static Lang voidMinerInfoCryotheum; + + + @CN("过热!!!") + @EN("Overheating!!!") + public static Lang voidMinerInfoOverheat; + + + @CN("烈焰之炽焱消耗:%d ") + @EN("Pyrotheum consumption: %d ") + public static Lang voidMinerInfoPyrotheum; + + + @Persisted @DescSynced private int currentTemperature = 0; // 初始温度为0K @@ -148,13 +168,13 @@ public void addDisplayText(@NotNull List textList) { if (isOverheated) { textList.add( - Component.translatable("ctnh.multiblock.void_miner.info.overheat").withStyle(ChatFormatting.RED)); + voidMinerInfoOverheat.translate().withStyle(ChatFormatting.RED)); } - textList.add(Component.translatable("ctnh.multiblock.naq_reactor.info.temperature", + textList.add(NaqReactorMachine.naqReactorInfoTemperature.translate( Component.literal(currentTemperature + "K").withStyle(ChatFormatting.RED))); - textList.add(Component.translatable("ctnh.multiblock.void_miner.info.pyrotheum", nextPyrotheumAmount + " mB") + textList.add(voidMinerInfoPyrotheum.translate( nextPyrotheumAmount + " mB") .withStyle(ChatFormatting.GOLD)); - textList.add(Component.translatable("ctnh.multiblock.void_miner.info.cryotheum", nextCryotheumAmount + " mB") + textList.add(voidMinerInfoCryotheum.translate( nextCryotheumAmount + " mB") .withStyle(ChatFormatting.AQUA)); } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/WideParticleAccelerator.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/WideParticleAccelerator.java index e2f816c34..1b803fd9b 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/WideParticleAccelerator.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/electric/WideParticleAccelerator.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.electric; +import io.github.cpearl0.ctnhcore.utils.CTNHCommonTooltips; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.gui.WPAAcceleratorGui; @@ -38,6 +42,37 @@ public class WideParticleAccelerator extends RecipeElectricMultiblockMachine implements ITieredMachine, IExplosionMachine { + @CN("连接已搭建") + @EN("Connection established") + public static Lang connect; + + + @CN("电量消耗倍率:%.2f") + @EN("Power Consumption Multiplier: %.2f") + public static Lang wideAcceleratorInfoConsume; + + + @CN("电子速度:%.2fMev") + @EN("Electron Velocity: %.2f MeV") + public static Lang wideAcceleratorInfoElectricSpeed; + + + @CN("中子速度:%.2fMev") + @EN("Neutron Velocity: %.2f MeV") + public static Lang wideAcceleratorInfoNuSpeed; + + + @CN("存储的电量:%.2f E/%.2f E") + @EN("Stored energy: %.2f E/%.2f E") + public static Lang wideAcceleratorInfoPower; + + + @CN("质子速度:%.2fMev") + @EN("Proton Velocity: %.2f MeV") + public static Lang wideAcceleratorInfoProtonSpeed; + + + @Persisted @Getter public double nu_speed = 0; @@ -222,15 +257,15 @@ public static Component recipeModifier(MetaMachine machine, RecipeHandlerGroup g } // 速度不足 if (recipe.data.getString("type").equals("nu") && recipe.data.getDouble("speed") >= wmachine.nu_speed) { - return Component.translatable("gtceu.recipe_modifier.default_fail"); + return CTNHCommonTooltips.gtceuRecipeModifierDefaultFail.translate(); } if (recipe.data.getString("type").equals("element") && recipe.data.getDouble("speed") >= wmachine.electric_speed) { - return Component.translatable("gtceu.recipe_modifier.default_fail"); + return CTNHCommonTooltips.gtceuRecipeModifierDefaultFail.translate(); } if (recipe.data.getString("type").equals("proton") && recipe.data.getDouble("speed") >= wmachine.proton_speed) { - return Component.translatable("gtceu.recipe_modifier.default_fail"); + return CTNHCommonTooltips.gtceuRecipeModifierDefaultFail.translate(); } // 计算并行 int parallel = 1; @@ -327,25 +362,25 @@ public static Component recipeModifier(MetaMachine machine, RecipeHandlerGroup g recipe.multiplyDuration(Math.max(0.1, muti)); return null; } - return Component.translatable("gtceu.recipe_modifier.default_fail"); + return CTNHCommonTooltips.gtceuRecipeModifierDefaultFail.translate(); } @Override public void addDisplayText(List textList) { super.addDisplayText(textList); if (isconnect) { - textList.add(textList.size(), Component.translatable("ctnh.connect")); + textList.add(textList.size(), connect.translate()); } - textList.add(textList.size(), Component.translatable("ctnh.multiblock.wide_accelerator.info.power", + textList.add(textList.size(), wideAcceleratorInfoPower.translate( (double) this.store_energy / 100000000, (double) this.max_energy / 100000000)); - textList.add(textList.size(), Component.translatable("ctnh.multiblock.wide_accelerator.info.nu_speed", + textList.add(textList.size(), wideAcceleratorInfoNuSpeed.translate( String.format("%.2f", nu_speed))); - textList.add(textList.size(), Component.translatable("ctnh.multiblock.wide_accelerator.info.proton_speed", + textList.add(textList.size(), wideAcceleratorInfoProtonSpeed.translate( String.format("%.2f", proton_speed))); - textList.add(textList.size(), Component.translatable("ctnh.multiblock.wide_accelerator.info.electric_speed", + textList.add(textList.size(), wideAcceleratorInfoElectricSpeed.translate( String.format("%.2f", electric_speed))); - textList.add(textList.size(), Component.translatable("ctnh.multiblock.wide_accelerator.info.consume", + textList.add(textList.size(), wideAcceleratorInfoConsume.translate( String.format("%.2f", (nu_speed + proton_speed + electric_speed) / 2000 + 1))); } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/Arc_Generator.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/Arc_Generator.java index b374a477f..c077dc3da 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/Arc_Generator.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/Arc_Generator.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.generator; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; import com.gregtechceu.gtceu.api.machine.MetaMachine; @@ -16,6 +19,27 @@ public class Arc_Generator extends RecipeElectricMultiblockMachine implements ITieredMachine { + @CN("电弧最大强度:%d") + @EN("Max Arc Intensity: %d") + public static Lang arcgeneratorInfo0; + + + @CN("电弧强度:%d") + @EN("Current Arc Intensity: %d") + public static Lang arcgeneratorInfo1; + + + @CN("支持最大效率:%.2f%%") + @EN("Max Supported Efficiency: %.2f%%") + public static Lang arcgeneratorInfo2; + + + @CN("当前效率:%.2f%%") + @EN("Current Efficiency: %.2f%%") + public static Lang arcgeneratorInfo3; + + + public int arc = 0; public int arc_max = 0; public double efficiency = 0; @@ -57,13 +81,13 @@ public void addDisplayText(List textList) { var tier = getTier(); textList.add(textList.size(), - Component.translatable("ctnh.multiblock.arcgenerator.info.0", String.format("%d", arc_max))); + arcgeneratorInfo0.translate( String.format("%d", arc_max))); textList.add(textList.size(), - Component.translatable("ctnh.multiblock.arcgenerator.info.1", String.format("%d", arc))); + arcgeneratorInfo1.translate( String.format("%d", arc))); textList.add(textList.size(), - Component.translatable("ctnh.multiblock.arcgenerator.info.2", String.format("%.2f", efficiency * 100))); + arcgeneratorInfo2.translate( String.format("%.2f", efficiency * 100))); textList.add(textList.size(), - Component.translatable("ctnh.multiblock.arcgenerator.info.3", String.format("%.2f", rotor * 100))); + arcgeneratorInfo3.translate( String.format("%.2f", rotor * 100))); } @Override diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/Arc_Reactor.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/Arc_Reactor.java index c5094fc63..52602abf5 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/Arc_Reactor.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/Arc_Reactor.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.generator; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; import com.gregtechceu.gtceu.api.machine.MetaMachine; @@ -15,6 +18,17 @@ public class Arc_Reactor extends RecipeElectricMultiblockMachine implements ITieredMachine { + @CN("可输出的电弧强度:%d") + @EN("Output Arc Intensity: %d") + public static Lang arcreactorArc; + + + @CN("§b桥接已启用§r") + @EN("§bBridge Enabled§r") + public static Lang arcreactorConnect; + + + public int arc; public boolean isconnect = false; public BlockPos pos; @@ -57,10 +71,10 @@ public void addDisplayText(List textList) { super.addDisplayText(textList); var tier = getTier(); if (isconnect) { - textList.add(textList.size(), Component.translatable("ctnh.multiblock.arcreactor.connect")); + textList.add(textList.size(), arcreactorConnect.translate()); } textList.add(textList.size(), - Component.translatable("ctnh.multiblock.arcreactor.arc", String.format("%d", arc))); + arcreactorArc.translate( String.format("%d", arc))); } @Override diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/NaqReactorMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/NaqReactorMachine.java index 7585a546b..f9bb66be7 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/NaqReactorMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/NaqReactorMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.generator; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; import com.gregtechceu.gtceu.api.machine.MetaMachine; @@ -25,6 +28,22 @@ @Getter public class NaqReactorMachine extends RecipeElectricMultiblockMachine implements ITieredMachine { + @CN("镍等离子体消耗量: %d") + @EN("Nickel plasma consumption: %d") + public static Lang naqReactorInfoNickelConsumption; + + + @CN("发电并行数: %d") + @EN("Power generation parallel count: %d") + public static Lang naqReactorInfoParallelCount; + + + @CN("§c内核温度: %d") + @EN("§cCore temperature: %d") + public static Lang naqReactorInfoTemperature; + + + @Persisted private int currentTemperature = 0; // 初始温度为0K private static final int MAX_TEMP = 80000; // 温度最高为80000K @@ -121,10 +140,10 @@ public void addDisplayText(List textList) { super.addDisplayText(textList); int parallelCount = getParallelCount(); // 获取当前并行数 int fluidConsumption = FLUID_AMOUNT * parallelCount; // 计算实际消耗量 - textList.add(Component.translatable("ctnh.multiblock.naq_reactor.info.temperature", currentTemperature + "K")); + textList.add(naqReactorInfoTemperature.translate( currentTemperature + "K")); textList.add( - Component.translatable("ctnh.multiblock.naq_reactor.info.nickel_consumption", fluidConsumption + "mb")); - textList.add(Component.translatable("ctnh.multiblock.naq_reactor.info.parallel_count", getParallelCount())); + naqReactorInfoNickelConsumption.translate( fluidConsumption + "mb")); + textList.add(naqReactorInfoParallelCount.translate( getParallelCount())); } @Override diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/PhotoVoltaicDroneStation.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/PhotoVoltaicDroneStation.java index 7e5774b92..6709d04c9 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/PhotoVoltaicDroneStation.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/PhotoVoltaicDroneStation.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.generator; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.item.IDroneItem; import io.github.cpearl0.ctnhcore.common.machine.multiblock.part.DroneHolderMachine; @@ -26,6 +29,17 @@ public class PhotoVoltaicDroneStation extends RecipeElectricMultiblockMachine { + @CN("提供的能量:%d") + @EN("Power supplied: %d") + public static Lang pvdroneInfoT1; + + + @CN("无人机消耗概率:%.4f") + @EN("Drone consumption chance: %.4f") + public static Lang pvdroneInfoT2; + + + public PhotoVoltaicDroneStation(IMachineBlockEntity holder, Object... args) { super(holder, args); } @@ -188,9 +202,9 @@ else if (!lmachine.orbit) // 只能在轨道维度挖矿 public void addDisplayText(List textList) { textList.add(textList.size(), - Component.translatable("ctnh.multiblock.pvdrone.info.t1", String.format("%d", eut))); + pvdroneInfoT1.translate( String.format("%d", eut))); textList.add(textList.size(), - Component.translatable("ctnh.multiblock.pvdrone.info.t2", String.format("%.4f", num))); + pvdroneInfoT2.translate( String.format("%.4f", num))); super.addDisplayText(textList); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/PhotovoltaicPowerStationMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/PhotovoltaicPowerStationMachine.java index 8813b92c5..cb47bb692 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/PhotovoltaicPowerStationMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/PhotovoltaicPowerStationMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.generator; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.capability.IEnergyContainer; @@ -42,6 +45,27 @@ public class PhotovoltaicPowerStationMachine extends MultiblockControllerMachine implements IFancyUIMachine, IDisplayUIMachine, IWorkable, IExplosionMachine { + @CN("发电效率:%s%%") + @EN("Efficiency: %s%%") + public static Lang photovoltaicPowerStationInfo1; + + + @CN("产能功率:%s/%s EU/t") + @EN("Generating: %s/%s EU/t") + public static Lang photovoltaicPowerStationInfo2; + + + @CN("有方块阻挡") + @EN("Shadowed") + public static Lang photovoltaicPowerStationInfoInvalid; + + + @CN("光照过于微弱") + @EN("At night") + public static Lang photovoltaicPowerStationInfoNight; + + + // const public static final int START_TIME = 23000; public static final int END_TIME = 13000; @@ -266,14 +290,15 @@ public void addDisplayText(@NotNull List textList) { if (valid == Status.VALID) { // gtceu.multiblock.generation_eu - textList.add(Component.translatable("ctnh.multiblock.photovoltaic_power_station.info.1", + textList.add(photovoltaicPowerStationInfo1.translate( String.format("%.1f", (lastOutputEnergy * 100f / BASIC_RATE)))); - textList.add(Component.translatable("ctnh.multiblock.photovoltaic_power_station.info.2", + textList.add(photovoltaicPowerStationInfo2.translate( FormattingUtil.formatNumbers(lastOutputEnergy), voltageName)); } else { - textList.add(Component - .translatable("ctnh.multiblock.photovoltaic_power_station.info." + valid.name().toLowerCase()) - .withStyle(ChatFormatting.RED)); + Lang statusText = valid == Status.INVALID + ? photovoltaicPowerStationInfoInvalid + : photovoltaicPowerStationInfoNight; + textList.add(statusText.translate().withStyle(ChatFormatting.RED)); } } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/WindPowerArrayMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/WindPowerArrayMachine.java index f6bae1d60..5c6be670e 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/WindPowerArrayMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/generator/WindPowerArrayMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.generator; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.machine.trait.providable_net.IProviableNetHandlerMachine; import io.github.cpearl0.ctnhcore.common.machine.trait.providable_net.ProvidableNetHandler; @@ -54,6 +57,22 @@ public class WindPowerArrayMachine extends MultiblockControllerMachine implements IProviableNetHandlerMachine, IFancyUIMachine, IDisplayUIMachine, IWorkable { + @CN("网络将在%d秒后重建") + @EN("Network will rebuild in %d second(s)") + public static Lang windPowerArrayInfoNetworkDirty; + + + @CN("发电网络机器数:%d") + @EN("Network Machine Count:%d") + public static Lang windPowerArrayInfoNetworkMachine; + + + @CN("发电效率:%d") + @EN("Generating Efficiency: %d") + public static Lang windPowerArrayInfoNetworkMachineEfficiency; + + + public static final Material fluidMaterial = GTMaterials.Lubricant; private EnergyContainerList energyContainer; private List fluidParts; @@ -272,12 +291,12 @@ public void addDisplayText(List textList) { .addWorkingStatusLine() .addCurrentEnergyProductionLine(needFluid ? (long) (basicRate * getEfficiency()) : 0) .addEnergyProductionLine(basicRate, (long) (basicRate * getEfficiency())); - textList.add(Component.translatable("ctnh.mutliblock.wind_power_array.info.network_machine", + textList.add(windPowerArrayInfoNetworkMachine.translate( netHandler.getNetSize())); - textList.add(Component.translatable("ctnh.mutliblock.wind_power_array.info.network_machine_efficiency", + textList.add(windPowerArrayInfoNetworkMachineEfficiency.translate( String.format("%.1f", getEfficiency()))); if (netHandler.getDeadTime() != -1) - textList.add(Component.translatable("ctnh.mutliblock.wind_power_array.info.network_dirty", + textList.add(windPowerArrayInfoNetworkDirty.translate( (netHandler.getDeadTime() - getLevel().getGameTime()) / 20)); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/kinetic/IndustrialPrimitiveBlastFurnaceMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/kinetic/IndustrialPrimitiveBlastFurnaceMachine.java index 429bbc436..a9cdb8933 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/kinetic/IndustrialPrimitiveBlastFurnaceMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/kinetic/IndustrialPrimitiveBlastFurnaceMachine.java @@ -2,6 +2,9 @@ import io.github.cpearl0.ctnhcore.registry.CTNHRecipeModifiers; +import com.ctnhlang.CN; +import com.ctnhlang.EN; + import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; import com.gregtechceu.gtceu.api.machine.MetaMachine; import com.gregtechceu.gtceu.api.machine.TickableSubscription; @@ -23,8 +26,14 @@ import java.util.List; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; + public class IndustrialPrimitiveBlastFurnaceMachine extends NoEnergyMachine { + @CN("并行数:%d") + @EN("Parallel count: %d") + public static Lang industrialPrimitiveBlastFurnaceInfoParallelCount; + @Nullable protected TickableSubscription temperatureSubs; @Persisted @@ -65,8 +74,7 @@ public void addDisplayText(List textList) { if (isFormed()) { textList.add(Component.translatable("gtceu.multiblock.blast_furnace.max_temperature", Component.literal(currentTemperature + "K").withStyle(ChatFormatting.RED))); - textList.add(Component.translatable( - "ctnh.multiblock.industrial_primitive_blast_furnace.info.parallel_count", getParallelCount())); + textList.add(industrialPrimitiveBlastFurnaceInfoParallelCount.translate(getParallelCount())); } super.addDisplayText(textList); } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/part/CompilerMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/part/CompilerMachine.java index 6467fa75a..be686cd65 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/part/CompilerMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/part/CompilerMachine.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.part; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import com.gregtechceu.gtceu.api.capability.recipe.IO; import com.gregtechceu.gtceu.api.gui.GuiTextures; @@ -27,6 +31,19 @@ @MethodsReturnNonnullByDefault public class CompilerMachine extends TieredIOPartMachine implements IDistinctPart, IMachineModifyDrops { + @Key("ctnh.compiler.id") + @CN("该舱室被分配到的片区编号:%s") + @EN("Assigned region ID: %s") + public static Lang compilerId; + + + @Key("ctnh.compiler.noid") + @CN("§c当前舱室尚未连接到主机!") + @EN("§cThis chamber is not connected to the host!") + public static Lang compilerNoid; + + + @Getter @Persisted private final NotifiableItemStackHandler inventory; diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/part/NeutronSensorMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/part/NeutronSensorMachine.java index bd19ff832..2485e6650 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/part/NeutronSensorMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/multiblock/part/NeutronSensorMachine.java @@ -1,4 +1,5 @@ package io.github.cpearl0.ctnhcore.common.machine.multiblock.part; +import com.ctnhlang.Key; import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.gui.GuiTextures; @@ -27,6 +28,19 @@ @Prefix("gui.multiblock.neutron_sensor") public class NeutronSensorMachine extends TieredPartMachine { + @Key("gui.ctnh.neutron_sensor.invert.disabled") + @CN("输出:正常\n\n切换以反转红石逻辑\n默认情况下,中子动能介于所设定的最小值和最大值之间时传感器将发出红石信号,小于最小值时则停止发出红石信号") + @EN("Output: Normal\n\nSwitch to reverse redstone logic\nBy default, the sensor will emit a redstone signal when the neutron kinetic energy is between the set minimum and maximum values, and stop emitting a redstone signal when it is less than the minimum value.") + public static Lang guiNeutronSensorInvertDisabled; + + + @Key("gui.ctnh.neutron_sensor.invert.enabled") + @CN("输出:反转\n\n切换以反转红石逻辑\n默认情况下,中子动能介于所设定的最小值和最大值之间时传感器将发出红石信号,小于最小值时则停止发出红石信号") + @EN("Output: Reverse\n\nSwitch to reverse redstone logic\nBy default, the sensor will emit a redstone signal when the neutron kinetic energy is between the set minimum and maximum values, and stop emitting a redstone signal when it is less than the minimum value.") + public static Lang guiNeutronSensorInvertEnabled; + + + public NeutronSensorMachine(IMachineBlockEntity holder) { super(holder, GTValues.IV); } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/simple/OxygenEnricherMachine.java b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/simple/OxygenEnricherMachine.java index 0cd8b2323..e2d8f6b72 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/machine/simple/OxygenEnricherMachine.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/machine/simple/OxygenEnricherMachine.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.machine.simple; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.capability.recipe.IO; import com.gregtechceu.gtceu.api.machine.IMachineBlockEntity; @@ -28,8 +31,13 @@ public class OxygenEnricherMachine extends SimpleTieredMachine implements OxygenAreaSource { - private static final Component NO_OXYGEN_INPUT = Component - .translatable("ctnhcore.machine.oxygen_enricher.no_input"); + @CN("氧气供应不足") + @EN("Insufficient oxygen supply") + public static Lang ctnhMachineOxygenEnricherNoInput; + + + + private static final Component NO_OXYGEN_INPUT = ctnhMachineOxygenEnricherNoInput.translate(); private static final short HABITABLE_TEMPERATURE = 22; private final Set distributedBlocks = new HashSet<>(); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/common/recipe/OxygenCondition.java b/src/main/java/io/github/cpearl0/ctnhcore/common/recipe/OxygenCondition.java index 60c77d526..902a965c2 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/common/recipe/OxygenCondition.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/common/recipe/OxygenCondition.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.common.recipe; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.oxygen.OxygenMachineRules; import io.github.cpearl0.ctnhcore.registry.CTNHRecipeConditions; @@ -15,8 +18,14 @@ public class OxygenCondition extends RecipeCondition { + @CN("此机器需要在可供氧环境中运行") + @EN("This machine requires a breathable atmosphere") + public static Lang ctnhMachineOxygenRequired; + + + public static final Codec CODEC = RecipeCondition.simpleCodec(OxygenCondition::new); - private static final Component TOOLTIP = Component.translatable("ctnhcore.machine.oxygen_required"); + private static final Component TOOLTIP = ctnhMachineOxygenRequired.translate(); public OxygenCondition() {} diff --git a/src/main/java/io/github/cpearl0/ctnhcore/data/CTNHCoreDatagen.java b/src/main/java/io/github/cpearl0/ctnhcore/data/CTNHCoreDatagen.java index 1e678c8b4..9bb01bf30 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/data/CTNHCoreDatagen.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/data/CTNHCoreDatagen.java @@ -1,21 +1,16 @@ package io.github.cpearl0.ctnhcore.data; -import io.github.cpearl0.ctnhcore.data.lang.old.ChineseLangHandler; -import io.github.cpearl0.ctnhcore.data.lang.old.EnglishLangHandler; import io.github.cpearl0.ctnhcore.data.tags.ItemTags; import io.github.cpearl0.ctnhcore.data.tags.StoneTags; import com.tterrag.registrate.providers.ProviderType; import static io.github.cpearl0.ctnhcore.registry.CTNHRegistration.REGISTRATE; -import static tech.vixhentx.mcmod.ctnhlib.registrate.data.ProviderTypes.CNLANG; public class CTNHCoreDatagen { public static void init() { REGISTRATE.addLangProcessor(); - REGISTRATE.addDataGenerator(ProviderType.LANG, EnglishLangHandler::init); - REGISTRATE.addDataGenerator(CNLANG, ChineseLangHandler::init); REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, StoneTags::init); REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, ItemTags::init); } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/data/lang/Chinese/OreLang.java b/src/main/java/io/github/cpearl0/ctnhcore/data/lang/Chinese/OreLang.java deleted file mode 100644 index 7fd56d81f..000000000 --- a/src/main/java/io/github/cpearl0/ctnhcore/data/lang/Chinese/OreLang.java +++ /dev/null @@ -1,103 +0,0 @@ -package io.github.cpearl0.ctnhcore.data.lang.Chinese; - -import tech.vixhentx.mcmod.ctnhlib.registrate.lang.RegistrateCNLangProvider; - -public class OreLang { - - public static void init(RegistrateCNLangProvider provider) { - initDimensionLang(provider); - provider.add("gtceu.jei.ore_vein.chromite_vein", "铬铁矿脉"); - provider.add("gtceu.jei.ore_vein.cryolite_vein", "冰晶石矿脉"); - provider.add("gtceu.jei.ore_vein.gold_vein_tf", "暮色森林磁铁矿脉"); - provider.add("gtceu.jei.ore_vein.cryolite_vein_aether", "天境冰晶石矿脉"); - provider.add("gtceu.jei.ore_vein.ilmenite_vein", "钛铁矿脉"); - provider.add("gtceu.jei.ore_vein.monazite_vein_n", "月球独居石矿脉"); - provider.add("gtceu.jei.ore_vein.bauxite_vein", "月球铝土矿脉"); - provider.add("gtceu.jei.ore_vein.quartzite_vein", "石英岩矿脉"); - provider.add("gtceu.jei.ore_vein.galena_vein_ad", "太空方铅矿脉"); - provider.add("gtceu.jei.ore_vein.copper_vein_ad", "太空铜矿脉"); - provider.add("gtceu.jei.ore_vein.molybdenum_vein_ad", "太空辉钼矿脉"); - provider.add("gtceu.jei.ore_vein.cassiterite_vein_ad", "太空锡石矿脉"); - provider.add("gtceu.jei.ore_vein.desh_vein_ad", "月球戴斯矿脉"); - provider.add("gtceu.jei.ore_vein.iron_vein_ad", "太空带状铁矿脉"); - provider.add("gtceu.jei.ore_vein.magnetite_vein_ad", "太空磁铁矿脉"); - provider.add("gtceu.jei.ore_vein.naquadah_vein_ad_mars", "火星硅岩矿脉"); - provider.add("gtceu.jei.ore_vein.beryllium_vein_ad", "太空铍矿脉"); - provider.add("gtceu.jei.ore_vein.ostrum_vein_ad", "火星紫金矿脉"); - provider.add("gtceu.jei.ore_vein.salts_vein_ad", "火星盐矿脉"); - provider.add("gtceu.jei.ore_vein.scheelite_vein_ad", "太空白钨矿脉"); - provider.add("gtceu.jei.ore_vein.tuff_uraninite_vein_ad", "太空晶质铀矿脉"); - provider.add("gtceu.jei.ore_vein.nickel_vein_ad", "太空镍矿脉"); - provider.add("gtceu.jei.ore_vein.pitchblende_vein_ad", "太空沥青铀矿脉"); - provider.add("gtceu.jei.ore_vein.arsenic_vein_ad", "太空砷矿脉"); - provider.add("gtceu.jei.ore_vein.sulfur_vein_ad", "太空硫矿脉"); - provider.add("gtceu.jei.ore_vein.redstone_vein_ad", "太空红石矿脉"); - provider.add("gtceu.jei.ore_vein.tetrahedrite_vein_ad", "太空黝铜矿脉"); - provider.add("gtceu.jei.ore_vein.combustible_ice_vein_aether", "天境可燃冰矿脉"); - provider.add("gtceu.jei.ore_vein.zirkelite_vein", "钛锆钍石矿脉"); - provider.add("gtceu.jei.ore_vein.mana_fused_vein", "蕴魔矿脉"); - provider.add("gtceu.jei.ore_vein.ancient_debris_vein", "远古残骸矿脉"); - provider.add("gtceu.jei.ore_vein.zinc_vein", "锌矿脉"); - provider.add("gtceu.jei.ore_vein.nether_quartz_vein_ow", "主世界石英矿脉"); - provider.add("gtceu.jei.ore_vein.nickel_vein", "镍矿脉"); - provider.add("gtceu.jei.ore_vein.precious_alloy_vein", "贵金属矿脉"); - provider.add("gtceu.jei.ore_vein.scheelite_vein_aether", "天境白钨矿脉"); - provider.add("gtceu.jei.ore_vein.zanite_vein_aether", "天境紫晶矿石"); - provider.add("gtceu.jei.ore_vein.phosphate_vein", "磷酸盐矿脉"); - provider.add("gtceu.jei.ore_vein.olivine_vein_ad", "水星橄榄石矿脉"); - provider.add("gtceu.jei.ore_vein.lubricant_vein_ad", "水星滑石矿脉"); - provider.add("gtceu.jei.ore_vein.iridium_vein_ad", "金星铱矿脉"); - provider.add("gtceu.jei.ore_vein.magnesite_vein_ad", "水星菱镁矿脉"); - provider.add("gtceu.jei.ore_vein.niobium_vein_ad", "霜原星铌矿脉"); - provider.add("gtceu.jei.ore_vein.osmium_vein_ad", "霜原星锇矿脉"); - provider.add("gtceu.jei.ore_vein.manganese_vein_ad", "太空锰矿脉"); - provider.add("gtceu.jei.ore_vein.rutile_vein_ad", "金星金红石矿脉"); - provider.add("gtceu.jei.ore_vein.wollastonite_vein", "硅灰石矿脉"); - provider.add("gtceu.jei.ore_vein.galena_vein_tf", "暮色森林方铅矿脉"); - provider.add("gtceu.jei.ore_vein.apatite_vein_tf", "暮色森林磷灰石矿脉"); - provider.add("gtceu.jei.ore_vein.bauxite_vein_aether", "天境铝土矿脉"); - provider.add("gtceu.jei.ore_vein.uranium238_vein_ad", "水星铀238矿脉"); - provider.add("gtceu.jei.ore_vein.naquadah_vein_ad", "金星硅岩矿脉"); - provider.add("gtceu.jei.ore_vein.diamond_vein_tf", "暮色森林钻石矿脉"); - provider.add("gtceu.jei.ore_vein.chromium_vein_ad", "水星铬矿脉"); - provider.add("gtceu.jei.ore_vein.neutronium_vein_ad", "霜原星中子素矿脉"); - provider.add("gtceu.jei.ore_vein.pyrolusite_vein_ad", "金星软锰矿脉"); - provider.add("gtceu.jei.ore_vein.saltpeter_vein_ad", "水星粗硝石矿脉"); - provider.add("gtceu.jei.ore_vein.ruthenium_amalgam_vein", "钌汞齐矿脉"); - provider.add("gtceu.jei.ore_vein.arsenic_vein", "红砷镍矿脉"); - provider.add("gtceu.jei.ore_vein.europium_vein", "铕萤石矿脉"); - provider.add("gtceu.jei.ore_vein.lapis_ore_vein", "水星青金石矿脉"); - provider.add("gtceu.jei.ore_vein.kaolinite_vein", "高岭石矿脉"); - provider.add("gtceu.jei.ore_vein.illusion_iron_vein", "幻铁矿脉"); - provider.add("gtceu.jei.ore_vein.toxic_swamp_amber_vein", "暮色森林毒沼琥珀矿脉"); - provider.add("gtceu.jei.ore_vein.steel_leaf_vein", "暮色森林钢叶矿脉"); - provider.add("gtceu.jei.ore_vein.rhodium_sulfur_crystal_vein", "铑硫晶矿脉"); - provider.add("gtceu.jei.ore_vein.zircon_vein_aether", "天境锆石矿脉"); - provider.add("gtceu.jei.ore_vein.dragonflame_vein", "暮色森林龙焰矿脉"); - provider.add("gtceu.jei.ore_vein.eclipse_shadow_vein", "暮色森林幽影矿脉"); - provider.add("gtceu.jei.ore_vein.sheldonite_vein_moon", "月球谢尔顿矿脉"); - provider.add("gtceu.jei.ore_vein.thunderstrike_vein", "暮色森林雷纹矿脉"); - provider.add("gtceu.jei.ore_vein.platinum_vein_ad", "太空铂矿脉"); - provider.add("gtceu.jei.ore_vein.lich_bone_vein", "暮色森林巫师之骨矿脉"); - provider.add("gtceu.jei.ore_vein.salts_vein_tf", "暮色森林盐矿脉"); - provider.add("gtceu.jei.ore_vein.iron_vein_tf", "暮色森林铁矿脉"); - provider.add("gtceu.jei.ore_vein.arctic_crystal_core_vein", "暮色森林极寒冰核矿脉"); - provider.add("gtceu.jei.ore_vein.calorite_vein_ad", "太空耐热金属矿脉"); - provider.add("gtceu.jei.ore_vein.thorium_vein_ad", "太空钍矿脉"); - - // provider.add("gtceu.jei.bedrock.fluid.seawater_vein_overworld", "海水矿藏"); - // provider.add("gtceu.jei.bedrock.fluid.moon_seawater_vein", "静海矿藏"); - } - - public static void initDimensionLang(RegistrateCNLangProvider provider) { - provider.add("dimension.ad_astra:moon", "月球"); - provider.add("dimension.ad_astra:mars", "火星"); - provider.add("dimension.ad_astra:venus", "金星"); - provider.add("dimension.ad_astra:mercury", "水星"); - provider.add("dimension.ad_extendra:jupiter", "木星"); - provider.add("dimension.ad_astra:glacio", "霜原星"); - provider.add("dimension.twilightforest:twilight_forest", "暮色森林"); - provider.add("dimension.aether:the_aether", "天境"); - // provider.add("dimension.mythicbotany:alfheim", "亚尔夫海姆"); - } -} diff --git a/src/main/java/io/github/cpearl0/ctnhcore/data/lang/Chinese/VeinLang.java b/src/main/java/io/github/cpearl0/ctnhcore/data/lang/Chinese/VeinLang.java deleted file mode 100644 index 61494074e..000000000 --- a/src/main/java/io/github/cpearl0/ctnhcore/data/lang/Chinese/VeinLang.java +++ /dev/null @@ -1,89 +0,0 @@ -package io.github.cpearl0.ctnhcore.data.lang.Chinese; - -import tech.vixhentx.mcmod.ctnhlib.registrate.lang.RegistrateCNLangProvider; - -public class VeinLang { - - public static void init(RegistrateCNLangProvider provider) { - provider.add("ctnhcore:chromite_vein", "铬铁矿脉"); - provider.add("ctnhcore:cryolite_vein", "冰晶石矿脉"); - provider.add("ctnhcore:cryolite_vein_aether", "天境冰晶石矿脉"); - provider.add("ctnhcore:ilmenite_vein", "钛铁矿脉"); - provider.add("ctnhcore:monazite_vein_n", "月球独居石矿脉"); - provider.add("ctnhcore:bauxite_vein", "月球铝土矿脉"); - provider.add("ctnhcore:quartzite_vein", "石英岩矿脉"); - provider.add("ctnhcore:galena_vein_ad", "太空方铅矿脉"); - provider.add("ctnhcore:copper_vein_ad", "太空铜矿脉"); - provider.add("ctnhcore:molybdenum_vein_ad", "太空辉钼矿脉"); - provider.add("ctnhcore:cassiterite_vein_ad", "太空锡石矿脉"); - provider.add("ctnhcore:desh_vein_ad", "月球戴斯矿脉"); - provider.add("ctnhcore:iron_vein_ad", "太空带状铁矿脉"); - provider.add("ctnhcore:magnetite_vein_ad", "太空磁铁矿脉"); - provider.add("ctnhcore:naquadah_vein_ad_mars", "火星硅岩矿脉"); - provider.add("ctnhcore:beryllium_vein_ad", "太空铍矿脉"); - provider.add("ctnhcore:ostrum_vein_ad", "火星紫金矿脉"); - provider.add("ctnhcore:salts_vein_ad", "火星盐矿脉"); - provider.add("ctnhcore:scheelite_vein_ad", "太空白钨矿脉"); - provider.add("ctnhcore:tuff_uraninite_vein_ad", "太空晶质铀矿脉"); - provider.add("ctnhcore:nickel_vein_ad", "太空镍矿脉"); - provider.add("ctnhcore:pitchblende_vein_ad", "太空沥青铀矿脉"); - provider.add("ctnhcore:arsenic_vein_ad", "太空砷矿脉"); - provider.add("ctnhcore:sulfur_vein_ad", "太空硫矿脉"); - provider.add("ctnhcore:redstone_vein_ad", "太空红石矿脉"); - provider.add("ctnhcore:tetrahedrite_vein_ad", "太空黝铜矿脉"); - provider.add("ctnhcore:combustible_ice_vein_aether", "天境可燃冰矿脉"); - provider.add("ctnhcore:zirkelite_vein", "钛锆钍石矿脉"); - provider.add("ctnhcore:mana_fused_vein", "蕴魔矿脉"); - provider.add("ctnhcore:ancient_debris_vein", "远古残骸矿脉"); - provider.add("ctnhcore:zinc_vein", "锌矿脉"); - provider.add("ctnhcore:nether_quartz_vein_ow", "主世界石英矿脉"); - provider.add("ctnhcore:nickel_vein", "镍矿脉"); - provider.add("ctnhcore:precious_alloy_vein", "贵金属矿脉"); - provider.add("ctnhcore:scheelite_vein_aether", "天境白钨矿脉"); - provider.add("ctnhcore:zanite_vein_aether", "天境紫晶矿石"); - provider.add("ctnhcore:phosphate_vein", "磷酸盐矿脉"); - provider.add("ctnhcore:olivine_vein_ad", "水星橄榄石矿脉"); - provider.add("ctnhcore:lubricant_vein_ad", "水星滑石矿脉"); - provider.add("ctnhcore:iridium_vein_ad", "金星铱矿脉"); - provider.add("ctnhcore:magnesite_vein_ad", "水星菱镁矿脉"); - provider.add("ctnhcore:niobium_vein_ad", "霜原星铌矿脉"); - provider.add("ctnhcore:osmium_vein_ad", "霜原星锇矿脉"); - provider.add("ctnhcore:manganese_vein_ad", "太空锰矿脉"); - provider.add("ctnhcore:rutile_vein_ad", "金星金红石矿脉"); - provider.add("ctnhcore:wollastonite_vein", "硅灰石矿脉"); - provider.add("ctnhcore:galena_vein_tf", "暮色森林方铅矿脉"); - provider.add("ctnhcore:apatite_vein_tf", "暮色森林磷灰石矿脉"); - provider.add("ctnhcore:bauxite_vein_aether", "天境铝土矿脉"); - provider.add("ctnhcore:uranium238_vein_ad", "水星铀238矿脉"); - provider.add("ctnhcore:naquadah_vein_ad", "金星硅岩矿脉"); - provider.add("ctnhcore:diamond_vein_tf", "暮色森林钻石矿脉"); - provider.add("ctnhcore:chromium_vein_ad", "水星铬矿脉"); - provider.add("ctnhcore:neutronium_vein_ad", "霜原星中子素矿脉"); - provider.add("ctnhcore:pyrolusite_vein_ad", "金星软锰矿脉"); - provider.add("ctnhcore:saltpeter_vein_ad", "水星粗硝石矿脉"); - provider.add("ctnhcore:ruthenium_amalgam_vein", "钌汞齐矿脉"); - provider.add("ctnhcore:arsenic_vein", "红砷镍矿脉"); - provider.add("ctnhcore:europium_vein", "铕萤石矿脉"); - provider.add("ctnhcore:lapis_ore_vein", "水星青金石矿脉"); - provider.add("ctnhcore:kaolinite_vein", "高岭石矿脉"); - provider.add("ctnhcore:illusion_iron_vein", "幻铁矿脉"); - provider.add("ctnhcore:toxic_swamp_amber_vein", "暮色森林毒沼琥珀矿脉"); - provider.add("ctnhcore:steel_leaf_vein", "暮色森林钢叶矿脉"); - provider.add("ctnhcore:rhodium_sulfur_crystal_vein", "铑硫晶矿脉"); - provider.add("ctnhcore:zircon_vein_aether", "天境锆石矿脉"); - provider.add("ctnhcore:dragonflame_vein", "暮色森林龙焰矿脉"); - provider.add("ctnhcore:eclipse_shadow_vein", "暮色森林幽影矿脉"); - provider.add("ctnhcore:sheldonite_vein_moon", "月球谢尔顿矿脉"); - provider.add("ctnhcore:thunderstrike_vein", "暮色森林雷纹矿脉"); - provider.add("ctnhcore:platinum_vein_ad", "太空铂矿脉"); - provider.add("ctnhcore:lich_bone_vein", "暮色森林巫师之骨矿脉"); - provider.add("ctnhcore:salts_vein_tf", "暮色森林盐矿脉"); - provider.add("ctnhcore:iron_vein_tf", "暮色森林铁矿脉"); - provider.add("ctnhcore:arctic_crystal_core_vein", "暮色森林极寒冰核矿脉"); - provider.add("ctnhcore:calorite_vein_ad", "太空耐热金属矿脉"); - provider.add("ctnhcore:thorium_vein_ad", "太空钍矿脉"); - - provider.add("ctnhcore:seawater_vein_overworld", "海水矿藏"); - provider.add("ctnhcore:moon_seawater_vein", "静海矿藏"); - } -} diff --git a/src/main/java/io/github/cpearl0/ctnhcore/data/lang/old/ChineseLangHandler.java b/src/main/java/io/github/cpearl0/ctnhcore/data/lang/old/ChineseLangHandler.java deleted file mode 100644 index 46a525ea0..000000000 --- a/src/main/java/io/github/cpearl0/ctnhcore/data/lang/old/ChineseLangHandler.java +++ /dev/null @@ -1,1025 +0,0 @@ -package io.github.cpearl0.ctnhcore.data.lang.old; - -import io.github.cpearl0.ctnhcore.data.lang.Chinese.OreLang; -import io.github.cpearl0.ctnhcore.data.lang.Chinese.VeinLang; -import io.github.cpearl0.ctnhcore.data.machines.GTNNMachines; -import io.github.cpearl0.ctnhcore.registry.CTNHBlocks; -import io.github.cpearl0.ctnhcore.registry.CTNHCreativeModeTabs; -import io.github.cpearl0.ctnhcore.registry.adventure.CTNHEnchantments; -import io.github.cpearl0.ctnhcore.registry.machines.CTNHMachines; -import io.github.cpearl0.ctnhcore.registry.machines.multiblock.Mechanical; -import io.github.cpearl0.ctnhcore.registry.machines.multiblock.MultiblocksA; -import io.github.cpearl0.ctnhcore.registry.machines.multiblock.MultiblocksB; -import io.github.cpearl0.ctnhcore.registry.machines.multiblock.MultiblocksC; - -import com.gregtechceu.gtceu.api.GTValues; -import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.common.data.machines.GTMachineUtils; - -import net.minecraftforge.common.data.LanguageProvider; - -import org.jetbrains.annotations.NotNull; -import tech.vixhentx.mcmod.ctnhlib.registrate.lang.RegistrateCNLangProvider; - -import java.lang.reflect.Field; -import java.util.Map; - -import static com.gregtechceu.gtceu.api.GTValues.*; - -public class ChineseLangHandler { - - public static RegistrateCNLangProvider cnLangProvider; - - public static void init(RegistrateCNLangProvider provider) { - cnLangProvider = provider; - OreLang.init(provider); - VeinLang.init(provider); - - provider.add("block.gtceu.starlight", "星能液"); - provider.add("block.gtceu.sulfuric_acid", "硫酸"); - - provider.add("gtceu.recipe_logic.setup_fail", "配方启动失败:"); - provider.add("gtceu.recipe_logic.recipe_waiting", "配方等待中:"); - provider.add("gtceu.recipe_modifier.default_fail", "配方修改失败"); - provider.add("gtceu.recipe_modifier.insufficient_voltage", "电压等级过低!"); - provider.add("gtceu.recipe_modifier.insufficient_eu_to_start_fusion", - "缺少足够能量以启动核聚变反应"); - provider.add("gtceu.recipe_modifier.coil_temperature_too_low", "线圈温度过低!"); - - // Config - provider.add("config.ctnhcore.option.ftbPlugin", "FTB相关"); - provider.add("config.ctnhcore.option.kinetic", "应力相关"); - provider.add("config.ctnhcore.option.enableFTBUltimineOnGTOres", "开启GT矿物连锁"); - provider.add("config.ctnhcore.option.pressorRpmRequirement", "机械辊压厂最低转速需求"); - provider.add("config.ctnhcore.option.pressorSpeedMultiplier", "机械辊压厂加速倍率"); - provider.add("config.ctnhcore.option.pressorStressRequirement", "机械辊压厂应力消耗"); - provider.add("config.ctnhcore.option.mixerRpmRequirement", "机械搅拌厂最低转速需求"); - provider.add("config.ctnhcore.option.mixerSpeedMultiplier", "机械搅拌厂加速倍率"); - provider.add("config.ctnhcore.option.mixerStressRequirement", "机械搅拌厂应力消耗"); - provider.add("config.ctnhcore.option.centrifugeRpmRequirement", "机械离心厂最低转速需求"); - provider.add("config.ctnhcore.option.centrifugeSpeedMultiplier", "机械离心厂加速倍率"); - provider.add("config.ctnhcore.option.centrifugeStressRequirement", "机械离心厂应力消耗"); - provider.add("config.ctnhcore.option.sifterRpmRequirement", "机械筛选厂最低转速需求"); - provider.add("config.ctnhcore.option.sifterSpeedMultiplier", "机械筛选厂加速倍率"); - provider.add("config.ctnhcore.option.sifterStressRequirement", "机械筛选厂应力消耗"); - provider.add("config.ctnhcore.option.latheRpmRequirement", "机械车床厂最低转速需求"); - provider.add("config.ctnhcore.option.latheSpeedMultiplier", "机械车床厂加速倍率"); - provider.add("config.ctnhcore.option.latheStressRequirement", "机械车床厂应力消耗"); - provider.add("config.ctnhcore.option.laserRpmRequirement", "机械激光厂最低转速需求"); - provider.add("config.ctnhcore.option.laserSpeedMultiplier", "机械激光厂加速倍率"); - provider.add("config.ctnhcore.option.laserStressRequirement", "机械激光厂应力消耗"); - - provider.add("ctnh.test_terminal.lack_error", "在%s处缺少"); - provider.add("ctnh.test_terminal.wrong_error", "在%s处应为"); - provider.add("ctnh.test_terminal.position", "(%s,%s,%s)"); - provider.add("ctnh.test_terminal.error_info", "(%s)"); - provider.add("ctnh.test_terminal.success", "一切正常!"); - - provider.add("ctnh.testing_terminal.tooltip.1", "用于检测多方块搭建时产生的错误"); - provider.add("ctnh.testing_terminal.tooltip.2", "右键多方块的主方块以显示错误信息"); - provider.add("ctnh.testing_terminal.tooltip.3", "按住Shift右键切换普通/翻转模式"); - provider.add("ctnh.me_advanced_terminal.tooltip.1", "§l格雷科技-多方块结构终端-异步成型模式"); - provider.add("ctnh.me_advanced_terminal.tooltip.2", "复刻了曾经的旗舰款,终端屏幕上闪烁着久违的画面"); - provider.add("ctnh.me_advanced_terminal.tooltip.3", "通过ME无线访问点链接到网络"); - provider.add("ctnh.advanced_ram_wafer.tooltip", "更好的内存原料"); - provider.add("ctnh.advanced_ram_chip.tooltip", "更好的随机存取存储器"); - provider.add("ctnh.blood_magic_gregtech_hv", "在坠星位标仪式中使用此物品作为祭品可以召唤陨石"); - provider.add("ctnh.stone_process_catalyst", "村庄里的石匠掌握这个古老的技术,成为村庄英雄后他就会传授给你"); - provider.add("ctnh.metallurgical_catalyst", "地狱的猪灵掌握这个技术,尝试与他们交易吧"); - provider.add("ctnh.bauxite_process_catalyst", "村庄里的图书管理员掌握这个古老的技术,成为村庄英雄后他就会传授给你"); - provider.add("ctnh.platinum_metal_catalyst_shard1", "久远的时间使他们变成了水里的宝藏,通过钓鱼获得"); - provider.add("ctnh.platinum_metal_catalyst_shard2", "深渊里的深潜一组掌握这个技术,尝试与他们交易吧"); - provider.add("ctnh.psionic_medulla", "通过血魔法邪恶的生灵萃取仪式萃取艾尔夫海姆精灵获取"); - provider.add("ctnh.doubt", "通过击杀浸泡在生命源质的生物,将其困扰注入生命源质之中获得"); - - provider.add("item.ctnh.me_advanced_terminal.setting.title", "多方块结构成型配置"); - provider.add("item.ctnh.me_advanced_terminal.setting.1", "线圈等级"); - provider.add("item.ctnh.me_advanced_terminal.setting.1.tooltip", "设置自动放置的线圈等级(0:不指定等级)\n设置后会忽略结构本身的要求"); - provider.add("item.ctnh.me_advanced_terminal.setting.2", "重复结构次数"); - provider.add("item.ctnh.me_advanced_terminal.setting.2.tooltip", "设置可重复结构(蒸馏塔、装配线等)的重复部分放置次数\n对超净间无效"); - provider.add("item.ctnh.me_advanced_terminal.setting.10", "工业血之祭坛结构等级"); - provider.add("item.ctnh.me_advanced_terminal.setting.10.tooltip", - "仅对工业血之祭坛自动成型生效\n设置要构建的工业血之祭坛等级(0-4)\n0 对应二阶,4 对应六阶"); - provider.add("item.ctnh.me_advanced_terminal.setting.3", "无仓室模式"); - provider.add("item.ctnh.me_advanced_terminal.setting.3.tooltip", "是否启用无仓室模式(0:不启用,1:启用)\n启用无仓室模式后不会放置任何仓室"); - provider.add("item.ctnh.me_advanced_terminal.setting.4", "线圈替换模式"); - provider.add("item.ctnh.me_advanced_terminal.setting.4.tooltip", - "是否启用线圈替换模式(0:不启用,1:启用)\n启用线圈替换模式会将所有线圈替换为指定等级的线圈\n请确保物品栏中有空间存放替换下来的线圈"); - provider.add("item.ctnh.me_advanced_terminal.setting.5", "使用AE存储"); - provider.add("item.ctnh.me_advanced_terminal.setting.5.tooltip", - "是否启用AE库存(0:不启用,1:启用)\n启用后将优先在AE库存中检索\n通过ME无线访问点链接到网络"); - provider.add("item.ctnh.me_advanced_terminal.setting.6", "放置流体"); - provider.add("item.ctnh.me_advanced_terminal.setting.6.tooltip", - "是否启用流体放置(0:不启用,1:启用)\n启用后将检索并消耗物品栏/背包流体容器中的或AE库存中的流体\n可堆叠的流体容器须保证堆叠数为1"); - provider.add("item.ctnh.me_advanced_terminal.setting.7", "在流体中放置"); - provider.add("item.ctnh.me_advanced_terminal.setting.7.tooltip", - "是否在流体中放置方块(0:不启用,1:启用)\n启用后会将空间中的流体视为空位\n与“放置流体”同时启用时,不会在流体中放置流体"); - provider.add("item.ctnh.me_advanced_terminal.setting.8", "拆除模式"); - provider.add("item.ctnh.me_advanced_terminal.setting.8.tooltip", - "是否启用拆除模式(0:不启用,1:启用)\n请确保物品栏中有空间存放拆除的方块\n与“使用AE存储”同时启用时,拆除的方块会自动存入AE存储"); - provider.add("item.ctnh.me_advanced_terminal.setting.9", "多方块成型配置"); - provider.add("item.ctnh.me_advanced_terminal.setting.9.tooltip", "多方块成型配置"); - - // 符文tooltips - provider.add("ctnh.item.runes.starlight_rune", "Per Aspera Ad Astra"); - provider.add("ctnh.item.runes.twist_rune", "速度与人性的扭曲"); - provider.add("ctnh.item.runes.proliferation_rune", "金融与生物的本能"); - provider.add("ctnh.item.runes.quasar_rune", "毁灭与创造交替"); - provider.add("ctnh.item.runes.horizen_rune", "视野所向之处"); - - provider.add("ctnh.item.drone_tier", "无人机等级:%d"); - provider.add("ctnh.item.drone_eut", "单个无人机产生的电压: %dEU/t"); - provider.add("ctnh.item.drone_durability", "无人机最大耐久:%d"); - provider.add("ctnh.item.dyson_tier1", "集成性光伏无人机蜂群"); - provider.add("ctnh.item.dyson_tier2", "§4我们的蜂群遮天蔽日"); - provider.add("ctnh.item.nuclear_reactor_heat", "基础堆温:%d°C"); - provider.add("ctnh.item.terminal.success_get", "已经获取坐标!"); - provider.add("ctnh.item.terminal.success_write", "已成功写入坐标!"); - provider.add("ctnh.item.terminal.location", "已经绑定的坐标:(%s,%s,%s)"); - provider.add("ctnh.item.terminal.success_clear", "已清除坐标!"); - provider.add("ctnh.item.terminal.tips", "使用右键绑定光伏模块控制器,然后再右键将控制器和光伏基站绑定\nshift+右键任意方块清除坐标"); - - provider.add("ctnh.simple_nutritious_meal.tooltip.1", "能维持机体基本的生理功能"); - provider.add("item.ctnh.ecological_star.desc", "蕴含生态圈的所有精华"); - provider.add("item.sculk_cell.desc", "分化...."); - provider.add("ctnh.tooltips.simplecomputationmachine", "注意:部分配方需要算力执行"); - - provider.add("ctnh.recipe.industrial_altar.info.0", "消耗/输入的lp量:%.1f"); - - provider.add("ctnh.recipe.quasar_eye.info.0", "启动消耗:%.1f"); - provider.add("ctnh.recipe.quasar_eye.info.1", "能量等级: %d"); - provider.add("ctnh.recipe.quasar_eye.info.2", "启动等级: %d"); - - provider.add("ctnh.recipe.hellforge.info.minimum_drain", "最少:%s意志"); - provider.add("ctnh.recipe.hellforge.info.drain", "消耗:%s意志"); - - // wps - provider.add("ctnh.recipe.accelerator.mode.nu", "模式:加速中子"); - provider.add("ctnh.recipe.accelerator.mode.proton", "模式:加速质子"); - provider.add("ctnh.recipe.accelerator.mode.element", "模式:加速电子"); - provider.add("ctnh.recipe.accelerator.mode.element.consume", "加速类型:电子"); - provider.add("ctnh.recipe.accelerator.mode.proton.consume", "加速类型:质子"); - provider.add("ctnh.recipe.accelerator.mode.nu.consume", "加速类型:中子"); - provider.add("ctnh.recipe.accelerator.mode.speed.m", "需求速度:%.2fMev"); - provider.add("ctnh.recipe.accelerator.mode.speed.g", "需求速度:%.2fGev"); - // - // lasersorter - provider.add("ctnh.multiblock.lasersorter.recipe.cwut", "所需的基础算力:%d"); - // - - // research_data - provider.add("ctnh.item.data.tip1", "当前公式: a%s+b%s+c%s+d"); - provider.add("ctnh.item.data.tip2", "获取的倍率: %s"); - // - - // NMC - provider.add("ctnh.neuro_matrix_compiler.info.part_states", "片区%d状态:%s"); - provider.add("ctnh.neuro_matrix_compiler.info.state.idle", "§6待机"); - provider.add("ctnh.neuro_matrix_compiler.info.state.error", "§c错误,类型:%s"); - provider.add("ctnh.neuro_matrix_compiler.info.state.working", "§9运行中:%ss/%ss"); - provider.add("ctnh.neuro_matrix_compiler.info.state.finish", "§a完成"); - provider.add("ctnh.neuro_matrix_compiler.info.state.waiting", "§b等待中......"); - provider.add("ctnh.compiler.id", "该舱室被分配到的片区编号:%s"); - provider.add("ctnh.compiler.noid", "§c当前舱室尚未连接到主机!"); - // - // Common Tooltips - provider.add("ctnh.common_tooltip.parallel_hatch", "·允许使用并行控制仓"); - provider.add("ctnh.common_tooltip.subtick_overclock", "当配方运行时间小于1t时,会自动计算并行"); - provider.add("ctnh.common_tooltip.perfect_overclock", "无损超频!"); - provider.add("ctnh.common_tooltip.steel_machine.0", "只能使用HV级能源仓及以下等级"); - provider.add("ctnh.common_tooltip.steel_machine.1", "最大并行为32"); - - // Machine Info - provider.add("ctnh.multiblock.underfloor_heating_system.info.efficiency", "效率:%d"); - provider.add("ctnh.multiblock.underfloor_heating_system.info.rate", "速率:%s"); - provider.add("ctnh.multiblock.underfloor_heating_system.info.rate.tooltip", "减少蒸汽的消耗来降低地暖的发热功率"); - provider.add("ctnh.multiblock.underfloor_heating_system.info.rate_modify", "调节速率:"); - provider.add("ctnh.multiblock.underfloor_heating_system.info.steam_consumption", "蒸汽消耗速率:%d"); - - provider.add("ctnh.multiblock.photovoltaic_power_station.info.invalid", "有方块阻挡"); - provider.add("ctnh.multiblock.photovoltaic_power_station.info.night", "光照过于微弱"); - provider.add("ctnh.multiblock.photovoltaic_power_station.info.1", "发电效率:%s%%"); - provider.add("ctnh.multiblock.photovoltaic_power_station.info.2", "产能功率:%s/%s EU/t"); - - provider.add("ctnh.mutliblock.wind_power_array.info.network_machine", "发电网络机器数:%d"); - provider.add("ctnh.mutliblock.wind_power_array.info.network_machine_efficiency", "发电效率:%d"); - provider.add("ctnh.mutliblock.wind_power_array.info.network_dirty", "网络将在%d秒后重建"); - - provider.add("ctnh.multiblock.slaughter_house.info.mobcount", "怪物种类:%d (%s)"); - - provider.add("ctnh.multiblock.naq_reactor.info.temperature", "§c内核温度: %d"); - provider.add("ctnh.multiblock.naq_reactor.info.nickel_consumption", "镍等离子体消耗量: %d"); - provider.add("ctnh.multiblock.naq_reactor.info.parallel_count", "发电并行数: %d"); - - provider.add("ctnh.multiblock.sweat_shop.info.villager_count", "员工数量:%s"); - provider.add("ctnh.multiblock.sweat_shop.info.basic_rate", "基础效率:x%s"); - - provider.add("ctnh.multiblock.void_miner.info.cryotheum", "极寒之凛冰消耗:%d "); - provider.add("ctnh.multiblock.void_miner.info.pyrotheum", "烈焰之炽焱消耗:%d "); - provider.add("ctnh.multiblock.void_miner.info.overheat", "过热!!!"); - - provider.add("ctnh.multiblock.blaze_blast_furnace.info.pyrotheum", "烈焰之炽焱:%d mB"); - - provider.add("ctnh.multiblock.mega_lcr.info.coil", "当前线圈温度:%s"); - provider.add("ctnh.multiblock.mega_lcr.info.speed", "当前配方时间倍率:%s"); - - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.info.parallel_count", "并行数:%d"); - - provider.add("ctnh.multiblock.water_power_station.info.0", "水量:%d"); - provider.add("ctnh.multiblock.water_power_station.info.1", "线圈效率:%d%%"); - provider.add("ctnh.multiblock.water_power_station.info.2", "产能功率:%d/%d EU/t"); - - provider.add("ctnh.multiblock.forest_machine.info.humidity", "湿度值:%d"); - provider.add("ctnh.multiblock.forest_machine.info.parallel_count", "并行数:%d"); - - provider.add("ctnh.multiblock.zenith_machine.info.max_parallel", "最大并行数:%d"); - provider.add("ctnh.multiblock.zenith_machine.info.now_parallel", "当前并行数:%d"); - - provider.add("ctnh.multiblock.industrial_altar.info.current_lp", "当前含有lp量:%d"); - provider.add("ctnh.multiblock.industrial_altar.info.max_lp", "最大lp量:%d"); - - provider.add("ctnh.multiblock.astronomical.info.invalid", "只能在夜晚使用"); - - provider.add("ctnh.multiblock.sinope_chemical.info.level", "线圈加速倍率:%d"); - provider.add("ctnh.multiblock.sinope_chemical.info.parallel", "并行数:%d"); - - provider.add("ctnh.multiblock.wide_accelerator.info.nu_speed", "中子速度:%.2fMev"); - provider.add("ctnh.multiblock.wide_accelerator.info.proton_speed", "质子速度:%.2fMev"); - provider.add("ctnh.multiblock.wide_accelerator.info.electric_speed", "电子速度:%.2fMev"); - provider.add("ctnh.multiblock.wide_accelerator.info.consume", "电量消耗倍率:%.2f"); - - provider.add("ctnh.multiblock.wide_accelerator.gui.electric", "电子轨道"); - provider.add("ctnh.multiblock.wide_accelerator.gui.nu", "中子轨道"); - provider.add("ctnh.multiblock.wide_accelerator.gui.proton", "原子轨道"); - provider.add("ctnh.multiblock.wide_accelerator.gui.name", "访问轨道"); - - provider.add("ctnh.multiblock.arcgenerator.info.0", "电弧最大强度:%d"); - provider.add("ctnh.multiblock.arcgenerator.info.1", "电弧强度:%d"); - provider.add("ctnh.multiblock.arcgenerator.info.2", "支持最大效率:%.2f%%"); - provider.add("ctnh.multiblock.arcgenerator.info.3", "当前效率:%.2f%%"); - - provider.add("ctnh.spacephotovoltaicbasestation.jei.error.pv_block", "§c必须使用同种光伏方块"); - - provider.add("ctnh.spacephotovoltaicbasestation.recipe.pvc_tier", "需求光伏方块等级: %d"); - provider.add("ctnh.spacephotovoltaicbasestation.recipe.eut_model", "模拟电压消耗: %d EUt"); - - provider.add("ctnh.spacephotovoltaicbasestation.info.pvc_tier.0", "当前光伏方块等级:%d"); - provider.add("ctnh.spacephotovoltaicbasestation.info.pvc_tier.1", "当前结构耐热等级:%d"); - provider.add("ctnh.spacephotovoltaicbasestation.info.pvc_tier.2", "当前结构发电量:%.2f"); - provider.add("ctnh.spacephotovoltaicbasestation.info.pvc_tier.3", "当前维度光倍率:%d"); - // freezer ui - provider.add("ctnh.multiblock.cryotheum_freezer.ui.0", "当前泪之晶点数:%d"); - provider.add("ctnh.multiblock.cryotheum_freezer.ui.1", "当前冷冻机加速:%.2f / %.2f"); - provider.add("ctnh.multiblock.cryotheum_freezer.ui.2", "打开升级面板"); - provider.add("ctnh.multiblock.cryotheum_freezer.ui.3", "当前能量利用效率:%.2f / %.2f"); - provider.add("ctnh.multiblock.cryotheum_freezer.ui.4", "当前并行:%d / %d"); - provider.add("ctnh.multiblock.cryotheum_freezer.ui.5", "§b当前消耗的凛冰:%d / %d"); - - // Machine tooltip - provider.add("gtceu.machine.parallel_hatch_mk9.tooltip", "允许同时处理至多1024个配方。"); - provider.add("gtceu.machine.parallel_hatch_mk10.tooltip", "允许同时处理至多4096个配方。"); - provider.add("gtceu.machine.parallel_hatch_mk11.tooltip", "允许同时处理至多16384个配方。"); - provider.add("gtceu.machine.parallel_hatch_mk12.tooltip", "允许同时处理至多65536个配方。"); - provider.add("gtceu.machine.parallel_hatch_mk13.tooltip", "允许同时处理至多262144个配方。"); - provider.add("gtceu.machine.parallel_hatch_mk14.tooltip", "允许同时处理至多1048576个配方。"); - provider.add("block.ctnhcore.luv_compressed_fusion_reactor", "压缩核聚变反应堆控制电脑 MK-I"); - provider.add("block.ctnhcore.zpm_compressed_fusion_reactor", "压缩核聚变反应堆控制电脑 MK-II"); - provider.add("block.ctnhcore.uv_compressed_fusion_reactor", "压缩核聚变反应堆控制电脑 MK-III"); - provider.add("gtceu.multiblock.laser.tooltip", "允许使用激光仓"); - provider.add("ctnhcore.copyright.info", "§6由CTNH添加"); - provider.add("ctnh.recipe_type.info", "配方类型:%s"); - provider.add("ctnh.recipe_type.list", "%s, %s"); - - provider.add("ctnh.multiblock.plasma_condenser.tooltip.1", "氤氲之气,凝为霜露"); - - provider.add("ctnh.multiblock.forest_sea.tooltip.1", "手植千木,绿荫千秋"); - provider.add("ctnh.multiblock.forest_sea.tooltip.2", "林海树场是一个只消耗水来产出大量木材的大机器"); - provider.add("ctnh.multiblock.forest_sea.tooltip.3", "每5s进行一次水储量的判定"); - provider.add("ctnh.multiblock.forest_sea.tooltip.4", "水充足时,增加1%的湿度值"); - provider.add("ctnh.multiblock.forest_sea.tooltip.5", "水不足时,减少10%的湿度值"); - provider.add("ctnh.multiblock.forest_sea.tooltip.6", "配方运行时间不变,但并行值会随湿度值与电压等级上升"); - provider.add("ctnh.multiblock.forest_sea.tooltip.7", "比温室好!"); - - provider.add("ctnh.multiblock.cultivation_room.tooltip.1", "菌群孕育,菌种滋长"); - provider.add("ctnh.multiblock.cultivation_room.tooltip.2", "运用好这台机器来繁殖那些难以获取的真菌和细菌"); - - provider.add("ctnh.multiblock.sweat_shop.tooltip.0", "生产资料与剩余价值"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.1", "工厂内的村民数量决定了工作效率,配方耗时x(2/村民数量)"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.2", "工厂内的有效员工数量受限于工厂大小,初始上限为4,工厂长度每增加4格上限+1"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.3", - "放入的生产资料(机器)决定了可以工作的配方:\n动力辊压机----卷板机配方\n动力搅拌机----搅拌机配方\n车床----车床配方\n离心机----离心机配方\n烈焰人燃烧室----提取机配方\n工作盆----流体成型配方\n粉碎轮----研磨机配方\n动力锯----线材轧机配方\n激光加工器----激光蚀刻配方\n=============================="); - provider.add("ctnh.multiblock.sweat_shop.tooltip.4", "放入的生产资料(机器)数量决定了对应工作配方的并行数:并行数 = sqrt(机器数)"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.5", "放入机械手可以提高整体配方运行速度,配方耗时x (1/1 + 0.25 * sqrt(机械手数))"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.6", "放入机器的多样性会提高配方运行速度"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.7", "基础配方耗时为2倍,配方所需的电压等级越高,基础耗时x(配方等级的平方)"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.8", "每5秒机器会消耗(员工数量)份简易营养餐"); - - provider.add("ctnh.multiblock.demon_will_generator.tooltip.0", "借用恶魔之力"); - provider.add("ctnh.multiblock.demon_will_generator.tooltip.01", "允许使用变电仓,不限制变电仓数量"); - provider.add("ctnh.multiblock.demon_will_generator.tooltip.1", - "利用机器两侧的区块内的恶魔意志浓度差发电,浓度差与发电量呈指数关系,当浓度差超过500时,超过500的浓度与发电量改为线性关系"); - provider.add("ctnh.multiblock.demon_will_generator.tooltip.2", "以机器两侧的恶魔合金方块处的意志浓度为基准进行计算"); - provider.add("ctnh.multiblock.demon_will_generator.tooltip.3", "两侧区块中的各种恶魔意志的多样性会影响发电效率"); - provider.add("ctnh.multiblock.demon_will_generator.tooltip.4", - "机器内可以放入意志核心,将机器转化为对于某种意志专精的模式,该模式下每秒会有5%的概率消耗一个核心"); - provider.add("ctnh.multiblock.demon_will_generator.tooltip.5", - "机器内的符文方块可替换,从而起到不同的增益效果:\n§4献祭符文和牺牲符文----提高生命源质强化模式的发电倍率§r\n§3速度符文----提升一次配方运行的时长(节省恶魔意志消耗)§r\n§e增容符文----每一个符文增加2点恶魔意志浓度差§r\n§c超容符文----每一个符文增加百分之2的恶魔意志浓度差(叠乘)§r\n=============================="); - provider.add("ctnh.multiblock.demon_will_generator.tooltip.6", "输入§4生命源质§r开启血祭模式,发电量翻倍,每秒消耗§a100mb§r的生命源质"); - - provider.add("ctnh.multiblock.naq_reactor_mk3.tooltip.1", "浩瀚能量,天地震动"); - provider.add("ctnh.multiblock.naq_reactor_mk3.tooltip.2", "利用超能燃料进行发电,无镍等离子体时无法完全消耗燃料"); - provider.add("ctnh.multiblock.naq_reactor_mk3.tooltip.3", "机器构型中必须有一个动力仓"); - provider.add("ctnh.multiblock.naq_reactor_mk3.tooltip.4", "随着内核温度上升,发电效率增大"); - - provider.add("ctnh.multiblock.meadow.tooltip.0", "§7自动化放牧"); - provider.add("ctnh.multiblock.meadow.tooltip.1", "输入配方所需n倍应力时,获得n并行"); - provider.add("ctnh.multiblock.meadow.tooltip.2", "可以同时养殖不同动物"); - provider.add("ctnh.multiblock.meadow.tooltip.3", "§7只有动物跑出去时,你才知道你不是在种菜!"); - - provider.add("ctnh.multiblock.fermenting_tank.tooltip.0", "一个专为微生物提供的生长罐,注意时刻关注他!"); - provider.add("ctnh.multiblock.fermenting_tank.tooltip.1", "发酵罐的生物生长机制:"); - provider.add("ctnh.multiblock.fermenting_tank.tooltip.2", - "当发酵罐温度处于§236§r至§238§r度之间时为最适生长温度,配方获得1.2倍效率,越偏离最适生长温度,配方效率越低,最低为三分之一"); - provider.add("ctnh.multiblock.fermenting_tank.tooltip.3", - "微生物的生长符合逻辑斯蒂方程,当输入仓内液体体积为容量的一半时,§2生长效率达到两倍§r,而满仓和空仓时生长效率最低,保底为20%"); - - provider.add("ctnh.multiblock.void_miner.tooltip.0", "取天材,掘地精"); - provider.add("ctnh.multiblock.void_miner.tooltip.1", "虚空采矿场自动生成并提取矿石"); - provider.add("ctnh.multiblock.void_miner.tooltip.2", "如果你对矿物需求极大,虚空采矿机是必不可少的帮手"); - provider.add("ctnh.multiblock.void_miner.tooltip.3", "每次工作消耗100,000B钻井液,升降温度时消耗极寒之凛冰和烈焰之炽焱"); - provider.add("ctnh.multiblock.void_miner.tooltip.4", - "在奇数次运行前,机器会试图消耗烈焰之炽焱来升温。初始烈焰之炽焱消耗量为1000mb,若成功消耗,则温度将会增加 ⌊(消耗量 ÷ 100)⌋,接着消耗量将会自乘以 1.02"); - provider.add("ctnh.multiblock.void_miner.tooltip.5", - "在偶数次运行前,机器会试图消耗极寒之凛冰来降温。初始极寒之凛冰消耗量为1000mb,若成功消耗,则温度将会降低 ⌊(消耗量 ÷ 100)⌋,接着消耗量将会自乘以 1.02"); - provider.add("ctnh.multiblock.void_miner.tooltip.6", "温度越高,虚空采矿场的产出倍率越高"); - provider.add("ctnh.multiblock.void_miner.tooltip.7", "当温度达到25000K时,虚空采矿机将进入强制降温模式,直至温度降至0K时,恢复正常工作模式"); - provider.add("ctnh.multiblock.void_miner.tooltip.8", "请交替输入烈焰之炽焱和极寒之凛冰来控制温度"); - - provider.add("ctnh.multiblock.large_fermenting_tank.tooltip.0", "高效工业化发酵生产"); - provider.add("ctnh.multiblock.large_fermenting_tank.tooltip.1", - "可接入附属结构,在对应位置连接上一个大发酵瓶后,可以根据发酵瓶中的液体种类提升保底效率:水(50%),简易培养基(150%),无菌培养基(200%)"); - - provider.add("ctnh.multiblock.large_bottle.tooltip.0", "真是一个大罐子"); - provider.add("ctnh.multiblock.large_bottle.tooltip.1", "可以存储10000桶液体"); - provider.add("ctnh.multiblock.large_bottle.tooltip.2", "与大型发酵罐一起使用时,其中的液体会以§e100mb/s§r的速度消耗"); - - provider.add("ctnh.multiblock.digestion_tank.tooltip.0", "其实产生的是很有价值的原料......"); - provider.add("ctnh.multiblock.digestion_tank.tooltip.1", "化粪池堆肥机制:"); - provider.add("ctnh.multiblock.digestion_tank.tooltip.2", - "当化粪池温度处于§236§r至§238§r度之间时为最适生长温度,配方获得1.2倍效率,越偏离最适生长温度,配方效率越低,最低为三分之一"); - - provider.add("ctnh.multiblock.blaze_blast_furnace.tooltip.0", "比电力高炉快"); - provider.add("ctnh.multiblock.blaze_blast_furnace.tooltip.1", "每秒基础消耗§a10mB§r烈焰之炽焱,电压每超过§6HV§r一级,消耗量变为原来的两倍"); - provider.add("ctnh.multiblock.blaze_blast_furnace.tooltip.2", "运行耗能x0.75"); - provider.add("ctnh.multiblock.blaze_blast_furnace.tooltip.3", "允许一次性处理8个配方"); - - provider.add("ctnh.multiblock.large_steel_furnace.tooltip.0", "钢质熔炉"); - - provider.add("ctnh.multiblock.large_steel_alloy_furnace.tooltip.0", "钢质合金炉"); - - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.0", "高级焦炉"); - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.1", "§6§l自带32并行"); - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.2", "只可运行焦炉配方,且运行配方时间固定为15s"); - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.3", "产生大量的焦化产物与杂酚油"); - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.4", "§c§l不能使用焦炉仓"); - - provider.add("ctnh.multiblock.large_gas_collection_chamber.tooltip.0", "全维度集气"); - provider.add("ctnh.multiblock.large_gas_collection_chamber.tooltip.1", "这台机器可以收集任意维度的气体"); - provider.add("ctnh.multiblock.large_gas_collection_chamber.tooltip.2", "由于它的产量较大,建议你用ME输出总成来收集产物"); - - provider.add("ctnh.multiblock.underfloor_heating_system.tooltip.0", "用蒸汽温暖你的心"); - provider.add("ctnh.multiblock.underfloor_heating_system.tooltip.1", - "地暖系统依靠蒸汽供暖,占地一个区块,能对§a周围5*5的区块§r产生供暖,供暖只会在地暖上方十格内生效"); - provider.add("ctnh.multiblock.underfloor_heating_system.tooltip.2", "铜砖瓦会生锈,生锈后地暖系统的供暖能力会减弱"); - provider.add("ctnh.multiblock.underfloor_heating_system.tooltip.3", "可以调节速率,以降低供暖功率并减少蒸汽消耗,最低降至25%"); - - provider.add("ctnh.multiblock.mega_lcr.tooltip.0", "§b具有4个异步线程§r"); - provider.add("ctnh.multiblock.mega_lcr.tooltip.1", "使用§d异步线程控制仓§r以配置多线程运行模式"); - - provider.add("ctnh.multiblock.slaughter_house.tooltip.0", "无情的杀戮机器"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.1", "输入总线放入电动刷怪笼后,机器会自动输出对应怪物的战利品,可放入多个电动刷怪笼"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.2", "电压每升高1级,虚拟刷怪量会增加4(HV为4)"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.3", "怪物血量和护甲值越高,配方运行所需时间越长"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.4", "武器的伤害和附魔会减少配方运行的时间"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.5", "时运等附魔也能生效"); - - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.0", "更强大的土高炉,你的炼钢好帮手"); - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.1", - "工业土高炉在持续运行配方时,会不断升温,而一旦中止,则会迅速冷却"); - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.2", "温度越高,工业土高炉的并行数越高,最高为8并行"); - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.3", "温度越高,工业土高炉的效率越高,最高为两倍效率"); - - provider.add("ctnh.multiblock.sintering_kiln.tooltip.0", "需要通入8192应力使其内部活塞压实待加工料"); - - provider.add("ctnh.multiblock.decay_pools.tooltip.0", "衰变"); - provider.add("ctnh.multiblock.decay_pools.tooltip.1", "当电路板为0时为不通电状态---不启用世界加速"); - provider.add("ctnh.multiblock.decay_pools.tooltip.2", "当电路板为1时为通电状态---启用世界加速"); - provider.add("ctnh.multiblock.decay_pools.tooltip.3", "加速衰变过程"); - - provider.add("ctnh.multiblock.vacuum_sintering_tower.tooltip.0", "真空烧结"); - - provider.add("ctnh.multiblock.crystallizer.tooltip.0", "专业结晶"); - provider.add("ctnh.multiblock.crystallizer.tooltip.1", "结晶器能更加快速的完成晶体配方"); - provider.add("ctnh.multiblock.crystallizer.tooltip.2", "随着线圈等级上升,工作效率逐级提升"); - provider.add("ctnh.multiblock.crystallizer.tooltip.3", "可以运行部分化学气相沉积的配方和部分高压釜的配方"); - provider.add("ctnh.multiblock.crystallizer.tooltip.4", "省材料的最佳帮手"); - - provider.add("ctnh.multiblock.desalting_factory.tooltip.0", "从海水中烘干出盐,很环保不是吗?"); - - provider.add("ctnh.multiblock.water_power_station.tooltip.0", "环保能源!"); - provider.add("ctnh.multiblock.water_power_station.tooltip.1", "发电量和以控制器为中心,机器长度为半径,高为4的范围内的水量成正比"); - provider.add("ctnh.multiblock.water_power_station.tooltip.2", "发电量随机在0.6至1的倍率间波动"); - - provider.add("ctnh.multiblock.bio_reactor.tooltip.0", "一个大罐子"); - - provider.add("ctnh.computer.a1", "§c一切伟大之作都需要§4牺牲§r§j来铸就。其他生物或许不能理解,但他们必将§4服从§r。"); - provider.add("ctnh.computer.a2", "机器类型:§c突触凝练机"); - provider.add("ctnh.computer.a3", "将其他智慧生物作为§4湿件§r来进行运算,获得大量算力,甚至直接做成湿件"); - provider.add("ctnh.computer.a4", "机制介绍占位符"); - provider.add("ctnh.computer.a5", "该机器会超载所有智慧生物体的大脑。§4不可避免§r地§4永久损坏§r智慧生物的大脑,§4不会留下§r任何掉落物"); - provider.add("ctnh.computer.a6", "诸如村民这种§7低智慧§r的新人类的生命与智慧太低了,我们需要§c更加聪明,可爱和生命更高的生物§r"); - provider.add("ctnh.computer.a7", "为了无尽的知识,我们必须§4做出一切必要的牺牲§4"); - - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.0", "丐版鸿蒙之眼"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.1", "原始时代时消耗64000mb的蒸汽和64个原石"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.2", "产出主世界和暮色森林以及月球的矿"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.3", "随着电压等级提高能够解锁更多配方"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.4", "在前期比坠星好用"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.5", "结构中心似乎存在着神秘力量,充满危险的气息,请远离!"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.6", "结构来源:Twist Space Technology"); - - provider.add("ctnh.multiblock.quasar_eye.tooltip.0", "§9魔力§r的§c终极奥秘§r,足以制造§5类星体§r的装置掌握在§6你§r的手中"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.1", "该机器启动需要§r初始魔力燃料消耗§R,查阅EMI以查找消耗量"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.2", "在能量等级高时启动能量等级低的配方§b不需要启动花费§r"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.3", - "§5符文能量§r控制着输出的强度,输入§b五级符文§r来增强符文能量,以加强你的输出,使用§5类星体符文§r产生大量符文能量"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.4", "该机器获取符文能量逻辑为:在§5每次配方运行前§r读取并消耗每类可消耗符文§c最多各一个§r"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.5", "§c注意§r:符文能量越高,其消耗速度就§c越快§r,且符文能量低于50时§c效率将会减半!§r"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.6", "该机器能量效率为log((符文能量)/50)+1,最大能量效率为(1+能量等级)"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.7", "该机器拥有时间并行,消耗量和持续时间均会乘上并行数,且并行数为效率*5"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.8", "该机器燃料消耗量为1-0.05*Math.max((rune_energy-50)/50,0.75)"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.9", "在普通模式下发电时积将发电量的1%积累入类星体之眼之中,你每有25符文能量,就可以额外积累1%"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.10", - "在创生模式下释放所有积累的电量,使用高级燃料可以使输出获得倍乘。同时每积累1000E EU就额外产出一份气体产出,积累电量小于1E时无法启动创生模式"); - provider.add("ctnh.multiblock.quasar_eye.tooltip.11", "§b好消息§r:这个机器不会爆炸,§c但我不保证未来它不会爆炸!§r"); - - provider.add("ctnh.multiblock.large_miner_zpm.tooltip.0", "听说你很担心矿物的来源?"); - - provider.add("ctnh.multiblock.astronomical.tooltip.0", "知天易,逆天难"); - provider.add("ctnh.multiblock.astronomical.tooltip.1", "无法在阳光直射下工作,工作时会自动为芯片总线中的芯片收集数据"); - - provider.add("ctnh.multiblock.sinope_chemical.tooltip.0", "来自§b某个神秘东方大国§r的工业力量"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.1", "格雷员工不骗格雷员工,并行是真实的"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.2", "没有外壳等级要求,配方不需要催化剂"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.3", "并行数与中心的方块有关"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.4", "硅岩块:8并行"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.5", "富集硅岩块:32并行"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.6", "超能硅岩块:128并行"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.7", "每一点实际的并行数减少0.5%的能耗和运行时间,至多减少25%(独立乘区)"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.8", "线圈每提供1800K,运行速度+100%"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.9", "§c任何虚假的并行都将绳之以法!§r"); - - provider.add("ctnh.multiblock.nano_generator.tooltip.0", "利用摩擦热的力量"); - provider.add("ctnh.multiblock.nano_generator.tooltip.1", "最大并行数:2048"); - provider.add("ctnh.multiblock.nano_generator.tooltip.2", "每有1并行数,总体发电量提升4%\n实际运行时间为配方时间*sqrt(并行数)"); - provider.add("ctnh.multiblock.nano_generator.tooltip.3", - "在控制器内放入特定材料可提升倍率,但也有概率消耗\n无材料:0.8倍率\n橡胶片:1.0倍率,并行数/512几率消耗\n聚乙烯片:1.6倍率,并行数/1024几率消耗\n硅橡胶片:2.4倍率,并行数/4096几率消耗\n聚四氟乙烯片:3.2倍率,并行数/65535几率消耗\n丁苯橡胶片:4.6倍率,并行数/131070几率消耗\n聚苯并咪唑片:5倍率,并行数/1048576几率消耗"); - - provider.add("ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.0", "简易太阳能发电"); - provider.add("ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.1", "§e基础产能功率:§r512 EU/t"); - provider.add("ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.2", - "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率"); - - provider.add("ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.0", "高效太阳能发电"); - provider.add("ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.1", "§e基础产能功率:§r2048 EU/t"); - provider.add("ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.2", - "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率"); - - provider.add("ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.0", "究极太阳能发电"); - provider.add("ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.1", "§e基础产能功率:§r8192 EU/t"); - provider.add("ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.2", - "只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率"); - - provider.add("ctnh.multiblock.ion_exchanger.tooltip.0", "离子交换"); - - provider.add("ctnh.multiblock.coke_tower.tooltip.0", "拥有强大的焦化产能来支撑你的木化产线!"); - provider.add("ctnh.multiblock.coke_tower.tooltip.1", "有着如同工业熔炉一般的速度"); - - provider.add("ctnh.multiblock.wide_accelerator.tooltip.0", "粒子加速集成者"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.1", "允许§9使用激光仓§r和§a变电仓§r"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.2", "通过三个轨道加速三种粒子"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.3", - "本机器只要求粒子速度大于配方需求,不满足需求无法运行。粒子速度不会超过50Gev,这台机器非常安全,不会引发爆炸。"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.4", "允许使用§b并行控制仓§r,不适用并行控制仓则使用默认值"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.5", "在运行一般配方时如无§b并行控制仓§r,默认使用16并行"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.6", "如果粒子速度过慢,则什么都不会产生"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.7", - "本机器可以存储至多50E EU能量,存储的能量可以在加速界面调整三种粒子速度,每调整1M ev粒子速度需要消耗10M EU存储的能量,按住shift时可以一次性更改10M ev粒子速度,按住ctrl时可以一次性更改100M ev粒子速度"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.8", - "三种粒子轨道速度之和每有1M ev,每tick便消耗机器存储的100EU能量,电量不足时,每tick粒子速度会衰减10%"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.9", - "机器没有运行时,默认使用存储能源舱室的所有能源为机器充能。机器运行时仍然使用能源仓的能量。但在机器运行时除非机器存储电量不够,否则能源仓不会为机器充能"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.10", - "注意:本机器用电量极高,且暂时无法做到只能计算正确并行,使用低电压可能导致§c配方无法运行§r或者§c跳电§r,建议搭配§9激光仓§r使用,如遇配方不工作,请报告给作者"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.11", - "可以与约束器链接传递部分粒子。§c警告:如果没有链接约束器,不要随意尝试某些危险的配方§r (目前还是饼)"); - - provider.add("ctnh.multiblock.mana_reactor.tooltip.0", "工业魔力奠基者"); - provider.add("ctnh.multiblock.mana_reactor.tooltip.1", "允许使用并行控制仓"); - - provider.add("ctnh.multiblock.greenhouse.tooltip.0", "室内种植"); - - provider.add("ctnh.multiblock.meteor_capturer.tooltip.0", "§8为什么陨石总能落在陨石坑里?§r\n该机器无法超频"); - provider.add("ctnh.multiblock.meteor_capturer.tooltip.1", "消耗少量引物和大量的生命源质,从外太空拉取满是矿石的陨石。"); - provider.add("ctnh.multiblock.meteor_capturer.tooltip.2", "配方需要大量的输入输出空间,建议使用高级输入总成。"); - provider.add("ctnh.multiblock.meteor_capturer.tooltip.3", "陨石会在多方块结构上方的空腔内生成(真的)。不要在里面放置人或设备。"); - provider.add("ctnh.multiblock.meteor_capturer.tooltip.4", "半径大于13的配方会破坏多方块结构(不存在这种配方)。"); - - provider.add("ctnh.recipe.arc_generator.require", "需求电弧强度:%d"); - provider.add("ctnh.recipe.arc_generator.max_require", "满功率需求电弧强度:%d"); - provider.add("ctnh.multiblock.arcreactor.arc", "可输出的电弧强度:%d"); - provider.add("ctnh.multiblock.arcreactor.connect", "§b桥接已启用§r"); - - provider.add("ctnh.multiblock.arcgenerator.tooltip.1", "物质撕裂器"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.t2.1", "分子撕裂器"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.t3.1", "原子撕裂器"); - provider.add("ctnh.multiblock.magic_fuel_generator.tip", "精炼天地之魔精"); - - provider.add("ctnh.multiblock.arcgenerator.tooltip.arc.t1.1", "§b最大支持电弧强度:1000"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.arc.t1.2", "§c最大发电效率:75%"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.arc.t2.1", "§b最大支持电弧强度:10000"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.arc.t2.2", "§c最大发电效率:125%"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.arc.t3.1", "§b最大支持电弧强度:50000"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.arc.t3.2", "§c最大发电效率:225%"); - - provider.add("ctnh.multiblock.arcgenerator.tooltip.2", - "该机器必须配合电弧生成器使用,要求电弧生成器必须在该机器主方块上方5格,当完成链接时,电弧生成器会显示已完成连接"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.3", "当电弧强度小于配方最小电弧强度时,配方将无法运行"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.4", - "当电弧强度大于配方最大电弧强度时,配方将以(机器电弧强度-配方需求电弧强度)/(满功率需求电弧强度-需求电弧强度)的效率运行。效率允许超过100%,但不能超过机器最大发电效率"); - provider.add("ctnh.multiblock.arcgenerator.tooltip.5", "当效率未达100%时,因为湮灭的不完全,将产生少量额外产出"); - provider.add("ctnh.multiblock.arcreactor.tooltip", "电弧发生者"); - provider.add("ctnh.multiblock.arcreactor.tooltip.1", - "该机器必须配合电弧撕裂者使用,要求电弧生成器必须在电弧撕裂者主方块上方5格,当完成链接时,电弧生成器会显示桥接已启用"); - provider.add("ctnh.multiblock.arcreactor.tooltip.2", "机器基础每次运行配方产生10电弧强度,无法超频,高等级机器具有更高并行数"); - provider.add("ctnh.multiblock.arcreactor.tooltip.t1", "该机器并行数:1"); - - provider.add("ctnh.magic.generator", "精炼天地之魔精"); - provider.add("ctnh.magic.generator.1", "具有8并行,每秒基础消耗12mB液态魔力,电压每超过§7LV§r一级,消耗量变为原来的两倍"); - provider.add("ctnh.gcym.reduction", "配方耗时x0.8,配方耗能x0.6"); - provider.add("ctnh.mechanical_lathe.structure", "结构中的车床必须严格依照EMI结构信息页面展示的位置和方向摆放"); - provider.add("ctnh.mechanical_lathe.structure.1", "§7EMI中显示的车床数量有问题,实际只需要6个"); - - // - provider.add("ctnh.multiblock.plasma_alloy.tooltip.1", "§4转底炉的复仇"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.11", "允许使用§b激光仓§r,使用激光仓时最终速度将除以4,速度低于原速度时拒绝运行"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.2", - "线圈温度每有1800K,获得4点并行,线圈温度超过10000K时,获得(线圈温度-10000)/10000的额外加速"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.3", "运行前消耗(并行数*对应等离子体消耗)的等离子体,获得额外加速"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.4", "氦等离子体:消耗500*并行的等离子体,速度+100%"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.5", "氧,氮等离子体:消耗300*并行的等离子体,速度+200%"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.6", "镍,铁等离子体:消耗200*并行的等离子体,速度+300%"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.7", "消耗特殊的冶炼等离子体可以获得额外的速度加成,§c但是同样会将增加你冶炼的风险"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.8", - "压缩精金等离子:消耗固定100等离子体,使速度*5,使消耗电压翻倍(§c这可能导致配方不运行,请使用多安能源仓)"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.9", "精炼超能以太等离子体:消耗50*并行等离子体,使速度*10,§c使最终产物在80%-100%中浮动"); - provider.add("ctnh.multiblock.plasma_alloy.tooltip.10", "§c速度增幅超过5000%时,最终产物量将会在0%-50%中浮动!"); - - provider.add("ctnh.plasma_alloy.tooltip.recipe", "配方类型:合金冶炼炉"); - - provider.add("ctnh.acc.danger", "§c危险粒子实验"); - - provider.add("ctnh.multiblock.hybrid_mixer.tooltip.0", "动力学的电力复兴"); - provider.add("ctnh.multiblock.hybrid_mixer.tooltip.1", "执行特殊的电压-应力驱动机制"); - provider.add("ctnh.multiblock.hybrid_mixer.tooltip.2", - "机器真实电压等级为配方电压等级和应力等级的较小值。应力输入仓要求转速至少为64,应力输入仓转速为256时,应力等级+1"); - provider.add("ctnh.multiblock.hybrid_mixer.tooltip.3", "混合动力超频:应力等级和配方电压等级每同时提升一级,运行速度*4"); - provider.add("ctnh.multiblock.hybrid_mixer.tooltip.4", "当转速超过64时,使配方时间*0.8。转速超过128时配方时间和电压速度将随着转速提升进一步减少"); - - provider.add("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.0", "§6光辉灿烂的太空之路"); - provider.add("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.2", - "在太空发电模式下,星球类型和光伏方块的等级都会提升发电量,在空间站被视为无重力环境,且发电量*4,消耗特定材料以进一步提升发电量"); - provider.add("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.3", - "在太空光伏组装模式下,不消耗EUt,发电量将锁定为1,根据配方的模拟F功率来计算速度和并行量"); - provider.add("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.4", - "光伏等级,光照强度共同决定了是否可以执行太空组装配方,光伏方块耐热性和耐热结构方块决定了可以获得的光照最大倍率,太空结构方块决定了可以使用的光伏方块等级和是否可以使用附属结构"); - provider.add("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.5", - "在太空光伏组装模式下,最终并行为(太空发电模式下发电量/模拟功率),最终时间倍率为(模拟功率/太空发电模式下发电量),当太空发电模式下发电量小于模拟功率时,最终时间倍率将变为平方"); - provider.add("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.ex", "§6该结构将持续拓展,这还不是它的完全体状态!"); - - provider.add("ctnh.multiblock.lasersorter.tooltip.0", "持续调整激光频率"); - provider.add("ctnh.multiblock.lasersorter.tooltip.1", "配方类型:激光分配/激光蚀刻"); - provider.add("ctnh.multiblock.lasersorter.tooltip.2", "本机器需要消耗算力才能运行"); - provider.add("ctnh.multiblock.lasersorter.tooltip.3", "————————激光蚀刻模式————————"); - provider.add("ctnh.multiblock.lasersorter.tooltip.4", "LuV及以下的电压固定基础请求8算力,电压每高于LuV一级,请求的基础算力翻倍"); - provider.add("ctnh.multiblock.lasersorter.tooltip.5", - "输入的算力如果为基础请求算力的整数倍,则最终输出*1.25,并行等同于⌊(输入的算力/基础请求算力)⌋的三次方"); - provider.add("ctnh.multiblock.lasersorter.tooltip.6", - "输入的算力每比基础算力多一倍,将一次超频转化为无损超频(即运行速度*2),该效果转化的次数不超过你能超频的等级(即上限为将你所有的有损超频转化为无损)"); - provider.add("ctnh.multiblock.lasersorter.tooltip.7", "————————激光分配模式————————"); - provider.add("ctnh.multiblock.lasersorter.tooltip.8", "配方给出请求算力,如果配方没有给出则按照激光蚀刻模式的公式计算"); - provider.add("ctnh.multiblock.lasersorter.tooltip.9", "输入的算力如果为基础请求算力的整数倍,则并行等同于⌊(输入的算力/基础请求算力)⌋的三次方"); - provider.add("ctnh.multiblock.lasersorter.tooltip.10", - "输入的算力每比基础算力多一倍,将一次超频转化为无损超频(即运行速度*2),该效果转化的次数不超过你能超频的等级(即上限为将你所有的有损超频转化为无损)"); - provider.add("ctnh.multiblock.lasersorter.tooltip.11", "§c如果输入的算力不为整数倍,则以上所有的增益全部无效且最终所需时间*4"); - - provider.add("ctnh.multiblock.pvdrone.tooltip.0", "戴森云计划"); - provider.add("ctnh.multiblock.pvdrone.tooltip.1", "允许使用并行控制仓,并行数为运行时间倍率"); - provider.add("ctnh.multiblock.pvdrone.tooltip.2", "为光伏基站提供电力增幅,使用光伏绑定终端来为这两个结构绑定"); - provider.add("ctnh.multiblock.pvdrone.tooltip.3", - "将无人机放入无人机支架以开始发送无人机,每5秒和运行结束时,每个无人机都有一定概率消耗,无人机发电同样受维度和空间站增幅"); - provider.add("ctnh.multiblock.pvdrone.tooltip.4", "无人机的消耗概率公式为1.0 / (1.0 + Math.exp(-0.25* (x - 9)))"); - provider.add("ctnh.multiblock.pvdrone.tooltip.5", "使用无人机收集陨石时,产出的倍率公式为0.1*Math.sqrt(无人机电压之和),倍率小于1时无产出,无法超频"); - provider.add("ctnh.multiblock.pvdrone.info.t1", "提供的能量:%d"); - provider.add("ctnh.multiblock.pvdrone.info.t2", "无人机消耗概率:%.4f"); - - provider.add("multiblock.ctnh.nuclear_reactor.coolant", "冷却液:%s"); - provider.add("multiblock.ctnh.nuclear_reactor.coolant_amount", "冷却液量:%s mB"); - provider.add("multiblock.ctnh.nuclear_reactor.consume_amount", "冷却液消耗率:%s mB/s"); - - provider.add("nuclear_reactor", "核能转化时刻"); - provider.add("ctnh.nuclear_reactor.basic", "这是一个耗能设备,但是会产生大量的热量,可以转化用以发电"); - provider.add("ctnh.nuclear_reactor.coolant", - "冷却液可以使用蒸汽(150°C),氘(450°C),钠(800°C),钠钾合金(900°C),反应的堆温越高,消耗冷却液的速度越快,冷却液的热容越大,消耗速度越慢"); - provider.add("ctnh.nuclear_reactor.overclock", "冷却液并非运行所必须,但是在有冷却液时,配方每运行一秒,进度会增加两秒"); - provider.add("ctnh.nuclear_reactor.safe", "反应堆不会过热爆炸"); - - provider.add("ctnh.multiblock.cryotheum_freezer.tip.0", "§b泪水如凛冰般落下"); - provider.add("ctnh.multiblock.cryotheum_freezer.tip.1", "每次运行配方消耗5*并行mb极寒之凛冰,电压每高于§9IV§r一级,这个消耗就翻4倍"); - provider.add("ctnh.multiblock.cryotheum_freezer.tip.2", - "初始具有4并行和3泪之晶点数,可以在升级界面加点。每消耗10000mb凛冰,就获得一点点数,随后将目标翻四倍"); - - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.0", - "将生物的进化之道完全放任于碳基生物的自然演变是一种低效且缓慢的做法,现在我们将亲自编码每一个基因序列,将我们的至臻完美编译在神经元的逻辑之中"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.01", - "神经矩阵编码器(CMP)是一台编译神经序列的机器,其不同于其他机器,不执行正常的输入逻辑,无法超频"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.1", - "该机器的输入由6个神经矩阵研究舱室组成,每个舱室在结构完成时将被编码,所有研究舱室必须为同一等级,编码完成后,每个研究舱室将会显示他们所属的片区(并未实现)现在片区分配固定为:机器主方块左前方为1,右前方为2,左后方为3,右后方为4"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.2", - "该机器的输入§c必须严格按照EMI的物品顺序§9从左到右§r从第一行到第二行放置在§91-5片区§r,同时在第六片区放置§9研究数据集§r§r,任何错误的放置或者外部舱室的放置都会导致机器故障并在对应舱室显示故障"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.3", "必须保证所有神经矩阵研究舱室的等级不低于配方等级,否则配方不会运行"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.4", "————————机器总体机制————————"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.5", - "每次检测到新的配方时,机器将§6完美诉诸于随机§r,生成函数F(x1,x2,x3)=§6y=ax1+bx2+cx3+d§r,其中,x1,x2,x3为期望的片区所消耗的物品数量,同时在给定范围内随机x1,x2,x3,获取答案y"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.6", "当配方执行时,在开始逻辑运算,1-5片区将各自运行5s,运行完毕时将消耗舱室内所有物品来取得函数"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.part1", "片区1-3:用于提供函数F(x)的真实x1,x2,x3"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.part2", "片区4:代表函数F(x)的常数量d,同时决定噪声ϵ"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.part3", - "片区5:此片区用为神经编译提供电路板支持,决定噪声ϵ波动,如果提供电路板大于配方给定值则不造成噪声影响"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.part4", "片区6:收集最终编译结果的片区,在完成一次逻辑运算流程后,将根据结果对神经数据集进行修改"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.7", - "在片区1-5执行完毕后,进行持续5s的总计算流程,在此过程中给出x1,x2,x3,计算得到计算值y,与真实比较,进行最终编译运算"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.8", "————————最终编译运算————————"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.9", - "最终编译运算将比较真实y与结果y,如果结果y的值在真实值y的0.9-1.1倍内,则运算成功,将编译数据集变为配方输出"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.10", - "如果运算失败,则定义噪声结果函数f(x1,x2,x3)=ax1+bx2+cx3+d+ϵ,根据噪声决定片区,噪声波动最多翻倍5倍,片区误差项为0.9-1.1间,则噪声变为0.5倍率"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.11", - "最终编译数据集将获得三个信息,信息1代表本次的方程,信息2代表噪声结果函数获得的结果值对于y的倍率,信息3代表误差项的比率"); - provider.add("ctnh.multiblock.neuro_martix_compiler.tip.12", "在执行相同配方时方程不会重置,在执行配方或者结构重新成型时,重置y和方程"); - - provider.add("ctnhcore.src.sacrifice_empty", "无牺牲者"); - provider.add("ctnhcore.src.sacrifice_locked", "已锁定牺牲者!"); - provider.add("ctnhcore.src.sacrifice_unlocked", "无法锁定牺牲者"); - provider.add("ctnhcore.src.wetware_duration", "湿件剩余存活时间: %s ticks"); - provider.add("ctnhcore.src.sacrifice", "牺牲者: %s"); - - provider.add("ctnh.data.noise", "当前噪声值:%s"); - provider.add("super_centrifuge", "超速离心"); - - provider.add("ctnh.super_centrifuge.parallel", "普通离心机模式下会获得8并行"); - provider.add("ultrasonic_apparatus", "超声破碎"); - - // provider.add("ctnhcore.machine.high_performance_computer.tooltip.0", "§3飞龙一般的超频计算"); - // provider.add("ctnhcore.machine.high_performance_computer.tooltip.1", "§r能量充足时,提供%d算力"); - provider.add("ctnh.compiler.error.0", "§c未知错误"); - provider.add("ctnh.compiler.error.1", "§c舱室等级与片区1不匹配"); - - provider.add("ctnh.dwof.tooltip", "运行时为模型积累数据,至多将模型提高至[进阶]等级"); - - provider.add("ctnh.multiblock.fluid_drilling_rig.description.inf", "§6钻取来自无尽之中的流体之海"); - provider.add("ctnh.multiblock.fluid_drilling_rig.depletion.inf", "§6永§b不§d损§a耗,你在担心什么?"); - - provider.add("ctnh.multiblock.hyper_plasma_turbine.tooltip0", "§a精密计算§f与§e等离子体§f的§5终极艺术"); - provider.add("ctnh.multiblock.hyper_plasma_turbine.tooltip1", "提供%d算力以达到基础功率,每提供%d算力,输出功率翻一倍"); - provider.add("ctnhcore.recipe_logic.insufficient_cwut", "算力不足"); - provider.add("zenith_machine_sp", "§5灵能灯塔屹立不倒!"); - - provider.add("ctnhcore.machine.digital_miner.tooltip.0", "§7来自GTMThings的挖矿黑科技,速度更快且无采矿管道,仅挖取矿石"); - provider.add("ctnhcore.machine.digital_miner.tooltip.1", "§b工作时自带自身区块强加载"); - provider.add("ctnhcore.machine.digital_miner.tooltip.2", "工作时消耗§f%d EU/t§7,每个方块需要§f%d§7刻"); - - // NOT FINISHED - - provider.add("ctnh.multiblock.wide_accelerator.info.power", "存储的电量:%.2f E/%.2f E"); - provider.add("ctnh.eternal_engine.1", "当前发电量:%d EU /tick"); - provider.add("ctnh.eternal_engine.2", "累计的工作时间:%.2f s/36000 s"); - - provider.add("ctnh.connect", "连接已搭建"); - provider.add("ctnh.anti_nu", "反中子量:%d"); - provider.add("ctnh.anti_proton", "反质子量:%d"); - provider.add("ctnh.anti_electric", "反电子量:%d"); - provider.add("ctnh.trap_electric", "当前存储电量:%deu"); - provider.add("ctnh.trap_electric_max", "允许存储电量上限:%deu"); - provider.add("ctnh.restore_danger", "约束危险物质"); - provider.add("ctnh.no_energy_waring", "§c警告:供电不足,约束场即将失效!"); - - provider.add("ctnh.multiblock.wind_array.tooltip0", "§7§o风力狼群:真正的自然之力"); - provider.add("ctnh.multiblock.wind_array.tooltip1", "§8---------------§a基础数据§8-----------------"); - provider.add("ctnh.multiblock.wind_array.tooltip2", "§f- 基础发电功率: §e%d EU/t §7(地球)"); - provider.add("ctnh.multiblock.wind_array.tooltip3", "§f- 天气风力增益: §e雨天x2,雷雨x4"); - provider.add("ctnh.multiblock.wind_array.tooltip4", "§f- 高度增益: §e Clamp(Y-64, 0, 256-64) / (256-64)"); - provider.add("ctnh.multiblock.wind_array.tooltip5", "§f- 网络增益: §e 0.3*[log2(网络大小)]"); - provider.add("ctnh.multiblock.wind_array.tooltip6", "§f增益乘算得到发电效率"); - provider.add("ctnh.multiblock.wind_array.tooltip7", "§f需要§e%d mB/s§f 润滑油以维护机器运行"); - provider.add("ctnh.multiblock.wind_array.tooltip8", "§8---------------§a风力网络§8-----------------"); - provider.add("ctnh.multiblock.wind_array.tooltip9", "§f所有结构对齐且间距<=1的风力发电机阵列会组成风力网络"); - provider.add("ctnh.multiblock.wind_array.tooltip10", "§f润滑油会从风力网络中抽取."); - provider.add("ctnh.multiblock.wind_array.tooltip11", "§5顺应风力网络的工作规律,以抵挡自然之力的摧残"); - - provider.add("config.jade.plugin_ctnhcore.thread_status_provider", "线程信息"); - provider.add("config.jade.plugin_ctnhcore.recipe_logic_provider", "配方耗电信息"); - provider.add("config.jade.plugin_ctnhcore.recipe_output_provider", "配方输出信息"); - - // NOT USED - provider.add("ctnh.u_sinope.story.1", "在战争没有开始前,人们曾团结在一起,一齐建造这工业的巴别巨塔"); - provider.add("ctnh.u_sinope.story.2", "直到那场永恒的战争,这座真空巨塔化为永恒的残骸,随着战争的双方破碎在真空中"); - provider.add("ctnh.u_sinope.story.3", "你已无法再知晓那场战争的双方是否已经相互毁灭,但你直到,这座巨型结构将宣告着人类的复兴"); - provider.add("ctnh.u_sinope.1", "配方类型:蒸馏塔/蒸馏室/裂化机/流体加热机/流体固化机/真空石化处理/???"); - provider.add("ctnh.u_sinope.2", "§c它那究极的结构已然无法让你的EMI承受,你需要寻求蓝图的帮忙,同时在修改结构时最好直接破坏主方块以避免检测卡死游戏"); - provider.add("ctnh.u_sinope.3", "巨型的结构只能在真空建立,否则巨大的结构将会使周围坍缩(效率减少99.99%)"); - provider.add("ctnh.u_sinope.4", "除非你使用四维工程学材料,否则它无法再承受UIV即以上的线圈,效率将减少99.99%"); - provider.add("ctnh.u_sinope.5", "线圈等级决定了最大的配方等级,你最大只能使用线圈电压等级+1的配方等级,否则效率减少99%"); - provider.add("ctnh.u_sinope.6", "允许使用激光仓,但你的配方电压等级必须达到OPV,否则效率将减少99%"); - provider.add("ctnh.u_sinope.7", - "对于常规配方,该巨构拥有8^(电压等级)的并行,最高不超过2^32,在能源仓等级达到OPV时解锁无损超频,配方等级每超过UHV一级,处理速度+555%,每100点并行使处理速度增加333%,如果使用了四维工程学材料,则速度额外增加5000%"); - provider.add("ctnh.u_sinope.8", - "对于该巨构特有的配方类型具有特殊机制:时间固定为100秒,并行固定为10,电压每超过UHV一级,则时间减少10秒,并行增加10,如果使用了四维工程学材料且线圈等级大于等于UIV,则时间固定为1秒"); - - provider.add("gui.ctnh.neutron_sensor.invert.enabled", - "输出:反转\n\n切换以反转红石逻辑\n默认情况下,中子动能介于所设定的最小值和最大值之间时传感器将发出红石信号,小于最小值时则停止发出红石信号"); - provider.add("gui.ctnh.neutron_sensor.invert.disabled", - "输出:正常\n\n切换以反转红石逻辑\n默认情况下,中子动能介于所设定的最小值和最大值之间时传感器将发出红石信号,小于最小值时则停止发出红石信号"); - - provider.add("ctnh.machine.naquadah_reactor.tooltip", "效率: %s%%"); - provider.add("ctnh.machine.rocket_engine.tooltip", "效率: %s%%"); - provider.add("ctnhcore.machine.oxygen_required", "此机器需要在可供氧环境中运行"); - provider.add("ctnhcore.machine.oxygen_enricher.no_input", "氧气供应不足"); - provider.add("ctnhcore.machine.oxygen_enricher.tooltip.0", "消耗氧气流体以维持密闭空间内的可呼吸环境"); - provider.add("ctnhcore.machine.oxygen_enricher.tooltip.1", "可为半径 %s 格的密闭空间供氧"); - - for (var tier : GTMachineUtils.ELECTRIC_TIERS) { - provider.add(CTNHMachines.PERSONAL_COMPUTER[tier].getBlock(), GTValues.VNF[tier] + "§r个人计算机"); - } - for (int tier = GTValues.UHV; tier <= GTValues.MAX; tier++) { - provider.add(CTNHMachines.PARALLEL_HATCH[tier].getBlock(), GTValues.VNF[tier] + "§r并行控制仓"); - } - for (int tier : GTValues.tiersBetween(LV, HV)) { - provider.add(CTNHMachines.ENERGY_OUTPUT_HATCH_4A_LOWER[tier].getBlock(), - "4安" + GTValues.VNF[tier] + "§r动力仓"); - } - for (int tier : GTValues.tiersBetween(ULV, MV)) { - provider.add(CTNHMachines.ROTOR_HOLDER_EXTEND[tier].getBlock(), GTValues.VNF[tier] + "§r转子支架"); - } - for (int tier : GTValues.tiersBetween(UV, UHV)) { - provider.add(CTNHMachines.COMPILERMACHINE[tier].getBlock(), GTValues.VNF[tier] + "§r神经拟合仓"); - } - // for (int tier : GTValues.tiersBetween(HV, IV)) { - // provider.add(CTNHMachines.HIGH_PERFORMANCE_COMPUTER[tier].getBlock(), GTValues.VNF[tier] + "§r高性能计算机"); - // } - provider.add(CTNHMachines.STERILE_CLEANROOM_MAINTENANCE_HATCH.getBlock(), "无菌超净间维护仓"); - - provider.add(CTNHMachines.DRONEHOLDER.getBlock(), "无人机支架"); - - provider.add(CTNHMachines.DEHYDRATOR[MV].getBlock(), "§b高级脱水机 §r"); - provider.add(CTNHMachines.DEHYDRATOR[HV].getBlock(), "§6高级脱水机 II§r"); - provider.add(CTNHMachines.DEHYDRATOR[EV].getBlock(), "§5高级脱水机 III§r"); - provider.add(CTNHMachines.DEHYDRATOR[IV].getBlock(), "§9精英脱水机 §r"); - provider.add(CTNHMachines.DEHYDRATOR[LuV].getBlock(), "§d精英脱水机 II§r"); - provider.add(CTNHMachines.DEHYDRATOR[ZPM].getBlock(), "§c精英脱水机 III§r"); - provider.add(CTNHMachines.NAQUADAH_REACTOR[EV].getBlock(), "§5高级硅岩发电机 I"); - provider.add(CTNHMachines.NAQUADAH_REACTOR[IV].getBlock(), "§9精英硅岩发电机 II"); - provider.add(CTNHMachines.NAQUADAH_REACTOR[LuV].getBlock(), "§d精英硅岩发电机 III"); - provider.add(CTNHMachines.NAQUADAH_REACTOR[ZPM].getBlock(), "§c精英硅岩发电机 IV"); - provider.add(CTNHMachines.NAQUADAH_REACTOR[UV].getBlock(), "§3终极硅岩发电机 V"); - provider.add(CTNHMachines.ROCKET_ENGINE[EV].getBlock(), "§5高级火箭引擎发电机 I"); - provider.add(CTNHMachines.ROCKET_ENGINE[IV].getBlock(), "§9精英火箭引擎发电机 II"); - provider.add(CTNHMachines.ROCKET_ENGINE[LuV].getBlock(), "§d精英火箭引擎发电机 III"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[ULV].getBlock(), "§8ULV 中子加速器"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[LV].getBlock(), "§7LV 中子加速器"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[MV].getBlock(), "§bMV 中子加速器"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[HV].getBlock(), "§6HV 中子加速器"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[EV].getBlock(), "§5EV 中子加速器"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[IV].getBlock(), "§9IV 中子加速器"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[LuV].getBlock(), "§dLuV 中子加速器"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[ZPM].getBlock(), "§cZPM 中子加速器"); - provider.add(GTNNMachines.NEUTRON_ACCELERATOR[UV].getBlock(), "§3UV 中子加速器"); - - provider.add(CTNHMachines.DIGITAL_MINER[LV].getBlock(), "数字型采矿机"); - provider.add(CTNHMachines.DIGITAL_MINER[MV].getBlock(), "§b进阶数字型采矿机§r"); - provider.add(CTNHMachines.DIGITAL_MINER[HV].getBlock(), "§6进阶数字型采矿机 II§r"); - provider.add(CTNHMachines.OXYGEN_ENRICHER[MV].getBlock(), "§b氧气富集器§r"); - provider.add(CTNHMachines.OXYGEN_ENRICHER[HV].getBlock(), "§6进阶氧气富集器§r"); - provider.add(CTNHMachines.OXYGEN_ENRICHER[EV].getBlock(), "§5高级氧气富集器§r"); - - provider.add(CTNHCreativeModeTabs.MACHINE.get(), "CTNH机器"); - provider.add(CTNHCreativeModeTabs.ITEM.get(), "CTNH物品"); - provider.add(CTNHCreativeModeTabs.BLOCK.get(), "CTNH方块"); - - provider.addEnchantment(CTNHEnchantments.WARMING, "御寒"); - provider.addEnchantment(CTNHEnchantments.COOLING, "御暑"); - - provider.add("enchantment.ctnhcore.warming.desc", "增强御暑能力"); - provider.add("enchantment.ctnhcore.cooling.desc", "增强御寒能力"); - - provider.add("message.ctnhcore.portal.invalid_dimension", "该传送门只能在主世界使用"); - - provider.addBlock(CTNHBlocks.COIL_ABYSALALLOY, "渊狱合金线圈"); - provider.addBlock(CTNHBlocks.COIL_TITANSTEEL, "泰坦钢线圈"); - provider.addBlock(CTNHBlocks.COIL_PIKYONIUM, "皮卡优线圈"); - provider.addBlock(CTNHBlocks.COIL_BLACKTITANIUM, "黑钛合金线圈"); - provider.addBlock(CTNHBlocks.COIL_STARMETAL, "星辉线圈"); - provider.addBlock(CTNHBlocks.COIL_INFINITY, "无尽线圈"); - // provider.addBlock(CTNHBlocks.COIL_ULTRA_MANA, "类星体魔力线圈方块"); - provider.addBlock(CTNHBlocks.TEST_CASING, "测试方块"); - provider.addBlock(CTNHBlocks.ATOMS_SPLIT_BLOCKS, "原子裂解方块"); - - provider.addBlock(CTNHBlocks.NQ_EXCITE_CARBON_CARBON_NANOFIBER_STRUCTURAL_BLOCK, "硅岩激发碳纳米太空结构方块"); - provider.addBlock(CTNHBlocks.HYPER_PLASMA_TURBINE_ROTOR, "超極等离子涡轮转子"); - provider.addBlock(CTNHBlocks.NAQUADAH_FIREBOX, "硅岩燃烧室"); - - provider.add(MultiblocksA.UNDERFLOOR_HEATING_SYSTEM.getBlock(), "地暖"); - provider.add(MultiblocksA.ASTRONOMICAL_OBSERVATORY.getBlock(), "天文台"); - provider.add(MultiblocksA.PHOTOVOLTAIC_POWER_STATION_ENERGETIC.getBlock(), "充能光伏发电站"); - provider.add(MultiblocksA.PHOTOVOLTAIC_POWER_STATION_PULSATING.getBlock(), "脉冲光伏发电站"); - provider.add(MultiblocksA.PHOTOVOLTAIC_POWER_STATION_VIBRANT.getBlock(), "振动光伏发电站"); - provider.add(MultiblocksA.WIND_POWER_ARRAY.getBlock(), "风力发电阵列"); - provider.add(MultiblocksA.ADVANCED_WIND_POWER_ARRAY.getBlock(), "进阶风力发电阵列"); - provider.add(MultiblocksA.SUPER_WIND_POWER_ARRAY.getBlock(), "超级风力发电阵列"); - provider.add(MultiblocksA.SLAUGHTER_HOUSE.getBlock(), "屠宰场"); - provider.add(MultiblocksA.COKE_TOWER.getBlock(), "焦化塔"); - provider.add(MultiblocksA.PLASMA_CONDENSER.getBlock(), "等离子冷凝器"); - - provider.add(MultiblocksA.BEDROCK_DRILLING_RIGS.getBlock(), "基岩钻机"); - provider.add(MultiblocksA.NAQ_REACTOR_MK3.getBlock(), "超级硅岩反应堆"); - provider.add(MultiblocksA.SWEATSHOP.getBlock(), "§4血汗工厂"); - - provider.add(MultiblocksA.MEADOW.getBlock(), "§6牧场"); - provider.add(MultiblocksA.FERMENTING_TANK.getBlock(), "发酵罐"); - provider.add(MultiblocksA.LARGE_FERMENTING_TANK.getBlock(), "大型发酵罐"); - provider.add(MultiblocksA.DIGESTION_TANK.getBlock(), "化粪池"); - provider.add(MultiblocksA.BLAZE_BLAST_FURNACE.getBlock(), "§c炽焱高炉"); - - provider.add(MultiblocksA.LARGE_BOTTLE.getBlock(), "发酵瓶"); - - provider.add(MultiblocksA.SUPER_EBF.getBlock(), "超级电力高炉"); - provider.add(MultiblocksA.MEGA_LCR.getBlock(), "巨型化学反应釜"); - provider.add(MultiblocksA.EV_CHEMICAL_GENERATOR.getBlock(), "化学能发电机"); - provider.add(MultiblocksA.IV_CHEMICAL_GENERATOR.getBlock(), "化学能吞噬者"); - provider.add(MultiblocksA.MEGA_OIL_CRACKING_UNIT.getBlock(), "巨型原油裂解厂"); - provider.add(MultiblocksA.INDUSTRIAL_PRIMITIVE_BLAST_FURNACE.getBlock(), "工业土高炉"); - provider.add(MultiblocksA.VOID_MINER.getBlock(), "虚空采矿场"); - provider.add(MultiblocksA.SINTERING_KILN.getBlock(), "烧结窑"); - provider.add(MultiblocksA.CHEMICAL_VAPOR_DEPOSITION_MACHINE.getBlock(), "化学气相沉积器"); - provider.add(MultiblocksA.MARTIAL_MORALITY_EYE.getBlock(), "武德之眼"); - provider.add(MultiblocksA.ADVANCED_COKE_OVEN.getBlock(), "高级焦炉"); - provider.add(MultiblocksA.DIMENSIONAL_GAS_COLLECTION_CHAMBER.getBlock(), "维度集气室"); - provider.add(MultiblocksA.CONDENSING_DISCRETE.getBlock(), "冷凝离散塔"); - provider.add(MultiblocksA.ION_EXCHANGER.getBlock(), "离子交换机"); - provider.add(MultiblocksA.LARGE_STEEL_FURNACE.getBlock(), "大型钢制熔炉"); - provider.add(MultiblocksA.LARGE_STEEL_ALLOY_FURNACE.getBlock(), "大型钢制合金炉"); - provider.add(MultiblocksA.DECAY_POOLS.getBlock(), "衰变罐"); - provider.add(MultiblocksA.FUEL_REFINING_FACTORY.getBlock(), "燃料精炼厂"); - provider.add(MultiblocksA.VACUUM_SINTERING_TOWER.getBlock(), "真空烧结厂"); - provider.add(MultiblocksA.CRYSTALLIZER.getBlock(), "结晶器"); - - provider.add(MultiblocksA.SEAWATER_DESALTING_FACTORY.getBlock(), "海水晒盐工厂"); - provider.add(MultiblocksA.BIO_REACTOR.getBlock(), "生物反应器"); - - provider.add(MultiblocksA.SUPER_CENTRIFUGE.getBlock(), "超速离心机"); - provider.add(MultiblocksA.ULTRASONIC_APPARATUS.getBlock(), "超声破碎仪"); - provider.add(MultiblocksA.ULTIMATE_COMBUSTION_ENGINE.getBlock(), "无尽内燃引擎"); - - provider.add(MultiblocksB.SILICA_ROCK_FUEL_REFINERY.getBlock(), "硅岩燃料精炼厂"); - - provider.add(MultiblocksB.NANOGENERATOR.getBlock(), "纳米摩擦发电机"); - - provider.add(MultiblocksB.FOREST_SEA_TREE_FARM.getBlock(), "林海树场"); - provider.add(MultiblocksB.SINOPE_CHEMICAL.getBlock(), "SINOPE化工厂"); - provider.add(MultiblocksB.WIDE_PARTICLE_ACCELERATOR.getBlock(), "广粒子加速器"); - provider.add(MultiblocksB.ARC_GENERATOR.getBlock(), "电弧撕裂者"); - provider.add(MultiblocksB.ARC_REACTOR.getBlock(), "电弧发生器"); - provider.add(MultiblocksB.ADVANCED_ASSEMBLY_LINE.getBlock(), "进阶装配线"); - provider.add(MultiblocksB.CultivationRoom.getBlock(), "培养室"); - provider.add(Mechanical.MECHANICAL_LATHE.getBlock(), "机械车床厂"); - provider.add(Mechanical.MECHANICAL_CENTRIFUGE.getBlock(), "机械离心厂"); - provider.add(Mechanical.MECHANICAL_MIXER.getBlock(), "机械搅拌厂"); - provider.add(Mechanical.MECHANICAL_SIFTER.getBlock(), "机械筛选厂"); - provider.add(Mechanical.MECHANICAL_PRESSOR.getBlock(), "机械辊压厂"); - - provider.add(MultiblocksB.SUPERCONDUCTING_PENNING_TRAP.getBlock(), "超导潘宁势阱"); - provider.add(MultiblocksB.ARC_GENERATOR_MK1.getBlock(), "超压电弧撕裂者MK1"); - provider.add(MultiblocksB.ARC_GENERATOR_MK2.getBlock(), "过载电弧撕裂者MK1"); - provider.add(MultiblocksB.PLASMA_ALLOY_BLAST_SMELTER.getBlock(), "等离子合金冶炼转底炉"); - // provider.add(MultiblocksB.UNIVERSE_SINOPE.getBlock(), "中石化宇宙处理中心"); - provider.add(MultiblocksB.COMBINED_VAPOR_DEPOSITION_FACILITY.getBlock(), "集成沉积工厂"); - provider.add(MultiblocksB.SPACEPHOTOVOLTAICBASESTATION.getBlock(), "太空光伏基站"); - provider.add(MultiblocksB.LaserSorder.getBlock(), "激光分配仪"); - provider.add(MultiblocksB.PHOTOVOLTAIC_DRONE_STATION.getBlock(), "光伏无人机道标基站"); - provider.add(MultiblocksB.HOT_COOLANT_TURBINE.getBlock(), "热冷却涡轮"); - provider.add(MultiblocksB.GAS_CENTRIFUGE.getBlock(), "气体离心机"); - provider.add(MultiblocksB.CRYOTHEUMFREEZER.getBlock(), "凛冰冷冻机"); - provider.add(MultiblocksB.HYPER_PLASMA_TURBINE.getBlock(), "超極等离子涡轮"); - provider.add(MultiblocksB.NERUOMATRIXCOMPILER.getBlock(), "神经矩阵编译器"); - // provider.add(MultiblocksB.HYBRID_POWER_MIXER.getBlock(),"混合动力搅拌机"); - - provider.add(MultiblocksB.FLUID_DRILLING_INF[UHV].getBlock(), "无尽流体钻机"); - // provider.add(MultiblocksB.INF_LARGE_MINER.getBlock(), "无尽钻机"); - - // provider.add(MultiblocksB.COMPONENT_ASSEMBLY_LINE_CT.getBlock(), "应力部件装配线"); - - provider.add(MultiblocksC.GREENHOUSE.getBlock(), "温室"); - - provider.add(MultiblocksC.CNC_ALLOY_SMELTER.getBlock(), "数控合金冶炼炉"); - - translateOreVein("kaolinite_vein", "高岭石矿脉"); - translateOreVein("wollastonite_vein", "白云石矿脉"); - translateOreVein("galena_vein_tf", "方铅矿脉"); - translateOreVein("sapphire_vein_tf", "蓝宝石矿脉"); - translateOreVein("olivine_vein_tf", "橄榄石矿脉"); - translateOreVein("nickel_vein_tf", "镍矿脉"); - translateOreVein("diamond_vein_tf", "钻石矿脉"); - translateOreVein("lapis_vein_tf", "青金石矿脉"); - translateOreVein("molybdenite_vein_tf", "辉钼矿脉"); - translateOreVein("coal_vein_tf", "煤矿脉"); - translateOreVein("lubricant_vein_tf", "皂石矿脉"); - translateOreVein("gold_vein_tf", "金矿脉"); - translateOreVein("iron_vein_tf", "铁矿脉"); - translateOreVein("apatite_vein_tf", "磷灰石矿脉"); - translateOreVein("salts_vein_tf", "盐矿脉"); - translateOreVein("cassiterite_vein_tf", "锡石矿脉"); - translateOreVein("monazite_vein_n", "独居石矿脉"); - translateOreVein("bauxite_vein", "铝土矿脉"); - translateOreVein("ilmenite_vein", "钛铁矿脉"); - translateOreVein("quartzite_vein", "石英岩矿脉"); - translateOreVein("molybdenum_vein_ad", "钼矿脉"); - translateOreVein("galena_vein_ad", "方铅矿脉"); - translateOreVein("copper_vein_ad", "铜矿脉"); - translateOreVein("cassiterite_vein_ad", "锡石矿脉"); - translateOreVein("desh_vein_ad", "戴斯矿脉"); - translateOreVein("ostrum_vein_ad", "紫金矿脉"); - translateOreVein("arsenic_vein_ad", "砷矿脉"); - translateOreVein("pitchblende_vein_ad", "沥青铀矿脉"); - translateOreVein("tuff_uraninite_vein_ad", "晶质铀矿脉"); - translateOreVein("scheelite_vein_ad", "白钨矿脉"); - translateOreVein("sulfur_vein_ad", "硫矿脉"); - translateOreVein("redstone_vein_ad", "红石矿脉"); - translateOreVein("nickel_vein_ad", "镍矿脉"); - translateOreVein("magnetite_vein_ad", "磁铁矿脉"); - translateOreVein("iron_vein_ad", "铁矿脉"); - translateOreVein("beryllium_vein_ad", "铍矿脉"); - translateOreVein("tetrahedrite_vein_ad", "黝铜矿脉"); - translateOreVein("salts_vein_ad", "盐矿脉"); - translateOreVein("naquadah_vein_ad_mars", "硅岩矿脉"); - translateOreVein("chromium_vein_ad", "铬矿脉"); - translateOreVein("uranium238_vein_ad", "铀238矿脉"); - translateOreVein("magnesite_vein_ad", "菱镁矿脉"); - translateOreVein("platinum_vein_ad", "铂矿脉"); - translateOreVein("lapis_vein_ad", "青金石矿脉"); - translateOreVein("olivine_vein_ad", "橄榄石矿脉"); - translateOreVein("manganese_vein_ad", "锰矿脉"); - translateOreVein("lubricant_vein_ad", "皂石矿脉"); - translateOreVein("saltpeter_vein_ad", "蓝石矿脉"); - translateOreVein("calorite_vein_ad", "耐热合金矿脉"); - translateOreVein("rutile_vein_ad", "金红石矿脉"); - translateOreVein("iridium_vein_ad", "铱矿脉"); - translateOreVein("pyrolusite_vein_ad", "软锰矿脉"); - translateOreVein("naquadah_vein_ad", "硅岩矿脉"); - translateOreVein("osmium_vein_ad", "锇矿脉"); - translateOreVein("neutronium_vein_ad", "中子素矿脉"); - translateOreVein("niobium_vein_ad", "铌矿脉"); - } - - public static void replace(@NotNull RegistrateCNLangProvider provider, @NotNull String key, - @NotNull String value) { - try { - // the regular lang mappings - Field field = LanguageProvider.class.getDeclaredField("data"); - field.setAccessible(true); - // noinspection unchecked - Map map = (Map) field.get(provider); - map.put(key, value); - } catch (NoSuchFieldException | IllegalAccessException e) { - throw new RuntimeException("Error replacing entry in datagen.", e); - } - } - - private static void translateMaterial(Material material, String cn) { - if (material == null) return; - cnLangProvider.add(material.getUnlocalizedName(), cn); - } - - private static void translateOreVein(String key, String cn) { - cnLangProvider.add(key, cn); - } -} diff --git a/src/main/java/io/github/cpearl0/ctnhcore/data/lang/old/EnglishLangHandler.java b/src/main/java/io/github/cpearl0/ctnhcore/data/lang/old/EnglishLangHandler.java deleted file mode 100644 index 3f0c815e9..000000000 --- a/src/main/java/io/github/cpearl0/ctnhcore/data/lang/old/EnglishLangHandler.java +++ /dev/null @@ -1,589 +0,0 @@ -package io.github.cpearl0.ctnhcore.data.lang.old; - -import io.github.cpearl0.ctnhcore.registry.material.CTNHMaterials; - -import com.gregtechceu.gtceu.api.data.chemical.material.Material; -import com.gregtechceu.gtceu.data.lang.LangHandler; -import com.gregtechceu.gtceu.utils.FormattingUtil; - -import com.tterrag.registrate.providers.RegistrateLangProvider; - -public class EnglishLangHandler { - - public static RegistrateLangProvider enLangProvider; - - public static void init(RegistrateLangProvider provider) { - enLangProvider = provider; - LangHandler.replace(provider, CTNHMaterials.Holystone.getUnlocalizedName(), "Holystone"); - LangHandler.replace(provider, CTNHMaterials.Zanite.getUnlocalizedName(), "Zanite"); - LangHandler.replace(provider, CTNHMaterials.Ambrosium.getUnlocalizedName(), "Ambrosium"); - LangHandler.replace(provider, CTNHMaterials.Skyjade.getUnlocalizedName(), "Skyjade"); - LangHandler.replace(provider, CTNHMaterials.Stratus.getUnlocalizedName(), "Stratus"); - - provider.add("message.ctnhcore.portal.invalid_dimension", "This portal can only be used in the Overworld"); - - provider.add("enchantment.ctnhcore.warming.desc", "Enhance your hot defending ability"); - provider.add("enchantment.ctnhcore.cooling.desc", "Enhance your cold defending ability"); - - // Item Tooltip - provider.add("ctnh.advanced_ram_wafer.tooltip", "Enhanced RAM Wafer"); - provider.add("ctnh.advanced_ram_chip.tooltip", "Advanced Random Access Memory"); - provider.add("ctnh.blood_magic_gregtech_hv", - "Use this item as an offering in the Falling Star Beacon Ritual to summon meteorites"); - provider.add("ctnh.stone_process_catalyst", - "Village stonemasons know this ancient technique - they'll teach you after you become a Hero of the Village"); - provider.add("ctnh.metallurgical_catalyst", - "Nether Piglins possess this knowledge - try bartering with them"); - provider.add("ctnh.bauxite_process_catalyst", - "Village librarians guard this ancient technique - prove yourself as a Hero of the Village to learn it"); - provider.add("ctnh.platinum_metal_catalyst_shard1", - "The tides of time turned these into aquatic treasures - fish them up"); - provider.add("ctnh.platinum_metal_catalyst_shard2", - "The abyssal Drowned Ones hold this secret - attempt to trade with them"); - provider.add("ctnh.psionic_medulla", - "Obtain it by extracting Alfheim Elves through the Blood Magic Evil Creature Extraction ritual"); - provider.add("ctnh.doubt", - "Obtain it by killing creatures soaked in Life Essence and infusing their doubt into Life Essence"); - - provider.add("config.jade.plugin_ctnhcore.thread_status_provider", "Thread Info"); - provider.add("config.jade.plugin_ctnhcore.recipe_logic_provider", "Recipe Logic Info"); - provider.add("config.jade.plugin_ctnhcore.recipe_output_provider", "Recipe Output Info"); - - // Recipe Types - provider.add("gtceu.underfloor_heating_system", "Underfloor Heating"); - provider.add("gtceu.astronomical_observatory", "Astronomical Observatory"); - provider.add("gtceu.photovoltaic_power", "Photovoltaic Powering"); - provider.add("gtceu.slaughter_house", "Slaughter House"); - provider.add("gtceu.big_dam", "Big Dam"); - provider.add("gtceu.coke_oven", "Coke Oven"); - provider.add("gtceu.naq_mk1", "Super Fuel"); - provider.add("gtceu.bedrock_drilling_rigs", "Bedrock Drilling Rigs"); - provider.add("gtceu.plasma_condenser", "Plasma Condensation"); - - provider.add("ctnh.test_terminal.lack_error", "At %s, you need"); - provider.add("ctnh.test_terminal.wrong_error", "At %s, it should be"); - provider.add("ctnh.test_terminal.position", "(%s,%s,%s)"); - provider.add("ctnh.test_terminal.error_info", "(%s)"); - provider.add("ctnh.test_terminal.success", "Everything is OK!"); - - provider.add("ctnh.testing_terminal.tooltip.1", "Use to check the error when building the multiblock"); - provider.add("ctnh.testing_terminal.tooltip.2", "Right-click the controller to show the error info"); - provider.add("ctnh.testing_terminal.tooltip.3", "Right-click with Shift to change between Normal/Flipped mode"); - provider.add("ctnh.me_advanced_terminal.tooltip.1", - "Can build multiblock structures using items from the ME network"); - provider.add("ctnh.me_advanced_terminal.tooltip.2", "Connects to the network via ME Wireless Access Point"); - provider.add("ctnh.me_advanced_terminal.tooltip.3", "Prioritizes items from the player's inventory"); - - provider.add("ctnh.tooltips.simplecomputationmachine", - "Requires 2^(recipe level - HV) CWU/t when handling recipes which tier is no lower than HV"); - - provider.add("ctnh.recipe.industrial_altar.info.0", "LP consumption/input: %.1f"); - - provider.add("ctnh.recipe.quasar_eye.info.0", "Activation Cost: %.1f"); - provider.add("ctnh.recipe.quasar_eye.info.1", "Energy Tier: %d"); - provider.add("ctnh.recipe.quasar_eye.info.2", "Activation Tier: %d"); - - provider.add("ctnh.recipe.hellforge.info.minimum_drain", "MinimumDrain: %s Will"); - provider.add("ctnh.recipe.hellforge.info.drain", "Drain: %s Will"); - - provider.add("ctnh.recipe.accelerator.mode.nu", "Mode: Neutron Acceleration"); - provider.add("ctnh.recipe.accelerator.mode.proton", "Mode: Proton Acceleration"); - provider.add("ctnh.recipe.accelerator.mode.element", "Mode: Electron Acceleration"); - provider.add("ctnh.recipe.accelerator.mode.element.consume", "Accelerated Particle: Electron"); - provider.add("ctnh.recipe.accelerator.mode.proton.consume", "Accelerated Particle: Proton"); - provider.add("ctnh.recipe.accelerator.mode.nu.consume", "Accelerated Particle: Neutron"); - provider.add("ctnh.recipe.accelerator.mode.speed.m", "Required Velocity: %.2f MeV"); - provider.add("ctnh.recipe.accelerator.mode.speed.g", "Required Velocity: %.2f GeV"); - - // Common Tooltips - provider.add("ctnh.common_tooltip.parallel_hatch", "Voltage levels increase the number of parallels"); - provider.add("ctnh.common_tooltip.subtick_overclock", - "When recipe runtime is less than 1 tick, parallel calculations will be performed automatically."); - provider.add("ctnh.common_tooltip.perfect_overclock", "Perfect Overclock!"); - provider.add("ctnh.common_tooltip.steel_machine.0", "Can only use HV-grade energy hatches and below"); - provider.add("ctnh.common_tooltip.steel_machine.1", "Maximum parallelism: 32"); - - // Machine Info - provider.add("ctnh.multiblock.underfloor_heating_system.info.efficiency", "Efficiency: %d"); - provider.add("ctnh.multiblock.underfloor_heating_system.info.rate", "Rate: %s"); - provider.add("ctnh.multiblock.underfloor_heating_system.info.rate.tooltip", - "Reduce the consumption of steam to reduce the heating power of the floor heating"); - provider.add("ctnh.multiblock.underfloor_heating_system.info.rate_modify", "Adjust rate: "); - provider.add("ctnh.multiblock.underfloor_heating_system.info.steam_consumption", "Steam consumption rate: %d"); - - provider.add("ctnh.multiblock.photovoltaic_power_station.info.night", "At night"); - provider.add("ctnh.multiblock.photovoltaic_power_station.info.invalid", "Shadowed"); - provider.add("ctnh.multiblock.photovoltaic_power_station.info.1", "Efficiency: %s%%"); - provider.add("ctnh.multiblock.photovoltaic_power_station.info.2", "Generating: %s/%s EU/t"); - - provider.add("ctnh.mutliblock.wind_power_array.info.network_machine", "Network Machine Count:%d"); - provider.add("ctnh.mutliblock.wind_power_array.info.network_machine_efficiency", "Generating Efficiency: %d"); - provider.add("ctnh.mutliblock.wind_power_array.info.network_dirty", "Network will rebuild in %d second(s)"); - - provider.add("ctnh.multiblock.slaughter_house.info.mobcount", "Mob Types: %d (%s)"); - - provider.add("ctnh.multiblock.mana_turbine.info.efficiency", "Generating Efficiency:%d%%"); - provider.add("ctnh.multiblock.mana_turbine.info.consumption_rate", "Consumption Rate:%d"); - - provider.add("ctnh.multiblock.naq_reactor.info.temperature", "§cCore temperature: %d"); - provider.add("ctnh.multiblock.naq_reactor.info.nickel_consumption", "Nickel plasma consumption: %d"); - provider.add("ctnh.multiblock.naq_reactor.info.parallel_count", "Power generation parallel count: %d"); - - provider.add("ctnh.multiblock.demon_generator.info.default", "Specialization Boost: None"); - provider.add("ctnh.multiblock.demon_generator.info.vengeful", "Specialization Boost: Vengeful"); - provider.add("ctnh.multiblock.demon_generator.info.corrosive", "Specialization Boost: Corrosive"); - provider.add("ctnh.multiblock.demon_generator.info.steadfast", "Specialization Boost: Steadfast"); - provider.add("ctnh.multiblock.demon_generator.info.destructive", "Specialization Boost: Destructive"); - provider.add("ctnh.multiblock.demon_generator.info.1", "Concentration Difference: %s"); - provider.add("ctnh.multiblock.demon_generator.info.boosted", "§bLife Essence Boost Active"); - - provider.add("ctnh.multiblock.sweat_shop.info.villager_count", "Employee Count: %s"); - provider.add("ctnh.multiblock.sweat_shop.info.basic_rate", "Base Productivity: x%s"); - - provider.add("ctnh.multiblock.void_miner.info.cryotheum", "Cryotheum consumption: %d "); - provider.add("ctnh.multiblock.void_miner.info.pyrotheum", "Pyrotheum consumption: %d "); - provider.add("ctnh.multiblock.void_miner.info.overheat", "Overheating!!!"); - - provider.add("ctnh.multiblock.blaze_blast_furnace.info.pyrotheum", "Blazing Pyrotheum: %d mB"); - - provider.add("ctnh.multiblock.mega_lcr.info.coil", "Current Coil Temperature: %s"); - provider.add("ctnh.multiblock.mega_lcr.info.speed", "Current Recipe Time Multiplier: %s"); - - provider.add("ctnh.multiblock.water_power_station.info.0", "Water Flow: %d"); - provider.add("ctnh.multiblock.water_power_station.info.1", "Coil Efficiency: %d%%"); - provider.add("ctnh.multiblock.water_power_station.info.2", "Power Output: %d/%d EU/t"); - - provider.add("ctnh.multiblock.forest_machine.info.humidity", "Humidity level: %d"); - provider.add("ctnh.multiblock.forest_machine.info.parallel_count", "Parallel count: %d"); - - provider.add("ctnh.multiblock.zenith_machine.info.max_parallel", "Max Parallels:%d"); - provider.add("ctnh.multiblock.zenith_machine.info.now_parallel", "Now Parallels:%d"); - - provider.add("ctnh.multiblock.industrial_altar.info.current_lp", "Current LP amount: %d"); - provider.add("ctnh.multiblock.industrial_altar.info.max_lp", "Max LP amount: %d"); - - provider.add("ctnh.multiblock.astronomical.info.invalid", "Can only be used at night"); - - provider.add("ctnh.multiblock.sinope_chemical.info.level", "Coil Accelerating Rate: %d"); - provider.add("ctnh.multiblock.sinope_chemical.info.parallel", "Parallel Count: %d"); - - provider.add("ctnh.multiblock.wide_accelerator.info.nu_speed", "Neutron Velocity: %.2f MeV"); - provider.add("ctnh.multiblock.wide_accelerator.info.proton_speed", "Proton Velocity: %.2f MeV"); - provider.add("ctnh.multiblock.wide_accelerator.info.electric_speed", "Electron Velocity: %.2f MeV"); - provider.add("ctnh.multiblock.wide_accelerator.info.consume", "Power Consumption Multiplier: %.2f"); - - provider.add("ctnh.multiblock.wide_accelerator.gui.electric", "Electron Beamline"); - provider.add("ctnh.multiblock.wide_accelerator.gui.nu", "Neutron Beamline"); - provider.add("ctnh.multiblock.wide_accelerator.gui.proton", "Proton Beamline"); - provider.add("ctnh.multiblock.wide_accelerator.gui.name", "Access Beamline"); - - provider.add("ctnh.multiblock.arcgenerator.info.0", "Max Arc Intensity: %d"); - provider.add("ctnh.multiblock.arcgenerator.info.1", "Current Arc Intensity: %d"); - provider.add("ctnh.multiblock.arcgenerator.info.2", "Max Supported Efficiency: %.2f%%"); - provider.add("ctnh.multiblock.arcgenerator.info.3", "Current Efficiency: %.2f%%"); - - // Machine Tooltips - provider.add("ctnhcore.copyright.info", "Added by CTNH"); - - provider.add("ctnh.recipe_type.info", "Recipe Type:%s"); - - provider.add("gtceu.multiblock.laser.tooltip", "The use of the laser chamber is permitted"); - - provider.add("ctnh.multiblock.plasma_condenser.tooltip.1", "The dense air condenses into frost and dew"); - - provider.add("ctnh.multiblock.forest_sea.tooltip.1", "Plant trees by hand, create shade for millennia"); - provider.add("ctnh.multiblock.forest_sea.tooltip.2", - "The Forest Sea is a massive machine that consumes only water to produce large quantities of lumber"); - provider.add("ctnh.multiblock.forest_sea.tooltip.3", "Performs water storage check every 5 seconds"); - provider.add("ctnh.multiblock.forest_sea.tooltip.4", "When water is sufficient, increases humidity by 1%"); - provider.add("ctnh.multiblock.forest_sea.tooltip.5", "When water is insufficient, decreases humidity by 10%"); - provider.add("ctnh.multiblock.forest_sea.tooltip.6", - "Recipe processing time remains constant, but parallel value increases with humidity and voltage tier"); - provider.add("ctnh.multiblock.forest_sea.tooltip.7", "Better than greenhouses!"); - - provider.add("ctnh.multiblock.cultivation_room.tooltip.1", "Microbial incubation, fungal proliferation"); - provider.add("ctnh.multiblock.cultivation_room.tooltip.2", - "Utilize this machine to cultivate hard-to-obtain fungi and bacteria"); - - provider.add("ctnh.multiblock.sweat_shop.tooltip.0", "Means of Production and Surplus Value"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.1", - "The number of villagers in the factory determines efficiency. Recipe time x (2 / number of villagers)"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.2", - "The effective number of workers in the factory is limited by the factory size. Initial limit: 4 workers; for every 4 blocks added to the factory length, the limit increases by 1."); - provider.add("ctnh.multiblock.sweat_shop.tooltip.3", - "The production materials (machines) placed determine the available recipes:\nPowered Rolling Machine ---- Rolling Mill Recipes\nPowered Mixer ---- Mixer Recipes\nLathe ---- Lathe Recipes\nCentrifuge ---- Extractor Recipes\nBlaze Burner ---- Extractor Recipes\nWork Basin ---- Fluid Forming Recipes\nCrushing Wheel ---- Grinder Recipes\nPowered Saw ---- Wire Rolling Machine Recipes\nLaser Processor ---- Laser Etching Recipes"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.4", - "The number of production materials (machines) placed determines the parallelism of corresponding recipes: Parallelism = sqrt(number of machines)"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.5", - "Adding robotic arms improves the overall recipe execution speed. Recipe time x (1 / 1 + 0.25 * sqrt(number of robotic arms))"); - provider.add("ctnh.multiblock.sweat_shop.tooltip.6", - "The diversity of machines placed improves recipe execution speed."); - provider.add("ctnh.multiblock.sweat_shop.tooltip.7", - "Every 5 seconds, machines consume (number of workers) servings of simple worker meals."); - - provider.add("ctnh.multiblock.naq_reactor_mk3.tooltip.1", "Vast energy, the earth trembles"); - provider.add("ctnh.multiblock.naq_reactor_mk3.tooltip.2", - "Generates power using supercharged fuel - cannot fully consume fuel without nickel plasma"); - provider.add("ctnh.multiblock.naq_reactor_mk3.tooltip.3", - "A power core must be present in the machine configuration"); - provider.add("ctnh.multiblock.naq_reactor_mk3.tooltip.4", - "As the core temperature increases, power generation efficiency improves"); - - provider.add("ctnh.multiblock.meadow.tooltip.0", "Automated Pasture"); - provider.add("ctnh.multiblock.meadow.tooltip.1", - "Gains n parallel processing when provided with n× the required stress."); - provider.add("ctnh.multiblock.meadow.tooltip.2", - "Allows breeding of different animals at the same time."); - provider.add("ctnh.multiblock.meadow.tooltip.3", - "Only when the animals run away can you know that you are not farming!"); - - provider.add("ctnh.multiblock.fermenting_tank.tooltip.0", - "A tank designed specifically for microbial growth. Always keep an eye on it!"); - provider.add("ctnh.multiblock.fermenting_tank.tooltip.1", - "Biological Growth Mechanism of the Fermenting Tank:"); - provider.add("ctnh.multiblock.fermenting_tank.tooltip.2", - "The optimal growth temperature is between §236§r and §238§r degrees. Recipes get 1.2x efficiency at optimal temperature. The further it deviates, the lower the efficiency, down to one-third."); - provider.add("ctnh.multiblock.fermenting_tank.tooltip.3", - "Microbial growth follows the logistic equation. When the liquid volume in the input tank is half of its capacity, §2growth efficiency doubles§r. Efficiency is lowest when the tank is full or empty, with a minimum of 20%."); - - // provider.add("ctnh.multiblock.void_miner.tooltip.0", - // "Harvesting heaven’s materials, digging the earth’s essence"); - // provider.add("ctnh.multiblock.void_miner.tooltip.1", - // "The Void Miner automatically generates and extracts ores"); - // provider.add("ctnh.multiblock.void_miner.tooltip.2", - // "If you have a huge demand for minerals, the Void Miner is an essential helper"); - // provider.add("ctnh.multiblock.void_miner.tooltip.3", - // "Input 100,000,000mB of drilling fluid at once, Cryotheum and Pyrotheum will be consumed during temperature - // adjustment"); - // provider.add("ctnh.multiblock.void_miner.tooltip.4", - // "When the temperature reaches 25,000K, the Void Miner will enter forced cooling mode. Please alternate - // between inputting Pyrotheum and Cryotheum to control the temperature"); - // provider.add("ctnh.multiblock.void_miner.tooltip.5", - // "When the temperature drops to 0K, the Void Miner will return to normal operation mode"); - // provider.add("ctnh.multiblock.void_miner.tooltip.6", - // "Initial Pyrotheum consumption is 100mb. If successfully consumed, the energy will increase by ⌊(Pyrotheum / - // 100)⌋, then Pyrotheum will multiply by 1.02"); - // provider.add("ctnh.multiblock.void_miner.tooltip.7", - // "Initial Cryotheum consumption is 100mb. If successfully consumed, the energy will decrease by ⌊(Cryotheum / - // 100)⌋, then Cryotheum will multiply by 1.02"); - // provider.add("ctnh.multiblock.void_miner.tooltip.8", - // "The higher the temperature, the higher the efficiency of the Void Miner"); - - provider.add("ctnh.multiblock.large_fermenting_tank.tooltip.0", "Efficient Industrial Fermentation"); - provider.add("ctnh.multiblock.large_fermenting_tank.tooltip.1", - "Can connect auxiliary structures. By attaching a large fermentation bottle with a specific liquid type, the minimum efficiency increases: Water (50%), Basic Medium (150%), Sterile Medium (200%)."); - - provider.add("ctnh.multiblock.large_bottle.tooltip.0", "This is truly a large container."); - provider.add("ctnh.multiblock.large_bottle.tooltip.1", "Can store up to 10,000 buckets of liquid."); - provider.add("ctnh.multiblock.large_bottle.tooltip.2", - "When used with a large fermenting tank, its liquid will be consumed at a rate of §e100mb/s§r."); - - provider.add("ctnh.multiblock.digestion_tank.tooltip.0", "Actually, it produces very valuable materials..."); - provider.add("ctnh.multiblock.digestion_tank.tooltip.1", "Composting Mechanism of the Digestion Tank:"); - provider.add("ctnh.multiblock.digestion_tank.tooltip.2", - "The optimal growth temperature is between §236§r and §238§r degrees. Recipes get 1.2x efficiency at optimal temperature. The further it deviates, the lower the efficiency, down to one-third."); - - provider.add("ctnh.multiblock.blaze_blast_furnace.tooltip.0", "Faster than an electric blast furnace."); - provider.add("ctnh.multiblock.blaze_blast_furnace.tooltip.1", - "Base consumption is §a10mB§r of Blazing Pyrotheum per second. For each voltage tier above §6HV§r, the consumption doubles."); - provider.add("ctnh.multiblock.blaze_blast_furnace.tooltip.2", "Consumes 0.75x energy."); - provider.add("ctnh.multiblock.blaze_blast_furnace.tooltip.3", "Allows processing of 8 recipes simultaneously."); - - provider.add("ctnh.multiblock.large_steel_furnace.tooltip.0", "Steel Furnace"); - - provider.add("ctnh.multiblock.large_steel_alloy_furnace.tooltip.0", "Steel Alloy Furnace"); - - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.0", "Advanced Blast Furnace"); - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.1", "§6§lComes with 32 parallelism"); - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.2", - "Can only run blast furnace recipes, and recipe time is fixed at 15 seconds"); - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.3", - "Produces a large amount of coke products and phenolic oil"); - provider.add("ctnh.multiblock.advanced_coke_oven.tooltip.4", "§c§lCannot use blast furnace cells"); - - provider.add("ctnh.multiblock.large_gas_collection_chamber.tooltip.0", "Dimensional Gas Collection Chamber"); - provider.add("ctnh.multiblock.large_gas_collection_chamber.tooltip.1", - "This machine can collect gases from any dimension"); - provider.add("ctnh.multiblock.large_gas_collection_chamber.tooltip.2", - "Since its output is large, it is recommended to use an ME Output Assembly to collect the products"); - - provider.add("ctnh.multiblock.underfloor_heating_system.tooltip.0", "Warm your heart with steam"); - provider.add("ctnh.multiblock.underfloor_heating_system.tooltip.1", - "The underfloor heating system uses steam for heating. Occupying one chunk, it can heat §aa 5×5 chunk area§r around it. Heating only works within 10 blocks above the system"); - provider.add("ctnh.multiblock.underfloor_heating_system.tooltip.2", - "Copper brick tiles will rust over time, reducing the heating efficiency of the system when rusted"); - provider.add("ctnh.multiblock.underfloor_heating_system.tooltip.3", - "Adjustable rate allows reducing heating power and steam consumption, with minimum setting at 25%"); - - provider.add("ctnh.multiblock.super_ebf.tooltip.0", "All recipes are 50% faster!"); - - provider.add("ctnh.multiblock.slaughter_house.tooltip.0", "A merciless killing machine"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.1", - "When powered spawners are placed in the input bus, the machine will automatically output corresponding mob drops. Multiple powered spawners can be inserted"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.2", - "Each voltage tier increase adds +4 to virtual spawn count (HV provides 4)"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.3", - "Higher mob health and armor values will increase processing time"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.4", - "Weapon damage and enchantments will reduce processing time"); - provider.add("ctnh.multiblock.slaughter_house.tooltip.5", "Fortune and other enchantments also take effect"); - - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.0", - "A more powerful primitive blast furnace, your best helper for steelmaking"); - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.1", - "The industrial primitive blast furnace will continuously heat up while running a recipe, and will cool down rapidly once the process is stopped"); - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.2", - "The higher the temperature, the higher the parallelism of the industrial primitive blast furnace, up to a maximum of 8 parallelism"); - provider.add("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.3", - "The higher the temperature, the higher the efficiency of the industrial primitive blast furnace, up to a maximum of double efficiency"); - - provider.add("ctnh.multiblock.sintering_kiln.tooltip.0", - "Requires 8,192 Stress to activate internal pistons for compacting materials"); - - provider.add("ctnh.multiblock.decay_pools.tooltip.0", "Decay"); - provider.add("ctnh.multiblock.decay_pools.tooltip.1", - "When the circuit board is set to 0, the machine is unpowered and world acceleration is disabled."); - provider.add("ctnh.multiblock.decay_pools.tooltip.2", - "When the circuit board is set to 1, the machine is powered and world acceleration is enabled."); - provider.add("ctnh.multiblock.decay_pools.tooltip.3", "Accelerates the decay process."); - - provider.add("ctnh.multiblock.vacuum_sintering_tower.tooltip.0", "Vacuum Sintering"); - - provider.add("ctnh.multiblock.crystallizer.tooltip.0", "Professional Crystallization"); - provider.add("ctnh.multiblock.crystallizer.tooltip.1", - "The crystallizer completes crystal recipes more efficiently."); - provider.add("ctnh.multiblock.crystallizer.tooltip.2", "Efficiency improves as the coil level increases."); - provider.add("ctnh.multiblock.crystallizer.tooltip.3", - "Can process chemical vapor deposition recipes and some autoclave recipes."); - provider.add("ctnh.multiblock.crystallizer.tooltip.4", "The best assistant for saving materials."); - - provider.add("ctnh.multiblock.desalting_factory.tooltip.0", - "Drying salt out of seawater—eco-friendly, isn't it?"); - - provider.add("ctnh.multiblock.water_power_station.tooltip.0", "Eco-Friendly Energy!"); - provider.add("ctnh.multiblock.water_power_station.tooltip.1", - "Power generation is proportional to the amount of water within a radius equal to the machine length and height of 4, centered on the controller."); - provider.add("ctnh.multiblock.water_power_station.tooltip.2", - "Power output fluctuates randomly between a multiplier of 0.6 to 1."); - - provider.add("ctnh.multiblock.bio_reactor.tooltip.0", "A big tank"); - - provider.add("ctnh.computer.a1", - "§cAll great works require§4 sacrifice§r§j to forge. Other beings may not understand, but they will§4 obey§r."); - provider.add("ctnh.computer.a2", "Machine type: §cSynapse Refining Machine"); - provider.add("ctnh.computer.a3", - "Uses other intelligent beings as §4wetware§r for computation, gaining massive processing power, even converting them into wetware."); - provider.add("ctnh.computer.a4", "Mechanism introduction placeholder"); - provider.add("ctnh.computer.a5", - "This machine will overload the brains of all intelligent beings. §4Inevitable§r §4permanent damage§r to their brains,§4 no drops§r will be left."); - provider.add("ctnh.computer.a6", - "For beings like villagers, who are §7low-intelligence§r new humans, their life and intellect are too low. We need§c smarter, cuter, and more life-capable beings§r."); - provider.add("ctnh.computer.a7", "For endless knowledge, we must§4 make all necessary sacrifices§4."); - - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.0", "Poor version of the Primordial Eye"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.1", - "Consumes 64000mb of steam and 64 raw stones in the early stages"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.2", - "Produces ores from the Overworld, Twilight Forest, and the Moon"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.3", - "Unlocks more recipes as the voltage level increases"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.4", - "More useful than falling stars in the early stages"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.5", - "The center of the structure seems to emanate a mysterious force, filled with an aura of danger. Stay away!"); - provider.add("ctnh.multiblock.martial_morality_eye.tooltip.6", "Structure source: Twist Space Technology"); - - provider.add("ctnh.multiblock.large_miner_zpm.tooltip.0", "Heard you're worried about the source of minerals?"); - - provider.add("ctnh.multiblock.astronomical.tooltip.0", - "Knowing the heavens is easy, but defying them is difficult"); - provider.add("ctnh.multiblock.astronomical.tooltip.1", - "Cannot work under direct sunlight, but will automatically collect data for the chips in the chip bus while working"); - - provider.add("ctnh.multiblock.sinope_chemical.tooltip.0", - "From §bA certain mysterious eastern country§r's industrial power."); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.1", - "Gray employees don’t deceive gray employees, parallel is real."); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.2", - "No shell level requirements, recipes don't need catalysts."); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.3", "Parallel count is related to the central block."); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.4", "Silicon rock block: 8 parallel"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.5", "Enriched silicon rock block: 32 parallel"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.6", "Super silicon rock block: 128 parallel"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.7", - "Each point of actual parallel reduces energy consumption and operation time by 0.5%, up to a maximum reduction of 25% (independently multiplied)"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.8", - "Each coil providing 1800K increases the operation speed by +50%"); - provider.add("ctnh.multiblock.sinope_chemical.tooltip.9", "§cAny false parallel will be punished!§r"); - - provider.add("ctnh.multiblock.nano_generator.tooltip.0", "Utilize the power of friction heat"); - provider.add("ctnh.multiblock.nano_generator.tooltip.1", "Maximum parallel count: 1024"); - provider.add("ctnh.multiblock.nano_generator.tooltip.2", - "For each parallel count, the overall power generation increases by 0.2%\nActual operation time is recipe time * sqrt(parallel count)"); - provider.add("ctnh.multiblock.nano_generator.tooltip.3", - "Inserting specific materials into the machine can enhance the multiplier, but also has a chance of consumption\nNo material: 0.4 multiplier\nRubber sheet: 0.8 multiplier, consumption chance per 512 parallel count\nPolyethylene sheet: 1.2 multiplier, consumption chance per 1024 parallel count\nSilicone rubber sheet: 2.0 multiplier, consumption chance per 4096 parallel count\nStyrene-butadiene rubber sheet: 3.2 multiplier, consumption chance per 65535 parallel count\nPolybenzimidazole sheet: 5 multiplier, consumption chance per 1048576 parallel count"); - - provider.add("ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.0", "Basic Solar Power Generation"); - provider.add("ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.1", "§eBase Output:§r 512 EU/t"); - provider.add("ctnh.multiblock.photovoltaic_power_station_energetic.tooltip.2", - "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld"); - - provider.add("ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.0", - "Advanced Solar Power Generation"); - provider.add("ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.1", "§eBase Output:§r 2048 EU/t"); - provider.add("ctnh.multiblock.photovoltaic_power_station_pulsating.tooltip.2", - "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld"); - - provider.add("ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.0", "Ultimate Solar Power Generation"); - provider.add("ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.1", "§eBase Output:§r 8192 EU/t"); - provider.add("ctnh.multiblock.photovoltaic_power_station_vibrant.tooltip.2", - "Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld"); - - provider.add("ctnh.multiblock.ion_exchanger.tooltip.0", "Ion Exchange"); - - provider.add("ctnh.multiblock.coke_tower.tooltip.0", - "Boasts formidable coking capacity to fuel your petrochemical production line!"); - provider.add("ctnh.multiblock.coke_tower.tooltip.1", "Delivers blistering speeds rivaling industrial furnaces"); - - provider.add("ctnh.multiblock.wide_accelerator.tooltip.0", "Particle Accelerator Integrator"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.1", - "Supports §9laser pods§r and §avoltage converter pods§r, cannot be overclocked"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.2", - "Accelerates three particle types simultaneously through triple beamlines"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.3", - "Requires particle velocity exceeding recipe specifications, with maximum threshold of 50GeV"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.4", - "§bParallel control pods§r enable customized recipe/acceleration parallelism, otherwise uses default values"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.5", - "Default parallelism: 16 (standard recipes without §bcontrol pods§r)"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.6", "Insufficient particle velocity yields no products"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.7", "Operational logic varies by selected recipe mode"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.8", - "ACCELERATION MODE: Default 1024-parallelism. Energy cost increases 10% per 100MeV combined velocity. §9Particle velocity remains constant§r during operation"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.9", - "DECELERATION MODE: Default single-parallelism. Energy cost increases 2.5% per 100MeV. Reduces particle velocity by sqrt(required velocity) post-operation"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.10", - "WARNING: Extreme power consumption. Improper voltage may cause §crecipe failure§r or §ccircuit tripping§r. Recommended with §9laser pods§r. Reduce parallelism if malfunction occurs"); - provider.add("ctnh.multiblock.wide_accelerator.tooltip.11", - "Particle transfer available via containment links. §cCAUTION: Hazardous recipes require pre-installed containment systems§r (Currently conceptual)"); - - provider.add("ctnh.multiblock.greenhouse.tooltip.0", "Plant In Room"); - - provider.add("ctnhcore.src.sacrifice_empty", "No sacrifices found"); - provider.add("ctnhcore.src.sacrifice_locked", "Sacrifice LOCKED"); - provider.add("ctnhcore.src.sacrifice_unlocked", "Sacrifice UNLOCKED"); - provider.add("ctnhcore.src.wetware_duration", "Wetware duration: %s ticks"); - provider.add("ctnhcore.src.sacrifice", "Sacrifices: %s"); - provider.add("ctnh.multiblock.hyper_plasma_turbine.tooltip0", - "§5FINAL FANTASY §fof §a Precise Computation §f and §e Plasma Energy"); - provider.add("ctnh.multiblock.hyper_plasma_turbine.tooltip1", - "Provide %d computation to reach the Base Production. For every %d computation provided, the Output Production DOUBLES."); - provider.add("ctnhcore.recipe_logic.insufficient_cwut", "Insufficient Computation"); - - provider.add("ctnh.multiblock.wind_array.tooltip0", "§7§oWind Wolf: The TRUE POWER of NATURE"); - provider.add("ctnh.multiblock.wind_array.tooltip1", "§8-----------------§aBasic Data§8--------------------"); - provider.add("ctnh.multiblock.wind_array.tooltip2", "§f- Basic Production: §e%d EU/t §7(on earth)"); - provider.add("ctnh.multiblock.wind_array.tooltip3", "§f- Weather Boost: §eRainy x2, Thunder x4"); - provider.add("ctnh.multiblock.wind_array.tooltip4", "§f- Altitude Boost: §eClamp(Y-64, 0, 256-64) / (256-64)"); - provider.add("ctnh.multiblock.wind_array.tooltip5", "§f- Network Boost: §e 0.3*[log2(NetSize)]"); - provider.add("ctnh.multiblock.wind_array.tooltip6", "§fAll boosts are multiplied to determine production."); - provider.add("ctnh.multiblock.wind_array.tooltip7", "§fRequires §e%d mB/t§f Lubricant."); - provider.add("ctnh.multiblock.wind_array.tooltip8", "§8-----------------§aWind Network§8------------------"); - provider.add("ctnh.multiblock.wind_array.tooltip9", - "§fAligned structure within a distance of <= 1 form a Wind Network."); - provider.add("ctnh.multiblock.wind_array.tooltip10", "§fLubricant will be extracted from the network."); - provider.add("ctnh.multiblock.wind_array.tooltip11", - "§5DO OBEY the rules to resist the DESTRUCTION from nature force."); - - // provider.add("ctnhcore.machine.high_performance_computer.tooltip.0", "§3Fetal OVERCLOCKING?"); - // provider.add("ctnhcore.machine.high_performance_computer.tooltip.1", - // "§rProvider %d computation when energy is sufficient."); - - provider.add("ctnh.machine.naquadah_reactor.tooltip", "Efficiency: %s%%"); - provider.add("ctnh.machine.rocket_engine.tooltip", "Efficiency: %s%%"); - provider.add("ctnhcore.machine.oxygen_required", "This machine requires a breathable atmosphere"); - provider.add("ctnhcore.machine.oxygen_enricher.no_input", "Insufficient oxygen supply"); - provider.add("ctnhcore.machine.oxygen_enricher.tooltip.0", - "Consumes oxygen fluid to maintain a breathable sealed room"); - provider.add("ctnhcore.machine.oxygen_enricher.tooltip.1", - "Supplies oxygen to enclosed spaces within %s blocks"); - - provider.add("gui.ctnh.neutron_sensor.invert.enabled", - "Output: Reverse\n\nSwitch to reverse redstone logic\nBy default, the sensor will emit a redstone signal when the neutron kinetic energy is between the set minimum and maximum values, and stop emitting a redstone signal when it is less than the minimum value."); - provider.add("gui.ctnh.neutron_sensor.invert.disabled", - "Output: Normal\n\nSwitch to reverse redstone logic\nBy default, the sensor will emit a redstone signal when the neutron kinetic energy is between the set minimum and maximum values, and stop emitting a redstone signal when it is less than the minimum value."); - - provider.add("ctnhcore.machine.digital_miner.tooltip.0", - "§7From GTMThings, faster speed and no mining pipes, only mining ores"); - provider.add("ctnhcore.machine.digital_miner.tooltip.1", "§bForce loading self chunk while working"); - provider.add("ctnhcore.machine.digital_miner.tooltip.2", - "Uses §f%d EU/t §7while working, each block takes §f%d§7 ticks"); - - translateOreVein("kaolinite_vein"); - translateOreVein("wollastonite_vein"); - translateOreVein("galena_vein_tf"); - translateOreVein("sapphire_vein_tf"); - translateOreVein("olivine_vein_tf"); - translateOreVein("nickel_vein_tf"); - translateOreVein("diamond_vein_tf"); - translateOreVein("lapis_vein_tf"); - translateOreVein("molybdenite_vein_tf"); - translateOreVein("coal_vein_tf"); - translateOreVein("lubricant_vein_tf"); - translateOreVein("gold_vein_tf"); - translateOreVein("iron_vein_tf"); - translateOreVein("apatite_vein_tf"); - translateOreVein("salts_vein_tf"); - translateOreVein("cassiterite_vein_tf"); - translateOreVein("monazite_vein_n"); - translateOreVein("bauxite_vein"); - translateOreVein("ilmenite_vein"); - translateOreVein("quartzite_vein"); - translateOreVein("molybdenum_vein_ad"); - translateOreVein("galena_vein_ad"); - translateOreVein("copper_vein_ad"); - translateOreVein("cassiterite_vein_ad"); - translateOreVein("desh_vein_ad"); - translateOreVein("ostrum_vein_ad"); - translateOreVein("arsenic_vein_ad"); - translateOreVein("pitchblende_vein_ad"); - translateOreVein("tuff_uraninite_vein_ad"); - translateOreVein("scheelite_vein_ad"); - translateOreVein("sulfur_vein_ad"); - translateOreVein("redstone_vein_ad"); - translateOreVein("nickel_vein_ad"); - translateOreVein("magnetite_vein_ad"); - translateOreVein("iron_vein_ad"); - translateOreVein("beryllium_vein_ad"); - translateOreVein("tetrahedrite_vein_ad"); - translateOreVein("salts_vein_ad"); - translateOreVein("naquadah_vein_ad_mars"); - translateOreVein("chromium_vein_ad"); - translateOreVein("uranium238_vein_ad"); - translateOreVein("magnesite_vein_ad"); - translateOreVein("platinum_vein_ad"); - translateOreVein("lapis_vein_ad"); - translateOreVein("olivine_vein_ad"); - translateOreVein("manganese_vein_ad"); - translateOreVein("lubricant_vein_ad"); - translateOreVein("saltpeter_vein_ad"); - translateOreVein("calorite_vein_ad"); - translateOreVein("rutile_vein_ad"); - translateOreVein("iridium_vein_ad"); - translateOreVein("pyrolusite_vein_ad"); - translateOreVein("naquadah_vein_ad"); - translateOreVein("osmium_vein_ad"); - translateOreVein("neutronium_vein_ad"); - translateOreVein("niobium_vein_ad"); - } - - private static void translateMaterial(Material material, String en) { - if (material == null) return; - var enName = FormattingUtil.toEnglishName(material.getName()); - enLangProvider.add(material.getUnlocalizedName(), enName); - } - - private static void translateOreVein(String key) { - enLangProvider.add(key, FormattingUtil.toEnglishName(key)); - } -} diff --git a/src/main/java/io/github/cpearl0/ctnhcore/data/machines/GTNNMachines.java b/src/main/java/io/github/cpearl0/ctnhcore/data/machines/GTNNMachines.java index 80f10173f..3d0bd34df 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/data/machines/GTNNMachines.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/data/machines/GTNNMachines.java @@ -27,7 +27,8 @@ public class GTNNMachines { public static void init() { NEUTRON_ACCELERATOR = registerTieredMachines( - "neutron_accelerator", NeutronAcceleratorMachine::new, + "neutron_accelerator", + " 中子加速器", NeutronAcceleratorMachine::new, (tier, builder) -> builder.langValue(VNF[tier] + " Neutron Accelerator") .rotationState(RotationState.ALL) .abilities(CTNHPartAbility.NEUTRON_ACCELERATOR) diff --git a/src/main/java/io/github/cpearl0/ctnhcore/integration/emi/CTNHCoreEmiPlugin.java b/src/main/java/io/github/cpearl0/ctnhcore/integration/emi/CTNHCoreEmiPlugin.java index 20fb697ff..a1f4a8f9c 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/integration/emi/CTNHCoreEmiPlugin.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/integration/emi/CTNHCoreEmiPlugin.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.integration.emi; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.CTNHCore; @@ -29,6 +32,47 @@ @EmiEntrypoint public class CTNHCoreEmiPlugin implements EmiPlugin { + @CN("村庄里的图书管理员掌握这个古老的技术,成为村庄英雄后他就会传授给你") + @EN("Village librarians guard this ancient technique - prove yourself as a Hero of the Village to learn it") + public static Lang bauxiteProcessCatalyst; + + + @CN("在坠星位标仪式中使用此物品作为祭品可以召唤陨石") + @EN("Use this item as an offering in the Falling Star Beacon Ritual to summon meteorites") + public static Lang bloodMagicGregtechHv; + + + @CN("通过击杀浸泡在生命源质的生物,将其困扰注入生命源质之中获得") + @EN("Obtain it by killing creatures soaked in Life Essence and infusing their doubt into Life Essence") + public static Lang doubt; + + + @CN("地狱的猪灵掌握这个技术,尝试与他们交易吧") + @EN("Nether Piglins possess this knowledge - try bartering with them") + public static Lang metallurgicalCatalyst; + + + @CN("久远的时间使他们变成了水里的宝藏,通过钓鱼获得") + @EN("The tides of time turned these into aquatic treasures - fish them up") + public static Lang platinumMetalCatalystShard1; + + + @CN("深渊里的深潜一组掌握这个技术,尝试与他们交易吧") + @EN("The abyssal Drowned Ones hold this secret - attempt to trade with them") + public static Lang platinumMetalCatalystShard2; + + + @CN("通过血魔法邪恶的生灵萃取仪式萃取艾尔夫海姆精灵获取") + @EN("Obtain it by extracting Alfheim Elves through the Blood Magic Evil Creature Extraction ritual") + public static Lang psionicMedulla; + + + @CN("村庄里的石匠掌握这个古老的技术,成为村庄英雄后他就会传授给你") + @EN("Village stonemasons know this ancient technique - they'll teach you after you become a Hero of the Village") + public static Lang stoneProcessCatalyst; + + + private static final List EXTRA_ITEMS = List.of( "create:chromatic_compound", "create:shadow_steel", @@ -47,16 +91,16 @@ public void register(EmiRegistry registry) { } } - addInformation(registry, "gtceu:hv_emitter", "ctnh.blood_magic_gregtech_hv"); - addInformation(registry, "ctnhcore:stone_process_catalyst", "ctnh.stone_process_catalyst"); - addInformation(registry, "ctnhcore:metallurgical_catalyst", "ctnh.metallurgical_catalyst"); - addInformation(registry, "ctnhcore:bauxite_process_catalyst", "ctnh.bauxite_process_catalyst"); + addInformation(registry, "gtceu:hv_emitter", bloodMagicGregtechHv.key()); + addInformation(registry, "ctnhcore:stone_process_catalyst", stoneProcessCatalyst.key()); + addInformation(registry, "ctnhcore:metallurgical_catalyst", metallurgicalCatalyst.key()); + addInformation(registry, "ctnhcore:bauxite_process_catalyst", bauxiteProcessCatalyst.key()); addInformation(registry, "ctnhcore:platinum_metal_catalyst_shard1", - "ctnh.platinum_metal_catalyst_shard1"); + platinumMetalCatalystShard1.key()); addInformation(registry, "ctnhcore:platinum_metal_catalyst_shard2", - "ctnh.platinum_metal_catalyst_shard2"); - addInformation(registry, "gtceu:psionic_medulla_gem", "ctnh.psionic_medulla"); - addInformation(registry, "bloodmagic:doubt_bucket", "ctnh.doubt"); + platinumMetalCatalystShard2.key()); + addInformation(registry, "gtceu:psionic_medulla_gem", psionicMedulla.key()); + addInformation(registry, "bloodmagic:doubt_bucket", doubt.key()); } @Override diff --git a/src/main/java/io/github/cpearl0/ctnhcore/mixin/javd/PortalBlockMixin.java b/src/main/java/io/github/cpearl0/ctnhcore/mixin/javd/PortalBlockMixin.java index d5bb848f8..c378d29be 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/mixin/javd/PortalBlockMixin.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/mixin/javd/PortalBlockMixin.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.mixin.javd; +import org.spongepowered.asm.mixin.Unique; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; @@ -18,6 +22,13 @@ @Mixin(value = PortalBlock.class) public class PortalBlockMixin { + @CN("该传送门只能在主世界使用") + @EN("This portal can only be used in the Overworld") + @Unique + private static Lang messagePortalInvalidDimension; + + + /** * @author * @reason @@ -46,7 +57,7 @@ public InteractionResult use(BlockState state, Level level, BlockPos pos, } else { // ---- 其他维度禁止 ---- player.displayClientMessage( - Component.translatable("message.ctnhcore.portal.invalid_dimension"), + messagePortalInvalidDimension.translate(), true); } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHBlocks.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHBlocks.java index c37f294d0..b29cd1e4a 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHBlocks.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHBlocks.java @@ -415,6 +415,7 @@ private static BlockEntry createPhotovoltaicBlock(IPBData pbd private static BlockEntry createSpaceStructuralFrame(ISSFData pbdata, String location) { var ssfblock = REGISTRATE.block("%s".formatted(pbdata.getSpaceStructuralFrameworkName()), p -> new SpaceStructuralFramework(p, pbdata)) + .cnlang("硅岩激发碳纳米太空结构方块") .initialProperties(() -> Blocks.IRON_BLOCK) .properties(p -> p.isValidSpawn((state, level, pos, ent) -> false)) .addLayer(() -> RenderType::cutoutMipped) diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHCreativeModeTabs.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHCreativeModeTabs.java index 87f5c9cfa..b8311a7a9 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHCreativeModeTabs.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHCreativeModeTabs.java @@ -1,6 +1,8 @@ package io.github.cpearl0.ctnhcore.registry; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; -import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.registry.machines.multiblock.MultiblocksA; import com.gregtechceu.gtceu.common.data.GTCreativeModeTabs; @@ -13,23 +15,39 @@ public class CTNHCreativeModeTabs { + @CN("CTNH方块") + @EN("CTNH Blocks") + public static Lang itemGroupBlock; + + + @CN("CTNH物品") + @EN("CTNH Items") + public static Lang itemGroupItem; + + + @CN("CTNH机器") + @EN("CTNH Machines") + public static Lang itemGroupMachine; + + + public static RegistryEntry MACHINE = REGISTRATE.defaultCreativeTab("machine", builder -> builder .displayItems(new GTCreativeModeTabs.RegistrateDisplayItemsGenerator("machine", REGISTRATE)) .icon(MultiblocksA.ASTRONOMICAL_OBSERVATORY::asStack) - .title(REGISTRATE.addLang("itemGroup", CTNHCore.id("machine"), "CTNH Machines")) + .title(itemGroupMachine.translate()) .build()) .register(); public static RegistryEntry ITEM = REGISTRATE.defaultCreativeTab("item", builder -> builder.displayItems(new GTCreativeModeTabs.RegistrateDisplayItemsGenerator("item", REGISTRATE)) .icon(CTNHItems.ASTRONOMY_CIRCUIT_1::asStack) - .title(REGISTRATE.addLang("itemGroup", CTNHCore.id("item"), "CTNH Items")) + .title(itemGroupItem.translate()) .build()) .register(); public static RegistryEntry BLOCK = REGISTRATE.defaultCreativeTab("block", builder -> builder.displayItems(new GTCreativeModeTabs.RegistrateDisplayItemsGenerator("block", REGISTRATE)) .icon(CTNHBlocks.CASING_REFLECT_LIGHT::asStack) - .title(REGISTRATE.addLang("itemGroup", CTNHCore.id("block"), "CTNH Blocks")) + .title(itemGroupBlock.translate()) .build()) .register(); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHDimensionMarkers.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHDimensionMarkers.java index 38f1b3b92..88d2d5857 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHDimensionMarkers.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHDimensionMarkers.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.registry; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import com.gregtechceu.gtceu.api.data.DimensionMarker; @@ -8,23 +11,64 @@ public class CTNHDimensionMarkers { + @CN("霜原星") + @EN("Glacio") + public static Lang dimensionAdAstraGlacio; + + + @CN("火星") + @EN("Mars") + public static Lang dimensionAdAstraMars; + + + @CN("水星") + @EN("Mercury") + public static Lang dimensionAdAstraMercury; + + + @CN("月球") + @EN("Moon") + public static Lang dimensionAdAstraMoon; + + + @CN("金星") + @EN("Venus") + public static Lang dimensionAdAstraVenus; + + + @CN("木星") + @EN("Jupiter") + public static Lang dimensionAdExtendraJupiter; + + + @CN("天境") + @EN("Aether") + public static Lang dimensionAetherTheAether; + + + @CN("暮色森林") + @EN("Twilight Forest") + public static Lang dimensionTwilightforestTwilightForest; + + + public static final DimensionMarker MOON = createAndRegister(ResourceLocation.tryParse("ad_astra:moon"), - 1, ResourceLocation.tryParse("ad_astra:moon_stone"), "dimension.ad_astra:moon"); + 1, ResourceLocation.tryParse("ad_astra:moon_stone"), dimensionAdAstraMoon.key()); public static final DimensionMarker MARS = createAndRegister(ResourceLocation.tryParse("ad_astra:mars"), - 2, ResourceLocation.tryParse("ad_astra:mars_stone"), "dimension.ad_astra:mars"); + 2, ResourceLocation.tryParse("ad_astra:mars_stone"), dimensionAdAstraMars.key()); public static final DimensionMarker VENUS = createAndRegister(ResourceLocation.tryParse("ad_astra:venus"), - 3, ResourceLocation.tryParse("ad_astra:venus_stone"), "dimension.ad_astra:venus"); + 3, ResourceLocation.tryParse("ad_astra:venus_stone"), dimensionAdAstraVenus.key()); public static final DimensionMarker MERCURY = createAndRegister(ResourceLocation.tryParse("ad_astra:mercury"), - 3, ResourceLocation.tryParse("ad_astra:mercury_stone"), "dimension.ad_astra:mercury"); + 3, ResourceLocation.tryParse("ad_astra:mercury_stone"), dimensionAdAstraMercury.key()); public static final DimensionMarker GLACIO = createAndRegister(ResourceLocation.tryParse("ad_astra:glacio"), - 7, ResourceLocation.tryParse("ad_astra:glacio_stone"), "dimension.ad_astra:glacio"); + 7, ResourceLocation.tryParse("ad_astra:glacio_stone"), dimensionAdAstraGlacio.key()); public static final DimensionMarker JUPITER = createAndRegister(ResourceLocation.tryParse("ad_extendra:jupiter"), - 7, ResourceLocation.tryParse("ad_extendra:jupiter_stone"), "dimension.ad_extendra:jupiter"); + 7, ResourceLocation.tryParse("ad_extendra:jupiter_stone"), dimensionAdExtendraJupiter.key()); public static final DimensionMarker AETHER = createAndRegister(ResourceLocation.tryParse("aether:the_aether"), - 2, ResourceLocation.tryParse("aether:holystone"), "dimension.aether:the_aether"); + 2, ResourceLocation.tryParse("aether:holystone"), dimensionAetherTheAether.key()); public static final DimensionMarker TWILIGHTFOREST = createAndRegister( ResourceLocation.tryParse("twilightforest:twilight_forest"), - 7, ResourceLocation.tryParse("minecraft:oak_leaves"), "dimension.twilightforest:twilight_forest"); + 7, ResourceLocation.tryParse("minecraft:oak_leaves"), dimensionTwilightforestTwilightForest.key()); // public static final DimensionMarker ALFHEIM = // createAndRegister(ResourceLocation.tryParse("mythicbotany:alfheim"), // 3, ResourceLocation.tryParse("botania:livingrock"), "dimension.mythicbotany:alfheim"); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHItems.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHItems.java index c159f9017..7462221c0 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHItems.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHItems.java @@ -1,4 +1,5 @@ package io.github.cpearl0.ctnhcore.registry; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.common.item.*; import io.github.cpearl0.ctnhcore.common.item.debug.ReloadItem; @@ -50,6 +51,110 @@ @Suffix("tooltip") public class CTNHItems { + @CN("更好的随机存取存储器") + @EN("Advanced Random Access Memory") + public static Lang advancedRamChipTooltip; + + + @CN("更好的内存原料") + @EN("Enhanced RAM Wafer") + public static Lang advancedRamWaferTooltip; + + + @Key("ctnh.item.dyson_tier1") + @CN("集成性光伏无人机蜂群") + @EN("Integrated Photovoltaic Drone Swarm") + public static Lang itemDysonTier1; + + + @Key("ctnh.item.dyson_tier2") + @CN("§4我们的蜂群遮天蔽日") + @EN("§4Our swarm blocks out the sky") + public static Lang itemDysonTier2; + + + @CN("基础堆温:%d°C") + @EN("Base Reactor Temperature: %d°C") + public static Lang itemNuclearReactorHeat; + + + @Key("ctnh.item.runes.horizen_rune") + @CN("视野所向之处") + @EN("As Far as the Eye Can See") + public static Lang itemRunesHorizenRune; + + + @Key("ctnh.item.runes.proliferation_rune") + @CN("金融与生物的本能") + @EN("Finance and Biological Instinct") + public static Lang itemRunesProliferationRune; + + + @Key("ctnh.item.runes.quasar_rune") + @CN("毁灭与创造交替") + @EN("The Alternation of Destruction and Creation") + public static Lang itemRunesQuasarRune; + + + @Key("ctnh.item.runes.starlight_rune") + @CN("Per Aspera Ad Astra") + @EN("Per Aspera Ad Astra") + public static Lang itemRunesStarlightRune; + + + @Key("ctnh.item.runes.twist_rune") + @CN("速度与人性的扭曲") + @EN("The Distortion of Speed and Humanity") + public static Lang itemRunesTwistRune; + + + @CN("§l格雷科技-多方块结构终端-异步成型模式") + @EN("§lGregTech Multiblock Structure Terminal - Asynchronous Formation Mode") + public static Lang meAdvancedTerminalTooltip1; + + + @CN("复刻了曾经的旗舰款,终端屏幕上闪烁着久违的画面") + @EN("A replica of the former flagship model; its terminal screen flickers with a long-lost display") + public static Lang meAdvancedTerminalTooltip2; + + + @Key("ctnh.me_advanced_terminal.tooltip.3") + @CN("通过ME无线访问点链接到网络") + @EN("Connects to the network via an ME Wireless Access Point") + public static Lang meAdvancedTerminalTooltip3; + + + @CN("能维持机体基本的生理功能") + @EN("Maintains the body's basic physiological functions") + public static Lang simpleNutritiousMealTooltip1; + + + @CN("用于检测多方块搭建时产生的错误") + @EN("Use to check the error when building the multiblock") + public static Lang testingTerminalTooltip1; + + + @CN("右键多方块的主方块以显示错误信息") + @EN("Right-click the controller to show the error info") + public static Lang testingTerminalTooltip2; + + + @CN("按住Shift右键切换普通/翻转模式") + @EN("Right-click with Shift to change between Normal/Flipped mode") + public static Lang testingTerminalTooltip3; + + + @CN("蕴含生态圈的所有精华") + @EN("Contains all the essence of an ecosystem") + public static Lang itemEcologicalStarDesc; + + + @CN("分化....") + @EN("Differentiation....") + public static Lang itemSculkCellDesc; + + + static { REGISTRATE.creativeModeTab(() -> CTNHCreativeModeTabs.ITEM); } @@ -146,7 +251,7 @@ private static void registerGeneralCircuits() { .cnlang("简易营养餐") .lang("Simple Nutritious meal") .onRegister(attach(new TooltipBehavior(list -> { - list.add(Component.translatable("ctnh.simple_nutritious_meal.tooltip.1") + list.add(simpleNutritiousMealTooltip1.translate() .withStyle(ChatFormatting.GRAY)); }))) .register(); @@ -155,7 +260,7 @@ private static void registerGeneralCircuits() { .cnlang("生态之星") .lang("Ecological Star") .onRegister(attach(new TooltipBehavior(list -> { - list.add(Component.translatable("item.ctnh.ecological_star.desc").withStyle(ChatFormatting.GREEN)); + list.add(itemEcologicalStarDesc.translate().withStyle(ChatFormatting.GREEN)); }))) .register(); public static ItemEntry SCULK_CELL = REGISTRATE @@ -163,7 +268,7 @@ private static void registerGeneralCircuits() { .cnlang("幽匿干细胞") .lang("Sculk Cell") .onRegister(attach(new TooltipBehavior(list -> { - list.add(Component.translatable("item.sculk_cell.desc").withStyle(ChatFormatting.DARK_GRAY)); + list.add(itemSculkCellDesc.translate().withStyle(ChatFormatting.DARK_GRAY)); }))) .register(); public static ItemEntry ANIMAL_EXCRETA = REGISTRATE @@ -210,9 +315,9 @@ private static void registerGeneralCircuits() { .properties(p -> p.stacksTo(1)) .onRegister(attach(new TestingTerminalBehavior())) .onRegister(attach(new TooltipBehavior(list -> { - list.add(Component.translatable("ctnh.testing_terminal.tooltip.1").withStyle(ChatFormatting.GRAY)); - list.add(Component.translatable("ctnh.testing_terminal.tooltip.2")); - list.add(Component.translatable("ctnh.testing_terminal.tooltip.3")); + list.add(testingTerminalTooltip1.translate().withStyle(ChatFormatting.GRAY)); + list.add(testingTerminalTooltip2.translate()); + list.add(testingTerminalTooltip3.translate()); }))) .register(); public static ItemEntry ME_ADVANCED_TERMINAL = REGISTRATE @@ -222,8 +327,8 @@ private static void registerGeneralCircuits() { .properties(p -> p.stacksTo(1)) .onRegister(attach(new MEAdvancedTerminalBehavior())) .onRegister(attach(new TooltipBehavior(list -> { - list.add(Component.translatable("ctnh.me_advanced_terminal.tooltip.1")); - list.add(Component.translatable("ctnh.me_advanced_terminal.tooltip.2").withStyle(ChatFormatting.GRAY)); + list.add(meAdvancedTerminalTooltip1.translate()); + list.add(meAdvancedTerminalTooltip2.translate().withStyle(ChatFormatting.GRAY)); }))) .register(); public static ItemEntry ASTRONOMY_CIRCUIT_1 = REGISTRATE @@ -523,7 +628,7 @@ private static void registerGeneralCircuits() { .lang("Advanced Ram Wafer") .properties(p -> new Item.Properties().rarity(Rarity.UNCOMMON)) .onRegister(attach(new TooltipBehavior(list -> { - list.add(Component.translatable("ctnh.advanced_ram_wafer.tooltip").withStyle(ChatFormatting.YELLOW)); + list.add(advancedRamWaferTooltip.translate().withStyle(ChatFormatting.YELLOW)); }))) .register(); public static ItemEntry ADVANCED_RAM_CHIP = REGISTRATE @@ -532,7 +637,7 @@ private static void registerGeneralCircuits() { .lang("Advanced Ram Chip") .properties(p -> new Item.Properties().rarity(Rarity.UNCOMMON)) .onRegister(attach(new TooltipBehavior(list -> { - list.add(Component.translatable("ctnh.advanced_ram_chip.tooltip").withStyle(ChatFormatting.YELLOW)); + list.add(advancedRamChipTooltip.translate().withStyle(ChatFormatting.YELLOW)); }))) .register(); public static ItemEntry PRIMARY_STEW = REGISTRATE diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHOres.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHOres.java index 22a5600c5..437f2dd7c 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHOres.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHOres.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.registry; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.data.materials.AdastraMaterials; @@ -30,6 +34,1285 @@ public class CTNHOres { + @Key("apatite_vein_tf") + @CN("磷灰石矿脉") + @EN("Twilight Forest Apatite Vein") + public static Lang apatiteVeinTf; + + + @Key("arsenic_vein_ad") + @CN("砷矿脉") + @EN("Ad Astra Arsenic Vein") + public static Lang arsenicVeinAd; + + + @Key("bauxite_vein") + @CN("铝土矿脉") + @EN("Bauxite Vein") + public static Lang bauxiteVein; + + + @Key("beryllium_vein_ad") + @CN("铍矿脉") + @EN("Ad Astra Beryllium Vein") + public static Lang berylliumVeinAd; + + + @Key("calorite_vein_ad") + @CN("耐热合金矿脉") + @EN("Ad Astra Calorite Vein") + public static Lang caloriteVeinAd; + + + @Key("cassiterite_vein_ad") + @CN("锡石矿脉") + @EN("Ad Astra Cassiterite Vein") + public static Lang cassiteriteVeinAd; + + + @Key("cassiterite_vein_tf") + @CN("锡石矿脉") + @EN("Twilight Forest Cassiterite Vein") + public static Lang cassiteriteVeinTf; + + + @Key("chromium_vein_ad") + @CN("铬矿脉") + @EN("Ad Astra Chromium Vein") + public static Lang chromiumVeinAd; + + + @Key("coal_vein_tf") + @CN("煤矿脉") + @EN("Twilight Forest Coal Vein") + public static Lang coalVeinTf; + + + @Key("copper_vein_ad") + @CN("铜矿脉") + @EN("Ad Astra Copper Vein") + public static Lang copperVeinAd; + + + @Key("ctnhcore:ancient_debris_vein") + @CN("远古残骸矿脉") + @EN("Ancient Debris Vein") + public static Lang ctnhAncientDebrisVein; + + + @Key("ctnhcore:apatite_vein_tf") + @CN("暮色森林磷灰石矿脉") + @EN("Twilight Forest Apatite Vein") + public static Lang ctnhApatiteVeinTf; + + + @Key("ctnhcore:arctic_crystal_core_vein") + @CN("暮色森林极寒冰核矿脉") + @EN("Twilight Forest Arctic Crystal Core Vein") + public static Lang ctnhArcticCrystalCoreVein; + + + @Key("ctnhcore:arsenic_vein") + @CN("红砷镍矿脉") + @EN("Red Arsenic Nickel Vein") + public static Lang ctnhArsenicVein; + + + @Key("ctnhcore:arsenic_vein_ad") + @CN("太空砷矿脉") + @EN("Space Arsenic Vein") + public static Lang ctnhArsenicVeinAd; + + + @Key("ctnhcore:bauxite_vein") + @CN("月球铝土矿脉") + @EN("Moon Bauxite Vein") + public static Lang ctnhBauxiteVein; + + + @Key("ctnhcore:bauxite_vein_aether") + @CN("天境铝土矿脉") + @EN("Aether Bauxite Vein") + public static Lang ctnhBauxiteVeinAether; + + + @Key("ctnhcore:beryllium_vein_ad") + @CN("太空铍矿脉") + @EN("Space Beryllium Vein") + public static Lang ctnhBerylliumVeinAd; + + + @Key("ctnhcore:calorite_vein_ad") + @CN("太空耐热金属矿脉") + @EN("Space Calorite Vein") + public static Lang ctnhCaloriteVeinAd; + + + @Key("ctnhcore:cassiterite_vein_ad") + @CN("太空锡石矿脉") + @EN("Space Cassiterite Vein") + public static Lang ctnhCassiteriteVeinAd; + + + @Key("ctnhcore:chromite_vein") + @CN("铬铁矿脉") + @EN("Chromite Vein") + public static Lang ctnhChromiteVein; + + + @Key("ctnhcore:chromium_vein_ad") + @CN("水星铬矿脉") + @EN("Mercury Chromium Vein") + public static Lang ctnhChromiumVeinAd; + + + @Key("ctnhcore:combustible_ice_vein_aether") + @CN("天境可燃冰矿脉") + @EN("Aether Combustible Ice Vein") + public static Lang ctnhCombustibleIceVeinAether; + + + @Key("ctnhcore:copper_vein_ad") + @CN("太空铜矿脉") + @EN("Space Copper Vein") + public static Lang ctnhCopperVeinAd; + + + @Key("ctnhcore:cryolite_vein") + @CN("冰晶石矿脉") + @EN("Cryolite Vein") + public static Lang ctnhCryoliteVein; + + + @Key("ctnhcore:cryolite_vein_aether") + @CN("天境冰晶石矿脉") + @EN("Aether Cryolite Vein") + public static Lang ctnhCryoliteVeinAether; + + + @Key("ctnhcore:desh_vein_ad") + @CN("月球戴斯矿脉") + @EN("Moon Desh Vein") + public static Lang ctnhDeshVeinAd; + + + @Key("ctnhcore:diamond_vein_tf") + @CN("暮色森林钻石矿脉") + @EN("Twilight Forest Diamond Vein") + public static Lang ctnhDiamondVeinTf; + + + @Key("ctnhcore:dragonflame_vein") + @CN("暮色森林龙焰矿脉") + @EN("Twilight Forest Dragonflame Vein") + public static Lang ctnhDragonflameVein; + + + @Key("ctnhcore:eclipse_shadow_vein") + @CN("暮色森林幽影矿脉") + @EN("Twilight Forest Eclipse Shadow Vein") + public static Lang ctnhEclipseShadowVein; + + + @Key("ctnhcore:europium_vein") + @CN("铕萤石矿脉") + @EN("Europium Fluorite Vein") + public static Lang ctnhEuropiumVein; + + + @Key("ctnhcore:galena_vein_ad") + @CN("太空方铅矿脉") + @EN("Space Galena Vein") + public static Lang ctnhGalenaVeinAd; + + + @Key("ctnhcore:galena_vein_tf") + @CN("暮色森林方铅矿脉") + @EN("Twilight Forest Galena Vein") + public static Lang ctnhGalenaVeinTf; + + + @Key("ctnhcore:illusion_iron_vein") + @CN("幻铁矿脉") + @EN("Illusion Iron Vein") + public static Lang ctnhIllusionIronVein; + + + @Key("ctnhcore:ilmenite_vein") + @CN("钛铁矿脉") + @EN("Ilmenite Vein") + public static Lang ctnhIlmeniteVein; + + + @Key("ctnhcore:iridium_vein_ad") + @CN("金星铱矿脉") + @EN("Venus Iridium Vein") + public static Lang ctnhIridiumVeinAd; + + + @Key("ctnhcore:iron_vein_ad") + @CN("太空带状铁矿脉") + @EN("Space Banded Iron Vein") + public static Lang ctnhIronVeinAd; + + + @Key("ctnhcore:iron_vein_tf") + @CN("暮色森林铁矿脉") + @EN("Twilight Forest Iron Vein") + public static Lang ctnhIronVeinTf; + + + @Key("ctnhcore:kaolinite_vein") + @CN("高岭石矿脉") + @EN("Kaolinite Vein") + public static Lang ctnhKaoliniteVein; + + + @Key("ctnhcore:lapis_ore_vein") + @CN("水星青金石矿脉") + @EN("Mercury Lapis Lazuli Vein") + public static Lang ctnhLapisOreVein; + + + @Key("ctnhcore:lich_bone_vein") + @CN("暮色森林巫师之骨矿脉") + @EN("Twilight Forest Lich Bone Vein") + public static Lang ctnhLichBoneVein; + + + @Key("ctnhcore:lubricant_vein_ad") + @CN("水星滑石矿脉") + @EN("Mercury Talc Vein") + public static Lang ctnhLubricantVeinAd; + + + @Key("ctnhcore:magnesite_vein_ad") + @CN("水星菱镁矿脉") + @EN("Mercury Magnesite Vein") + public static Lang ctnhMagnesiteVeinAd; + + + @Key("ctnhcore:magnetite_vein_ad") + @CN("太空磁铁矿脉") + @EN("Space Magnetite Vein") + public static Lang ctnhMagnetiteVeinAd; + + + @Key("ctnhcore:mana_fused_vein") + @CN("蕴魔矿脉") + @EN("Mana-Fused Vein") + public static Lang ctnhManaFusedVein; + + + @Key("ctnhcore:manganese_vein_ad") + @CN("太空锰矿脉") + @EN("Space Manganese Vein") + public static Lang ctnhManganeseVeinAd; + + + @Key("ctnhcore:molybdenum_vein_ad") + @CN("太空辉钼矿脉") + @EN("Space Molybdenite Vein") + public static Lang ctnhMolybdenumVeinAd; + + + @Key("ctnhcore:monazite_vein_n") + @CN("月球独居石矿脉") + @EN("Moon Monazite Vein") + public static Lang ctnhMonaziteVeinN; + + + @Key("ctnhcore:moon_seawater_vein") + @CN("静海矿藏") + @EN("Moon Sea Water Deposit") + public static Lang ctnhMoonSeawaterVein; + + + @Key("ctnhcore:naquadah_vein_ad") + @CN("金星硅岩矿脉") + @EN("Venus Naquadah Vein") + public static Lang ctnhNaquadahVeinAd; + + + @Key("ctnhcore:naquadah_vein_ad_mars") + @CN("火星硅岩矿脉") + @EN("Mars Naquadah Vein") + public static Lang ctnhNaquadahVeinAdMars; + + + @Key("ctnhcore:nether_quartz_vein_ow") + @CN("主世界石英矿脉") + @EN("Overworld Quartz Vein") + public static Lang ctnhNetherQuartzVeinOw; + + + @Key("ctnhcore:neutronium_vein_ad") + @CN("霜原星中子素矿脉") + @EN("Glacio Neutronium Vein") + public static Lang ctnhNeutroniumVeinAd; + + + @Key("ctnhcore:nickel_vein") + @CN("镍矿脉") + @EN("Nickel Vein") + public static Lang ctnhNickelVein; + + + @Key("ctnhcore:nickel_vein_ad") + @CN("太空镍矿脉") + @EN("Space Nickel Vein") + public static Lang ctnhNickelVeinAd; + + + @Key("ctnhcore:niobium_vein_ad") + @CN("霜原星铌矿脉") + @EN("Glacio Niobium Vein") + public static Lang ctnhNiobiumVeinAd; + + + @Key("ctnhcore:olivine_vein_ad") + @CN("水星橄榄石矿脉") + @EN("Mercury Olivine Vein") + public static Lang ctnhOlivineVeinAd; + + + @Key("ctnhcore:osmium_vein_ad") + @CN("霜原星锇矿脉") + @EN("Glacio Osmium Vein") + public static Lang ctnhOsmiumVeinAd; + + + @Key("ctnhcore:ostrum_vein_ad") + @CN("火星紫金矿脉") + @EN("Mars Ostrum Vein") + public static Lang ctnhOstrumVeinAd; + + + @Key("ctnhcore:phosphate_vein") + @CN("磷酸盐矿脉") + @EN("Phosphate Vein") + public static Lang ctnhPhosphateVein; + + + @Key("ctnhcore:pitchblende_vein_ad") + @CN("太空沥青铀矿脉") + @EN("Space Pitchblende Vein") + public static Lang ctnhPitchblendeVeinAd; + + + @Key("ctnhcore:platinum_vein_ad") + @CN("太空铂矿脉") + @EN("Space Platinum Vein") + public static Lang ctnhPlatinumVeinAd; + + + @Key("ctnhcore:precious_alloy_vein") + @CN("贵金属矿脉") + @EN("Precious Alloy Vein") + public static Lang ctnhPreciousAlloyVein; + + + @Key("ctnhcore:pyrolusite_vein_ad") + @CN("金星软锰矿脉") + @EN("Venus Pyrolusite Vein") + public static Lang ctnhPyrolusiteVeinAd; + + + @Key("ctnhcore:quartzite_vein") + @CN("石英岩矿脉") + @EN("Quartzite Vein") + public static Lang ctnhQuartziteVein; + + + @Key("ctnhcore:redstone_vein_ad") + @CN("太空红石矿脉") + @EN("Space Redstone Vein") + public static Lang ctnhRedstoneVeinAd; + + + @Key("ctnhcore:rhodium_sulfur_crystal_vein") + @CN("铑硫晶矿脉") + @EN("Rhodium Sulfur Crystal Vein") + public static Lang ctnhRhodiumSulfurCrystalVein; + + + @Key("ctnhcore:ruthenium_amalgam_vein") + @CN("钌汞齐矿脉") + @EN("Ruthenium Amalgam Vein") + public static Lang ctnhRutheniumAmalgamVein; + + + @Key("ctnhcore:rutile_vein_ad") + @CN("金星金红石矿脉") + @EN("Venus Rutile Vein") + public static Lang ctnhRutileVeinAd; + + + @Key("ctnhcore:saltpeter_vein_ad") + @CN("水星粗硝石矿脉") + @EN("Mercury Saltpeter Vein") + public static Lang ctnhSaltpeterVeinAd; + + + @Key("ctnhcore:salts_vein_ad") + @CN("火星盐矿脉") + @EN("Mars Salts Vein") + public static Lang ctnhSaltsVeinAd; + + + @Key("ctnhcore:salts_vein_tf") + @CN("暮色森林盐矿脉") + @EN("Twilight Forest Salts Vein") + public static Lang ctnhSaltsVeinTf; + + + @Key("ctnhcore:scheelite_vein_ad") + @CN("太空白钨矿脉") + @EN("Space Scheelite Vein") + public static Lang ctnhScheeliteVeinAd; + + + @Key("ctnhcore:scheelite_vein_aether") + @CN("天境白钨矿脉") + @EN("Aether Scheelite Vein") + public static Lang ctnhScheeliteVeinAether; + + + @Key("ctnhcore:seawater_vein_overworld") + @CN("海水矿藏") + @EN("Seawater Deposit") + public static Lang ctnhSeawaterVeinOverworld; + + + @Key("ctnhcore:sheldonite_vein_moon") + @CN("月球谢尔顿矿脉") + @EN("Moon Sheldonite Vein") + public static Lang ctnhSheldoniteVeinMoon; + + + @Key("ctnhcore:steel_leaf_vein") + @CN("暮色森林钢叶矿脉") + @EN("Twilight Forest Steel Leaf Vein") + public static Lang ctnhSteelLeafVein; + + + @Key("ctnhcore:sulfur_vein_ad") + @CN("太空硫矿脉") + @EN("Space Sulfur Vein") + public static Lang ctnhSulfurVeinAd; + + + @Key("ctnhcore:tetrahedrite_vein_ad") + @CN("太空黝铜矿脉") + @EN("Space Tetrahedrite Vein") + public static Lang ctnhTetrahedriteVeinAd; + + + @Key("ctnhcore:thorium_vein_ad") + @CN("太空钍矿脉") + @EN("Space Thorium Vein") + public static Lang ctnhThoriumVeinAd; + + + @Key("ctnhcore:thunderstrike_vein") + @CN("暮色森林雷纹矿脉") + @EN("Twilight Forest Thunderstrike Vein") + public static Lang ctnhThunderstrikeVein; + + + @Key("ctnhcore:toxic_swamp_amber_vein") + @CN("暮色森林毒沼琥珀矿脉") + @EN("Twilight Forest Toxic Swamp Amber Vein") + public static Lang ctnhToxicSwampAmberVein; + + + @Key("ctnhcore:tuff_uraninite_vein_ad") + @CN("太空晶质铀矿脉") + @EN("Space Tuff Uraninite Vein") + public static Lang ctnhTuffUraniniteVeinAd; + + + @Key("ctnhcore:uranium238_vein_ad") + @CN("水星铀238矿脉") + @EN("Mercury Uranium-238 Vein") + public static Lang ctnhUranium238VeinAd; + + + @Key("ctnhcore:wollastonite_vein") + @CN("硅灰石矿脉") + @EN("Wollastonite Vein") + public static Lang ctnhWollastoniteVein; + + + @Key("ctnhcore:zanite_vein_aether") + @CN("天境紫晶矿石") + @EN("Aether Zanite Vein") + public static Lang ctnhZaniteVeinAether; + + + @Key("ctnhcore:zinc_vein") + @CN("锌矿脉") + @EN("Zinc Vein") + public static Lang ctnhZincVein; + + + @Key("ctnhcore:zircon_vein_aether") + @CN("天境锆石矿脉") + @EN("Aether Zircon Vein") + public static Lang ctnhZirconVeinAether; + + + @Key("ctnhcore:zirkelite_vein") + @CN("钛锆钍石矿脉") + @EN("Zirkelite Vein") + public static Lang ctnhZirkeliteVein; + + + @Key("desh_vein_ad") + @CN("戴斯矿脉") + @EN("Ad Astra Desh Vein") + public static Lang deshVeinAd; + + + @Key("diamond_vein_tf") + @CN("钻石矿脉") + @EN("Twilight Forest Diamond Vein") + public static Lang diamondVeinTf; + + + @Key("galena_vein_ad") + @CN("方铅矿脉") + @EN("Ad Astra Galena Vein") + public static Lang galenaVeinAd; + + + @Key("galena_vein_tf") + @CN("方铅矿脉") + @EN("Twilight Forest Galena Vein") + public static Lang galenaVeinTf; + + + @Key("gold_vein_tf") + @CN("金矿脉") + @EN("Twilight Forest Gold Vein") + public static Lang goldVeinTf; + + + @Key("gtceu.jei.ore_vein.ancient_debris_vein") + @CN("远古残骸矿脉") + @EN("Ancient Debris Vein") + public static Lang gtceuAncientDebrisVein; + + + @Key("gtceu.jei.ore_vein.apatite_vein_tf") + @CN("暮色森林磷灰石矿脉") + @EN("Twilight Forest Apatite Vein") + public static Lang gtceuApatiteVeinTf; + + + @Key("gtceu.jei.ore_vein.arctic_crystal_core_vein") + @CN("暮色森林极寒冰核矿脉") + @EN("Twilight Forest Arctic Crystal Core Vein") + public static Lang gtceuArcticCrystalCoreVein; + + + @Key("gtceu.jei.ore_vein.arsenic_vein") + @CN("红砷镍矿脉") + @EN("Red Arsenic Nickel Vein") + public static Lang gtceuArsenicVein; + + + @Key("gtceu.jei.ore_vein.arsenic_vein_ad") + @CN("太空砷矿脉") + @EN("Space Arsenic Vein") + public static Lang gtceuArsenicVeinAd; + + + @Key("gtceu.jei.ore_vein.bauxite_vein") + @CN("月球铝土矿脉") + @EN("Moon Bauxite Vein") + public static Lang gtceuBauxiteVein; + + + @Key("gtceu.jei.ore_vein.bauxite_vein_aether") + @CN("天境铝土矿脉") + @EN("Aether Bauxite Vein") + public static Lang gtceuBauxiteVeinAether; + + + @Key("gtceu.jei.ore_vein.beryllium_vein_ad") + @CN("太空铍矿脉") + @EN("Space Beryllium Vein") + public static Lang gtceuBerylliumVeinAd; + + + @Key("gtceu.jei.ore_vein.calorite_vein_ad") + @CN("太空耐热金属矿脉") + @EN("Space Calorite Vein") + public static Lang gtceuCaloriteVeinAd; + + + @Key("gtceu.jei.ore_vein.cassiterite_vein_ad") + @CN("太空锡石矿脉") + @EN("Space Cassiterite Vein") + public static Lang gtceuCassiteriteVeinAd; + + + @Key("gtceu.jei.ore_vein.chromite_vein") + @CN("铬铁矿脉") + @EN("Chromite Vein") + public static Lang gtceuChromiteVein; + + + @Key("gtceu.jei.ore_vein.chromium_vein_ad") + @CN("水星铬矿脉") + @EN("Mercury Chromium Vein") + public static Lang gtceuChromiumVeinAd; + + + @Key("gtceu.jei.ore_vein.combustible_ice_vein_aether") + @CN("天境可燃冰矿脉") + @EN("Aether Combustible Ice Vein") + public static Lang gtceuCombustibleIceVeinAether; + + + @Key("gtceu.jei.ore_vein.copper_vein_ad") + @CN("太空铜矿脉") + @EN("Space Copper Vein") + public static Lang gtceuCopperVeinAd; + + + @Key("gtceu.jei.ore_vein.cryolite_vein") + @CN("冰晶石矿脉") + @EN("Cryolite Vein") + public static Lang gtceuCryoliteVein; + + + @Key("gtceu.jei.ore_vein.cryolite_vein_aether") + @CN("天境冰晶石矿脉") + @EN("Aether Cryolite Vein") + public static Lang gtceuCryoliteVeinAether; + + + @Key("gtceu.jei.ore_vein.desh_vein_ad") + @CN("月球戴斯矿脉") + @EN("Moon Desh Vein") + public static Lang gtceuDeshVeinAd; + + + @Key("gtceu.jei.ore_vein.diamond_vein_tf") + @CN("暮色森林钻石矿脉") + @EN("Twilight Forest Diamond Vein") + public static Lang gtceuDiamondVeinTf; + + + @Key("gtceu.jei.ore_vein.dragonflame_vein") + @CN("暮色森林龙焰矿脉") + @EN("Twilight Forest Dragonflame Vein") + public static Lang gtceuDragonflameVein; + + + @Key("gtceu.jei.ore_vein.eclipse_shadow_vein") + @CN("暮色森林幽影矿脉") + @EN("Twilight Forest Eclipse Shadow Vein") + public static Lang gtceuEclipseShadowVein; + + + @Key("gtceu.jei.ore_vein.europium_vein") + @CN("铕萤石矿脉") + @EN("Europium Fluorite Vein") + public static Lang gtceuEuropiumVein; + + + @Key("gtceu.jei.ore_vein.galena_vein_ad") + @CN("太空方铅矿脉") + @EN("Space Galena Vein") + public static Lang gtceuGalenaVeinAd; + + + @Key("gtceu.jei.ore_vein.galena_vein_tf") + @CN("暮色森林方铅矿脉") + @EN("Twilight Forest Galena Vein") + public static Lang gtceuGalenaVeinTf; + + + @Key("gtceu.jei.ore_vein.gold_vein_tf") + @CN("暮色森林磁铁矿脉") + @EN("Twilight Forest Magnetite Vein") + public static Lang gtceuGoldVeinTf; + + + @Key("gtceu.jei.ore_vein.illusion_iron_vein") + @CN("幻铁矿脉") + @EN("Illusion Iron Vein") + public static Lang gtceuIllusionIronVein; + + + @Key("gtceu.jei.ore_vein.ilmenite_vein") + @CN("钛铁矿脉") + @EN("Ilmenite Vein") + public static Lang gtceuIlmeniteVein; + + + @Key("gtceu.jei.ore_vein.iridium_vein_ad") + @CN("金星铱矿脉") + @EN("Venus Iridium Vein") + public static Lang gtceuIridiumVeinAd; + + + @Key("gtceu.jei.ore_vein.iron_vein_ad") + @CN("太空带状铁矿脉") + @EN("Space Banded Iron Vein") + public static Lang gtceuIronVeinAd; + + + @Key("gtceu.jei.ore_vein.iron_vein_tf") + @CN("暮色森林铁矿脉") + @EN("Twilight Forest Iron Vein") + public static Lang gtceuIronVeinTf; + + + @Key("gtceu.jei.ore_vein.kaolinite_vein") + @CN("高岭石矿脉") + @EN("Kaolinite Vein") + public static Lang gtceuKaoliniteVein; + + + @Key("gtceu.jei.ore_vein.lapis_ore_vein") + @CN("水星青金石矿脉") + @EN("Mercury Lapis Lazuli Vein") + public static Lang gtceuLapisOreVein; + + + @Key("gtceu.jei.ore_vein.lich_bone_vein") + @CN("暮色森林巫师之骨矿脉") + @EN("Twilight Forest Lich Bone Vein") + public static Lang gtceuLichBoneVein; + + + @Key("gtceu.jei.ore_vein.lubricant_vein_ad") + @CN("水星滑石矿脉") + @EN("Mercury Talc Vein") + public static Lang gtceuLubricantVeinAd; + + + @Key("gtceu.jei.ore_vein.magnesite_vein_ad") + @CN("水星菱镁矿脉") + @EN("Mercury Magnesite Vein") + public static Lang gtceuMagnesiteVeinAd; + + + @Key("gtceu.jei.ore_vein.magnetite_vein_ad") + @CN("太空磁铁矿脉") + @EN("Space Magnetite Vein") + public static Lang gtceuMagnetiteVeinAd; + + + @Key("gtceu.jei.ore_vein.mana_fused_vein") + @CN("蕴魔矿脉") + @EN("Mana-Fused Vein") + public static Lang gtceuManaFusedVein; + + + @Key("gtceu.jei.ore_vein.manganese_vein_ad") + @CN("太空锰矿脉") + @EN("Space Manganese Vein") + public static Lang gtceuManganeseVeinAd; + + + @Key("gtceu.jei.ore_vein.molybdenum_vein_ad") + @CN("太空辉钼矿脉") + @EN("Space Molybdenite Vein") + public static Lang gtceuMolybdenumVeinAd; + + + @Key("gtceu.jei.ore_vein.monazite_vein_n") + @CN("月球独居石矿脉") + @EN("Moon Monazite Vein") + public static Lang gtceuMonaziteVeinN; + + + @Key("gtceu.jei.ore_vein.naquadah_vein_ad") + @CN("金星硅岩矿脉") + @EN("Venus Naquadah Vein") + public static Lang gtceuNaquadahVeinAd; + + + @Key("gtceu.jei.ore_vein.naquadah_vein_ad_mars") + @CN("火星硅岩矿脉") + @EN("Mars Naquadah Vein") + public static Lang gtceuNaquadahVeinAdMars; + + + @Key("gtceu.jei.ore_vein.nether_quartz_vein_ow") + @CN("主世界石英矿脉") + @EN("Overworld Quartz Vein") + public static Lang gtceuNetherQuartzVeinOw; + + + @Key("gtceu.jei.ore_vein.neutronium_vein_ad") + @CN("霜原星中子素矿脉") + @EN("Glacio Neutronium Vein") + public static Lang gtceuNeutroniumVeinAd; + + + @Key("gtceu.jei.ore_vein.nickel_vein") + @CN("镍矿脉") + @EN("Nickel Vein") + public static Lang gtceuNickelVein; + + + @Key("gtceu.jei.ore_vein.nickel_vein_ad") + @CN("太空镍矿脉") + @EN("Space Nickel Vein") + public static Lang gtceuNickelVeinAd; + + + @Key("gtceu.jei.ore_vein.niobium_vein_ad") + @CN("霜原星铌矿脉") + @EN("Glacio Niobium Vein") + public static Lang gtceuNiobiumVeinAd; + + + @Key("gtceu.jei.ore_vein.olivine_vein_ad") + @CN("水星橄榄石矿脉") + @EN("Mercury Olivine Vein") + public static Lang gtceuOlivineVeinAd; + + + @Key("gtceu.jei.ore_vein.osmium_vein_ad") + @CN("霜原星锇矿脉") + @EN("Glacio Osmium Vein") + public static Lang gtceuOsmiumVeinAd; + + + @Key("gtceu.jei.ore_vein.ostrum_vein_ad") + @CN("火星紫金矿脉") + @EN("Mars Ostrum Vein") + public static Lang gtceuOstrumVeinAd; + + + @Key("gtceu.jei.ore_vein.phosphate_vein") + @CN("磷酸盐矿脉") + @EN("Phosphate Vein") + public static Lang gtceuPhosphateVein; + + + @Key("gtceu.jei.ore_vein.pitchblende_vein_ad") + @CN("太空沥青铀矿脉") + @EN("Space Pitchblende Vein") + public static Lang gtceuPitchblendeVeinAd; + + + @Key("gtceu.jei.ore_vein.platinum_vein_ad") + @CN("太空铂矿脉") + @EN("Space Platinum Vein") + public static Lang gtceuPlatinumVeinAd; + + + @Key("gtceu.jei.ore_vein.precious_alloy_vein") + @CN("贵金属矿脉") + @EN("Precious Alloy Vein") + public static Lang gtceuPreciousAlloyVein; + + + @Key("gtceu.jei.ore_vein.pyrolusite_vein_ad") + @CN("金星软锰矿脉") + @EN("Venus Pyrolusite Vein") + public static Lang gtceuPyrolusiteVeinAd; + + + @Key("gtceu.jei.ore_vein.quartzite_vein") + @CN("石英岩矿脉") + @EN("Quartzite Vein") + public static Lang gtceuQuartziteVein; + + + @Key("gtceu.jei.ore_vein.redstone_vein_ad") + @CN("太空红石矿脉") + @EN("Space Redstone Vein") + public static Lang gtceuRedstoneVeinAd; + + + @Key("gtceu.jei.ore_vein.rhodium_sulfur_crystal_vein") + @CN("铑硫晶矿脉") + @EN("Rhodium Sulfur Crystal Vein") + public static Lang gtceuRhodiumSulfurCrystalVein; + + + @Key("gtceu.jei.ore_vein.ruthenium_amalgam_vein") + @CN("钌汞齐矿脉") + @EN("Ruthenium Amalgam Vein") + public static Lang gtceuRutheniumAmalgamVein; + + + @Key("gtceu.jei.ore_vein.rutile_vein_ad") + @CN("金星金红石矿脉") + @EN("Venus Rutile Vein") + public static Lang gtceuRutileVeinAd; + + + @Key("gtceu.jei.ore_vein.saltpeter_vein_ad") + @CN("水星粗硝石矿脉") + @EN("Mercury Saltpeter Vein") + public static Lang gtceuSaltpeterVeinAd; + + + @Key("gtceu.jei.ore_vein.salts_vein_ad") + @CN("火星盐矿脉") + @EN("Mars Salts Vein") + public static Lang gtceuSaltsVeinAd; + + + @Key("gtceu.jei.ore_vein.salts_vein_tf") + @CN("暮色森林盐矿脉") + @EN("Twilight Forest Salts Vein") + public static Lang gtceuSaltsVeinTf; + + + @Key("gtceu.jei.ore_vein.scheelite_vein_ad") + @CN("太空白钨矿脉") + @EN("Space Scheelite Vein") + public static Lang gtceuScheeliteVeinAd; + + + @Key("gtceu.jei.ore_vein.scheelite_vein_aether") + @CN("天境白钨矿脉") + @EN("Aether Scheelite Vein") + public static Lang gtceuScheeliteVeinAether; + + + @Key("gtceu.jei.ore_vein.sheldonite_vein_moon") + @CN("月球谢尔顿矿脉") + @EN("Moon Sheldonite Vein") + public static Lang gtceuSheldoniteVeinMoon; + + + @Key("gtceu.jei.ore_vein.steel_leaf_vein") + @CN("暮色森林钢叶矿脉") + @EN("Twilight Forest Steel Leaf Vein") + public static Lang gtceuSteelLeafVein; + + + @Key("gtceu.jei.ore_vein.sulfur_vein_ad") + @CN("太空硫矿脉") + @EN("Space Sulfur Vein") + public static Lang gtceuSulfurVeinAd; + + + @Key("gtceu.jei.ore_vein.tetrahedrite_vein_ad") + @CN("太空黝铜矿脉") + @EN("Space Tetrahedrite Vein") + public static Lang gtceuTetrahedriteVeinAd; + + + @Key("gtceu.jei.ore_vein.thorium_vein_ad") + @CN("太空钍矿脉") + @EN("Space Thorium Vein") + public static Lang gtceuThoriumVeinAd; + + + @Key("gtceu.jei.ore_vein.thunderstrike_vein") + @CN("暮色森林雷纹矿脉") + @EN("Twilight Forest Thunderstrike Vein") + public static Lang gtceuThunderstrikeVein; + + + @Key("gtceu.jei.ore_vein.toxic_swamp_amber_vein") + @CN("暮色森林毒沼琥珀矿脉") + @EN("Twilight Forest Toxic Swamp Amber Vein") + public static Lang gtceuToxicSwampAmberVein; + + + @Key("gtceu.jei.ore_vein.tuff_uraninite_vein_ad") + @CN("太空晶质铀矿脉") + @EN("Space Tuff Uraninite Vein") + public static Lang gtceuTuffUraniniteVeinAd; + + + @Key("gtceu.jei.ore_vein.uranium238_vein_ad") + @CN("水星铀238矿脉") + @EN("Mercury Uranium-238 Vein") + public static Lang gtceuUranium238VeinAd; + + + @Key("gtceu.jei.ore_vein.wollastonite_vein") + @CN("硅灰石矿脉") + @EN("Wollastonite Vein") + public static Lang gtceuWollastoniteVein; + + + @Key("gtceu.jei.ore_vein.zanite_vein_aether") + @CN("天境紫晶矿石") + @EN("Aether Zanite Vein") + public static Lang gtceuZaniteVeinAether; + + + @Key("gtceu.jei.ore_vein.zinc_vein") + @CN("锌矿脉") + @EN("Zinc Vein") + public static Lang gtceuZincVein; + + + @Key("gtceu.jei.ore_vein.zircon_vein_aether") + @CN("天境锆石矿脉") + @EN("Aether Zircon Vein") + public static Lang gtceuZirconVeinAether; + + + @Key("gtceu.jei.ore_vein.zirkelite_vein") + @CN("钛锆钍石矿脉") + @EN("Zirkelite Vein") + public static Lang gtceuZirkeliteVein; + + + @Key("ilmenite_vein") + @CN("钛铁矿脉") + @EN("Ilmenite Vein") + public static Lang ilmeniteVein; + + + @Key("iridium_vein_ad") + @CN("铱矿脉") + @EN("Ad Astra Iridium Vein") + public static Lang iridiumVeinAd; + + + @Key("iron_vein_ad") + @CN("铁矿脉") + @EN("Ad Astra Iron Vein") + public static Lang ironVeinAd; + + + @Key("iron_vein_tf") + @CN("铁矿脉") + @EN("Twilight Forest Iron Vein") + public static Lang ironVeinTf; + + + @Key("kaolinite_vein") + @CN("高岭石矿脉") + @EN("Kaolinite Vein") + public static Lang kaoliniteVein; + + + @Key("lapis_vein_ad") + @CN("青金石矿脉") + @EN("Ad Astra Lapis Lazuli Vein") + public static Lang lapisVeinAd; + + + @Key("lapis_vein_tf") + @CN("青金石矿脉") + @EN("Twilight Forest Lapis Lazuli Vein") + public static Lang lapisVeinTf; + + + @Key("lubricant_vein_ad") + @CN("皂石矿脉") + @EN("Ad Astra Soapstone Vein") + public static Lang lubricantVeinAd; + + + @Key("lubricant_vein_tf") + @CN("皂石矿脉") + @EN("Twilight Forest Soapstone Vein") + public static Lang lubricantVeinTf; + + + @Key("magnesite_vein_ad") + @CN("菱镁矿脉") + @EN("Ad Astra Magnesite Vein") + public static Lang magnesiteVeinAd; + + + @Key("magnetite_vein_ad") + @CN("磁铁矿脉") + @EN("Ad Astra Magnetite Vein") + public static Lang magnetiteVeinAd; + + + @Key("manganese_vein_ad") + @CN("锰矿脉") + @EN("Ad Astra Manganese Vein") + public static Lang manganeseVeinAd; + + + @Key("molybdenite_vein_tf") + @CN("辉钼矿脉") + @EN("Twilight Forest Molybdenite Vein") + public static Lang molybdeniteVeinTf; + + + @Key("molybdenum_vein_ad") + @CN("钼矿脉") + @EN("Ad Astra Molybdenum Vein") + public static Lang molybdenumVeinAd; + + + @Key("monazite_vein_n") + @CN("独居石矿脉") + @EN("Moon Monazite Vein") + public static Lang monaziteVeinN; + + + @Key("naquadah_vein_ad") + @CN("硅岩矿脉") + @EN("Ad Astra Naquadah Vein") + public static Lang naquadahVeinAd; + + + @Key("naquadah_vein_ad_mars") + @CN("硅岩矿脉") + @EN("Mars Naquadah Vein") + public static Lang naquadahVeinAdMars; + + + @Key("neutronium_vein_ad") + @CN("中子素矿脉") + @EN("Ad Astra Neutronium Vein") + public static Lang neutroniumVeinAd; + + + @Key("nickel_vein_ad") + @CN("镍矿脉") + @EN("Ad Astra Nickel Vein") + public static Lang nickelVeinAd; + + + @Key("nickel_vein_tf") + @CN("镍矿脉") + @EN("Twilight Forest Nickel Vein") + public static Lang nickelVeinTf; + + + @Key("niobium_vein_ad") + @CN("铌矿脉") + @EN("Ad Astra Niobium Vein") + public static Lang niobiumVeinAd; + + + @Key("olivine_vein_ad") + @CN("橄榄石矿脉") + @EN("Ad Astra Olivine Vein") + public static Lang olivineVeinAd; + + + @Key("olivine_vein_tf") + @CN("橄榄石矿脉") + @EN("Twilight Forest Olivine Vein") + public static Lang olivineVeinTf; + + + @Key("osmium_vein_ad") + @CN("锇矿脉") + @EN("Ad Astra Osmium Vein") + public static Lang osmiumVeinAd; + + + @Key("ostrum_vein_ad") + @CN("紫金矿脉") + @EN("Ad Astra Ostrum Vein") + public static Lang ostrumVeinAd; + + + @Key("pitchblende_vein_ad") + @CN("沥青铀矿脉") + @EN("Ad Astra Pitchblende Vein") + public static Lang pitchblendeVeinAd; + + + @Key("platinum_vein_ad") + @CN("铂矿脉") + @EN("Ad Astra Platinum Vein") + public static Lang platinumVeinAd; + + + @Key("pyrolusite_vein_ad") + @CN("软锰矿脉") + @EN("Ad Astra Pyrolusite Vein") + public static Lang pyrolusiteVeinAd; + + + @Key("quartzite_vein") + @CN("石英岩矿脉") + @EN("Quartzite Vein") + public static Lang quartziteVein; + + + @Key("redstone_vein_ad") + @CN("红石矿脉") + @EN("Ad Astra Redstone Vein") + public static Lang redstoneVeinAd; + + + @Key("rutile_vein_ad") + @CN("金红石矿脉") + @EN("Ad Astra Rutile Vein") + public static Lang rutileVeinAd; + + + @Key("saltpeter_vein_ad") + @CN("蓝石矿脉") + @EN("Ad Astra Saltpeter Vein") + public static Lang saltpeterVeinAd; + + + @Key("salts_vein_ad") + @CN("盐矿脉") + @EN("Ad Astra Salts Vein") + public static Lang saltsVeinAd; + + + @Key("salts_vein_tf") + @CN("盐矿脉") + @EN("Twilight Forest Salts Vein") + public static Lang saltsVeinTf; + + + @Key("sapphire_vein_tf") + @CN("蓝宝石矿脉") + @EN("Twilight Forest Sapphire Vein") + public static Lang sapphireVeinTf; + + + @Key("scheelite_vein_ad") + @CN("白钨矿脉") + @EN("Ad Astra Scheelite Vein") + public static Lang scheeliteVeinAd; + + + @Key("sulfur_vein_ad") + @CN("硫矿脉") + @EN("Ad Astra Sulfur Vein") + public static Lang sulfurVeinAd; + + + @Key("tetrahedrite_vein_ad") + @CN("黝铜矿脉") + @EN("Ad Astra Tetrahedrite Vein") + public static Lang tetrahedriteVeinAd; + + + @Key("tuff_uraninite_vein_ad") + @CN("晶质铀矿脉") + @EN("Ad Astra Tuff Uraninite Vein") + public static Lang tuffUraniniteVeinAd; + + + @Key("uranium238_vein_ad") + @CN("铀238矿脉") + @EN("Ad Astra Uranium-238 Vein") + public static Lang uranium238VeinAd; + + + @Key("wollastonite_vein") + @CN("白云石矿脉") + @EN("Dolomite Vein") + public static Lang wollastoniteVein; + + + public static void init() { MAGNETITE_VEIN_OW.layeredVeinGenerator(generator -> generator .buildLayerPattern(pattern -> pattern diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHRecipeModifiers.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHRecipeModifiers.java index 46b69b31a..6a87826ab 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHRecipeModifiers.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHRecipeModifiers.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.registry; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.api.machine.feature.ICoilMachine; import io.github.cpearl0.ctnhcore.common.machine.multiblock.electric.ChemicalPlantMachine; @@ -29,6 +33,23 @@ public class CTNHRecipeModifiers { + @CN("线圈温度过低!") + @EN("Coil temperature too low!") + public static Lang gtceuRecipeModifierCoilTemperatureTooLow; + + + @Key("gtceu.recipe_modifier.insufficient_eu_to_start_fusion") + @CN("缺少足够能量以启动核聚变反应") + @EN("Not enough energy to start the fusion reaction") + public static Lang gtceuRecipeModifierInsufficientEuToStartFusion; + + + @CN("电压等级过低!") + @EN("Voltage tier too low!") + public static Lang gtceuRecipeModifierInsufficientVoltage; + + + public static Component accurateParallel(MetaMachine machine, RecipeHandlerGroup group, GTRecipe recipe, int parallel) { var maxParallel = ParallelLogic.getParallelAmount(group, recipe, parallel); @@ -49,11 +70,11 @@ public static Component accurateParallel(MetaMachine machine, RecipeHandlerGroup (100 * Math.max(0, workableElectricMultiblockMachine.getTier() - GTValues.MV)); int recipeTemp = recipe.data.getInt("ebf_temp"); if (!recipe.data.contains("ebf_temp") || recipeTemp > blastFurnaceTemperature) { - return Component.translatable("gtceu.recipe_modifier.coil_temperature_too_low"); + return gtceuRecipeModifierCoilTemperatureTooLow.translate(); } if (recipe.tier > workableElectricMultiblockMachine.getTier()) { - return Component.translatable("gtceu.recipe_modifier.insufficient_voltage"); + return gtceuRecipeModifierInsufficientVoltage.translate(); } recipe.multiplyEUt(getCoilEUtDiscount(recipeTemp, blastFurnaceTemperature)); @@ -75,7 +96,7 @@ public static Component accurateParallel(MetaMachine machine, RecipeHandlerGroup .memoize(logic -> (machine, group, recipe) -> { if (!(machine instanceof IOverclockMachine overclockMachine)) return null; if (machine instanceof ITieredMachine tieredMachine && recipe.tier > tieredMachine.getTier()) { - return Component.translatable("gtceu.recipe_modifier.insufficient_voltage"); + return gtceuRecipeModifierInsufficientVoltage.translate(); } return logic.getModifier(machine, group, recipe, overclockMachine.getOverclockVoltage()); }); @@ -106,10 +127,10 @@ public static Component superEbfOverclock(MetaMachine machine, RecipeHandlerGrou 100 * Math.max(0, coilMachine.getTier() - GTValues.MV); var recipeTemp = recipe.data.getInt("ebf_temp"); if (!recipe.data.contains("ebf_temp") || recipe.data.getInt("ebf_temp") > blastFurnaceTemperature) { - return Component.translatable("gtceu.recipe_modifier.coil_temperature_too_low"); + return gtceuRecipeModifierCoilTemperatureTooLow.translate(); } if (recipe.tier > coilMachine.getTier()) { - return Component.translatable("gtceu.recipe_modifier.insufficient_voltage"); + return gtceuRecipeModifierInsufficientVoltage.translate(); } recipe.multiplyEUt(getCoilEUtDiscount(recipeTemp, blastFurnaceTemperature)); recipe.multiplyDuration(0.5); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHRecipeTypes.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHRecipeTypes.java index 1ff1bf26b..c489bbcdf 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHRecipeTypes.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/CTNHRecipeTypes.java @@ -1,4 +1,9 @@ package io.github.cpearl0.ctnhcore.registry; +import io.github.cpearl0.ctnhcore.common.machine.multiblock.electric.ScalableReservoirComputingMachine; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.data.CreateRecipeTypes; @@ -36,6 +41,184 @@ public class CTNHRecipeTypes { + @CN("§c危险粒子实验") + @EN("§cDangerous Particle Experiment") + public static Lang accDanger; + + + @Key("ctnh.nuclear_reactor.basic") + @CN("这是一个耗能设备,但是会产生大量的热量,可以转化用以发电") + @EN("This is an energy-consuming machine that produces a large amount of heat, which can be converted into power") + public static Lang nuclearReactorBasic; + + + @Key("ctnh.nuclear_reactor.coolant") + @CN("冷却液可以使用蒸汽(150°C),氘(450°C),钠(800°C),钠钾合金(900°C),反应的堆温越高,消耗冷却液的速度越快,冷却液的热容越大,消耗速度越慢") + @EN("Coolant can be steam (150°C), deuterium (450°C), sodium (800°C), or sodium-potassium alloy (900°C). Higher reactor temperature increases coolant consumption, while higher coolant heat capacity reduces consumption") + public static Lang nuclearReactorCoolant; + + + @Key("ctnh.nuclear_reactor.overclock") + @CN("冷却液并非运行所必须,但是在有冷却液时,配方每运行一秒,进度会增加两秒") + @EN("Coolant is not required for operation, but with coolant present, recipe progress increases by two seconds for every one second of operation") + public static Lang nuclearReactorOverclock; + + + @Key("ctnh.nuclear_reactor.safe") + @CN("反应堆不会过热爆炸") + @EN("The reactor will not explode from overheating") + public static Lang nuclearReactorSafe; + + + @CN("模式:加速电子") + @EN("Mode: Electron Acceleration") + public static Lang recipeAcceleratorModeElement; + + + @CN("加速类型:电子") + @EN("Accelerated Particle: Electron") + public static Lang recipeAcceleratorModeElementConsume; + + + @CN("模式:加速中子") + @EN("Mode: Neutron Acceleration") + public static Lang recipeAcceleratorModeNu; + + + @CN("加速类型:中子") + @EN("Accelerated Particle: Neutron") + public static Lang recipeAcceleratorModeNuConsume; + + + @CN("模式:加速质子") + @EN("Mode: Proton Acceleration") + public static Lang recipeAcceleratorModeProton; + + + @CN("加速类型:质子") + @EN("Accelerated Particle: Proton") + public static Lang recipeAcceleratorModeProtonConsume; + + + @CN("需求速度:%.2fGev") + @EN("Required Velocity: %.2f GeV") + public static Lang recipeAcceleratorModeSpeedG; + + + @CN("需求速度:%.2fMev") + @EN("Required Velocity: %.2f MeV") + public static Lang recipeAcceleratorModeSpeedM; + + + @CN("满功率需求电弧强度:%d") + @EN("Full-Power Required Arc Intensity: %d") + public static Lang recipeArcGeneratorMaxRequire; + + + @CN("需求电弧强度:%d") + @EN("Required Arc Intensity: %d") + public static Lang recipeArcGeneratorRequire; + + + @Key("ctnh.recipe.hellforge.info.drain") + @CN("消耗:%s意志") + @EN("Drain: %s Will") + public static Lang recipeHellforgeInfoDrain; + + + @Key("ctnh.recipe.hellforge.info.minimum_drain") + @CN("最少:%s意志") + @EN("Minimum Drain: %s Will") + public static Lang recipeHellforgeInfoMinimumDrain; + + + @CN("消耗/输入的lp量:%.1f") + @EN("LP consumption/input: %.1f") + public static Lang recipeIndustrialAltarInfo0; + + + @Key("ctnh.recipe.quasar_eye.info.0") + @CN("启动消耗:%.1f") + @EN("Activation Cost: %.1f") + public static Lang recipeQuasarEyeInfo0; + + + @Key("ctnh.recipe.quasar_eye.info.1") + @CN("能量等级: %d") + @EN("Energy Tier: %d") + public static Lang recipeQuasarEyeInfo1; + + + @Key("ctnh.recipe.quasar_eye.info.2") + @CN("启动等级: %d") + @EN("Activation Tier: %d") + public static Lang recipeQuasarEyeInfo2; + + + @Key("ctnh.recipe_type.info") + @CN("配方类型:%s") + @EN("Recipe Type:%s") + public static Lang recipeTypeInfo; + + + @Key("ctnh.recipe_type.list") + @CN("%s, %s") + @EN("%s, %s") + public static Lang recipeTypeList; + + + @CN("模拟电压消耗: %d EUt") + @EN("Simulated voltage consumption: %d EUt") + public static Lang spacephotovoltaicbasestationRecipeEutModel; + + + @CN("需求光伏方块等级: %d") + @EN("Required photovoltaic block tier: %d") + public static Lang spacephotovoltaicbasestationRecipePvcTier; + + + @CN("牺牲者: %s") + @EN("Sacrifices: %s") + public static Lang ctnhSrcSacrifice; + + + @Key("gtceu.recipe_logic.recipe_waiting") + @CN("配方等待中:") + @EN("Recipe waiting:") + public static Lang gtceuRecipeLogicRecipeWaiting; + + + @Key("gtceu.recipe_logic.setup_fail") + @CN("配方启动失败:") + @EN("Recipe failed to start:") + public static Lang gtceuRecipeLogicSetupFail; + + + @Key("multiblock.ctnh.nuclear_reactor.consume_amount") + @CN("冷却液消耗率:%s mB/s") + @EN("Coolant consumption rate: %s mB/s") + public static Lang multiblockCtnhNuclearReactorConsumeAmount; + + + @Key("multiblock.ctnh.nuclear_reactor.coolant") + @CN("冷却液:%s") + @EN("Coolant: %s") + public static Lang multiblockCtnhNuclearReactorCoolant; + + + @Key("multiblock.ctnh.nuclear_reactor.coolant_amount") + @CN("冷却液量:%s mB") + @EN("Coolant amount: %s mB") + public static Lang multiblockCtnhNuclearReactorCoolantAmount; + + + @Key("nuclear_reactor") + @CN("核能转化时刻") + @EN("Nuclear Energy Conversion") + public static Lang nuclearReactor; + + + public static final GTRecipeType UNDERFLOOR_HEATING_SYSTEM = REGISTRATE .recipeType(CTNHCore.id("underfloor_heating_system"), GTRecipeTypes.ELECTRIC) .cnlang("地暖") @@ -379,7 +562,7 @@ public class CTNHRecipeTypes { new com.gregtechceu.gtceu.api.gui.widget.SlotWidget(handler, 0, group.getSize().width - 30, group.getSize().height - 30, false, false)); }) - .addDataInfo(data -> LocalizationUtils.format("ctnh.recipe.industrial_altar.info.0", + .addDataInfo(data -> LocalizationUtils.format(recipeIndustrialAltarInfo0.key(), String.format("%.1f", data.getFloat("addlp")))); public static final GTRecipeType NANO_GENERATOR = REGISTRATE.recipeType(CTNHCore.id("nano_generator"), GENERATOR) @@ -399,17 +582,17 @@ public class CTNHRecipeTypes { .setSound(GTSoundEntries.FIRE) .addDataInfo(data -> { if (data.getString("type").equals("addnu")) { - return LocalizationUtils.format("ctnh.recipe.accelerator.mode.nu"); + return LocalizationUtils.format(recipeAcceleratorModeNu.key()); } else if (data.getString("type").equals("addproton")) { - return LocalizationUtils.format("ctnh.recipe.accelerator.mode.proton"); + return LocalizationUtils.format(recipeAcceleratorModeProton.key()); } else if (data.getString("type").equals("addelement")) { - return LocalizationUtils.format("ctnh.recipe.accelerator.mode.element"); + return LocalizationUtils.format(recipeAcceleratorModeElement.key()); } else if (data.getString("type").equals("element")) { - return LocalizationUtils.format("ctnh.recipe.accelerator.mode.element.consume"); + return LocalizationUtils.format(recipeAcceleratorModeElementConsume.key()); } else if (data.getString("type").equals("nu")) { - return LocalizationUtils.format("ctnh.recipe.accelerator.mode.nu.consume"); + return LocalizationUtils.format(recipeAcceleratorModeNuConsume.key()); } else if (data.getString("type").equals("proton")) { - return LocalizationUtils.format("ctnh.recipe.accelerator.mode.proton.consume"); + return LocalizationUtils.format(recipeAcceleratorModeProtonConsume.key()); } return ""; }) @@ -419,11 +602,11 @@ public class CTNHRecipeTypes { data.getString("type").equals("proton")) { var speed = data.getDouble("speed"); if (data.getDouble("speed") < 1000) { - return LocalizationUtils.format("ctnh.recipe.accelerator.mode.speed.m", + return LocalizationUtils.format(recipeAcceleratorModeSpeedM.key(), String.format("%.2f", speed)); } if (speed >= 1000) { - return LocalizationUtils.format("ctnh.recipe.accelerator.mode.speed.g", + return LocalizationUtils.format(recipeAcceleratorModeSpeedG.key(), String.format("%.2f", speed / 1000)); } @@ -432,7 +615,7 @@ public class CTNHRecipeTypes { }) .addDataInfo(data -> { if (data.contains("darkmatter")) { - return LocalizationUtils.format("ctnh.acc.danger"); + return LocalizationUtils.format(accDanger.key()); } return ""; @@ -443,9 +626,9 @@ public class CTNHRecipeTypes { .setEUIO(IO.OUT) .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW_MULTIPLE, ProgressTexture.FillDirection.LEFT_TO_RIGHT) - .addDataInfo(data -> LocalizationUtils.format("ctnh.recipe.arc_generator.require", + .addDataInfo(data -> LocalizationUtils.format(recipeArcGeneratorRequire.key(), String.format("%d", data.getInt("requirearc")))) - .addDataInfo(data -> LocalizationUtils.format("ctnh.recipe.arc_generator.max_require", + .addDataInfo(data -> LocalizationUtils.format(recipeArcGeneratorMaxRequire.key(), String.format("%d", data.getInt("maxarc")))) .setSound(GTSoundEntries.CHEMICAL); public static final GTRecipeType ARC_REACTOR = REGISTRATE.recipeType(CTNHCore.id("arc_reactor"), ELECTRIC) @@ -509,14 +692,14 @@ public class CTNHRecipeTypes { .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW_MULTIPLE, ProgressTexture.FillDirection.LEFT_TO_RIGHT) .addDataInfo(data -> { if (data.contains("tier")) { - return LocalizationUtils.format("ctnh.spacephotovoltaicbasestation.recipe.pvc_tier", + return LocalizationUtils.format(spacephotovoltaicbasestationRecipePvcTier.key(), String.format("%d", data.getInt("tier"))); } return ""; }) .addDataInfo(data -> { if (data.contains("input")) { - return LocalizationUtils.format("ctnh.spacephotovoltaicbasestation.recipe.eut_model", + return LocalizationUtils.format(spacephotovoltaicbasestationRecipeEutModel.key(), String.format("%d", data.getInt("input"))); } return ""; @@ -535,7 +718,7 @@ public class CTNHRecipeTypes { .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW_MULTIPLE, ProgressTexture.FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.CHEMICAL) - .addDataInfo(data -> LocalizationUtils.format("ctnh.nuclear_reactor_heat", + .addDataInfo(data -> LocalizationUtils.format(CTNHItems.itemNuclearReactorHeat.key(), String.format("%.1f", data.getFloat("heat")))); public static final GTRecipeType GAS_CENTRIFUGE_RECIPES = REGISTRATE .recipeType(CTNHCore.id("gas_centrifuge"), MULTIBLOCK) @@ -568,9 +751,9 @@ public class CTNHRecipeTypes { .addDataInfo(data -> LocalizationUtils.format("gtceu.machine.hpca.component_type.computation_cwut", data.getInt("maxCWUt"))) .addDataInfo( - data -> LocalizationUtils.format("ctnhcore.src.wetware_duration", data.getInt("wetwareDuration"))) + data -> LocalizationUtils.format(ScalableReservoirComputingMachine.ctnhSrcWetwareDuration.key(), data.getInt("wetwareDuration"))) // TODO: 渲染以后写 - .addDataInfo(data -> LocalizationUtils.format("ctnhcore.src.sacrifice", data.getString("sacrifice"))); + .addDataInfo(data -> LocalizationUtils.format(ctnhSrcSacrifice.key(), data.getString("sacrifice"))); public static final GTRecipeType DIFFERENTIAL_CENTRIFUGE_RECIPES = REGISTRATE .recipeType(CTNHCore.id("differential_centrifuge"), ELECTRIC) .cnlang("差速离心") diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/adventure/CTNHEnchantments.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/adventure/CTNHEnchantments.java index 4c71e37e6..2601b9a7c 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/adventure/CTNHEnchantments.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/adventure/CTNHEnchantments.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.registry.adventure; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.common.enchantment.TemperatureEnchantment; @@ -10,6 +14,19 @@ public class CTNHEnchantments { + @Key("enchantment.ctnhcore.cooling.desc") + @CN("增强御寒能力") + @EN("Improves resistance to cold") + public static Lang enchantmentCoolingDesc; + + + @Key("enchantment.ctnhcore.warming.desc") + @CN("增强御暑能力") + @EN("Improves resistance to heat") + public static Lang enchantmentWarmingDesc; + + + public static DeferredRegister Enchantments = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, CTNHCore.MODID); public static final RegistryObject WARMING = Enchantments.register("warming", diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/jade/CTNHJadePlugin.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/jade/CTNHJadePlugin.java index cdbc50f2f..52dd7821d 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/jade/CTNHJadePlugin.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/jade/CTNHJadePlugin.java @@ -1,7 +1,30 @@ package io.github.cpearl0.ctnhcore.registry.jade; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; public class CTNHJadePlugin { + @Key("config.jade.plugin_ctnhcore.recipe_logic_provider") + @CN("配方耗电信息") + @EN("Recipe Logic Info") + public static Lang configJadePluginCtnhcoreRecipeLogicProvider; + + + @Key("config.jade.plugin_ctnhcore.recipe_output_provider") + @CN("配方输出信息") + @EN("Recipe Output Info") + public static Lang configJadePluginCtnhcoreRecipeOutputProvider; + + + @Key("config.jade.plugin_ctnhcore.thread_status_provider") + @CN("线程信息") + @EN("Thread Info") + public static Lang configJadePluginCtnhcoreThreadStatusProvider; + + + public static void init() { // JadePriorityManager.registerBlockComponent( // new MultithreadRecipeLogicProvider(), diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/CTNHMachines.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/CTNHMachines.java index 8ac7e95f9..cbc8424d4 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/CTNHMachines.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/CTNHMachines.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.registry.machines; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.common.machine.cover.CreativeEnergyCover; @@ -52,6 +56,719 @@ @Suffix("tooltip") public class CTNHMachines { + @Key("block.ctnhcore.advance_assembly_line") + @CN("进阶装配线") + public static Lang blockAdvanceAssemblyLine; + + + @Key("block.ctnhcore.advanced_coke_oven") + @CN("高级焦炉") + public static Lang blockAdvancedCokeOven; + + + @Key("block.ctnhcore.advanced_wind_power_array") + @CN("进阶风力发电阵列") + public static Lang blockAdvancedWindPowerArray; + + + @Key("block.ctnhcore.arc_generator") + @CN("电弧撕裂者") + public static Lang blockArcGenerator; + + + @Key("block.ctnhcore.arc_generator_mk1") + @CN("超压电弧撕裂者MK1") + public static Lang blockArcGeneratorMk1; + + + @Key("block.ctnhcore.arc_generator_mk2") + @CN("过载电弧撕裂者MK1") + public static Lang blockArcGeneratorMk2; + + + @Key("block.ctnhcore.astronomical_observatory") + @CN("天文台") + public static Lang blockAstronomicalObservatory; + + + @Key("block.ctnhcore.bedrock_drilling_rigs") + @CN("基岩钻机") + public static Lang blockBedrockDrillingRigs; + + + @Key("block.ctnhcore.bio_reactor") + @CN("生物反应器") + public static Lang blockBioReactor; + + + @Key("block.ctnhcore.blaze_blast_furnace") + @CN("§c炽焱高炉") + public static Lang blockBlazeBlastFurnace; + + + @Key("block.ctnhcore.chemical_vapor_deposition_machine") + @CN("化学气相沉积器") + public static Lang blockChemicalVaporDepositionMachine; + + + @Key("block.ctnhcore.cnc_alloy_smelter") + @CN("数控合金冶炼炉") + public static Lang blockCncAlloySmelter; + + + @Key("block.ctnhcore.coke_tower") + @CN("焦化塔") + public static Lang blockCokeTower; + + + @Key("block.ctnhcore.combined_vapor_deposition_facility") + @CN("集成沉积工厂") + public static Lang blockCombinedVaporDepositionFacility; + + + @Key("block.ctnhcore.condensing_discrete") + @CN("冷凝离散塔") + public static Lang blockCondensingDiscrete; + + + @Key("block.ctnhcore.cryotheum_freezer") + @CN("凛冰冷冻机") + public static Lang blockCryotheumFreezer; + + + @Key("block.ctnhcore.crystallizer") + @CN("结晶器") + public static Lang blockCrystallizer; + + + @Key("block.ctnhcore.cultivationroom") + @CN("培养室") + public static Lang blockCultivationroom; + + + @Key("block.ctnhcore.decay_pools_machine") + @CN("衰变罐") + public static Lang blockDecayPoolsMachine; + + + @Key("block.ctnhcore.digestion_tank") + @CN("化粪池") + public static Lang blockDigestionTank; + + + @Key("block.ctnhcore.dimensional_gas_collection_chamber") + @CN("维度集气室") + public static Lang blockDimensionalGasCollectionChamber; + + + @Key("block.ctnhcore.drone_holder") + @CN("无人机支架") + public static Lang blockDroneHolder; + + + @Key("block.ctnhcore.ev_chemical_generator") + @CN("化学能发电机") + public static Lang blockEvChemicalGenerator; + + + @Key("block.ctnhcore.ev_dehydrator") + @CN("§5高级脱水机 III§r") + public static Lang blockEvDehydrator; + + + @Key("block.ctnhcore.ev_naquadah_reactor") + @CN("§5高级硅岩发电机 I") + public static Lang blockEvNaquadahReactor; + + + @Key("block.ctnhcore.ev_oxygen_enricher") + @CN("§5高级氧气富集器§r") + public static Lang blockEvOxygenEnricher; + + + @Key("block.ctnhcore.ev_personal_computer") + @CN("§5EV§r个人计算机") + public static Lang blockEvPersonalComputer; + + + @Key("block.ctnhcore.ev_rocket_engine") + @CN("§5高级火箭引擎发电机 I") + public static Lang blockEvRocketEngine; + + + @Key("block.ctnhcore.fermenting_tank") + @CN("发酵罐") + public static Lang blockFermentingTank; + + + @Key("block.ctnhcore.forest_sea_tree_farm") + @CN("林海树场") + public static Lang blockForestSeaTreeFarm; + + + @Key("block.ctnhcore.fuel_refining_factory") + @CN("燃料精炼厂") + public static Lang blockFuelRefiningFactory; + + + @Key("block.ctnhcore.gas_centrifuge") + @CN("气体离心机") + public static Lang blockGasCentrifuge; + + + @Key("block.ctnhcore.greenhouse") + @CN("温室") + public static Lang blockGreenhouse; + + + @Key("block.ctnhcore.hot_coolant_turbine") + @CN("热冷却涡轮") + public static Lang blockHotCoolantTurbine; + + + @Key("block.ctnhcore.hv_dehydrator") + @CN("§6高级脱水机 II§r") + public static Lang blockHvDehydrator; + + + @Key("block.ctnhcore.hv_digital_miner") + @CN("§6进阶数字型采矿机 II§r") + public static Lang blockHvDigitalMiner; + + + @Key("block.ctnhcore.hv_energy_output_hatch_4a") + @CN("4安§6HV§r动力仓") + public static Lang blockHvEnergyOutputHatch4a; + + + @Key("block.ctnhcore.hv_oxygen_enricher") + @CN("§6进阶氧气富集器§r") + public static Lang blockHvOxygenEnricher; + + + @Key("block.ctnhcore.hv_personal_computer") + @CN("§6HV§r个人计算机") + public static Lang blockHvPersonalComputer; + + + @Key("block.ctnhcore.hyper_plasma_turbine") + @CN("超極等离子涡轮") + public static Lang blockHyperPlasmaTurbine; + + + @Key("block.ctnhcore.industrial_primitive_blast_furnace") + @CN("工业土高炉") + public static Lang blockIndustrialPrimitiveBlastFurnace; + + + @Key("block.ctnhcore.ion_exchanger") + @CN("离子交换机") + public static Lang blockIonExchanger; + + + @Key("block.ctnhcore.iv_chemical_generator") + @CN("化学能吞噬者") + public static Lang blockIvChemicalGenerator; + + + @Key("block.ctnhcore.iv_dehydrator") + @CN("§9精英脱水机 §r") + public static Lang blockIvDehydrator; + + + @Key("block.ctnhcore.iv_naquadah_reactor") + @CN("§9精英硅岩发电机 II") + public static Lang blockIvNaquadahReactor; + + + @Key("block.ctnhcore.iv_personal_computer") + @CN("§9IV§r个人计算机") + public static Lang blockIvPersonalComputer; + + + @Key("block.ctnhcore.iv_rocket_engine") + @CN("§9精英火箭引擎发电机 II") + public static Lang blockIvRocketEngine; + + + @Key("block.ctnhcore.large_bottle") + @CN("发酵瓶") + public static Lang blockLargeBottle; + + + @Key("block.ctnhcore.large_fermenting_tank") + @CN("大型发酵罐") + public static Lang blockLargeFermentingTank; + + + @Key("block.ctnhcore.large_steel_alloy_furnace") + @CN("大型钢制合金炉") + public static Lang blockLargeSteelAlloyFurnace; + + + @Key("block.ctnhcore.large_steel_furnace") + @CN("大型钢制熔炉") + public static Lang blockLargeSteelFurnace; + + + @Key("block.ctnhcore.lasersorder") + @CN("激光分配仪") + public static Lang blockLaserSorter; + + + @Key("block.ctnhcore.luv_compressed_fusion_reactor") + @CN("压缩核聚变反应堆控制电脑 MK-I") + public static Lang blockLuvCompressedFusionReactor; + + + @Key("block.ctnhcore.luv_dehydrator") + @CN("§d精英脱水机 II§r") + public static Lang blockLuvDehydrator; + + + @Key("block.ctnhcore.luv_naquadah_reactor") + @CN("§d精英硅岩发电机 III") + public static Lang blockLuvNaquadahReactor; + + + @Key("block.ctnhcore.luv_personal_computer") + @CN("§dLuV§r个人计算机") + public static Lang blockLuvPersonalComputer; + + + @Key("block.ctnhcore.luv_rocket_engine") + @CN("§d精英火箭引擎发电机 III") + public static Lang blockLuvRocketEngine; + + + @Key("block.ctnhcore.lv_digital_miner") + @CN("数字型采矿机") + public static Lang blockLvDigitalMiner; + + + @Key("block.ctnhcore.lv_energy_output_hatch_4a") + @CN("4安§7LV§r动力仓") + public static Lang blockLvEnergyOutputHatch4a; + + + @Key("block.ctnhcore.lv_personal_computer") + @CN("§7LV§r个人计算机") + public static Lang blockLvPersonalComputer; + + + @Key("block.ctnhcore.lv_rotor_holder") + @CN("§7LV§r转子支架") + public static Lang blockLvRotorHolder; + + + @Key("block.ctnhcore.martial_morality_eye") + @CN("武德之眼") + public static Lang blockMartialMoralityEye; + + + @Key("block.ctnhcore.max_parallel_hatch") + @CN("§c§lMAX§r并行控制仓") + public static Lang blockMaxParallelHatch; + + + @Key("block.ctnhcore.meadow") + @CN("§6牧场") + public static Lang blockMeadow; + + + @Key("block.ctnhcore.mechanical_centrifuge") + @CN("机械离心厂") + public static Lang blockMechanicalCentrifuge; + + + @Key("block.ctnhcore.mechanical_extractor") + @CN("机械熔炼厂") + public static Lang blockMechanicalExtractor; + + + @Key("block.ctnhcore.mechanical_lathe") + @CN("机械车床厂") + public static Lang blockMechanicalLathe; + + + @Key("block.ctnhcore.mechanical_mixer") + @CN("机械搅拌厂") + public static Lang blockMechanicalMixer; + + + @Key("block.ctnhcore.mechanical_pressor") + @CN("机械辊压厂") + public static Lang blockMechanicalPressor; + + + @Key("block.ctnhcore.mechanical_sifter") + @CN("机械筛选厂") + public static Lang blockMechanicalSifter; + + + @Key("block.ctnhcore.mega_lcr") + @CN("巨型化学反应釜") + public static Lang blockMegaLcr; + + + @Key("block.ctnhcore.mega_oil_cracking_unit") + @CN("巨型原油裂解厂") + public static Lang blockMegaOilCrackingUnit; + + + @Key("block.ctnhcore.mv_dehydrator") + @CN("§b高级脱水机 §r") + public static Lang blockMvDehydrator; + + + @Key("block.ctnhcore.mv_digital_miner") + @CN("§b进阶数字型采矿机§r") + public static Lang blockMvDigitalMiner; + + + @Key("block.ctnhcore.mv_energy_output_hatch_4a") + @CN("4安§bMV§r动力仓") + public static Lang blockMvEnergyOutputHatch4a; + + + @Key("block.ctnhcore.mv_oxygen_enricher") + @CN("§b氧气富集器§r") + public static Lang blockMvOxygenEnricher; + + + @Key("block.ctnhcore.mv_personal_computer") + @CN("§bMV§r个人计算机") + public static Lang blockMvPersonalComputer; + + + @Key("block.ctnhcore.mv_rotor_holder") + @CN("§bMV§r转子支架") + public static Lang blockMvRotorHolder; + + + @Key("block.ctnhcore.nanogenetor") + @CN("纳米摩擦发电机") + public static Lang blockNanoGenerator; + + + @Key("block.ctnhcore.naq_reactor_mk3") + @CN("超级硅岩反应堆") + public static Lang blockNaqReactorMk3; + + + @Key("block.ctnhcore.neruo_martix_compiler") + @CN("神经矩阵编译器") + public static Lang blockNeuroMatrixCompiler; + + + @Key("block.ctnhcore.opv_parallel_hatch") + @CN("§9§lOpV§r并行控制仓") + public static Lang blockOpvParallelHatch; + + + @Key("block.ctnhcore.opv_personal_computer") + @CN("§9§lOpV§r个人计算机") + public static Lang blockOpvPersonalComputer; + + + @Key("block.ctnhcore.photovoltaic_drone_station") + @CN("光伏无人机道标基站") + public static Lang blockPhotovoltaicDroneStation; + + + @Key("block.ctnhcore.photovoltaic_power_station_energetic") + @CN("充能光伏发电站") + public static Lang blockPhotovoltaicPowerStationEnergetic; + + + @Key("block.ctnhcore.photovoltaic_power_station_pulsating") + @CN("脉冲光伏发电站") + public static Lang blockPhotovoltaicPowerStationPulsating; + + + @Key("block.ctnhcore.photovoltaic_power_station_vibrant") + @CN("振动光伏发电站") + public static Lang blockPhotovoltaicPowerStationVibrant; + + + @Key("block.ctnhcore.plasma_alloy_blast_smelter") + @CN("等离子合金冶炼转底炉") + public static Lang blockPlasmaAlloyBlastSmelter; + + + @Key("block.ctnhcore.plasma_condenser") + @CN("等离子冷凝器") + public static Lang blockPlasmaCondenser; + + + @Key("block.ctnhcore.seawater_desalting_factory") + @CN("海水晒盐工厂") + public static Lang blockSeawaterDesaltingFactory; + + + @Key("block.ctnhcore.silica_rock_fuel_refinery") + @CN("硅岩燃料精炼厂") + public static Lang blockSilicaRockFuelRefinery; + + + @Key("block.ctnhcore.sinope_chemical") + @CN("SINOPE化工厂") + public static Lang blockSinopeChemical; + + + @Key("block.ctnhcore.sintering_kiln") + @CN("烧结窑") + public static Lang blockSinteringKiln; + + + @Key("block.ctnhcore.slaughter_house") + @CN("屠宰场") + public static Lang blockSlaughterHouse; + + + @Key("block.ctnhcore.space_photovoltai_cbase_station") + @CN("太空光伏基站") + public static Lang blockSpacePhotovoltaicBaseStation; + + + @Key("block.ctnhcore.sterile_cleanroom_maintenance_hatch") + @CN("无菌超净间维护仓") + public static Lang blockSterileCleanroomMaintenanceHatch; + + + @Key("block.ctnhcore.super_centrifuge") + @CN("超速离心机") + public static Lang blockSuperCentrifuge; + + + @Key("block.ctnhcore.super_ebf") + @CN("超级电力高炉") + public static Lang blockSuperEbf; + + + @Key("block.ctnhcore.super_wind_power_array") + @CN("超级风力发电阵列") + public static Lang blockSuperWindPowerArray; + + + @Key("block.ctnhcore.superconducting_penning_trap") + @CN("超导潘宁势阱") + public static Lang blockSuperconductingPenningTrap; + + + @Key("block.ctnhcore.sweat_shop") + @CN("§4血汗工厂") + public static Lang blockSweatShop; + + + @Key("block.ctnhcore.uev_parallel_hatch") + @CN("§aUEV§r并行控制仓") + public static Lang blockUevParallelHatch; + + + @Key("block.ctnhcore.uev_personal_computer") + @CN("§aUEV§r个人计算机") + public static Lang blockUevPersonalComputer; + + + @Key("block.ctnhcore.uhv_fluid_drilling_inf") + @CN("无尽流体钻机") + public static Lang blockUhvFluidDrillingInf; + + + @Key("block.ctnhcore.uhv_neuro_compiler") + @CN("§4UHV§r神经拟合仓") + public static Lang blockUhvNeuroCompiler; + + + @Key("block.ctnhcore.uhv_parallel_hatch") + @CN("§4UHV§r并行控制仓") + public static Lang blockUhvParallelHatch; + + + @Key("block.ctnhcore.uhv_personal_computer") + @CN("§4UHV§r个人计算机") + public static Lang blockUhvPersonalComputer; + + + @Key("block.ctnhcore.uiv_parallel_hatch") + @CN("§2UIV§r并行控制仓") + public static Lang blockUivParallelHatch; + + + @Key("block.ctnhcore.uiv_personal_computer") + @CN("§2UIV§r个人计算机") + public static Lang blockUivPersonalComputer; + + + @Key("block.ctnhcore.ultimate_combustion_engine") + @CN("无尽内燃引擎") + public static Lang blockUltimateCombustionEngine; + + + @Key("block.ctnhcore.ultrasonic_apparatus") + @CN("超声破碎仪") + public static Lang blockUltrasonicApparatus; + + + @Key("block.ctnhcore.ulv_rotor_holder") + @CN("§8ULV§r转子支架") + public static Lang blockUlvRotorHolder; + + + @Key("block.ctnhcore.underfloor_heating_system") + @CN("地暖") + public static Lang blockUnderfloorHeatingSystem; + + + @Key("block.ctnhcore.uv_compressed_fusion_reactor") + @CN("压缩核聚变反应堆控制电脑 MK-III") + public static Lang blockUvCompressedFusionReactor; + + + @Key("block.ctnhcore.uv_naquadah_reactor") + @CN("§3终极硅岩发电机 V") + public static Lang blockUvNaquadahReactor; + + + @Key("block.ctnhcore.uv_neuro_compiler") + @CN("§3UV§r神经拟合仓") + public static Lang blockUvNeuroCompiler; + + + @Key("block.ctnhcore.uv_personal_computer") + @CN("§3UV§r个人计算机") + public static Lang blockUvPersonalComputer; + + + @Key("block.ctnhcore.uxv_parallel_hatch") + @CN("§eUXV§r并行控制仓") + public static Lang blockUxvParallelHatch; + + + @Key("block.ctnhcore.uxv_personal_computer") + @CN("§eUXV§r个人计算机") + public static Lang blockUxvPersonalComputer; + + + @Key("block.ctnhcore.vacuum_sintering_tower") + @CN("真空烧结厂") + public static Lang blockVacuumSinteringTower; + + + @Key("block.ctnhcore.void_miner") + @CN("虚空采矿场") + public static Lang blockVoidMiner; + + + @Key("block.ctnhcore.wide_particle_accelerator") + @CN("广粒子加速器") + public static Lang blockWideParticleAccelerator; + + + @Key("block.ctnhcore.wind_power_array") + @CN("风力发电阵列") + public static Lang blockWindPowerArray; + + + @Key("block.ctnhcore.zpm_compressed_fusion_reactor") + @CN("压缩核聚变反应堆控制电脑 MK-II") + public static Lang blockZpmCompressedFusionReactor; + + + @Key("block.ctnhcore.zpm_dehydrator") + @CN("§c精英脱水机 III§r") + public static Lang blockZpmDehydrator; + + + @Key("block.ctnhcore.zpm_naquadah_reactor") + @CN("§c精英硅岩发电机 IV") + public static Lang blockZpmNaquadahReactor; + + + @Key("block.ctnhcore.zpm_personal_computer") + @CN("§cZPM§r个人计算机") + public static Lang blockZpmPersonalComputer; + + + @CN("效率: %s%%") + @EN("Efficiency: %s%%") + public static Lang machineNaquadahReactorTooltip; + + + @CN("效率: %s%%") + @EN("Efficiency: %s%%") + public static Lang machineRocketEngineTooltip; + + + @Key("ctnhcore.copyright.info") + @CN("§6由CTNH添加") + @EN("§6Added by CTNH") + public static Lang ctnhCopyrightInfo; + + + @CN("§7来自GTMThings的挖矿黑科技,速度更快且无采矿管道,仅挖取矿石") + @EN("§7From GTMThings, faster speed and no mining pipes, only mining ores") + public static Lang ctnhMachineDigitalMinerTooltip0; + + + @CN("§b工作时自带自身区块强加载") + @EN("§bForce loading self chunk while working") + public static Lang ctnhMachineDigitalMinerTooltip1; + + + @CN("工作时消耗§f%d EU/t§7,每个方块需要§f%d§7刻") + @EN("Uses §f%d EU/t §7while working, each block takes §f%d§7 ticks") + public static Lang ctnhMachineDigitalMinerTooltip2; + + + @CN("消耗氧气流体以维持密闭空间内的可呼吸环境") + @EN("Consumes oxygen fluid to maintain a breathable sealed room") + public static Lang ctnhMachineOxygenEnricherTooltip0; + + + @CN("可为半径 %s 格的密闭空间供氧") + @EN("Supplies oxygen to enclosed spaces within %s blocks") + public static Lang ctnhMachineOxygenEnricherTooltip1; + + + @Key("ctnhcore.recipe_logic.insufficient_cwut") + @CN("算力不足") + @EN("Insufficient Computation") + public static Lang ctnhRecipeLogicInsufficientCwut; + + + @CN("允许同时处理至多4096个配方。") + @EN("Allows up to 4096 recipes to be processed simultaneously.") + public static Lang gtceuMachineParallelHatchMk10Tooltip; + + + @CN("允许同时处理至多16384个配方。") + @EN("Allows up to 16384 recipes to be processed simultaneously.") + public static Lang gtceuMachineParallelHatchMk11Tooltip; + + + @CN("允许同时处理至多65536个配方。") + @EN("Allows up to 65536 recipes to be processed simultaneously.") + public static Lang gtceuMachineParallelHatchMk12Tooltip; + + + @CN("允许同时处理至多262144个配方。") + @EN("Allows up to 262144 recipes to be processed simultaneously.") + public static Lang gtceuMachineParallelHatchMk13Tooltip; + + + @CN("允许同时处理至多1048576个配方。") + @EN("Allows up to 1048576 recipes to be processed simultaneously.") + public static Lang gtceuMachineParallelHatchMk14Tooltip; + + + @CN("允许同时处理至多1024个配方。") + @EN("Allows up to 1024 recipes to be processed simultaneously.") + public static Lang gtceuMachineParallelHatchMk9Tooltip; + + + static { REGISTRATE.creativeModeTab(() -> CTNHCreativeModeTabs.MACHINE); } @@ -76,6 +793,18 @@ public class CTNHMachines { public static MachineDefinition CREATIVE_LASER_INPUT_HATCH; public static CoverDefinition CREATIVE_ENERGY_COVER_DEF; + private static Lang parallelHatchTooltip(int tier) { + return switch (tier) { + case UHV -> gtceuMachineParallelHatchMk9Tooltip; + case UEV -> gtceuMachineParallelHatchMk10Tooltip; + case UIV -> gtceuMachineParallelHatchMk11Tooltip; + case UXV -> gtceuMachineParallelHatchMk12Tooltip; + case OpV -> gtceuMachineParallelHatchMk13Tooltip; + case MAX -> gtceuMachineParallelHatchMk14Tooltip; + default -> throw new IllegalArgumentException("Unsupported parallel hatch tier: " + tier); + }; + } + public static void init() { GTNNMachines.init(); @@ -157,8 +886,8 @@ public static void init() { .workableTieredHullModel(CTNHCore.id("block/machines/oxygen_enricher")) .tooltipBuilder((stack, tooltip) -> { int range = 12 + tier * 4; - tooltip.add(Component.translatable("ctnhcore.machine.oxygen_enricher.tooltip.0")); - tooltip.add(Component.translatable("ctnhcore.machine.oxygen_enricher.tooltip.1", range)); + tooltip.add(ctnhMachineOxygenEnricherTooltip0.translate()); + tooltip.add(ctnhMachineOxygenEnricherTooltip1.translate( range)); tooltip.add(Component.translatable("gtceu.universal.tooltip.voltage_in", FormattingUtil.formatNumbers(V[tier]), GTValues.VNF[tier])); tooltip.add(Component.translatable("gtceu.universal.tooltip.energy_storage_capacity", @@ -179,9 +908,9 @@ public static void init() { .tooltipBuilder((stack, tooltip) -> { int maxArea = DigitalMiner.getRange(tier); long energyPerTick = VEX[tier - 1]; - tooltip.add(Component.translatable("ctnhcore.machine.digital_miner.tooltip.0")); - tooltip.add(Component.translatable("ctnhcore.machine.digital_miner.tooltip.1")); - tooltip.add(Component.translatable("ctnhcore.machine.digital_miner.tooltip.2", + tooltip.add(ctnhMachineDigitalMinerTooltip0.translate()); + tooltip.add(ctnhMachineDigitalMinerTooltip1.translate()); + tooltip.add(ctnhMachineDigitalMinerTooltip2.translate( energyPerTick, (int) (40 / Math.pow(2, tier)))); tooltip.add(Component.translatable("gtceu.universal.tooltip.voltage_in", FormattingUtil.formatNumbers(VEX[tier]), GTValues.VNF[tier])); @@ -212,7 +941,7 @@ public static void init() { .andThen((ctx, prov, model) -> { model.addReplaceableTextures("bottom", "top", "side"); })) - .tooltips(Component.translatable("gtceu.machine.parallel_hatch_mk" + tier + ".tooltip"), + .tooltips(parallelHatchTooltip(tier).translate(), Component.translatable("gtceu.part_sharing.disabled")) .register(), UHV, UEV, UIV, UXV, OpV, MAX); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/GTMachineModify.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/GTMachineModify.java index 091f24216..54e466282 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/GTMachineModify.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/GTMachineModify.java @@ -44,8 +44,14 @@ @Suffix("tooltip") public class GTMachineModify { + @CN("配方耗时x0.8,配方耗能x0.6") + @EN("Recipe time ×0.8, recipe energy ×0.6") + public static Lang gcymReduction; + + + public static BiConsumer> REDUCTION_INFO = (itemStack, list) -> list - .add(Component.translatable("ctnh.gcym.reduction").withStyle(ChatFormatting.GREEN)); + .add(gcymReduction.translate().withStyle(ChatFormatting.GREEN)); public static void init() { List gcymMachinesToModify = Arrays.asList( @@ -133,7 +139,7 @@ private static void modifyGTAssembly() { lASBRecipeTypes.add(CTNHRecipeTypes.PRECISION_ASSEMBLY_RECIPES); lASB.setRecipeTypes(lASBRecipeTypes.toArray(GTRecipeType[]::new)); lASB.setTooltipBuilder(lASB.getTooltipBuilder().andThen((itemStack, components) -> { - components.add(Component.translatable("ctnh.gcym.reduction").withStyle(ChatFormatting.GREEN)); + components.add(gcymReduction.translate().withStyle(ChatFormatting.GREEN)); components.add(precision_assembly[0].translate()); components.add(precision_assembly[1].translate()); })); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/HyperPlasmaTurbineRegister.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/HyperPlasmaTurbineRegister.java index 8febe7c2f..094bbcf34 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/HyperPlasmaTurbineRegister.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/HyperPlasmaTurbineRegister.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.registry.machines.multiblock; +import io.github.cpearl0.ctnhcore.utils.CTNHCommonTooltips; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.client.renderer.HyperPlasmaTurbineRender; @@ -33,6 +37,17 @@ public class HyperPlasmaTurbineRegister { + @CN("§a精密计算§f与§e等离子体§f的§5终极艺术") + @EN("§5FINAL FANTASY §fof §a Precise Computation §f and §e Plasma Energy") + public static Lang hyperPlasmaTurbineTooltip0; + + + @CN("提供%d算力以达到基础功率,每提供%d算力,输出功率翻一倍") + @EN("Provide %d computation to reach the Base Production. For every %d computation provided, the Output Production DOUBLES.") + public static Lang hyperPlasmaTurbineTooltip1; + + + public static MultiblockMachineDefinition register() { return REGISTRATE.multiblock("hyper_plasma_turbine", HyperPlasmaTurbineMachine::new) .rotationState(RotationState.NON_Y_AXIS) @@ -281,14 +296,14 @@ public static MultiblockMachineDefinition register() { .andThen(b -> b.addDynamicRenderer(HyperPlasmaTurbineRender::new))) // .hasTESR(true) .tooltips( - Component.translatable("ctnh.multiblock.hyper_plasma_turbine.tooltip0"), - Component.translatable("ctnh.multiblock.hyper_plasma_turbine.tooltip1", + hyperPlasmaTurbineTooltip0.translate(), + hyperPlasmaTurbineTooltip1.translate( HyperPlasmaTurbineMachine.CWUtStair, HyperPlasmaTurbineMachine.CWUtStair), Component.translatable("gtceu.multiblock.turbine.efficiency", HyperPlasmaTurbineMachine.getEfficiency() * 100), Component.translatable("gtceu.universal.tooltip.base_production_eut", HyperPlasmaTurbineMachine.BASE_EU_OUTPUT), - Component.translatable("gtceu.multiblock.laser.tooltip")) + CTNHCommonTooltips.gtceuMultiblockLaserTooltip.translate()) .register(); } // //由MBPosHelper生成 diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/Mechanical.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/Mechanical.java index 2c2d4367e..86ee4c3d9 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/Mechanical.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/Mechanical.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.registry.machines.multiblock; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.data.CreateRecipeTypes; @@ -32,6 +35,17 @@ public class Mechanical { + @CN("结构中的车床必须严格依照EMI结构信息页面展示的位置和方向摆放") + @EN("The lathe in the structure must be placed exactly as shown in EMI's structure information, including position and orientation") + public static Lang mechanicalLatheStructure; + + + @CN("§7EMI中显示的车床数量有问题,实际只需要6个") + @EN("§7The number of lathes shown in EMI is incorrect; only 6 are actually required") + public static Lang mechanicalLatheStructure1; + + + public final static MultiblockMachineDefinition MECHANICAL_PRESSOR = REGISTRATE .multiblock("mechanical_pressor", KineticWorkableMultiblockMachine::new) .rotationState(RotationState.NON_Y_AXIS) @@ -152,8 +166,8 @@ public class Mechanical { .appearanceBlock(AllBlocks.RAILWAY_CASING) .recipeModifier(CTPPRecipeModifiers.KINETIC_PARALLEL) .tooltips(CommonTooltips.KINETIC_OVERCLOCK) - .tooltips(Component.translatable("ctnh.mechanical_lathe.structure").withStyle(ChatFormatting.DARK_RED)) - .tooltips(Component.translatable("ctnh.mechanical_lathe.structure.1")) + .tooltips(mechanicalLatheStructure.translate().withStyle(ChatFormatting.DARK_RED)) + .tooltips(mechanicalLatheStructure1.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("AAAAAAAA", "AAAAAAAB", "AAACCCCB", "BBBBBBBB", "B######B", "BDDDDDDB", "AAAAAAAA") .aisle("AAAAAAAA", "A#AEFFEA", "ADAGGGGC", "B######B", "########", "D######D", "AAAAAAAA") diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksA.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksA.java index d20e931d4..9e513dfcf 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksA.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksA.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.registry.machines.multiblock; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.client.renderer.MartialMoralityEyeRender; @@ -78,14 +82,994 @@ // spotless:off public class MultiblocksA { + + @Key("ctnh.computer.a1") + @CN("§c一切伟大之作都需要§4牺牲§r§j来铸就。其他生物或许不能理解,但他们必将§4服从§r。") + @EN("§cAll great works require§4 sacrifice§r§j to forge. Other beings may not understand, but they will§4 obey§r.") + public static Lang computerA1; + + + @Key("ctnh.computer.a2") + @CN("机器类型:§c突触凝练机") + @EN("Machine type: §cSynapse Refining Machine") + public static Lang computerA2; + + + @Key("ctnh.computer.a3") + @CN("将其他智慧生物作为§4湿件§r来进行运算,获得大量算力,甚至直接做成湿件") + @EN("Uses other intelligent beings as §4wetware§r for computation, gaining massive processing power, even converting them into wetware.") + public static Lang computerA3; + + + @Key("ctnh.computer.a4") + @CN("机制介绍占位符") + @EN("Mechanism introduction placeholder") + public static Lang computerA4; + + + @Key("ctnh.computer.a5") + @CN("该机器会超载所有智慧生物体的大脑。§4不可避免§r地§4永久损坏§r智慧生物的大脑,§4不会留下§r任何掉落物") + @EN("This machine will overload the brains of all intelligent beings. §4Inevitable§r §4permanent damage§r to their brains,§4 no drops§r will be left.") + public static Lang computerA5; + + + @Key("ctnh.computer.a6") + @CN("诸如村民这种§7低智慧§r的新人类的生命与智慧太低了,我们需要§c更加聪明,可爱和生命更高的生物§r") + @EN("For beings like villagers, who are §7low-intelligence§r new humans, their life and intellect are too low. We need§c smarter, cuter, and more life-capable beings§r.") + public static Lang computerA6; + + + @Key("ctnh.computer.a7") + @CN("为了无尽的知识,我们必须§4做出一切必要的牺牲§4") + @EN("For endless knowledge, we must§4 make all necessary sacrifices§4.") + public static Lang computerA7; + + + @CN("高级焦炉") + @EN("Advanced Coke Oven") + public static Lang advancedCokeOvenTooltip0; + + + @CN("§6§l自带32并行") + @EN("§6§lComes with 32 parallelism") + public static Lang advancedCokeOvenTooltip1; + + + @CN("只可运行焦炉配方,且运行配方时间固定为15s") + @EN("Can only run coke oven recipes, and recipe time is fixed at 15 seconds") + public static Lang advancedCokeOvenTooltip2; + + + @CN("产生大量的焦化产物与杂酚油") + @EN("Produces a large amount of coke products and phenolic oil") + public static Lang advancedCokeOvenTooltip3; + + + @CN("§c§l不能使用焦炉仓") + @EN("§c§lCannot use coke oven cells") + public static Lang advancedCokeOvenTooltip4; + + + @Key("ctnh.multiblock.arcreactor.tooltip") + @CN("电弧发生者") + @EN("Arc Generator") + public static Lang arcreactorTooltip; + + + @CN("知天易,逆天难") + @EN("Knowing the heavens is easy, but defying them is difficult") + public static Lang astronomicalTooltip0; + + + @CN("无法在阳光直射下工作,工作时会自动为芯片总线中的芯片收集数据") + @EN("Cannot work under direct sunlight, but will automatically collect data for the chips in the chip bus while working") + public static Lang astronomicalTooltip1; + + + @CN("一个大罐子") + @EN("A big tank") + public static Lang bioReactorTooltip0; + + + @CN("比电力高炉快") + @EN("Faster than an electric blast furnace.") + public static Lang blazeBlastFurnaceTooltip0; + + + @CN("每秒基础消耗§a10mB§r烈焰之炽焱,电压每超过§6HV§r一级,消耗量变为原来的两倍") + @EN("Base consumption is §a10mB§r of Blazing Pyrotheum per second. For each voltage tier above §6HV§r, the consumption doubles.") + public static Lang blazeBlastFurnaceTooltip1; + + + @CN("运行耗能x0.75") + @EN("Consumes 0.75x energy.") + public static Lang blazeBlastFurnaceTooltip2; + + + @CN("允许一次性处理8个配方") + @EN("Allows processing of 8 recipes simultaneously.") + public static Lang blazeBlastFurnaceTooltip3; + + + @CN("拥有强大的焦化产能来支撑你的木化产线!") + @EN("Boasts formidable coking capacity to fuel your petrochemical production line!") + public static Lang cokeTowerTooltip0; + + + @CN("有着如同工业熔炉一般的速度") + @EN("Delivers blistering speeds rivaling industrial furnaces") + public static Lang cokeTowerTooltip1; + + + @CN("专业结晶") + @EN("Professional Crystallization") + public static Lang crystallizerTooltip0; + + + @CN("结晶器能更加快速的完成晶体配方") + @EN("The crystallizer completes crystal recipes more efficiently.") + public static Lang crystallizerTooltip1; + + + @CN("随着线圈等级上升,工作效率逐级提升") + @EN("Efficiency improves as the coil level increases.") + public static Lang crystallizerTooltip2; + + + @CN("可以运行部分化学气相沉积的配方和部分高压釜的配方") + @EN("Can process chemical vapor deposition recipes and some autoclave recipes.") + public static Lang crystallizerTooltip3; + + + @CN("省材料的最佳帮手") + @EN("The best assistant for saving materials.") + public static Lang crystallizerTooltip4; + + + @CN("衰变") + @EN("Decay") + public static Lang decayPoolsTooltip0; + + + @CN("当电路板为0时为不通电状态---不启用世界加速") + @EN("When the circuit board is set to 0, the machine is unpowered and world acceleration is disabled.") + public static Lang decayPoolsTooltip1; + + + @CN("当电路板为1时为通电状态---启用世界加速") + @EN("When the circuit board is set to 1, the machine is powered and world acceleration is enabled.") + public static Lang decayPoolsTooltip2; + + + @CN("加速衰变过程") + @EN("Accelerates the decay process.") + public static Lang decayPoolsTooltip3; + + + @Key("ctnh.multiblock.demon_generator.info.1") + @CN("浓度差:%s") + @EN("Concentration Difference: %s") + public static Lang demonGeneratorInfo1; + + + @Key("ctnh.multiblock.demon_generator.info.boosted") + @CN("§b生命源质增幅已启用") + @EN("§bLife Essence Boost Active") + public static Lang demonGeneratorInfoBoosted; + + + @Key("ctnh.multiblock.demon_generator.info.corrosive") + @CN("专精增益:腐蚀") + @EN("Specialization Boost: Corrosive") + public static Lang demonGeneratorInfoCorrosive; + + + @Key("ctnh.multiblock.demon_generator.info.default") + @CN("专精增益:无") + @EN("Specialization Boost: None") + public static Lang demonGeneratorInfoDefault; + + + @Key("ctnh.multiblock.demon_generator.info.destructive") + @CN("专精增益:毁灭") + @EN("Specialization Boost: Destructive") + public static Lang demonGeneratorInfoDestructive; + + + @Key("ctnh.multiblock.demon_generator.info.steadfast") + @CN("专精增益:坚毅") + @EN("Specialization Boost: Steadfast") + public static Lang demonGeneratorInfoSteadfast; + + + @Key("ctnh.multiblock.demon_generator.info.vengeful") + @CN("专精增益:复仇") + @EN("Specialization Boost: Vengeful") + public static Lang demonGeneratorInfoVengeful; + + + @Key("ctnh.multiblock.demon_will_generator.tooltip.0") + @CN("借用恶魔之力") + @EN("Harnessing Demonic Power") + public static Lang demonWillGeneratorTooltip0; + + + @Key("ctnh.multiblock.demon_will_generator.tooltip.01") + @CN("允许使用变电仓,不限制变电仓数量") + @EN("Allows voltage converter hatches; there is no limit on the number of converter hatches") + public static Lang demonWillGeneratorTooltip01; + + + @Key("ctnh.multiblock.demon_will_generator.tooltip.1") + @CN("利用机器两侧的区块内的恶魔意志浓度差发电,浓度差与发电量呈指数关系,当浓度差超过500时,超过500的浓度与发电量改为线性关系") + @EN("Generates power from the difference in Demonic Will concentration between the chunks on both sides of the machine. The difference increases power output exponentially up to 500; above 500, the excess contributes linearly.") + public static Lang demonWillGeneratorTooltip1; + + + @Key("ctnh.multiblock.demon_will_generator.tooltip.2") + @CN("以机器两侧的恶魔合金方块处的意志浓度为基准进行计算") + @EN("Calculations use the Will concentration at the Demonic Alloy blocks on both sides of the machine.") + public static Lang demonWillGeneratorTooltip2; + + + @Key("ctnh.multiblock.demon_will_generator.tooltip.3") + @CN("两侧区块中的各种恶魔意志的多样性会影响发电效率") + @EN("The diversity of Demonic Wills in both chunks affects generation efficiency.") + public static Lang demonWillGeneratorTooltip3; + + + @Key("ctnh.multiblock.demon_will_generator.tooltip.4") + @CN("机器内可以放入意志核心,将机器转化为对于某种意志专精的模式,该模式下每秒会有5%的概率消耗一个核心") + @EN("Will Cores can be inserted to specialize the machine in a type of Will; this mode has a 5% chance per second to consume one core.") + public static Lang demonWillGeneratorTooltip4; + + + @Key("ctnh.multiblock.demon_will_generator.tooltip.5") + @CN("机器内的符文方块可替换,从而起到不同的增益效果:\n§4献祭符文和牺牲符文----提高生命源质强化模式的发电倍率§r\n§3速度符文----提升一次配方运行的时长(节省恶魔意志消耗)§r\n§e增容符文----每一个符文增加2点恶魔意志浓度差§r\n§c超容符文----每一个符文增加百分之2的恶魔意志浓度差(叠乘)§r\n==============================") + @EN("The rune blocks inside the machine can be replaced for different bonuses:\n§4Sacrifice and Self-Sacrifice Runes ---- Increase the power multiplier of Life Essence Fortified Mode§r\n§3Speed Runes ---- Increase the duration of one recipe operation (reducing Demonic Will consumption)§r\n§eCapacity Runes ---- Each rune adds 2 to the Demonic Will concentration difference§r\n§cOvercapacity Runes ---- Each rune adds 2% to the Demonic Will concentration difference (multiplicative)§r\n==============================") + public static Lang demonWillGeneratorTooltip5; + + + @Key("ctnh.multiblock.demon_will_generator.tooltip.6") + @CN("输入§4生命源质§r开启血祭模式,发电量翻倍,每秒消耗§a100mb§r的生命源质") + @EN("Insert §4Life Essence§r to activate Blood Sacrifice Mode, doubling power output while consuming §a100 mB§r of Life Essence per second") + public static Lang demonWillGeneratorTooltip6; + + + @CN("从海水中烘干出盐,很环保不是吗?") + @EN("Drying salt out of seawater—eco-friendly, isn't it?") + public static Lang desaltingFactoryTooltip0; + + + @CN("其实产生的是很有价值的原料......") + @EN("Actually, it produces very valuable materials...") + public static Lang digestionTankTooltip0; + + + @CN("化粪池堆肥机制:") + @EN("Composting Mechanism of the Digestion Tank:") + public static Lang digestionTankTooltip1; + + + @CN("当化粪池温度处于§236§r至§238§r度之间时为最适生长温度,配方获得1.2倍效率,越偏离最适生长温度,配方效率越低,最低为三分之一") + @EN("The optimal growth temperature is between §236§r and §238§r degrees. Recipes get 1.2x efficiency at optimal temperature. The further it deviates, the lower the efficiency, down to one-third.") + public static Lang digestionTankTooltip2; + + + @CN("一个专为微生物提供的生长罐,注意时刻关注他!") + @EN("A tank designed specifically for microbial growth. Always keep an eye on it!") + public static Lang fermentingTankTooltip0; + + + @CN("发酵罐的生物生长机制:") + @EN("Biological Growth Mechanism of the Fermenting Tank:") + public static Lang fermentingTankTooltip1; + + + @CN("当发酵罐温度处于§236§r至§238§r度之间时为最适生长温度,配方获得1.2倍效率,越偏离最适生长温度,配方效率越低,最低为三分之一") + @EN("The optimal growth temperature is between §236§r and §238§r degrees. Recipes get 1.2x efficiency at optimal temperature. The further it deviates, the lower the efficiency, down to one-third.") + public static Lang fermentingTankTooltip2; + + + @CN("微生物的生长符合逻辑斯蒂方程,当输入仓内液体体积为容量的一半时,§2生长效率达到两倍§r,而满仓和空仓时生长效率最低,保底为20%") + @EN("Microbial growth follows the logistic equation. When the liquid volume in the input tank is half of its capacity, §2growth efficiency doubles§r. Efficiency is lowest when the tank is full or empty, with a minimum of 20%.") + public static Lang fermentingTankTooltip3; + + + @Key("ctnh.multiblock.hybrid_mixer.tooltip.0") + @CN("动力学的电力复兴") + @EN("Kinetic-Electric Renaissance") + public static Lang hybridMixerTooltip0; + + + @Key("ctnh.multiblock.hybrid_mixer.tooltip.1") + @CN("执行特殊的电压-应力驱动机制") + @EN("Uses a special voltage-stress drive mechanism") + public static Lang hybridMixerTooltip1; + + + @Key("ctnh.multiblock.hybrid_mixer.tooltip.2") + @CN("机器真实电压等级为配方电压等级和应力等级的较小值。应力输入仓要求转速至少为64,应力输入仓转速为256时,应力等级+1") + @EN("The machine's actual voltage tier is the lower of the recipe voltage tier and stress tier. Stress input hatches require at least 64 RPM; at 256 RPM, the stress tier increases by 1") + public static Lang hybridMixerTooltip2; + + + @Key("ctnh.multiblock.hybrid_mixer.tooltip.3") + @CN("混合动力超频:应力等级和配方电压等级每同时提升一级,运行速度*4") + @EN("Hybrid overclocking: each time both stress tier and recipe voltage tier increase by one, processing speed ×4") + public static Lang hybridMixerTooltip3; + + + @Key("ctnh.multiblock.hybrid_mixer.tooltip.4") + @CN("当转速超过64时,使配方时间*0.8。转速超过128时配方时间和电压速度将随着转速提升进一步减少") + @EN("Above 64 RPM, recipe time ×0.8. Above 128 RPM, recipe time and voltage speed decrease further as RPM increases") + public static Lang hybridMixerTooltip4; + + + @Key("ctnh.multiblock.industrial_altar.info.current_lp") + @CN("当前含有lp量:%d") + @EN("Current LP amount: %d") + public static Lang industrialAltarInfoCurrentLp; + + + @Key("ctnh.multiblock.industrial_altar.info.max_lp") + @CN("最大lp量:%d") + @EN("Max LP amount: %d") + public static Lang industrialAltarInfoMaxLp; + + + @CN("更强大的土高炉,你的炼钢好帮手") + @EN("A more powerful primitive blast furnace, your best helper for steelmaking") + public static Lang industrialPrimitiveBlastFurnaceTooltip0; + + + @CN("工业土高炉在持续运行配方时,会不断升温,而一旦中止,则会迅速冷却") + @EN("The industrial primitive blast furnace will continuously heat up while running a recipe, and will cool down rapidly once the process is stopped") + public static Lang industrialPrimitiveBlastFurnaceTooltip1; + + + @CN("温度越高,工业土高炉的并行数越高,最高为8并行") + @EN("The higher the temperature, the higher the parallelism of the industrial primitive blast furnace, up to a maximum of 8 parallelism") + public static Lang industrialPrimitiveBlastFurnaceTooltip2; + + + @CN("温度越高,工业土高炉的效率越高,最高为两倍效率") + @EN("The higher the temperature, the higher the efficiency of the industrial primitive blast furnace, up to a maximum of double efficiency") + public static Lang industrialPrimitiveBlastFurnaceTooltip3; + + + @CN("离子交换") + @EN("Ion Exchange") + public static Lang ionExchangerTooltip0; + + + @CN("真是一个大罐子") + @EN("This is truly a large container.") + public static Lang largeBottleTooltip0; + + + @CN("可以存储10000桶液体") + @EN("Can store up to 10,000 buckets of liquid.") + public static Lang largeBottleTooltip1; + + + @CN("与大型发酵罐一起使用时,其中的液体会以§e100mb/s§r的速度消耗") + @EN("When used with a large fermenting tank, its liquid will be consumed at a rate of §e100mb/s§r.") + public static Lang largeBottleTooltip2; + + + @CN("高效工业化发酵生产") + @EN("Efficient Industrial Fermentation") + public static Lang largeFermentingTankTooltip0; + + + @CN("可接入附属结构,在对应位置连接上一个大发酵瓶后,可以根据发酵瓶中的液体种类提升保底效率:水(50%),简易培养基(150%),无菌培养基(200%)") + @EN("Can connect auxiliary structures. By attaching a large fermentation bottle with a specific liquid type, the minimum efficiency increases: Water (50%), Basic Medium (150%), Sterile Medium (200%).") + public static Lang largeFermentingTankTooltip1; + + + @CN("全维度集气") + @EN("Dimensional Gas Collection Chamber") + public static Lang largeGasCollectionChamberTooltip0; + + + @CN("这台机器可以收集任意维度的气体") + @EN("This machine can collect gases from any dimension") + public static Lang largeGasCollectionChamberTooltip1; + + + @CN("由于它的产量较大,建议你用ME输出总成来收集产物") + @EN("Since its output is large, it is recommended to use an ME Output Assembly to collect the products") + public static Lang largeGasCollectionChamberTooltip2; + + + @Key("ctnh.multiblock.large_miner_zpm.tooltip.0") + @CN("听说你很担心矿物的来源?") + @EN("Heard you're worried about the source of minerals?") + public static Lang largeMinerZpmTooltip0; + + + @CN("钢质合金炉") + @EN("Steel Alloy Furnace") + public static Lang largeSteelAlloyFurnaceTooltip0; + + + @CN("钢质熔炉") + @EN("Steel Furnace") + public static Lang largeSteelFurnaceTooltip0; + + + @Key("ctnh.multiblock.lasersorter.recipe.cwut") + @CN("所需的基础算力:%d") + @EN("Required base computation: %d") + public static Lang lasersorterRecipeCwut; + + + @Key("ctnh.multiblock.magic_fuel_generator.tip") + @CN("精炼天地之魔精") + @EN("Refined Essence of Heaven and Earth") + public static Lang magicFuelGeneratorTip; + + + @Key("ctnh.multiblock.mana_reactor.tooltip.0") + @CN("工业魔力奠基者") + @EN("Industrial Mana Foundation") + public static Lang manaReactorTooltip0; + + + @Key("ctnh.multiblock.mana_reactor.tooltip.1") + @CN("允许使用并行控制仓") + @EN("Allows parallel control hatches") + public static Lang manaReactorTooltip1; + + + @Key("ctnh.multiblock.mana_turbine.info.consumption_rate") + @CN("消耗速率:%d") + @EN("Consumption Rate:%d") + public static Lang manaTurbineInfoConsumptionRate; + + + @Key("ctnh.multiblock.mana_turbine.info.efficiency") + @CN("发电效率:%d%%") + @EN("Generating Efficiency:%d%%") + public static Lang manaTurbineInfoEfficiency; + + + @CN("丐版鸿蒙之眼") + @EN("Poor version of the Primordial Eye") + public static Lang martialMoralityEyeTooltip0; + + + @CN("原始时代时消耗64000mb的蒸汽和64个原石") + @EN("Consumes 64000mb of steam and 64 raw stones in the early stages") + public static Lang martialMoralityEyeTooltip1; + + + @CN("产出主世界和暮色森林以及月球的矿") + @EN("Produces ores from the Overworld, Twilight Forest, and the Moon") + public static Lang martialMoralityEyeTooltip2; + + + @CN("随着电压等级提高能够解锁更多配方") + @EN("Unlocks more recipes as the voltage level increases") + public static Lang martialMoralityEyeTooltip3; + + + @CN("在前期比坠星好用") + @EN("More useful than falling stars in the early stages") + public static Lang martialMoralityEyeTooltip4; + + + @CN("结构中心似乎存在着神秘力量,充满危险的气息,请远离!") + @EN("The center of the structure seems to emanate a mysterious force, filled with an aura of danger. Stay away!") + public static Lang martialMoralityEyeTooltip5; + + + @CN("结构来源:Twist Space Technology") + @EN("Structure source: Twist Space Technology") + public static Lang martialMoralityEyeTooltip6; + + + @CN("§7自动化放牧") + @EN("§7Automated Grazing") + public static Lang meadowTooltip0; + + + @CN("输入配方所需n倍应力时,获得n并行") + @EN("Gains n parallel processing when provided with n× the required stress.") + public static Lang meadowTooltip1; + + + @CN("可以同时养殖不同动物") + @EN("Allows breeding of different animals at the same time.") + public static Lang meadowTooltip2; + + + @CN("§7只有动物跑出去时,你才知道你不是在种菜!") + @EN("§7Only when the animals run away will you realize that you are not growing crops!") + public static Lang meadowTooltip3; + + + @Key("ctnh.multiblock.mega_lcr.info.coil") + @CN("当前线圈温度:%s") + @EN("Current Coil Temperature: %s") + public static Lang megaLcrInfoCoil; + + + @Key("ctnh.multiblock.mega_lcr.info.speed") + @CN("当前配方时间倍率:%s") + @EN("Current Recipe Time Multiplier: %s") + public static Lang megaLcrInfoSpeed; + + + @CN("§b具有4个异步线程§r") + @EN("§bHas 4 asynchronous threads§r") + public static Lang megaLcrTooltip0; + + + @CN("使用§d异步线程控制仓§r以配置多线程运行模式") + @EN("Use §dAsynchronous Thread Control Hatches§r to configure multithreaded operation") + public static Lang megaLcrTooltip1; + + + @Key("ctnh.multiblock.meteor_capturer.tooltip.0") + @CN("§8为什么陨石总能落在陨石坑里?§r\n该机器无法超频") + @EN("§8Why do meteors always land in meteor craters?§r\nThis machine cannot be overclocked") + public static Lang meteorCapturerTooltip0; + + + @Key("ctnh.multiblock.meteor_capturer.tooltip.1") + @CN("消耗少量引物和大量的生命源质,从外太空拉取满是矿石的陨石。") + @EN("Consumes a small amount of primer and a large amount of Life Essence to pull ore-rich meteors from outer space.") + public static Lang meteorCapturerTooltip1; + + + @Key("ctnh.multiblock.meteor_capturer.tooltip.2") + @CN("配方需要大量的输入输出空间,建议使用高级输入总成。") + @EN("Recipes require a large amount of input/output space; Advanced Input Hatches are recommended.") + public static Lang meteorCapturerTooltip2; + + + @Key("ctnh.multiblock.meteor_capturer.tooltip.3") + @CN("陨石会在多方块结构上方的空腔内生成(真的)。不要在里面放置人或设备。") + @EN("Meteors generate in the cavity above the multiblock structure (really). Do not place people or equipment inside.") + public static Lang meteorCapturerTooltip3; + + + @Key("ctnh.multiblock.meteor_capturer.tooltip.4") + @CN("半径大于13的配方会破坏多方块结构(不存在这种配方)。") + @EN("Recipes with a radius greater than 13 will destroy the multiblock structure (no such recipes exist).") + public static Lang meteorCapturerTooltip4; + + + @CN("浩瀚能量,天地震动") + @EN("Vast energy, the earth trembles") + public static Lang naqReactorMk3Tooltip1; + + + @CN("利用超能燃料进行发电,无镍等离子体时无法完全消耗燃料") + @EN("Generates power using supercharged fuel - cannot fully consume fuel without nickel plasma") + public static Lang naqReactorMk3Tooltip2; + + + @CN("机器构型中必须有一个动力仓") + @EN("A power core must be present in the machine configuration") + public static Lang naqReactorMk3Tooltip3; + + + @CN("随着内核温度上升,发电效率增大") + @EN("As the core temperature increases, power generation efficiency improves") + public static Lang naqReactorMk3Tooltip4; + + + @CN("简易太阳能发电") + @EN("Basic Solar Power Generation") + public static Lang photovoltaicPowerStationEnergeticTooltip0; + + + @CN("§e基础产能功率:§r512 EU/t") + @EN("§eBase Output:§r 512 EU/t") + public static Lang photovoltaicPowerStationEnergeticTooltip1; + + + @CN("只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率") + @EN("Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld") + public static Lang photovoltaicPowerStationEnergeticTooltip2; + + + @CN("高效太阳能发电") + @EN("Advanced Solar Power Generation") + public static Lang photovoltaicPowerStationPulsatingTooltip0; + + + @CN("§e基础产能功率:§r2048 EU/t") + @EN("§eBase Output:§r 2048 EU/t") + public static Lang photovoltaicPowerStationPulsatingTooltip1; + + + @CN("只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率") + @EN("Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld") + public static Lang photovoltaicPowerStationPulsatingTooltip2; + + + @CN("究极太阳能发电") + @EN("Ultimate Solar Power Generation") + public static Lang photovoltaicPowerStationVibrantTooltip0; + + + @CN("§e基础产能功率:§r8192 EU/t") + @EN("§eBase Output:§r 8192 EU/t") + public static Lang photovoltaicPowerStationVibrantTooltip1; + + + @CN("只在白天工作,不同维度会对太阳能发电的效率产生影响,基础产能功率为在主世界正午的功率") + @EN("Operates only during daytime. Efficiency varies across dimensions. Base output reflects noon in the Overworld") + public static Lang photovoltaicPowerStationVibrantTooltip2; + + + @CN("氤氲之气,凝为霜露") + @EN("The dense air condenses into frost and dew") + public static Lang plasmaCondenserTooltip1; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.0") + @CN("§9魔力§r的§c终极奥秘§r,足以制造§5类星体§r的装置掌握在§6你§r的手中") + @EN("§9Mana's§r §cUltimate Mystery§r, a device capable of creating §5quasars§r now rests in §6your§r hands") + public static Lang quasarEyeTooltip0; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.1") + @CN("该机器启动需要§r初始魔力燃料消耗§R,查阅EMI以查找消耗量") + @EN("Machine activation requires §rinitial mana fuel consumption§R; consult EMI for the exact amount") + public static Lang quasarEyeTooltip1; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.10") + @CN("在创生模式下释放所有积累的电量,使用高级燃料可以使输出获得倍乘。同时每积累1000E EU就额外产出一份气体产出,积累电量小于1E时无法启动创生模式") + @EN("In Creation Mode, release all accumulated power. Advanced fuels multiply the output. Every 1000E EU accumulated produces one additional gas output; Creation Mode cannot start with less than 1E stored power") + public static Lang quasarEyeTooltip10; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.11") + @CN("§b好消息§r:这个机器不会爆炸,§c但我不保证未来它不会爆炸!§r") + @EN("§bGood news§r: this machine will not explode, §cbut I cannot guarantee it will not explode in the future!§r") + public static Lang quasarEyeTooltip11; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.2") + @CN("在能量等级高时启动能量等级低的配方§b不需要启动花费§r") + @EN("Activating lower-tier recipes at high energy tiers §bdoes not require an activation cost§r") + public static Lang quasarEyeTooltip2; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.3") + @CN("§5符文能量§r控制着输出的强度,输入§b五级符文§r来增强符文能量,以加强你的输出,使用§5类星体符文§r产生大量符文能量") + @EN("§5Rune Energy§r governs output strength. Input §bTier V Runes§r to increase rune energy and strengthen your output; use §5Quasar Runes§r to generate massive amounts of rune energy") + public static Lang quasarEyeTooltip3; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.4") + @CN("该机器获取符文能量逻辑为:在§5每次配方运行前§r读取并消耗每类可消耗符文§c最多各一个§r") + @EN("Rune energy is acquired as follows: §5before each recipe operation§r, read and consume §cat most one§r of each consumable rune type") + public static Lang quasarEyeTooltip4; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.5") + @CN("§c注意§r:符文能量越高,其消耗速度就§c越快§r,且符文能量低于50时§c效率将会减半!§r") + @EN("§cWarning§r: the higher the rune energy, the §cfaster§r it is consumed; when rune energy is below 50, §cefficiency is halved!§r") + public static Lang quasarEyeTooltip5; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.6") + @CN("该机器能量效率为log((符文能量)/50)+1,最大能量效率为(1+能量等级)") + @EN("Energy efficiency is log((rune energy) / 50) + 1, with a maximum of (1 + energy tier)") + public static Lang quasarEyeTooltip6; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.7") + @CN("该机器拥有时间并行,消耗量和持续时间均会乘上并行数,且并行数为效率*5") + @EN("The machine has time parallelism: consumption and duration are multiplied by parallelism, and parallelism equals efficiency × 5") + public static Lang quasarEyeTooltip7; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.8") + @CN("该机器燃料消耗量为1-0.05*Math.max((rune_energy-50)/50,0.75)") + @EN("Fuel consumption is 1 - 0.05 * Math.max((rune_energy - 50) / 50, 0.75)") + public static Lang quasarEyeTooltip8; + + + @Key("ctnh.multiblock.quasar_eye.tooltip.9") + @CN("在普通模式下发电时积将发电量的1%积累入类星体之眼之中,你每有25符文能量,就可以额外积累1%") + @EN("In normal mode, 1% of generated power is accumulated in the Quasar Eye; every 25 rune energy grants an additional 1% accumulation") + public static Lang quasarEyeTooltip9; + + + @CN("需要通入8192应力使其内部活塞压实待加工料") + @EN("Requires 8,192 Stress to activate internal pistons for compacting materials") + public static Lang sinteringKilnTooltip0; + + + @CN("无情的杀戮机器") + @EN("A merciless killing machine") + public static Lang slaughterHouseTooltip0; + + + @CN("输入总线放入电动刷怪笼后,机器会自动输出对应怪物的战利品,可放入多个电动刷怪笼") + @EN("When powered spawners are placed in the input bus, the machine will automatically output corresponding mob drops. Multiple powered spawners can be inserted") + public static Lang slaughterHouseTooltip1; + + + @CN("电压每升高1级,虚拟刷怪量会增加4(HV为4)") + @EN("Each voltage tier increase adds +4 to virtual spawn count (HV provides 4)") + public static Lang slaughterHouseTooltip2; + + + @CN("怪物血量和护甲值越高,配方运行所需时间越长") + @EN("Higher mob health and armor values will increase processing time") + public static Lang slaughterHouseTooltip3; + + + @CN("武器的伤害和附魔会减少配方运行的时间") + @EN("Weapon damage and enchantments will reduce processing time") + public static Lang slaughterHouseTooltip4; + + + @CN("时运等附魔也能生效") + @EN("Fortune and other enchantments also take effect") + public static Lang slaughterHouseTooltip5; + + + @CN("所有配方速度提高50%!") + @EN("All recipes are 50% faster!") + public static Lang superEbfTooltip0; + + + @CN("生产资料与剩余价值") + @EN("Means of Production and Surplus Value") + public static Lang sweatShopTooltip0; + + + @CN("工厂内的村民数量决定了工作效率,配方耗时x(2/村民数量)") + @EN("The number of villagers in the factory determines efficiency. Recipe time x (2 / number of villagers)") + public static Lang sweatShopTooltip1; + + + @CN("工厂内的有效员工数量受限于工厂大小,初始上限为4,工厂长度每增加4格上限+1") + @EN("The effective number of workers in the factory is limited by the factory size. Initial limit: 4 workers; for every 4 blocks added to the factory length, the limit increases by 1.") + public static Lang sweatShopTooltip2; + + + @CN("放入的生产资料(机器)决定了可以工作的配方:\n动力辊压机----卷板机配方\n动力搅拌机----搅拌机配方\n车床----车床配方\n离心机----离心机配方\n烈焰人燃烧室----提取机配方\n工作盆----流体成型配方\n粉碎轮----研磨机配方\n动力锯----线材轧机配方\n激光加工器----激光蚀刻配方\n==============================") + @EN("The production materials (machines) placed determine the available recipes:\nPowered Rolling Machine ---- Rolling Mill Recipes\nPowered Mixer ---- Mixer Recipes\nLathe ---- Lathe Recipes\nCentrifuge ---- Centrifuge Recipes\nBlaze Burner ---- Extractor Recipes\nWork Basin ---- Fluid Forming Recipes\nCrushing Wheel ---- Grinder Recipes\nPowered Saw ---- Wire Rolling Machine Recipes\nLaser Processor ---- Laser Etching Recipes\n==============================") + public static Lang sweatShopTooltip3; + + + @CN("放入的生产资料(机器)数量决定了对应工作配方的并行数:并行数 = sqrt(机器数)") + @EN("The number of production materials (machines) placed determines the parallelism of corresponding recipes: Parallelism = sqrt(number of machines)") + public static Lang sweatShopTooltip4; + + + @CN("放入机械手可以提高整体配方运行速度,配方耗时x (1/1 + 0.25 * sqrt(机械手数))") + @EN("Adding robotic arms improves the overall recipe execution speed. Recipe time x (1 / 1 + 0.25 * sqrt(number of robotic arms))") + public static Lang sweatShopTooltip5; + + + @CN("放入机器的多样性会提高配方运行速度") + @EN("The diversity of machines placed improves recipe execution speed.") + public static Lang sweatShopTooltip6; + + + @CN("基础配方耗时为2倍,配方所需的电压等级越高,基础耗时x(配方等级的平方)") + @EN("The base recipe time is 2x. The higher the recipe voltage tier, the more the base time is multiplied by the square of the recipe tier.") + public static Lang sweatShopTooltip7; + + + @CN("每5秒机器会消耗(员工数量)份简易营养餐") + @EN("Every 5 seconds, the machine consumes (number of employees) servings of Simple Worker Meals.") + public static Lang sweatShopTooltip8; + + + @CN("用蒸汽温暖你的心") + @EN("Warm your heart with steam") + public static Lang underfloorHeatingSystemTooltip0; + + + @CN("地暖系统依靠蒸汽供暖,占地一个区块,能对§a周围5*5的区块§r产生供暖,供暖只会在地暖上方十格内生效") + @EN("The underfloor heating system uses steam for heating. Occupying one chunk, it can heat §aa 5×5 chunk area§r around it. Heating only works within 10 blocks above the system") + public static Lang underfloorHeatingSystemTooltip1; + + + @CN("铜砖瓦会生锈,生锈后地暖系统的供暖能力会减弱") + @EN("Copper brick tiles will rust over time, reducing the heating efficiency of the system when rusted") + public static Lang underfloorHeatingSystemTooltip2; + + + @CN("可以调节速率,以降低供暖功率并减少蒸汽消耗,最低降至25%") + @EN("Adjustable rate allows reducing heating power and steam consumption, with minimum setting at 25%") + public static Lang underfloorHeatingSystemTooltip3; + + + @CN("真空烧结") + @EN("Vacuum Sintering") + public static Lang vacuumSinteringTowerTooltip0; + + + @CN("取天材,掘地精") + @EN("Harvesting heaven's materials, digging the earth's essence") + public static Lang voidMinerTooltip0; + + + @CN("虚空采矿场自动生成并提取矿石") + @EN("The Void Miner automatically generates and extracts ores") + public static Lang voidMinerTooltip1; + + + @CN("如果你对矿物需求极大,虚空采矿机是必不可少的帮手") + @EN("If you have a huge demand for minerals, the Void Miner is an essential helper") + public static Lang voidMinerTooltip2; + + + @CN("每次工作消耗100,000B钻井液,升降温度时消耗极寒之凛冰和烈焰之炽焱") + @EN("Each operation consumes 100,000 B of drilling fluid; Cryotheum and Pyrotheum are consumed when adjusting temperature") + public static Lang voidMinerTooltip3; + + + @CN("在奇数次运行前,机器会试图消耗烈焰之炽焱来升温。初始烈焰之炽焱消耗量为1000mb,若成功消耗,则温度将会增加 ⌊(消耗量 ÷ 100)⌋,接着消耗量将会自乘以 1.02") + @EN("Before odd-numbered operations, the machine attempts to consume Pyrotheum to raise the temperature. Initial consumption is 1000 mB; if successful, the temperature increases by floor(consumption / 100), then consumption is multiplied by 1.02.") + public static Lang voidMinerTooltip4; + + + @CN("在偶数次运行前,机器会试图消耗极寒之凛冰来降温。初始极寒之凛冰消耗量为1000mb,若成功消耗,则温度将会降低 ⌊(消耗量 ÷ 100)⌋,接着消耗量将会自乘以 1.02") + @EN("Before even-numbered operations, the machine attempts to consume Cryotheum to lower the temperature. Initial consumption is 1000 mB; if successful, the temperature decreases by floor(consumption / 100), then consumption is multiplied by 1.02.") + public static Lang voidMinerTooltip5; + + + @CN("温度越高,虚空采矿场的产出倍率越高") + @EN("The higher the temperature, the higher the Void Miner's output multiplier") + public static Lang voidMinerTooltip6; + + + @CN("当温度达到25000K时,虚空采矿机将进入强制降温模式,直至温度降至0K时,恢复正常工作模式") + @EN("At 25,000 K, the Void Miner enters forced cooling mode until the temperature reaches 0 K, then resumes normal operation.") + public static Lang voidMinerTooltip7; + + + @CN("请交替输入烈焰之炽焱和极寒之凛冰来控制温度") + @EN("Alternate Pyrotheum and Cryotheum inputs to control the temperature.") + public static Lang voidMinerTooltip8; + + + @Key("ctnh.multiblock.water_power_station.info.0") + @CN("水量:%d") + @EN("Water Flow: %d") + public static Lang waterPowerStationInfo0; + + + @Key("ctnh.multiblock.water_power_station.info.1") + @CN("线圈效率:%d%%") + @EN("Coil Efficiency: %d%%") + public static Lang waterPowerStationInfo1; + + + @Key("ctnh.multiblock.water_power_station.info.2") + @CN("产能功率:%d/%d EU/t") + @EN("Power Output: %d/%d EU/t") + public static Lang waterPowerStationInfo2; + + + @Key("ctnh.multiblock.water_power_station.tooltip.0") + @CN("环保能源!") + @EN("Eco-Friendly Energy!") + public static Lang waterPowerStationTooltip0; + + + @Key("ctnh.multiblock.water_power_station.tooltip.1") + @CN("发电量和以控制器为中心,机器长度为半径,高为4的范围内的水量成正比") + @EN("Power generation is proportional to the amount of water within a radius equal to the machine length and height of 4, centered on the controller.") + public static Lang waterPowerStationTooltip1; + + + @Key("ctnh.multiblock.water_power_station.tooltip.2") + @CN("发电量随机在0.6至1的倍率间波动") + @EN("Power output fluctuates randomly between a multiplier of 0.6 to 1.") + public static Lang waterPowerStationTooltip2; + + + @Key("ctnh.multiblock.zenith_machine.info.max_parallel") + @CN("最大并行数:%d") + @EN("Max Parallels:%d") + public static Lang zenithMachineInfoMaxParallel; + + + @Key("ctnh.multiblock.zenith_machine.info.now_parallel") + @CN("当前并行数:%d") + @EN("Now Parallels:%d") + public static Lang zenithMachineInfoNowParallel; + + + @CN("普通离心机模式下会获得8并行") + @EN("Provides 8 parallel operations in normal centrifuge mode") + public static Lang superCentrifugeParallel; + + + @Key("gtceu.astronomical_observatory") + @CN("天文台") + @EN("Astronomical Observatory") + public static Lang gtceuAstronomicalObservatory; + + + @Key("gtceu.bedrock_drilling_rigs") + @CN("基岩钻机") + @EN("Bedrock Drilling Rigs") + public static Lang gtceuBedrockDrillingRigs; + + + @Key("gtceu.big_dam") + @CN("大坝") + @EN("Big Dam") + public static Lang gtceuBigDam; + + + @Key("gtceu.coke_oven") + @CN("焦炉") + @EN("Coke Oven") + public static Lang gtceuCokeOven; + + + @Key("gtceu.naq_mk1") + @CN("超级燃料") + @EN("Super Fuel") + public static Lang gtceuNaqMk1; + + + @Key("gtceu.photovoltaic_power") + @CN("光伏发电") + @EN("Photovoltaic Powering") + public static Lang gtceuPhotovoltaicPower; + + + @Key("gtceu.plasma_condenser") + @CN("等离子冷凝") + @EN("Plasma Condensation") + public static Lang gtceuPlasmaCondenser; + + + @Key("gtceu.slaughter_house") + @CN("屠宰场") + @EN("Slaughter House") + public static Lang gtceuSlaughterHouse; + + + @Key("gtceu.underfloor_heating_system") + @CN("地暖") + @EN("Underfloor Heating") + public static Lang gtceuUnderfloorHeatingSystem; + + + @CN("超速离心") + @EN("Super Centrifuge") + public static Lang superCentrifuge; + + + @CN("超声破碎") + @EN("Ultrasonic Disruptor") + public static Lang ultrasonicApparatus; + + + @Key("zenith_machine_sp") + @CN("§5灵能灯塔屹立不倒!") + @EN("§5The Psionic Beacon Stands Unyielding!") + public static Lang zenithMachineSp; + + public static void init(){} public static final MultiblockMachineDefinition UNDERFLOOR_HEATING_SYSTEM = REGISTRATE.multiblock("underfloor_heating_system", UnderfloorHeatingMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.UNDERFLOOR_HEATING_SYSTEM) - .tooltips(Component.translatable("ctnh.multiblock.underfloor_heating_system.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.underfloor_heating_system.tooltip.1"), - Component.translatable("ctnh.multiblock.underfloor_heating_system.tooltip.2"), - Component.translatable("ctnh.multiblock.underfloor_heating_system.tooltip.3")) + .tooltips(underfloorHeatingSystemTooltip0.translate().withStyle(ChatFormatting.GRAY), + underfloorHeatingSystemTooltip1.translate(), + underfloorHeatingSystemTooltip2.translate(), + underfloorHeatingSystemTooltip3.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("AAAAAAAAAAAAAAAA") .aisle("AAAAAAAABAAAAAAA") @@ -166,8 +1150,8 @@ public static void init(){} public static final MultiblockMachineDefinition ASTRONOMICAL_OBSERVATORY = REGISTRATE.multiblock("astronomical_observatory", AstronomicalMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.ASTRONOMICAL_OBSERVATORY) - .tooltips(Component.translatable("ctnh.multiblock.astronomical.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.astronomical.tooltip.1")) + .tooltips(astronomicalTooltip0.translate().withStyle(ChatFormatting.GRAY), + astronomicalTooltip1.translate()) .appearanceBlock(CASING_STAINLESS_CLEAN) .pattern(definition -> FactoryBlockPattern.start() .aisle(" BBB ", " BBB ", " BBB ", " BBB ", " BBB ", " RDR ", " ", " ", " ") @@ -201,12 +1185,36 @@ public static void init(){} public static final MultiblockMachineDefinition PHOTOVOLTAIC_POWER_STATION_VIBRANT = registerPhotovoltaicPowerStation("vibrant", 16, CTNHBlocks.VIBRANT_PHOTOVOLTAIC_BLOCK); + private static Lang photovoltaicPowerStationTooltip(String tier, int index) { + return switch (tier) { + case "energetic" -> switch (index) { + case 0 -> photovoltaicPowerStationEnergeticTooltip0; + case 1 -> photovoltaicPowerStationEnergeticTooltip1; + case 2 -> photovoltaicPowerStationEnergeticTooltip2; + default -> throw new IllegalArgumentException("Unsupported photovoltaic tooltip index: " + index); + }; + case "pulsating" -> switch (index) { + case 0 -> photovoltaicPowerStationPulsatingTooltip0; + case 1 -> photovoltaicPowerStationPulsatingTooltip1; + case 2 -> photovoltaicPowerStationPulsatingTooltip2; + default -> throw new IllegalArgumentException("Unsupported photovoltaic tooltip index: " + index); + }; + case "vibrant" -> switch (index) { + case 0 -> photovoltaicPowerStationVibrantTooltip0; + case 1 -> photovoltaicPowerStationVibrantTooltip1; + case 2 -> photovoltaicPowerStationVibrantTooltip2; + default -> throw new IllegalArgumentException("Unsupported photovoltaic tooltip index: " + index); + }; + default -> throw new IllegalArgumentException("Unsupported photovoltaic power station tier: " + tier); + }; + } + public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(String tier, int basicRate, BlockEntry photovoltaicBlock) { return REGISTRATE.multiblock("photovoltaic_power_station_" + tier, holder -> new PhotovoltaicPowerStationMachine(holder, basicRate)) .rotationState(RotationState.NON_Y_AXIS) - .tooltips(Component.translatable("ctnh.multiblock.photovoltaic_power_station_" + tier + ".tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.photovoltaic_power_station_" + tier + ".tooltip.1"), - Component.translatable("ctnh.multiblock.photovoltaic_power_station_" + tier + ".tooltip.2")) + .tooltips(photovoltaicPowerStationTooltip(tier, 0).translate().withStyle(ChatFormatting.GRAY), + photovoltaicPowerStationTooltip(tier, 1).translate(), + photovoltaicPowerStationTooltip(tier, 2).translate()) .appearanceBlock(CTNHBlocks.CASING_REFLECT_LIGHT) .allowExtendedFacing(false) .allowFlip(false) @@ -247,12 +1255,12 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin public static final MultiblockMachineDefinition SLAUGHTER_HOUSE = REGISTRATE.multiblock("slaughter_house", SlaughterHouseMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.SLAUGHTER_HOUSE) - .tooltips(Component.translatable("ctnh.multiblock.slaughter_house.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.slaughter_house.tooltip.1"), - Component.translatable("ctnh.multiblock.slaughter_house.tooltip.2"), - Component.translatable("ctnh.multiblock.slaughter_house.tooltip.3").withStyle(ChatFormatting.RED), - Component.translatable("ctnh.multiblock.slaughter_house.tooltip.4").withStyle(ChatFormatting.GREEN), - Component.translatable("ctnh.multiblock.slaughter_house.tooltip.5")) + .tooltips(slaughterHouseTooltip0.translate().withStyle(ChatFormatting.GRAY), + slaughterHouseTooltip1.translate(), + slaughterHouseTooltip2.translate(), + slaughterHouseTooltip3.translate().withStyle(ChatFormatting.RED), + slaughterHouseTooltip4.translate().withStyle(ChatFormatting.GREEN), + slaughterHouseTooltip5.translate()) .recipeModifiers(SlaughterHouseMachine::recipeModifier, GTRecipeModifiers.BATCH_MODE) .appearanceBlock(GTBlocks.CASING_STEEL_SOLID) .pattern(definition -> FactoryBlockPattern.start() @@ -277,8 +1285,8 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin public final static MultiblockMachineDefinition COKE_TOWER = REGISTRATE.multiblock("coke_tower", CoilWorkableElectricMultiblockMachine::new) .rotationState(RotationState.ALL) .recipeType(GTRecipeTypes.PYROLYSE_RECIPES) - .tooltips(Component.translatable("ctnh.multiblock.coke_tower.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.coke_tower.tooltip.1")) + .tooltips(cokeTowerTooltip0.translate().withStyle(ChatFormatting.GRAY), + cokeTowerTooltip1.translate()) .recipeModifiers(GTRecipeModifiers::multiSmelterParallel, BATCH_MODE) .appearanceBlock(GTBlocks.CASING_STAINLESS_CLEAN) .pattern(definition -> FactoryBlockPattern.start() @@ -312,7 +1320,7 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin .rotationState(RotationState.ALL) .recipeType(CTNHRecipeTypes.BEDROCK_DRILLING_RIGS) .recipeModifiers(GTRecipeModifiers.PARALLEL_HATCH) - .tooltips(Component.translatable("gtceu.multiblock.laser.tooltip")) + .tooltips(CTNHCommonTooltips.gtceuMultiblockLaserTooltip.translate()) .tooltips(Component.translatable("gtceu.multiblock.parallelizable.tooltip")) .appearanceBlock(CTNHBlocks.CASING_TUNGSTENCU_DIAMOND_PLATING) .pattern(definition -> FactoryBlockPattern.start() @@ -342,11 +1350,11 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin .recipeTypes(CTNHRecipeTypes.NAQ_MK1) .generator(true) .recipeModifier(NaqReactorMachine::recipeModifier, true) - .tooltips(Component.translatable("ctnh.multiblock.naq_reactor_mk3.tooltip.1").withStyle(ChatFormatting.GRAY)) - .tooltips(Component.translatable("ctnh.multiblock.naq_reactor_mk3.tooltip.2")) - .tooltips(Component.translatable("ctnh.multiblock.naq_reactor_mk3.tooltip.3")) - .tooltips(Component.translatable("ctnh.multiblock.naq_reactor_mk3.tooltip.4")) - .tooltips(Component.translatable("gtceu.multiblock.laser.tooltip")) + .tooltips(naqReactorMk3Tooltip1.translate().withStyle(ChatFormatting.GRAY)) + .tooltips(naqReactorMk3Tooltip2.translate()) + .tooltips(naqReactorMk3Tooltip3.translate()) + .tooltips(naqReactorMk3Tooltip4.translate()) + .tooltips(CTNHCommonTooltips.gtceuMultiblockLaserTooltip.translate()) .appearanceBlock(CTNHBlocks.CASING_NAQUADAH_ALLOY_BLOCK) .pattern(definition -> FactoryBlockPattern.start() .aisle(" BBBBBBB ", " CDC ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " CDC ", " BBBBBBB ") @@ -402,7 +1410,7 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin Component.translatable("gtceu.machine.fusion_reactor.capacity", FusionReactorMachine.calculateEnergyStorageFactor(tier, 16) / 1000000L), Component.translatable("gtceu.machine.fusion_reactor.overclocking")) - .tooltips(Component.translatable("gtceu.multiblock.laser.tooltip")) + .tooltips(CTNHCommonTooltips.gtceuMultiblockLaserTooltip.translate()) .tooltips(Component.translatable("gtceu.multiblock.parallelizable.tooltip")) .appearanceBlock(() -> CTNHFusionCasingType.getCasingState(tier)) @@ -478,15 +1486,15 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin GTRecipeTypes.MACERATOR_RECIPES, GTRecipeTypes.MIXER_RECIPES, GTRecipeTypes.EXTRACTOR_RECIPES, GTRecipeTypes.WIREMILL_RECIPES, GTRecipeTypes.LASER_ENGRAVER_RECIPES, GTRecipeTypes.FLUID_SOLIDFICATION_RECIPES) .recipeModifiers(FactoryMachine::recipeModifier, OC_NON_PERFECT, BATCH_MODE) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.0").withStyle(ChatFormatting.GRAY)) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.1")) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.2")) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.3")) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.4")) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.5")) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.6")) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.7")) - .tooltips(Component.translatable("ctnh.multiblock.sweat_shop.tooltip.8")) + .tooltips(sweatShopTooltip0.translate().withStyle(ChatFormatting.GRAY)) + .tooltips(sweatShopTooltip1.translate()) + .tooltips(sweatShopTooltip2.translate()) + .tooltips(sweatShopTooltip3.translate()) + .tooltips(sweatShopTooltip4.translate()) + .tooltips(sweatShopTooltip5.translate()) + .tooltips(sweatShopTooltip6.translate()) + .tooltips(sweatShopTooltip7.translate()) + .tooltips(sweatShopTooltip8.translate()) .appearanceBlock(CASING_STEEL_SOLID) .pattern(definition -> FactoryBlockPattern.start(RelativeDirection.LEFT, RelativeDirection.UP, RelativeDirection.BACK) .aisle("aaaaa", "aadaa", "aaaaa", "aaaaa") @@ -508,8 +1516,8 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin .rotationState(RotationState.ALL) .recipeType(CTNHRecipeTypes.PLASMA_CONDENSER_RECIPES) .recipeModifiers(GTRecipeModifiers.PARALLEL_HATCH, OC_NON_PERFECT, BATCH_MODE) - .tooltips(Component.translatable("ctnh.multiblock.plasma_condenser.tooltip.1").withStyle(ChatFormatting.GRAY), - Component.translatable("gtceu.multiblock.laser.tooltip"), + .tooltips(plasmaCondenserTooltip1.translate().withStyle(ChatFormatting.GRAY), + CTNHCommonTooltips.gtceuMultiblockLaserTooltip.translate(), Component.translatable("gtceu.multiblock.parallelizable.tooltip")) .appearanceBlock(CTNHBlocks.CASING_ANTIFREEZE_HEATPROOF_MACHINE) .pattern(definition -> FactoryBlockPattern.start() @@ -547,10 +1555,10 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.MEADOW) .recipeModifier(RecipeModifier.NO_MODIFIER) - .tooltips(Component.translatable("ctnh.multiblock.meadow.tooltip.0"), - Component.translatable("ctnh.multiblock.meadow.tooltip.1"), - Component.translatable("ctnh.multiblock.meadow.tooltip.2"), - Component.translatable("ctnh.multiblock.meadow.tooltip.3") + .tooltips(meadowTooltip0.translate(), + meadowTooltip1.translate(), + meadowTooltip2.translate(), + meadowTooltip3.translate() ) .pattern(definition -> FactoryBlockPattern.start() .aisle("BBBBBBBBBBB", "JCCCJCCCCCC", "J###J######", "JJJJJD#####", "EEEEE######", "###########") @@ -586,9 +1594,9 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin public final static MultiblockMachineDefinition LARGE_BOTTLE = REGISTRATE.multiblock("large_bottle", holder -> new LargeBottleMachine(holder, 10000 * 1000, null)) .rotationState(RotationState.NON_Y_AXIS) .recipeType(DUMMY_RECIPES) - .tooltips(Component.translatable("ctnh.multiblock.large_bottle.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.large_bottle.tooltip.1"), - Component.translatable("ctnh.multiblock.large_bottle.tooltip.2")) + .tooltips(largeBottleTooltip0.translate().withStyle(ChatFormatting.GRAY), + largeBottleTooltip1.translate(), + largeBottleTooltip2.translate()) .appearanceBlock(GTBlocks.CASING_STEEL_SOLID) .pattern(definition -> FactoryBlockPattern.start() .aisle("##AAAAA##", "##BBBBB##", "##BBBBB##", "##BBBBB##", "##CCCCC##", "##BBBBB##", "##BBBBB##", "##BBBBB##", "#########", "#########", "#########", "#########", "#########", "#########", "#########") @@ -614,15 +1622,15 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin public final static MultiblockMachineDefinition FERMENTING_TANK = REGISTRATE.multiblock("fermenting_tank", FermentingTankMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.FERMENTING) - .tooltips(Component.translatable("ctnh.multiblock.fermenting_tank.tooltip.0").withStyle(ChatFormatting.GRAY), + .tooltips(fermentingTankTooltip0.translate().withStyle(ChatFormatting.GRAY), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.0"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.1"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.2"), CTNHCommonTooltips.SUBTICK_PARALLEL, Component.literal("=========================================================="), - Component.translatable("ctnh.multiblock.fermenting_tank.tooltip.1").withStyle(ChatFormatting.GREEN), - Component.translatable("ctnh.multiblock.fermenting_tank.tooltip.2"), - Component.translatable("ctnh.multiblock.fermenting_tank.tooltip.3")) + fermentingTankTooltip1.translate().withStyle(ChatFormatting.GREEN), + fermentingTankTooltip2.translate(), + fermentingTankTooltip3.translate()) .recipeModifiers(FermentingTankMachine::recipeModifier, GTRecipeModifiers::ebfOverclock) .appearanceBlock(GTBlocks.CASING_STEEL_SOLID) .pattern(definition -> FactoryBlockPattern.start() @@ -652,16 +1660,16 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin public final static MultiblockMachineDefinition LARGE_FERMENTING_TANK = REGISTRATE.multiblock("large_fermenting_tank", LargeFermentingTankMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.FERMENTING) - .tooltips(Component.translatable("ctnh.multiblock.large_fermenting_tank.tooltip.0").withStyle(ChatFormatting.GRAY), + .tooltips(largeFermentingTankTooltip0.translate().withStyle(ChatFormatting.GRAY), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.0"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.1"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.2"), CTNHCommonTooltips.SUBTICK_PARALLEL, Component.literal("=========================================================="), - Component.translatable("ctnh.multiblock.fermenting_tank.tooltip.1").withStyle(ChatFormatting.GREEN), - Component.translatable("ctnh.multiblock.fermenting_tank.tooltip.2"), - Component.translatable("ctnh.multiblock.fermenting_tank.tooltip.3"), - Component.translatable("ctnh.multiblock.large_fermenting_tank.tooltip.1")) + fermentingTankTooltip1.translate().withStyle(ChatFormatting.GREEN), + fermentingTankTooltip2.translate(), + fermentingTankTooltip3.translate(), + largeFermentingTankTooltip1.translate()) .recipeModifiers((machine, group, recipe) -> { var failure = FermentingTankMachine.recipeModifier(machine, group, recipe); return failure != null ? failure : CTNHRecipeModifiers.accurateParallel(machine, group, recipe, 8); @@ -698,9 +1706,9 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin public final static MultiblockMachineDefinition DIGESTION_TANK = REGISTRATE.multiblock("digestion_tank", DigestingTankMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.DIGESTING) - .tooltips(Component.translatable("ctnh.multiblock.digestion_tank.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.digestion_tank.tooltip.1").withStyle(ChatFormatting.GREEN), - Component.translatable("ctnh.multiblock.digestion_tank.tooltip.2")) + .tooltips(digestionTankTooltip0.translate().withStyle(ChatFormatting.GRAY), + digestionTankTooltip1.translate().withStyle(ChatFormatting.GREEN), + digestionTankTooltip2.translate()) .recipeModifiers(BioMachine::recipeModifier, OC_NON_PERFECT, BATCH_MODE) .pattern(definition -> FactoryBlockPattern.start() .aisle("CCCCC", "CAAAC", "CCCCC") @@ -724,10 +1732,10 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin .recipeType(GTRecipeTypes.BLAST_RECIPES) .recipeModifiers(BlazeBlastFurnaceMachine::recipeModifier, GTRecipeModifiers::ebfOverclock, BATCH_MODE) .appearanceBlock(CTNHBlocks.BLAZE_BLAST_FURNACE_CASING) - .tooltips(Component.translatable("ctnh.multiblock.blaze_blast_furnace.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.blaze_blast_furnace.tooltip.1"), - Component.translatable("ctnh.multiblock.blaze_blast_furnace.tooltip.2"), - Component.translatable("ctnh.multiblock.blaze_blast_furnace.tooltip.3").withStyle(ChatFormatting.DARK_GREEN), + .tooltips(blazeBlastFurnaceTooltip0.translate().withStyle(ChatFormatting.GRAY), + blazeBlastFurnaceTooltip1.translate(), + blazeBlastFurnaceTooltip2.translate(), + blazeBlastFurnaceTooltip3.translate().withStyle(ChatFormatting.DARK_GREEN), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.0"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.1"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.2")) @@ -783,7 +1791,7 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin .workableCasingModel(GTCEu.id("block/casings/solid/machine_casing_clean_stainless_steel"), CTNHCore.id("block/overlay/super_ebf")) .tooltips( CTNHCommonTooltips.PARALLEL_HATCH, - Component.translatable("ctnh.multiblock.super_ebf.tooltip.0") + superEbfTooltip0.translate() ) .additionalDisplay((controller, components) -> { if (controller instanceof CoilWorkableElectricMultiblockMachine coilMachine && controller.isFormed()) { @@ -871,8 +1879,8 @@ public static MultiblockMachineDefinition registerPhotovoltaicPowerStation(Strin CTNHCore.id("block/overlay/super_ebf")) .tooltips( CTNHCommonTooltips.PERFECT_OVERCLOCK, - Component.translatable("ctnh.multiblock.mega_lcr.tooltip.0"), - Component.translatable("ctnh.multiblock.mega_lcr.tooltip.1") + megaLcrTooltip0.translate(), + megaLcrTooltip1.translate() ) .register(); public static final MultiblockMachineDefinition IV_CHEMICAL_GENERATOR = registerChemicalGenerator( @@ -942,10 +1950,10 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, .rotationState(RotationState.NON_Y_AXIS) .recipeType(GTRecipeTypes.PRIMITIVE_BLAST_FURNACE_RECIPES) .appearanceBlock(CASING_PRIMITIVE_BRICKS) - .tooltips(Component.translatable("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.1"), - Component.translatable("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.2").withStyle(ChatFormatting.GREEN), - Component.translatable("ctnh.multiblock.industrial_primitive_blast_furnace.tooltip.3").withStyle(ChatFormatting.GREEN)) + .tooltips(industrialPrimitiveBlastFurnaceTooltip0.translate().withStyle(ChatFormatting.GRAY), + industrialPrimitiveBlastFurnaceTooltip1.translate(), + industrialPrimitiveBlastFurnaceTooltip2.translate().withStyle(ChatFormatting.GREEN), + industrialPrimitiveBlastFurnaceTooltip3.translate().withStyle(ChatFormatting.GREEN)) .recipeModifiers(IndustrialPrimitiveBlastFurnaceMachine::recipeModifier, BATCH_MODE) .pattern(definition -> FactoryBlockPattern.start() .aisle("CAAAC", " CCC ", " CCC ", " CCC ", " C ", " C ", " C ") @@ -969,15 +1977,15 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.VOID_MINER) .appearanceBlock(GTBlocks.CASING_TUNGSTENSTEEL_ROBUST) - .tooltips(Component.translatable("ctnh.multiblock.void_miner.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.void_miner.tooltip.1"), - Component.translatable("ctnh.multiblock.void_miner.tooltip.2"), - Component.translatable("ctnh.multiblock.void_miner.tooltip.3"), - Component.translatable("ctnh.multiblock.void_miner.tooltip.4"), - Component.translatable("ctnh.multiblock.void_miner.tooltip.5"), - Component.translatable("ctnh.multiblock.void_miner.tooltip.6").withStyle(ChatFormatting.GOLD), - Component.translatable("ctnh.multiblock.void_miner.tooltip.7").withStyle(ChatFormatting.AQUA), - Component.translatable("ctnh.multiblock.void_miner.tooltip.8")) + .tooltips(voidMinerTooltip0.translate().withStyle(ChatFormatting.GRAY), + voidMinerTooltip1.translate(), + voidMinerTooltip2.translate(), + voidMinerTooltip3.translate(), + voidMinerTooltip4.translate(), + voidMinerTooltip5.translate(), + voidMinerTooltip6.translate().withStyle(ChatFormatting.GOLD), + voidMinerTooltip7.translate().withStyle(ChatFormatting.AQUA), + voidMinerTooltip8.translate()) .recipeModifiers(VoidMinerProcessingMachine::recipeModifier, OC_NON_PERFECT) .pattern(definition -> FactoryBlockPattern.start() .aisle("CCCCCCC", "XF FX", "XF FX", "XXXXXXX", "XF FX", "XF FX", "XF FX", " F F ", " ", " ", " ", " ") @@ -1012,7 +2020,7 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, public static final MultiblockMachineDefinition SINTERING_KILN = REGISTRATE.multiblock("sintering_kiln", WorkableElectricMultiblockMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.SINTERING_KILN) - .tooltips(Component.translatable("ctnh.multiblock.sintering_kiln.tooltip.0").withStyle(ChatFormatting.GRAY)) + .tooltips(sinteringKilnTooltip0.translate().withStyle(ChatFormatting.GRAY)) .appearanceBlock(CTNHBlocks.HIGH_GRADE_COKE_OVEN_BRICKS) .pattern(definition -> FactoryBlockPattern.start() .aisle("AAAAA", "#AAA#", "#AAA#", "#ADA#", "#####") @@ -1066,13 +2074,13 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, .allowExtendedFacing(false) .recipeType(CTNHRecipeTypes.MARTIAL_MORALITY_EYE) .appearanceBlock(CASING_BRONZE_BRICKS) - .tooltips(Component.translatable("ctnh.multiblock.martial_morality_eye.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.martial_morality_eye.tooltip.1"), - Component.translatable("ctnh.multiblock.martial_morality_eye.tooltip.2"), - Component.translatable("ctnh.multiblock.martial_morality_eye.tooltip.3"), - Component.translatable("ctnh.multiblock.martial_morality_eye.tooltip.4"), - Component.translatable("ctnh.multiblock.martial_morality_eye.tooltip.5").withStyle(ChatFormatting.RED), - Component.translatable("ctnh.multiblock.martial_morality_eye.tooltip.6")) + .tooltips(martialMoralityEyeTooltip0.translate().withStyle(ChatFormatting.GRAY), + martialMoralityEyeTooltip1.translate(), + martialMoralityEyeTooltip2.translate(), + martialMoralityEyeTooltip3.translate(), + martialMoralityEyeTooltip4.translate(), + martialMoralityEyeTooltip5.translate().withStyle(ChatFormatting.RED), + martialMoralityEyeTooltip6.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "###############A#A###############", "###############A#A###############", "###############A#A###############", "############AAAAAAAAA############", "###############A#A###############", "############AAAAAAAAA############", "###############A#A###############", "###############A#A###############", "###############A#A###############", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################") .aisle("#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "###############A#A###############", "###############A#A###############", "###############A#A###############", "###############A#A###############", "##############BBBBB##############", "#############BBABABB#############", "#########AAAABAABAABAAAA#########", "#############BBBBBBB#############", "#########AAAABAABAABAAAA#########", "#############BBABABB#############", "##############BBBBB##############", "###############A#A###############", "###############A#A###############", "###############A#A###############", "###############A#A###############", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################", "#################################") @@ -1139,11 +2147,11 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, return null; }) .appearanceBlock(HIGH_GRADE_COKE_OVEN_BRICKS) - .tooltips(Component.translatable("ctnh.multiblock.advanced_coke_oven.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.advanced_coke_oven.tooltip.1"), - Component.translatable("ctnh.multiblock.advanced_coke_oven.tooltip.2"), - Component.translatable("ctnh.multiblock.advanced_coke_oven.tooltip.3"), - Component.translatable("ctnh.multiblock.advanced_coke_oven.tooltip.4")) + .tooltips(advancedCokeOvenTooltip0.translate().withStyle(ChatFormatting.GRAY), + advancedCokeOvenTooltip1.translate(), + advancedCokeOvenTooltip2.translate(), + advancedCokeOvenTooltip3.translate(), + advancedCokeOvenTooltip4.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("BBB", "BBB", "BBB") .aisle("BBB", "B#B", "BBB") @@ -1165,9 +2173,9 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, .recipeModifiers(OC_PERFECT_SUBTICK, BATCH_MODE) .appearanceBlock(PLASTCRETE) .tooltips( - Component.translatable("ctnh.multiblock.large_gas_collection_chamber.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.large_gas_collection_chamber.tooltip.1"), - Component.translatable("ctnh.multiblock.large_gas_collection_chamber.tooltip.2"), + largeGasCollectionChamberTooltip0.translate().withStyle(ChatFormatting.GRAY), + largeGasCollectionChamberTooltip1.translate(), + largeGasCollectionChamberTooltip2.translate(), CTNHCommonTooltips.PERFECT_OVERCLOCK ) .pattern(definition -> FactoryBlockPattern.start() @@ -1219,7 +2227,7 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, public static final MultiblockMachineDefinition ION_EXCHANGER = REGISTRATE.multiblock("ion_exchanger", CoilWorkableElectricMultiblockMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.ION_EXCHANGER) - .tooltips(Component.translatable("ctnh.multiblock.ion_exchanger.tooltip.0").withStyle(ChatFormatting.GRAY)) + .tooltips(ionExchangerTooltip0.translate().withStyle(ChatFormatting.GRAY)) .recipeModifiers(OC_NON_PERFECT, BATCH_MODE) .appearanceBlock(CASING_HSSE_STURDY) .pattern(definition -> FactoryBlockPattern.start() @@ -1251,8 +2259,8 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, .recipeType(GTRecipeTypes.FURNACE_RECIPES) .recipeModifiers((machine, group, recipe) -> CTNHRecipeModifiers.accurateParallel(machine, group, recipe, 32), GTRecipeModifiers.OC_PERFECT_SUBTICK) .appearanceBlock(CASING_PRIMITIVE_BRICKS) - .tooltips(Component.translatable("ctnh.multiblock.large_steel_furnace.tooltip.0").withStyle(ChatFormatting.GRAY)) - .tooltips(Component.translatable("ctnh.common_tooltip.perfect_overclock").withStyle(ChatFormatting.GREEN)) + .tooltips(largeSteelFurnaceTooltip0.translate().withStyle(ChatFormatting.GRAY)) + .tooltips(CTNHCommonTooltips.commonTooltipPerfectOverclock.translate().withStyle(ChatFormatting.GREEN)) .pattern(definition -> FactoryBlockPattern.start() .aisle("AAA", "BBB", "BBB", "#B#") .aisle("AAA", "BCB", "BAB", "#B#") @@ -1272,8 +2280,8 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, .recipeType(GTRecipeTypes.ALLOY_SMELTER_RECIPES) .recipeModifiers((machine, group, recipe) -> CTNHRecipeModifiers.accurateParallel(machine, group, recipe, 32), GTRecipeModifiers.OC_PERFECT_SUBTICK) .appearanceBlock(CASING_PRIMITIVE_BRICKS) - .tooltips(Component.translatable("ctnh.multiblock.large_steel_alloy_furnace.tooltip.0").withStyle(ChatFormatting.GRAY)) - .tooltips(Component.translatable("ctnh.common_tooltip.perfect_overclock").withStyle(ChatFormatting.GREEN)) + .tooltips(largeSteelAlloyFurnaceTooltip0.translate().withStyle(ChatFormatting.GRAY)) + .tooltips(CTNHCommonTooltips.commonTooltipPerfectOverclock.translate().withStyle(ChatFormatting.GREEN)) .pattern(definition -> FactoryBlockPattern.start() .aisle("ABA", "CCC", "CBC", "CCC") .aisle("BBB", "CCC", "BDB", "CCC") @@ -1383,10 +2391,10 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, .rotationState(RotationState.ALL) .recipeType(CTNHRecipeTypes.DECAY_POOLS) .appearanceBlock(GTBlocks.CASING_STAINLESS_CLEAN) - .tooltips(Component.translatable("ctnh.multiblock.decay_pools.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.decay_pools.tooltip.1"), - Component.translatable("ctnh.multiblock.decay_pools.tooltip.2"), - Component.translatable("ctnh.multiblock.decay_pools.tooltip.3")) + .tooltips(decayPoolsTooltip0.translate().withStyle(ChatFormatting.GRAY), + decayPoolsTooltip1.translate(), + decayPoolsTooltip2.translate(), + decayPoolsTooltip3.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("##A#A##", "##A#A##", "##AAA##", "##AAA##", "##AAA##", "###A###", "#######") .aisle("#######", "##AAA##", "#ABBBA#", "#ABBBA#", "#ABBBA#", "##AAA##", "###A###") @@ -1462,7 +2470,7 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, public static final MultiblockMachineDefinition VACUUM_SINTERING_TOWER = REGISTRATE.multiblock("vacuum_sintering_tower", CoilWorkableElectricMultiblockMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.VACUUM_SINTERING) - .tooltips(Component.translatable("ctnh.multiblock.vacuum_sintering_tower.tooltip.0").withStyle(ChatFormatting.GRAY)) + .tooltips(vacuumSinteringTowerTooltip0.translate().withStyle(ChatFormatting.GRAY)) .recipeModifiers((machine, group, recipe) -> CTNHRecipeModifiers.accurateParallel(machine, group, recipe, 16), GTRecipeModifiers::ebfOverclock) .appearanceBlock(GCYMBlocks.CASING_HIGH_TEMPERATURE_SMELTING) .pattern(definition -> FactoryBlockPattern.start() @@ -1497,11 +2505,11 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, public static final MultiblockMachineDefinition CRYSTALLIZER = REGISTRATE.multiblock("crystallizer", CoilWorkableElectricMultiblockMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.CRYSTALLIZER) - .tooltips(Component.translatable("ctnh.multiblock.crystallizer.tooltip.0").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.crystallizer.tooltip.1"), - Component.translatable("ctnh.multiblock.crystallizer.tooltip.2"), - Component.translatable("ctnh.multiblock.crystallizer.tooltip.3"), - Component.translatable("ctnh.multiblock.crystallizer.tooltip.4")) + .tooltips(crystallizerTooltip0.translate().withStyle(ChatFormatting.GRAY), + crystallizerTooltip1.translate(), + crystallizerTooltip2.translate(), + crystallizerTooltip3.translate(), + crystallizerTooltip4.translate()) .recipeModifiers((machine, group, recipe) -> CTNHRecipeModifiers.accurateParallel(machine, group, recipe, 16), GTRecipeModifiers::ebfOverclock, BATCH_MODE) .appearanceBlock(GCYMBlocks.CASING_HIGH_TEMPERATURE_SMELTING) .pattern(definition -> FactoryBlockPattern.start() @@ -1537,7 +2545,7 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, public static final MultiblockMachineDefinition SEAWATER_DESALTING_FACTORY = REGISTRATE.multiblock("seawater_desalting_factory", CoilWorkableElectricMultiblockMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.DESALTING) - .tooltips(Component.translatable("ctnh.multiblock.desalting_factory.tooltip.0").withStyle(ChatFormatting.GRAY), + .tooltips(desaltingFactoryTooltip0.translate().withStyle(ChatFormatting.GRAY), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.0"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.1"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.2")) @@ -1570,7 +2578,7 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, public static final MultiblockMachineDefinition BIO_REACTOR = REGISTRATE.multiblock("bio_reactor", BioMachine::new) .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.BIO_REACTOR) - .tooltips(Component.translatable("ctnh.multiblock.bio_reactor.tooltip.0").withStyle(ChatFormatting.GRAY)) + .tooltips(bioReactorTooltip0.translate().withStyle(ChatFormatting.GRAY)) .recipeModifiers(BioMachine::recipeModifier, OC_NON_PERFECT, BATCH_MODE) .appearanceBlock(BIO_REACTOR_CASING) .pattern(definition -> FactoryBlockPattern.start() @@ -1600,8 +2608,8 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, } return null; }, GTRecipeModifiers.OC_NON_PERFECT) - .tooltips(Component.translatable("super_centrifuge").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.super_centrifuge.parallel")) + .tooltips(superCentrifuge.translate().withStyle(ChatFormatting.GRAY), + superCentrifugeParallel.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("#BBB#", "BBBBB", "#BBB#", "BBBBB", "#BBB#") .aisle("BBBBB", "B#C#B", "B#C#B", "B#C#B", "BBBBB") @@ -1622,7 +2630,7 @@ public static MultiblockMachineDefinition registerChemicalGenerator(String name, .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.ULTRASONICATION_RECIPES) .appearanceBlock(CASING_STAINLESS_CLEAN) - .tooltips(Component.translatable("ultrasonic_apparatus").withStyle(ChatFormatting.GRAY)) + .tooltips(ultrasonicApparatus.translate().withStyle(ChatFormatting.GRAY)) .pattern(definition -> FactoryBlockPattern.start() .aisle("##BCFCB##", "#BBCFCBB#", "##BCFCB##") .aisle("#BBCFCBB#", "BDEEEEEDB", "#BBCFCBB#") diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksB.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksB.java index ac3f8d332..5a1724e95 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksB.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksB.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.registry.machines.multiblock; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.api.Pattern.CTNHPredicates; @@ -54,6 +58,654 @@ // spotless:off public class MultiblocksB { + @Key("ctnh.dwof.tooltip") + @CN("运行时为模型积累数据,至多将模型提高至[进阶]等级") + @EN("Accumulates data for the model during operation, raising it up to [Advanced] at most") + public static Lang dwofTooltip; + + + @Key("ctnh.eternal_engine.1") + @CN("当前发电量:%d EU /tick") + @EN("Current power output: %d EU/tick") + public static Lang eternalEngine1; + + + @Key("ctnh.eternal_engine.2") + @CN("累计的工作时间:%.2f s/36000 s") + @EN("Total operating time: %.2f s/36000 s") + public static Lang eternalEngine2; + + + @Key("ctnh.magic.generator") + @CN("精炼天地之魔精") + @EN("Refined Essence of Heaven and Earth") + public static Lang magicGenerator; + + + @Key("ctnh.magic.generator.1") + @CN("具有8并行,每秒基础消耗12mB液态魔力,电压每超过§7LV§r一级,消耗量变为原来的两倍") + @EN("Has 8 parallel operations and consumes 12 mB of Liquid Mana per second at base. For each voltage tier above §7LV§r, consumption doubles") + public static Lang magicGenerator1; + + + @CN("物质撕裂器") + @EN("Matter Ripper") + public static Lang arcgeneratorTooltip1; + + + @CN("该机器必须配合电弧生成器使用,要求电弧生成器必须在该机器主方块上方5格,当完成链接时,电弧生成器会显示已完成连接") + @EN("This machine must be used with an Arc Generator. The Arc Generator must be five blocks above this machine's controller. When linked, the Arc Generator shows that the connection is complete") + public static Lang arcgeneratorTooltip2; + + + @CN("当电弧强度小于配方最小电弧强度时,配方将无法运行") + @EN("If arc intensity is below the recipe's minimum, the recipe cannot run") + public static Lang arcgeneratorTooltip3; + + + @CN("当电弧强度大于配方最大电弧强度时,配方将以(机器电弧强度-配方需求电弧强度)/(满功率需求电弧强度-需求电弧强度)的效率运行。效率允许超过100%,但不能超过机器最大发电效率") + @EN("When arc intensity exceeds the recipe maximum, the recipe runs at (machine arc intensity - recipe required arc intensity) / (full-power required arc intensity - required arc intensity) efficiency. Efficiency may exceed 100%, but cannot exceed the machine maximum power generation efficiency") + public static Lang arcgeneratorTooltip4; + + + @CN("当效率未达100%时,因为湮灭的不完全,将产生少量额外产出") + @EN("When efficiency is below 100%, incomplete annihilation produces a small amount of extra output") + public static Lang arcgeneratorTooltip5; + + + @CN("§b最大支持电弧强度:1000") + @EN("§bMaximum Supported Arc Intensity: 1000") + public static Lang arcgeneratorTooltipArcT11; + + + @CN("§c最大发电效率:75%") + @EN("§cMaximum Power Generation Efficiency: 75%") + public static Lang arcgeneratorTooltipArcT12; + + + @CN("§b最大支持电弧强度:10000") + @EN("§bMaximum Supported Arc Intensity: 10000") + public static Lang arcgeneratorTooltipArcT21; + + + @CN("§c最大发电效率:125%") + @EN("§cMaximum Power Generation Efficiency: 125%") + public static Lang arcgeneratorTooltipArcT22; + + + @CN("§b最大支持电弧强度:50000") + @EN("§bMaximum Supported Arc Intensity: 50000") + public static Lang arcgeneratorTooltipArcT31; + + + @CN("§c最大发电效率:225%") + @EN("§cMaximum Power Generation Efficiency: 225%") + public static Lang arcgeneratorTooltipArcT32; + + + @CN("分子撕裂器") + @EN("Molecular Ripper") + public static Lang arcgeneratorTooltipT21; + + + @CN("原子撕裂器") + @EN("Atomic Ripper") + public static Lang arcgeneratorTooltipT31; + + + @CN("该机器必须配合电弧撕裂者使用,要求电弧生成器必须在电弧撕裂者主方块上方5格,当完成链接时,电弧生成器会显示桥接已启用") + @EN("This machine must be used with an Arc Ripper. The Arc Generator must be five blocks above the Arc Ripper's controller; when linked, the Arc Generator shows that the bridge is enabled") + public static Lang arcreactorTooltip1; + + + @CN("机器基础每次运行配方产生10电弧强度,无法超频,高等级机器具有更高并行数") + @EN("The machine produces 10 arc intensity each time it runs a recipe, cannot be overclocked, and higher-tier machines have more parallelism") + public static Lang arcreactorTooltip2; + + + @CN("该机器并行数:1") + @EN("Machine parallelism: 1") + public static Lang arcreactorTooltipT1; + + + @CN("§b泪水如凛冰般落下") + @EN("§bTears fall like Cryotheum") + public static Lang cryotheumFreezerTip0; + + + @CN("每次运行配方消耗5*并行mb极寒之凛冰,电压每高于§9IV§r一级,这个消耗就翻4倍") + @EN("Each recipe operation consumes 5 × parallel mB of Cryotheum; for each voltage tier above §9IV§r, consumption quadruples") + public static Lang cryotheumFreezerTip1; + + + @CN("初始具有4并行和3泪之晶点数,可以在升级界面加点。每消耗10000mb凛冰,就获得一点点数,随后将目标翻四倍") + @EN("Starts with 4 parallel operations and 3 Tear Crystal points; add points in the upgrade screen. Every 10000 mB of Cryotheum consumed grants one point, then the target amount quadruples") + public static Lang cryotheumFreezerTip2; + + + @CN("菌群孕育,菌种滋长") + @EN("Microbial incubation, fungal proliferation") + public static Lang cultivationRoomTooltip1; + + + @CN("运用好这台机器来繁殖那些难以获取的真菌和细菌") + @EN("Utilize this machine to cultivate hard-to-obtain fungi and bacteria") + public static Lang cultivationRoomTooltip2; + + + @CN("§6永§b不§d损§a耗,你在担心什么?") + @EN("§6E§bver§dlast§aing—what are you worried about?") + public static Lang fluidDrillingRigDepletionInf; + + + @CN("§6钻取来自无尽之中的流体之海") + @EN("§6Drilling a sea of fluids from the Infinite") + public static Lang fluidDrillingRigDescriptionInf; + + + @CN("手植千木,绿荫千秋") + @EN("Plant trees by hand, create shade for millennia") + public static Lang forestSeaTooltip1; + + + @CN("林海树场是一个只消耗水来产出大量木材的大机器") + @EN("The Forest Sea is a massive machine that consumes only water to produce large quantities of lumber") + public static Lang forestSeaTooltip2; + + + @CN("每5s进行一次水储量的判定") + @EN("Performs water storage check every 5 seconds") + public static Lang forestSeaTooltip3; + + + @CN("水充足时,增加1%的湿度值") + @EN("When water is sufficient, increases humidity by 1%") + public static Lang forestSeaTooltip4; + + + @CN("水不足时,减少10%的湿度值") + @EN("When water is insufficient, decreases humidity by 10%") + public static Lang forestSeaTooltip5; + + + @CN("配方运行时间不变,但并行值会随湿度值与电压等级上升") + @EN("Recipe processing time remains constant, but parallel value increases with humidity and voltage tier") + public static Lang forestSeaTooltip6; + + + @CN("比温室好!") + @EN("Better than greenhouses!") + public static Lang forestSeaTooltip7; + + + @CN("持续调整激光频率") + @EN("Continuously adjusts the laser frequency") + public static Lang lasersorterTooltip0; + + + @CN("配方类型:激光分配/激光蚀刻") + @EN("Recipe types: Laser Distribution / Laser Etching") + public static Lang lasersorterTooltip1; + + + @CN("输入的算力每比基础算力多一倍,将一次超频转化为无损超频(即运行速度*2),该效果转化的次数不超过你能超频的等级(即上限为将你所有的有损超频转化为无损)") + @EN("Each time input computation doubles the base requirement, one lossy overclock is converted into a perfect overclock (processing speed ×2). Conversions cannot exceed the machine's overclock tier, up to converting all lossy overclocks into perfect overclocks") + public static Lang lasersorterTooltip10; + + + @CN("§c如果输入的算力不为整数倍,则以上所有的增益全部无效且最终所需时间*4") + @EN("§cIf input computation is not an integer multiple, all bonuses above are disabled and final time ×4") + public static Lang lasersorterTooltip11; + + + @CN("本机器需要消耗算力才能运行") + @EN("This machine consumes computation to operate") + public static Lang lasersorterTooltip2; + + + @CN("————————激光蚀刻模式————————") + @EN("————————Laser Etching Mode————————") + public static Lang lasersorterTooltip3; + + + @CN("LuV及以下的电压固定基础请求8算力,电压每高于LuV一级,请求的基础算力翻倍") + @EN("At LuV and below, the base computation requirement is fixed at 8 CWU; for each voltage tier above LuV, the base requirement doubles") + public static Lang lasersorterTooltip4; + + + @CN("输入的算力如果为基础请求算力的整数倍,则最终输出*1.25,并行等同于⌊(输入的算力/基础请求算力)⌋的三次方") + @EN("If input computation is an integer multiple of the base requirement, final output ×1.25 and parallelism = floor(input computation / base requirement)^3") + public static Lang lasersorterTooltip5; + + + @CN("输入的算力每比基础算力多一倍,将一次超频转化为无损超频(即运行速度*2),该效果转化的次数不超过你能超频的等级(即上限为将你所有的有损超频转化为无损)") + @EN("Each time input computation doubles the base requirement, one lossy overclock is converted into a perfect overclock (processing speed ×2). Conversions cannot exceed the machine's overclock tier, up to converting all lossy overclocks into perfect overclocks") + public static Lang lasersorterTooltip6; + + + @CN("————————激光分配模式————————") + @EN("————————Laser Distribution Mode————————") + public static Lang lasersorterTooltip7; + + + @CN("配方给出请求算力,如果配方没有给出则按照激光蚀刻模式的公式计算") + @EN("The recipe specifies the required computation; if it does not, calculate it using the Laser Etching formula") + public static Lang lasersorterTooltip8; + + + @CN("输入的算力如果为基础请求算力的整数倍,则并行等同于⌊(输入的算力/基础请求算力)⌋的三次方") + @EN("If input computation is an integer multiple of the base requirement, parallelism = floor(input computation / base requirement)^3") + public static Lang lasersorterTooltip9; + + + @CN("利用摩擦热的力量") + @EN("Utilize the power of friction heat") + public static Lang nanoGeneratorTooltip0; + + + @CN("最大并行数:2048") + @EN("Maximum parallel count: 2048") + public static Lang nanoGeneratorTooltip1; + + + @CN("每有1并行数,总体发电量提升4%\n实际运行时间为配方时间*sqrt(并行数)") + @EN("For each parallel process, total power generation increases by 4%\nActual operation time is recipe time * sqrt(parallel count)") + public static Lang nanoGeneratorTooltip2; + + + @CN("在控制器内放入特定材料可提升倍率,但也有概率消耗\n无材料:0.8倍率\n橡胶片:1.0倍率,并行数/512几率消耗\n聚乙烯片:1.6倍率,并行数/1024几率消耗\n硅橡胶片:2.4倍率,并行数/4096几率消耗\n聚四氟乙烯片:3.2倍率,并行数/65535几率消耗\n丁苯橡胶片:4.6倍率,并行数/131070几率消耗\n聚苯并咪唑片:5倍率,并行数/1048576几率消耗") + @EN("Inserting specific materials into the controller increases the multiplier, but each material may also be consumed\nNo material: 0.8x multiplier\nRubber Sheet: 1.0x multiplier, consumption chance = parallel count / 512\nPolyethylene Sheet: 1.6x multiplier, consumption chance = parallel count / 1024\nSilicone Rubber Sheet: 2.4x multiplier, consumption chance = parallel count / 4096\nPTFE Sheet: 3.2x multiplier, consumption chance = parallel count / 65535\nStyrene-Butadiene Rubber Sheet: 4.6x multiplier, consumption chance = parallel count / 131070\nPolybenzimidazole Sheet: 5x multiplier, consumption chance = parallel count / 1048576") + public static Lang nanoGeneratorTooltip3; + + + @CN("将生物的进化之道完全放任于碳基生物的自然演变是一种低效且缓慢的做法,现在我们将亲自编码每一个基因序列,将我们的至臻完美编译在神经元的逻辑之中") + @EN("Leaving the evolution of living beings entirely to the natural evolution of carbon-based life is inefficient and slow. We will now encode every genetic sequence ourselves, compiling our ultimate perfection into neuronal logic") + public static Lang neuroMatrixCompilerTip0; + + + @CN("神经矩阵编码器(CMP)是一台编译神经序列的机器,其不同于其他机器,不执行正常的输入逻辑,无法超频") + @EN("The Neural Matrix Compiler (CMP) compiles neural sequences. Unlike other machines, it does not use normal input logic and cannot be overclocked") + public static Lang neuroMatrixCompilerTip01; + + + @CN("该机器的输入由6个神经矩阵研究舱室组成,每个舱室在结构完成时将被编码,所有研究舱室必须为同一等级,编码完成后,每个研究舱室将会显示他们所属的片区(并未实现)现在片区分配固定为:机器主方块左前方为1,右前方为2,左后方为3,右后方为4") + @EN("The machine input consists of 6 Neural Matrix Research Chambers. Each chamber is encoded when the structure is completed, and all research chambers must be the same tier. After encoding, each chamber displays its assigned region (not implemented). Regions are currently fixed as follows: the front-left of the controller is 1, front-right is 2, back-left is 3, and back-right is 4") + public static Lang neuroMatrixCompilerTip1; + + + @CN("如果运算失败,则定义噪声结果函数f(x1,x2,x3)=ax1+bx2+cx3+d+ϵ,根据噪声决定片区,噪声波动最多翻倍5倍,片区误差项为0.9-1.1间,则噪声变为0.5倍率") + @EN("If computation fails, define the noise result function f(x1,x2,x3)=ax1+bx2+cx3+d+ϵ. The region is determined by noise; noise fluctuation can be multiplied by up to 5, and if the region error term is between 0.9 and 1.1, noise becomes a 0.5 multiplier") + public static Lang neuroMatrixCompilerTip10; + + + @CN("最终编译数据集将获得三个信息,信息1代表本次的方程,信息2代表噪声结果函数获得的结果值对于y的倍率,信息3代表误差项的比率") + @EN("The final compiled dataset contains three pieces of information: information 1 is the equation used, information 2 is the result value from the noise function as a multiplier of y, and information 3 is the error-term ratio") + public static Lang neuroMatrixCompilerTip11; + + + @CN("在执行相同配方时方程不会重置,在执行配方或者结构重新成型时,重置y和方程") + @EN("The equation is not reset when executing the same recipe. It resets y and the equation when a recipe is executed or the structure is re-formed") + public static Lang neuroMatrixCompilerTip12; + + + @CN("该机器的输入§c必须严格按照EMI的物品顺序§9从左到右§r从第一行到第二行放置在§91-5片区§r,同时在第六片区放置§9研究数据集§r§r,任何错误的放置或者外部舱室的放置都会导致机器故障并在对应舱室显示故障") + @EN("Machine inputs §cmust strictly follow the EMI item order§9, placed §rfrom left to right§r and from the first row to the second row in §9Regions 1-5§r. Place the §9Research Dataset§r in Region 6. Any incorrect placement or external chamber placement will cause a machine fault, shown in the corresponding chamber") + public static Lang neuroMatrixCompilerTip2; + + + @CN("必须保证所有神经矩阵研究舱室的等级不低于配方等级,否则配方不会运行") + @EN("All Neural Matrix Research Chambers must be at least the recipe tier; otherwise the recipe will not run") + public static Lang neuroMatrixCompilerTip3; + + + @CN("————————机器总体机制————————") + @EN("————————Overall Machine Mechanics————————") + public static Lang neuroMatrixCompilerTip4; + + + @CN("每次检测到新的配方时,机器将§6完美诉诸于随机§r,生成函数F(x1,x2,x3)=§6y=ax1+bx2+cx3+d§r,其中,x1,x2,x3为期望的片区所消耗的物品数量,同时在给定范围内随机x1,x2,x3,获取答案y") + @EN("Whenever a new recipe is detected, the machine §6entrusts itself to randomness§r and generates F(x1,x2,x3)=§6y=ax1+bx2+cx3+d§r, where x1, x2, and x3 are the quantities of items consumed by the target regions. It then randomly chooses x1, x2, and x3 within the given ranges to obtain y") + public static Lang neuroMatrixCompilerTip5; + + + @CN("当配方执行时,在开始逻辑运算,1-5片区将各自运行5s,运行完毕时将消耗舱室内所有物品来取得函数") + @EN("When a recipe runs, logical computation begins. Regions 1-5 each run for 5 s; when finished, they consume all items in their chambers to obtain the function") + public static Lang neuroMatrixCompilerTip6; + + + @CN("在片区1-5执行完毕后,进行持续5s的总计算流程,在此过程中给出x1,x2,x3,计算得到计算值y,与真实比较,进行最终编译运算") + @EN("After Regions 1-5 finish, a total computation process runs for 5 s. During this process, x1, x2, and x3 are supplied, the calculated y is compared with the true value, and the final compilation is performed") + public static Lang neuroMatrixCompilerTip7; + + + @CN("————————最终编译运算————————") + @EN("————————Final Compilation————————") + public static Lang neuroMatrixCompilerTip8; + + + @CN("最终编译运算将比较真实y与结果y,如果结果y的值在真实值y的0.9-1.1倍内,则运算成功,将编译数据集变为配方输出") + @EN("Final compilation compares true y with result y. If result y is within 0.9 to 1.1 times true y, the computation succeeds and the compiled dataset becomes the recipe output") + public static Lang neuroMatrixCompilerTip9; + + + @CN("片区1-3:用于提供函数F(x)的真实x1,x2,x3") + @EN("Regions 1-3: provide the actual x1, x2, and x3 for function F(x)") + public static Lang neuroMatrixCompilerTipPart1; + + + @CN("片区4:代表函数F(x)的常数量d,同时决定噪声ϵ") + @EN("Region 4: represents the constant d in function F(x) and determines noise ϵ") + public static Lang neuroMatrixCompilerTipPart2; + + + @CN("片区5:此片区用为神经编译提供电路板支持,决定噪声ϵ波动,如果提供电路板大于配方给定值则不造成噪声影响") + @EN("Region 5: provides circuit-board support for neural compilation and determines noise ϵ fluctuation. If the provided circuit board exceeds the recipe requirement, it causes no noise impact") + public static Lang neuroMatrixCompilerTipPart3; + + + @CN("片区6:收集最终编译结果的片区,在完成一次逻辑运算流程后,将根据结果对神经数据集进行修改") + @EN("Region 6: collects the final compilation result and modifies the neural dataset based on the result after a logical computation cycle") + public static Lang neuroMatrixCompilerTipPart4; + + + @CN("§4转底炉的复仇") + @EN("§4The Revenge of the Rotary Kiln") + public static Lang plasmaAlloyTooltip1; + + + @CN("§c速度增幅超过5000%时,最终产物量将会在0%-50%中浮动!") + @EN("§cWhen the speed bonus exceeds 5000%, final output fluctuates between 0% and 50%!") + public static Lang plasmaAlloyTooltip10; + + + @CN("允许使用§b激光仓§r,使用激光仓时最终速度将除以4,速度低于原速度时拒绝运行") + @EN("Allows §blaser hatches§r; when using a laser hatch, final speed is divided by 4, and operation is rejected if it falls below the original speed") + public static Lang plasmaAlloyTooltip11; + + + @CN("线圈温度每有1800K,获得4点并行,线圈温度超过10000K时,获得(线圈温度-10000)/10000的额外加速") + @EN("Every 1800 K of coil temperature grants 4 parallel operations; above 10000 K, it grants an additional speed multiplier of (coil temperature - 10000) / 10000") + public static Lang plasmaAlloyTooltip2; + + + @CN("运行前消耗(并行数*对应等离子体消耗)的等离子体,获得额外加速") + @EN("Consumes (parallel count × corresponding plasma consumption) of plasma before operation to gain an additional speed boost") + public static Lang plasmaAlloyTooltip3; + + + @CN("氦等离子体:消耗500*并行的等离子体,速度+100%") + @EN("Helium plasma: consumes 500 × parallel plasma, speed +100%") + public static Lang plasmaAlloyTooltip4; + + + @CN("氧,氮等离子体:消耗300*并行的等离子体,速度+200%") + @EN("Oxygen or nitrogen plasma: consumes 300 × parallel plasma, speed +200%") + public static Lang plasmaAlloyTooltip5; + + + @CN("镍,铁等离子体:消耗200*并行的等离子体,速度+300%") + @EN("Nickel or iron plasma: consumes 200 × parallel plasma, speed +300%") + public static Lang plasmaAlloyTooltip6; + + + @CN("消耗特殊的冶炼等离子体可以获得额外的速度加成,§c但是同样会将增加你冶炼的风险") + @EN("Special smelting plasmas grant additional speed bonuses, §cbut also increase the risk of your smelting process") + public static Lang plasmaAlloyTooltip7; + + + @CN("压缩精金等离子:消耗固定100等离子体,使速度*5,使消耗电压翻倍(§c这可能导致配方不运行,请使用多安能源仓)") + @EN("Compressed Enriched Naquadah Plasma: consumes a fixed 100 plasma, speed ×5, and doubles voltage consumption (§cwhich may prevent recipes from running; use multi-amp energy hatches)") + public static Lang plasmaAlloyTooltip8; + + + @CN("精炼超能以太等离子体:消耗50*并行等离子体,使速度*10,§c使最终产物在80%-100%中浮动") + @EN("Refined Super Energetic Aether Plasma: consumes 50 × parallel plasma, speed ×10, §cand makes final output fluctuate between 80% and 100%") + public static Lang plasmaAlloyTooltip9; + + + @CN("戴森云计划") + @EN("Dyson Swarm Project") + public static Lang pvdroneTooltip0; + + + @CN("允许使用并行控制仓,并行数为运行时间倍率") + @EN("Allows parallel control hatches; parallelism equals the processing-time multiplier") + public static Lang pvdroneTooltip1; + + + @CN("为光伏基站提供电力增幅,使用光伏绑定终端来为这两个结构绑定") + @EN("Provides a power boost to the photovoltaic station; use the Photovoltaic Binding Terminal to bind these two structures") + public static Lang pvdroneTooltip2; + + + @CN("将无人机放入无人机支架以开始发送无人机,每5秒和运行结束时,每个无人机都有一定概率消耗,无人机发电同样受维度和空间站增幅") + @EN("Place drones in the drone holder to begin transmitting them. Each drone has a chance to be consumed every 5 seconds and when operation ends; drone generation is also affected by dimension and station bonuses") + public static Lang pvdroneTooltip3; + + + @CN("无人机的消耗概率公式为1.0 / (1.0 + Math.exp(-0.25* (x - 9)))") + @EN("Drone consumption chance = 1.0 / (1.0 + Math.exp(-0.25 * (x - 9)))") + public static Lang pvdroneTooltip4; + + + @CN("使用无人机收集陨石时,产出的倍率公式为0.1*Math.sqrt(无人机电压之和),倍率小于1时无产出,无法超频") + @EN("When drones collect meteors, output multiplier = 0.1 × sqrt(sum of drone voltages). No output below multiplier 1; cannot be overclocked") + public static Lang pvdroneTooltip5; + + + @CN("来自§b某个神秘东方大国§r的工业力量") + @EN("From §bA certain mysterious eastern country§r's industrial power.") + public static Lang sinopeChemicalTooltip0; + + + @CN("格雷员工不骗格雷员工,并行是真实的") + @EN("Gray employees don’t deceive gray employees, parallel is real.") + public static Lang sinopeChemicalTooltip1; + + + @CN("没有外壳等级要求,配方不需要催化剂") + @EN("No shell level requirements, recipes don't need catalysts.") + public static Lang sinopeChemicalTooltip2; + + + @CN("并行数与中心的方块有关") + @EN("Parallel count is related to the central block.") + public static Lang sinopeChemicalTooltip3; + + + @CN("硅岩块:8并行") + @EN("Silicon rock block: 8 parallel") + public static Lang sinopeChemicalTooltip4; + + + @CN("富集硅岩块:32并行") + @EN("Enriched silicon rock block: 32 parallel") + public static Lang sinopeChemicalTooltip5; + + + @CN("超能硅岩块:128并行") + @EN("Super silicon rock block: 128 parallel") + public static Lang sinopeChemicalTooltip6; + + + @CN("每一点实际的并行数减少0.5%的能耗和运行时间,至多减少25%(独立乘区)") + @EN("Each point of actual parallel reduces energy consumption and operation time by 0.5%, up to a maximum reduction of 25% (independently multiplied)") + public static Lang sinopeChemicalTooltip7; + + + @CN("线圈每提供1800K,运行速度+100%") + @EN("Each coil providing 1800K increases the operation speed by +100%") + public static Lang sinopeChemicalTooltip8; + + + @CN("§c任何虚假的并行都将绳之以法!§r") + @EN("§cAny false parallel will be punished!§r") + public static Lang sinopeChemicalTooltip9; + + + @CN("§6光辉灿烂的太空之路") + @EN("§6A Glorious Path Through Space") + public static Lang spacephotovoltaicbasestationTooltip0; + + + @CN("在太空发电模式下,星球类型和光伏方块的等级都会提升发电量,在空间站被视为无重力环境,且发电量*4,消耗特定材料以进一步提升发电量") + @EN("In Space Power Generation mode, planet type and photovoltaic block tier increase power output. The station is treated as a zero-gravity environment, multiplying output by 4; consuming specific materials increases output further") + public static Lang spacephotovoltaicbasestationTooltip2; + + + @CN("在太空光伏组装模式下,不消耗EUt,发电量将锁定为1,根据配方的模拟F功率来计算速度和并行量") + @EN("In Space Photovoltaic Assembly mode, no EUt is consumed and power output is locked at 1. Speed and parallelism are calculated from the recipe's simulated F power") + public static Lang spacephotovoltaicbasestationTooltip3; + + + @CN("光伏等级,光照强度共同决定了是否可以执行太空组装配方,光伏方块耐热性和耐热结构方块决定了可以获得的光照最大倍率,太空结构方块决定了可以使用的光伏方块等级和是否可以使用附属结构") + @EN("Photovoltaic tier and light intensity determine whether space assembly recipes can run. Photovoltaic block heat resistance and heat-resistant structural blocks determine the maximum light multiplier. Space structural blocks determine the usable photovoltaic tier and whether auxiliary structures are allowed") + public static Lang spacephotovoltaicbasestationTooltip4; + + + @CN("在太空光伏组装模式下,最终并行为(太空发电模式下发电量/模拟功率),最终时间倍率为(模拟功率/太空发电模式下发电量),当太空发电模式下发电量小于模拟功率时,最终时间倍率将变为平方") + @EN("In Space Photovoltaic Assembly mode, final parallelism = (Space Power Generation output / simulated power), and final time multiplier = (simulated power / Space Power Generation output). If Space Power Generation output is lower than simulated power, the final time multiplier is squared") + public static Lang spacephotovoltaicbasestationTooltip5; + + + @CN("§6该结构将持续拓展,这还不是它的完全体状态!") + @EN("§6This structure will continue to expand; it is not yet complete!") + public static Lang spacephotovoltaicbasestationTooltipEx; + + + @CN("粒子加速集成者") + @EN("Particle Accelerator Integrator") + public static Lang wideAcceleratorTooltip0; + + + @CN("允许§9使用激光仓§r和§a变电仓§r") + @EN("Allows the use of §9laser hatches§r and §avoltage converter hatches§r") + public static Lang wideAcceleratorTooltip1; + + + @CN("注意:本机器用电量极高,且暂时无法做到只能计算正确并行,使用低电压可能导致§c配方无法运行§r或者§c跳电§r,建议搭配§9激光仓§r使用,如遇配方不工作,请报告给作者") + @EN("WARNING: Extreme power consumption. Improper voltage may cause §crecipe failure§r or §ccircuit tripping§r. Recommended with §9laser hatches§r. Reduce parallelism if malfunction occurs") + public static Lang wideAcceleratorTooltip10; + + + @CN("可以与约束器链接传递部分粒子。§c警告:如果没有链接约束器,不要随意尝试某些危险的配方§r (目前还是饼)") + @EN("Particle transfer available via containment links. §cCAUTION: Hazardous recipes require pre-installed containment systems§r (Currently conceptual)") + public static Lang wideAcceleratorTooltip11; + + + @CN("通过三个轨道加速三种粒子") + @EN("Accelerates three types of particles through three beamlines") + public static Lang wideAcceleratorTooltip2; + + + @CN("本机器只要求粒子速度大于配方需求,不满足需求无法运行。粒子速度不会超过50Gev,这台机器非常安全,不会引发爆炸。") + @EN("The machine only requires particle velocities to exceed the recipe requirements; it cannot run otherwise. Particle velocity is capped at 50 GeV, making the machine very safe and preventing explosions.") + public static Lang wideAcceleratorTooltip3; + + + @CN("允许使用§b并行控制仓§r,不适用并行控制仓则使用默认值") + @EN("Allows the use of §bparallel control hatches§r; without one, the default value is used") + public static Lang wideAcceleratorTooltip4; + + + @CN("在运行一般配方时如无§b并行控制仓§r,默认使用16并行") + @EN("When running normal recipes without a §bparallel control hatch§r, the default is 16 parallel processes") + public static Lang wideAcceleratorTooltip5; + + + @CN("如果粒子速度过慢,则什么都不会产生") + @EN("Insufficient particle velocity yields no products") + public static Lang wideAcceleratorTooltip6; + + + @CN("本机器可以存储至多50E EU能量,存储的能量可以在加速界面调整三种粒子速度,每调整1M ev粒子速度需要消耗10M EU存储的能量,按住shift时可以一次性更改10M ev粒子速度,按住ctrl时可以一次性更改100M ev粒子速度") + @EN("The machine can store up to 50E EU. Stored energy can be used to adjust the three particle velocities in the acceleration interface. Each 1 MeV increase in particle velocity consumes 10M EU from stored energy. Hold Shift to change velocity by 10 MeV at once; hold Ctrl to change it by 100 MeV at once.") + public static Lang wideAcceleratorTooltip7; + + + @CN("三种粒子轨道速度之和每有1M ev,每tick便消耗机器存储的100EU能量,电量不足时,每tick粒子速度会衰减10%") + @EN("For every 1 MeV in the sum of the three particle velocities, the machine consumes 100 EU of stored energy per tick. If power is insufficient, particle velocity decays by 10% per tick.") + public static Lang wideAcceleratorTooltip8; + + + @CN("机器没有运行时,默认使用存储能源舱室的所有能源为机器充能。机器运行时仍然使用能源仓的能量。但在机器运行时除非机器存储电量不够,否则能源仓不会为机器充能") + @EN("When the machine is idle, it uses all energy in the energy-storage hatches to charge itself by default. While running, it continues to use energy from the energy hatches. However, during operation, the energy hatches will not charge the machine unless its stored energy is insufficient.") + public static Lang wideAcceleratorTooltip9; + + + @Key("ctnh.plasma_alloy.tooltip.recipe") + @CN("配方类型:合金冶炼炉") + @EN("Recipe Type: Alloy Blast Smelter") + public static Lang plasmaAlloyTooltipRecipe; + + + @Key("ctnh.u_sinope.1") + @CN("配方类型:蒸馏塔/蒸馏室/裂化机/流体加热机/流体固化机/真空石化处理/???") + @EN("Recipe types: Distillation Tower / Distillation Room / Cracker / Fluid Heater / Fluid Solidifier / Vacuum Petrochemical Processing / ???") + public static Lang uSinope1; + + + @Key("ctnh.u_sinope.2") + @CN("§c它那究极的结构已然无法让你的EMI承受,你需要寻求蓝图的帮忙,同时在修改结构时最好直接破坏主方块以避免检测卡死游戏") + @EN("§cIts ultimate structure is too much for your EMI to bear; seek help from blueprints. When modifying the structure, it is best to break the controller directly to avoid detection freezing the game") + public static Lang uSinope2; + + + @Key("ctnh.u_sinope.3") + @CN("巨型的结构只能在真空建立,否则巨大的结构将会使周围坍缩(效率减少99.99%)") + @EN("This giant structure can only be built in a vacuum; otherwise the surrounding area will collapse (efficiency reduced by 99.99%)") + public static Lang uSinope3; + + + @Key("ctnh.u_sinope.4") + @CN("除非你使用四维工程学材料,否则它无法再承受UIV即以上的线圈,效率将减少99.99%") + @EN("Unless four-dimensional engineering materials are used, it cannot withstand coils at UIV or above; efficiency is reduced by 99.99%") + public static Lang uSinope4; + + + @Key("ctnh.u_sinope.5") + @CN("线圈等级决定了最大的配方等级,你最大只能使用线圈电压等级+1的配方等级,否则效率减少99%") + @EN("Coil tier determines the maximum recipe tier. You can use at most a recipe tier one above the coil voltage tier; otherwise efficiency is reduced by 99%") + public static Lang uSinope5; + + + @Key("ctnh.u_sinope.6") + @CN("允许使用激光仓,但你的配方电压等级必须达到OPV,否则效率将减少99%") + @EN("Laser hatches are allowed, but the recipe voltage tier must reach OPV; otherwise efficiency is reduced by 99%") + public static Lang uSinope6; + + + @Key("ctnh.u_sinope.7") + @CN("对于常规配方,该巨构拥有8^(电压等级)的并行,最高不超过2^32,在能源仓等级达到OPV时解锁无损超频,配方等级每超过UHV一级,处理速度+555%,每100点并行使处理速度增加333%,如果使用了四维工程学材料,则速度额外增加5000%") + @EN("For normal recipes, this multiblock has 8^(voltage tier) parallel operations, capped at 2^32. Lossless overclocking unlocks when the energy hatch reaches OPV. Each recipe tier above UHV adds 555% processing speed; every 100 parallels adds 333% processing speed. Four-dimensional engineering materials add another 5000% speed") + public static Lang uSinope7; + + + @Key("ctnh.u_sinope.8") + @CN("对于该巨构特有的配方类型具有特殊机制:时间固定为100秒,并行固定为10,电压每超过UHV一级,则时间减少10秒,并行增加10,如果使用了四维工程学材料且线圈等级大于等于UIV,则时间固定为1秒") + @EN("This multiblock's unique recipe types use special mechanics: time is fixed at 100 seconds and parallelism at 10; for each voltage tier above UHV, time decreases by 10 seconds and parallelism increases by 10. If four-dimensional engineering materials are used and the coil tier is at least UIV, time is fixed at 1 second") + public static Lang uSinope8; + + + @Key("ctnh.u_sinope.story.1") + @CN("在战争没有开始前,人们曾团结在一起,一齐建造这工业的巴别巨塔") + @EN("Before the war began, people stood united and built this industrial Tower of Babel together") + public static Lang uSinopeStory1; + + + @Key("ctnh.u_sinope.story.2") + @CN("直到那场永恒的战争,这座真空巨塔化为永恒的残骸,随着战争的双方破碎在真空中") + @EN("Until the Eternal War, when this vacuum tower became eternal ruins, shattered in the vacuum along with both sides of the war") + public static Lang uSinopeStory2; + + + @Key("ctnh.u_sinope.story.3") + @CN("你已无法再知晓那场战争的双方是否已经相互毁灭,但你直到,这座巨型结构将宣告着人类的复兴") + @EN("You can no longer know whether both sides of that war destroyed each other, but you know this giant structure will herald humanity's revival") + public static Lang uSinopeStory3; + + + public final static MultiblockMachineDefinition SILICA_ROCK_FUEL_REFINERY = REGISTRATE.multiblock("silica_rock_fuel_refinery", WorkableElectricMultiblockMachine::new) .rotationState(RotationState.ALL) @@ -86,10 +738,10 @@ public class MultiblocksB { .recipeType(CTNHRecipeTypes.NANO_GENERATOR) .generator(true) .recipeModifier(NanoscaleTriboelectricGenerator::recipeModifier) - .tooltips(Component.translatable("ctnh.multiblock.nano_generator.tooltip.0"), - Component.translatable("ctnh.multiblock.nano_generator.tooltip.1"), - Component.translatable("ctnh.multiblock.nano_generator.tooltip.2"), - Component.translatable("ctnh.multiblock.nano_generator.tooltip.3") + .tooltips(nanoGeneratorTooltip0.translate(), + nanoGeneratorTooltip1.translate(), + nanoGeneratorTooltip2.translate(), + nanoGeneratorTooltip3.translate() ) .pattern(definition -> FactoryBlockPattern.start() .aisle("###B###", "###C###", "###C###", "###C###", "###C###", "###C###", "###D###", "###D###", "###D###", "###D###", "###E###", "###F###", "###F###", "###D###") @@ -124,13 +776,13 @@ public class MultiblocksB { .recipeTypes(CTNHRecipeTypes.WOOD_BIONICS) .appearanceBlock(CTNHBlocks.NATURAL_ECOLOGICAL_SHELL_CASING) .recipeModifiers(ForestMachine::recipeModifier, OC_NON_PERFECT) - .tooltips(Component.translatable("ctnh.multiblock.forest_sea.tooltip.1").withStyle(ChatFormatting.GRAY), - Component.translatable("ctnh.multiblock.forest_sea.tooltip.2"), - Component.translatable("ctnh.multiblock.forest_sea.tooltip.3"), - Component.translatable("ctnh.multiblock.forest_sea.tooltip.4"), - Component.translatable("ctnh.multiblock.forest_sea.tooltip.5"), - Component.translatable("ctnh.multiblock.forest_sea.tooltip.6"), - Component.translatable("ctnh.multiblock.forest_sea.tooltip.7")) + .tooltips(forestSeaTooltip1.translate().withStyle(ChatFormatting.GRAY), + forestSeaTooltip2.translate(), + forestSeaTooltip3.translate(), + forestSeaTooltip4.translate(), + forestSeaTooltip5.translate(), + forestSeaTooltip6.translate(), + forestSeaTooltip7.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("AAA", "AAA", "AAA") .aisle("AAA", "A#A", "AAA") @@ -147,16 +799,16 @@ public class MultiblocksB { .rotationState(RotationState.ALL) .recipeTypes(CTNHRecipeTypes.SINOPE, GTRecipeTypes.CRACKING_RECIPES) .recipeModifiers(SinopeChemical::recipeModifier, OC_NON_PERFECT) - .tooltips(Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.0"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.1"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.2"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.3"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.4"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.5"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.6"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.7"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.8"), - Component.translatable("ctnh.multiblock.sinope_chemical.tooltip.9")) + .tooltips(sinopeChemicalTooltip0.translate(), + sinopeChemicalTooltip1.translate(), + sinopeChemicalTooltip2.translate(), + sinopeChemicalTooltip3.translate(), + sinopeChemicalTooltip4.translate(), + sinopeChemicalTooltip5.translate(), + sinopeChemicalTooltip6.translate(), + sinopeChemicalTooltip7.translate(), + sinopeChemicalTooltip8.translate(), + sinopeChemicalTooltip9.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("AAAAAAAAA", "A#######A", "A#######A", "A#######A", "A#######A", "A#######A", "A#######A", "A#######A", "AAAAAAAAA") .aisle("AAAAAAAAA", "#BBBBBBB#", "#########", "#########", "#########", "#########", "#########", "#BBBBBBB#", "AAAAAAAAA") @@ -188,18 +840,18 @@ public class MultiblocksB { .rotationState(RotationState.ALL) .recipeTypes(CTNHRecipeTypes.ACCELERATOR_UP) .recipeModifiers(WideParticleAccelerator::recipeModifier, OC_NON_PERFECT) - .tooltips(Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.0"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.1"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.2"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.3"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.4"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.5"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.6"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.7"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.8"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.9"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.10"), - Component.translatable("ctnh.multiblock.wide_accelerator.tooltip.11") + .tooltips(wideAcceleratorTooltip0.translate(), + wideAcceleratorTooltip1.translate(), + wideAcceleratorTooltip2.translate(), + wideAcceleratorTooltip3.translate(), + wideAcceleratorTooltip4.translate(), + wideAcceleratorTooltip5.translate(), + wideAcceleratorTooltip6.translate(), + wideAcceleratorTooltip7.translate(), + wideAcceleratorTooltip8.translate(), + wideAcceleratorTooltip9.translate(), + wideAcceleratorTooltip10.translate(), + wideAcceleratorTooltip11.translate() ) .pattern(definition -> FactoryBlockPattern.start() @@ -254,13 +906,13 @@ public class MultiblocksB { .recipeType(CTNHRecipeTypes.ARC_GENERATOR) .generator(true) .recipeModifier(Arc_Generator::recipeModifier, true) - .tooltips(Component.translatable("ctnh.multiblock.arcgenerator.tooltip.1"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.arc.t1.1"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.arc.t1.2"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.2"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.3"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.4"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.5") + .tooltips(arcgeneratorTooltip1.translate(), + arcgeneratorTooltipArcT11.translate(), + arcgeneratorTooltipArcT12.translate(), + arcgeneratorTooltip2.translate(), + arcgeneratorTooltip3.translate(), + arcgeneratorTooltip4.translate(), + arcgeneratorTooltip5.translate() ) .pattern(definition -> FactoryBlockPattern.start() .aisle("#####################", "#####################", "#####################", "#####################", "#####################", "#####################", "###B#############B###", "#####################", "#####################", "#####################").aisle("#####################", "#####################", "#####################", "#####################", "#####################", "###B#############B###", "##BCB###########BCB##", "###B#############B###", "#####################", "#####################") @@ -306,13 +958,13 @@ public class MultiblocksB { .recipeType(CTNHRecipeTypes.ARC_GENERATOR) .generator(true) .recipeModifier(Arc_Generator::recipeModifier, true) - .tooltips(Component.translatable("ctnh.multiblock.arcgenerator.tooltip.t2.1"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.arc.t2.1"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.arc.t2.2"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.2"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.3"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.4"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.5") + .tooltips(arcgeneratorTooltipT21.translate(), + arcgeneratorTooltipArcT21.translate(), + arcgeneratorTooltipArcT22.translate(), + arcgeneratorTooltip2.translate(), + arcgeneratorTooltip3.translate(), + arcgeneratorTooltip4.translate(), + arcgeneratorTooltip5.translate() ) .pattern(definition -> FactoryBlockPattern.start() .aisle("#####################", "#####################", "#####################", "#####################", "#####################", "#####################", "###B#############B###", "#####################", "#####################", "#####################").aisle("#####################", "#####################", "#####################", "#####################", "#####################", "###B#############B###", "##BCB###########BCB##", "###B#############B###", "#####################", "#####################") @@ -357,13 +1009,13 @@ public class MultiblocksB { .recipeType(CTNHRecipeTypes.ARC_GENERATOR) .generator(true) .recipeModifier(Arc_Generator::recipeModifier, true) - .tooltips(Component.translatable("ctnh.multiblock.arcgenerator.tooltip.t3.1"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.arc.t3.1"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.arc.t3.2"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.2"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.3"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.4"), - Component.translatable("ctnh.multiblock.arcgenerator.tooltip.5") + .tooltips(arcgeneratorTooltipT31.translate(), + arcgeneratorTooltipArcT31.translate(), + arcgeneratorTooltipArcT32.translate(), + arcgeneratorTooltip2.translate(), + arcgeneratorTooltip3.translate(), + arcgeneratorTooltip4.translate(), + arcgeneratorTooltip5.translate() ) .pattern(definition -> FactoryBlockPattern.start() .aisle("#####################", "#####################", "#####################", "#####################", "#####################", "#####################", "###B#############B###", "#####################", "#####################", "#####################").aisle("#####################", "#####################", "#####################", "#####################", "#####################", "###B#############B###", "##BCB###########BCB##", "###B#############B###", "#####################", "#####################") @@ -407,9 +1059,9 @@ public class MultiblocksB { .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.ARC_REACTOR) .recipeModifier(Arc_Reactor::recipeModifier) - .tooltips(Component.translatable("ctnh.multiblock.arcreactor.tooltip.1"), - Component.translatable("ctnh.multiblock.arcreactor.tooltip.2"), - Component.translatable("ctnh.multiblock.arcreactor.tooltip.t1") + .tooltips(arcreactorTooltip1.translate(), + arcreactorTooltip2.translate(), + arcreactorTooltipT1.translate() ) .pattern(definition -> FactoryBlockPattern.start() .aisle("#########B########", "#########B########", "#########B########", "#########B########", "#########B########", "#########B########", "##################", "##################") @@ -517,7 +1169,7 @@ public class MultiblocksB { .recipeType(GTRecipeTypes.ASSEMBLY_LINE_RECIPES) .alwaysTryModifyRecipe(true) .recipeModifiers(GTRecipeModifiers.PARALLEL_HATCH, OC_NON_PERFECT, GTRecipeModifiers.BATCH_MODE) - .tooltips(Component.translatable("gtceu.multiblock.laser.tooltip"), + .tooltips(CTNHCommonTooltips.gtceuMultiblockLaserTooltip.translate(), Component.translatable("gtceu.multiblock.parallelizable.tooltip")) .appearanceBlock(ADVANCE_MACHINE_CASING_SOLID_STEEL) .pattern(definition -> FactoryBlockPattern.start(BACK, UP, RIGHT) @@ -552,10 +1204,10 @@ public class MultiblocksB { .rotationState(RotationState.NON_Y_AXIS) .recipeType(CTNHRecipeTypes.CULTIVATION_ROOM) .recipeModifiers(GTRecipeModifiers.PARALLEL_HATCH, OC_NON_PERFECT, BATCH_MODE) - .tooltips(Component.translatable("ctnh.multiblock.cultivation_room.tooltip.1").withStyle(ChatFormatting.GREEN), - Component.translatable("ctnh.multiblock.cultivation_room.tooltip.2"), + .tooltips(cultivationRoomTooltip1.translate().withStyle(ChatFormatting.GREEN), + cultivationRoomTooltip2.translate(), CTNHCommonTooltips.PARALLEL_HATCH, - Component.translatable("gtceu.multiblock.laser.tooltip") + CTNHCommonTooltips.gtceuMultiblockLaserTooltip.translate() ) .appearanceBlock(CASING_STAINLESS_CLEAN) .pattern(definition -> FactoryBlockPattern.start() @@ -584,17 +1236,17 @@ public class MultiblocksB { .rotationState(RotationState.NON_Y_AXIS) .recipeType(GCYMRecipeTypes.ALLOY_BLAST_RECIPES) .recipeModifiers(PlasmaAlloyBlast::recipeModifier, GTRecipeModifiers::ebfOverclock, BATCH_MODE) - .tooltips(Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.1"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.11"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.2"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.3"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.4"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.5"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.6"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.7"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.8"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.9"), - Component.translatable("ctnh.multiblock.plasma_alloy.tooltip.10") + .tooltips(plasmaAlloyTooltip1.translate(), + plasmaAlloyTooltip11.translate(), + plasmaAlloyTooltip2.translate(), + plasmaAlloyTooltip3.translate(), + plasmaAlloyTooltip4.translate(), + plasmaAlloyTooltip5.translate(), + plasmaAlloyTooltip6.translate(), + plasmaAlloyTooltip7.translate(), + plasmaAlloyTooltip8.translate(), + plasmaAlloyTooltip9.translate(), + plasmaAlloyTooltip10.translate() ) .pattern(definition -> FactoryBlockPattern.start() .aisle("A####BBBBBBB####A", "#####BBBBBBB#####", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################") @@ -816,18 +1468,18 @@ public class MultiblocksB { .rotationState(RotationState.NON_Y_AXIS) .recipeTypes(CTNHRecipeTypes.LS_RECIPE,GTRecipeTypes.LASER_ENGRAVER_RECIPES) .recipeModifiers(LaserSorter::recipeModifier, OC_NON_PERFECT) - .tooltips(Component.translatable("ctnh.multiblock.lasersorter.tooltip.0"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.1"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.2"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.3"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.4"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.5"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.6"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.7"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.8"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.9"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.10"), - Component.translatable("ctnh.multiblock.lasersorter.tooltip.11") + .tooltips(lasersorterTooltip0.translate(), + lasersorterTooltip1.translate(), + lasersorterTooltip2.translate(), + lasersorterTooltip3.translate(), + lasersorterTooltip4.translate(), + lasersorterTooltip5.translate(), + lasersorterTooltip6.translate(), + lasersorterTooltip7.translate(), + lasersorterTooltip8.translate(), + lasersorterTooltip9.translate(), + lasersorterTooltip10.translate(), + lasersorterTooltip11.translate() ) .pattern(definition -> FactoryBlockPattern.start() .aisle("AAAAAAA", "AABBBAA", "AABBBAA", "AABBBAA", "AAAAAAA") @@ -856,12 +1508,12 @@ public class MultiblocksB { .generator(true) .recipeTypes(CTNHRecipeTypes.PHOTOVOLTAIC_GENERATOR, CTNHRecipeTypes.PHOTOVOLTAIC_ASSEMBER) .recipeModifier(SpacePhotovoltaicBaseStation::recipeModifier,true) - .tooltips(Component.translatable("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.0"), - Component.translatable("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.2"), - Component.translatable("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.3"), - Component.translatable("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.4"), - Component.translatable("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.5"), - Component.translatable("ctnh.multiblock.spacephotovoltaicbasestation.tooltip.ex") + .tooltips(spacephotovoltaicbasestationTooltip0.translate(), + spacephotovoltaicbasestationTooltip2.translate(), + spacephotovoltaicbasestationTooltip3.translate(), + spacephotovoltaicbasestationTooltip4.translate(), + spacephotovoltaicbasestationTooltip5.translate(), + spacephotovoltaicbasestationTooltipEx.translate() ) .pattern(definition -> FactoryBlockPattern.start() @@ -922,12 +1574,12 @@ public class MultiblocksB { .allowExtendedFacing(false) .recipeTypes(CTNHRecipeTypes.PVDRONE) .recipeModifiers(PhotoVoltaicDroneStation::recipeModifier) - .tooltips(Component.translatable("ctnh.multiblock.pvdrone.tooltip.0"), - Component.translatable("ctnh.multiblock.pvdrone.tooltip.1"), - Component.translatable("ctnh.multiblock.pvdrone.tooltip.2"), - Component.translatable("ctnh.multiblock.pvdrone.tooltip.3"), - Component.translatable("ctnh.multiblock.pvdrone.tooltip.4"), - Component.translatable("ctnh.multiblock.pvdrone.tooltip.5") + .tooltips(pvdroneTooltip0.translate(), + pvdroneTooltip1.translate(), + pvdroneTooltip2.translate(), + pvdroneTooltip3.translate(), + pvdroneTooltip4.translate(), + pvdroneTooltip5.translate() ) .pattern(definition -> FactoryBlockPattern.start() @@ -1023,9 +1675,9 @@ public class MultiblocksB { .rotationState(RotationState.NON_Y_AXIS) .recipeType(GTRecipeTypes.VACUUM_RECIPES) .recipeModifiers(CryotheumFreezer::recipeModifier, OC_NON_PERFECT, BATCH_MODE) - .tooltips(Component.translatable("ctnh.multiblock.cryotheum_freezer.tip.0"), - Component.translatable("ctnh.multiblock.cryotheum_freezer.tip.1"), - Component.translatable("ctnh.multiblock.cryotheum_freezer.tip.2")) + .tooltips(cryotheumFreezerTip0.translate(), + cryotheumFreezerTip1.translate(), + cryotheumFreezerTip2.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("A###BBBBB####", "####BCCCB####", "####BCCCB####", "####BCCCB####", "####BCCCB####", "####BCCCB####", "####BBBBB####") .aisle("#BBBBBDBBBBB#", "#DDDBEDEBDDD#", "#BBBBEDEBBBB#", "#DDDBEFEBDDD#", "#BBBBEDEBBBB#", "#DDDBEDEBDDD#", "#BBBBBEBBBBB#") @@ -1057,25 +1709,25 @@ public class MultiblocksB { .recipeType(CTNHRecipeTypes.COMPILER_RECIPE) .appearanceBlock(CASING_ANTIFREEZE_HEATPROOF_MACHINE) .recipeModifiers(GTRecipeModifiers.TIER_CHECK, NeuroMatrixCompiler::recipeModifier) - .tooltips(Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.0"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.01"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.1"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.2"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.3"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.4"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.5"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.6"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.part1"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.part2"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.part3"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.part4"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.7"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.8"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.9"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.10"), - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.11"), - - Component.translatable("ctnh.multiblock.neuro_martix_compiler.tip.12")) + .tooltips(neuroMatrixCompilerTip0.translate(), + neuroMatrixCompilerTip01.translate(), + neuroMatrixCompilerTip1.translate(), + neuroMatrixCompilerTip2.translate(), + neuroMatrixCompilerTip3.translate(), + neuroMatrixCompilerTip4.translate(), + neuroMatrixCompilerTip5.translate(), + neuroMatrixCompilerTip6.translate(), + neuroMatrixCompilerTipPart1.translate(), + neuroMatrixCompilerTipPart2.translate(), + neuroMatrixCompilerTipPart3.translate(), + neuroMatrixCompilerTipPart4.translate(), + neuroMatrixCompilerTip7.translate(), + neuroMatrixCompilerTip8.translate(), + neuroMatrixCompilerTip9.translate(), + neuroMatrixCompilerTip10.translate(), + neuroMatrixCompilerTip11.translate(), + + neuroMatrixCompilerTip12.translate()) .pattern(definition -> FactoryBlockPattern.start() .aisle("A############BBBBB#############", "#############CCDCC#############", "#############B#B#B#############", "###############################", "###############################", "###############################", "##############B#B##############", "#############CCCCC#############", "#############BBBBB#############") .aisle("#############BBBBB#############", "#############CEFEC#############", "##############EFE##############", "##############EFE##############", "##############EFE##############", "##############EFE##############", "#############BEFEB#############", "#############CEFEC#############", "#############BBBBB#############") @@ -1132,8 +1784,8 @@ public class MultiblocksB { .langValue("%s Fluid Drilling Rig %s".formatted(VLVH[tier], VLVT[tier])) .recipeType(DUMMY_RECIPES) .tooltips( - Component.translatable("ctnh.multiblock.fluid_drilling_rig.description.inf"), - Component.translatable("ctnh.multiblock.fluid_drilling_rig.depletion.inf" + fluidDrillingRigDescriptionInf.translate(), + fluidDrillingRigDepletionInf.translate( ), Component.translatable("gtceu.universal.tooltip.energy_tier_range", GTValues.VNF[tier], GTValues.VNF[tier + 1]), diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksC.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksC.java index 4a81ca720..df8fc2957 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksC.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/MultiblocksC.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.registry.machines.multiblock; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.api.machine.feature.ICoilMachine; import io.github.cpearl0.ctnhcore.common.machine.multiblock.electric.multithread.CNCAlloySmelter; @@ -40,13 +43,19 @@ // spotless:off public class MultiblocksC { + + @CN("室内种植") + @EN("Plant In Room") + public static Lang greenhouseTooltip0; + + public static void init() {} public static final MultiblockMachineDefinition GREENHOUSE = REGISTRATE.multiblock("greenhouse", WorkableElectricMultiblockMachine::new) .allowExtendedFacing(false) .recipeType(CTNHRecipeTypes.GREENHOUSE_RECIPES) .recipeModifiers(GTRecipeModifiers.OC_NON_PERFECT, GTRecipeModifiers.BATCH_MODE) - .tooltips(Component.translatable("ctnh.multiblock.greenhouse.tooltip.0").withStyle(ChatFormatting.GRAY)) + .tooltips(greenhouseTooltip0.translate().withStyle(ChatFormatting.GRAY)) .appearanceBlock(GTBlocks.CASING_STEEL_SOLID) .pattern(definition -> FactoryBlockPattern.start() .aisle("AAAAA", "ABBBA", "ABBBA", "#BBB#", "#BBB#", "##B##", "#####") @@ -84,8 +93,8 @@ public static void init() {} .multiblock("cnc_alloy_smelter", CNCAlloySmelter::new) .langValue("CNC ALLOY Smelter") .recipeType(ALLOY_BLAST_RECIPES) - .tooltips(Component.translatable("ctnh.multiblock.mega_lcr.tooltip.0"), - Component.translatable("ctnh.multiblock.mega_lcr.tooltip.1"), + .tooltips(MultiblocksA.megaLcrTooltip0.translate(), + MultiblocksA.megaLcrTooltip1.translate(), Component.translatable("gtceu.multiblock.parallelizable.tooltip"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.0"), Component.translatable("gtceu.machine.electric_blast_furnace.tooltip.1"), diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/WindPowerArrayRegister.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/WindPowerArrayRegister.java index fedfabdff..4b604c417 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/WindPowerArrayRegister.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/machines/multiblock/WindPowerArrayRegister.java @@ -1,4 +1,7 @@ package io.github.cpearl0.ctnhcore.registry.machines.multiblock; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; import io.github.cpearl0.ctnhcore.common.machine.multiblock.generator.WindPowerArrayMachine; @@ -20,6 +23,67 @@ public class WindPowerArrayRegister { + @CN("§7§o风力狼群:真正的自然之力") + @EN("§7§oWind Wolf: The TRUE POWER of NATURE") + public static Lang windArrayTooltip0; + + + @CN("§8---------------§a基础数据§8-----------------") + @EN("§8-----------------§aBasic Data§8--------------------") + public static Lang windArrayTooltip1; + + + @CN("§f润滑油会从风力网络中抽取.") + @EN("§fLubricant will be extracted from the network.") + public static Lang windArrayTooltip10; + + + @CN("§5顺应风力网络的工作规律,以抵挡自然之力的摧残") + @EN("§5DO OBEY the rules to resist the DESTRUCTION from nature force.") + public static Lang windArrayTooltip11; + + + @CN("§f- 基础发电功率: §e%d EU/t §7(地球)") + @EN("§f- Basic Production: §e%d EU/t §7(on earth)") + public static Lang windArrayTooltip2; + + + @CN("§f- 天气风力增益: §e雨天x2,雷雨x4") + @EN("§f- Weather Boost: §eRainy x2, Thunder x4") + public static Lang windArrayTooltip3; + + + @CN("§f- 高度增益: §e Clamp(Y-64, 0, 256-64) / (256-64)") + @EN("§f- Altitude Boost: §eClamp(Y-64, 0, 256-64) / (256-64)") + public static Lang windArrayTooltip4; + + + @CN("§f- 网络增益: §e 0.3*[log2(网络大小)]") + @EN("§f- Network Boost: §e 0.3*[log2(NetSize)]") + public static Lang windArrayTooltip5; + + + @CN("§f增益乘算得到发电效率") + @EN("§fAll boosts are multiplied to determine production.") + public static Lang windArrayTooltip6; + + + @CN("§f需要§e%d mB/s§f 润滑油以维护机器运行") + @EN("§fRequires §e%d mB/s§f Lubricant.") + public static Lang windArrayTooltip7; + + + @CN("§8---------------§a风力网络§8-----------------") + @EN("§8-----------------§aWind Network§8------------------") + public static Lang windArrayTooltip8; + + + @CN("§f所有结构对齐且间距<=1的风力发电机阵列会组成风力网络") + @EN("§fAligned structure within a distance of <= 1 form a Wind Network.") + public static Lang windArrayTooltip9; + + + public static MultiblockMachineDefinition register(String name, int tier, BlockEntry casing, Material frame, String renderCasing) { return REGISTRATE.multiblock(name, holder -> new WindPowerArrayMachine(holder, tier)) @@ -40,18 +104,18 @@ public static MultiblockMachineDefinition register(String name, int tier, BlockE .allowExtendedFacing(false) .workableCasingModel(GTCEu.id("block/casings/solid/" + renderCasing), GTCEu.id("block/multiblock/implosion_compressor")) - .tooltips(Component.translatable("ctnh.multiblock.wind_array.tooltip0"), - Component.translatable("ctnh.multiblock.wind_array.tooltip1"), - Component.translatable("ctnh.multiblock.wind_array.tooltip2", GTValues.V[tier]), - Component.translatable("ctnh.multiblock.wind_array.tooltip3"), - Component.translatable("ctnh.multiblock.wind_array.tooltip4"), - Component.translatable("ctnh.multiblock.wind_array.tooltip5"), - Component.translatable("ctnh.multiblock.wind_array.tooltip6"), - Component.translatable("ctnh.multiblock.wind_array.tooltip7", tier), - Component.translatable("ctnh.multiblock.wind_array.tooltip8"), - Component.translatable("ctnh.multiblock.wind_array.tooltip9"), - Component.translatable("ctnh.multiblock.wind_array.tooltip10"), - Component.translatable("ctnh.multiblock.wind_array.tooltip11")) + .tooltips(windArrayTooltip0.translate(), + windArrayTooltip1.translate(), + windArrayTooltip2.translate( GTValues.V[tier]), + windArrayTooltip3.translate(), + windArrayTooltip4.translate(), + windArrayTooltip5.translate(), + windArrayTooltip6.translate(), + windArrayTooltip7.translate( tier), + windArrayTooltip8.translate(), + windArrayTooltip9.translate(), + windArrayTooltip10.translate(), + windArrayTooltip11.translate()) .register(); } } diff --git a/src/main/java/io/github/cpearl0/ctnhcore/registry/material/CTNHMaterials.java b/src/main/java/io/github/cpearl0/ctnhcore/registry/material/CTNHMaterials.java index c3c68fd18..5985b818d 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/registry/material/CTNHMaterials.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/registry/material/CTNHMaterials.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.registry.material; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.data.materials.*; @@ -36,6 +40,7 @@ public class CTNHMaterials { + public static void addFluid(Material material) { if (!material.hasProperty(PropertyKey.FLUID)) { material.setProperty(PropertyKey.FLUID, new FluidProperty(FluidStorageKeys.LIQUID, new FluidBuilder())); diff --git a/src/main/java/io/github/cpearl0/ctnhcore/utils/CTNHCommonTooltips.java b/src/main/java/io/github/cpearl0/ctnhcore/utils/CTNHCommonTooltips.java index ccb7b9027..b74e0d6df 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/utils/CTNHCommonTooltips.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/utils/CTNHCommonTooltips.java @@ -1,4 +1,8 @@ package io.github.cpearl0.ctnhcore.utils; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; +import com.ctnhlang.Key; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; @@ -6,14 +10,51 @@ public class CTNHCommonTooltips { - public static MutableComponent PARALLEL_HATCH = Component.translatable("ctnh.common_tooltip.parallel_hatch") + @CN("·允许使用并行控制仓") + @EN("Voltage levels increase the number of parallels") + public static Lang commonTooltipParallelHatch; + + + @CN("无损超频!") + @EN("Perfect Overclock!") + public static Lang commonTooltipPerfectOverclock; + + + @CN("只能使用HV级能源仓及以下等级") + @EN("Can only use HV-grade energy hatches and below") + public static Lang commonTooltipSteelMachine0; + + + @Key("ctnh.common_tooltip.steel_machine.1") + @CN("最大并行为32") + @EN("Maximum parallelism: 32") + public static Lang commonTooltipSteelMachine1; + + + @CN("当配方运行时间小于1t时,会自动计算并行") + @EN("When recipe runtime is less than 1 tick, parallel calculations will be performed automatically.") + public static Lang commonTooltipSubtickOverclock; + + + @CN("允许使用激光仓") + @EN("The use of the laser chamber is permitted") + public static Lang gtceuMultiblockLaserTooltip; + + + @CN("配方修改失败") + @EN("Recipe modification failed") + public static Lang gtceuRecipeModifierDefaultFail; + + + + public static MutableComponent PARALLEL_HATCH = commonTooltipParallelHatch.translate() .withStyle(ChatFormatting.GOLD); - public static MutableComponent SUBTICK_PARALLEL = Component.translatable("ctnh.common_tooltip.subtick_overclock") + public static MutableComponent SUBTICK_PARALLEL = commonTooltipSubtickOverclock.translate() .withStyle(ChatFormatting.YELLOW); - public static MutableComponent PERFECT_OVERCLOCK = Component.translatable("ctnh.common_tooltip.perfect_overclock") + public static MutableComponent PERFECT_OVERCLOCK = commonTooltipPerfectOverclock.translate() .withStyle(ChatFormatting.GREEN); public static MutableComponent[] STEEL_MACHINE = new MutableComponent[] { - Component.translatable("ctnh.common_tooltip.steel_machine.0"), + commonTooltipSteelMachine0.translate(), // Component.translatable("ctnh.common_tooltip.steel_machine.1"), PERFECT_OVERCLOCK }; diff --git a/src/main/java/io/github/cpearl0/ctnhcore/utils/CTNHMachineUtils.java b/src/main/java/io/github/cpearl0/ctnhcore/utils/CTNHMachineUtils.java index 24a7ecab9..669a4b59b 100644 --- a/src/main/java/io/github/cpearl0/ctnhcore/utils/CTNHMachineUtils.java +++ b/src/main/java/io/github/cpearl0/ctnhcore/utils/CTNHMachineUtils.java @@ -1,5 +1,10 @@ package io.github.cpearl0.ctnhcore.utils; +import io.github.cpearl0.ctnhcore.registry.machines.CTNHMachines; +import tech.vixhentx.mcmod.ctnhlib.langprovider.Lang; +import com.ctnhlang.CN; +import com.ctnhlang.EN; + import io.github.cpearl0.ctnhcore.CTNHCore; import io.github.cpearl0.ctnhcore.common.machine.simple.EfficiencyGeneratorMachine; import io.github.cpearl0.ctnhcore.common.machine.simple.SimpleComputationMachine; @@ -45,6 +50,12 @@ public class CTNHMachineUtils { + @CN("注意:部分配方需要算力执行") + @EN("Note: Some recipes require computation to run") + public static Lang tooltipsSimpleComputationMachine; + + + public static MachineDefinition[] registerTieredMachines(String name, BiFunction factory, BiFunction, MachineDefinition> builder, @@ -169,7 +180,7 @@ public static MachineDefinition[] registerSimpleComputationMachines(String name, .workableTieredHullModel(CTNHCore.id("block/machines/" + name)) .tooltips(workableTiered(tier, GTValues.V[tier], GTValues.V[tier] * 64, recipeType, tankScalingFunction.apply(tier), true)) - .tooltips(Component.translatable("ctnh.tooltips.simplecomputationmachine")) + .tooltips(tooltipsSimpleComputationMachine.translate()) .register(); }, tiers); @@ -206,8 +217,7 @@ public static MachineDefinition[] registerEfficiencyGeneratorMachines(String nam .recipeType(recipeType) .simpleGeneratorModel(CTNHCore.id("block/generators/" + name)) .tooltips( - Component.translatable( - "ctnh.machine." + name + ".tooltip", efficiencyFunction.apply(tier))) + efficiencyTooltip(name).translate(efficiencyFunction.apply(tier))) .tooltips(GTMachineUtils.explosion()) .tooltips( GTMachineUtils.workableTiered( @@ -221,6 +231,14 @@ public static MachineDefinition[] registerEfficiencyGeneratorMachines(String nam tiers); } + private static Lang efficiencyTooltip(String name) { + return switch (name) { + case "naquadah_reactor" -> CTNHMachines.machineNaquadahReactorTooltip; + case "rocket_engine" -> CTNHMachines.machineRocketEngineTooltip; + default -> throw new IllegalArgumentException("Unsupported efficiency generator: " + name); + }; + } + public static Component environmentRequirement(MedicalCondition condition) { return Component.translatable("gtceu.recipe.environmental_hazard.reverse", Component.translatable("gtceu.medical_condition." + condition.name));