From 643d46a395f373e226e522458fd0b0973702e1cd Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Sat, 26 Jul 2025 04:59:26 +0800 Subject: [PATCH 1/6] HextendedStaves MovesTheMind ComplexHex Hexportation transfer --- .../lanishextendedstaves/README.md | 1 + .../lanishextendedstaves/lang/en_us.json | 2 +- .../lanishextendedstaves/lang/zh_cn.json | 2 +- .../hextended-staves/hextended/README.md | 1 + .../hextended/lang/en_us.json | 85 ++++++++++++ .../hextended/packer-policy.json | 6 + .../complexhex/lang/en_us.json | 126 ++++++++++++++++++ .../complexhex/lang/zh_cn.json | 126 ++++++++++++++++++ .../hexportation/lang/en_us.json | 33 +++++ .../hexportation/lang/zh_cn.json | 33 +++++ .../movesthemind/lang/en_us.json | 43 ++++++ .../movesthemind/lang/zh_cn.json | 43 ++++++ .../hextended-staves/hextended/README.md | 19 +++ .../hextended/lang/en_us.json | 85 ++++++++++++ .../hextended/lang/zh_cn.json | 85 ++++++++++++ 15 files changed, 688 insertions(+), 2 deletions(-) create mode 100644 projects/1.19/assets/hextended-staves/lanishextendedstaves/README.md create mode 100644 projects/1.20-fabric/assets/hextended-staves/hextended/README.md create mode 100644 projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json create mode 100644 projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json create mode 100644 projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json create mode 100644 projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json create mode 100644 projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/en_us.json create mode 100644 projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/zh_cn.json create mode 100644 projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/en_us.json create mode 100644 projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/zh_cn.json create mode 100644 projects/1.20/assets/hextended-staves/hextended/README.md create mode 100644 projects/1.20/assets/hextended-staves/hextended/lang/en_us.json create mode 100644 projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json diff --git a/projects/1.19/assets/hextended-staves/lanishextendedstaves/README.md b/projects/1.19/assets/hextended-staves/lanishextendedstaves/README.md new file mode 100644 index 000000000000..531f3c5d70c8 --- /dev/null +++ b/projects/1.19/assets/hextended-staves/lanishextendedstaves/README.md @@ -0,0 +1 @@ +[见主文档](/projects/1.20/assets/hextended-staves/hextended) \ No newline at end of file diff --git a/projects/1.19/assets/hextended-staves/lanishextendedstaves/lang/en_us.json b/projects/1.19/assets/hextended-staves/lanishextendedstaves/lang/en_us.json index 86b45e04d5b3..d1a016d91ac3 100644 --- a/projects/1.19/assets/hextended-staves/lanishextendedstaves/lang/en_us.json +++ b/projects/1.19/assets/hextended-staves/lanishextendedstaves/lang/en_us.json @@ -61,7 +61,7 @@ "lanishextendedstaves.page.functional_staves_1.crafting.desc.0": "For when you forget wood and you're already ~100 blocks deep in the geode", "lanishextendedstaves.page.functional_staves_1.crafting.header.1": "Sealed Improvised Amethyst Staff", "lanishextendedstaves.page.functional_staves_1.crafting.desc.1": "$(italic)We made it. We created it. We brought it forth from the night of the ages. We alone. Our hands. Our mind. Ours alone and only./$", - "lanishextendedstaves.page.functional_staves_1.1": "Furthermore, should I find myself enamored in its impure yet ordered, crude yet elegant, pungent yet aloft, glistening yet vacuous yet glistening yet-- $(br2)If I should like to keep it, I have found means of preventing its crumble, sealing it so that I may use it indefinitely.", + "lanishextendedstaves.page.functional_staves_1.1": "Furthermore, should I find myself enamored in its impure yet ordered, crude yet elegant, pungent yet aloft, glistening yet vacuous yet glistening yet-- $(br2)If I should like to keep it, I have found means of preventing its crumble, sealing it so that I may use it indefinitely. Though, of course, you cannot have your gleaming purple cake and eat it too, not more before the rapacious hands of Nature!", "lanishextendedstaves.entry.crossmod_staves_1": "Cross-Mod Staves", "lanishextendedstaves.page.crossmod_staves_1.0": "Whilst stumbling across the other powers that inhabit my world in addition to _Hexcasting, I've found myself entertaining the thought of using their arcane materials in staff construction. $(br2)To think, wielding a purple-gem-adorned staff carved from a magical wood that isn't purple! How blasphemous!", diff --git a/projects/1.19/assets/hextended-staves/lanishextendedstaves/lang/zh_cn.json b/projects/1.19/assets/hextended-staves/lanishextendedstaves/lang/zh_cn.json index 1cab5c726b89..5638c0a4f8b1 100644 --- a/projects/1.19/assets/hextended-staves/lanishextendedstaves/lang/zh_cn.json +++ b/projects/1.19/assets/hextended-staves/lanishextendedstaves/lang/zh_cn.json @@ -61,7 +61,7 @@ "lanishextendedstaves.page.functional_staves_1.crafting.desc.0": "专为身处地底百来格的晶洞中忘记带木头的情景准备", "lanishextendedstaves.page.functional_staves_1.crafting.header.1": "密封的临时紫水晶法杖", "lanishextendedstaves.page.functional_staves_1.crafting.desc.1": "$(italic)我们成功了。我们制造出了它。我们从时代的长夜中带出了它。仅凭我们自己。我们的双手。我们的意识。仅有我们自己。/$", - "lanishextendedstaves.page.functional_staves_1.1": "此外,如果我钟情于这种法杖那不纯而有序,粗糙而优雅,尖酸而崇高,闪光而虚无而闪光而——$(br2)如果我想要继续使用它,就必须寻得阻止其碎裂的方法,将其密封以无限使用。", + "lanishextendedstaves.page.functional_staves_1.1": "此外,如果我钟情于这种法杖那不纯而有序,粗糙而优雅,尖酸而崇高,闪光而虚无而闪光而——$(br2)如果我想要继续使用它,就必须寻得阻止其碎裂的方法,将其密封以无限使用。不过当然,闪亮的紫色蛋糕和能吃的蛋糕就如同鱼与熊掌,而这正是因为贪婪的自然!", "lanishextendedstaves.entry.crossmod_staves_1": "模组联动法杖", "lanishextendedstaves.page.crossmod_staves_1.0": "在研究世界上除$(hex)咒法学/$之外的其他力量时,“使用他们所用的奥术材料制造法杖”这一有趣的想法频频造访我的脑海。$(br2)我们来想想看,往一种不是紫色的魔法木材上装上一枚紫色的晶石!真是倒反天罡!", diff --git a/projects/1.20-fabric/assets/hextended-staves/hextended/README.md b/projects/1.20-fabric/assets/hextended-staves/hextended/README.md new file mode 100644 index 000000000000..531f3c5d70c8 --- /dev/null +++ b/projects/1.20-fabric/assets/hextended-staves/hextended/README.md @@ -0,0 +1 @@ +[见主文档](/projects/1.20/assets/hextended-staves/hextended) \ No newline at end of file diff --git a/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json b/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json new file mode 100644 index 000000000000..e8d5d98f75a3 --- /dev/null +++ b/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json @@ -0,0 +1,85 @@ +{ + "itemGroup.hextended": "Hextended's Gear", + + "item.hextended.staff.long.oak": "Extended Oak Staff", + "item.hextended.staff.long.spruce": "Extended Spruce Staff", + "item.hextended.staff.long.birch": "Extended Birch Staff", + "item.hextended.staff.long.jungle": "Extended Jungle Staff", + "item.hextended.staff.long.dark_oak": "Extended Dark Oak Staff", + "item.hextended.staff.long.acacia": "Extended Acacia Staff", + "item.hextended.staff.long.crimson": "Extended Crimson Staff", + "item.hextended.staff.long.warped": "Extended Warped Staff", + "item.hextended.staff.long.mangrove": "Extended Mangrove Staff", + "item.hextended.staff.long.edified": "Extended Edified Staff", + "item.hextended.staff.long.cherry": "Extended Cherry Staff", + "item.hextended.staff.long.bamboo": "Extended Bamboo Staff", + "item.hextended.staff.long.mindsplice": "Extended Mindsplice Staff", + "item.hextended.staff.long.quenched": "Extended Quenched Shard Staff", + + "item.hextended.staff.lesser_battery": "Improvised Amethyst Staff", + "item.hextended.staff.long.lesser_battery": "Improvised Extended Amethyst Staff", + "item.hextended.staff.sealed_lesser_battery": "Sealed Improvised Amethyst Staff", + "item.hextended.staff.long.sealed_lesser_battery": "Sealed Improvised Extended Amethyst Staff", + "item.hextended.staff.drawing_orb": "Drawing Orb", + + "item.hextended.staff.moss": "Mossy Staff", + "item.hextended.staff.flowered_moss": "Flowering Mossy Staff", + "item.hextended.staff.long.moss": "Extended Mossy Staff", + "item.hextended.staff.long.flowered_moss": "Extended Flowering Mossy Staff", + "item.hextended.staff.prismarine": "Prismarine Staff", + "item.hextended.staff.dark_prismarine": "Dark Prismarine Staff", + "item.hextended.staff.long.prismarine": "Extended Prismarine Staff", + "item.hextended.staff.long.dark_prismarine": "Extended Dark Prismarine Staff", + "item.hextended.staff.obsidian": "Obsidian Staff", + "item.hextended.staff.purpur": "Purpur Staff", + "item.hextended.staff.long.obsidian": "Extended Obsidian Staff", + "item.hextended.staff.long.purpur": "Extended Purpur Staff", + + "item.hextended.staff.long.quartz": "Extended Quartz Staff", + "item.hextended.staff.long.blaze": "Extended Blaze Staff", + "item.hextended.staff.long.wither": "Extended Wither Staff", + "item.hextended.staff.long.owlbert": "Extended Owl Staff", + "item.hextended.staff.long.ghost": "Extended Ghost Staff", + "item.hextended.staff.long.celestial": "Extended Celestial Staff", + "item.hextended.staff.long.longinus": "Extended Longinus Staff", + "item.hextended.staff.long.ice": "Extended Ice Staff", + "item.hextended.staff.long.carrot": "Extended Carrot Staff", + "item.hextended.staff.long.bee": "Extended Bee Staff", + + + + "hextended.entry.basic_extended_staves": "Extended Staves", + "hextended.page.basic_extended_staves.0" : "As I learn more about this art, I find myself yearning for variety in my instruments just as I do in my work. I've since $(italic)cast/$ some time into the craftmanship of these curious sticks. The length allows for a miniscule addition in grid space, but not as I might get from a $(l:items/lens)$(item)Scrying Lens/$. As such, I find the choice between it and $(l:items/staff)$(item)its shorter sibling/$ can still be made of preference, rather than use.", + "hextended.page.basic_extended_staves.crafting.header.0": "Extended Staves", + "hextended.page.basic_extended_staves.crafting.desc.0": "An extension $(italic)of an extension/$ of your mind", + "hextended.page.basic_extended_staves.crafting.header.1": "Mossy Staves", + "hextended.page.basic_extended_staves.crafting.desc.1": "$(italic)No single one can possess greater wisdom than the many Scholars who are elected by all men for their wisdom.$(br2).../$", + "hextended.page.basic_extended_staves.crafting.header.2": "Prismarine Staves", + "hextended.page.basic_extended_staves.crafting.desc.2": "$(italic)...$(br)Yet we can. We do. We have fought against saying it, but now it is said. We do not care.$(br2).../$", + "hextended.page.basic_extended_staves.crafting.header.3": "Obsidian Staff", + "hextended.page.basic_extended_staves.crafting.desc.3": "$(italic)...$(br)We forget all men, all laws and all things save our metals and our wires. So much is still to be learned!$(br2).../$", + "hextended.page.basic_extended_staves.crafting.header.4": "Purpur Staff", + "hextended.page.basic_extended_staves.crafting.desc.4": "$(italic)...$(br)So long a road lies before us, and what care we if we must travel it alone!/$", + + + "hextended.entry.functional_staves_1": "Functional Staves", + "hextended.page.functional_staves_1.0": "Of course, in my ingenuity, it would be narrow-minded to craft extensions of my staff only in the $(l:hexcasting:items/basic_extended_staves)physical sense$(/l). If I'm to cultivate a flexible and oh so utile art, my tools must so be as well. The first, a cleverly-thought but crudely built staff of amethyst. Peculiarly, the amethyst block will more readily crumble when directly used to weave the _media, providing itself to my _Hexes.", + "hextended.page.functional_staves_1.crafting.header.0": "Improvised Amethyst Staff", + "hextended.page.functional_staves_1.crafting.desc.0": "For when you forget wood and you're already ~100 blocks deep in the geode", + "hextended.page.functional_staves_1.crafting.header.1": "Sealed Improvised Amethyst Staff", + "hextended.page.functional_staves_1.crafting.desc.1": "$(italic)We made it. We created it. We brought it forth from the night of the ages. We alone. Our hands. Our mind. Ours alone and only./$", + "hextended.page.functional_staves_1.1": "Furthermore, should I find myself enamored in its impure yet ordered, crude yet elegant, pungent yet aloft, glistening yet vacuous yet glistening yet-- $(br2)If I should like to keep it, I have found means of preventing its crumble, sealing it so that I may use it indefinitely. Though, of course, you cannot have your gleaming purple cake and eat it too, not more before the rapacious hands of Nature!", + "hextended.page.functional_staves_1.2": "The second, a hefty sphere fashioned to hold iota, not unlike a $(l:hexcasting:items/focus)Focus$(/l). While this on its own proved convenient, it bears its marvel in the form of bringing things once out of my range to the palm of my hand.$(br)Seeking after the unique energy given off by player entities (which enables them to be affected by me from any distance), I've made something that can magnify $(o)any/$ entity reference into the range of my _Hexes, so long as I hold the orb in either hand.", + "hextended.page.functional_staves_1.crafting.desc.2": "Accepts any iota, but only amplifies signals from entities.$(br2)$(o)who up pondering they orb/$", + + "hextended.entry.crossmod_staves_1": "Cross-Mod Staves", + "hextended.page.crossmod_staves_1.0": "Whilst stumbling across the other powers that inhabit my world in addition to _Hexcasting, I've found myself entertaining the thought of using their arcane materials in staff construction. $(br2)To think, wielding a purple-gem-adorned staff carved from a magical wood that isn't purple! How blasphemous!", + "hextended.page.crossmod_staves_1.1": "In any case, these staves as well do not yet provide any additional benefit that I can discern. However, I maintain that they look quite a bit nicer when accompanying other tools made of the same materials in my arsenal. If I study other diverse tools and decide to use them myself, I'd do well to have a staff that feels at home next to them in my bag.", + "hextended.page.crossmod_staves_1.crafting.header.botania": "Botanical Staves", + "hextended.page.crossmod_staves_1.crafting.desc.botania": "Mana? I hardly-- wait, what was I $(o)supposed/$ to reference?", + "hextended.page.crossmod_staves_1.crafting.header.arsnouveau": "Archwood Staves", + "hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "", + + "hextended.entry.extended_fanciful_staves": "Extended Fanciful Staves", + "hextended.page.extended_fanciful_staves.1": "Just as well, these glorious new tools must reflect the radiance that I have gained in their form. Just as my perception has risen to see a new horizon, it is only right that the dazzling end of my staff see the same. It is only right that it follows in the $(o)length/$ of my wit, my stature, my influence, $(o)my power/$. It is only right." +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json b/projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json new file mode 100644 index 000000000000..61f3942c17a9 --- /dev/null +++ b/projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json @@ -0,0 +1,6 @@ +[ + { + "type": "indirect", + "source": "projects/1.20/assets/hextended-staves/hextended" + } +] \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json new file mode 100644 index 000000000000..e2db9e9f9e92 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json @@ -0,0 +1,126 @@ +{ + "complexhex.entry.complexities": "Complexities", + "hexcasting.action.complexhex:const/complex/i": "Constant Imagination", + "complexhex.page.complexities.const.i": "Pushes 0 + 1i to the stack.", + "hexcasting.action.complexhex:const/complex/1": "Constant Realisation", + "complexhex.page.complexities.const.1": "Pushes 1 + 0i to the stack.", + "complexhex.page.complexities.add": "Performs Addition, num will be treated as num + 0i.", + "complexhex.page.complexities.sub": "Performs Subtraction, num will be treated as num + 0i.", + "complexhex.page.complexities.mul": "Performs Multiplication", + "complexhex.page.complexities.div": "Performs Scalar Division.", + "complexhex.page.complexities.abs": "Pushes the Argument (the length).", + "complexhex.page.complexities.pow": "Performs Exponentiation.", + "hexcasting.action.complexhex:real": "Realising Complexities", + "complexhex.page.complexities.real": "Pushes the real coefficient.", + "hexcasting.action.complexhex:imaginary": "Imagining Complexities", + "complexhex.page.complexities.imaginary": "Pushes the imaginary coefficient.", + "hexcasting.action.complexhex:conjugate": "Conjugation Prfn.", + "complexhex.page.complexities.conjugate": "Negates the imaginary coefficient of the topmost iota", + + "complexhex.entry.quaternionics": "Quaternionics", + "hexcasting.action.complexhex:qmake": "Quaternionic Exal.", + "complexhex.page.quaternionics.qmake": "Pushes a Quaternion with num as the real coefficient and the vector's x, y, & z as the coefficients of i, j & k respectively.", + "hexcasting.action.complexhex:qunmake": "Quaternionic Dntg.", + "complexhex.page.quaternionics.qunmake": "Pushes the real coefficient and a vector where the x, y, & z components are the coefficients of i, j, & k respectively.", + "hexcasting.action.complexhex:const/quaternion/1": "Quaternionic Rfln.: 1", + "complexhex.page.quaternionics.const.1": "Pushes 1 + 0i + 0j + 0k to the stack.", + "hexcasting.action.complexhex:const/quaternion/i": "Quaternionic Rfln.: i", + "complexhex.page.quaternionics.const.i": "Pushes 0 + 1i + 0j + 0k to the stack.", + "hexcasting.action.complexhex:const/quaternion/j": "Quaternionic Rfln: j", + "complexhex.page.quaternionics.const.j": "Pushes 0 + 0i + 1j + 0k to the stack.", + "hexcasting.action.complexhex:const/quaternion/k": "Quaternionic Rfln: k", + "complexhex.page.quaternionics.const.k": "Pushes 0 + 0i + 0j + 1k to the stack.", + "complexhex.page.quaternionics.add": "Performs Addition", + "complexhex.page.quaternionics.sub": "Performs Subtraction", + "complexhex.page.quaternionics.mul": "Performs Multiplication, Scalar if a num & quat are given, Hamiltonian if 2 quaternions are given.", + "complexhex.page.quaternionics.div": "Performs Scalar Division.", + "complexhex.page.quaternionics.abs": "Pushes the Argument (the length).", + "hexcasting.action.complexhex:qw": "Quaterionic Prfn.: 1", + "complexhex.page.quaternionics.qw": "Pushes the coefficient of 1.", + "hexcasting.action.complexhex:qx": "Quaterionic Prfn.: i", + "complexhex.page.quaternionics.qx": "Pushes the coefficient of i.", + "hexcasting.action.complexhex:qy": "Quaterionic Prfn.: j", + "complexhex.page.quaternionics.qy": "Pushes the coefficient of j.", + "hexcasting.action.complexhex:qz": "Quaterionic Prfn: k", + "complexhex.page.quaternionics.qz": "Pushes the coefficient of k.", + "hexcasting.action.complexhex:qinvert": "Quaternionic Inverse", + "complexhex.page.quaternionics.qinvert": "Negates the coefficients of i, j, & k", + "hexcasting.action.complexhex:quattomat": "Matrixification", + "complexhex.page.quaternionics.quattomat": "Pushes a matrix that (should) represent the same rotation as the quaternion", + "hexcasting.action.complexhex:mattoquat": "Quaterniation", + "complexhex.page.quaternionics.mattoquat": "Pushes a quaternion that (should) reperesent the same rotation as the matrix", + "hexcasting.action.complexhex:axisangle": "Axis Angle Distillation", + "complexhex.page.quaternionics.axisangle": "Pushes a quaternion that reperesents a rotation by the given angle num radias around the given vector.", + + "complexhex.tooltip.bubble_contents": "{%s}", + "complexhex.entry.bubble": "Bubbles", + "hexcasting.action.complexhex:bubble": "Bubbles' Purification", + "complexhex.page.bubble": "Pushes a Bubbled Iota, which when popped via execution (by Hermes' or the likes), will push the contained iota to the stack.", + + "complexhex.entry.bits": "BIT Manipulation", + "complexhex.page.bitexplainer": "These are patterns to manipulate Block, Item, and Text Displays (BITs for short).$(br2)Oddly, Scout's Distillation does not seem to work on these, thus I must depend on Entity Prfn. or Zone Dstn.", + "hexcasting.action.complexhex:summonblockdisplay": "Summon Block Display", + "complexhex.page.summonblockdisplay": "Summons a Block Display entity at the given position, displaying the given block. (The string must be the internal name i.e \"minecraft:dirt\", not \"Dirt\").$(br)Costs about a $(l:items/amethyst)$(item)Charged Amethyst/$", + "hexcasting.action.complexhex:summonitemdisplay": "Summon Item Display", + "complexhex.page.summonitemdisplay": "Summons an Item Display entity at the given position, displaying the given item (The string must be the internal name i.e \"minecraft:stick\", not \"Stick\").$(br)Costs about a $(l:items/amethyst)$(item)Charged Amethyst/$", + "hexcasting.action.complexhex:summontextdisplay": "Summon Text Display", + "complexhex.page.summontextdisplay": "Summons a Text Display entity at the given position, displaying the given string. Costs about a $(l:items/amethyst)$(item)Charged Amethyst/$", + "hexcasting.action.complexhex:get_entity/bit": "Entity Purification: BIT", + "complexhex.page.get_entity/bit": "Transform the position on the stack into the BIT at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one)", + "hexcasting.action.complexhex:zone_entity/bit": "Zone Distillation: BIT", + "complexhex.page.zone_entity/bit": "Take a position and a maximum distance on the stack, and combine them into a list of BIT's near the position.", + "hexcasting.action.complexhex:zone_entity/not_bit": "Zone Distillation: Not BIT", + "complexhex.page.zone_entity/not_bit": "Take a position and a maximum distance on the stack, and combine them into a list of non-BIT's near the position.", + "hexcasting.action.complexhex:translatebit": "Translate BIT", + "complexhex.page.translatebit": "Translates the BIT to the given offset.", + "hexcasting.action.complexhex:rotatebit": "Rotate BIT", + "complexhex.page.rotatebit": "Rotates the BIT to the given Quaternion.", + "hexcasting.action.complexhex:scalebit": "Scale BIT", + "complexhex.page.scalebit": "Scales the BIT to the given vector.", + "hexcasting.action.complexhex:killbit": "Kill BIT", + "complexhex.page.killbit": "Kills & removes the given BIT.", + + "complexhex.mishap.bad_string.blockid": "a blockID", + "complexhex.mishap.bad_string.itemid": "an itemID", + "hexcasting.mishap.bad_string": "needs %s but got %s", + "hexcasting.mishap.invalid_value.class.quaternion": "a quaternion", + "hexcasting.mishap.invalid_value.class.complexnumber": "a complex number", + "hexcasting.mishap.invalid_value.class.bubble": "a bubble", + "hexcasting.mishap.invalid_value.class.bit": "a BIT", + "hexcasting.mishap.invalid_value.class.long": "a long", + "hexcasting.mishap.invalid_value.not_char": "a single character", + "hexcasting.mishap.invalid_value.char_or_num": "a single character or a number", + "hexcasting.mishap.bad_item.bit": "a BIT", + + "complexhex.category.maths": "Complex Mathematics", + "complexhex.category.maths.desc": "This is a collection of transcripts from a (now defunct) \"Mathematics Corps\". I'm not sure what use these have, but I $(o)would$() like to know what the researchers were on whilst writing them. ", + + "complexhex.entry.longs": "Longs", + "complexhex.page.longs.intro": "Whilst normal numbers in the form of $(l:patterns/numbers)doubles$() are extremely useful in all sorts of cases, there come many times where they're just not precise enough.$(br) To this end, $(thing)longs$() are used. Despite their limitations (such as only storing integers, and a lower maximum value), longs are still useful due to this granularity, each bit of them can be manipulated freely without worry for imprecision.", + "hexcasting.action.complexhex:long": "Long Reflection", + "complexhex.page.longs.special": "Just like with normal numbers, Nature is not so generous as to make this easy for us.$(br)(Details on next page)", + "complexhex.page.longs.special.explanation": "Thankfully, what each angle does to the count is very similar to the norm, the only differences being: $(li)a sharp left will shift the bits in the count to the left (effectively doubling them) $(li)a sharp right will shift the bits in the count to the right (effectively halving them*)$(p)$(p)* Due to a long's inability to contain a decimal, the value will always be rounded down.", + "complexhex.page.longs.example.43.header": "Example: 43L", + "complexhex.page.longs.example.43": "This pattern pushes 43L: (10 + 10 + 1) * 2 + 1 = 43", + "hexcasting.action.complexhex:long/convert": "Long Purification", + "complexhex.page.longs.convert": "Converts between $(l:patterns/numbers)doubles$() and $(thing)longs$()$(br)Always truncates the value when converting to long", + "complexhex.page.longs.add": "Perform Addition", + "complexhex.page.longs.sub": "Perform Subtraction", + "complexhex.page.longs.mul": "Perform Multiplication", + "complexhex.page.longs.div": "Perform Floored Division", + "complexhex.page.longs.and": "Perform Bitwise AND", + "complexhex.page.longs.or": "Perform Bitwise OR", + "complexhex.page.longs.not": "Perform Bitwise NOT", + "complexhex.page.longs.xor": "Perform Bitwise XOR", + "hexcasting.action.complexhex:shift/left": "Left Shift Distillation", + "complexhex.page.longs.lshift": "Shifts all the bits to the left num times", + "hexcasting.action.complexhex:shift/right/logical": "Logical Right Shift Dstl.", + "complexhex.page.longs.rshift.logical": "Shifts all the bits to the right num times", + "hexcasting.action.complexhex:shift/right/arithmetic": "Arithmetic R. Shift Dstl.", + "complexhex.page.longs.rshift.arithmetic": "Shifts all the bits to the right num times while preserving the sign", + + "complexhex.entry.misc": "Miscellaneous Complexes", + + "hexcasting.action.complexhex:ascii": "UTF Purification", + "complexhex.page.misc.ascii": "Swaps between a string of a $(italics)single character$() and an integer representing that character.
Uses the $(thing)UTF-16$() character map." +} diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json new file mode 100644 index 000000000000..b48d5a9aa191 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json @@ -0,0 +1,126 @@ +{ + "complexhex.entry.complexities": "复数", + "hexcasting.action.complexhex:const/complex/i": "虚化常数", + "complexhex.page.complexities.const.i": "将 0 + 1i 压入栈顶。", + "hexcasting.action.complexhex:const/complex/1": "实化常数", + "complexhex.page.complexities.const.1": "将 1 + 0i 压入栈顶。", + "complexhex.page.complexities.add": "执行加法,num 视作 num + 0i。", + "complexhex.page.complexities.sub": "执行减法,num 视作 num + 0i。", + "complexhex.page.complexities.mul": "执行乘法。", + "complexhex.page.complexities.div": "执行标量除法。", + "complexhex.page.complexities.abs": "返回模(即模长)。", + "complexhex.page.complexities.pow": "执行指数运算。", + "hexcasting.action.complexhex:real": "实化复数", + "complexhex.page.complexities.real": "返回复数实部。", + "hexcasting.action.complexhex:imaginary": "虚化复数", + "complexhex.page.complexities.imaginary": "返回复数虚部。", + "hexcasting.action.complexhex:conjugate": "共轭之纯化", + "complexhex.page.complexities.conjugate": "取反栈顶 iota 的虚部。", + + "complexhex.entry.quaternionics": "四元数", + "hexcasting.action.complexhex:qmake": "四元数之提整", + "complexhex.page.quaternionics.qmake": "返回一个四元数,其标量部为所给数,i、j、k 的系数分别为所给向量的 x、y、z 值。", + "hexcasting.action.complexhex:qunmake": "四元数之拆解", + "complexhex.page.quaternionics.qunmake": "返回一个数和一个向量,数为所给四元数的标量部,向量的 x、y、z 值分别为所给四元数的 i、j、k 的系数。", + "hexcasting.action.complexhex:const/quaternion/1": "四元数之精思:1", + "complexhex.page.quaternionics.const.1": "将 1 + 0i + 0j + 0k 压入栈顶。", + "hexcasting.action.complexhex:const/quaternion/i": "四元数之精思:i", + "complexhex.page.quaternionics.const.i": "将 0 + 1i + 0j + 0k 压入栈顶。", + "hexcasting.action.complexhex:const/quaternion/j": "四元数之精思:j", + "complexhex.page.quaternionics.const.j": "将 0 + 0i + 1j + 0k 压入栈顶。", + "hexcasting.action.complexhex:const/quaternion/k": "四元数之精思:k", + "complexhex.page.quaternionics.const.k": "将 0 + 0i + 0j + 1k 压入栈顶。", + "complexhex.page.quaternionics.add": "执行加法。", + "complexhex.page.quaternionics.sub": "执行减法。", + "complexhex.page.quaternionics.mul": "执行乘法。给定一个数和一个四元数,则执行标量乘法;给定两个四元数,则执行四元数乘法。", + "complexhex.page.quaternionics.div": "执行标量除法。", + "complexhex.page.quaternionics.abs": "返回模(即模长)。", + "hexcasting.action.complexhex:qw": "四元数之纯化:1", + "complexhex.page.quaternionics.qw": "返回 1 的系数。", + "hexcasting.action.complexhex:qx": "四元数之纯化:i", + "complexhex.page.quaternionics.qx": "返回 i 的系数。", + "hexcasting.action.complexhex:qy": "四元数之纯化:j", + "complexhex.page.quaternionics.qy": "返回 j 的系数。", + "hexcasting.action.complexhex:qz": "四元数之纯化:k", + "complexhex.page.quaternionics.qz": "返回 k 的系数。", + "hexcasting.action.complexhex:qinvert": "四元数逆", + "complexhex.page.quaternionics.qinvert": "取反 i、j、k 的系数。", + "hexcasting.action.complexhex:quattomat": "矩阵化", + "complexhex.page.quaternionics.quattomat": "返回一个矩阵,此矩阵应当与给定四元数代表同一旋转操作。", + "hexcasting.action.complexhex:mattoquat": "四元数化", + "complexhex.page.quaternionics.mattoquat": "返回一个四元数,此四元数应当与给定矩阵代表同一旋转操作。", + "hexcasting.action.complexhex:axisangle": "轴角之馏化", + "complexhex.page.quaternionics.axisangle": "返回一个四元数,此四元数代表沿所给向量旋转所给数个弧度的旋转操作。", + + "complexhex.tooltip.bubble_contents": "{%s}", + "complexhex.entry.bubble": "封泡", + "hexcasting.action.complexhex:bubble": "封泡之纯化", + "complexhex.page.bubble": "返回一个封泡 iota。在运行(赫尔墨斯之策略等)中弹出此类 iota 时,其会将内部的 iota 压入栈顶。", + + "complexhex.entry.bits": "BIT 操纵", + "complexhex.page.bitexplainer": "这些图案用于操纵方块、物品、文本展示体(简称 BIT)。$(br2)奇怪之处在于,侦查员之馏化对这些展示体无效,因此必须换用实体之纯化和区域之馏化。", + "hexcasting.action.complexhex:summonblockdisplay": "召唤方块展示体", + "complexhex.page.summonblockdisplay": "在给定位置召唤一个方块展示体实体,以展示给定方块。(所给字符串需是内部名称,如“minecraft:dirt”,而非“泥土”。)$(br)消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶/$。", + "hexcasting.action.complexhex:summonitemdisplay": "召唤物品展示体", + "complexhex.page.summonitemdisplay": "在给定位置召唤一个物品展示体实体,以展示给定物品。(所给字符串需是内部名称,如“minecraft:stick”,而非“木棍”。)$(br)消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶/$。", + "hexcasting.action.complexhex:summontextdisplay": "召唤文本展示体", + "complexhex.page.summontextdisplay": "在给定位置召唤一个文本展示体实体,以展示给定字符串。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶/$。", + "hexcasting.action.complexhex:get_entity/bit": "实体之纯化:BIT", + "complexhex.page.get_entity/bit": "将栈顶位置向量变为该处 BIT(若无则返回 $(l:casting/influences)$(thing)Null/$)。", + "hexcasting.action.complexhex:zone_entity/bit": "区域之馏化:BIT", + "complexhex.page.zone_entity/bit": "从栈顶获取位置及最大距离,返回该位置给定距离范围内所有 BIT 的列表。", + "hexcasting.action.complexhex:zone_entity/not_bit": "区域之馏化:非 BIT", + "complexhex.page.zone_entity/not_bit": "从栈顶获取位置及最大距离,返回该位置给定距离范围内所有非 BIT 的列表。", + "hexcasting.action.complexhex:translatebit": "平移 BIT", + "complexhex.page.translatebit": "以给定偏移量平移 BIT。", + "hexcasting.action.complexhex:rotatebit": "旋转 BIT", + "complexhex.page.rotatebit": "以给定四元数旋转 BIT。", + "hexcasting.action.complexhex:scalebit": "缩放 BIT", + "complexhex.page.scalebit": "以给定向量缩放 BIT。", + "hexcasting.action.complexhex:killbit": "清除 BIT", + "complexhex.page.killbit": "清理并移除给定 BIT。", + + "complexhex.mishap.bad_string.blockid": "一个方块ID", + "complexhex.mishap.bad_string.itemid": "一个物品ID", + "hexcasting.mishap.bad_string": "本应提供%s,而实际为%s", + "hexcasting.mishap.invalid_value.class.quaternion": "一个四元数", + "hexcasting.mishap.invalid_value.class.complexnumber": "一个复数", + "hexcasting.mishap.invalid_value.class.bubble": "一个封泡", + "hexcasting.mishap.invalid_value.class.bit": "一个BIT", + "hexcasting.mishap.invalid_value.class.long": "一个长整型", + "hexcasting.mishap.invalid_value.not_char": "一个字符", + "hexcasting.mishap.invalid_value.char_or_num": "一个字符或数", + "hexcasting.mishap.bad_item.bit": "一个BIT", + + "complexhex.category.maths": "Complex Hex 数学", + "complexhex.category.maths.desc": "这里收录了来自“数学军团”(现已解散)的文件记录。我不太清楚它们的具体用途,不过我确实$(o)想$()知道研究者们写下它们时究竟在研究什么。", + + "complexhex.entry.longs": "长整型", + "complexhex.page.longs.intro": "虽然以$(l:patterns/numbers)双精度$()形式存在的普通数适用于绝大多数场景,但也有不少情况会精度不够。$(br)为解决这一问题,可以使用$(thing)长整型$()。长整型虽然有其局限(只能存储整数,最大值较小),也还是会因为许多原因得到运用:粒度小,进行位操作不会损失精度。", + "hexcasting.action.complexhex:long": "长整型之精思", + "complexhex.page.longs.special": "和普通的数一样,自然也没好心到给出对我们来说足够简单的创建方法。$(br)(详情见后页)", + "complexhex.page.longs.special.explanation": "好在,各个笔画方向的意义与普通数很相似,两者间的差别在于:$(li)向左下方的笔画执行左移(相当于乘 2)$(li)向右下方的笔画执行右移(相当于除以 2*)$(p)$(p)* 由于长整型无法存储小数,所得值会取底。", + "complexhex.page.longs.example.43.header": "示例:43L", + "complexhex.page.longs.example.43": "此图案会返回 43L:(10 + 10 + 1) * 2 + 1 = 43", + "hexcasting.action.complexhex:long/convert": "长整型之纯化", + "complexhex.page.longs.convert": "来回转换$(l:patterns/numbers)双精度$()数和$(thing)长整型$()数。$(br)转换至长整型时会进行截尾。", + "complexhex.page.longs.add": "执行加法。", + "complexhex.page.longs.sub": "执行减法。", + "complexhex.page.longs.mul": "执行乘法。", + "complexhex.page.longs.div": "执行取底整除。", + "complexhex.page.longs.and": "执行按位与。", + "complexhex.page.longs.or": "执行按位或。", + "complexhex.page.longs.not": "执行按位非。", + "complexhex.page.longs.xor": "执行按位异或。", + "hexcasting.action.complexhex:shift/left": "左移之馏化", + "complexhex.page.longs.lshift": "将所有位左移 num 次。", + "hexcasting.action.complexhex:shift/right/logical": "逻辑右移之馏化", + "complexhex.page.longs.rshift.logical": "将所有位右移 num 次。", + "hexcasting.action.complexhex:shift/right/arithmetic": "算术右移之馏化", + "complexhex.page.longs.rshift.arithmetic": "将所有位右移 num 次,且保留符号。", + + "complexhex.entry.misc": "Complex Hex 杂项", + + "hexcasting.action.complexhex:ascii": "UTF 之纯化", + "complexhex.page.misc.ascii": "将串中的$(italics)字符$()转换为代表该字符的数,也可反方向转换。$(br)使用$(thing)UTF-16$()字符编码表。" +} diff --git a/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/en_us.json new file mode 100644 index 000000000000..e51dfd32fa34 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/en_us.json @@ -0,0 +1,33 @@ +{ + "hexportation.entry.conduit": "Conduits", + + "hexcasting.action.hexportation:make_conduit": "Create Conduit", + "hexportation.page.make_conduit": "Takes the position & normal of the source storage and the position & normal of the sink storage and creates a media conduit.$(br)Costs 36 Charged Amethyst to weave the conduit no matter its length.", + "hexcasting.action.hexportation:send_item": "Send", + "hexportation.page.send_item": "Sends the specified amount of items through the conduit. Will take the first resources it finds.$(br)Free if used in a spell circle.", + "hexcasting.action.hexportation:get_source_inv": "Source Data", + "hexportation.page.get_source_inv": "Returns a list of Views that reperesent each slot in the conduit's source storage.", + "hexcasting.action.hexportation:get_sink_inv": "Sink Data", + "hexportation.page.get_sink_inv": "Returns a list of Views that reperesent each slot in the conduit's sink storage.", + "hexcasting.action.hexportation:send_item_filt": "Metered Send", + "hexportation.page.send_item_filt": "Will attempt to send the specified amount of resource from each slot respectively. Will not mishap if the list does not match the storage size.$(br)Free if used in a spell circle.", + "hexcasting.action.hexportation:get_view_amount": "View Prfn. : Amount", + "hexportation.page.get_view_amount": "Returns the amount of the resources in the specified view", + "hexcasting.action.hexportation:get_view_capacity": "View Prfn. : Capacity", + "hexportation.page.get_view_capacity": "Returns the capacity of the resources in the specified view", + "hexcasting.action.hexportation:get_view_name": "View Prfn. : Name", + "hexportation.page.get_view_name": "Returns the name of the resources in the specified view", + "hexportation.page.fluid_units": "It should be noted that whilst a view iota that represents a fluid will display its amount/capacity in millibuckets for ease of comparison, the patterns to get each value will return the amount in droplets.$(br) Conversions between fluid units can be found elsewhere, but for simplicities sake, 1 Bucket = 81000 Droplets", + "hexcasting.action.hexportation:slurp": "Slurp", + "hexportation.page.slurp": "Will grab one item entity at the conduit's source and insert it into the target inventory. Can also grab a buckets worth of fluid in the same way.$(br)Free if used in a spell circle.", + "hexcasting.action.hexportation:spit": "Spit", + "hexportation.page.spit": "Will take the contents of the first filled slot of the source inventory and drop it at the conduit's target. Can also place a buckets worth of fluid in the same way.$(br)Free if used in a Spell Circle", + "hexcasting.action.hexportation:transplace": "Transplace", + "hexportation.page.transplace": "Will transport any and all entities standing within the source position of the conduit to the sink position of said conduit.$(br)Free if used in a spell circle, otherwise 1 shard per victim.", + + "hexcasting.mishap.invalid_value.class.conduit": "a conduit", + "hexcasting.mishap.invalid_value.class.invalid_conduit": "a valid conduit", + "hexcasting.mishap.invalid_value.class.view": "a view", + + "hexportation.energyname": "Energy" +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/zh_cn.json new file mode 100644 index 000000000000..e8ef134489af --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/zh_cn.json @@ -0,0 +1,33 @@ +{ + "hexportation.entry.conduit": "输流通路", + + "hexcasting.action.hexportation:make_conduit": "创建输流", + "hexportation.page.make_conduit": "接受来源存储空间的位置与输出面法向量,以及目的存储空间的位置和输入面法向量,依此创建一条输流通路。$(br)无论通路有多长,创建都统一消耗 36 个充能紫水晶。", + "hexcasting.action.hexportation:send_item": "输送", + "hexportation.page.send_item": "令给定输流通路发出给定数量的物品。会使用找到的第一处资源。$(br)在法术环中使用时无需消耗媒质。", + "hexcasting.action.hexportation:get_source_inv": "来源数据", + "hexportation.page.get_source_inv": "获取输流通路来源存储空间各槽位对应的视槽,组为列表返回。", + "hexcasting.action.hexportation:get_sink_inv": "目的数据", + "hexportation.page.get_sink_inv": "获取输流通路目的存储空间各槽位对应的视槽,组为列表返回。", + "hexcasting.action.hexportation:send_item_filt": "计量输送", + "hexportation.page.send_item_filt": "尝试从各个槽位取出给定数量的资源发送。列表与存储空间的槽位数不符不会招致事故。$(br)在法术环中使用时无需消耗媒质。", + "hexcasting.action.hexportation:get_view_amount": "视槽之纯化:数量", + "hexportation.page.get_view_amount": "返回所给视槽中资源的量。", + "hexcasting.action.hexportation:get_view_capacity": "视槽之纯化:容量", + "hexportation.page.get_view_capacity": "返回所给视槽中资源的最大容量。", + "hexcasting.action.hexportation:get_view_name": "视槽之纯化:名称", + "hexportation.page.get_view_name": "返回所给视槽中资源的名称。", + "hexportation.page.fluid_units": "需注意,为便于比较,视槽 iota 会以毫桶为单位显示流体的数量和容量,但前页图案的返回值会以滴为单位。$(br)流体单位的换算请参阅其他资料;简单说明的话,1 桶 = 81000 滴。", + "hexcasting.action.hexportation:slurp": "纳物", + "hexportation.page.slurp": "从输流通路的来源取走一个物品实体,将其存入目标存储空间。同种方式还可用来取走一桶流体。$(br)在法术环中使用时无需消耗媒质。", + "hexcasting.action.hexportation:spit": "吐物", + "hexportation.page.spit": "取走来源存储空间中第一个存有事物的槽位的内容物,再投放到目标位置。同种方式还可用来倒出一桶流体。$(br)在法术环中使用时无需消耗媒质。", + "hexcasting.action.hexportation:transplace": "转位", + "hexportation.page.transplace": "将输流通路来源位置处的所有实体传送到目标位置。$(br)在法术环中使用时无需消耗媒质,否则每传送 1 个实体消耗 1 个紫水晶碎片。", + + "hexcasting.mishap.invalid_value.class.conduit": "一个输流通路", + "hexcasting.mishap.invalid_value.class.invalid_conduit": "一个有效的输流通路", + "hexcasting.mishap.invalid_value.class.view": "一个视槽", + + "hexportation.energyname": "能量" +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/en_us.json b/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/en_us.json new file mode 100644 index 000000000000..5c2686463820 --- /dev/null +++ b/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/en_us.json @@ -0,0 +1,43 @@ +{ + "hexcasting.action.movesthemind:create":"Summon Creature", + "hexcasting.action.movesthemind:destroy":"Banish Creature", + + "hexcasting.action.movesthemind:move/stopall":"Halt Creature", + "hexcasting.action.movesthemind:move/walk":"Bid: Walking", + "hexcasting.action.movesthemind:move/strafe":"Bid: Strafing", + "hexcasting.action.movesthemind:move/look":"Bid: Looking", + "hexcasting.action.movesthemind:move/jump":"Bid: Jumping", + "hexcasting.action.movesthemind:move/sneak":"Bid: Sneaking", + "hexcasting.action.movesthemind:move/sprint":"Bid: Sprinting", + + "hexcasting.action.movesthemind:move/use":"Bid: Use Item", + "hexcasting.action.movesthemind:move/attack":"Bid: Attack", + "hexcasting.action.movesthemind:move/swap_hands":"Bid: Swap Hands", + "hexcasting.action.movesthemind:move/hotbar":"Bid: Select Toolbar", + "hexcasting.action.movesthemind:move/drop":"Bid: Drop Item", + + + "movesthemind.entry.spells" : "Carpet Player Manipulation", + + "movesthemind.page.spells.0" : "They appear like me, but their demeanor does not match. Familiarly, this--dare I say--creature, is distinctly unhuman. And yet, I can communicate with it; It's as if someone's cauterized all its inputs, save the signal to start its work. $(br2)And so that signal is what I shall give it. The following pages will refer to them as Bids. Most cost a tenth of a dust.", + "movesthemind.page.spells.move/stopall" : "An important signal! Stops actions being performed by the creature, continuous and otherwise. Conveniently, an exception to the cost rule facing this page; It's free to cast.", + "movesthemind.page.spells.create": "Bids the creature to the given location. Costs a charged amethyst.", + "movesthemind.page.spells.destroy" : "Banishes the creature, making it disappear until I call it back. One Shard.", + + "movesthemind.page.spells.move/walk" : "Instructs the creature to walk along its facing. A 1 beckons it forth, and a -1 backward. Interestingly, a 0 causes it to stop, as if I had halted it.", + "movesthemind.page.spells.move/strafe" : "As previous, but along strafing. A 1, then, beckons it to the left, and a -1 to the right.", + "movesthemind.page.spells.move/look" : "Instructs the creature to look in a direction. The vector can be of any length. Seems to work on myself in the eyes of Nature, even though I don't feel or see the change.", + "movesthemind.page.spells.move/jump" : "Simply instructs the creature to hop. Also works on myself.", + "movesthemind.page.spells.move/sneak" : "Takes a boolean and tells the creature to start or stop sneaking. Also seems to work on myself, until my synapses kick in a moment after. Maybe it could be of use with other bids?", + "movesthemind.page.spells.move/sprint" : "As previous, but with sprinting. Even when stationary, the creature produces sprinting particles to denote its intention.", + + "movesthemind.page.spells.move/use" : "Now, an interesting pair of instructions. Begin to use or attack with the held item at an interval, in twentieths of a second. $(br)Both work on myself, though the former strangely.", + "movesthemind.page.spells.move/attack" : "Given 0, uses it continuously, such as eating or channeling, or in the case of Attack, mining. Given -1, uses or attacks once and stops.", + "movesthemind.page.spells.move/hotbar" : "Takes a number from 1 to 9 inclusive, and instructs to select that slot in its toolbar. Works on myself, but may interrupt things like drawing patterns.", + "movesthemind.page.spells.move/swap_hands" : "Instructs the creature to hand its mainhand item into its offhand, and vice versa. As previous, in its function to myself.", + "movesthemind.page.spells.move/drop" : "Instructs the creature to drop the item or stack of items it holds in its main hand. Can even yank an item from my own hand, as I'm so familiar with.", + + + "advancement.movesthemind:try_banish_self" : "I Don't Want to Live on this Planet Anymore", + "advancement.movesthemind:try_banish_self.desc" : "As a real player, try to cast Banish Creature on yourself." +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/zh_cn.json b/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/zh_cn.json new file mode 100644 index 000000000000..4105e92c265f --- /dev/null +++ b/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/zh_cn.json @@ -0,0 +1,43 @@ +{ + "hexcasting.action.movesthemind:create": "召唤假人", + "hexcasting.action.movesthemind:destroy": "驱除假人", + + "hexcasting.action.movesthemind:move/stopall": "暂停假人", + "hexcasting.action.movesthemind:move/walk": "指示:行走", + "hexcasting.action.movesthemind:move/strafe": "指示:挪移", + "hexcasting.action.movesthemind:move/look": "指示:目视", + "hexcasting.action.movesthemind:move/jump": "指示:跳跃", + "hexcasting.action.movesthemind:move/sneak": "指示:潜行", + "hexcasting.action.movesthemind:move/sprint": "指示:疾跑", + + "hexcasting.action.movesthemind:move/use": "指示:使用物品", + "hexcasting.action.movesthemind:move/attack": "指示:攻击", + "hexcasting.action.movesthemind:move/swap_hands": "指示:换手", + "hexcasting.action.movesthemind:move/hotbar": "指示:选择快捷栏", + "hexcasting.action.movesthemind:move/drop": "指示:丢下物品", + + + "movesthemind.entry.spells": "地毯玩家操作", + + "movesthemind.page.spells.0": "它们长得很像我,但行为举止截然不同。这种——应该可以这么说——假人,很明显不是人。然而,我居然能和它们交流;就好像它们其他所有接收信息的窗都被封死,仅留下启动信号对应的大门。$(br2)所以,我只会给它们启动信号。后页会将这些信号称作“指示”。大多数消耗 1/10 个紫水晶粉。", + "movesthemind.page.spells.move/stopall": "一个重要的信号!停止假人手上的工作,持续性或是一次性工作均可。它无需消耗媒质,是前页消耗规则的特例。", + "movesthemind.page.spells.create": "在给定位置指示假人出现。消耗 1 个充能紫水晶。", + "movesthemind.page.spells.destroy": "驱除假人,让其消失,直至我再次召唤。消耗 1 个紫水晶碎片。", + + "movesthemind.page.spells.move/walk": "指示假人朝其面向的方向行走。传入 1 为向前,-1 为向后。有意思的是,传入 0 会让它停下,就好像让它暂停了一样。", + "movesthemind.page.spells.move/strafe": "和前页图案一样,区别在于朝左右移动。传入 1 为向左,-1 为向右。", + "movesthemind.page.spells.move/look": "指示假人看向某个方向。向量长度随意。在自然看来似乎对我自己也有效,不过我实际没有感受到或看见任何变化。", + "movesthemind.page.spells.move/jump": "指示假人跳跃。对我自己也有效。", + "movesthemind.page.spells.move/sneak": "接受一个布尔值,指示假人开始或结束潜行。似乎对我自己也有效,只不过马上我的突触就会反应过来,让其失效。也许可以和其他指示配合?", + "movesthemind.page.spells.move/sprint": "和前页图案一样,区别在于切换疾跑与否。假人站立不动时也会产生疾跑粒子,以表明其意图。", + + "movesthemind.page.spells.move/use": "这对图案有意思。它们可让假人按所给间隔使用手持物品或用它攻击,间隔以 1/20 秒计。$(br)两者对我都有效,但前者的效果比较奇怪。", + "movesthemind.page.spells.move/attack": "传入 0 会让其持续执行动作,如进食和三叉戟蓄力,攻击指示下则类似于挖掘。传入 -1,则使用或攻击一次即停止。", + "movesthemind.page.spells.move/hotbar": "接受一个 1 到 9 的数,包括 1 和 9,并指示假人选择其快捷栏中该槽位。对我也有效,但可能会打断绘制图案等事情。", + "movesthemind.page.spells.move/swap_hands": "指示假人将主手物品换至副手,反过来也行。和之前的一样,对我也有效。", + "movesthemind.page.spells.move/drop": "指示假人丢下其主手持有的物品或物品组。甚至能让我手里的物品飞出去,这可太熟悉了。", + + + "advancement.movesthemind:try_banish_self": "我不想再在这颗星球上待下去了", + "advancement.movesthemind:try_banish_self.desc": "身为真正的玩家,对自身施放驱除假人。" +} \ No newline at end of file diff --git a/projects/1.20/assets/hextended-staves/hextended/README.md b/projects/1.20/assets/hextended-staves/hextended/README.md new file mode 100644 index 000000000000..bb3b15a18ffd --- /dev/null +++ b/projects/1.20/assets/hextended-staves/hextended/README.md @@ -0,0 +1,19 @@ +### 总概 + +```mermaid +flowchart LR + 1.20.1 -->|indirect| 1.20.1-fabric + 1.19.2 +``` + +``` +1.20.1 + └── 1.20.1-fabric +1.19.2 +``` + +### 链接区域 + +- [1.19.2](/projects/1.19/assets/hextended-staves/lanishextendedstaves) +- [1.20.1](/projects/1.20/assets/hextended-staves/hextended) +- [1.20.1-fabric](/projects/1.20-fabric/assets/hextended-staves/hextended) \ No newline at end of file diff --git a/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json b/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json new file mode 100644 index 000000000000..e8d5d98f75a3 --- /dev/null +++ b/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json @@ -0,0 +1,85 @@ +{ + "itemGroup.hextended": "Hextended's Gear", + + "item.hextended.staff.long.oak": "Extended Oak Staff", + "item.hextended.staff.long.spruce": "Extended Spruce Staff", + "item.hextended.staff.long.birch": "Extended Birch Staff", + "item.hextended.staff.long.jungle": "Extended Jungle Staff", + "item.hextended.staff.long.dark_oak": "Extended Dark Oak Staff", + "item.hextended.staff.long.acacia": "Extended Acacia Staff", + "item.hextended.staff.long.crimson": "Extended Crimson Staff", + "item.hextended.staff.long.warped": "Extended Warped Staff", + "item.hextended.staff.long.mangrove": "Extended Mangrove Staff", + "item.hextended.staff.long.edified": "Extended Edified Staff", + "item.hextended.staff.long.cherry": "Extended Cherry Staff", + "item.hextended.staff.long.bamboo": "Extended Bamboo Staff", + "item.hextended.staff.long.mindsplice": "Extended Mindsplice Staff", + "item.hextended.staff.long.quenched": "Extended Quenched Shard Staff", + + "item.hextended.staff.lesser_battery": "Improvised Amethyst Staff", + "item.hextended.staff.long.lesser_battery": "Improvised Extended Amethyst Staff", + "item.hextended.staff.sealed_lesser_battery": "Sealed Improvised Amethyst Staff", + "item.hextended.staff.long.sealed_lesser_battery": "Sealed Improvised Extended Amethyst Staff", + "item.hextended.staff.drawing_orb": "Drawing Orb", + + "item.hextended.staff.moss": "Mossy Staff", + "item.hextended.staff.flowered_moss": "Flowering Mossy Staff", + "item.hextended.staff.long.moss": "Extended Mossy Staff", + "item.hextended.staff.long.flowered_moss": "Extended Flowering Mossy Staff", + "item.hextended.staff.prismarine": "Prismarine Staff", + "item.hextended.staff.dark_prismarine": "Dark Prismarine Staff", + "item.hextended.staff.long.prismarine": "Extended Prismarine Staff", + "item.hextended.staff.long.dark_prismarine": "Extended Dark Prismarine Staff", + "item.hextended.staff.obsidian": "Obsidian Staff", + "item.hextended.staff.purpur": "Purpur Staff", + "item.hextended.staff.long.obsidian": "Extended Obsidian Staff", + "item.hextended.staff.long.purpur": "Extended Purpur Staff", + + "item.hextended.staff.long.quartz": "Extended Quartz Staff", + "item.hextended.staff.long.blaze": "Extended Blaze Staff", + "item.hextended.staff.long.wither": "Extended Wither Staff", + "item.hextended.staff.long.owlbert": "Extended Owl Staff", + "item.hextended.staff.long.ghost": "Extended Ghost Staff", + "item.hextended.staff.long.celestial": "Extended Celestial Staff", + "item.hextended.staff.long.longinus": "Extended Longinus Staff", + "item.hextended.staff.long.ice": "Extended Ice Staff", + "item.hextended.staff.long.carrot": "Extended Carrot Staff", + "item.hextended.staff.long.bee": "Extended Bee Staff", + + + + "hextended.entry.basic_extended_staves": "Extended Staves", + "hextended.page.basic_extended_staves.0" : "As I learn more about this art, I find myself yearning for variety in my instruments just as I do in my work. I've since $(italic)cast/$ some time into the craftmanship of these curious sticks. The length allows for a miniscule addition in grid space, but not as I might get from a $(l:items/lens)$(item)Scrying Lens/$. As such, I find the choice between it and $(l:items/staff)$(item)its shorter sibling/$ can still be made of preference, rather than use.", + "hextended.page.basic_extended_staves.crafting.header.0": "Extended Staves", + "hextended.page.basic_extended_staves.crafting.desc.0": "An extension $(italic)of an extension/$ of your mind", + "hextended.page.basic_extended_staves.crafting.header.1": "Mossy Staves", + "hextended.page.basic_extended_staves.crafting.desc.1": "$(italic)No single one can possess greater wisdom than the many Scholars who are elected by all men for their wisdom.$(br2).../$", + "hextended.page.basic_extended_staves.crafting.header.2": "Prismarine Staves", + "hextended.page.basic_extended_staves.crafting.desc.2": "$(italic)...$(br)Yet we can. We do. We have fought against saying it, but now it is said. We do not care.$(br2).../$", + "hextended.page.basic_extended_staves.crafting.header.3": "Obsidian Staff", + "hextended.page.basic_extended_staves.crafting.desc.3": "$(italic)...$(br)We forget all men, all laws and all things save our metals and our wires. So much is still to be learned!$(br2).../$", + "hextended.page.basic_extended_staves.crafting.header.4": "Purpur Staff", + "hextended.page.basic_extended_staves.crafting.desc.4": "$(italic)...$(br)So long a road lies before us, and what care we if we must travel it alone!/$", + + + "hextended.entry.functional_staves_1": "Functional Staves", + "hextended.page.functional_staves_1.0": "Of course, in my ingenuity, it would be narrow-minded to craft extensions of my staff only in the $(l:hexcasting:items/basic_extended_staves)physical sense$(/l). If I'm to cultivate a flexible and oh so utile art, my tools must so be as well. The first, a cleverly-thought but crudely built staff of amethyst. Peculiarly, the amethyst block will more readily crumble when directly used to weave the _media, providing itself to my _Hexes.", + "hextended.page.functional_staves_1.crafting.header.0": "Improvised Amethyst Staff", + "hextended.page.functional_staves_1.crafting.desc.0": "For when you forget wood and you're already ~100 blocks deep in the geode", + "hextended.page.functional_staves_1.crafting.header.1": "Sealed Improvised Amethyst Staff", + "hextended.page.functional_staves_1.crafting.desc.1": "$(italic)We made it. We created it. We brought it forth from the night of the ages. We alone. Our hands. Our mind. Ours alone and only./$", + "hextended.page.functional_staves_1.1": "Furthermore, should I find myself enamored in its impure yet ordered, crude yet elegant, pungent yet aloft, glistening yet vacuous yet glistening yet-- $(br2)If I should like to keep it, I have found means of preventing its crumble, sealing it so that I may use it indefinitely. Though, of course, you cannot have your gleaming purple cake and eat it too, not more before the rapacious hands of Nature!", + "hextended.page.functional_staves_1.2": "The second, a hefty sphere fashioned to hold iota, not unlike a $(l:hexcasting:items/focus)Focus$(/l). While this on its own proved convenient, it bears its marvel in the form of bringing things once out of my range to the palm of my hand.$(br)Seeking after the unique energy given off by player entities (which enables them to be affected by me from any distance), I've made something that can magnify $(o)any/$ entity reference into the range of my _Hexes, so long as I hold the orb in either hand.", + "hextended.page.functional_staves_1.crafting.desc.2": "Accepts any iota, but only amplifies signals from entities.$(br2)$(o)who up pondering they orb/$", + + "hextended.entry.crossmod_staves_1": "Cross-Mod Staves", + "hextended.page.crossmod_staves_1.0": "Whilst stumbling across the other powers that inhabit my world in addition to _Hexcasting, I've found myself entertaining the thought of using their arcane materials in staff construction. $(br2)To think, wielding a purple-gem-adorned staff carved from a magical wood that isn't purple! How blasphemous!", + "hextended.page.crossmod_staves_1.1": "In any case, these staves as well do not yet provide any additional benefit that I can discern. However, I maintain that they look quite a bit nicer when accompanying other tools made of the same materials in my arsenal. If I study other diverse tools and decide to use them myself, I'd do well to have a staff that feels at home next to them in my bag.", + "hextended.page.crossmod_staves_1.crafting.header.botania": "Botanical Staves", + "hextended.page.crossmod_staves_1.crafting.desc.botania": "Mana? I hardly-- wait, what was I $(o)supposed/$ to reference?", + "hextended.page.crossmod_staves_1.crafting.header.arsnouveau": "Archwood Staves", + "hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "", + + "hextended.entry.extended_fanciful_staves": "Extended Fanciful Staves", + "hextended.page.extended_fanciful_staves.1": "Just as well, these glorious new tools must reflect the radiance that I have gained in their form. Just as my perception has risen to see a new horizon, it is only right that the dazzling end of my staff see the same. It is only right that it follows in the $(o)length/$ of my wit, my stature, my influence, $(o)my power/$. It is only right." +} \ No newline at end of file diff --git a/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json b/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json new file mode 100644 index 000000000000..62ca4943e4f5 --- /dev/null +++ b/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json @@ -0,0 +1,85 @@ +{ + "itemGroup.hextended": "咒法装备拓展", + + "item.hextended.staff.long.oak": "橡木长法杖", + "item.hextended.staff.long.spruce": "云杉木长法杖", + "item.hextended.staff.long.birch": "白桦木长法杖", + "item.hextended.staff.long.jungle": "丛林木长法杖", + "item.hextended.staff.long.dark_oak": "深色橡木长法杖", + "item.hextended.staff.long.acacia": "金合欢木长法杖", + "item.hextended.staff.long.crimson": "绯红木长法杖", + "item.hextended.staff.long.warped": "诡异木长法杖", + "item.hextended.staff.long.mangrove": "红树木长法杖", + "item.hextended.staff.long.edified": "启迪木长法杖", + "item.hextended.staff.long.cherry": "樱花木长法杖", + "item.hextended.staff.long.bamboo": "竹长法杖", + "item.hextended.staff.long.mindsplice": "制念长法杖", + "item.hextended.staff.long.quenched": "淬灵晶长法杖", + + "item.hextended.staff.lesser_battery": "临时紫水晶法杖", + "item.hextended.staff.long.lesser_battery": "临时紫水晶长法杖", + "item.hextended.staff.sealed_lesser_battery": "密封的临时紫水晶法杖", + "item.hextended.staff.long.sealed_lesser_battery": "密封的临时紫水晶长法杖", + "item.hextended.staff.drawing_orb": "绘图水晶球", + + "item.hextended.staff.moss": "覆苔法杖", + "item.hextended.staff.flowered_moss": "盛放的覆苔法杖", + "item.hextended.staff.long.moss": "覆苔长法杖", + "item.hextended.staff.long.flowered_moss": "盛放的覆苔长法杖", + "item.hextended.staff.prismarine": "海晶石法杖", + "item.hextended.staff.dark_prismarine": "暗海晶石法杖", + "item.hextended.staff.long.prismarine": "海晶石长法杖", + "item.hextended.staff.long.dark_prismarine": "暗海晶石长法杖", + "item.hextended.staff.obsidian": "黑曜石法杖", + "item.hextended.staff.purpur": "紫颂法杖", + "item.hextended.staff.long.obsidian": "黑曜石长法杖", + "item.hextended.staff.long.purpur": "紫颂长法杖", + + "item.hextended.staff.long.quartz": "石英长法杖", + "item.hextended.staff.long.blaze": "烈焰长法杖", + "item.hextended.staff.long.wither": "凋灵长法杖", + "item.hextended.staff.long.owlbert": "猫头鹰长法杖", + "item.hextended.staff.long.ghost": "幽灵长法杖", + "item.hextended.staff.long.celestial": "天体长法杖", + "item.hextended.staff.long.longinus": "朗基努斯长法杖", + "item.hextended.staff.long.ice": "寒冰长法杖", + "item.hextended.staff.long.carrot": "胡萝卜长法杖", + "item.hextended.staff.long.bee": "蜜蜂长法杖", + + + + "hextended.entry.basic_extended_staves": "长法杖", + "hextended.page.basic_extended_staves.0" : "随着我对这门技艺认识的日渐加深,我意识到我愈加希冀于拥有多种多样的工具,一如我自己的多种多样。我已$(italic)设法/$为研究这些长杖的匠作细节匀出不少时间了。法杖的长度增加给予了其一些额外网格空间,但还远不及$(l:items/lens)$(item)探知透镜/$的扩展能力。正因此,选用这种长法杖还是其较短的同类,更取决于习惯与美观,而非实用。", + "hextended.page.basic_extended_staves.crafting.header.0": "长法杖", + "hextended.page.basic_extended_staves.crafting.desc.0": "对你意识$(italic)的延伸/$的延伸", + "hextended.page.basic_extended_staves.crafting.header.1": "覆苔法杖", + "hextended.page.basic_extended_staves.crafting.desc.1": "$(italic)无人能以智慧超越众人推举的学者们。$(br2)……/$", + "hextended.page.basic_extended_staves.crafting.header.2": "海晶石法杖", + "hextended.page.basic_extended_staves.crafting.desc.2": "$(italic)……$(br)然而,我们可以。我们已然超越。我们不愿言明,但如今话已出口,木已成舟。我们不在乎。$(br2)……/$", + "hextended.page.basic_extended_staves.crafting.header.3": "黑曜石法杖", + "hextended.page.basic_extended_staves.crafting.desc.3": "$(italic)……$(br)我们忘却了所有人,忘却了所有法律,忘却了所有事物,除了我们的金属和金属线。仍有许多知识要学习!$(br2)……/$", + "hextended.page.basic_extended_staves.crafting.header.4": "紫颂法杖", + "hextended.page.basic_extended_staves.crafting.desc.4": "$(italic)……$(br)仍有许多路要去走,就算我们一直踽踽独行又如何!/$", + + + "hextended.entry.functional_staves_1": "功能性法杖", + "hextended.page.functional_staves_1.0": "当然,考虑到我的聪明才智,法杖的延伸仅具$(l:hexcasting:items/basic_extended_staves)物理意义$(/l)的话,就太过循规蹈矩。若我要研习的技艺灵活而泛用,那么我的工具也应如此。第一件作品,便是一杆紫水晶法杖,构思精细但做工粗糙。奇异的是,这支法杖上紫水晶块的碎裂程度远超同类,因此能够直接用作$(media)媒质/$施放$(hex)咒术/$。", + "hextended.page.functional_staves_1.crafting.header.0": "临时紫水晶法杖", + "hextended.page.functional_staves_1.crafting.desc.0": "专为身处地底百来格的晶洞中忘记带木头的情景准备", + "hextended.page.functional_staves_1.crafting.header.1": "密封的临时紫水晶法杖", + "hextended.page.functional_staves_1.crafting.desc.1": "$(italic)我们成功了。我们制造出了它。我们从时代的长夜中带出了它。仅凭我们自己。我们的双手。我们的意识。仅有我们自己。/$", + "hextended.page.functional_staves_1.1": "此外,如果我钟情于这种法杖那不纯而有序,粗糙而优雅,尖酸而崇高,闪光而虚无而闪光而——$(br2)如果我想要继续使用它,就必须寻得阻止其碎裂的方法,将其密封以无限使用。不过当然,闪亮的紫色蛋糕和能吃的蛋糕就如同鱼与熊掌,而这正是因为贪婪的自然!", + "hextended.page.functional_staves_1.2": "第二种,一枚笨重的球,造型适合存储 iota,倒是和$(l:hexcasting:items/focus)核心$(/l)没什么两样。虽然这一点就足够证明它的方便,但它真正的力量,在于能将远隔山河而无可触及的事物带到我的手心。$(br)玩家实体会散发出独特的能量,我的法术可借此无视距离影响他们。在追寻这种能量的途中,我成功造出了一件物品,能强化$(o)任意/$代表实体的 iota,让我的$(hex)咒术$()能够影响它们,但需要我手中持有这枚球体。", + "hextended.page.functional_staves_1.crafting.desc.2": "接受任意 iota,但只会增强实体 iota 的信号。$(br2)$(o)是谁,在敲打我水晶球~/$", + + "hextended.entry.crossmod_staves_1": "模组联动法杖", + "hextended.page.crossmod_staves_1.0": "在研究世界上除$(hex)咒法学/$之外的其他力量时,“使用他们所用的奥术材料制造法杖”这一有趣的想法频频造访我的脑海。$(br2)我们来想想看,往一种不是紫色的魔法木材上装上一枚紫色的晶石!真是倒反天罡!", + "hextended.page.crossmod_staves_1.1": "无论如何,这些法杖目前还不具有任何可辨识的益处。但是我依旧认为,和那些使用对应材料制作的工具配合时,这些法杖更好看。如果我真正研究了其他的多样工具,也决定要亲自使用它们,包中的法杖最好还是选用和它们外观相似的。", + "hextended.page.crossmod_staves_1.crafting.header.botania": "植物法杖", + "hextended.page.crossmod_staves_1.crafting.desc.botania": "魔力?我不——等下,我到底$(o)应该/$用什么称呼?", + "hextended.page.crossmod_staves_1.crafting.header.arsnouveau": "至高木法杖", + "hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "", + + "hextended.entry.extended_fanciful_staves": "华丽长法杖", + "hextended.page.extended_fanciful_staves.1": "这些华丽的新工具必然同样反映出我力量的强大。我的认知拓展到了新的边界,法杖的晶亮尖端也一同延展才是正确的。只有它们和我的智慧、我的躯体、我的影响力、$(o)我的力量/$一同$(o)延长/$才是正确的。这才是唯一正确的。" +} \ No newline at end of file From e09fe8a08f39e7abb1e3ec9a653b26acbef46fa9 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Tue, 29 Jul 2025 04:35:19 +0800 Subject: [PATCH 2/6] =?UTF-8?q?ComplexHex=20update=EF=BC=9A=E5=AE=98?= =?UTF-8?q?=E5=BA=93=E6=9B=B4=E6=96=B0=EF=BC=8C=E7=AC=A6=E5=8F=B7=E8=A1=A8?= =?UTF-8?q?=E8=BE=BE=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../complexhex/lang/en_us.json | 19 ++++++++++++++++++- .../complexhex/lang/zh_cn.json | 19 ++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json index e2db9e9f9e92..b50dc3fb96ec 100644 --- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json @@ -122,5 +122,22 @@ "complexhex.entry.misc": "Miscellaneous Complexes", "hexcasting.action.complexhex:ascii": "UTF Purification", - "complexhex.page.misc.ascii": "Swaps between a string of a $(italics)single character$() and an integer representing that character.
Uses the $(thing)UTF-16$() character map." + "complexhex.page.misc.ascii": "Swaps between a string of a $(italics)single character$() and an integer representing that character.
Uses the $(thing)UTF-16$() character map.", + + "complexhex.entry.expressions": "Expressions", + "hexcasting.action.complexhex:new_symbol": "Symbolic Purification", + "complexhex.page.expressions.new": "Creates a new symbol with the given (single character) label", + "complexhex.page.expressions.ops": "Many operations that work on numbers can also apply to expressions.$(br)The full list is: Addition, Subtraction, Multiplication, Division, Powers, Absolute, Floor, Ceiling, Sine, Cosine, Tangent, Arcsin, Arccos, Arctan, Atan2, Logarithms, and Modulo", + "hexcasting.action.complexhex:substitute": "Substitution Exaltation", + "complexhex.page.expressions.substitute": "Substitutes the third expression/number in place of the second expression within the first.", + "hexcasting.action.complexhex:summon/line": "Parametric Line", + "complexhex.page.expressions.summon.line": "Summons a parametric line at the given position. The expressions given will have a t-value (0-1), x/y/z position, and time (w) substituted in and their results make a position in the line.", + "hexcasting.action.complexhex:summon/surface": "Parametric Surface", + "complexhex.page.expressions.summon.surface": "Summons a parametric surface at the given position. The expressions given will have a u&v-value (0-1), x/y/z position, and time (w) substituted in and their results make a position on the surface.", + "complexhex.page.expressions.kill": "Both Parametric objects can be killed by use of the $(l:patterns/great_spells/bits#complexhex:killbit)$(action)Kill Bit/$ pattern", + + + "entity.complexhex.parametric.line": "Parametric Line", + "entity.complexhex.parametric.surface": "Parametric Surface" + } diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json index b48d5a9aa191..23fc02dcb549 100644 --- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json @@ -122,5 +122,22 @@ "complexhex.entry.misc": "Complex Hex 杂项", "hexcasting.action.complexhex:ascii": "UTF 之纯化", - "complexhex.page.misc.ascii": "将串中的$(italics)字符$()转换为代表该字符的数,也可反方向转换。$(br)使用$(thing)UTF-16$()字符编码表。" + "complexhex.page.misc.ascii": "将串中的$(italics)字符$()转换为代表该字符的数,也可反方向转换。$(br)使用 $(thing)UTF-16$() 字符编码表。", + + "complexhex.entry.expressions": "表达式", + "hexcasting.action.complexhex:new_symbol": "符号之纯化", + "complexhex.page.expressions.new": "使用所给标签(单个字符)创建新符号。", + "complexhex.page.expressions.ops": "许多适用于数的运算符也适用于表达式。$(br)完整列表为:加法、减法、乘法、除法、乘方、绝对值、取底、取顶、正弦、余弦、正切、反正弦、反余弦、反正切、atan2、对数、取模(余数)。", + "hexcasting.action.complexhex:substitute": "代入之提整", + "complexhex.page.expressions.substitute": "将第三参数的表达式或数代入到第一参数中第二参数出现的位置。", + "hexcasting.action.complexhex:summon/line": "参数曲线", + "complexhex.page.expressions.summon.line": "在给定位置召唤一个参数曲线。给定表达式中 t 的值在 0 到 1 间变化,x、y、z 对应位置,w 对应时间。以上符号代入后所得的点构成了参数曲线。", + "hexcasting.action.complexhex:summon/surface": "参数曲面", + "complexhex.page.expressions.summon.surface": "在给定位置召唤一个参数曲面。给定表达式中 u 和 v 的值均在 0 到 1 间变化,x、y、z 对应位置,w 对应时间。以上符号代入后所得的点构成了参数曲面。", + "complexhex.page.expressions.kill": "两种参数对象均可通过$(l:patterns/great_spells/bits#complexhex:killbit)$(action)清除 BIT/$ 图案消灭。", + + + "entity.complexhex.parametric.line": "参数曲线", + "entity.complexhex.parametric.surface": "参数曲面" + } From d9381661f4d07f978c4e269bc87c105b244c6d87 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Thu, 31 Jul 2025 17:41:12 +0800 Subject: [PATCH 3/6] =?UTF-8?q?ComplexHex=20update=EF=BC=9A=E5=AE=98?= =?UTF-8?q?=E5=BA=93=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../complexhex/lang/en_us.json | 19 +++++++++++++++++-- .../complexhex/lang/zh_cn.json | 19 +++++++++++++++++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json index b50dc3fb96ec..1d94cb37d3ea 100644 --- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json @@ -127,9 +127,17 @@ "complexhex.entry.expressions": "Expressions", "hexcasting.action.complexhex:new_symbol": "Symbolic Purification", "complexhex.page.expressions.new": "Creates a new symbol with the given (single character) label", - "complexhex.page.expressions.ops": "Many operations that work on numbers can also apply to expressions.$(br)The full list is: Addition, Subtraction, Multiplication, Division, Powers, Absolute, Floor, Ceiling, Sine, Cosine, Tangent, Arcsin, Arccos, Arctan, Atan2, Logarithms, and Modulo", + "complexhex.page.expressions.ops": "Many operations that work on numbers can also apply to expressions.$(br)The full list is: Addition, Subtraction, Multiplication, Division, Powers, Absolute, Floor, Ceiling, Sine, Cosine, Tangent, Arcsin, Arccos, Arctan, Logarithms, Modulo, Minimus, Minimus II, Maximus, Maximus II, And, Or, and Not$(br)In the case of operators that work on booleans, 0 is treated as \"false\" and any non-zero value is treated as \"true\".", "hexcasting.action.complexhex:substitute": "Substitution Exaltation", "complexhex.page.expressions.substitute": "Substitutes the third expression/number in place of the second expression within the first.", + "hexcasting.action.complexhex:equals": "Equality Purification", + "complexhex.page.expressions.equals": "Creates an expression that equals 1 if the two expressions are equal, and 0 otherwise.", + "hexcasting.action.complexhex:piecewise": "Piecewise Exaltation", + "complexhex.page.expressions.piecewise": "Creates a piecewise expression that simplifies to the second argument if the first simplifies to 1.0, otherwise simplifies to the third argument.", + "hexcasting.action.complexhex:derivative": "Derivation Purification", + "complexhex.page.expressions.derivative": "Takes in an expression and a lone symbol and returns the partial derivative of the expression with respect to the symbol.", + "hexcasting.action.complexhex:matrix": "Neo's Exaltation", + "complexhex.page.expressions.matrix": "Takes in a width, height and expression and creates a matrix by substituting i & j-values into the expression corresponding to a position in the matrix and putting the result in the matrix.", "hexcasting.action.complexhex:summon/line": "Parametric Line", "complexhex.page.expressions.summon.line": "Summons a parametric line at the given position. The expressions given will have a t-value (0-1), x/y/z position, and time (w) substituted in and their results make a position in the line.", "hexcasting.action.complexhex:summon/surface": "Parametric Surface", @@ -138,6 +146,13 @@ "entity.complexhex.parametric.line": "Parametric Line", - "entity.complexhex.parametric.surface": "Parametric Surface" + "entity.complexhex.parametric.surface": "Parametric Surface", + + "itemGroup.complexhex": "Complex Hex", + + "block.complexhex.hexbox": "Hexbox", + "item.complexhex.inert_record": "Inert Record", + "item.complexhex.quenched_record": "Inert Record", + "subtitles.complexhex.block.hexbox.scratch": "Record Scratches" } diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json index 23fc02dcb549..9ff1e7e770f8 100644 --- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json @@ -127,9 +127,17 @@ "complexhex.entry.expressions": "表达式", "hexcasting.action.complexhex:new_symbol": "符号之纯化", "complexhex.page.expressions.new": "使用所给标签(单个字符)创建新符号。", - "complexhex.page.expressions.ops": "许多适用于数的运算符也适用于表达式。$(br)完整列表为:加法、减法、乘法、除法、乘方、绝对值、取底、取顶、正弦、余弦、正切、反正弦、反余弦、反正切、atan2、对数、取模(余数)。", + "complexhex.page.expressions.ops": "许多适用于数的运算符也适用于表达式。$(br)完整列表为:加法、减法、乘法、除法、乘方、绝对值、取底、取顶、正弦、余弦、正切、反正弦、反余弦、反正切、对数、余数、至小、至小第二型、至大、至大第二型、与、或、非。$(br)对于使用布尔值的运算符而言,0 相当于“False”,所有非零值相当于“True”。", "hexcasting.action.complexhex:substitute": "代入之提整", "complexhex.page.expressions.substitute": "将第三参数的表达式或数代入到第一参数中第二参数出现的位置。", + "hexcasting.action.complexhex:equals": "相等之纯化", + "complexhex.page.expressions.equals": "若所给两表达式相等,则返回等于 1 的表达式;否则返回等于 0 的表达式。", + "hexcasting.action.complexhex:piecewise": "分段之提整", + "complexhex.page.expressions.piecewise": "创建一个分段表达式。若第一参数可简化为 1.0,则分段表达式可简化至第二表达式;否则简化至第三表达式。", + "hexcasting.action.complexhex:derivative": "导数之纯化", + "complexhex.page.expressions.derivative": "接受一个表达式和一个单独的符号,并返回表达式对符号的偏导数。", + "hexcasting.action.complexhex:matrix": "尼奥之提整", + "complexhex.page.expressions.matrix": "接受一个长度、一个宽度、一个表达式,并依此创建一个矩阵。矩阵各元素的值由元素位置(i、j)代入表达式得到。", "hexcasting.action.complexhex:summon/line": "参数曲线", "complexhex.page.expressions.summon.line": "在给定位置召唤一个参数曲线。给定表达式中 t 的值在 0 到 1 间变化,x、y、z 对应位置,w 对应时间。以上符号代入后所得的点构成了参数曲线。", "hexcasting.action.complexhex:summon/surface": "参数曲面", @@ -138,6 +146,13 @@ "entity.complexhex.parametric.line": "参数曲线", - "entity.complexhex.parametric.surface": "参数曲面" + "entity.complexhex.parametric.surface": "参数曲面", + + "itemGroup.complexhex": "Complex Hex", + + "block.complexhex.hexbox": "咒术唱片机", + "item.complexhex.inert_record": "惰性唱片", + "item.complexhex.quenched_record": "惰性唱片", + "subtitles.complexhex.block.hexbox.scratch": "唱片:被搓动" } From 566ae57a5a7d7bc0805c064994d36b09445fe8b6 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Thu, 7 Aug 2025 11:19:42 +0800 Subject: [PATCH 4/6] =?UTF-8?q?ComplexHex=20update=EF=BC=9A=E5=AE=98?= =?UTF-8?q?=E5=BA=93=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../complexhex/lang/en_us.json | 22 +++++++++++++++---- .../complexhex/lang/zh_cn.json | 21 +++++++++++++++--- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json index 1d94cb37d3ea..84ea64a1dccd 100644 --- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json @@ -127,7 +127,7 @@ "complexhex.entry.expressions": "Expressions", "hexcasting.action.complexhex:new_symbol": "Symbolic Purification", "complexhex.page.expressions.new": "Creates a new symbol with the given (single character) label", - "complexhex.page.expressions.ops": "Many operations that work on numbers can also apply to expressions.$(br)The full list is: Addition, Subtraction, Multiplication, Division, Powers, Absolute, Floor, Ceiling, Sine, Cosine, Tangent, Arcsin, Arccos, Arctan, Logarithms, Modulo, Minimus, Minimus II, Maximus, Maximus II, And, Or, and Not$(br)In the case of operators that work on booleans, 0 is treated as \"false\" and any non-zero value is treated as \"true\".", + "complexhex.page.expressions.ops": "Many operations that work on numbers can also apply to expressions.$(br)The full list is: Addition, Subtraction, Multiplication, Division, Powers, Absolute, Floor, Ceiling, Sine, Cosine, Tangent, Arcsin, Arccos, Arctan, Sinh, Cosh, Tanh, ArcSinh, ArcCosh, ArcTanh, Vector Pack, Logarithms, Modulo, Minimus, Minimus II, Maximus, Maximus II, And, Or, and Not$(br)In the case of operators that work on booleans, 0 is treated as \"false\" and any non-zero value is treated as \"true\".", "hexcasting.action.complexhex:substitute": "Substitution Exaltation", "complexhex.page.expressions.substitute": "Substitutes the third expression/number in place of the second expression within the first.", "hexcasting.action.complexhex:equals": "Equality Purification", @@ -139,15 +139,29 @@ "hexcasting.action.complexhex:matrix": "Neo's Exaltation", "complexhex.page.expressions.matrix": "Takes in a width, height and expression and creates a matrix by substituting i & j-values into the expression corresponding to a position in the matrix and putting the result in the matrix.", "hexcasting.action.complexhex:summon/line": "Parametric Line", - "complexhex.page.expressions.summon.line": "Summons a parametric line at the given position. The expressions given will have a t-value (0-1), x/y/z position, and time (w) substituted in and their results make a position in the line.", + "complexhex.page.expressions.summon.line": "Summons a parametric line at the given position. The expression given will have a t-value (0-1), x/y/z position, and time (w) substituted in and must resolve to a vector on the line.", "hexcasting.action.complexhex:summon/surface": "Parametric Surface", - "complexhex.page.expressions.summon.surface": "Summons a parametric surface at the given position. The expressions given will have a u&v-value (0-1), x/y/z position, and time (w) substituted in and their results make a position on the surface.", + "complexhex.page.expressions.summon.surface": "Summons a parametric surface at the given position. The expression given will have a u&v-value (0-1), x/y/z position, and time (w) substituted in and must resolve to a vector on the surface", "complexhex.page.expressions.kill": "Both Parametric objects can be killed by use of the $(l:patterns/great_spells/bits#complexhex:killbit)$(action)Kill Bit/$ pattern", - "entity.complexhex.parametric.line": "Parametric Line", "entity.complexhex.parametric.surface": "Parametric Surface", + "complexhex.entry.horrors": "Cthonic Maths", + "hexcasting.action.complexhex:sinh": "Hyp. Sine Prfn.", + "complexhex.page.horrors.sinh": "Evaluates the hyperbolic sine of the argument", + "hexcasting.action.complexhex:cosh": "Hyp. Cosine Prfn.", + "complexhex.page.horrors.cosh": "Evaluates the hyperbolic sine of the argument", + "hexcasting.action.complexhex:tanh": "Hyp. Tangent Prfn.", + "complexhex.page.horrors.tanh": "Evaluates the hyperbolic sine of the argument", + "hexcasting.action.complexhex:asinh": "Inv. Hyp. Sine Prfn.", + "complexhex.page.horrors.asinh": "Evaluates the hyperbolic sine of the argument", + "hexcasting.action.complexhex:acosh": "Inv. Hyp. Cosine Prfn.", + "complexhex.page.horrors.acosh": "Evaluates the hyperbolic sine of the argument", + "hexcasting.action.complexhex:atanh": "Inv. Hyp. Tangent Prfn.", + "complexhex.page.horrors.atanh": "Evaluates the hyperbolic sine of the argument", + + "itemGroup.complexhex": "Complex Hex", "block.complexhex.hexbox": "Hexbox", diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json index 9ff1e7e770f8..9910668d29b7 100644 --- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json @@ -127,7 +127,7 @@ "complexhex.entry.expressions": "表达式", "hexcasting.action.complexhex:new_symbol": "符号之纯化", "complexhex.page.expressions.new": "使用所给标签(单个字符)创建新符号。", - "complexhex.page.expressions.ops": "许多适用于数的运算符也适用于表达式。$(br)完整列表为:加法、减法、乘法、除法、乘方、绝对值、取底、取顶、正弦、余弦、正切、反正弦、反余弦、反正切、对数、余数、至小、至小第二型、至大、至大第二型、与、或、非。$(br)对于使用布尔值的运算符而言,0 相当于“False”,所有非零值相当于“True”。", + "complexhex.page.expressions.ops": "许多适用于数的运算符也适用于表达式。$(br)完整列表为:加法、减法、乘法、除法、乘方、绝对值、取底、取顶、正弦、余弦、正切、反正弦、反余弦、反正切、双曲正弦、双曲余弦、双曲正切、反双曲正弦、反双曲余弦、反双曲正切、向量组装、对数、余数、至小、至小第二型、至大、至大第二型、与、或、非。$(br)对于使用布尔值的运算符而言,0 相当于“False”,所有非零值相当于“True”。", "hexcasting.action.complexhex:substitute": "代入之提整", "complexhex.page.expressions.substitute": "将第三参数的表达式或数代入到第一参数中第二参数出现的位置。", "hexcasting.action.complexhex:equals": "相等之纯化", @@ -139,15 +139,30 @@ "hexcasting.action.complexhex:matrix": "尼奥之提整", "complexhex.page.expressions.matrix": "接受一个长度、一个宽度、一个表达式,并依此创建一个矩阵。矩阵各元素的值由元素位置(i、j)代入表达式得到。", "hexcasting.action.complexhex:summon/line": "参数曲线", - "complexhex.page.expressions.summon.line": "在给定位置召唤一个参数曲线。给定表达式中 t 的值在 0 到 1 间变化,x、y、z 对应位置,w 对应时间。以上符号代入后所得的点构成了参数曲线。", + "complexhex.page.expressions.summon.line": "在给定位置召唤一个参数曲线。给定表达式中 t 的值在 0 到 1 间变化,x、y、z 对应位置,w 对应时间。以上符号代入后所得值必须为向量,它们对应的点构成了参数曲线。", "hexcasting.action.complexhex:summon/surface": "参数曲面", - "complexhex.page.expressions.summon.surface": "在给定位置召唤一个参数曲面。给定表达式中 u 和 v 的值均在 0 到 1 间变化,x、y、z 对应位置,w 对应时间。以上符号代入后所得的点构成了参数曲面。", + "complexhex.page.expressions.summon.surface": "在给定位置召唤一个参数曲面。给定表达式中 u 和 v 的值均在 0 到 1 间变化,x、y、z 对应位置,w 对应时间。以上符号代入后所得值必须为向量,它们对应的点构成了参数曲面。", "complexhex.page.expressions.kill": "两种参数对象均可通过$(l:patterns/great_spells/bits#complexhex:killbit)$(action)清除 BIT/$ 图案消灭。", "entity.complexhex.parametric.line": "参数曲线", "entity.complexhex.parametric.surface": "参数曲面", + "complexhex.entry.horrors": "深奥数学", + "hexcasting.action.complexhex:sinh": "双曲正弦之纯化", + "complexhex.page.horrors.sinh": "计算参数的双曲正弦值。", + "hexcasting.action.complexhex:cosh": "双曲余弦之纯化", + "complexhex.page.horrors.cosh": "计算参数的双曲余弦值。", + "hexcasting.action.complexhex:tanh": "双曲正切之纯化", + "complexhex.page.horrors.tanh": "计算参数的双曲正切值。", + "hexcasting.action.complexhex:asinh": "反双曲正弦之纯化", + "complexhex.page.horrors.asinh": "计算参数的反双曲正弦值。", + "hexcasting.action.complexhex:acosh": "反双曲余弦之纯化", + "complexhex.page.horrors.acosh": "计算参数的反双曲余弦值。", + "hexcasting.action.complexhex:atanh": "反双曲正切之纯化", + "complexhex.page.horrors.atanh": "计算参数的反双曲正切值。", + + "itemGroup.complexhex": "Complex Hex", "block.complexhex.hexbox": "咒术唱片机", From b95f8c49b90a241b14dbd174488e312e29df2d19 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Thu, 4 Sep 2025 07:26:54 +0800 Subject: [PATCH 5/6] =?UTF-8?q?ComplexHex=20HextendedStaves=20update?= =?UTF-8?q?=EF=BC=9A=E5=AE=98=E5=BA=93=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hextended-staves/hextended/lang/en_us.json | 12 +++++++++++- .../modrinth-complex-hex/complexhex/lang/en_us.json | 10 +++++++++- .../modrinth-complex-hex/complexhex/lang/zh_cn.json | 11 +++++++++-- .../hextended-staves/hextended/lang/en_us.json | 12 +++++++++++- .../hextended-staves/hextended/lang/zh_cn.json | 12 +++++++++++- 5 files changed, 51 insertions(+), 6 deletions(-) diff --git a/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json b/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json index e8d5d98f75a3..176ff9bcdc99 100644 --- a/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json +++ b/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json @@ -81,5 +81,15 @@ "hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "", "hextended.entry.extended_fanciful_staves": "Extended Fanciful Staves", - "hextended.page.extended_fanciful_staves.1": "Just as well, these glorious new tools must reflect the radiance that I have gained in their form. Just as my perception has risen to see a new horizon, it is only right that the dazzling end of my staff see the same. It is only right that it follows in the $(o)length/$ of my wit, my stature, my influence, $(o)my power/$. It is only right." + "hextended.page.extended_fanciful_staves.1": "Just as well, these glorious new tools must reflect the radiance that I have gained in their form. Just as my perception has risen to see a new horizon, it is only right that the dazzling end of my staff see the same. It is only right that it follows in the $(o)length/$ of my wit, my stature, my influence, $(o)my power/$. It is only right.", + + "hextended.entry.base_diadem": "A Strange Headpeice", + "hextended.page.base_diadem.0": "Amid the admiration of such a glimmering stone, I'd begun wondering how it could fancy as part of some tasteful adornment. Naturally, my first construction would take the shape of a--$(br2)I was met with... a feeling. A sensation. The resonation of the crystal against my temples... I began to hear the quiet hum of the world surround me, like a tuning fork struck with its mallet. It's almost soothing.", + "hextended.page.base_diadem.crafting.desc.1": "The vibrations, they prod at the edges of my thoughts, yet they slip away from me as they fade in and out. I feel as a cauldron filling with water under the rain. There must be $(#54398a)something more/$ to this...", + "hextended.page.base_diadem.1": "It... saved me. The _hex tore through my... my bag, and if I had not... worn this--if I had placed it atop my head not before Nature surged to exact payment--", + + "advancement.hextended:diadem_protect" : "A Hair's Breadth", + "advancement.hextended:diadem_protect.desc" : "Be saved by having a crystal shatter in place of your mind.", + "advancement.hextended:diadem_protect_frustration" : "Not Conducive to Learning", + "advancement.hextended:diadem_protect_frustration.desc" : "Well, that's not very insightful; Now you've got to try again! Be protected while experimenting with your mind for the first time." } \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json index 84ea64a1dccd..ce8b7a6dc96d 100644 --- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json @@ -79,6 +79,12 @@ "complexhex.page.scalebit": "Scales the BIT to the given vector.", "hexcasting.action.complexhex:killbit": "Kill BIT", "complexhex.page.killbit": "Kills & removes the given BIT.", + "hexcasting.action.complexhex:get_bit_4x4": "Get BIT 4x4", + "complexhex.page.get_bit_4x4": "Pushes a 4x4 matrix representing the Bit's Transformation.", + "hexcasting.action.complexhex:set_bit_4x4": "Set BIT 4x4", + "complexhex.page.set_bit_4x4": "Sets the Transformation of a BIT to the given 4x4 matrix.", + "complexhex.page.4x4explainer": "A 4x4 Transformation Matrix is a way of representing translation, rotation, scaling and shearing using a single matrix.$(br)The bottom row of the matrix must be [0, 0, 0, 1] for the transformation to stay Affine, however there is nothing to enforce this.$(br)The upper-left 3x3 sub-matrix represents an orientation in space, while the last column vector is a position in space.", + "complexhex.page.4x4explainer_link": "Transformations", "complexhex.mishap.bad_string.blockid": "a blockID", "complexhex.mishap.bad_string.itemid": "an itemID", @@ -87,8 +93,10 @@ "hexcasting.mishap.invalid_value.class.complexnumber": "a complex number", "hexcasting.mishap.invalid_value.class.bubble": "a bubble", "hexcasting.mishap.invalid_value.class.bit": "a BIT", + "hexcasting.mishap.invalid_value.class.bit_kill": "a BIT or similar entity", "hexcasting.mishap.invalid_value.class.long": "a long", "hexcasting.mishap.invalid_value.not_char": "a single character", + "hexcasting.mishap.invalid_value.4x4matrix": "a 4x4 matrix", "hexcasting.mishap.invalid_value.char_or_num": "a single character or a number", "hexcasting.mishap.bad_item.bit": "a BIT", @@ -166,7 +174,7 @@ "block.complexhex.hexbox": "Hexbox", "item.complexhex.inert_record": "Inert Record", - "item.complexhex.quenched_record": "Inert Record", + "item.complexhex.quenched_record": "Quenched Record", "subtitles.complexhex.block.hexbox.scratch": "Record Scratches" } diff --git a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json index 9910668d29b7..86666193f14f 100644 --- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json @@ -79,6 +79,12 @@ "complexhex.page.scalebit": "以给定向量缩放 BIT。", "hexcasting.action.complexhex:killbit": "清除 BIT", "complexhex.page.killbit": "清理并移除给定 BIT。", + "hexcasting.action.complexhex:get_bit_4x4": "获取 BIT 4x4", + "complexhex.page.get_bit_4x4": "返回表示 BIT 当前变换的 4x4 矩阵。", + "hexcasting.action.complexhex:set_bit_4x4": "设置 BIT 4x4", + "complexhex.page.set_bit_4x4": "将 BIT 当前变换设为所给的 4x4 矩阵。", + "complexhex.page.4x4explainer": "4x4 变换矩阵是在单个矩阵内表示平移、旋转、缩放、错切的方法。$(br)如需使用仿射变换,则矩阵最下方一行必须为 [0, 0, 0, 1],但实操中对此没有强制要求。$(br)左上方的 3x3 子矩阵代表空间中的某种朝向,最后一列代表空间中的位置。", + "complexhex.page.4x4explainer_link": "变换", "complexhex.mishap.bad_string.blockid": "一个方块ID", "complexhex.mishap.bad_string.itemid": "一个物品ID", @@ -87,8 +93,10 @@ "hexcasting.mishap.invalid_value.class.complexnumber": "一个复数", "hexcasting.mishap.invalid_value.class.bubble": "一个封泡", "hexcasting.mishap.invalid_value.class.bit": "一个BIT", + "hexcasting.mishap.invalid_value.class.bit_kill": "一个BIT或类似实体", "hexcasting.mishap.invalid_value.class.long": "一个长整型", "hexcasting.mishap.invalid_value.not_char": "一个字符", + "hexcasting.mishap.invalid_value.4x4matrix": "一个4x4矩阵", "hexcasting.mishap.invalid_value.char_or_num": "一个字符或数", "hexcasting.mishap.bad_item.bit": "一个BIT", @@ -144,7 +152,6 @@ "complexhex.page.expressions.summon.surface": "在给定位置召唤一个参数曲面。给定表达式中 u 和 v 的值均在 0 到 1 间变化,x、y、z 对应位置,w 对应时间。以上符号代入后所得值必须为向量,它们对应的点构成了参数曲面。", "complexhex.page.expressions.kill": "两种参数对象均可通过$(l:patterns/great_spells/bits#complexhex:killbit)$(action)清除 BIT/$ 图案消灭。", - "entity.complexhex.parametric.line": "参数曲线", "entity.complexhex.parametric.surface": "参数曲面", @@ -167,7 +174,7 @@ "block.complexhex.hexbox": "咒术唱片机", "item.complexhex.inert_record": "惰性唱片", - "item.complexhex.quenched_record": "惰性唱片", + "item.complexhex.quenched_record": "淬灵唱片", "subtitles.complexhex.block.hexbox.scratch": "唱片:被搓动" } diff --git a/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json b/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json index e8d5d98f75a3..176ff9bcdc99 100644 --- a/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json +++ b/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json @@ -81,5 +81,15 @@ "hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "", "hextended.entry.extended_fanciful_staves": "Extended Fanciful Staves", - "hextended.page.extended_fanciful_staves.1": "Just as well, these glorious new tools must reflect the radiance that I have gained in their form. Just as my perception has risen to see a new horizon, it is only right that the dazzling end of my staff see the same. It is only right that it follows in the $(o)length/$ of my wit, my stature, my influence, $(o)my power/$. It is only right." + "hextended.page.extended_fanciful_staves.1": "Just as well, these glorious new tools must reflect the radiance that I have gained in their form. Just as my perception has risen to see a new horizon, it is only right that the dazzling end of my staff see the same. It is only right that it follows in the $(o)length/$ of my wit, my stature, my influence, $(o)my power/$. It is only right.", + + "hextended.entry.base_diadem": "A Strange Headpeice", + "hextended.page.base_diadem.0": "Amid the admiration of such a glimmering stone, I'd begun wondering how it could fancy as part of some tasteful adornment. Naturally, my first construction would take the shape of a--$(br2)I was met with... a feeling. A sensation. The resonation of the crystal against my temples... I began to hear the quiet hum of the world surround me, like a tuning fork struck with its mallet. It's almost soothing.", + "hextended.page.base_diadem.crafting.desc.1": "The vibrations, they prod at the edges of my thoughts, yet they slip away from me as they fade in and out. I feel as a cauldron filling with water under the rain. There must be $(#54398a)something more/$ to this...", + "hextended.page.base_diadem.1": "It... saved me. The _hex tore through my... my bag, and if I had not... worn this--if I had placed it atop my head not before Nature surged to exact payment--", + + "advancement.hextended:diadem_protect" : "A Hair's Breadth", + "advancement.hextended:diadem_protect.desc" : "Be saved by having a crystal shatter in place of your mind.", + "advancement.hextended:diadem_protect_frustration" : "Not Conducive to Learning", + "advancement.hextended:diadem_protect_frustration.desc" : "Well, that's not very insightful; Now you've got to try again! Be protected while experimenting with your mind for the first time." } \ No newline at end of file diff --git a/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json b/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json index 62ca4943e4f5..4fd2b54b4122 100644 --- a/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json +++ b/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json @@ -81,5 +81,15 @@ "hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "", "hextended.entry.extended_fanciful_staves": "华丽长法杖", - "hextended.page.extended_fanciful_staves.1": "这些华丽的新工具必然同样反映出我力量的强大。我的认知拓展到了新的边界,法杖的晶亮尖端也一同延展才是正确的。只有它们和我的智慧、我的躯体、我的影响力、$(o)我的力量/$一同$(o)延长/$才是正确的。这才是唯一正确的。" + "hextended.page.extended_fanciful_staves.1": "这些华丽的新工具必然同样反映出我力量的强大。我的认知拓展到了新的边界,法杖的晶亮尖端也一同延展才是正确的。只有它们和我的智慧、我的躯体、我的影响力、$(o)我的力量/$一同$(o)延长/$才是正确的。这才是唯一正确的。", + + "hextended.entry.base_diadem": "一顶奇怪的头饰", + "hextended.page.base_diadem.0": "在欣赏如此光耀夺目的宝石之时,我想到它能否用到某种高雅装饰品中去。我的首个设计,其外形自然而然要采用——$(br2)我的脑海中生出了……一种感觉。一直直觉。晶体的共振传过了我的太阳穴……我听见了周遭世界的低声嗡鸣,如同振动中的音叉。这种感觉称得上舒缓心灵。", + "hextended.page.base_diadem.crafting.desc.1": "那些振动在我思维的边界搏动,但我无法捕获它们——它们来去无踪。我仿佛雨中不断积攒雨水的炼药锅。这些振动肯定有其$(#54398a)深层意味/$……", + "hextended.page.base_diadem.1": "它……拯救了我。$(hex)咒术/$划破了我的……我的口袋,要是我没……戴着它——要是我没在自然攫取报酬之前把它放置我的头顶——", + + "advancement.hextended:diadem_protect" : "千钧一发", + "advancement.hextended:diadem_protect.desc" : "被一枚代替你的意识碎裂的晶体拯救。", + "advancement.hextended:diadem_protect_frustration" : "不具启发性", + "advancement.hextended:diadem_protect_frustration.desc" : "这可没什么启发性,你得再试一遍!试着在对自己的意识进行试验时被拯救吧。" } \ No newline at end of file From b1b1dbd8aae7dc3611b62f3a46e570b4f8eeacd6 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Mon, 6 Oct 2025 15:46:07 +0800 Subject: [PATCH 6/6] =?UTF-8?q?Hextended=20update=EF=BC=9A=E5=AE=98?= =?UTF-8?q?=E5=BA=93=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hextended-staves/hextended/lang/en_us.json | 10 ++++------ .../hextended-staves/hextended/lang/en_us.json | 10 ++++------ .../hextended-staves/hextended/lang/zh_cn.json | 16 +++++++--------- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json b/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json index 176ff9bcdc99..d9708d9da3aa 100644 --- a/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json +++ b/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json @@ -83,13 +83,11 @@ "hextended.entry.extended_fanciful_staves": "Extended Fanciful Staves", "hextended.page.extended_fanciful_staves.1": "Just as well, these glorious new tools must reflect the radiance that I have gained in their form. Just as my perception has risen to see a new horizon, it is only right that the dazzling end of my staff see the same. It is only right that it follows in the $(o)length/$ of my wit, my stature, my influence, $(o)my power/$. It is only right.", - "hextended.entry.base_diadem": "A Strange Headpeice", + "hextended.entry.base_diadem": "A Strange Headpiece", "hextended.page.base_diadem.0": "Amid the admiration of such a glimmering stone, I'd begun wondering how it could fancy as part of some tasteful adornment. Naturally, my first construction would take the shape of a--$(br2)I was met with... a feeling. A sensation. The resonation of the crystal against my temples... I began to hear the quiet hum of the world surround me, like a tuning fork struck with its mallet. It's almost soothing.", - "hextended.page.base_diadem.crafting.desc.1": "The vibrations, they prod at the edges of my thoughts, yet they slip away from me as they fade in and out. I feel as a cauldron filling with water under the rain. There must be $(#54398a)something more/$ to this...", - "hextended.page.base_diadem.1": "It... saved me. The _hex tore through my... my bag, and if I had not... worn this--if I had placed it atop my head not before Nature surged to exact payment--", + "hextended.page.base_diadem.crafting.desc": "The vibrations, they prod at the edges of my thoughts before slipping away. I feel as a cauldron filling with water under the rain, the excess trickling over the brim and lost. There must be $(#54398a)something more/$ to this...", + "hextended.page.base_diadem.1": "It... saved me. The _Hex tore through my... my bag, and if I had not... worn this--if I had placed it atop my head not before Nature surged to exact its payment--", "advancement.hextended:diadem_protect" : "A Hair's Breadth", - "advancement.hextended:diadem_protect.desc" : "Be saved by having a crystal shatter in place of your mind.", - "advancement.hextended:diadem_protect_frustration" : "Not Conducive to Learning", - "advancement.hextended:diadem_protect_frustration.desc" : "Well, that's not very insightful; Now you've got to try again! Be protected while experimenting with your mind for the first time." + "advancement.hextended:diadem_protect.desc" : "Be saved by having a crystal shatter in place of your mind." } \ No newline at end of file diff --git a/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json b/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json index 176ff9bcdc99..d9708d9da3aa 100644 --- a/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json +++ b/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json @@ -83,13 +83,11 @@ "hextended.entry.extended_fanciful_staves": "Extended Fanciful Staves", "hextended.page.extended_fanciful_staves.1": "Just as well, these glorious new tools must reflect the radiance that I have gained in their form. Just as my perception has risen to see a new horizon, it is only right that the dazzling end of my staff see the same. It is only right that it follows in the $(o)length/$ of my wit, my stature, my influence, $(o)my power/$. It is only right.", - "hextended.entry.base_diadem": "A Strange Headpeice", + "hextended.entry.base_diadem": "A Strange Headpiece", "hextended.page.base_diadem.0": "Amid the admiration of such a glimmering stone, I'd begun wondering how it could fancy as part of some tasteful adornment. Naturally, my first construction would take the shape of a--$(br2)I was met with... a feeling. A sensation. The resonation of the crystal against my temples... I began to hear the quiet hum of the world surround me, like a tuning fork struck with its mallet. It's almost soothing.", - "hextended.page.base_diadem.crafting.desc.1": "The vibrations, they prod at the edges of my thoughts, yet they slip away from me as they fade in and out. I feel as a cauldron filling with water under the rain. There must be $(#54398a)something more/$ to this...", - "hextended.page.base_diadem.1": "It... saved me. The _hex tore through my... my bag, and if I had not... worn this--if I had placed it atop my head not before Nature surged to exact payment--", + "hextended.page.base_diadem.crafting.desc": "The vibrations, they prod at the edges of my thoughts before slipping away. I feel as a cauldron filling with water under the rain, the excess trickling over the brim and lost. There must be $(#54398a)something more/$ to this...", + "hextended.page.base_diadem.1": "It... saved me. The _Hex tore through my... my bag, and if I had not... worn this--if I had placed it atop my head not before Nature surged to exact its payment--", "advancement.hextended:diadem_protect" : "A Hair's Breadth", - "advancement.hextended:diadem_protect.desc" : "Be saved by having a crystal shatter in place of your mind.", - "advancement.hextended:diadem_protect_frustration" : "Not Conducive to Learning", - "advancement.hextended:diadem_protect_frustration.desc" : "Well, that's not very insightful; Now you've got to try again! Be protected while experimenting with your mind for the first time." + "advancement.hextended:diadem_protect.desc" : "Be saved by having a crystal shatter in place of your mind." } \ No newline at end of file diff --git a/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json b/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json index 4fd2b54b4122..05dd42fd4aff 100644 --- a/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json +++ b/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json @@ -31,9 +31,9 @@ "item.hextended.staff.long.prismarine": "海晶石长法杖", "item.hextended.staff.long.dark_prismarine": "暗海晶石长法杖", "item.hextended.staff.obsidian": "黑曜石法杖", - "item.hextended.staff.purpur": "紫颂法杖", + "item.hextended.staff.purpur": "紫珀法杖", "item.hextended.staff.long.obsidian": "黑曜石长法杖", - "item.hextended.staff.long.purpur": "紫颂长法杖", + "item.hextended.staff.long.purpur": "紫珀长法杖", "item.hextended.staff.long.quartz": "石英长法杖", "item.hextended.staff.long.blaze": "烈焰长法杖", @@ -58,7 +58,7 @@ "hextended.page.basic_extended_staves.crafting.desc.2": "$(italic)……$(br)然而,我们可以。我们已然超越。我们不愿言明,但如今话已出口,木已成舟。我们不在乎。$(br2)……/$", "hextended.page.basic_extended_staves.crafting.header.3": "黑曜石法杖", "hextended.page.basic_extended_staves.crafting.desc.3": "$(italic)……$(br)我们忘却了所有人,忘却了所有法律,忘却了所有事物,除了我们的金属和金属线。仍有许多知识要学习!$(br2)……/$", - "hextended.page.basic_extended_staves.crafting.header.4": "紫颂法杖", + "hextended.page.basic_extended_staves.crafting.header.4": "紫珀法杖", "hextended.page.basic_extended_staves.crafting.desc.4": "$(italic)……$(br)仍有许多路要去走,就算我们一直踽踽独行又如何!/$", @@ -69,7 +69,7 @@ "hextended.page.functional_staves_1.crafting.header.1": "密封的临时紫水晶法杖", "hextended.page.functional_staves_1.crafting.desc.1": "$(italic)我们成功了。我们制造出了它。我们从时代的长夜中带出了它。仅凭我们自己。我们的双手。我们的意识。仅有我们自己。/$", "hextended.page.functional_staves_1.1": "此外,如果我钟情于这种法杖那不纯而有序,粗糙而优雅,尖酸而崇高,闪光而虚无而闪光而——$(br2)如果我想要继续使用它,就必须寻得阻止其碎裂的方法,将其密封以无限使用。不过当然,闪亮的紫色蛋糕和能吃的蛋糕就如同鱼与熊掌,而这正是因为贪婪的自然!", - "hextended.page.functional_staves_1.2": "第二种,一枚笨重的球,造型适合存储 iota,倒是和$(l:hexcasting:items/focus)核心$(/l)没什么两样。虽然这一点就足够证明它的方便,但它真正的力量,在于能将远隔山河而无可触及的事物带到我的手心。$(br)玩家实体会散发出独特的能量,我的法术可借此无视距离影响他们。在追寻这种能量的途中,我成功造出了一件物品,能强化$(o)任意/$代表实体的 iota,让我的$(hex)咒术$()能够影响它们,但需要我手中持有这枚球体。", + "hextended.page.functional_staves_1.2": "第二件,一枚笨重的球,造型适合存储 iota,倒是和$(l:hexcasting:items/focus)核心$(/l)没什么两样。虽然这一点就足够证明它的方便,但它真正的力量,在于能将远隔山河而无可触及的事物带到我的手心。$(br)玩家实体会散发出独特的能量,我的法术可借此无视距离影响他们。在追寻这种能量的途中,我成功造出了这件物品,能强化$(o)任意/$代表实体的 iota,让我的$(hex)咒术$()能够影响它们,但需要我手中持有它。", "hextended.page.functional_staves_1.crafting.desc.2": "接受任意 iota,但只会增强实体 iota 的信号。$(br2)$(o)是谁,在敲打我水晶球~/$", "hextended.entry.crossmod_staves_1": "模组联动法杖", @@ -85,11 +85,9 @@ "hextended.entry.base_diadem": "一顶奇怪的头饰", "hextended.page.base_diadem.0": "在欣赏如此光耀夺目的宝石之时,我想到它能否用到某种高雅装饰品中去。我的首个设计,其外形自然而然要采用——$(br2)我的脑海中生出了……一种感觉。一直直觉。晶体的共振传过了我的太阳穴……我听见了周遭世界的低声嗡鸣,如同振动中的音叉。这种感觉称得上舒缓心灵。", - "hextended.page.base_diadem.crafting.desc.1": "那些振动在我思维的边界搏动,但我无法捕获它们——它们来去无踪。我仿佛雨中不断积攒雨水的炼药锅。这些振动肯定有其$(#54398a)深层意味/$……", - "hextended.page.base_diadem.1": "它……拯救了我。$(hex)咒术/$划破了我的……我的口袋,要是我没……戴着它——要是我没在自然攫取报酬之前把它放置我的头顶——", + "hextended.page.base_diadem.crafting.desc.1": "那些震颤在我思维的边界搏动,它们来去无踪。我仿佛雨中不断积攒雨水的炼药锅,多出的水从口沿溢走,再也不会回来。这些震颤肯定有其$(#54398a)深层意味/$……", + "hextended.page.base_diadem.1": "它……拯救了我。$(hex)咒术/$划破了我的……我的口袋,要是我没……戴着它——要是我没在自然攫取报酬之前戴上它——", "advancement.hextended:diadem_protect" : "千钧一发", - "advancement.hextended:diadem_protect.desc" : "被一枚代替你的意识碎裂的晶体拯救。", - "advancement.hextended:diadem_protect_frustration" : "不具启发性", - "advancement.hextended:diadem_protect_frustration.desc" : "这可没什么启发性,你得再试一遍!试着在对自己的意识进行试验时被拯救吧。" + "advancement.hextended:diadem_protect.desc" : "被一枚代替你的意识碎裂的晶体拯救。" } \ No newline at end of file