Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,6 @@ runs/

**/.cache/
.kotlin/

# Extracted dependency sources used for local API lookup
reference/
17 changes: 17 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,20 @@
## Tool Preference For Other Work

For tasks other than searching or reading project files, prefer IDEA MCP tools and the `workspace-agent-bridge` skill when they provide the relevant operation, such as diagnostics, formatting, refactoring, or other IDE-aware actions.

## Language File Generation

1. English language files (`en_us.json` / `en_ud.json`) are generated by datagen from `src/main/java/dev/anvilcraft/pigsplus/data/lang/`.
2. Simplified Chinese is manually maintained at `src/main/resources/assets/anvilcraft_pigsplus/lang/zh_cn.json`. Do not generate `zh_cn.json` with datagen, otherwise it will overwrite or conflict with the manual file.
3. When adding an English key to a datagen provider, add the corresponding Chinese key to the manual `zh_cn.json` so the two key sets stay unified.
4. Do not manually edit files under `src/generated/resources/`; `runData` will overwrite them.
5. If a new UI, JEI, Jade, Ageratum, recipe, Modify, or Requirement text is added, add its English key in `LangHandler` / `JeiLang` / `RecipeLang` and its Chinese key in the manual `zh_cn.json`.

## Nullability

1. Code defaults to non-null via `package-info.java` (`@ParametersAreNonnullByDefault` / `@MethodsReturnNonnullByDefault`).
2. Any parameter, field, or return that can be null must be annotated with `@Nullable` (`org.jetbrains.annotations.Nullable`), and callers must handle the nullable result.

## Code Style

1. Prefix accesses to the current instance's own fields and calls to its own methods with `this.` (e.g. `this.progress`, `this.syncState(be)`).
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ curseforge_id=1380275
mod_id=anvilcraft_pigsplus
mod_name=AnvilCraft-PigsPlus
mod_license=LGPL-3.0 license
mod_version=2.6.0
mod_version=2.7.0
maven_group=dev.anvilcraft.pigsplus
mod_authors=TB_pig
mod_description=tools made by TB_pig
mod_description=tools made by TB_pig & draw by LuanHongKeZhen

systemProp.file.encoding=UTF-8
systemProp.sun.jnu.encoding=UTF-8
74 changes: 71 additions & 3 deletions src/generated/resources/assets/anvilcraft_pigsplus/lang/en_ud.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
"anvilcraft_pigsplus.configuration.enchanted_generator.tooltip": "ɹoʇɐɹǝuǝ⅁ pǝʇuɐɥɔuƎ",
"anvilcraft_pigsplus.configuration.portable_wireless_charger_energy_conversion": "uoᴉsɹǝʌuoƆ ʎᵷɹǝuƎ ɹǝᵷɹɐɥƆ ssǝꞁǝɹᴉM ǝꞁqɐʇɹoԀ",
"anvilcraft_pigsplus.configuration.portable_wireless_charger_energy_conversion.tooltip": "(Mʞ) ɹǝᵷɹɐɥɔ ssǝꞁǝɹᴉʍ ǝꞁqɐʇɹod ɟo ʎʇᴉʇuɐnb uoᴉsɹǝʌuoɔ ʎᵷɹǝuƎ",
"anvilcraft_pigsplus.configuration.reformer_absorption_cooldown": "uʍopꞁooƆ uoᴉʇdɹosqⱯ ɹǝɯɹoɟǝᴚ",
"anvilcraft_pigsplus.configuration.reformer_absorption_cooldown.tooltip": "(sʞɔᴉʇ uᴉ) ɹǝɯɹoɟǝɹ ɹɐʇs/ʎɹɐʇǝuɐꞁd ɟo ꞁɐʌɹǝʇuᴉ uoᴉʇdɹosqⱯ",
"anvilcraft_pigsplus.configuration.section.anvilcraft_pigsplus.server.toml": "uoᴉʇɐɹnᵷᴉɟuoƆ ɹǝʌɹǝS snꞁdsᵷᴉԀ ʇɟɐɹɔꞁᴉʌuⱯ",
"anvilcraft_pigsplus.configuration.section.anvilcraft_pigsplus.server.toml.title": "uoᴉʇɐɹnᵷᴉɟuoƆ ɹǝʌɹǝS snꞁdsᵷᴉԀ ʇɟɐɹɔꞁᴉʌuⱯ",
"anvilcraft_pigsplus.configuration.title": "uoᴉʇɐɹnᵷᴉɟuoƆ snꞁdsᵷᴉԀ ʇɟɐɹɔꞁᴉʌuⱯ",
Expand Down Expand Up @@ -55,13 +57,34 @@
"block.anvilcraft_pigsplus.void_acid_cauldron": "uoɹpꞁnɐƆ pᴉɔⱯ pᴉoɅ",
"block.anvilcraft_pigsplus.void_catalyst": "ʇsʎꞁɐʇɐƆ pᴉoɅ",
"block.anvilcraft_pigsplus.weak_resin_block": "uᴉsǝᴚ ʞɐǝM ɟo ʞɔoꞁᗺ",
"concept.anvilcraft_pigsplus.atmosphere": "ǝɹǝɥdsoɯʇⱯ",
"concept.anvilcraft_pigsplus.biologic": "sǝɔɹnosǝᴚ ꞁɐɔᴉᵷoꞁoᴉᗺ",
"concept.anvilcraft_pigsplus.civilization": "uoᴉʇɐzᴉꞁᴉʌᴉƆ",
"concept.anvilcraft_pigsplus.default": "ʇdǝɔuoƆ uʍouʞu∩",
"concept.anvilcraft_pigsplus.laser": "ɹǝsɐꞀ",
"concept.anvilcraft_pigsplus.magnetic_field": "pꞁǝᴉℲ ɔᴉʇǝuᵷɐW",
"concept.anvilcraft_pigsplus.plante_type": "ǝdʎ⟘ ʇǝuɐꞁԀ",
"concept.anvilcraft_pigsplus.reformer": "ɹǝɯɹoɟǝᴚ",
"concept.anvilcraft_pigsplus.rotation_speed": "pǝǝdS uoᴉʇɐʇoᴚ",
"concept.anvilcraft_pigsplus.sea": "ǝᵷɐɹǝʌoƆ pᴉnbᴉꞀ",
"concept.anvilcraft_pigsplus.temperature": "ǝɹnʇɐɹǝdɯǝ⟘",
"config.jade.plugin_anvilcraft_pigsplus.celestial_reformer": "ɹǝɯɹoɟǝᴚ ꞁɐᴉʇsǝꞁǝƆ",
"config.jade.plugin_anvilcraft_pigsplus.electric_enchanting_table": "ǝꞁqɐ⟘ ᵷuᴉʇuɐɥɔuƎ ɔᴉɹʇɔǝꞁƎ",
"config.jade.plugin_anvilcraft_pigsplus.enchanted_generator": "ɹoʇɐɹǝuǝ⅁ pǝʇuɐɥɔuƎ",
"config.jade.plugin_anvilcraft_pigsplus.precision_magnetic_pivot": "ʇoʌᴉԀ ɔᴉʇǝuᵷɐW uoᴉsᴉɔǝɹԀ",
"enchantment.anvilcraft_pigsplus.endurance": "ǝɔuɐɹnpuƎ",
"gui.anvilcraft_pigsplus.category.celestial_reformer": "ɹǝɯɹoɟǝᴚ ꞁɐᴉʇsǝꞁǝƆ",
"gui.anvilcraft_pigsplus.category.precision_electromagnetic_processing": "ᵷuᴉssǝɔoɹԀ ɔᴉʇǝuᵷɐɯoɹʇɔǝꞁƎ uoᴉsᴉɔǝɹԀ",
"gui.anvilcraft_pigsplus.category.precision_electromagnetic_processing.consume_fluid": "%2$s ɟo ᗺɯ %1$d :ǝɯnsuoƆ",
"gui.anvilcraft_pigsplus.category.precision_electromagnetic_processing.need_activated": "pǝʇɐʌᴉʇɔɐ ǝq oʇ spǝǝN",
"gui.anvilcraft_pigsplus.category.precision_electromagnetic_processing.produce_fluid": "%2$s ɟo ᗺɯ %1$d :ǝɔnpoɹԀ",
"gui.anvilcraft_pigsplus.jei.fluid": "ᗺɯ %s :%s :pᴉnꞁℲ",
"gui.anvilcraft_pigsplus.jei.laser": "(%s) %s ꞁǝʌǝꞁ :ɹǝsɐꞀ",
"gui.anvilcraft_pigsplus.jei.modification": "%s :uoᴉʇɐɔᴉɟᴉpoW",
"gui.anvilcraft_pigsplus.laser.type.any": "ɹǝsɐꞁ ʎuⱯ",
"gui.anvilcraft_pigsplus.laser.type.gamma": "ɹǝsɐꞁ ɐɯɯɐ⅁",
"gui.anvilcraft_pigsplus.laser.type.normal": "ɹǝsɐꞁ ꞁɐɯɹoN",
"item.anvilcraft_pigsplus.celestial_reformer_component": "ʇuǝuodɯoƆ ɹǝɯɹoɟǝᴚ ꞁɐᴉʇsǝꞁǝƆ",
"item.anvilcraft_pigsplus.chaotic_raw_ore": "ǝɹO ʍɐᴚ ɔᴉʇoɐɥƆ",
"item.anvilcraft_pigsplus.echo_geode": "ǝpoǝ⅁ oɥɔƎ",
"item.anvilcraft_pigsplus.ender_component": "ʇuǝuodɯoƆ ɹǝpuƎ",
Expand All @@ -75,6 +98,52 @@
"itemGroup.anvilcraft_pigsplus.addon_items": "snꞁԀ sᵷᴉԀ :ʇɟɐɹƆꞁᴉʌuⱯ",
"jei.anvilcraft.pigsplus.info.ender_component": "˙ʇuǝuodɯoƆ ɹǝpuƎ ɐ uᴉɐʇqo oʇ ǝɔuɐɥɔ %%%.0f ɐ sᴉ ǝɹǝɥʇ 'ꞁɐʇɹod puƎ ǝɥʇ oʇuᴉ ʇuǝuodɯoƆ ᴉɹnʞɐɹɐꞰ ɐ ʍoɹɥ⟘",
"jei.anvilcraft.pigsplus.info.spiritual_component": "˙ʇuǝuodɯoƆ ɯnᴉpǝW ǝuo ʇsoɯ ʇɐ ǝʇɐɹǝuǝᵷ oʇ ǝɔuɐɥɔ %%%.0f ɐ sǝpᴉʌoɹd ʇuǝɯʇuɐɥɔuǝ ɥɔɐǝ 'pǝʎoɹʇsǝp sᴉ ʇuǝuodɯoƆ ᴉɹnʞɐɹɐꞰ ɐ uǝɥM",
"modification.anvilcraft_pigsplus.add_atmosphere": "ǝɹǝɥdsoɯʇⱯ ppⱯ",
"modification.anvilcraft_pigsplus.add_biological_resources": "sǝɔɹnosǝᴚ ꞁɐɔᴉᵷoꞁoᴉᗺ ppⱯ",
"modification.anvilcraft_pigsplus.add_civilization": "uoᴉʇɐzᴉꞁᴉʌᴉƆ ʍoꞀ ppⱯ",
"modification.anvilcraft_pigsplus.decrease_liquid_coverage": "ǝᵷɐɹǝʌoƆ uɐǝɔO ǝsɐǝɹɔǝᗡ",
"modification.anvilcraft_pigsplus.decrease_temperature": "ǝɹnʇɐɹǝdɯǝ⟘ ǝsɐǝɹɔǝᗡ",
"modification.anvilcraft_pigsplus.fast_rotation": "uoᴉʇɐʇoᴚ d∩ pǝǝdS",
"modification.anvilcraft_pigsplus.increase_liquid_coverage": "ǝᵷɐɹǝʌoƆ uɐǝɔO ǝsɐǝɹɔuI",
"modification.anvilcraft_pigsplus.increase_temperature": "ǝɹnʇɐɹǝdɯǝ⟘ ǝsɐǝɹɔuI",
"modification.anvilcraft_pigsplus.slow_rotation": "uoᴉʇɐʇoᴚ uʍoᗡ ʍoꞁS",
"modification.anvilcraft_pigsplus.strengthen_magnetic_field": "pꞁǝᴉℲ ɔᴉʇǝuᵷɐW uǝɥʇᵷuǝɹʇS",
"modification.anvilcraft_pigsplus.unknown": "uoᴉʇɐɔᴉɟᴉpoW uʍouʞu∩",
"modification.anvilcraft_pigsplus.void_wasteland": "puɐꞁǝʇsɐM pᴉoɅ oʇuI uɹn⟘",
"modification.anvilcraft_pigsplus.wasteland": "puɐꞁǝʇsɐM oʇuI uɹn⟘",
"modification.anvilcraft_pigsplus.weaken_magnetic_field": "pꞁǝᴉℲ ɔᴉʇǝuᵷɐW uǝʞɐǝM",
"requirement.anvilcraft_pigsplus.has_atmosphere": "ǝɹǝɥdsoɯʇⱯ sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.has_biological_resources": "sǝɔɹnosǝᴚ ꞁɐɔᴉᵷoꞁoᴉᗺ sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.has_civilization": "uoᴉʇɐzᴉꞁᴉʌᴉƆ sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.has_liquid": "pᴉnbᴉꞀ sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.has_other_megastructure": "ǝɹnʇɔnɹʇsɐᵷǝW ɹǝɥʇouⱯ sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.liquid_coverage_at_least": "%s =< ǝᵷɐɹǝʌoƆ pᴉnbᴉꞀ",
"requirement.anvilcraft_pigsplus.liquid_coverage_at_most": "%s => ǝᵷɐɹǝʌoƆ pᴉnbᴉꞀ",
"requirement.anvilcraft_pigsplus.liquid_coverage_between": "%s - %s ǝᵷɐɹǝʌoƆ pᴉnbᴉꞀ",
"requirement.anvilcraft_pigsplus.magnetic_field_at_least": "%s =< pꞁǝᴉℲ ɔᴉʇǝuᵷɐW",
"requirement.anvilcraft_pigsplus.magnetic_field_at_most": "%s => pꞁǝᴉℲ ɔᴉʇǝuᵷɐW",
"requirement.anvilcraft_pigsplus.magnetic_field_between": "%s => puɐ %s =< pꞁǝᴉℲ ɔᴉʇǝuᵷɐW",
"requirement.anvilcraft_pigsplus.no_atmosphere": "ǝɹǝɥdsoɯʇⱯ oN sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.no_liquid": "pᴉnbᴉꞀ oN sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.no_other_megastructure": "ǝɹnʇɔnɹʇsɐᵷǝW ɹǝɥʇO oN sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.planetary_reformer": "ɹǝɯɹoɟǝᴚ ʎɹɐʇǝuɐꞁԀ sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.rocky_planet": "ʇǝuɐꞁԀ ʎʞɔoᴚ sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.rotation_speed_at_least": "%s =< pǝǝdS uoᴉʇɐʇoᴚ",
"requirement.anvilcraft_pigsplus.rotation_speed_at_most": "%s => pǝǝdS uoᴉʇɐʇoᴚ",
"requirement.anvilcraft_pigsplus.rotation_speed_between": "%s => puɐ %s =< pǝǝdS uoᴉʇɐʇoᴚ",
"requirement.anvilcraft_pigsplus.star_reformer": "ɹǝɯɹoɟǝᴚ ɹɐʇS sǝɹᴉnbǝᴚ",
"requirement.anvilcraft_pigsplus.temperature_at_least": "%s =< ǝɹnʇɐɹǝdɯǝ⟘",
"requirement.anvilcraft_pigsplus.temperature_at_most": "%s => ǝɹnʇɐɹǝdɯǝ⟘",
"requirement.anvilcraft_pigsplus.temperature_between": "%s - %s ǝɹnʇɐɹǝdɯǝ⟘",
"requirement.anvilcraft_pigsplus.unknown": "ʇuǝɯǝɹᴉnbǝᴚ uʍouʞu∩",
"requirement.anvilcraft_pigsplus.water_ocean": "ǝᵷɐɹǝʌoƆ ꞁꞁnℲ ʍoꞁǝᗺ uɐǝɔO ɹǝʇɐM ɹO pᴉnbᴉꞀ oN sǝɹᴉnbǝᴚ",
"screen.anvilcraft.cfa.megastructure.planetary_reformer": "ɹǝɯɹoɟǝᴚ ʎɹɐʇǝuɐꞁԀ",
"screen.anvilcraft.cfa.megastructure.planetary_reformer.usage": "˙ʎpoq ꞁɐᴉʇsǝꞁǝɔ ǝɥʇ ɯɹoɟǝɹ oʇ sǝɔɹnosǝɹ ǝɯnsuoƆ",
"screen.anvilcraft.cfa.megastructure.star_reformer": "ɹǝɯɹoɟǝᴚ ɹɐʇS",
"screen.anvilcraft.cfa.megastructure.star_reformer.usage": "˙ʎpoq ꞁɐᴉʇsǝꞁǝɔ ǝɥʇ ɯɹoɟǝɹ oʇ sǝɔɹnosǝɹ ǝɯnsuoƆ",
"tooltip.anvilcraft_pigsplus.celestial_reformer.current.fluid": "ᗺɯ %s / %s :%s",
"tooltip.anvilcraft_pigsplus.celestial_reformer.current.item": "%s / %s :%s",
"tooltip.anvilcraft_pigsplus.celestial_reformer.current.laser": "(%s) %s ꞁǝʌǝꞁ :ɹǝsɐꞀ",
"tooltip.anvilcraft_pigsplus.enchanted_generator.decrease_rate": "%s :ǝʇɐɹ ǝsɐǝɹɔǝp ԀX",
"tooltip.anvilcraft_pigsplus.menger_sponge_staff": "pᴉnbᴉꞁ ɟo ʇunoɯɐ ǝᵷɹɐꞁ ɐ ǝʌoɯǝᴚ",
"tooltip.anvilcraft_pigsplus.portable_wireless_charger": "ʇ/ƎℲ %d sǝʇɐɹǝuǝᵷ puɐ Mʞ %d sǝɯnsuoɔ ʇᴉ 'ʞɔɐdʞɔɐq uǝɥM",
Expand All @@ -87,6 +156,5 @@
"tooltip.anvilcraft_pigsplus.precision_magnetic_pivot.pre_direction.none": "ǝuoN",
"tooltip.anvilcraft_pigsplus.precision_magnetic_pivot.time": "%s :snʇɐʇS",
"tooltip.anvilcraft_pigsplus.precision_magnetic_pivot.time.stopped": "pǝddoʇS",
"tooltip.anvilcraft_pigsplus.precision_magnetic_pivot.time.working": "ᵷuᴉʞɹoM",
"enchantment.anvilcraft_pigsplus.endurance": "??u??npn?"
}
"tooltip.anvilcraft_pigsplus.precision_magnetic_pivot.time.working": "ᵷuᴉʞɹoM"
}
Loading
Loading