From e2f2dd11898feb2bb71b52b88810926cbead78eb Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 19:41:44 +0800
Subject: [PATCH 01/78] CleanSlate ComplexHex create
---
.../1UNKNOWN/cleanslate/lang/en_us.json | 14 ++
.../1UNKNOWN/cleanslate/lang/zh_cn.json | 14 ++
.../complexhex/lang/en_us.json | 126 ++++++++++++++++++
.../complexhex/lang/zh_cn.json | 126 ++++++++++++++++++
4 files changed, 280 insertions(+)
create mode 100644 projects/1.20/assets/1UNKNOWN/cleanslate/lang/en_us.json
create mode 100644 projects/1.20/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
create mode 100644 projects/1.20/assets/modrinth-complex-hex/complexhex/lang/en_us.json
create mode 100644 projects/1.20/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json
diff --git a/projects/1.20/assets/1UNKNOWN/cleanslate/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/cleanslate/lang/en_us.json
new file mode 100644
index 000000000000..aaee5faa3cf9
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/cleanslate/lang/en_us.json
@@ -0,0 +1,14 @@
+{
+ "block.cleanslate.withered_slate": "Withered Slate",
+ "block.cleanslate.flat_looking_impetus": "Flat Fletcher Impetus",
+ "block.cleanslate.flat_redstone_impetus": "Flat Cleric Impetus",
+ "block.cleanslate.flat_right_click_impetus": "Flat Toolsmith Impetus",
+
+ "cleanslate.page.flat.title": "Flat Circles",
+ "cleanslate.page.flat.0": "I find it odd how my $(l:greatwork/impetus)$(thing)Impeti$() jut out of my neat, flush circuit of $(l:items/slate)$(item)slates$(). This egregious anomaly $(o)can not$() be tolerated. By dropping an $(item)Anvil$() on top of an $(l:greatwork/impetus)$(thing)Impetus$(), I can flatten it to the thickness of a regular $(l:items/slate)$(item)Slate$(). It $(o)probably$() doesn't hurt the villager inside. I can discreetly fuel it by placing it over a $(thing)Dropper$() or $(thing)Dispenser$().",
+ "cleanslate.page.flat.1": "I can also run my $(l:items/slate)$(item)Slates$() from the floor onto walls, onto the ceiling, and back down! I seem to be able to place multiple $(l:items/slate)$(item)Slates$() in one block to change the direction of flow as I please, although these \"multi-slates\" can not have any patterns on them. Should I need to run them over a ledge, I can place an $(l:greatwork/impetus)$(thing)Empty Impetus$() under them or make the wave flow straight into it in order to redirect the stream into another plane.",
+
+ "cleanslate.page.withered_slates.title": "Withered Slates",
+ "cleanslate.page.withered_slates.0": "$(l:greatwork/spellcircles)$(thing)Spell circles$() are unable to extend upwards past their $(item)$(l:items/slate)slates$() and while I can use $(l:greatwork/directrix)$(item)Directrices$() in order to redirect the wave upwards, that is often an eyesore. Rumors have it that a $(o)flower$() related to a $(thing)Beacon$() can help extend the ambit of $(l:greatwork/spellcircles)$(thing)circles$() upwards and downwards to essentially infinity after the wave passes over it.",
+ "cleanslate.page.withered_slates.1": "$(o)Keep calm and stay inside the salt circle.$()"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/cleanslate/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
new file mode 100644
index 000000000000..13ce43884dbd
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
@@ -0,0 +1,14 @@
+{
+ "block.cleanslate.withered_slate": "凋零石板",
+ "block.cleanslate.flat_looking_impetus": "平板型制箭师促动石",
+ "block.cleanslate.flat_redstone_impetus": "平板型牧师促动石",
+ "block.cleanslate.flat_right_click_impetus": "平板型工具匠促动石",
+
+ "cleanslate.page.flat.title": "平板型法术环",
+ "cleanslate.page.flat.0": "平整的$(l:items/slate)$(item)石板$()回路中总是会有$(l:greatwork/impetus)$(thing)促动石$()凸出来,真是相当引人不适。这种为人所不齿的差错绝$(o)不可$()容忍。让$(item)铁砧$()坠落到$(l:greatwork/impetus)$(thing)促动石$()上,就可把促动石拍到和一般的$(l:items/slate)$(item)石板$()一样扁。其中的村民$(o)大概$()不会受损。把此类促动石放到$(thing)漏斗$()或$(thing)发射器$()上即可为其充能。",
+ "cleanslate.page.flat.1": "还可以直接把$(l:items/slate)$(item)石板$()从地板铺到墙上,再铺到天花板上,最后铺回来!同一格里也能放下多个$(l:items/slate)$(item)石板$();可借此随意改变媒质流的方向,不过这种“多重石板”上不可刻入图案。如果要让媒质流转过凸角,可以在石板下方放置$(l:greatwork/impetus)$(thing)空白促动石$(),也可让媒质流直接进入促动石。",
+
+ "cleanslate.page.withered_slates.title": "凋零石板",
+ "cleanslate.page.withered_slates.0": "$(l:greatwork/spellcircles)$(thing)法术环$()垂直方向上的作用范围无法超出其$(item)$(l:items/slate)石板$()的位置。虽然可以用$(l:greatwork/directrix)$(item)导向石$()把媒质流导向上方,但不太美观。有传言称,媒质流在经过某种与$(thing)信标$()有关的$(o)花$()后,$(l:greatwork/spellcircles)$(thing)法术环$()的影响范围即会向上方和下方扩展到无限远。",
+ "cleanslate.page.withered_slates.1": "$(o)保持冷静,待在盐环里不要四处走动。$()"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-complex-hex/complexhex/lang/en_us.json b/projects/1.20/assets/modrinth-complex-hex/complexhex/lang/en_us.json
new file mode 100644
index 000000000000..e2db9e9f9e92
--- /dev/null
+++ b/projects/1.20/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/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json b/projects/1.20/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json
new file mode 100644
index 000000000000..a9db65aef1bc
--- /dev/null
+++ b/projects/1.20/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$()字符编码表。"
+}
From 72f25e93522cf33c34a9e078f5656c0caf0cb8b3 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 19:58:38 +0800
Subject: [PATCH 02/78] Ephemera HexCasted create
---
.../assets/ephemera/ephemera/lang/en_us.json | 144 ++++++++++++++++
.../assets/ephemera/ephemera/lang/zh_cn.json | 144 ++++++++++++++++
.../assets/1UNKNOWN/hexcasted/lang/en_us.json | 18 ++
.../assets/1UNKNOWN/hexcasted/lang/zh_cn.json | 18 ++
.../assets/ephemera/ephemera/lang/en_us.json | 155 ++++++++++++++++++
.../assets/ephemera/ephemera/lang/zh_cn.json | 155 ++++++++++++++++++
6 files changed, 634 insertions(+)
create mode 100644 projects/1.19/assets/ephemera/ephemera/lang/en_us.json
create mode 100644 projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexcasted/lang/en_us.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json
create mode 100644 projects/1.20/assets/ephemera/ephemera/lang/en_us.json
create mode 100644 projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
diff --git a/projects/1.19/assets/ephemera/ephemera/lang/en_us.json b/projects/1.19/assets/ephemera/ephemera/lang/en_us.json
new file mode 100644
index 000000000000..6016108e778c
--- /dev/null
+++ b/projects/1.19/assets/ephemera/ephemera/lang/en_us.json
@@ -0,0 +1,144 @@
+{
+ "itemGroup.ephemera.ephemera": "Ephemera",
+
+ "item.ephemera.media_helmet": "Hexformed Helmet",
+ "item.ephemera.media_chestplate": "Hexformed Chestplate",
+ "item.ephemera.media_leggings": "Hexformed Leggings",
+ "item.ephemera.media_boots": "Hexformed Boots",
+
+ "block.ephemera.relay_tp_detector": "Network Gateway Probe",
+ "block.ephemera.relay_index": "Network Routing Index",
+ "block.ephemera.sneakyslate": "Rooted Slate",
+ "block.ephemera.fakeslate": "Inert Slate",
+ "block.ephemera.sneakyslate.blank": "Blank Rooted Slate",
+ "block.ephemera.sneakyslate.written": "Patterned Rooted Slate",
+
+ "hexcasting.spell.ephemera:magearmor": "Instant Aegis",
+ "hexcasting.spell.book.ephemera:magearmor": "Instant Aegis",
+ "hexcasting.spell.ephemera:networkscan": "Network Distillation",
+ "hexcasting.spell.book.ephemera:networkscan": "Network Dstln.",
+ "hexcasting.spell.ephemera:networktp": "Network Gateway",
+ "hexcasting.spell.book.ephemera:networktp": "Network Gateway",
+ "hexcasting.spell.ephemera:networkindex": "Routing Distillation",
+ "hexcasting.spell.book.ephemera:networkindex": "Routing Dstln.",
+ "hexcasting.spell.ephemera:readframerotation": "Decorator's Purification",
+ "hexcasting.spell.book.ephemera:readframerotation": "Decorator's Prfn.",
+ "hexcasting.spell.ephemera:setframerotation": "Decorator's Gambit",
+ "hexcasting.spell.ephemera:paintconjured": "Externalize Pigment",
+ "hexcasting.spell.ephemera:particleburst": "Particle Burst",
+ "hexcasting.spell.ephemera:invisibility": "Hidden Sun's Zenith",
+ "hexcasting.spell.ephemera:getstatus": "Apothecary's Purification",
+ "hexcasting.spell.book.ephemera:getstatus": "Apothecary's Prfn.",
+ "hexcasting.spell.ephemera:getstatuscategory": "Apothecary's Purification II",
+ "hexcasting.spell.book.ephemera:getstatuscategory": "Apothecary's Prfn. II",
+ "hexcasting.spell.ephemera:getstatusduration": "Pharmacist's Distillation",
+ "hexcasting.spell.book.ephemera:getstatusduration": "Pharmacist's Dstln.",
+ "hexcasting.spell.ephemera:getstatuslevel": "Pharmacist's Dstln. II",
+ "hexcasting.spell.book.ephemera:getstatuslevel": "Pharmacist's Distillation II",
+ "hexcasting.spell.ephemera:getbystatus": "Zone Exaltation: Status",
+ "hexcasting.spell.book.ephemera:getbystatus": "Zone Exltn.: Status",
+ "hexcasting.spell.ephemera:getbystatusinverse": "Zone Exaltation: Not-Status",
+ "hexcasting.spell.book.ephemera:getbystatusinverse": "Zone Exltn.: Not-Status",
+ "hexcasting.spell.ephemera:getbystatussingle": "Entity Distillation: Status",
+ "hexcasting.spell.ephemera:removestatus": "Cleanse Status",
+ "hexcasting.spell.ephemera:getabsorption": "Ablation Purification",
+ "hexcasting.spell.ephemera:filteredentityraycast": "Scout's Exaltation",
+ "hexcasting.spell.ephemera:gaussianrand": "Entropy Reflection II",
+ "hexcasting.spell.ephemera:plasmabeam": "Plasma Beam",
+ "hexcasting.spell.ephemera:hash": "Hashing Purification",
+ "hexcasting.spell.ephemera:hashbits": "undocumented hash-to-numbers pattern",
+ "hexcasting.spell.ephemera:revealtoother": "Postman's Gambit",
+ "hexcasting.spell.ephemera:getrevealcost": "Postage Purification",
+ "hexcasting.spell.ephemera:clearrevealcost": "Postman's Gambit II",
+ "hexcasting.spell.ephemera:repair": "Induce Mending",
+ "hexcasting.spell.ephemera:getdurabilitymainhand": "Menderbug's Reflection",
+ "hexcasting.spell.book.ephemera:getdurabilitymainhand": "Menderbug's Rfln.",
+ "hexcasting.spell.ephemera:getdurabilityoffhand": "Menderbug's Reflection II",
+ "hexcasting.spell.book.ephemera:getdurabilityoffhand": "Menderbug's Rfln. II",
+
+ "hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
+ "hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
+ "hexcasting.mishap.ephemera:nonconjured": "Expected a conjured block at %s, but got %s.",
+ "hexcasting.mishap.ephemera:missingeffect": "Expected %s to be affected by %s, but they are not.",
+ "ephemera.mishap.noitemframe": "an item frame",
+ "ephemera.mishap.entitytypelistplease": "a list of entity types",
+ "ephemera.mishap.toolongiota": "an iota that displays as less than 256 characters",
+ "hexcasting.mishap.ephemera:blacklist": "This effect has been blacklisted via tag.",
+ "hexcasting.mishap.ephemera:instant": "How did you even get that iota?",
+
+ "item.ephemeral.media_armor.tooltip.1": "Bestows %s %s upon the wearer.",
+
+ "ephemera.entry.miscpatterns": "Misc. Ephemera Patterns",
+ "ephemera.entry.invisibility": "Invisibility",
+ "ephemera.entry.status_iotas": "Status Iotas",
+ "ephemera.entry.network": "Link Amenities",
+ "ephemera.entry.revealtoother": "Messaging",
+ "ephemera.entry.mending": "Induce Mending",
+ "ephemera.entry.hashing": "Iota Hashing",
+ "ephemera.entry.specialslates": "Modified Slates",
+
+ "ephemera.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
+ "ephemera.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
+ "ephemera.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
+ "ephemera.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
+ "ephemera.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
+ "ephemera.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
+ "ephemera.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
+ "ephemera.page.miscpatterns.5": "Returns a random number between 0 and 1, with a gaussian distribution.",
+ "ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
+ "ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
+ "ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
+ "ephemera.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
+ "ephemera.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
+ "ephemera.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
+ "ephemera.page.status_iotas.4": "Accepts an entity and a status effect type, and returns the effect on the target's duration in seconds.",
+ "ephemera.page.status_iotas.5": "Accepts an entity and a status effect type, and returns the effect on the target's potency.",
+ "ephemera.page.status_iotas.6": "Accepts a status effect type and a vector, and returns an entity at that position which has that effect.",
+ "ephemera.page.status_iotas.7": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which have that effect.",
+ "ephemera.page.status_iotas.8": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which do not have that effect.",
+ "ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
+ "ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
+ "ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
+ "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:ephemera:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
+ "ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
+ "ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
+ "ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
+ "ephemera.page.magearmor.5": "This explanation assumes I am wearing no other armor, in practice the cost can be reduced to as little as 25%% of that formula's output if all but one of my armor slots is already occupied by more conventional armor.",
+ "ephemera.page.plasmabeam.1": "One of the more destructive spells I've encountered, this spell converts some of the media making up a wisp into a plasma-like blast of energy that pierces through and damages any creatures (including myself) in the way, and potentially destroys blocks not noted for their durability.",
+ "ephemera.page.plasmabeam.2": "Fires the blast along the motion vector of the wisp casting the spell, or a random vector if it is not moving. Costs two amethyst dust.",
+ "ephemera.page.plasmabeam.3": "You know what? I don't like this spell. I'm removing its entry from the book. It will not be present whenever I port the mod to 1.20.1.",
+ "ephemera.page.network.1": "I've devised a suite of patterns (plus a couple of blocks) to make links a bit more useful for things other than data transmission and media sharing.$(br2)Note that the patterns which fetch information about the network make no promises regarding whether returned linkables are within ambit.",
+ "ephemera.page.network.2": "Scans the link network connected to the input linkable up to a recursion depth equal to the input number (max 32), and returns a list of all connected linkables. Costs a negligible amount of media.",
+ "ephemera.page.network.3": "Accepts an entity to teleport, a linkable to use for access to its network, and a destination. If the entity is within 8 blocks of the linkable, and there is a network node within 4 blocks of the destination, the entity will be teleported. Cost varies based on what entity is teleported.",
+ "ephemera.page.network.4": "Outputs a brief redstone signal when an adjacent relay is used as the output for a casting of Network Gateway.",
+ "ephemera.page.network.5": "When rclicked with a focus in the main hand, attempts to store its iota in the block. When the focus is in the offhand, writes the stored iota to the focus.",
+ "ephemera.page.network.6": "Accepts a linkable to use for network access, and any iota. If a relay connected to the network has an adjacent Network Routing Index with the same iota, returns that relay's position. Costs half an amethyst dust.",
+
+ "ephemera.page.revealtoother.1": "Accepts a player and any iota less than 256 characters long, and shows that iota to them as if they had cast Reveal, also telling them who sent the message. Cost is inversely proportional to the length of time since they were last targeted by this spell.",
+ "ephemera.page.revealtoother.2": "Accepts a player and returns how much amethyst dust it would cost to send them a message via Postman's Gambit, between 1/10 of a dust and 10 dust.",
+ "ephemera.page.revealtoother.3": "Resets the cost of sending me a message via Postman's Gambit back to 1/10 of a dust. Costs 1/10 of a dust.",
+
+ "ephemera.page.mending.1": "Accepts a raw media item on the ground, and attempts to use it to repair a tool in my other hand.",
+ "ephemera.page.mending.2": "Generally only works on items enchanted with Mending, which are already damaged. Restores twenty points of damage for each amethyst dust's worth of media.",
+ "ephemera.page.mending.3": "Returns how many times the item in my other hand can be used without breaking, durability-manipulating effects notwithstanding.",
+ "ephemera.page.mending.4": "As previous, targeting the item in the hand I'm casting this with. Most useful with delayed casts of one form or another.",
+
+ "ephemera.page.hashing.1": "I've discovered a curious pattern which scrambles an iota into an unreadable mess. However, unlike Garbage iotas, $(o)this$() mess still contains data, and running the same iota through the pattern will always produce the same mess (known as a hash). While it is not possible to recover an iota from a hash, it can be quite useful for comparisons in situations where I cannot save the unaltered iota.",
+ "ephemera.page.hashing.2": "Accepts any iota, and converts it into its hashed form.",
+
+ "ephemera.page.specialslates.1": "I've designed a couple types of slate to be used in spell circles. While they don't provide any groundbreaking new functionality, they can be nice to have.",
+ "ephemera.page.specialslates.2": "Works just like a normal slate, but is capable of sending the media wave into the block it is placed on.",
+ "ephemera.page.specialslates.3": "Crafted with a normal slate and a stonecutter.$(br2)Looks just like a normal slate, but can't direct a media wave at all. Cannot be written to.",
+
+ "ephemera.page.forgewarning.1": "Mod author's note for Forge users: This spell does not work on Forge. I do not know why. I've set the cost on Forge to zero so at least it won't waste media. Sorry.$(br2)I'll try to get it working eventually.",
+ "ephemera.page.forgewarning.2": "Mod author's note for Forge users: This spell does not produce particles on Forge. I do not know why. The entity damage and block breaking still work fine, at least. Sorry.$(br2)I'll try to get it working eventually (no I won't).",
+
+ "hexcasting.iota.ephemera:potion": "Status Effect",
+ "hexcasting.iota.ephemera:hash": "Hash",
+ "ephemera.iota.hashlabel": "Hashed data: %s",
+
+ "text.ephemera.clearHistoryResponse": "Cleared reveal history map.",
+ "text.ephemera.revealIntroduction": "Transmission from %s: ",
+
+ "enchantment.ephemera.shame": "Curse of Shame"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
new file mode 100644
index 000000000000..895cf863d70a
--- /dev/null
+++ b/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
@@ -0,0 +1,144 @@
+{
+ "itemGroup.ephemera.ephemera": "Ephemera",
+
+ "item.ephemera.media_helmet": "咒塑头盔",
+ "item.ephemera.media_chestplate": "咒塑胸甲",
+ "item.ephemera.media_leggings": "咒塑护腿",
+ "item.ephemera.media_boots": "咒塑靴子",
+
+ "block.ephemera.relay_tp_detector": "网络门径探测器",
+ "block.ephemera.relay_index": "网络路由索引",
+ "block.ephemera.sneakyslate": "根植石板",
+ "block.ephemera.fakeslate": "惰性石板",
+ "block.ephemera.sneakyslate.blank": "空白根植石板",
+ "block.ephemera.sneakyslate.written": "有图案的根植石板",
+
+ "hexcasting.spell.ephemera:magearmor": "瞬时庇护",
+ "hexcasting.spell.book.ephemera:magearmor": "瞬时庇护",
+ "hexcasting.spell.ephemera:networkscan": "网络之馏化",
+ "hexcasting.spell.book.ephemera:networkscan": "网络之馏化",
+ "hexcasting.spell.ephemera:networktp": "网络门径",
+ "hexcasting.spell.book.ephemera:networktp": "网络门径",
+ "hexcasting.spell.ephemera:networkindex": "路由之馏化",
+ "hexcasting.spell.book.ephemera:networkindex": "路由之馏化",
+ "hexcasting.spell.ephemera:readframerotation": "装潢师之纯化",
+ "hexcasting.spell.book.ephemera:readframerotation": "装潢师之纯化",
+ "hexcasting.spell.ephemera:setframerotation": "装潢师之策略",
+ "hexcasting.spell.ephemera:paintconjured": "外化染色剂",
+ "hexcasting.spell.ephemera:particleburst": "粒子迸发",
+ "hexcasting.spell.ephemera:invisibility": "隐阳当空",
+ "hexcasting.spell.ephemera:getstatus": "药师之纯化",
+ "hexcasting.spell.book.ephemera:getstatus": "药师之纯化",
+ "hexcasting.spell.ephemera:getstatuscategory": "药师之纯化,第二型",
+ "hexcasting.spell.book.ephemera:getstatuscategory": "药师之纯化,第二型",
+ "hexcasting.spell.ephemera:getstatusduration": "药剂师之馏化",
+ "hexcasting.spell.book.ephemera:getstatusduration": "药剂师之馏化",
+ "hexcasting.spell.ephemera:getstatuslevel": "药剂师之馏化,第二型",
+ "hexcasting.spell.book.ephemera:getstatuslevel": "药剂师之馏化,第二型",
+ "hexcasting.spell.ephemera:getbystatus": "区域之提整:状态",
+ "hexcasting.spell.book.ephemera:getbystatus": "区域之提整:状态",
+ "hexcasting.spell.ephemera:getbystatusinverse": "区域之提整:非状态",
+ "hexcasting.spell.book.ephemera:getbystatusinverse": "区域之提整:非状态",
+ "hexcasting.spell.ephemera:getbystatussingle": "实体之馏化:状态",
+ "hexcasting.spell.ephemera:removestatus": "清除状态",
+ "hexcasting.spell.ephemera:getabsorption": "销蚀之纯化",
+ "hexcasting.spell.ephemera:filteredentityraycast": "侦查员之提整",
+ "hexcasting.spell.ephemera:gaussianrand": "熵之精思,第二型",
+ "hexcasting.spell.ephemera:plasmabeam": "等离子冲击",
+ "hexcasting.spell.ephemera:hash": "哈希之纯化",
+ "hexcasting.spell.ephemera:hashbits": "未记录的哈希至数转换图案",
+ "hexcasting.spell.ephemera:revealtoother": "邮递员之策略",
+ "hexcasting.spell.ephemera:getrevealcost": "邮递员之纯化",
+ "hexcasting.spell.ephemera:clearrevealcost": "邮递员之策略,第二型",
+ "hexcasting.spell.ephemera:repair": "咒感修补",
+ "hexcasting.spell.ephemera:getdurabilitymainhand": "维修虫之精思",
+ "hexcasting.spell.book.ephemera:getdurabilitymainhand": "维修虫之精思",
+ "hexcasting.spell.ephemera:getdurabilityoffhand": "维修虫之精思,第二型",
+ "hexcasting.spell.book.ephemera:getdurabilityoffhand": "维修虫之精思,第二型",
+
+ "hexcasting.mishap.location_ephemera:inputrelaytprange": "目标实体距%s处的目标节点过远。",
+ "hexcasting.mishap.location_ephemera:outputrelaytprange": "无法在范围%s内找到已连接的节点。",
+ "hexcasting.mishap.ephemera:nonconjured": "本应在%s处有一个构筑的方块,而实际为%s。",
+ "hexcasting.mishap.ephemera:missingeffect": "%s本应拥有%s,而实际没有。",
+ "ephemera.mishap.noitemframe": "一个物品展示框",
+ "ephemera.mishap.entitytypelistplease": "一个实体类型列表",
+ "ephemera.mishap.toolongiota": "一个可用少于256个字符显示的iota",
+ "hexcasting.mishap.ephemera:blacklist": "此效果已被标签禁用。",
+ "hexcasting.mishap.ephemera:instant": "是如何拿到这个iota的?",
+
+ "item.ephemeral.media_armor.tooltip.1": "给予穿戴者%s %s。",
+
+ "ephemera.entry.miscpatterns": "Ephemera:杂项图案",
+ "ephemera.entry.invisibility": "隐形",
+ "ephemera.entry.status_iotas": "状态 Iota",
+ "ephemera.entry.network": "链接实用图案",
+ "ephemera.entry.revealtoother": "信息传递",
+ "ephemera.entry.mending": "咒感修补",
+ "ephemera.entry.hashing": "Iota 哈希",
+ "ephemera.entry.specialslates": "变种石板",
+
+ "ephemera.page.paintconjured.1": "接受一个向量与代表染色剂的物品类型。如果目标为我自己的方块,消耗极少量媒质;否则消耗 1 个紫水晶粉。",
+ "ephemera.page.paintconjured.2": "将所给位置处构筑方块的颜色设置为所给染色剂的颜色;如果传入的是 Null,则将其设置为我意识的颜色。$(br2)不保证对非传统的构筑物质有效。",
+ "ephemera.page.paintconjured.3": "这种效果有着奇怪的庆典感,就好像它曾用于某个盛大的节庆活动,与会队伍会把自己队的颜色泼洒到对手的领地上,类似于意识层面上的占领。",
+ "ephemera.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
+ "ephemera.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
+ "ephemera.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
+ "ephemera.page.miscpatterns.4": "与$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)类似,但能够接受一个实体类型 iota 列表。类型不在该列表内的实体会被忽略。消耗的媒质量略多于上文所提图案的“极少量”。",
+ "ephemera.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布。",
+ "ephemera.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
+ "ephemera.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
+ "ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
+ "ephemera.page.status_iotas.1": "这些图案主要操作代表生物身上长时效果的 iota,我可以用这些图案评估生物的状态,比只用护士之纯化更加深入彻底。$(br)虽然我的研究表明,代表瞬时效果的状态 iota 有存在的可能,但它们非常难以获取,而且我目前没想到它们有什么用途。",
+ "ephemera.page.status_iotas.2": "接受一个生物,并返回目标当前所有效果组成的列表 iota。",
+ "ephemera.page.status_iotas.3": "接受一个状态效果,并根据该效果对生物产生正面、负面,或中性影响返回一个数。",
+ "ephemera.page.status_iotas.4": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的持续时间,以秒计。",
+ "ephemera.page.status_iotas.5": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的强度。",
+ "ephemera.page.status_iotas.6": "接受一个状态效果和一个向量,并返回该处带有该状态效果的实体。",
+ "ephemera.page.status_iotas.7": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有带有给定状态效果生物的列表。",
+ "ephemera.page.status_iotas.8": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有无给定状态效果生物的列表。",
+ "ephemera.page.status_iotas.9": "接受一个活体实体,并返回其在生命值受影响前能吸收的伤害量。",
+ "ephemera.page.status_iotas.10": "接受一个实体和一个状态效果,并移除该实体身上的所给状态效果。消耗由效果自身的伤害性、强度、剩余持续时间决定。",
+ "ephemera.page.status_iotas.11": "若是要移除非自身实体身上的正面效果,则消耗会增加。$(br2)所有需要检测实体身上有无所给状态效果的图案都有副作用。如果该实体当前没有这种效果,则图案会失效,并给予我反胃。",
+ "ephemera.page.magearmor.1": "我发现了一种比较有趣的法术,它能够产生防御性的媒质屏障,防护力媲美甚至超过许多种传统盔甲。此类屏障甚至还能给予穿戴者许多$(l:ephemera:patterns/spells/status_iotas)持久效果$(/l),堪称泛用。",
+ "ephemera.page.magearmor.2": "接受作为盔甲接收方的玩家,盔甲的耐久度,盔甲的护甲值(最多为 10),施加的状态效果,状态效果的等级。最后两个参数可用其他类型的 iota 代替,此时这两个参数会被忽略。",
+ "ephemera.page.magearmor.3": "当然,这种屏障并非无法破坏。除去受击致损外,其耐久度还会持续减少。这种减少效应的基础速率看作每秒 1 “点”,则还需附加上其中效果等级平方个“点”。此外,穿戴者脱下后它们会立刻消失。换言之,除非重新施法覆写其状态,否则没有方法修复它们。",
+ "ephemera.page.magearmor.4": "此法术的媒质消耗比较复杂:每 60 点耐久度基础消耗 1 个紫水晶粉,乘以护甲值的 1.5 次幂,再乘以任意状态效果的等级 + 1。因此,不提供状态效果、护甲值为 10、耐久度够支持 1 分钟的盔甲需消耗大约 31.5 个紫水晶粉。再令其给予生命恢复 II,消耗就来到了大约 94.5 个紫水晶粉,并且在消失前也只能坚持 36 秒。",
+ "ephemera.page.magearmor.5": "这一计算结果的前提是我没有穿戴其他盔甲,实际操作中消耗可以缩减到最低 25%%,出现在所有盔甲槽位中只有 1 格空出的情况中。",
+ "ephemera.page.plasmabeam.1": "我所遇到的极具破坏性的法术之一,此法术会将构成咒灵的一部分媒质转换成一束类似等离子体的能量,它能够穿透并伤害途径的所有生物(包括我自己),也有可能破坏强度不算高的方块。",
+ "ephemera.page.plasmabeam.2": "沿施法咒灵的运动向量发射冲击,未在移动则选取随机向量。消耗 2 个紫水晶粉。",
+ "ephemera.page.plasmabeam.3": "说实话,我不喜欢这个法术。我会删掉手册里的条目。模组更新到 1.20.1 后就不会有这个法术了。",
+ "ephemera.page.network.1": "我设计了一系列图案和若干方块,旨在赋予链接更多用途,除去已有数据传输和媒质共享之外。$(br2)需要注意,对于从网络中获取信息的图案,其返回的可链接事物不一定处在影响范围之内。",
+ "ephemera.page.network.2": "递归扫描与输入端可链接事物相连的链接网络,最大深度为所给数(最高为 32),并返回所有可链接事物组成的列表。消耗极少量媒质。",
+ "ephemera.page.network.3": "接受需传送的实体,用于访问网络的可链接事物,以及目的地。如果实体位于所给可链接事物 8 格之内,且距目的地 4 格之内存在网络节点,则实体会被传送。消耗量由被传送实体的类型决定。",
+ "ephemera.page.network.4": "如果毗邻的继链器被用作网络门径的输出端,则产生一次短时红石信号。",
+ "ephemera.page.network.5": "主手持有核心右击时,会尝试将核心中的 iota 存入自身。副手持有核心时,则会将存储的 iota 写入核心。",
+ "ephemera.page.network.6": "接受用于访问网络的可链接事物,以及任意 iota。如果网络中有继链器毗邻网络路由索引,且索引中存有同一 iota,则返回该继链器的位置。消耗 1/2 个紫水晶粉。",
+
+ "ephemera.page.revealtoother.1": "接受一个玩家和一个长度少于 256 个字符的 iota,并向所给玩家展示该 iota,如同他们来施放揭示一般;同时也告诉他们信息的发送者。消耗与给定玩家上一次作为此法术目标后经过的时间成反比例。",
+ "ephemera.page.revealtoother.2": "接受一个玩家,返回紫水晶粉的数量,对应通过邮递员之策略向其发送信息的消耗,范围在 1/10 个到 10 个之间。",
+ "ephemera.page.revealtoother.3": "重置通过邮递员之策略向我发送信息的消耗,也即 1/10 个紫水晶粉。消耗 1/10 个紫水晶粉。",
+
+ "ephemera.page.mending.1": "接受自然包含媒质的物品实体,用其修复我另一只手中的工具。",
+ "ephemera.page.mending.2": "通常只对拥有经验修补魔咒的受损物品有效。每个紫水晶粉的媒质恢复 20 点耐久度。",
+ "ephemera.page.mending.3": "返回我另一只手中物品在损毁前还能使用的次数,会影响耐久度使用的效果不计。",
+ "ephemera.page.mending.4": "和前页图案类似,但它会以施法用手中的物品为目标。最适合配合各种形式的延迟施法使用。",
+
+ "ephemera.page.hashing.1": "我发现了一个神奇的图案,能将 iota 变成一团读不懂的乱麻。但和垃圾 iota 不一样的是,$(o)这种$()乱麻中依然含有数据,并且同样的 iota 必定给出同样的乱麻(又称哈希)。虽然哈希后的乱麻没法还原成 iota,但很适合在无法保存未经修改的 iota 的情况下用来比对。",
+ "ephemera.page.hashing.2": "接受任意 iota,转换成哈希值。",
+
+ "ephemera.page.specialslates.1": "我设计了若干种可用于法术环的石板。虽然它们没有什么开创性的新功能,但有这些选择也不错。",
+ "ephemera.page.specialslates.2": "和普通的石板功效一样,但它能够向其所依附的方块传递媒质波。",
+ "ephemera.page.specialslates.3": "在切石机中加工普通石板而得。$(br2)和普通石板外观一致,但完全无法传导媒质波,且无法写入。",
+
+ "ephemera.page.forgewarning.1": "模组作者给 Forge 用户的留言:此法术在 Forge 上无法运行。我不知道具体的原因。我已将 Forge 端中此法术的消耗设置为 0,避免浪费媒质。抱歉。$(br2)我会尽力让它正常运作。",
+ "ephemera.page.forgewarning.2": "模组作者给 Forge 用户的留言:此法术在 Forge 上无法产生粒子。我不知道具体的原因。至少伤害实体和破坏方块的功能依然可用。抱歉。$(br2)我会尽力让它正常运作(不我不会的)。",
+
+ "hexcasting.iota.ephemera:potion": "状态效果",
+ "hexcasting.iota.ephemera:hash": "哈希",
+ "ephemera.iota.hashlabel": "哈希数据:%s",
+
+ "text.ephemera.clearHistoryResponse": "已清除揭示历史。",
+ "text.ephemera.revealIntroduction": "来自%s的信息:",
+
+ "enchantment.ephemera.shame": "无耻诅咒"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasted/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexcasted/lang/en_us.json
new file mode 100644
index 000000000000..43069072cdac
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexcasted/lang/en_us.json
@@ -0,0 +1,18 @@
+{
+ "hexcasted.entry.cbc": "The Call to War",
+ "hexcasted.page.cbc": "I had been drafted by the Cannoneer's Corps to make weapons of war and, despite my hesitancy, I accepted.$(br)$(br)Project Hexcasted's final product was the $(thing)Hex Shell$() was an media-infused shell inscribed with two Hexes. The $(thing)Cannoneer's Hex$() which executes as fast as Nature would allow upon firing the shell and The $(thing)Demolitionist's Hex$() to execute on detonation.$(br)$(br)What have I done...",
+
+ "hexcasted.entry.cbc_basics": "War is Hell",
+ "hexcasting.action.hexcasted:shell_get_on_tick": "Cannoneer's Prfn.",
+ "hexcasted.page.cbc_basics.shell_get_on_tick": "This pattern reads the $(thing)Cannoneer's Hex$() from a $(thing)Hex Shell$().",
+ "hexcasting.action.hexcasted:shell_set_on_tick": "Cannoneer's Gambit",
+ "hexcasted.page.cbc_basics.shell_set_on_tick": "This pattern inscribes the $(thing)Cannoneer's Hex$() onto a $(thing)Hex Shell$() which executes as fast as Nature would allow after being fired.$(br)$(br)Experiment 10a: Targeting a Submarine - Failed, ran out of media, hit a civilian cruise ship. 2 Casualties.",
+ "hexcasting.action.hexcasted:shell_get_on_detonate": "Demolitionist's Prfn.",
+ "hexcasted.page.cbc_basics.shell_get_on_detonate": "This pattern reads the $(thing)Demolitionist's Hex$() from a $(thing)Hex Shell$().",
+ "hexcasting.action.hexcasted:shell_set_on_detonate": "Demolitionist's Gambit",
+ "hexcasted.page.cbc_basics.shell_set_on_detonate": "This pattern inscribes the $(thing)Demolitionist's Hex$() onto a $(thing)Hex Shell$() which executes upon the shell being detonated.$(br)$(br)Experiment 11b: Targeting a \"Doom Town\" - Failed, miscalculated trajectory, hit nearby village. 347 Rendered Inert.",
+
+ "hexcasted.entry.cbc_spell": "Splitting the Hex",
+ "hexcasting.action.hexcasted:create_shell": "Create Shell",
+ "hexcasted.page.cbc_spell.create_shell": "This pattern takes the given media and forces Nature to create a $(thing)Hex Shell$(). I pray these notes never fall into the wrong hands..."
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json
new file mode 100644
index 000000000000..2c1ec9adeab9
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json
@@ -0,0 +1,18 @@
+{
+ "hexcasted.entry.cbc": "战争之召",
+ "hexcasted.page.cbc": "炮兵军团征召我为武器制造师。我虽然百般拖延,最终还是接受了。$(br)$(br)咒术炮弹计划的最终产物即是$(thing)咒术弹$(),它是蚀刻有两个咒术的媒质灌注炮弹。$(thing)炮兵咒术$()会在炮弹发射后立即施放,自然有多快,此咒术的施放起始就有多快;$(thing)爆破师咒术$()会在炮弹爆炸时施放。$(br)$(br)我都做了些什么……",
+
+ "hexcasted.entry.cbc_basics": "战争即地狱",
+ "hexcasting.action.hexcasted:shell_get_on_tick": "炮兵之纯化",
+ "hexcasted.page.cbc_basics.shell_get_on_tick": "此图案会从$(thing)咒术弹$()中读取$(thing)炮兵咒术$()。",
+ "hexcasting.action.hexcasted:shell_set_on_tick": "炮兵之策略",
+ "hexcasted.page.cbc_basics.shell_set_on_tick": "此图案会向$(thing)咒术弹$()蚀刻$(thing)炮兵咒术$(),其会在发射后以最快速度施放。$(br)$(br)实验 10a:以某个潜水艇为目标。失败,媒质耗尽,击中民用游轮。2 人伤亡。",
+ "hexcasting.action.hexcasted:shell_get_on_detonate": "爆破师之纯化",
+ "hexcasted.page.cbc_basics.shell_get_on_detonate": "此图案会从$(thing)咒术弹$()中读取$(thing)爆破师咒术$()。",
+ "hexcasting.action.hexcasted:shell_set_on_detonate": "爆破师之策略",
+ "hexcasted.page.cbc_basics.shell_set_on_detonate": "此图案会向$(thing)咒术弹$()蚀刻$(thing)爆破师咒术$(),其会在炮弹爆炸时施放。$(br)$(br)实验 11b:以某个“末日镇”为目标。失败,轨道计算失误,击中附近村庄。347 人失能。",
+
+ "hexcasted.entry.cbc_spell": "分裂咒术",
+ "hexcasting.action.hexcasted:create_shell": "制造炮弹",
+ "hexcasted.page.cbc_spell.create_shell": "此图案接受一定量媒质,并强迫自然制造一个$(thing)咒术弹$()。但愿这些笔记不会落入坏人之手……"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/en_us.json b/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
new file mode 100644
index 000000000000..265b702301c8
--- /dev/null
+++ b/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
@@ -0,0 +1,155 @@
+{
+ "itemGroup.ephemera.ephemera": "Ephemera",
+
+ "item.ephemera.media_helmet": "Hexformed Helmet",
+ "item.ephemera.media_chestplate": "Hexformed Chestplate",
+ "item.ephemera.media_leggings": "Hexformed Leggings",
+ "item.ephemera.media_boots": "Hexformed Boots",
+
+ "block.ephemera.relay_tp_detector": "Network Gateway Probe",
+ "block.ephemera.relay_index": "Network Routing Index",
+ "block.ephemera.fakeslate": "Inert Slate",
+
+ "hexcasting.action.ephemera:magearmor": "Instant Aegis",
+ "hexcasting.action.book.ephemera:magearmor": "Instant Aegis",
+ "hexcasting.action.ephemera:networkscan": "Network Distillation",
+ "hexcasting.action.book.ephemera:networkscan": "Network Dstln.",
+ "hexcasting.action.ephemera:networktp": "Network Gateway",
+ "hexcasting.action.book.ephemera:networktp": "Network Gateway",
+ "hexcasting.action.ephemera:networkindex": "Routing Distillation",
+ "hexcasting.action.book.ephemera:networkindex": "Routing Dstln.",
+ "hexcasting.action.ephemera:readframerotation": "Decorator's Purification",
+ "hexcasting.action.book.ephemera:readframerotation": "Decorator's Prfn.",
+ "hexcasting.action.ephemera:setframerotation": "Decorator's Gambit",
+ "hexcasting.action.ephemera:paintconjured": "Externalize Pigment",
+ "hexcasting.action.ephemera:particleburst": "Particle Burst",
+ "hexcasting.action.ephemera:invisibility": "Hidden Sun's Zenith",
+ "hexcasting.action.ephemera:getstatus": "Apothecary's Purification",
+ "hexcasting.action.book.ephemera:getstatus": "Apothecary's Prfn.",
+ "hexcasting.action.ephemera:getstatuscategory": "Apothecary's Purification II",
+ "hexcasting.action.book.ephemera:getstatuscategory": "Apothecary's Prfn. II",
+ "hexcasting.action.ephemera:getstatusduration": "Pharmacist's Distillation",
+ "hexcasting.action.book.ephemera:getstatusduration": "Pharmacist's Dstln.",
+ "hexcasting.action.ephemera:getstatuslevel": "Pharmacist's Dstln. II",
+ "hexcasting.action.book.ephemera:getstatuslevel": "Pharmacist's Distillation II",
+ "hexcasting.action.ephemera:getbystatus": "Zone Exaltation: Status",
+ "hexcasting.action.book.ephemera:getbystatus": "Zone Exltn.: Status",
+ "hexcasting.action.ephemera:getbystatusinverse": "Zone Exaltation: Not-Status",
+ "hexcasting.action.book.ephemera:getbystatusinverse": "Zone Exltn.: Not-Status",
+ "hexcasting.action.ephemera:getbystatussingle": "Entity Distillation: Status",
+ "hexcasting.action.ephemera:removestatus": "Cleanse Status",
+ "hexcasting.action.ephemera:getabsorption": "Ablation Purification",
+ "hexcasting.action.ephemera:filteredentityraycast": "Scout's Exaltation",
+ "hexcasting.action.ephemera:gaussianrand": "Entropy Reflection II",
+ "hexcasting.action.ephemera:hash": "Hashing Purification",
+ "hexcasting.action.ephemera:hashbits": "undocumented hash-to-numbers pattern",
+ "hexcasting.action.ephemera:revealtoother": "Postman's Gambit",
+ "hexcasting.action.ephemera:getrevealcost": "Postage Purification",
+ "hexcasting.action.ephemera:clearrevealcost": "Postman's Gambit II",
+ "hexcasting.action.ephemera:repair": "Induce Mending",
+ "hexcasting.action.ephemera:getdurabilitymainhand": "Menderbug's Reflection",
+ "hexcasting.action.book.ephemera:getdurabilitymainhand": "Menderbug's Rfln.",
+ "hexcasting.action.ephemera:getdurabilityoffhand": "Menderbug's Reflection II",
+ "hexcasting.action.book.ephemera:getdurabilityoffhand": "Menderbug's Rfln. II",
+ "hexcasting.action.ephemera:thothyoink": "Seshat's Gambit",
+ "hexcasting.action.ephemera:thothcount": "Seshat's Reflection",
+ "hexcasting.action.book.ephemera:thothcount": "Seshat's Rfln.",
+ "hexcasting.action.ephemera:collisionprobe": "Clearance Purification",
+ "hexcasting.action.book.ephemera:collisionprobe": "Clearance Prfn.",
+ "hexcasting.action.ephemera:getiotasize": "Flock's Purification",
+ "hexcasting.action.ephemera:getstacksizedeep": "Flock's Reflection II",
+ "hexcasting.action.book.ephemera:getiotasize": "Flock's Prfn.",
+ "hexcasting.action.book.ephemera:getstacksizedeep": "Flock's Rfln. II",
+
+ "hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
+ "hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
+ "hexcasting.mishap.ephemera:nonconjured": "Expected a conjured block at %s, but got %s.",
+ "hexcasting.mishap.ephemera:missingeffect": "Expected %s to be affected by %s, but they are not.",
+ "hexcasting.mishap.ephemera:nothoth": "Expected to be cast from inside of Thoth's Gambit.",
+ "ephemera.mishap.noitemframe": "an item frame",
+ "ephemera.mishap.entitytypelistplease": "a list of entity types",
+ "ephemera.mishap.toolongiota": "an iota that displays as less than 256 characters",
+ "hexcasting.mishap.ephemera:blacklist": "This effect has been blacklisted via tag.",
+ "hexcasting.mishap.ephemera:instant": "How did you even get that iota?",
+
+ "item.ephemeral.media_armor.tooltip.1": "Bestows %s %s upon the wearer.",
+
+ "ephemera.entry.miscpatterns": "Misc. Ephemera Patterns",
+ "ephemera.entry.invisibility": "Invisibility",
+ "ephemera.entry.status_iotas": "Status Iotas",
+ "ephemera.entry.network": "Link Amenities",
+ "ephemera.entry.revealtoother": "Messaging",
+ "ephemera.entry.mending": "Induce Mending",
+ "ephemera.entry.hashing": "Iota Hashing",
+ "ephemera.entry.specialslates": "Modified Slates",
+ "ephemera.entry.metathoth": "Accumulator Manipulation",
+
+ "ephemera.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
+ "ephemera.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
+ "ephemera.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
+ "ephemera.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
+ "ephemera.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
+ "ephemera.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
+ "ephemera.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
+ "ephemera.page.miscpatterns.5": "Returns a random number with a gaussian distribution, with a mean of zero and a standard deviation of one.",
+ "ephemera.page.miscpatterns.6": "Accepts a vector, and returns whether that vector is within (or just on the edge of) the block in that space. Seems to involve the boxes I see in my mind's eye.",
+ "ephemera.page.miscpatterns.7": "Returns the total size of all iotas on my stack, including the contents of lists and similar. If this number ever reaches 1024, my stack shall come crashing down into garbage.",
+ "ephemera.page.miscpatterns.8": "Accepts any iota, and returns its total size.",
+ "ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
+ "ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
+ "ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
+ "ephemera.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
+ "ephemera.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
+ "ephemera.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
+ "ephemera.page.status_iotas.4": "Accepts an entity and a status effect type, and returns the effect on the target's duration in seconds.",
+ "ephemera.page.status_iotas.5": "Accepts an entity and a status effect type, and returns the effect on the target's potency.",
+ "ephemera.page.status_iotas.6": "Accepts a status effect type and a vector, and returns an entity at that position which has that effect.",
+ "ephemera.page.status_iotas.7": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which have that effect.",
+ "ephemera.page.status_iotas.8": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which do not have that effect.",
+ "ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
+ "ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
+ "ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
+ "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:ephemera:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
+ "ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
+ "ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
+ "ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
+ "ephemera.page.magearmor.5": "This explanation assumes I am wearing no other armor, in practice the cost can be reduced to as little as 25%% of that formula's output if all but one of my armor slots is already occupied by more conventional armor.",
+ "ephemera.page.network.1": "I've devised a suite of patterns (plus a couple of blocks) to make links a bit more useful for things other than data transmission and media sharing.$(br2)Note that the patterns which fetch information about the network make no promises regarding whether returned linkables are within ambit.",
+ "ephemera.page.network.2": "Scans the link network connected to the input linkable up to a recursion depth equal to the input number (max 32), and returns a list of all connected linkables. Costs a negligible amount of media.",
+ "ephemera.page.network.3": "Accepts an entity to teleport, a linkable to use for access to its network, and a destination. If the entity is within 8 blocks of the linkable, and there is a network node within 4 blocks of the destination, the entity will be teleported. Cost varies based on what entity is teleported.",
+ "ephemera.page.network.4": "Outputs a brief redstone signal when an adjacent relay is used as the output for a casting of Network Gateway.",
+ "ephemera.page.network.5": "When rclicked with a focus in the main hand, attempts to store its iota in the block. When the focus is in the offhand, writes the stored iota to the focus.",
+ "ephemera.page.network.6": "Accepts a linkable to use for network access, and any iota. If a relay connected to the network has an adjacent Network Routing Index with the same iota, returns that relay's position. Costs half an amethyst dust.",
+
+ "ephemera.page.revealtoother.1": "Accepts a player and any iota less than 256 characters long, and shows that iota to them as if they had cast Reveal, also telling them who sent the message. Cost is inversely proportional to the length of time since they were last targeted by this spell.",
+ "ephemera.page.revealtoother.2": "Accepts a player and returns how much amethyst dust it would cost to send them a message via Postman's Gambit, between 1/10 of a dust and 10 dust.",
+ "ephemera.page.revealtoother.3": "Resets the cost of sending me a message via Postman's Gambit back to 1/10 of a dust. Costs 1/10 of a dust.",
+
+ "ephemera.page.mending.1": "Accepts a raw media item on the ground, and attempts to use it to repair a tool in my other hand.",
+ "ephemera.page.mending.2": "Generally only works on items enchanted with Mending, which are already damaged. Restores twenty points of damage for each amethyst dust's worth of media.",
+ "ephemera.page.mending.3": "Returns how many times the item in my other hand can be used without breaking, durability-manipulating effects notwithstanding.",
+ "ephemera.page.mending.4": "As previous, targeting the item in the hand I'm casting this with. Most useful with delayed casts of one form or another.",
+
+ "ephemera.page.hashing.1": "I've discovered a curious pattern which scrambles an iota into an unreadable mess. However, unlike Garbage iotas, $(o)this$() mess still contains data, and running the same iota through the pattern will always produce the same mess (known as a hash). While it is not possible to recover an iota from a hash, it can be quite useful for comparisons in situations where I cannot save the unaltered iota.",
+ "ephemera.page.hashing.2": "Accepts any iota, and converts it into its hashed form.",
+
+ "ephemera.page.specialslates.1": "I've designed a couple types of slate to be used in spell circles. While they don't provide any groundbreaking new functionality, they can be nice to have.",
+ "ephemera.page.specialslates.2": "Works just like a normal slate, but is capable of sending the media wave into the block it is placed on.",
+ "ephemera.page.specialslates.3": "Crafted with a normal slate and a stonecutter.$(br2)Looks just like a normal slate, but can't direct a media wave at all. Cannot be written to.",
+
+ "ephemera.page.metathoth.1": "It seems that the list which $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) forms as it iterates over a data set functions as a stack, simply one that is a bit out of the way. As such, I have devised a couple of patterns for interacting with this hidden stack, called the accumulator.",
+ "ephemera.page.metathoth.2": "Pops an iota from the accumulator and pushes it to the current stack. Mishaps if used outside of Thoth's Gambit.",
+ "ephemera.page.metathoth.3": "Returns how many iotas are currently accessible via Seshat's Gambit. Returns -1 if used outside of Thoth's Gambit.",
+
+ "ephemera.page.forgewarning.1": "Mod author's note for Forge users: This spell does not work on Forge. I do not know why. I've set the cost on Forge to zero so at least it won't waste media. Sorry.$(br2)I'll try to get it working eventually.",
+
+ "hexcasting.iota.ephemera:potion": "Status Effect",
+ "hexcasting.iota.ephemera:hash": "Hash",
+ "ephemera.iota.hashlabel": "Hashed data: %s",
+
+ "text.ephemera.clearHistoryResponse": "Cleared reveal history map.",
+ "text.ephemera.revealIntroduction": "Transmission from %s: ",
+ "text.ephemera.nosender": "unknown",
+
+ "enchantment.ephemera.shame": "Curse of Shame"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
new file mode 100644
index 000000000000..7df1ceb3ead1
--- /dev/null
+++ b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
@@ -0,0 +1,155 @@
+{
+ "itemGroup.ephemera.ephemera": "Ephemera",
+
+ "item.ephemera.media_helmet": "咒塑头盔",
+ "item.ephemera.media_chestplate": "咒塑胸甲",
+ "item.ephemera.media_leggings": "咒塑护腿",
+ "item.ephemera.media_boots": "咒塑靴子",
+
+ "block.ephemera.relay_tp_detector": "网络门径探测器",
+ "block.ephemera.relay_index": "网络路由索引",
+ "block.ephemera.fakeslate": "惰性石板",
+
+ "hexcasting.action.ephemera:magearmor": "瞬时庇护",
+ "hexcasting.action.book.ephemera:magearmor": "瞬时庇护",
+ "hexcasting.action.ephemera:networkscan": "网络之馏化",
+ "hexcasting.action.book.ephemera:networkscan": "网络之馏化",
+ "hexcasting.action.ephemera:networktp": "网络门径",
+ "hexcasting.action.book.ephemera:networktp": "网络门径",
+ "hexcasting.action.ephemera:networkindex": "路由之馏化",
+ "hexcasting.action.book.ephemera:networkindex": "路由之馏化",
+ "hexcasting.action.ephemera:readframerotation": "装潢师之纯化",
+ "hexcasting.action.book.ephemera:readframerotation": "装潢师之纯化",
+ "hexcasting.action.ephemera:setframerotation": "装潢师之策略",
+ "hexcasting.action.ephemera:paintconjured": "外化染色剂",
+ "hexcasting.action.ephemera:particleburst": "粒子迸发",
+ "hexcasting.action.ephemera:invisibility": "隐阳当空",
+ "hexcasting.action.ephemera:getstatus": "药师之纯化",
+ "hexcasting.action.book.ephemera:getstatus": "药师之纯化",
+ "hexcasting.action.ephemera:getstatuscategory": "药师之纯化,第二型",
+ "hexcasting.action.book.ephemera:getstatuscategory": "药师之纯化,第二型",
+ "hexcasting.action.ephemera:getstatusduration": "药剂师之馏化",
+ "hexcasting.action.book.ephemera:getstatusduration": "药剂师之馏化",
+ "hexcasting.action.ephemera:getstatuslevel": "药剂师之馏化,第二型",
+ "hexcasting.action.book.ephemera:getstatuslevel": "药剂师之馏化,第二型",
+ "hexcasting.action.ephemera:getbystatus": "区域之提整:状态",
+ "hexcasting.action.book.ephemera:getbystatus": "区域之提整:状态",
+ "hexcasting.action.ephemera:getbystatusinverse": "区域之提整:非状态",
+ "hexcasting.action.book.ephemera:getbystatusinverse": "区域之提整:非状态",
+ "hexcasting.action.ephemera:getbystatussingle": "实体之馏化:状态",
+ "hexcasting.action.ephemera:removestatus": "清除状态",
+ "hexcasting.action.ephemera:getabsorption": "销蚀之纯化",
+ "hexcasting.action.ephemera:filteredentityraycast": "侦查员之提整",
+ "hexcasting.action.ephemera:gaussianrand": "熵之精思,第二型",
+ "hexcasting.action.ephemera:hash": "哈希之纯化",
+ "hexcasting.action.ephemera:hashbits": "未记录的哈希至数转换图案",
+ "hexcasting.action.ephemera:revealtoother": "邮递员之策略",
+ "hexcasting.action.ephemera:getrevealcost": "邮递员之纯化",
+ "hexcasting.action.ephemera:clearrevealcost": "邮递员之策略,第二型",
+ "hexcasting.action.ephemera:repair": "咒感修补",
+ "hexcasting.action.ephemera:getdurabilitymainhand": "维修虫之精思",
+ "hexcasting.action.book.ephemera:getdurabilitymainhand": "维修虫之精思",
+ "hexcasting.action.ephemera:getdurabilityoffhand": "维修虫之精思,第二型",
+ "hexcasting.action.book.ephemera:getdurabilityoffhand": "维修虫之精思,第二型",
+ "hexcasting.action.ephemera:thothyoink": "塞莎特之策略",
+ "hexcasting.action.ephemera:thothcount": "塞莎特之精思",
+ "hexcasting.action.book.ephemera:thothcount": "塞莎特之精思",
+ "hexcasting.action.ephemera:collisionprobe": "空域之纯化",
+ "hexcasting.action.book.ephemera:collisionprobe": "空域之纯化",
+ "hexcasting.action.ephemera:getiotasize": "群体之纯化",
+ "hexcasting.action.ephemera:getstacksizedeep": "群体之精思,第二型",
+ "hexcasting.action.book.ephemera:getiotasize": "群体之纯化",
+ "hexcasting.action.book.ephemera:getstacksizedeep": "群体之精思,第二型",
+
+ "hexcasting.mishap.location_ephemera:inputrelaytprange": "目标实体距%s处的目标节点过远。",
+ "hexcasting.mishap.location_ephemera:outputrelaytprange": "无法在范围%s内找到已连接的节点。",
+ "hexcasting.mishap.ephemera:nonconjured": "本应在%s处有一个构筑的方块,而实际为%s。",
+ "hexcasting.mishap.ephemera:missingeffect": "%s本应拥有%s,而实际没有。",
+ "hexcasting.mishap.ephemera:nothoth": "本应在托特之策略内部施放。",
+ "ephemera.mishap.noitemframe": "一个物品展示框",
+ "ephemera.mishap.entitytypelistplease": "一个实体类型列表",
+ "ephemera.mishap.toolongiota": "一个可用少于256个字符显示的iota",
+ "hexcasting.mishap.ephemera:blacklist": "此效果已被标签禁用。",
+ "hexcasting.mishap.ephemera:instant": "是如何拿到这个iota的?",
+
+ "item.ephemeral.media_armor.tooltip.1": "给予穿戴者%s %s。",
+
+ "ephemera.entry.miscpatterns": "Ephemera:杂项图案",
+ "ephemera.entry.invisibility": "隐形",
+ "ephemera.entry.status_iotas": "状态 Iota",
+ "ephemera.entry.network": "链接实用图案",
+ "ephemera.entry.revealtoother": "信息传递",
+ "ephemera.entry.mending": "咒感修补",
+ "ephemera.entry.hashing": "Iota 哈希",
+ "ephemera.entry.specialslates": "变种石板",
+ "ephemera.entry.metathoth": "累积栈操作",
+
+ "ephemera.page.paintconjured.1": "接受一个向量与代表染色剂的物品类型。如果目标为我自己的方块,消耗极少量媒质;否则消耗 1 个紫水晶粉。",
+ "ephemera.page.paintconjured.2": "将所给位置处构筑方块的颜色设置为所给染色剂的颜色;如果传入的是 Null,则将其设置为我意识的颜色。$(br2)不保证对非传统的构筑物质有效。",
+ "ephemera.page.paintconjured.3": "这种效果有着奇怪的庆典感,就好像它曾用于某个盛大的节庆活动,与会队伍会把自己队的颜色泼洒到对手的领地上,类似于意识层面上的占领。",
+ "ephemera.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
+ "ephemera.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
+ "ephemera.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
+ "ephemera.page.miscpatterns.4": "与$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)类似,但能够接受一个实体类型 iota 列表。类型不在该列表内的实体会被忽略。消耗的媒质量略多于上文所提图案的“极少量”。",
+ "ephemera.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布,其均值为 0,标准差为 1。",
+ "ephemera.page.miscpatterns.6": "接受一个向量,并检查该向量是否在该位置方块的内部或边缘。似乎与我在意识中见到的方框有所关联。",
+ "ephemera.page.miscpatterns.7": "返回我栈中所有 iota 的总大小,类列表 iota 中的各元素会拆出计算。若返回的数达到 1024,那么整个栈都将变为垃圾。",
+ "ephemera.page.miscpatterns.8": "接受任意 iota,返回其总大小。",
+ "ephemera.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
+ "ephemera.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
+ "ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
+ "ephemera.page.status_iotas.1": "这些图案主要操作代表生物身上长时效果的 iota,我可以用这些图案评估生物的状态,比只用护士之纯化更加深入彻底。$(br)虽然我的研究表明,代表瞬时效果的状态 iota 有存在的可能,但它们非常难以获取,而且我目前没想到它们有什么用途。",
+ "ephemera.page.status_iotas.2": "接受一个生物,并返回目标当前所有效果组成的列表 iota。",
+ "ephemera.page.status_iotas.3": "接受一个状态效果,并根据该效果对生物产生正面、负面,或中性影响返回一个数。",
+ "ephemera.page.status_iotas.4": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的持续时间,以秒计。",
+ "ephemera.page.status_iotas.5": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的强度。",
+ "ephemera.page.status_iotas.6": "接受一个状态效果和一个向量,并返回该处带有该状态效果的实体。",
+ "ephemera.page.status_iotas.7": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有带有给定状态效果生物的列表。",
+ "ephemera.page.status_iotas.8": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有无给定状态效果生物的列表。",
+ "ephemera.page.status_iotas.9": "接受一个活体实体,并返回其在生命值受影响前能吸收的伤害量。",
+ "ephemera.page.status_iotas.10": "接受一个实体和一个状态效果,并移除该实体身上的所给状态效果。消耗由效果自身的伤害性、强度、剩余持续时间决定。",
+ "ephemera.page.status_iotas.11": "若是要移除非自身实体身上的正面效果,则消耗会增加。$(br2)所有需要检测实体身上有无所给状态效果的图案都有副作用。如果该实体当前没有这种效果,则图案会失效,并给予我反胃。",
+ "ephemera.page.magearmor.1": "我发现了一种比较有趣的法术,它能够产生防御性的媒质屏障,防护力媲美甚至超过许多种传统盔甲。此类屏障甚至还能给予穿戴者许多$(l:ephemera:patterns/spells/status_iotas)持久效果$(/l),堪称泛用。",
+ "ephemera.page.magearmor.2": "接受作为盔甲接收方的玩家,盔甲的耐久度,盔甲的护甲值(最多为 10),施加的状态效果,状态效果的等级。最后两个参数可用其他类型的 iota 代替,此时这两个参数会被忽略。",
+ "ephemera.page.magearmor.3": "当然,这种屏障并非无法破坏。除去受击致损外,其耐久度还会持续减少。这种减少效应的基础速率看作每秒 1 “点”,则还需附加上其中效果等级平方个“点”。此外,穿戴者脱下后它们会立刻消失。换言之,除非重新施法覆写其状态,否则没有方法修复它们。",
+ "ephemera.page.magearmor.4": "此法术的媒质消耗比较复杂:每 60 点耐久度基础消耗 1 个紫水晶粉,乘以护甲值的 1.5 次幂,再乘以任意状态效果的等级 + 1。因此,不提供状态效果、护甲值为 10、耐久度够支持 1 分钟的盔甲需消耗大约 31.5 个紫水晶粉。再令其给予生命恢复 II,消耗就来到了大约 94.5 个紫水晶粉,并且在消失前也只能坚持 36 秒。",
+ "ephemera.page.magearmor.5": "这一计算结果的前提是我没有穿戴其他盔甲,实际操作中消耗可以缩减到最低 25%%,出现在所有盔甲槽位中只有 1 格空出的情况中。",
+ "ephemera.page.network.1": "我设计了一系列图案和若干方块,旨在赋予链接更多用途,除去已有数据传输和媒质共享之外。$(br2)需要注意,对于从网络中获取信息的图案,其返回的可链接事物不一定处在影响范围之内。",
+ "ephemera.page.network.2": "递归扫描与输入端可链接事物相连的链接网络,最大深度为所给数(最高为 32),并返回所有可链接事物组成的列表。消耗极少量媒质。",
+ "ephemera.page.network.3": "接受需传送的实体,用于访问网络的可链接事物,以及目的地。如果实体位于所给可链接事物 8 格之内,且距目的地 4 格之内存在网络节点,则实体会被传送。消耗量由被传送实体的类型决定。",
+ "ephemera.page.network.4": "如果毗邻的继链器被用作网络门径的输出端,则产生一次短时红石信号。",
+ "ephemera.page.network.5": "主手持有核心右击时,会尝试将核心中的 iota 存入自身。副手持有核心时,则会将存储的 iota 写入核心。",
+ "ephemera.page.network.6": "接受用于访问网络的可链接事物,以及任意 iota。如果网络中有继链器毗邻网络路由索引,且索引中存有同一 iota,则返回该继链器的位置。消耗 1/2 个紫水晶粉。",
+
+ "ephemera.page.revealtoother.1": "接受一个玩家和一个长度少于 256 个字符的 iota,并向所给玩家展示该 iota,如同他们来施放揭示一般;同时也告诉他们信息的发送者。消耗与给定玩家上一次作为此法术目标后经过的时间成反比例。",
+ "ephemera.page.revealtoother.2": "接受一个玩家,返回紫水晶粉的数量,对应通过邮递员之策略向其发送信息的消耗,范围在 1/10 个到 10 个之间。",
+ "ephemera.page.revealtoother.3": "重置通过邮递员之策略向我发送信息的消耗,也即 1/10 个紫水晶粉。消耗 1/10 个紫水晶粉。",
+
+ "ephemera.page.mending.1": "接受自然包含媒质的物品实体,用其修复我另一只手中的工具。",
+ "ephemera.page.mending.2": "通常只对拥有经验修补魔咒的受损物品有效。每个紫水晶粉的媒质恢复 20 点耐久度。",
+ "ephemera.page.mending.3": "返回我另一只手中物品在损毁前还能使用的次数,会影响耐久度使用的效果不计。",
+ "ephemera.page.mending.4": "和前页图案类似,但它会以施法用手中的物品为目标。最适合配合各种形式的延迟施法使用。",
+
+ "ephemera.page.hashing.1": "我发现了一个神奇的图案,能将 iota 变成一团读不懂的乱麻。但和垃圾 iota 不一样的是,$(o)这种$()乱麻中依然含有数据,并且同样的 iota 必定给出同样的乱麻(又称哈希)。虽然哈希后的乱麻没法还原成 iota,但很适合在无法保存未经修改的 iota 的情况下用来比对。",
+ "ephemera.page.hashing.2": "接受任意 iota,转换成哈希值。",
+
+ "ephemera.page.specialslates.1": "我设计了若干种可用于法术环的石板。虽然它们没有什么开创性的新功能,但有这些选择也不错。",
+ "ephemera.page.specialslates.2": "和普通的石板功效一样,但它能够向其所依附的方块传递媒质波。",
+ "ephemera.page.specialslates.3": "在切石机中加工普通石板而得。$(br2)和普通石板外观一致,但完全无法传导媒质波,且无法写入。",
+
+ "ephemera.page.metathoth.1": "似乎$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l)在处理数据时形成的列表在功能上与栈一致,只是表现上略有差别罢了。因此,我设计了一系列图案,用以和该隐藏栈——“累积栈”交互。",
+ "ephemera.page.metathoth.2": "从累积栈中弹出一个 iota 并压入当前栈。在托特之策略外部使用会招致事故。",
+ "ephemera.page.metathoth.3": "返回塞莎特之策略可访问的 iota 数目。在托特之策略外部使用会返回 -1。",
+
+ "ephemera.page.forgewarning.1": "模组作者给 Forge 用户的留言:此法术在 Forge 上无法运行。我不知道具体的原因。我已将 Forge 端中此法术的消耗设置为 0,避免浪费媒质。抱歉。$(br2)我会尽力让它正常运作。",
+
+ "hexcasting.iota.ephemera:potion": "状态效果",
+ "hexcasting.iota.ephemera:hash": "哈希",
+ "ephemera.iota.hashlabel": "哈希数据:%s",
+
+ "text.ephemera.clearHistoryResponse": "已清除揭示历史。",
+ "text.ephemera.revealIntroduction": "来自%s的信息:",
+ "text.ephemera.nosender": "未知",
+
+ "enchantment.ephemera.shame": "无耻诅咒"
+}
\ No newline at end of file
From fbd8a157ba00b29a034f8bcf6e4d0795a02ad987 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 20:12:36 +0800
Subject: [PATCH 03/78] HexCircus create
---
.../hexcircus/hex_circus/lang/en_us.json | 48 ++++++
.../hexcircus/hex_circus/lang/zh_cn.json | 48 ++++++
.../1UNKNOWN/cleanslate/lang/en_us.json | 0
.../1UNKNOWN/cleanslate/lang/zh_cn.json | 0
.../assets/1UNKNOWN/hexcasted/README.md | 1 +
.../assets/1UNKNOWN/hexcasted/lang/en_us.json | 18 ++
.../1UNKNOWN/hexcasted/packer-policy.json | 7 +
.../assets/ephemera/ephemera/README.md | 1 +
.../assets/ephemera/ephemera/lang/en_us.json | 155 ++++++++++++++++++
.../ephemera/ephemera/packer-policy.json | 7 +
.../complexhex/lang/en_us.json | 0
.../complexhex/lang/zh_cn.json | 0
12 files changed, 285 insertions(+)
create mode 100644 projects/1.19/assets/hexcircus/hex_circus/lang/en_us.json
create mode 100644 projects/1.19/assets/hexcircus/hex_circus/lang/zh_cn.json
rename projects/{1.20 => 1.20-fabric}/assets/1UNKNOWN/cleanslate/lang/en_us.json (100%)
rename projects/{1.20 => 1.20-fabric}/assets/1UNKNOWN/cleanslate/lang/zh_cn.json (100%)
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexcasted/README.md
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexcasted/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
create mode 100644 projects/1.20-fabric/assets/ephemera/ephemera/README.md
create mode 100644 projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
rename projects/{1.20 => 1.20-fabric}/assets/modrinth-complex-hex/complexhex/lang/en_us.json (100%)
rename projects/{1.20 => 1.20-fabric}/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json (100%)
diff --git a/projects/1.19/assets/hexcircus/hex_circus/lang/en_us.json b/projects/1.19/assets/hexcircus/hex_circus/lang/en_us.json
new file mode 100644
index 000000000000..2f87703ed11e
--- /dev/null
+++ b/projects/1.19/assets/hexcircus/hex_circus/lang/en_us.json
@@ -0,0 +1,48 @@
+{
+ "hexcasting.entry.circus.particles": "Particles",
+ "hexcasting.entry.circus.mind_control": "Mind Control",
+
+
+
+
+ "hexcasting.spell.hex_circus:linear_particle": "Linear Particle",
+ "hexcasting.spell.hex_circus:bezier_particle": "Bezier Particle",
+
+
+ "hexcasting.spell.hex_circus:command_creature": "Command Creature",
+ "hexcasting.spell.hex_circus:whittle_will": "Whittle Will",
+ "hexcasting.spell.hex_circus:get_will": "Willingness Purification",
+
+
+
+
+
+ "hex_circus.page.particles.opening.0": "I have figured out the secrets of showmanship by studying the magic used by the fabled Illusioner!$(br2)The following pages contain information on how to make ephemeral particles to really bring my spells to life!",
+
+ "hex_circus.page.particles.linear.0": "Summons a singular particle that moves in a straight line from the first vector to the second, the particle takes on the color of the third vector in the form of something called \"RGB\" values between 0 to 1.",
+ "hex_circus.page.particles.linear.1": "The number appears to control the speed at which the particle moves, although this is relative to the path length, a speed of 1 seems to make the particle finish its journey after about a second. Costs one 10 thousandth of an amethyst dust.",
+
+ "hex_circus.page.particles.bezier.0": "Works the same as Linear Particle, but with an extra vector between the end point and the color",
+ "hex_circus.page.particles.bezier.1": "This new vector seems to attract the particle during its journey, making the line in which it moves bend towards the third vector.$(br2)Costs one 2 thousandth of an amethyst dust.$(br2)$(br2)Side note: The particle never seems to actually reach the third vector",
+
+
+ "hex_circus.page.mind_control.opening.0": "By studying the Evoker I believe I have discovered how they keep control over the Allay whose minds they have twisted into the devious Vex!Although I have not been able to fully recreate the permanent effects, I have devised my own, admittedly weaker version of this powerful ability.$(br)All creatures with a mind have something they want, something they $(italic)need.$(clear) This can be used to my advantage!",
+ "hex_circus.page.mind_control.opening.1": "By manipulating the minds of lesser creatures and affecting what they want, I can practically make them do anything! $(br2)Although for now I'll have to stick to making them walk to a location of my choosing.$(br2)The following pages contain information on how to command the will of lesser beings, as well as whittling away at their will to resist my commands.",
+
+ "hex_circus.page.mind_control.command_creature.0": "Commands the will of a lesser creature to move to the position at the top of the stack",
+ "hex_circus.page.mind_control.command_creature.1": "An ungodly amount of media is wasted to gain control control as the creature tries to resist the command, this varies from species to species",
+
+ "hex_circus.page.mind_control.whittle_will.0": "Whittles away at the will of the creature at the top of the stack, causing the cost of commanding it to halve.",
+ "hex_circus.page.mind_control.whittle_will.1": "I should be careful with this, as a creature completely losing it's will to live results in cardiac arrest.$(br2)$(br2)Costs media equivalent to 64 charged amethyst",
+
+ "hex_circus.page.mind_control.get_will": "Takes the creature at the top of the stack and replaces it with the amount of media in dust required to command it's mind, or null if commanding it is not possible.",
+
+
+
+
+ "hexcasting.mishap.hex_circus.invalid_creature": "This creature does not appear to be of a valid species for this spell!",
+
+ "hexcasting.mishap.hex_circus.influence_player.influencer": "You attempted to attack another player's mind... Didn't go so well, did it now?",
+ "hexcasting.mishap.hex_circus.influence_player.influencee": "%s attempted to invade your mind! They have severely paid for their actions"
+
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexcircus/hex_circus/lang/zh_cn.json b/projects/1.19/assets/hexcircus/hex_circus/lang/zh_cn.json
new file mode 100644
index 000000000000..0a7835939563
--- /dev/null
+++ b/projects/1.19/assets/hexcircus/hex_circus/lang/zh_cn.json
@@ -0,0 +1,48 @@
+{
+ "hexcasting.entry.circus.particles": "粒子",
+ "hexcasting.entry.circus.mind_control": "意识控制",
+
+
+
+
+ "hexcasting.spell.hex_circus:linear_particle": "线性粒子",
+ "hexcasting.spell.hex_circus:bezier_particle": "贝塞尔粒子",
+
+
+ "hexcasting.spell.hex_circus:command_creature": "命令生物",
+ "hexcasting.spell.hex_circus:whittle_will": "削弱意识",
+ "hexcasting.spell.hex_circus:get_will": "意愿之纯化",
+
+
+
+
+
+ "hex_circus.page.particles.opening.0": "深入研习传说中幻术师的魔法之后,我终于找到了演艺视效的秘辛所在!$(br2)后续几页记载了如何操纵转瞬即逝的粒子,它们能为法术带来活力的色彩!",
+
+ "hex_circus.page.particles.linear.0": "召唤一个粒子,它会从第一向量直线移动至第二向量,粒子的颜色由第三向量决定,遵循的法则称作“RGB”,值在 0 到 1 之间。",
+ "hex_circus.page.particles.linear.1": "所给数控制粒子移动的速度,速度也会受移动距离的长短影响,速度为 1 的粒子似乎会在大约 1 秒后结束自己的旅程。消耗 1/10000 个紫水晶粉。",
+
+ "hex_circus.page.particles.bezier.0": "功能与线性粒子相同,但需要在结束点和颜色间额外传入一个向量。",
+ "hex_circus.page.particles.bezier.1": "这个新向量会吸引粒子,使得粒子的移动轨迹偏向第三向量。$(br2)消耗 1/2000 个紫水晶粉。$(br2)$(br2)需要注意:粒子永远不会到达第三向量处。",
+
+
+ "hex_circus.page.mind_control.opening.0": "深入研习唤魔者之后,他们如何扭曲悦灵的意识而造出阴险的恼鬼,再如何加以控制,我自认已经找到了完整的答案!虽然我还不能复刻出永久效果,但我确实做到了——尽管相较这种强大力量来说相当微弱。$(br)所有拥有意识的生物都有它们的欲望,它们的$(italic)需求$(clear)。这正是我控制它们的抓手!",
+ "hex_circus.page.mind_control.opening.1": "操纵低等生物的意识,改变它们的欲望,就可让它们做任何事情!$(br2)虽然现在我还只能让它们走到我指定的位置。$(br2)后续几页主要介绍如何命令低等生物的意识,以及如何削弱其意识对我的命令的抵抗力。",
+
+ "hex_circus.page.mind_control.command_creature.0": "命令低等生物的意识,以使其前往栈顶的位置。",
+ "hex_circus.page.mind_control.command_creature.1": "由于生物会试图抵抗命令,会有多到难以想象的媒质浪费在夺取控制上,但具体多少随生物的种类不同而变。",
+
+ "hex_circus.page.mind_control.whittle_will.0": "削弱栈顶生物的意识,使得命令其的消耗减半。",
+ "hex_circus.page.mind_control.whittle_will.1": "使用此法术需要小心,完全失去存活意愿的生物会心脏骤停。$(br2)$(br2)消耗等价于 64 个充能紫水晶的媒质。",
+
+ "hex_circus.page.mind_control.get_will": "接受栈顶生物,并将其替换为命令其意识所需媒质,以紫水晶粉计。生物无法命令则返回 Null。",
+
+
+
+
+ "hexcasting.mishap.hex_circus.invalid_creature": "此类生物似乎并非此法术的有效对象!",
+
+ "hexcasting.mishap.hex_circus.influence_player.influencer": "你试图攻击另一位玩家的意识……后果不好受吧?",
+ "hexcasting.mishap.hex_circus.influence_player.influencee": "%s试图侵入你的意识!他已为此付出沉重代价。"
+
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/cleanslate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/en_us.json
similarity index 100%
rename from projects/1.20/assets/1UNKNOWN/cleanslate/lang/en_us.json
rename to projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/en_us.json
diff --git a/projects/1.20/assets/1UNKNOWN/cleanslate/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
similarity index 100%
rename from projects/1.20/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
rename to projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/README.md b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/README.md
new file mode 100644
index 000000000000..1a3b596c9a5d
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/1UNKNOWN/hexcasted)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/lang/en_us.json
new file mode 100644
index 000000000000..43069072cdac
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/lang/en_us.json
@@ -0,0 +1,18 @@
+{
+ "hexcasted.entry.cbc": "The Call to War",
+ "hexcasted.page.cbc": "I had been drafted by the Cannoneer's Corps to make weapons of war and, despite my hesitancy, I accepted.$(br)$(br)Project Hexcasted's final product was the $(thing)Hex Shell$() was an media-infused shell inscribed with two Hexes. The $(thing)Cannoneer's Hex$() which executes as fast as Nature would allow upon firing the shell and The $(thing)Demolitionist's Hex$() to execute on detonation.$(br)$(br)What have I done...",
+
+ "hexcasted.entry.cbc_basics": "War is Hell",
+ "hexcasting.action.hexcasted:shell_get_on_tick": "Cannoneer's Prfn.",
+ "hexcasted.page.cbc_basics.shell_get_on_tick": "This pattern reads the $(thing)Cannoneer's Hex$() from a $(thing)Hex Shell$().",
+ "hexcasting.action.hexcasted:shell_set_on_tick": "Cannoneer's Gambit",
+ "hexcasted.page.cbc_basics.shell_set_on_tick": "This pattern inscribes the $(thing)Cannoneer's Hex$() onto a $(thing)Hex Shell$() which executes as fast as Nature would allow after being fired.$(br)$(br)Experiment 10a: Targeting a Submarine - Failed, ran out of media, hit a civilian cruise ship. 2 Casualties.",
+ "hexcasting.action.hexcasted:shell_get_on_detonate": "Demolitionist's Prfn.",
+ "hexcasted.page.cbc_basics.shell_get_on_detonate": "This pattern reads the $(thing)Demolitionist's Hex$() from a $(thing)Hex Shell$().",
+ "hexcasting.action.hexcasted:shell_set_on_detonate": "Demolitionist's Gambit",
+ "hexcasted.page.cbc_basics.shell_set_on_detonate": "This pattern inscribes the $(thing)Demolitionist's Hex$() onto a $(thing)Hex Shell$() which executes upon the shell being detonated.$(br)$(br)Experiment 11b: Targeting a \"Doom Town\" - Failed, miscalculated trajectory, hit nearby village. 347 Rendered Inert.",
+
+ "hexcasted.entry.cbc_spell": "Splitting the Hex",
+ "hexcasting.action.hexcasted:create_shell": "Create Shell",
+ "hexcasted.page.cbc_spell.create_shell": "This pattern takes the given media and forces Nature to create a $(thing)Hex Shell$(). I pray these notes never fall into the wrong hands..."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
new file mode 100644
index 000000000000..c2957700f06e
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
@@ -0,0 +1,7 @@
+[
+ {
+ "type": "singleton",
+ "source": "projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json",
+ "relativePath": "lang/zh_cn.json"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/README.md b/projects/1.20-fabric/assets/ephemera/ephemera/README.md
new file mode 100644
index 000000000000..190619b195ab
--- /dev/null
+++ b/projects/1.20-fabric/assets/ephemera/ephemera/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/ephemera/ephemera)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json b/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
new file mode 100644
index 000000000000..265b702301c8
--- /dev/null
+++ b/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
@@ -0,0 +1,155 @@
+{
+ "itemGroup.ephemera.ephemera": "Ephemera",
+
+ "item.ephemera.media_helmet": "Hexformed Helmet",
+ "item.ephemera.media_chestplate": "Hexformed Chestplate",
+ "item.ephemera.media_leggings": "Hexformed Leggings",
+ "item.ephemera.media_boots": "Hexformed Boots",
+
+ "block.ephemera.relay_tp_detector": "Network Gateway Probe",
+ "block.ephemera.relay_index": "Network Routing Index",
+ "block.ephemera.fakeslate": "Inert Slate",
+
+ "hexcasting.action.ephemera:magearmor": "Instant Aegis",
+ "hexcasting.action.book.ephemera:magearmor": "Instant Aegis",
+ "hexcasting.action.ephemera:networkscan": "Network Distillation",
+ "hexcasting.action.book.ephemera:networkscan": "Network Dstln.",
+ "hexcasting.action.ephemera:networktp": "Network Gateway",
+ "hexcasting.action.book.ephemera:networktp": "Network Gateway",
+ "hexcasting.action.ephemera:networkindex": "Routing Distillation",
+ "hexcasting.action.book.ephemera:networkindex": "Routing Dstln.",
+ "hexcasting.action.ephemera:readframerotation": "Decorator's Purification",
+ "hexcasting.action.book.ephemera:readframerotation": "Decorator's Prfn.",
+ "hexcasting.action.ephemera:setframerotation": "Decorator's Gambit",
+ "hexcasting.action.ephemera:paintconjured": "Externalize Pigment",
+ "hexcasting.action.ephemera:particleburst": "Particle Burst",
+ "hexcasting.action.ephemera:invisibility": "Hidden Sun's Zenith",
+ "hexcasting.action.ephemera:getstatus": "Apothecary's Purification",
+ "hexcasting.action.book.ephemera:getstatus": "Apothecary's Prfn.",
+ "hexcasting.action.ephemera:getstatuscategory": "Apothecary's Purification II",
+ "hexcasting.action.book.ephemera:getstatuscategory": "Apothecary's Prfn. II",
+ "hexcasting.action.ephemera:getstatusduration": "Pharmacist's Distillation",
+ "hexcasting.action.book.ephemera:getstatusduration": "Pharmacist's Dstln.",
+ "hexcasting.action.ephemera:getstatuslevel": "Pharmacist's Dstln. II",
+ "hexcasting.action.book.ephemera:getstatuslevel": "Pharmacist's Distillation II",
+ "hexcasting.action.ephemera:getbystatus": "Zone Exaltation: Status",
+ "hexcasting.action.book.ephemera:getbystatus": "Zone Exltn.: Status",
+ "hexcasting.action.ephemera:getbystatusinverse": "Zone Exaltation: Not-Status",
+ "hexcasting.action.book.ephemera:getbystatusinverse": "Zone Exltn.: Not-Status",
+ "hexcasting.action.ephemera:getbystatussingle": "Entity Distillation: Status",
+ "hexcasting.action.ephemera:removestatus": "Cleanse Status",
+ "hexcasting.action.ephemera:getabsorption": "Ablation Purification",
+ "hexcasting.action.ephemera:filteredentityraycast": "Scout's Exaltation",
+ "hexcasting.action.ephemera:gaussianrand": "Entropy Reflection II",
+ "hexcasting.action.ephemera:hash": "Hashing Purification",
+ "hexcasting.action.ephemera:hashbits": "undocumented hash-to-numbers pattern",
+ "hexcasting.action.ephemera:revealtoother": "Postman's Gambit",
+ "hexcasting.action.ephemera:getrevealcost": "Postage Purification",
+ "hexcasting.action.ephemera:clearrevealcost": "Postman's Gambit II",
+ "hexcasting.action.ephemera:repair": "Induce Mending",
+ "hexcasting.action.ephemera:getdurabilitymainhand": "Menderbug's Reflection",
+ "hexcasting.action.book.ephemera:getdurabilitymainhand": "Menderbug's Rfln.",
+ "hexcasting.action.ephemera:getdurabilityoffhand": "Menderbug's Reflection II",
+ "hexcasting.action.book.ephemera:getdurabilityoffhand": "Menderbug's Rfln. II",
+ "hexcasting.action.ephemera:thothyoink": "Seshat's Gambit",
+ "hexcasting.action.ephemera:thothcount": "Seshat's Reflection",
+ "hexcasting.action.book.ephemera:thothcount": "Seshat's Rfln.",
+ "hexcasting.action.ephemera:collisionprobe": "Clearance Purification",
+ "hexcasting.action.book.ephemera:collisionprobe": "Clearance Prfn.",
+ "hexcasting.action.ephemera:getiotasize": "Flock's Purification",
+ "hexcasting.action.ephemera:getstacksizedeep": "Flock's Reflection II",
+ "hexcasting.action.book.ephemera:getiotasize": "Flock's Prfn.",
+ "hexcasting.action.book.ephemera:getstacksizedeep": "Flock's Rfln. II",
+
+ "hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
+ "hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
+ "hexcasting.mishap.ephemera:nonconjured": "Expected a conjured block at %s, but got %s.",
+ "hexcasting.mishap.ephemera:missingeffect": "Expected %s to be affected by %s, but they are not.",
+ "hexcasting.mishap.ephemera:nothoth": "Expected to be cast from inside of Thoth's Gambit.",
+ "ephemera.mishap.noitemframe": "an item frame",
+ "ephemera.mishap.entitytypelistplease": "a list of entity types",
+ "ephemera.mishap.toolongiota": "an iota that displays as less than 256 characters",
+ "hexcasting.mishap.ephemera:blacklist": "This effect has been blacklisted via tag.",
+ "hexcasting.mishap.ephemera:instant": "How did you even get that iota?",
+
+ "item.ephemeral.media_armor.tooltip.1": "Bestows %s %s upon the wearer.",
+
+ "ephemera.entry.miscpatterns": "Misc. Ephemera Patterns",
+ "ephemera.entry.invisibility": "Invisibility",
+ "ephemera.entry.status_iotas": "Status Iotas",
+ "ephemera.entry.network": "Link Amenities",
+ "ephemera.entry.revealtoother": "Messaging",
+ "ephemera.entry.mending": "Induce Mending",
+ "ephemera.entry.hashing": "Iota Hashing",
+ "ephemera.entry.specialslates": "Modified Slates",
+ "ephemera.entry.metathoth": "Accumulator Manipulation",
+
+ "ephemera.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
+ "ephemera.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
+ "ephemera.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
+ "ephemera.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
+ "ephemera.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
+ "ephemera.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
+ "ephemera.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
+ "ephemera.page.miscpatterns.5": "Returns a random number with a gaussian distribution, with a mean of zero and a standard deviation of one.",
+ "ephemera.page.miscpatterns.6": "Accepts a vector, and returns whether that vector is within (or just on the edge of) the block in that space. Seems to involve the boxes I see in my mind's eye.",
+ "ephemera.page.miscpatterns.7": "Returns the total size of all iotas on my stack, including the contents of lists and similar. If this number ever reaches 1024, my stack shall come crashing down into garbage.",
+ "ephemera.page.miscpatterns.8": "Accepts any iota, and returns its total size.",
+ "ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
+ "ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
+ "ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
+ "ephemera.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
+ "ephemera.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
+ "ephemera.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
+ "ephemera.page.status_iotas.4": "Accepts an entity and a status effect type, and returns the effect on the target's duration in seconds.",
+ "ephemera.page.status_iotas.5": "Accepts an entity and a status effect type, and returns the effect on the target's potency.",
+ "ephemera.page.status_iotas.6": "Accepts a status effect type and a vector, and returns an entity at that position which has that effect.",
+ "ephemera.page.status_iotas.7": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which have that effect.",
+ "ephemera.page.status_iotas.8": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which do not have that effect.",
+ "ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
+ "ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
+ "ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
+ "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:ephemera:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
+ "ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
+ "ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
+ "ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
+ "ephemera.page.magearmor.5": "This explanation assumes I am wearing no other armor, in practice the cost can be reduced to as little as 25%% of that formula's output if all but one of my armor slots is already occupied by more conventional armor.",
+ "ephemera.page.network.1": "I've devised a suite of patterns (plus a couple of blocks) to make links a bit more useful for things other than data transmission and media sharing.$(br2)Note that the patterns which fetch information about the network make no promises regarding whether returned linkables are within ambit.",
+ "ephemera.page.network.2": "Scans the link network connected to the input linkable up to a recursion depth equal to the input number (max 32), and returns a list of all connected linkables. Costs a negligible amount of media.",
+ "ephemera.page.network.3": "Accepts an entity to teleport, a linkable to use for access to its network, and a destination. If the entity is within 8 blocks of the linkable, and there is a network node within 4 blocks of the destination, the entity will be teleported. Cost varies based on what entity is teleported.",
+ "ephemera.page.network.4": "Outputs a brief redstone signal when an adjacent relay is used as the output for a casting of Network Gateway.",
+ "ephemera.page.network.5": "When rclicked with a focus in the main hand, attempts to store its iota in the block. When the focus is in the offhand, writes the stored iota to the focus.",
+ "ephemera.page.network.6": "Accepts a linkable to use for network access, and any iota. If a relay connected to the network has an adjacent Network Routing Index with the same iota, returns that relay's position. Costs half an amethyst dust.",
+
+ "ephemera.page.revealtoother.1": "Accepts a player and any iota less than 256 characters long, and shows that iota to them as if they had cast Reveal, also telling them who sent the message. Cost is inversely proportional to the length of time since they were last targeted by this spell.",
+ "ephemera.page.revealtoother.2": "Accepts a player and returns how much amethyst dust it would cost to send them a message via Postman's Gambit, between 1/10 of a dust and 10 dust.",
+ "ephemera.page.revealtoother.3": "Resets the cost of sending me a message via Postman's Gambit back to 1/10 of a dust. Costs 1/10 of a dust.",
+
+ "ephemera.page.mending.1": "Accepts a raw media item on the ground, and attempts to use it to repair a tool in my other hand.",
+ "ephemera.page.mending.2": "Generally only works on items enchanted with Mending, which are already damaged. Restores twenty points of damage for each amethyst dust's worth of media.",
+ "ephemera.page.mending.3": "Returns how many times the item in my other hand can be used without breaking, durability-manipulating effects notwithstanding.",
+ "ephemera.page.mending.4": "As previous, targeting the item in the hand I'm casting this with. Most useful with delayed casts of one form or another.",
+
+ "ephemera.page.hashing.1": "I've discovered a curious pattern which scrambles an iota into an unreadable mess. However, unlike Garbage iotas, $(o)this$() mess still contains data, and running the same iota through the pattern will always produce the same mess (known as a hash). While it is not possible to recover an iota from a hash, it can be quite useful for comparisons in situations where I cannot save the unaltered iota.",
+ "ephemera.page.hashing.2": "Accepts any iota, and converts it into its hashed form.",
+
+ "ephemera.page.specialslates.1": "I've designed a couple types of slate to be used in spell circles. While they don't provide any groundbreaking new functionality, they can be nice to have.",
+ "ephemera.page.specialslates.2": "Works just like a normal slate, but is capable of sending the media wave into the block it is placed on.",
+ "ephemera.page.specialslates.3": "Crafted with a normal slate and a stonecutter.$(br2)Looks just like a normal slate, but can't direct a media wave at all. Cannot be written to.",
+
+ "ephemera.page.metathoth.1": "It seems that the list which $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) forms as it iterates over a data set functions as a stack, simply one that is a bit out of the way. As such, I have devised a couple of patterns for interacting with this hidden stack, called the accumulator.",
+ "ephemera.page.metathoth.2": "Pops an iota from the accumulator and pushes it to the current stack. Mishaps if used outside of Thoth's Gambit.",
+ "ephemera.page.metathoth.3": "Returns how many iotas are currently accessible via Seshat's Gambit. Returns -1 if used outside of Thoth's Gambit.",
+
+ "ephemera.page.forgewarning.1": "Mod author's note for Forge users: This spell does not work on Forge. I do not know why. I've set the cost on Forge to zero so at least it won't waste media. Sorry.$(br2)I'll try to get it working eventually.",
+
+ "hexcasting.iota.ephemera:potion": "Status Effect",
+ "hexcasting.iota.ephemera:hash": "Hash",
+ "ephemera.iota.hashlabel": "Hashed data: %s",
+
+ "text.ephemera.clearHistoryResponse": "Cleared reveal history map.",
+ "text.ephemera.revealIntroduction": "Transmission from %s: ",
+ "text.ephemera.nosender": "unknown",
+
+ "enchantment.ephemera.shame": "Curse of Shame"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json b/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
new file mode 100644
index 000000000000..b37c9eb4a9d6
--- /dev/null
+++ b/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
@@ -0,0 +1,7 @@
+[
+ {
+ "type": "singleton",
+ "source": "projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json",
+ "relativePath": "lang/zh_cn.json"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-complex-hex/complexhex/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json
similarity index 100%
rename from projects/1.20/assets/modrinth-complex-hex/complexhex/lang/en_us.json
rename to projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json
diff --git a/projects/1.20/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json
similarity index 100%
rename from projects/1.20/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json
rename to projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json
From 654dd47da6ba24a4db2bdcbc7f60e4ecd274fd05 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 21:04:54 +0800
Subject: [PATCH 04/78] HexConjuring HexKeys create
---
.../hexconjuring/lang/en_us.json | 30 +++++++++++++++++++
.../hexconjuring/lang/zh_cn.json | 30 +++++++++++++++++++
.../assets/hex-keys/hexkeys/lang/en_us.json | 28 +++++++++++++++++
.../assets/hex-keys/hexkeys/lang/zh_cn.json | 28 +++++++++++++++++
4 files changed, 116 insertions(+)
create mode 100644 projects/1.19/assets/hex-conjuring/hexconjuring/lang/en_us.json
create mode 100644 projects/1.19/assets/hex-conjuring/hexconjuring/lang/zh_cn.json
create mode 100644 projects/1.19/assets/hex-keys/hexkeys/lang/en_us.json
create mode 100644 projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
diff --git a/projects/1.19/assets/hex-conjuring/hexconjuring/lang/en_us.json b/projects/1.19/assets/hex-conjuring/hexconjuring/lang/en_us.json
new file mode 100644
index 000000000000..5cbc4618ce39
--- /dev/null
+++ b/projects/1.19/assets/hex-conjuring/hexconjuring/lang/en_us.json
@@ -0,0 +1,30 @@
+{
+ "itemGroup.hexconjuring.hex_conjuring": "Hex Conjuring",
+ "item.hexconjuring.conjured_pickaxe": "Conjured Pickaxe",
+ "item.hexconjuring.conjured_axe": "Conjured Axe",
+ "item.hexconjuring.conjured_hoe": "Conjured Scythe",
+ "item.hexconjuring.conjured_shovel": "Conjured Shovel",
+ "item.hexconjuring.conjured_sword": "Conjured Sword",
+ "entity.hexconjuring.conjured_bird": "little bird guy",
+ "hexcasting.spell.hexconjuring:signum": "Signum Purification",
+ "hexcasting.spell.book.hexconjuring:conjurepickaxe": "Miner's Wish",
+ "hexcasting.spell.book.hexconjuring:conjureaxe": "Lumberjack's Wish",
+ "hexcasting.spell.book.hexconjuring:conjureshovel": "Terraformer's Wish",
+ "hexcasting.spell.book.hexconjuring:conjuresword": "Fighter's Wish",
+ "hexcasting.spell.book.hexconjuring:conjurehoe": "Farmer's Wish",
+ "hexcasting.spell.book.hexconjuring:conjurebird": "birb :)",
+ "hexcasting.spell.book.hexconjuring:signum": "Dum. Actn.",
+ "hexconjuring.entry.conjuretoolspells": "Conjure Tools",
+ "hexconjuring.entry.dummy_actions": "Dummy Actions",
+ "hexconjuring.page.conjuretoolspells.entry": "During one of my recent expeditions, I seem to have accidentally discovered a way to $(o)manipulate matter itself$() using _media. Specifically the creation of it, or rather the illusion of reforming air particles around me. However, doing so is incredibly difficult, and so I have devised a simple method to make it easier. ",
+ "hexconjuring.page.conjuretoolspells.entry2": "By focusing on a mere concept, such as a tool of some sorts, the _media seems to do the rest. I've appropriately named these concepts 'wishes'. $(br2) Each wish seems to cost the same amount of _media, about a tenth of an $(l:items/amethyst#dust)$(item)amethyst dust/$ per point of durability, plus an extra 2. ",
+ "hexconjuring.page.conjuretoolspells.conjurepickaxe": "Accepts a player entity and a $(l:casting/101)number/$. A pickaxe will then be conjured and given to the target, using the value put in as its durability. ",
+ "hexconjuring.page.conjuretoolspells.conjureaxe": "Accepts a player entity and a $(l:casting/101)number/$. An axe will then be conjured and given to the target, using the value put in as its durability. ",
+ "hexconjuring.page.conjuretoolspells.conjurehoe": "Accepts a player entity and a $(l:casting/101)number/$. A scythe will then be conjured and given to the target, using the value put in as its durability. ",
+ "hexconjuring.page.conjuretoolspells.conjureshovel": "Accepts a player entity and a $(l:casting/101)number/$. A shovel will then be conjured and given to the target, using the value put in as its durability. ",
+ "hexconjuring.page.conjuretoolspells.conjuresword": "Accepts a player entity and a $(l:casting/101)number/$. A sword will then be conjured and given to the target, using the value put in as its durability. ",
+ "hexconjuring.page.conjuretoolspells.conjurebird": "i will not elaborate $(br2) $(br2) how do i add animations",
+ "hexconjuring.page.dummy_actions.signum": "Accepts a $(l:casting/101)number/$, returns -1 if it is negative, 0 if 0, 1 if positive.",
+ "text.hexconjuring.conjurepickaxe": "Good job, %1$s!",
+ "text.hexconjuring.conjurepickaxe.player": "a Player"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hex-conjuring/hexconjuring/lang/zh_cn.json b/projects/1.19/assets/hex-conjuring/hexconjuring/lang/zh_cn.json
new file mode 100644
index 000000000000..ff299bd3295f
--- /dev/null
+++ b/projects/1.19/assets/hex-conjuring/hexconjuring/lang/zh_cn.json
@@ -0,0 +1,30 @@
+{
+ "itemGroup.hexconjuring.hex_conjuring": "Hex Conjuring",
+ "item.hexconjuring.conjured_pickaxe": "构筑的镐",
+ "item.hexconjuring.conjured_axe": "构筑的斧",
+ "item.hexconjuring.conjured_hoe": "构筑的镰刀",
+ "item.hexconjuring.conjured_shovel": "构筑的锹",
+ "item.hexconjuring.conjured_sword": "构筑的剑",
+ "entity.hexconjuring.conjured_bird": "小小鸟",
+ "hexcasting.spell.hexconjuring:signum": "Signum Purification",
+ "hexcasting.spell.book.hexconjuring:conjurepickaxe": "矿工之愿",
+ "hexcasting.spell.book.hexconjuring:conjureaxe": "伐木工之愿",
+ "hexcasting.spell.book.hexconjuring:conjureshovel": "地形师之愿",
+ "hexcasting.spell.book.hexconjuring:conjuresword": "战士之愿",
+ "hexcasting.spell.book.hexconjuring:conjurehoe": "农夫之愿",
+ "hexcasting.spell.book.hexconjuring:conjurebird": "小鸟 :)",
+ "hexcasting.spell.book.hexconjuring:signum": "Dum. Actn.",
+ "hexconjuring.entry.conjuretoolspells": "构筑工具",
+ "hexconjuring.entry.dummy_actions": "Dummy Actions",
+ "hexconjuring.page.conjuretoolspells.entry": "在我最近的一次外出探险中,我似乎意外地找到了使用$(media)媒质$()$(o)操纵物质本身$()的方法。具体而言,是物质的创造,或者说是将空气粒子在身旁重整所产生的幻觉。然而,实际的操作难于登天,因此我设计了一些简单步骤用以简化。",
+ "hexconjuring.page.conjuretoolspells.entry2": "只需将意识集中在单个概念,比如工具之类的,$(media)媒质$()貌似就会处理好剩下的一切。我为它们起了个恰当的名字——“许愿”。$(br2)每个愿望的$(media)媒质$()消耗量似乎没有区别,即每点耐久度消耗大约 1/10 个$(l:items/amethyst#dust)$(item)紫水晶粉/$,再额外消耗 2 个。",
+ "hexconjuring.page.conjuretoolspells.conjurepickaxe": "接受一个玩家实体和一个$(l:casting/101)数/$,并构筑一柄镐给予目标;其耐久度即为所给数。",
+ "hexconjuring.page.conjuretoolspells.conjureaxe": "接受一个玩家实体和一个$(l:casting/101)数/$,并构筑一柄斧给予目标;其耐久度即为所给数。",
+ "hexconjuring.page.conjuretoolspells.conjurehoe": "接受一个玩家实体和一个$(l:casting/101)数/$,并构筑一杆镰刀给予目标;其耐久度即为所给数。",
+ "hexconjuring.page.conjuretoolspells.conjureshovel": "接受一个玩家实体和一个$(l:casting/101)数/$,并构筑一杆锹给予目标;其耐久度即为所给数。",
+ "hexconjuring.page.conjuretoolspells.conjuresword": "接受一个玩家实体和一个$(l:casting/101)数/$,并构筑一柄剑给予目标;其耐久度即为所给数。",
+ "hexconjuring.page.conjuretoolspells.conjurebird": "我不会详细说明$(br2)$(br2)怎么加动画啊",
+ "hexconjuring.page.dummy_actions.signum": "Accepts a $(l:casting/101)number/$, returns -1 if it is negative, 0 if 0, 1 if positive.",
+ "text.hexconjuring.conjurepickaxe": "Good job, %1$s!",
+ "text.hexconjuring.conjurepickaxe.player": "a Player"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hex-keys/hexkeys/lang/en_us.json b/projects/1.19/assets/hex-keys/hexkeys/lang/en_us.json
new file mode 100644
index 000000000000..164ee804a8ca
--- /dev/null
+++ b/projects/1.19/assets/hex-keys/hexkeys/lang/en_us.json
@@ -0,0 +1,28 @@
+{
+ "block.hexkeys.mindscape_barrier": "Barrier of Mind",
+ "hexcasting.spell.hexkeys:library": "Library Key",
+ "hexcasting.spell.hexkeys:visit_library": "Visitor's Key",
+ "hexcasting.spell.hexkeys:create_library_key": "Morpheus's Reflection",
+ "hexcasting.spell.hexkeys:kleins_chest": "Klein's Chest",
+ "hexkeys.entry.klein_storage": "Klein Storage",
+ "hexkeys.entry.visit_mindscape": "Mindscape Visitation",
+ "hexkeys.entry.mindscape": "Mindscape Library",
+ "container.klein_storage": "Klein's Chest",
+ "hexkeys.page.kleins.1": "I seem to have found a way to convert matter into pure media while keeping its inherent properties. Sadly, it appears there is a limit to the number of items I can store in my own mind as there's only so much room up there. I call this unique form of storage the Klein chest as it's a space within my own mind that seems to empty just as much as it fills.",
+ "hexkeys.page.kleins.open": "The cost of using this mental storage is an amethyst shard plus a quarter of an amethyst dust per slot filled. It takes a surprisingly large amount of mental energy to recall things that shouldn't be there in the first place.",
+ "hexkeys.page.kleins.2": "I can feel it itching at the front of my mind... always itching... I know this discovery may lead to great convenience, but I wonder if I could use it to sooth my strained and broken mind... I'll have to decide later, I have an itch to scratch.",
+ "hexkeys.page.mindscape.1": "I did it! It took more power than any being should have a right to hold, but I did it. I opened my mind to the physical world, in turn, it took on a physical form. A library of sorts. I'll call it the mindscape. A place to facilitate the interactions between my mind and the world around me. This place is mine and mine alone. The mindscape is my creation and for all intents and purposes, I'm its deity. I can soar freely in this space and modify it to my liking. Sadly despite my unrivaled power in my mental world, I was forced to encase the library in a barrier of sorts. I could feel that my mind wasn't ready for the things lurking outside in this expanse of physical and mental. Maybe I could remove this restriction in the future, but it's in my best interest to maintain it for now.",
+ "hexkeys.page.mindscape.open": "It started with a crack... A small thing really. I felt a light breeze from it that told me things. I'm now certain that every mind has some form of physical representation. I just need to get there. If only I could push that crack wider...",
+ "hexkeys.page.mindscape.2": "Extra Desc. Coming Soon(tm)",
+ "hexkeys.page.visit_mindscape.1": "Recently I've wondered if there was a way to enter the minds of my enemies. Sadly that seems like a very dangerous thing to do. After all my effort I've developed a method to enter and leave different minds at will regardless of location, but first I need a key. A signature that will tell me where to go. Without proper direction it's possible to become separated from my own mind in very dangerous ways.",
+ "hexkeys.page.visit_mindscape.visit": "I should also keep in mind that this method only seems to work on those like myself. Those of us who have \"opened\" our minds to the realm around us.",
+ "hexkeys.page.visit_mindscape.2": "To share the identity of my own mindscape I'll need an identifier or key. A signature. But who will verify this signature? The very cognitive plane itself. This pattern will burn the identity of my minscape or cognitive library into the very fabric of the mental world. This signature can be shared with those willing to delve into my own mind... at their own risk.",
+ "hexkeys.page.visit_mindscape.key": "",
+ "sounds.hexkeys.bonk": "Bonk",
+ "sounds.hexkeys.bonk2": "Rare Bonk",
+ "advancements.enter_the_mindscape.title": "It's so empty...",
+ "advancements.enter_the_mindscape.description": "You can't believe how empty your mind is... perhaps you could fill it?",
+ "hexcasting.mishap.not_a_mindscape_key": "Visitor's Key expected a reference to someone's Library!",
+ "hexcasting.mishap.mindscape_doesnt_exist": "The Library you are trying to visit doesn't exist!"
+
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json b/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
new file mode 100644
index 000000000000..50ae43e4be89
--- /dev/null
+++ b/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
@@ -0,0 +1,28 @@
+{
+ "block.hexkeys.mindscape_barrier": "意识屏障",
+ "hexcasting.spell.hexkeys:library": "图书馆钥匙",
+ "hexcasting.spell.hexkeys:visit_library": "访问者钥匙",
+ "hexcasting.spell.hexkeys:create_library_key": "墨菲斯之精思",
+ "hexcasting.spell.hexkeys:kleins_chest": "克莱因箱",
+ "hexkeys.entry.klein_storage": "克莱因存储",
+ "hexkeys.entry.visit_mindscape": "进入意识界",
+ "hexkeys.entry.mindscape": "意识界图书馆",
+ "container.klein_storage": "克莱因箱",
+ "hexkeys.page.kleins.1": "我似乎找到了将物质完全转换为媒质的方式,还能保留其原本的属性。但可惜,我也只能在意识中存储有限个物品,意识里只有那么多空间。我称这种独特的存储方式为“克莱因箱”,它是我意识中的空间,且腾出的空位和要存入的事物似乎完全对应。",
+ "hexkeys.page.kleins.open": "使用这种意识存储方式需消耗 1 个紫水晶碎片,每在一个槽位中放入物品额外消耗 1/4 个紫水晶粉。回忆出原本不存在的事物所需的意识能量相当之多。",
+ "hexkeys.page.kleins.2": "我的额头有点发痒……一直在痒……我懂这发现非常便捷,但我能不能用它放松放松我难堪重负的残破意识……之后再决定吧,该挠痒了。",
+ "hexkeys.page.mindscape.1": "我成功了!任谁都不可能获得这么多能量,但我做到了。我向物理世界开放了我的意识,也因此,它有了物理形态。就像一座图书馆。我称之为“意识界”,可以在此增强意识与周遭世界之间的交互和联系。这片天地独属于我。意识界是我的造物,从任何角度来看,我都是它的神。我能在其中随心翱翔,随意修改。尽管我在自己的意识世界中拥有无可比拟的力量,但图书馆依然还需包裹在某种屏障中。我能感受到我的意识还没准备好面对这片天地外面的事物。也许将来我能去掉这层屏障,但目前最好还是留着吧。",
+ "hexkeys.page.mindscape.open": "起初只是一条裂缝……相当狭小的裂缝。其中吹来的微风让我明白了些事情。我现在非常确定,每一个意识都有某种形式的物理形态与表现,只需找到进去的方式。要是我能把那条裂缝再扩大一点……",
+ "hexkeys.page.mindscape.2": "更多描述即将到来(tm)",
+ "hexkeys.page.visit_mindscape.1": "我最近在思考是否存在进入敌人意识的方式。遗憾的是,这件事光听上去就相当危险。而在我的不懈努力之下,我找到了随意进入和离开意识的方式,不受物理位置的限制,但这么做首先需要一把钥匙——一个代表目的地的标记。倘若没有正确的方向指引,与自身意识分离的危险后果实在不堪设想。",
+ "hexkeys.page.visit_mindscape.visit": "应当注意这种方法似乎只对那些和我类似的存在有效,也即那些将意识“开放”至周围世界的存在。",
+ "hexkeys.page.visit_mindscape.2": "共享自身意识界需要一个“标识符”、“钥匙”,或者说“键”。一份“标记”,一份“签名”。但又是谁来验证“签名”的真实性呢?那便是认知位面本身。此图案会将我意识界(或者说认知图书馆)的身份象征烧录入意识世界的基础结构中。然后就可将这份“签名”发送给那些愿意进入我意识的人……当然,风险自负。",
+ "hexkeys.page.visit_mindscape.key": "",
+ "sounds.hexkeys.bonk": "Bonk",
+ "sounds.hexkeys.bonk2": "Rare Bonk",
+ "advancements.enter_the_mindscape.title": "真是空空如也……",
+ "advancements.enter_the_mindscape.description": "你简直无法相信你的意识居然空洞如此……也许你能让它充实起来?",
+ "hexcasting.mishap.not_a_mindscape_key": "访问者钥匙本应接受代表某人意识图书馆的iota!",
+ "hexcasting.mishap.mindscape_doesnt_exist": "你试图访问的图书馆不存在!"
+
+}
\ No newline at end of file
From bea04600f47ff62428a7a7616a46994b2ac8f336 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 21:39:24 +0800
Subject: [PATCH 05/78] HexMachina HexPigmentPlus create
---
.../hexpigmentplus/lang/en_us.json | 3 +
.../hexpigmentplus/lang/zh_cn.json | 3 +
.../1UNKNOWN/hex_machina/lang/en_us.json | 64 +++++++++++++++++++
.../1UNKNOWN/hex_machina/lang/zh_cn.json | 64 +++++++++++++++++++
4 files changed, 134 insertions(+)
create mode 100644 projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/zh_cn.json
diff --git a/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json b/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
new file mode 100644
index 000000000000..4c1d4d5a0395
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
@@ -0,0 +1,3 @@
+{
+ "item.hexpigmentplus.magician_hat": "Magician Hat"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
new file mode 100644
index 000000000000..8a8282f3ca4d
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
@@ -0,0 +1,3 @@
+{
+ "item.hexpigmentplus.magician_hat": "魔法师帽"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/en_us.json
new file mode 100644
index 000000000000..e245b42046c7
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/en_us.json
@@ -0,0 +1,64 @@
+{
+ "item.hex_machina.hex_gun": "Hex Gun",
+ "item.hex_machina.amethyst_bullet": "Amethyst Bullet",
+ "item.hex_machina.amethyst_bullet.block_projectile": "Block Bullet",
+ "item.hex_machina.amethyst_bullet.target_projectile": "Target Bullet",
+
+ "item.hex_machina.scrying_goggles": "Scrying Goggles",
+ "item.hex_machina.mind_phial": "Mind Phial",
+ "item.hex_machina.entity_capsule": "Entity Capsule",
+
+ "tab.hex_machina": "Hex Machina",
+
+ "effect.hex_machina.expose_mind": "Expose Mind",
+
+ "mishap.hex_machina.not_gun": "Can't cast this pattern outside of a gun",
+ "mishap.hex_machina.entity_capsule.expect_empty": "Empty %s",
+
+ "hexcasting.action.hex_machina:current_bullet": "Gunslinger's Reflection",
+ "hexcasting.action.hex_machina:previous_bullet": "Gunslinger's Regression",
+ "hexcasting.action.hex_machina:next_bullet": "Gunslinger's Progression",
+ "hexcasting.action.hex_machina:roulette": "Gunslinger's Roulette",
+ "hexcasting.action.hex_machina:get_bullet": "Colt's Reflection",
+
+ "hexcasting.action.hex_machina:contain": "Encapsulate",
+ "hexcasting.action.hex_machina:release": "Deploy",
+ "hexcasting.action.hex_machina:capsule/has_entity": "Ketchum's Reflection",
+
+ "hexcasting.action.hex_machina:expose_mind": "Expose Mind",
+
+ "hex_machina.tooltip.mind_media.amount": "%s Dust",
+
+ "hex_machina.entry.patterns.gun": "Guns",
+ "hex_machina.entry.patterns.entity_capsule": "Entity Capsule",
+ "hex_machina.entry.patterns.expose_mind": "Expose Mind",
+
+ "hex_machina.page.guns.current_bullet": "Gets the current bullet slot in the gun",
+ "hex_machina.page.guns.previous_bullet": "Cycles to the previous bullet in the gun",
+ "hex_machina.page.guns.next_bullet": "Cycles to the next bullet in the gun",
+ "hex_machina.page.guns.roulette": "Cycles §on§r slots in the gun",
+ "hex_machina.page.guns.get_bullet": "Gets a reference to the bullet casting this hex",
+
+ "hex_machina.page.capsule.contain": "Reads a entity from the stack and stores that entity in a entity capsule, costs 1 $(l:items/amethyst)$(item)Amethyst Dust./$ per health point of the target entity",
+ "hex_machina.page.capsule.release": "Reads a position from the stack and releases the entity from the entity capsule at that position, costs 1 $(l:items/amethyst)$(item)Amethyst Shard./$",
+ "hex_machina.page.capsule.has_entity": "Reads if the entity capsule in the other hand has a entity stored",
+
+ "hex_machina.page.great_spells.expose_mind": "Exposes the mind of an entity allowing it to be collected on kill by a Mind Phial, costs 1 $(l:items/amethyst)$(item)Amethyst Shard./$",
+
+ "hex_machina.entry.items.gun": "Gun and Bullets",
+
+ "hex_machina.page.items.gun.spotlight": "Although I can to make $(l:items/hexcasting)$(item)Cyphers/$, $(l:items/hexcasting)$(item)Trinkets/$ and $(l:items/hexcasting)$(item)Artifacts/$. It seems like I might have overlooked my options for storing and casting my hexes.$(br2)The $(item)Hex Gun/$ can hold up to 6 bullets and cast spells that are stored in them$(br2)Each shot cycling the barrel to the next available bullet.",
+ "hex_machina.page.items.bullet.amethyst_bullet": "The $(item)Amethyst Bullet/$ seems to work the foci do, but it can be cast by the gun directly.",
+ "hex_machina.page.items.bullet.target_bullet": "The $(item)Target Bullet/$ works similarly, but creates a shimmering projectile that on collision with a entity pushes that entity to the stack.$(br2)It seems to copy my pigment colors on flight, its §opretty!§r",
+ "hex_machina.page.items.bullet.block_bullet": "The $(item)Block Bullet/$ works similarly to the target bullet, but instead pushes the block position it hits to the stack$(br2)Also interesting to note that casting this way seems to give me a bit of ambit around where projectiles hit, for both the target bullet and this one.",
+
+ "hex_machina.entry.items.scrying_goggles": "Scrying Goggles",
+ "hex_machina.page.items.scrying_goggles.spotlight": "One $(l:items/lens)$(item)Scrying Lens/$ on its own allows me to see properties of the world and block distractions in my vision when casting hexes.$(br2)I expanded the concept into goggles! It doesn't seem that I can see anything that I couldn't with one lens, but it allows me to have better focus while casting hexes!",
+
+ "hex_machina.entry.items.entity_capsule": "Entity Capsule",
+ "hex_machina.page.items.entity_capsule.spotlight": "Being able to store hexes into $(item)Foci/$ is really helpful. By expanding this concept to its limit Im now able to store also creatures.$(br2)The Entity Capsule allows me to encode entities into media for storage, and I can decode that same entity again back to its original state.",
+
+ "hex_machina.entry.items.mind_phial": "Mind Phial",
+ "hex_machina.page.items.mind_phial.spotlight": "Getting _Media can be hard. After some tinkering it seems that I can $(l:patterns/great_spell/expose_mind)$(item)Expose the Mind/$ of a creature and I've glimpsed a potential way to get more _Media.$(br2)This Phial is peculiar — it can't be recharged by normal means, but it is bottomless: there is no limit to the amount of _Media it could store...",
+ "hex_machina.page.items.mind_phial.page_2": "Exposing the mind of a creature allows me to extract the _Media it contains right before its death and store in that strange Phial.$(br2)It seems to be 'excited' to collect more and more _Media this way, somehow getting more _Media than what would be possible.$(br2)After some research the Phial seems to get the most _Media when its empty, with every consecutive extraction yielding less and less..."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/zh_cn.json
new file mode 100644
index 000000000000..5909693b82da
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/zh_cn.json
@@ -0,0 +1,64 @@
+{
+ "item.hex_machina.hex_gun": "咒术枪",
+ "item.hex_machina.amethyst_bullet": "紫水晶术弹",
+ "item.hex_machina.amethyst_bullet.block_projectile": "方块术弹",
+ "item.hex_machina.amethyst_bullet.target_projectile": "目标术弹",
+
+ "item.hex_machina.scrying_goggles": "探知护目镜",
+ "item.hex_machina.mind_phial": "意识之瓶",
+ "item.hex_machina.entity_capsule": "实体胶囊",
+
+ "tab.hex_machina": "Hex Machina",
+
+ "effect.hex_machina.expose_mind": "开放意识",
+
+ "mishap.hex_machina.not_gun": "无法在咒术枪之外运行此图案。",
+ "mishap.hex_machina.entity_capsule.expect_empty": "空%s",
+
+ "hexcasting.action.hex_machina:current_bullet": "快枪手之精思",
+ "hexcasting.action.hex_machina:previous_bullet": "快枪手之退转",
+ "hexcasting.action.hex_machina:next_bullet": "快枪手之进转",
+ "hexcasting.action.hex_machina:roulette": "快枪手之轮转",
+ "hexcasting.action.hex_machina:get_bullet": "柯尔特之精思",
+
+ "hexcasting.action.hex_machina:contain": "胶囊捕获",
+ "hexcasting.action.hex_machina:release": "胶囊释放",
+ "hexcasting.action.hex_machina:capsule/has_entity": "小智之精思",
+
+ "hexcasting.action.hex_machina:expose_mind": "开放意识",
+
+ "hex_machina.tooltip.mind_media.amount": "%s 紫水晶粉",
+
+ "hex_machina.entry.patterns.gun": "枪械",
+ "hex_machina.entry.patterns.entity_capsule": "实体胶囊",
+ "hex_machina.entry.patterns.expose_mind": "开放意识",
+
+ "hex_machina.page.guns.current_bullet": "获取枪械的当前弹槽。",
+ "hex_machina.page.guns.previous_bullet": "循环切换至枪中前一术弹。",
+ "hex_machina.page.guns.next_bullet": "循环切换至枪中后一术弹。",
+ "hex_machina.page.guns.roulette": "循环切换 $(o)n/$ 个弹槽。",
+ "hex_machina.page.guns.get_bullet": "获取施放当前咒术的术弹的引用 iota。",
+
+ "hex_machina.page.capsule.contain": "从栈中获取一个实体,并将其存入实体胶囊。目标实体每有 1 点生命值消耗 1 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hex_machina.page.capsule.release": "从栈中获取一个位置向量,并将实体胶囊中的实体释放到该处。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
+ "hex_machina.page.capsule.has_entity": "检验另一只手中的实体胶囊内有无实体。",
+
+ "hex_machina.page.great_spells.expose_mind": "令实体的意识对外开放,击杀该实体时可用意识之瓶收集其意识。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
+
+ "hex_machina.entry.items.gun": "枪械与术弹",
+
+ "hex_machina.page.items.gun.spotlight": "虽然$(l:items/hexcasting)$(item)杂件/$、$(l:items/hexcasting)$(item)饰品/$、$(l:items/hexcasting)$(item)造物/$的制造相对简单,但我似乎还是忽略了咒术的施放和存储手段的可能性。$(br2)$(item)咒术枪/$可装载最多 6 枚术弹,且可施放术弹中的咒术。$(br2)每次发射都会把弹巢转至下一枚可用的术弹。",
+ "hex_machina.page.items.bullet.amethyst_bullet": "$(item)紫水晶术弹/$的功能与核心类似,但咒术枪可直接施放其中 iota。",
+ "hex_machina.page.items.bullet.target_bullet": "$(item)目标术弹/$的功效类似,但它在发射后会产生一个微微闪光的弹射物,命中实体时会将该实体压入栈。$(br2)飞行时留下的尾迹会是我染色剂的颜色,真的很$(o)漂亮/$!",
+ "hex_machina.page.items.bullet.block_bullet": "$(item)方块术弹/$的功效与目标术弹类似,但它压入的是命中方块的位置向量。$(br2)值得注意的是,后两种术弹似乎会将命中位置周围的较小区域纳入我的影响范围。",
+
+ "hex_machina.entry.items.scrying_goggles": "探知护目镜",
+ "hex_machina.page.items.scrying_goggles.spotlight": "$(l:items/lens)$(item)探知透镜/$仅凭自身就能揭示世界的属性,还会在施法时屏蔽可能导致分心的事物。$(br2)我成功把这一概念拓展到了护目镜里!它有的功能似乎透镜也有,但好歹施法时可以把注意力再集中些了!",
+
+ "hex_machina.entry.items.entity_capsule": "实体胶囊",
+ "hex_machina.page.items.entity_capsule.spotlight": "咒术可用$(item)核心/$存储——这一概念就极有启发性。把这种概念拓展到极限,就可以存储生物了。$(br2)实体胶囊可将实体编码为$(media)媒质/$以供存储,还可将经过编码的实体还原成它们原本的形态。",
+
+ "hex_machina.entry.items.mind_phial": "意识之瓶",
+ "hex_machina.page.items.mind_phial.spotlight": "$(media)媒质/$很难获取。经过一段时间的设计,我应该可以让生物的$(l:patterns/great_spell/expose_mind)$(item)意识对外开放/$了。或许有助于获取更多$(media)媒质/$。$(br2)这种试剂瓶相当奇特——它无法由常规手段充能,但它似乎深不见底,无论多少$(media)媒质/$都能存得下……",
+ "hex_machina.page.items.mind_phial.page_2": "击杀意识对外开放的生物,我便可以将其$(media)媒质/$提取到前文所提的奇特试剂瓶里。$(br2)这种试剂瓶似乎会因此变得“兴奋”,从而收集到多得多的$(media)媒质/$,甚至能超出理论上限。$(br2)经研究,意识之瓶为空时收集到的$(media)媒质/$似乎最多,此后每次抽取所得会逐渐减少……"
+}
\ No newline at end of file
From dbb043d31e6345732b3dd0587037b31b84d12f8d Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 21:51:32 +0800
Subject: [PATCH 06/78] HexWays HexVR HexResearch
---
.../1.19/assets/hexvr/hex_vr/lang/en_us.json | 37 ++++++++++++
.../1.19/assets/hexvr/hex_vr/lang/zh_cn.json | 37 ++++++++++++
.../hexresearch/lang/en_us.json | 58 +++++++++++++++++++
.../hexresearch/lang/zh_cn.json | 58 +++++++++++++++++++
.../modrinth-hex-ways/hexways/lang/en_us.json | 31 ++++++++++
.../modrinth-hex-ways/hexways/lang/zh_cn.json | 31 ++++++++++
.../1.20-fabric/assets/hexvr/hex_vr/README.md | 1 +
.../assets/hexvr/hex_vr/lang/en_us.json | 37 ++++++++++++
.../assets/hexvr/hex_vr/packer-policy.json | 7 +++
.../1.20/assets/hexvr/hex_vr/lang/en_us.json | 37 ++++++++++++
.../1.20/assets/hexvr/hex_vr/lang/zh_cn.json | 37 ++++++++++++
11 files changed, 371 insertions(+)
create mode 100644 projects/1.19/assets/hexvr/hex_vr/lang/en_us.json
create mode 100644 projects/1.19/assets/hexvr/hex_vr/lang/zh_cn.json
create mode 100644 projects/1.19/assets/modrinth-hex-research/hexresearch/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-hex-research/hexresearch/lang/zh_cn.json
create mode 100644 projects/1.19/assets/modrinth-hex-ways/hexways/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-hex-ways/hexways/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/hexvr/hex_vr/README.md
create mode 100644 projects/1.20-fabric/assets/hexvr/hex_vr/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
create mode 100644 projects/1.20/assets/hexvr/hex_vr/lang/en_us.json
create mode 100644 projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json
diff --git a/projects/1.19/assets/hexvr/hex_vr/lang/en_us.json b/projects/1.19/assets/hexvr/hex_vr/lang/en_us.json
new file mode 100644
index 000000000000..dcb0aef4d097
--- /dev/null
+++ b/projects/1.19/assets/hexvr/hex_vr/lang/en_us.json
@@ -0,0 +1,37 @@
+{
+ "key.category.hex_vr.hex_vr": "Hex VR",
+ "key.hex_vr.draw_spell_l_simple": "Draw spell - Left hand - Simple",
+ "key.hex_vr.draw_spell_r_simple": "Draw spell - Right hand - Simple",
+ "key.hex_vr.draw_spell_l_advanced": "Draw spell - Left hand - Advanced",
+ "key.hex_vr.draw_spell_r_advanced": "Draw spell - Right hand - Advanced",
+
+
+
+ "hexcasting.spell.hex_vr:head_pos": "Head Purification",
+ "hexcasting.spell.hex_vr:head_rot": "Seer's Purification",
+
+ "hexcasting.spell.hex_vr:left_hand_pos": "Signaler's Purification",
+ "hexcasting.spell.hex_vr:right_hand_pos": "Signaler's Purification II",
+
+ "hexcasting.spell.hex_vr:left_hand_rot": "Pointer's Purification",
+ "hexcasting.spell.hex_vr:right_hand_rot": "Pointer's Purification II",
+
+ "hexcasting.spell.hex_vr:left_hand_vel": "Signer's Purification",
+ "hexcasting.spell.hex_vr:right_hand_vel": "Signer's Purification II",
+
+
+ "hex_vr.entry.vr_patterns": "VR patterns",
+ "hex_vr.page.vr_patterns.0": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the head if it is a VR Player.",
+ "hex_vr.page.vr_patterns.1": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the head is looking if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.2": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the left hand if it is a VR Player.",
+ "hex_vr.page.vr_patterns.3": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the right hand if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.4": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the left hand is pointing if it is a VR Player.",
+ "hex_vr.page.vr_patterns.5": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the right hand is pointing if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.6": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the left hand if it is a VR Player, with the magnitude as the velocity.",
+ "hex_vr.page.vr_patterns.7": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the right hand if it is a VR Player, with the magnitude as the velocity.",
+
+ "hex_vr.page.vr_patterns.note": "Developer note: None of these patterns work if the server does not have HexVR installed."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexvr/hex_vr/lang/zh_cn.json b/projects/1.19/assets/hexvr/hex_vr/lang/zh_cn.json
new file mode 100644
index 000000000000..b08dee8e0039
--- /dev/null
+++ b/projects/1.19/assets/hexvr/hex_vr/lang/zh_cn.json
@@ -0,0 +1,37 @@
+{
+ "key.category.hex_vr.hex_vr": "咒法VR",
+ "key.hex_vr.draw_spell_l_simple": "绘制法术 - 左手 - 简单",
+ "key.hex_vr.draw_spell_r_simple": "绘制法术 - 右手 - 简单",
+ "key.hex_vr.draw_spell_l_advanced": "绘制法术 - 左手 - 高级",
+ "key.hex_vr.draw_spell_r_advanced": "绘制法术 - 右手 - 高级",
+
+
+
+ "hexcasting.spell.hex_vr:head_pos": "头部之纯化",
+ "hexcasting.spell.hex_vr:head_rot": "查看器之纯化",
+
+ "hexcasting.spell.hex_vr:left_hand_pos": "信号器之纯化",
+ "hexcasting.spell.hex_vr:right_hand_pos": "信号器之纯化,第二型",
+
+ "hexcasting.spell.hex_vr:left_hand_rot": "指向器之纯化",
+ "hexcasting.spell.hex_vr:right_hand_rot": "指向器之纯化,第二型",
+
+ "hexcasting.spell.hex_vr:left_hand_vel": "手语者之纯化",
+ "hexcasting.spell.hex_vr:right_hand_vel": "手语者之纯化,第二型",
+
+
+ "hex_vr.entry.vr_patterns": "VR 图案",
+ "hex_vr.page.vr_patterns.0": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其头部位置。",
+ "hex_vr.page.vr_patterns.1": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其视线方向。",
+
+ "hex_vr.page.vr_patterns.2": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手位置。",
+ "hex_vr.page.vr_patterns.3": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手位置。",
+
+ "hex_vr.page.vr_patterns.4": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手指向的方向。",
+ "hex_vr.page.vr_patterns.5": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手指向的方向。",
+
+ "hex_vr.page.vr_patterns.6": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手运动的方向,向量的模代表速度。",
+ "hex_vr.page.vr_patterns.7": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手运动的方向,向量的模代表速度。",
+
+ "hex_vr.page.vr_patterns.note": "开发者注释:服务端未安装 HexVR 时,这些图案均不起作用。"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/en_us.json b/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/en_us.json
new file mode 100644
index 000000000000..cd7c3455e074
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/en_us.json
@@ -0,0 +1,58 @@
+{
+ "itemGroup.hexresearch.hex_research": "Hex Research",
+
+ "block.hexresearch.cognitive_inducer": "Cognitive Inducer",
+
+ "effect.hexresearch.mind_fatigue": "Mind Fatigue",
+
+ "text.hexresearch.thought_sieve.villager": "a villager",
+ "text.hexresearch.villager_actions.villager": "a villager",
+ "text.hexresearch.imbue_mind.cognitive_inducer": "an artificial mind",
+
+ "text.hexresearch.cognitive_inducer.empty": "Empty",
+ "text.hexresearch.cognitive_inducer.profession": "Profession: %s",
+ "text.hexresearch.cognitive_inducer.biome": "Biome: %s",
+ "text.hexresearch.cognitive_inducer.rank": "Rank: %s",
+
+ "hexresearch.mishap.bad_mind_imbue": "a filled artificial mind",
+ "hexresearch.mishap.not_per_world_pattern": "Expected a scroll containing a great spell",
+ "hexresearch.mishap.not_scroll": "Expected a written scroll",
+
+ "hexresearch.entry.items.cognitive_inducer": "Cognitive Inducer",
+ "hexresearch.page.items.cognitive_inducer.1": "I have devised a construction capable of precipitating a rudimentary mind by induction from nearby villagers. It's not capable of true sapience, but I believe it will suffice for purposes such as bookkeeping or media manipulation.",
+ "hexresearch.page.items.cognitive_inducer.2": "Constructed of slate, amethyst, and a diamond to serve as an anchor point for the mind.",
+ "hexresearch.page.items.cognitive_inducer.3": "The operation of the Cognitive Inducer is simple enough. Set it down near a villager, feed it media with a hopper or similar, and wait. A $(l:hexcasting:items/lens)Scrying Lens/$ should help me monitor progress. Over time the inducer will take impressions of nearby villagers and over enough of these, will form a usable 'mind' of its own. I have noticed that after some time of continuous induction, a villager will stop contributing. I have not yet found a way to utilize this mind, but with more research I'm sure I will find a solution.",
+ "hexresearch.page.items.cognitive_inducer.4": "I've done it!$(br2)I have invented? discovered? a $(l:hexresearch:patterns/great_spells/imbue_mind)great spell/$ that can transfer the mind from the inducer into a suitable construction in the same manner as $(l:hexcasting:greatwork/brainsweeping)Flay Mind/$.$(br2)Now I may cultivate minds for my own use and put them to work...$(br2)Should this bother me?",
+
+ "hexcasting.spell.hexresearch:thought_sieve": "Thought Sieve",
+ "hexcasting.spell.hexresearch:imbue_mind": "Imbue Mind",
+ "hexcasting.spell.hexresearch:villager_rank": "Professional Purification",
+ "hexcasting.spell.hexresearch:villager_popularity": "Suggestibility Purification",
+
+ "hexresearch.entry.greatwork.on_thought_sifting": "On Thought Sifting",
+ "hexresearch.page.greatwork.on_thought_sifting.1": "I thought I was asking Nature for the spells. I thought I was asking an entity for answers! I immersed their mind in the great tangle. Filtering thoughts through synapse through idea through...$(br2)It is a wonder that they survived at all. As I felt the filtered media I swear I got a glimpse memory thought idea colour...$(br)Stop. Here. Now. Breathe.",
+ "hexresearch.page.greatwork.on_thought_sifting.2": "Were they more?",
+
+ "hexresearch.entry.villager_actions": "Villagers",
+ "hexcasting.spell.book.hexresearch:villager_rank": "Professional Prfn.",
+ "hexcasting.spell.book.hexresearch:villager_popularity": "Suggestibility Prfn.",
+ "hexresearch.page.villager_actions.intro.1": "These pages describe actions that glean information about villagers.",
+ "hexresearch.page.villager_actions.villager_rank": "Accepts a Villager $(l:casting/101)entity/$ and returns their profession rank.",
+ "hexresearch.page.villager_actions.villager_popularity": "Accepts a Villager $(l:casting/101)entity/$ and returns a number indicating how much the caster may influence them (the caster's popularity).",
+
+ "hexresearch.entry.thought_sieve": "Thought Sieve",
+ "hexcasting.spell.book.hexresearch:thought_sieve": "Thought Sieve",
+ "hexresearch.page.thought_sieve.intro.1": "These great spells elude me so. There must be a better way to discover these than diving into old ruins to find what those before knew. If they discovered these, then so can I. To that end, I have found a way to ask Nature directly for these answers, but the answer comes as a torrent of what I can only perceive as garbage. Maybe I could filter the result somehow?",
+ "hexresearch.page.thought_sieve.intro.2": "Villagers may have just enough mind to them. I wonder if I could use them as a filter or \"sieve\" to reduce the the torrent to something comprehensible. The villager should have have mastery of their profession so as to have the proper discipline. They would also need to be suggestible, so as to accept the flow of media. Gaining popularity with them should accomplish this. I fear for them if they resist the process. Filtering that much information through their mind could \"snag\".",
+ "hexresearch.page.thought_sieve.spell.1": "Requests the proper way to invoke a great spell and filters the response through the mind of the villager. The scroll must hold a pattern that looks like a $(l:patterns/great_spells)great spell/$ but the stroke order is irrelevant.",
+ "hexresearch.page.thought_sieve.spell.2": "If the spell is successful, it will rewrite the scroll to match the great spell. The greater the villager's $(l:hexresearch:patterns/villager_actions#hexresearch:villager_rank)mastery/$ over their profession, the more likely it is that their mind is up to the task. However, if the villager is not $(l:hexresearch:patterns/villager_actions#hexresearch:villager_popularity)suggestible/$ enough, they may lose part of themselves. In extreme cases, they may lose their life entirely... Am I really going to do this?",
+ "hexresearch.page.thought_sieve.spell.3": "Thought sifting is mentally fatiguing for the villager. I must be careful to avoid using the same villager too often, or I may cause them additional harm. It doesn't take long for them to recover, however. Half a minute should be enough.",
+
+ "hexresearch.entry.imbue_mind": "Imbue Mind",
+ "hexcasting.spell.book.hexresearch:imbue_mind": "Imbue Mind",
+ "hexresearch.page.spells.imbue_mind.1": "There's something here but I can't quite understand what it does...",
+ "hexresearch.page.spells.imbue_mind.2": "I've grasped the meaning! This spell takes the location of a Cognitive Inducer and a target construction, then imbues the mind into the construction. The minds and constructions are exactly the same as for $(l:hexcasting:greatwork/brainsweeping)Flay Mind/$.",
+
+ "hexresearch.misc.overlay.infinite": "§kInfinite§r",
+ "hexresearch.misc.overlay.mind": "%s %s"
+}
diff --git a/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/zh_cn.json b/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/zh_cn.json
new file mode 100644
index 000000000000..c522e48ad4b9
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/zh_cn.json
@@ -0,0 +1,58 @@
+{
+ "itemGroup.hexresearch.hex_research": "咒法研究",
+
+ "block.hexresearch.cognitive_inducer": "认知感应器",
+
+ "effect.hexresearch.mind_fatigue": "意识疲劳",
+
+ "text.hexresearch.thought_sieve.villager": "一个村民",
+ "text.hexresearch.villager_actions.villager": "一个村民",
+ "text.hexresearch.imbue_mind.cognitive_inducer": "一个人工意识",
+
+ "text.hexresearch.cognitive_inducer.empty": "空",
+ "text.hexresearch.cognitive_inducer.profession": "职业:%s",
+ "text.hexresearch.cognitive_inducer.biome": "生物群系:%s",
+ "text.hexresearch.cognitive_inducer.rank": "等级:%s",
+
+ "hexresearch.mishap.bad_mind_imbue": "一个已填满的人工意识",
+ "hexresearch.mishap.not_per_world_pattern": "本应提供一张写有卓越法术的卷轴",
+ "hexresearch.mishap.not_scroll": "本应提供一张已写卷轴",
+
+ "hexresearch.entry.items.cognitive_inducer": "认知感应器",
+ "hexresearch.page.items.cognitive_inducer.1": "我设计了能够利用周围村民引导构成初级意识的装置。构成的意识不具备真正的智慧,但我相信它足够用于管理图书或是操纵媒质。",
+ "hexresearch.page.items.cognitive_inducer.2": "由石板、紫水晶,以及一枚用作意识锚点的钻石制成。",
+ "hexresearch.page.items.cognitive_inducer.3": "认知感应器的操作方式相当简单。将其放在村民附近,通过漏斗等方式送入媒质,再静待完工。$(l:hexcasting:items/lens)探知透镜/$应当能用来查看进度。感应器会随时间收集附近村民的印象,足量的印象就能产生可用的“意识”。我注意到长时间感应同一村民后,其便不会再供应印象。我还没有找到使用这种意识的方式,但我确信随着研究的深入终究能找到。",
+ "hexresearch.page.items.cognitive_inducer.4": "我成功了!$(br2)我发明?发现?了一个$(l:hexresearch:patterns/great_spells/imbue_mind)卓越法术/$,它能把感应器中的意识放入合适的目标,类似$(l:hexcasting:greatwork/brainsweeping)剥离意识/$。$(br2)我现在能培育意识并令其劳作了……$(br2)我该为这种行为产生负面情绪吗?",
+
+ "hexcasting.spell.hexresearch:thought_sieve": "思维筛滤",
+ "hexcasting.spell.hexresearch:imbue_mind": "灌注意识",
+ "hexcasting.spell.hexresearch:villager_rank": "职业之纯化",
+ "hexcasting.spell.hexresearch:villager_popularity": "易影响性之纯化",
+
+ "hexresearch.entry.greatwork.on_thought_sifting": "关于思维的过滤",
+ "hexresearch.page.greatwork.on_thought_sifting.1": "我一直以为我是在向自然寻求法术。我一直以为我是在向某种实体寻求答案!我把他们的意识浸入那宏大的媒质回环。过滤思维通过突触通过想法通过……$(br2)他们能存活下来已是奇迹。我感受到那些过滤后的媒质时我绝对获得了一瞬的记忆思维想法颜色……$(br)马上。停下。吸气。呼气。",
+ "hexresearch.page.greatwork.on_thought_sifting.2": "还有更多吗?",
+
+ "hexresearch.entry.villager_actions": "村民",
+ "hexcasting.spell.book.hexresearch:villager_rank": "职业之纯化",
+ "hexcasting.spell.book.hexresearch:villager_popularity": "易影响性之纯化",
+ "hexresearch.page.villager_actions.intro.1": "这几页主要介绍能获取村民信息的操作。",
+ "hexresearch.page.villager_actions.villager_rank": "接受一个村民$(l:casting/101)实体/$,并返回其职业等级。",
+ "hexresearch.page.villager_actions.villager_popularity": "接受一个村民$(l:casting/101)实体/$,并返回代表施法者对其影响能力的数(施法者的声望)。",
+
+ "hexresearch.entry.thought_sieve": "思维筛滤",
+ "hexcasting.spell.book.hexresearch:thought_sieve": "思维筛滤",
+ "hexresearch.page.thought_sieve.intro.1": "那些卓越法术总是躲着我。和深入遗迹寻找前人经验比起来,肯定有更好的方法找到这些法术。前人发现的我自然也能发现。为此,我找到了直接向自然寻求这些答案的方法,但得到的回答如洪流扑面,我只能将其理解为垃圾。也许我能从中过滤出结果?",
+ "hexresearch.page.thought_sieve.intro.2": "村民们就拥有足够的意识。不知道我能否把他们用作滤网或者“筛子”,以此减弱洪流,而得到能理解的知识?村民对他们的职业足够熟练,由此可以学习相应的知识。他们还需要对我的想法有相当的接受度,以便接纳媒质流。提高我在他们之中的声望应该足以做到这些。但我担心他们抗拒这一过程。用他们的意识过滤这么多信息可能会导致“撕裂”。",
+ "hexresearch.page.thought_sieve.spell.1": "请求使用卓越法术的正确方式,并用村民的意识过滤回应。卷轴中必须写有一个和$(l:patterns/great_spells)卓越法术/$相似的图案,笔顺不重要。",
+ "hexresearch.page.thought_sieve.spell.2": "如果法术施放成功,其会改写卷轴至与卓越法术相符。村民对其职业的$(l:hexresearch:patterns/villager_actions#hexresearch:villager_rank)熟练度/$越高,他们的意识就越有可能担得起这种任务。然而,要是村民$(l:hexresearch:patterns/villager_actions#hexresearch:villager_popularity)对我的接受度/$不够,他们就可能失去一部分自我。极端情况下,甚至会完全丧失生命……我真的要这么做吗?",
+ "hexresearch.page.thought_sieve.spell.3": "对村民来说,思维筛滤非常容易导致意识疲劳。我必须避免频繁使用同一村民,否则可能造成额外伤害。不过,他们的恢复时间不会很长,半分钟应当足够。",
+
+ "hexresearch.entry.imbue_mind": "灌注意识",
+ "hexcasting.spell.book.hexresearch:imbue_mind": "灌注意识",
+ "hexresearch.page.spells.imbue_mind.1": "我没法完全理解这里写着的东西能做什么……",
+ "hexresearch.page.spells.imbue_mind.2": "我理解了!此法术接受认知感应器的位置以及一个目标,并将感应器中意识灌注入所给目标。此处的意识和目标需求与$(l:hexcasting:greatwork/brainsweeping)剥离意识/$完全一致。",
+
+ "hexresearch.misc.overlay.infinite": "§k无限§r",
+ "hexresearch.misc.overlay.mind": "%s%s"
+}
diff --git a/projects/1.19/assets/modrinth-hex-ways/hexways/lang/en_us.json b/projects/1.19/assets/modrinth-hex-ways/hexways/lang/en_us.json
new file mode 100644
index 000000000000..0d00ab551d8d
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hex-ways/hexways/lang/en_us.json
@@ -0,0 +1,31 @@
+{
+ "item.hexways.portal_staff": "Portal Staff",
+ "hexcasting.spell.hexways:twowayportal": "Summon 2 Way Portal",
+ "hexcasting.spell.hexways:onewayportal": "Summon 1 Way Portal",
+ "hexcasting.spell.hexways:removeportal": "Remove Portal",
+ "hexcasting.spell.hexways:rotateportal": "Rotate Portal",
+ "hexcasting.spell.hexways:moveportalinput": "Move Portal",
+ "hexcasting.spell.hexways:summonscry": "Summon Scry",
+ "hexcasting.spell.hexways:getoutputinfo": "Get Output Info",
+ "hexcasting.spell.hexways:resizeportal": "Resize Portal",
+ "hexcasting.spell.hexways:setportalsides": "Set Sides Portal",
+ "hexcasting.spell.hexways:rotatesideofportal": "Rotate Output :weedHexxy:",
+
+ "portalhexaddon.entry.hexways": "Hex Ways",
+ "portalhexaddon.page.hexways.onewayportal": "Accepts the arguments of 2-way portal, but constructs a portal restricted to unilateral traversal. The specialized use case brings a steeper cost of 32 charged amethyst.",
+ "portalhexaddon.page.hexways.twowayportal": "Accepts a vector for the portal's input, one for output, a third for rotation, and a number for its initial radius. Costs 16 charged amethyst per unit of size.",
+ "portalhexaddon.page.hexways.summonscry": "Works as a 1-way portal, but does not provide travel. Not as useful as a full-fledged portal, but is frugal in the cost of knowledge and amethyst. Costs about 4 shards per unit of size.",
+ "portalhexaddon.page.hexways.moveportalinput": "Takes a portal entity and a location vector, and relocates its input to that location. Since portals are not one single entity, but a pair, the 'input' refers to the side passed to the spell. Costs 2 dust.",
+ "portalhexaddon.page.hexways.removeportal": "Alas, if a portal provides the visage of too much for my eyes to handle, this spell may cut the string, banishing a portal pair. Costs no _media.",
+ "portalhexaddon.page.hexways.portalambit": "Astoundingly, these portals... the range of my _Hexes may flow through them, albeit diminished. It seems my influence stretches outside to the other end of a portal, at half the remaining distance from me. As such, I may find the equation \"(32 - my location)/2\" to suffice for the added reach.",
+ "portalhexaddon.page.hexways.setportalsides": "As, well, $(italic)familiar/$, I am with hexagons, sadly they don't fit every situation. But with this spell, I may alter the count of a portal's sides and roll, free of cost.",
+ "portalhexaddon.page.hexways.resizeportal": "Passing a portal, height, and width, I may change the size of the portal, reverting it to a hexagonal shape, curiously. Costs shards equal to the average of the height and width.",
+ "portalhexaddon.page.hexways.getoutputinfo": "This nifty pattern returns a portal's output portal, or its output location as a vector if there is no output portal. This could be useful combined with Portal Ambit. Costs no _media.",
+ "portalhexaddon.page.hexways.getoutputinfocont": "After confusion, I concluded that this pattern works the best with Move Portal, due to getting the output portal, if it is a 2-way portal. Another use for this pattern may be for raycasts, since the casts don't pass through portals, but with this, I can emulate the raycast.",
+ "portalhexaddon.page.hexways.rotateportal": "Ah, fickle rotation vectors. To my luck, I may use this spell to change the rotation of a given portal. Notably, it rotates its output as well, and at no cost.",
+ "portalhexaddon.page.hexways.portalambittitle": "Portal Ambit",
+ "portalhexaddon.page.hexways.pageintro": "I have come across a method by which I can imitate the phenomenon of wormholes (or perhaps, electron tunneling?), using media. This discovery was powered by the presence of another modification, \"Immersive Portals\". How exciting! I shall utilize this revelation posthaste.",
+ "portalhexaddon.page.hexways.pageintrotitle": "Hex Portals?",
+
+ "portalhexaddon.page.hexways.getoutputinfoconttitle": "Get Output Info, Cont."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hex-ways/hexways/lang/zh_cn.json b/projects/1.19/assets/modrinth-hex-ways/hexways/lang/zh_cn.json
new file mode 100644
index 000000000000..fa3f7dc1a815
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hex-ways/hexways/lang/zh_cn.json
@@ -0,0 +1,31 @@
+{
+ "item.hexways.portal_staff": "传送门法杖",
+ "hexcasting.spell.hexways:twowayportal": "召唤双向传送门",
+ "hexcasting.spell.hexways:onewayportal": "召唤单向传送门",
+ "hexcasting.spell.hexways:removeportal": "移除传送门",
+ "hexcasting.spell.hexways:rotateportal": "旋转传送门",
+ "hexcasting.spell.hexways:moveportalinput": "移动传送门",
+ "hexcasting.spell.hexways:summonscry": "召唤窥视门",
+ "hexcasting.spell.hexways:getoutputinfo": "获取出口信息",
+ "hexcasting.spell.hexways:resizeportal": "重设传送门尺寸",
+ "hexcasting.spell.hexways:setportalsides": "设置传送门边数",
+ "hexcasting.spell.hexways:rotatesideofportal": "旋转输出传送门 :weedHexxy:",
+
+ "portalhexaddon.entry.hexways": "Hex Ways",
+ "portalhexaddon.page.hexways.onewayportal": "参数与双向传送门相同,但制造出的传送门仅供单向通行。更为特化的传送门消耗也更多,每级尺寸消耗 32 个充能紫水晶。",
+ "portalhexaddon.page.hexways.twowayportal": "接受一个传送门入口向量、一个传送门出口向量、一个传送门朝向向量,以及一个初始半径数。每级尺寸消耗 16 个充能紫水晶。",
+ "portalhexaddon.page.hexways.summonscry": "与单向传送门类似,但无法穿过。和功能完整的传送门没法比,但它的消耗实在是很少。每级尺寸消耗 4 个紫水晶碎片。",
+ "portalhexaddon.page.hexways.moveportalinput": "接受一个传送门实体和一个位置向量,并将传送门的入口移动至所给位置。因为传送门并非单个实体,而是两个一组,此处的“入口”指代传入的那一侧。消耗 2 个紫水晶粉。",
+ "portalhexaddon.page.hexways.removeportal": "要是传送门的影响太过惹眼,此法术即可解决问题,直接消去一个传送门对。无需消耗$(media)媒质/$。",
+ "portalhexaddon.page.hexways.portalambit": "这些传送门,真是奇特……我$(hex)咒术/$的返回能够透过它们,虽然会遭到削减。我在传送门另一侧外部的施法范围会变为剩余距离的一半。也即,如下等式“(32 - 我的位置)/2”能完全描述这一规律。",
+ "portalhexaddon.page.hexways.setportalsides": "我对六边形堪称$(italic)熟稔/$,但它们并不适合所有情况。而此法术可以更改传送门的边数和横滚角度,无需消耗$(media)媒质/$。",
+ "portalhexaddon.page.hexways.resizeportal": "接受一个传送门、一个高度数、一个宽度数,以此更改传送门的大小。神奇的是,同时会把传送门的外形变回六边形。消耗的紫水晶碎片量等于高度和宽度的平均数。",
+ "portalhexaddon.page.hexways.getoutputinfo": "这个好用的图案会返回传入传送门的“出口”传送门实体,如果没有对应实体则返回出口位置向量。配合传送门施法范围有大用处。无需消耗$(media)媒质/$。",
+ "portalhexaddon.page.hexways.getoutputinfocont": "在多次碰壁后,我认为此图案和移动传送门法术最合拍,因为它会返回双向传送门的出口实体。另一个用处是射线追踪;普通的射线追踪无法穿过传送门,但此法术可以模拟。",
+ "portalhexaddon.page.hexways.rotateportal": "旋转向量变化无常,确实麻烦。好在我可以用这个法术改变给定传送门的朝向。需要注意的是,它同时也会旋转出口的朝向,且无需消耗$(media)媒质/$。",
+ "portalhexaddon.page.hexways.portalambittitle": "传送门施法范围",
+ "portalhexaddon.page.hexways.pageintro": "我发现了模拟虫洞(或者说是电子隧穿?)现象的方式,仅凭媒质。这一发现的基础在于另一个模组:“沉浸式传送门”。真是有趣!我需要立即实践这一发现。",
+ "portalhexaddon.page.hexways.pageintrotitle": "咒术传送门?",
+
+ "portalhexaddon.page.hexways.getoutputinfoconttitle": "获取出口信息,补充说明"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexvr/hex_vr/README.md b/projects/1.20-fabric/assets/hexvr/hex_vr/README.md
new file mode 100644
index 000000000000..cdfa20c4fc50
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexvr/hex_vr/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/hexvr/hex_vr)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexvr/hex_vr/lang/en_us.json b/projects/1.20-fabric/assets/hexvr/hex_vr/lang/en_us.json
new file mode 100644
index 000000000000..dcb0aef4d097
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexvr/hex_vr/lang/en_us.json
@@ -0,0 +1,37 @@
+{
+ "key.category.hex_vr.hex_vr": "Hex VR",
+ "key.hex_vr.draw_spell_l_simple": "Draw spell - Left hand - Simple",
+ "key.hex_vr.draw_spell_r_simple": "Draw spell - Right hand - Simple",
+ "key.hex_vr.draw_spell_l_advanced": "Draw spell - Left hand - Advanced",
+ "key.hex_vr.draw_spell_r_advanced": "Draw spell - Right hand - Advanced",
+
+
+
+ "hexcasting.spell.hex_vr:head_pos": "Head Purification",
+ "hexcasting.spell.hex_vr:head_rot": "Seer's Purification",
+
+ "hexcasting.spell.hex_vr:left_hand_pos": "Signaler's Purification",
+ "hexcasting.spell.hex_vr:right_hand_pos": "Signaler's Purification II",
+
+ "hexcasting.spell.hex_vr:left_hand_rot": "Pointer's Purification",
+ "hexcasting.spell.hex_vr:right_hand_rot": "Pointer's Purification II",
+
+ "hexcasting.spell.hex_vr:left_hand_vel": "Signer's Purification",
+ "hexcasting.spell.hex_vr:right_hand_vel": "Signer's Purification II",
+
+
+ "hex_vr.entry.vr_patterns": "VR patterns",
+ "hex_vr.page.vr_patterns.0": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the head if it is a VR Player.",
+ "hex_vr.page.vr_patterns.1": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the head is looking if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.2": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the left hand if it is a VR Player.",
+ "hex_vr.page.vr_patterns.3": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the right hand if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.4": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the left hand is pointing if it is a VR Player.",
+ "hex_vr.page.vr_patterns.5": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the right hand is pointing if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.6": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the left hand if it is a VR Player, with the magnitude as the velocity.",
+ "hex_vr.page.vr_patterns.7": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the right hand if it is a VR Player, with the magnitude as the velocity.",
+
+ "hex_vr.page.vr_patterns.note": "Developer note: None of these patterns work if the server does not have HexVR installed."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json b/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
new file mode 100644
index 000000000000..8dc10b182a45
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
@@ -0,0 +1,7 @@
+[
+ {
+ "type": "singleton",
+ "source": "projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json",
+ "relativePath": "lang/zh_cn.json"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/hexvr/hex_vr/lang/en_us.json b/projects/1.20/assets/hexvr/hex_vr/lang/en_us.json
new file mode 100644
index 000000000000..dcb0aef4d097
--- /dev/null
+++ b/projects/1.20/assets/hexvr/hex_vr/lang/en_us.json
@@ -0,0 +1,37 @@
+{
+ "key.category.hex_vr.hex_vr": "Hex VR",
+ "key.hex_vr.draw_spell_l_simple": "Draw spell - Left hand - Simple",
+ "key.hex_vr.draw_spell_r_simple": "Draw spell - Right hand - Simple",
+ "key.hex_vr.draw_spell_l_advanced": "Draw spell - Left hand - Advanced",
+ "key.hex_vr.draw_spell_r_advanced": "Draw spell - Right hand - Advanced",
+
+
+
+ "hexcasting.spell.hex_vr:head_pos": "Head Purification",
+ "hexcasting.spell.hex_vr:head_rot": "Seer's Purification",
+
+ "hexcasting.spell.hex_vr:left_hand_pos": "Signaler's Purification",
+ "hexcasting.spell.hex_vr:right_hand_pos": "Signaler's Purification II",
+
+ "hexcasting.spell.hex_vr:left_hand_rot": "Pointer's Purification",
+ "hexcasting.spell.hex_vr:right_hand_rot": "Pointer's Purification II",
+
+ "hexcasting.spell.hex_vr:left_hand_vel": "Signer's Purification",
+ "hexcasting.spell.hex_vr:right_hand_vel": "Signer's Purification II",
+
+
+ "hex_vr.entry.vr_patterns": "VR patterns",
+ "hex_vr.page.vr_patterns.0": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the head if it is a VR Player.",
+ "hex_vr.page.vr_patterns.1": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the head is looking if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.2": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the left hand if it is a VR Player.",
+ "hex_vr.page.vr_patterns.3": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the right hand if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.4": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the left hand is pointing if it is a VR Player.",
+ "hex_vr.page.vr_patterns.5": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the right hand is pointing if it is a VR Player.",
+
+ "hex_vr.page.vr_patterns.6": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the left hand if it is a VR Player, with the magnitude as the velocity.",
+ "hex_vr.page.vr_patterns.7": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the right hand if it is a VR Player, with the magnitude as the velocity.",
+
+ "hex_vr.page.vr_patterns.note": "Developer note: None of these patterns work if the server does not have HexVR installed."
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json b/projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json
new file mode 100644
index 000000000000..b08dee8e0039
--- /dev/null
+++ b/projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json
@@ -0,0 +1,37 @@
+{
+ "key.category.hex_vr.hex_vr": "咒法VR",
+ "key.hex_vr.draw_spell_l_simple": "绘制法术 - 左手 - 简单",
+ "key.hex_vr.draw_spell_r_simple": "绘制法术 - 右手 - 简单",
+ "key.hex_vr.draw_spell_l_advanced": "绘制法术 - 左手 - 高级",
+ "key.hex_vr.draw_spell_r_advanced": "绘制法术 - 右手 - 高级",
+
+
+
+ "hexcasting.spell.hex_vr:head_pos": "头部之纯化",
+ "hexcasting.spell.hex_vr:head_rot": "查看器之纯化",
+
+ "hexcasting.spell.hex_vr:left_hand_pos": "信号器之纯化",
+ "hexcasting.spell.hex_vr:right_hand_pos": "信号器之纯化,第二型",
+
+ "hexcasting.spell.hex_vr:left_hand_rot": "指向器之纯化",
+ "hexcasting.spell.hex_vr:right_hand_rot": "指向器之纯化,第二型",
+
+ "hexcasting.spell.hex_vr:left_hand_vel": "手语者之纯化",
+ "hexcasting.spell.hex_vr:right_hand_vel": "手语者之纯化,第二型",
+
+
+ "hex_vr.entry.vr_patterns": "VR 图案",
+ "hex_vr.page.vr_patterns.0": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其头部位置。",
+ "hex_vr.page.vr_patterns.1": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其视线方向。",
+
+ "hex_vr.page.vr_patterns.2": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手位置。",
+ "hex_vr.page.vr_patterns.3": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手位置。",
+
+ "hex_vr.page.vr_patterns.4": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手指向的方向。",
+ "hex_vr.page.vr_patterns.5": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手指向的方向。",
+
+ "hex_vr.page.vr_patterns.6": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手运动的方向,向量的模代表速度。",
+ "hex_vr.page.vr_patterns.7": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手运动的方向,向量的模代表速度。",
+
+ "hex_vr.page.vr_patterns.note": "开发者注释:服务端未安装 HexVR 时,这些图案均不起作用。"
+}
\ No newline at end of file
From b40a314544e94223eb6534fec9e75b96a08c2a38 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 22:04:18 +0800
Subject: [PATCH 07/78] Hexal HexCassettes create
---
.../assets/hexal/hexal/lang/en_us.json | 173 ++++++++
.../assets/hexal/hexal/packer-policy.json | 7 +
.../1.18/assets/hexal/hexal/lang/zh_cn.json | 2 +-
.../1.19/assets/hexal/hexal/lang/en_us.json | 411 ++++++++++++++++++
.../1.19/assets/hexal/hexal/lang/zh_cn.json | 411 ++++++++++++++++++
.../hexcassettes/hexcassettes/lang/en_us.json | 39 ++
.../hexcassettes/hexcassettes/lang/zh_cn.json | 39 ++
.../hexcassettes/hexcassettes/lang/en_us.json | 45 ++
.../hexcassettes/hexcassettes/lang/zh_cn.json | 45 ++
9 files changed, 1171 insertions(+), 1 deletion(-)
create mode 100644 projects/1.18-fabric/assets/hexal/hexal/lang/en_us.json
create mode 100644 projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
create mode 100644 projects/1.19/assets/hexal/hexal/lang/en_us.json
create mode 100644 projects/1.19/assets/hexal/hexal/lang/zh_cn.json
create mode 100644 projects/1.19/assets/hexcassettes/hexcassettes/lang/en_us.json
create mode 100644 projects/1.19/assets/hexcassettes/hexcassettes/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/zh_cn.json
diff --git a/projects/1.18-fabric/assets/hexal/hexal/lang/en_us.json b/projects/1.18-fabric/assets/hexal/hexal/lang/en_us.json
new file mode 100644
index 000000000000..ad15ddea1226
--- /dev/null
+++ b/projects/1.18-fabric/assets/hexal/hexal/lang/en_us.json
@@ -0,0 +1,173 @@
+{
+ "block.hexal.slipway": "Slipway",
+
+ "entity.hexal.wisp.projectile": "Projectile Wisp",
+ "entity.hexal.wisp.ticking": "Cyclic Wisp",
+ "entity.hexal.wisp.wandering": "Wandering Wisp",
+
+ "hexcasting.mishap.non_player": "%s expected to be cast by a player.",
+ "hexcasting.mishap.no_wisp": "%s expected to be cast by a wisp.",
+ "hexcasting.mishap.others_wisp": "That wisp is owned by %s, not you.",
+ "hexcasting.mishap.no_links": "%s has no links.",
+ "hexcasting.mishap.self_link": "Tried to link %s to itself.",
+
+ "hexcasting.mishap.invalid_value.class.type.list.double": "a list of numbers",
+ "hexal.mishap.invalid_value.vecitem": "a vector or item entity",
+
+
+ "hexcasting.spell.hexal:compare/blocks": "Surveyor's Distillation",
+ "hexcasting.spell.hexal:compare/entities": "Physician's Distillation",
+ "hexcasting.spell.hexal:compare/types": "Classifier's Distillation",
+
+ "hexcasting.spell.hexal:current_tick": "Timekeeper's Reflection",
+ "hexcasting.spell.hexal:remaining_evals": "Thanatos' Reflection",
+ "hexcasting.spell.hexal:breath": "Diver's Purification",
+ "hexcasting.spell.hexal:health": "Nurse's Purification",
+ "hexcasting.spell.hexal:light_level": "Lamplighter's Purification",
+
+ "hexcasting.spell.hexal:factorial": "Factorial Purification",
+ "hexcasting.spell.hexal:running/sum": "Running Sum Purification",
+ "hexcasting.spell.hexal:running/mul": "Running Product Purification",
+
+ "hexcasting.spell.hexal:everbook/read": "Mnemosyne's Gambit",
+ "hexcasting.spell.hexal:everbook/write": "Elysium's Gambit",
+ "hexcasting.spell.hexal:everbook/delete": "Lethe's Gambit",
+ "hexcasting.spell.hexal:everbook/toggle_macro": "Brigh's Gambit",
+
+ "hexcasting.spell.hexal:smelt": "Smelt",
+ "hexcasting.spell.hexal:freeze": "Freeze",
+ "hexcasting.spell.hexal:falling_block": "Falling Block",
+
+ "hexcasting.spell.hexal:wisp/summon/projectile": "Summon Projectile Wisp",
+ "hexcasting.spell.hexal:wisp/summon/ticking": "Summon Cyclic Wisp",
+ "hexcasting.spell.hexal:wisp/media": "Reservoir Reflection",
+ "hexcasting.spell.hexal:wisp/hex": "Manager's Purification",
+ "hexcasting.spell.hexal:wisp/owner": "Allegiance Distillation",
+ "hexcasting.spell.hexal:wisp/move/target/set": "Pathfinder's Gambit",
+ "hexcasting.spell.hexal:wisp/move/target/get": "Pathfinder's Reflection",
+ "hexcasting.spell.hexal:wisp/move/speed/set": "Haste",
+ "hexcasting.spell.hexal:wisp/move/speed/get": "Speedometer's Reflection",
+ "hexcasting.spell.hexal:wisp/trigger/tick": "Delay Wisp",
+ "hexcasting.spell.hexal:wisp/trigger/comm": "Listen",
+ "hexcasting.spell.hexal:wisp/trigger/move": "Wander",
+ "hexcasting.spell.hexal:wisp/consume": "Consume Wisp",
+ "hexcasting.spell.hexal:wisp/seon/set": "Bind Wisp",
+ "hexcasting.spell.hexal:wisp/seon/get": "Familiar's Reflection",
+
+ "hexcasting.spell.hexal:get_entity/wisp": "Entity Purification: Wisp",
+ "hexcasting.spell.hexal:zone_entity/wisp": "Zone Distillation: Wisp",
+ "hexcasting.spell.hexal:zone_entity/not_wisp": "Zone Distillation: Non-Wisp",
+
+ "hexcasting.spell.hexal:link/link_entity": "Link Entity",
+ "hexcasting.spell.hexal:link/link_two_entities": "Link Entities",
+ "hexcasting.spell.hexal:link/unlink": "Unlink",
+ "hexcasting.spell.hexal:link/get": "Phonebook Purification",
+ "hexcasting.spell.hexal:link/get_index": "Recognition Purification",
+ "hexcasting.spell.hexal:link/num": "Popularity Reflection",
+
+ "hexcasting.spell.hexal:link/comm/send": "Send Iota",
+ "hexcasting.spell.hexal:link/comm/read": "Recitation Reflection",
+ "hexcasting.spell.hexal:link/comm/num": "Postmaster's Reflection",
+ "hexcasting.spell.hexal:link/comm/open_transmit": "Open Transmit",
+ "hexcasting.spell.hexal:link/comm/close_transmit": "Close Transmit",
+
+
+
+ "hexcasting.spell.book.hexal:light_level": "Lamplighter's Prfn.",
+
+ "hexcasting.spell.book.hexal:running/sum": "Running Sum Prfn.",
+ "hexcasting.spell.book.hexal:running/mul": "Running Product Prfn.",
+
+ "hexcasting.spell.book.hexal:get_entity/wisp": "Entity Prfn.: Wisp",
+ "hexcasting.spell.book.hexal:zone_entity/wisp": "Zone Dstl.: Wisp",
+ "hexcasting.spell.book.hexal:zone_entity/not_wisp": "Zone Dstl.: Non-Wisp",
+
+
+
+
+ "hexal.entry.slipways": "Slipways",
+ "hexal.page.slipways": "I have heard tales of some geodes in which glowing portals called slipways lie. These slipways are regularly depicted with glowing sparks surrounding them that bear an incredible resemblance to the $(l:hexal:patterns/spells/wisps)$(thing)wisps/$ that I have heard tell of, which may be a connection to look into.",
+
+
+ "hexal.entry.hexal_basics": "Hexal Basic Patterns",
+ "hexal.page.hexal_basics.current_tick": "Adds a number to the stack which seems to be related to how Nature represents time; If I cast the pattern, then cast the same pattern a second later, the number it adds has increased by 20.",
+ "hexal.page.hexal_basics.remaining_evals": "Adds the number of evaluations a hex is still capable of to the stack. This is reduced by $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$.",
+ "hexal.page.hexal_basics.breath": "Removes a Living entity from the stack and returns how much breath it has left (i.e., how close it is to drowning).",
+ "hexal.page.hexal_basics.health": "Removes a Living entity from the stack and returns how much health it has left (i.e., how close it is to dying).",
+ "hexal.page.hexal_basics.light_level": "Removes a position vector from the stack and returns the light level at that position.",
+
+ "hexal.entry.hexal_maths": "Hexal Maths",
+ "hexal.page.hexal_maths.factorial": "Removes a number from the stack and computes its factorial, for example inputting 4 would return 4*3*2*1=24.",
+ "hexal.page.hexal_maths.running/sum": "Takes a list from the stack and computes its running sum, for example inputting [1,2,5] would return [1,3,8].",
+ "hexal.page.hexal_maths.running/mul": "Takes a list from the stack and computes its running product, for example inputting [1,2,5] would return [1,2,10].",
+
+ "hexal.entry.hexal_spell": "Hexal Spells",
+ "hexal.page.hexal_spell.smelt.0": "Remove a location or item entity from the stack, then either smelt the block at the location or smelt all the items in the item entity.",
+ "hexal.page.hexal_spell.smelt.1": "Costs three quarters of an $(l:items/amethyst)$(item)Amethyst Dust/$ per item smelted (i.e. three quarters of an $(l:items/amethyst)$(item)Amethyst Dust/$ for smelting a block, 6 $(l:items/amethyst)$(item)Amethyst Dust/$ to smelt a stack of 8 items.)",
+ "hexal.page.hexal_spell.freeze": "Freezes the block at a block location. For example, turns water into ice, and ice into packed ice. Costs three $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.hexal_spell.falling_block": "Remove a location from the stack, and force the block there to fall as if it were sand or gravel. Costs one and a half $(l:items/amethyst)$(item)Amethyst Dust/$.",
+
+ "hexal.entry.wisps": "Wisps",
+ "hexal.page.wisps.0": "I have discovered a way to create constructs from the media itself, visible to others and able to move and act somewhat on their own. They are able to cast hexes in my place, similar to how a $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ evaluates patterns. They do take some of my attention to operate this however, and if too many try and execute at once I will only be able to run some of them, leaving the rest for the next instant.",
+ "hexal.page.wisps.1": "When they are created I assign them a 'reservoir' of media that they have access to, which is taken from me and used to form the wisp. A wisp uses up part of its reservoir simply existing, and when it evaluates the pattern list it is carrying any costs incurred are removed from its reservoir. All wisps seem to take three $(l:items/amethyst)$(item)Amethyst Dust/$ to summon, in addition to whatever media is used for their reservoir.",
+ "hexal.page.wisps.wisp/summon/projectile.0": "This wisp is summoned and launched like an arrow, casting its hex on whatever it hits. The initial stack when it executes will be a reference to itself, then a reference to what it hit.",
+ "hexal.page.wisps.wisp/summon/projectile.1": "This could be a block position or an entity reference. The first vector accepted is the location the wisp will be summoned, while the direction of the second is the direction the wisp will be launched, and the second's magnitude seems to affect the wisp's velocity. The cost of the spell increases with the squared magnitude of velocity. The number accepted determines the wisp's reservoir in $(l:items/amethyst)$(item)Amethyst Dust/$. It loses one $(l:items/amethyst)$(item)Amethyst Dust/$ of media every second once summoned, and has a range of influence of 4 blocks.",
+ "hexal.page.wisps.wisp/summon/ticking.0": "Similar to Summon Projectile Wisp, but with only one vector input for the position to summon the wisp. Cyclic wisps are unmoving once summoned, instead executing their hex up to 20 times each second.",
+ "hexal.page.wisps.wisp/summon/ticking.1": "The first time it casts the stack will start with a reference to itself, from which point it will always start with the stack and ravenmind in the state they finished on the last cast. This wisp has a less stable form making it lose significantly more media every second, losing one $(l:items/amethyst)$(item)Amethyst Dust/$ per second once summoned, as well as an amount proportional to the amount remaining. It has a range of influence of 8 blocks.",
+ "hexal.page.wisps.wisp/media": "Add the amount of media in the wisp's reservoir to the stack. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
+ "hexal.page.wisps.wisp/hex": "Removes a reference to a wisp from the stack, and replaces it with the wisp's contained hex. Must be a wisp you summoned.",
+ "hexal.page.wisps.wisp/owner": "Removes a reference to a wisp and an entity from the stack, and returns one if that entity owns that wisp, and a zero otherwise.",
+ "hexal.page.wisps.wisp/move/target/set": "Removes a position vector from the stack; The Cyclic Wisp that executed this pattern will move in a straight line towards that position (colliding with terrain in its path) until it reaches it.",
+ "hexal.page.wisps.wisp/move/target/get": "Adds to the stack the position vector that the executing Cyclic Wisp is currently moving towards.",
+ "hexal.page.wisps.wisp/move/speed/set": "Removes a number from the stack, and sets the executing Cyclic Wisp's maximum speed to that number.",
+ "hexal.page.wisps.wisp/move/speed/get": "Gets the executing Cyclic Wisp's current maximum speed.",
+ "hexal.page.wisps.get_entity/wisp": "Transform the position on the stack into the wisp at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).",
+ "hexal.page.wisps.zone_entity/wisp": "Take a position and maximum distance on the stack, and combine them into a list of wisps near the position.",
+ "hexal.page.wisps.zone_entity/not_wisp": "Take a position and maximum distance on the stack, and combine them into a list of non-wisp entities near the position.",
+ "hexal.page.wisps.wisp/trigger/tick": "Removes an integer from the stack, then delays the wisp's next cast until at least that many twentieth's of a second have passed.",
+ "hexal.page.wisps.wisp/trigger/comm": "The wisp's next cast will not occur until it has received at least one $(l:hexal:patterns/spells/links#hexal:link/comm/send)$(action)communication/$.",
+ "hexal.page.wisps.wisp/trigger/move": "The wisp's next cast will not occur until it has reached the position it is $(l:hexal:patterns/spells/wisps#hexal:wisp/move/target/set)$(action)navigating/$ towards.",
+
+ "hexal.entry.links": "Links",
+ "hexal.page.links.0": "These patterns outline a system that I have found for communicating information from one $(l:hexal:patterns/spells/wisps)$(thing)wisp/$ to another, among other things. There are a number of patterns related to creating these links that are able to transmit information, and a number of patterns related to sending and receiving iotas over a link once it is created. A wisp can have any number of links active, with each costing a negligible amount of media to maintain each twentieth of a second.",
+ "hexal.page.links.1": "As links are created connected to a wisp that wisp will assign an order to them, based on the order which they were created, which is used to reference the links in a number of patterns. Unless otherwise stated, these patterns must be evaluated by a wisp, with unpleasant consequences if I try to evaluate them myself.",
+ "hexal.page.links.link/link_entity": "Links the casting wisp to the entity removed from the stack, which must be linkable. This costs one $(l:items/amethyst)$(item)Amethyst Shard/$.",
+ "hexal.page.links.link/link_two_entities": "May be evaluated by any casting instrument. Links two entities, which must be linkable. This costs one $(l:items/amethyst)$(item)Amethyst Shard/$.",
+ "hexal.page.links.link/unlink": "Removes the link at the given index from the casting wisp's links. This costs two $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.links.link/get": "Removes an index from the stack, and adds the entity connected to the link at that index to the stack.",
+ "hexal.page.links.link/get_index": "Removes an entity from the stack, and adds the index to the link to that entity to the stack (or -1 if the wisp isn't linked to that entity).",
+ "hexal.page.links.link/num": "Adds the number of links to the wisp to the stack.",
+ "hexal.page.links.link/comm/send": "Removes an iota from the stack, then removes an index from the stack and sends the iota along the link at the given index. This costs one hundredth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.links.link/comm/read": "When a wisp receives an iota along a link it is added to a queue. This pattern adds the first iota in the queue to the stack, removing it from the queue.",
+ "hexal.page.links.link/comm/num": "Adds to the stack the number of unread iota in the wisp's received iota queue.",
+ "hexal.page.links.link/comm/open_transmit": "Similar to $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$, until drawing a $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Close Transmit/$ all patterns I draw are sent along the link whose index is at the top of the stack.",
+ "hexal.page.links.link/comm/close_transmit": "When drawn after $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Open Transmit/$ I stop transmitting drawn patterns. If either $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Open Transmit/$ or $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Close Transmit/$ are executed by an intermediary caster such as a wisp, they will mishap.",
+
+ "hexal.entry.great_wisps": "Great Wisp Spells",
+ "hexal.page.great_wisps.wisp/consume.0": "Remove a wisp from the stack, and disassemble the wisp. The patterns contained are lost, but the media that it contained can be repurposed if this spell is cast by another wisp.",
+ "hexal.page.great_wisps.wisp/consume.1": "Costs either an $(l:items/amethyst)$(item)Amethyst Crystal/$ if the wisp is owned by you, or half again as much media as the consumed wisp contains if the wisp is owned by another. Repurposing the media is not completely efficient, losing one twentieth of the consumed wisp's reserve in transfer.",
+ "hexal.page.great_wisps.wisp/seon/set": "Bind one of my wisps closer to me; I may only have one bound wisp at a time, but whichever wisp is bound costs significantly less upkeep.",
+ "hexal.page.great_wisps.wisp/seon/get": "Returns my currently bound wisp. (This is not a great spell, I have simply placed it here for convenience.)",
+
+ "hexal.entry.type_comparison": "Type Comparisons",
+ "hexal.page.type_comparison.compare/blocks": "Remove two locations from the stack; if the block at the first is equal to the block at the second, return 1. Otherwise, return 0.",
+ "hexal.page.type_comparison.compare/entities": "Remove two entities from the stack; if the entities are the same type (with items comparing the type of item) return 1. Otherwise, return 0.",
+ "hexal.page.type_comparison.compare/types": "Remove two iota from the stack; if iota are the same type, return 1. Otherwise, return 0. For example, removing 0 and 5 would return 1, as would removing [] and [12], while removing 1 and (1,2,3) would return 0.",
+
+
+
+
+ "hexal.entry.everbook": "Everbook",
+ "hexal.page.everbook.0": "Your Everbook is a strange space that your broken mind can now reach. There are many yous that seem to share this record, worlds and worlds of progress, beginning again and again. Your Everbook can store patterns paired with iotas like an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, though the fragile nature of your mind these days makes it best to route all access to your Everbook through an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$. Any world that you reach enlightenment in, you will have access to the entries you add to it now.",
+ "hexal.page.everbook.everbook/read": "Takes the position of an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, as well as a Pattern as a key, and retrieves the iota at that key from your Everbook, storing it in the given $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$ if able.",
+ "hexal.page.everbook.everbook/write": "Takes the position of an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, as well as a Pattern as a key, and stores the iota in that record at that key to your Everbook at the same key.",
+ "hexal.page.everbook.everbook/delete": "Takes a pattern and removes the entry with that pattern key from your Everbook.",
+ "hexal.page.everbook.everbook/toggle_macro.0": "Takes a pattern and marks that entry of your Everbook as a Pattern that when drawn by your hand will be treated as any other of Nature's patterns.",
+ "hexal.page.everbook.everbook/toggle_macro.1": "When you draw the key of an Everbook entry that has been marked as a Pattern, if that entry is a list Nature will execute each element of the list as it would with $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, though it does not use up an evaluation. Attempting to mark an entry as a Pattern if it is non-existent or infinitely recursive will fail.",
+
+ "hexal.entry.everbook_entries": "Everbook Entries",
+ "hexal.page.everbook_entries.0": "Every page in this entry displays the pattern key for one of the entries of your $(l:hexal:patterns/everbook)$(action)Everbook/$.",
+
+ "hexal.everbook_pattern_entry.header": "Stored Key: %d",
+ "hexal.everbook_pattern_entry.macro_header": "Macro Key: %d"
+}
\ No newline at end of file
diff --git a/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json b/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
new file mode 100644
index 000000000000..e6ba074c2167
--- /dev/null
+++ b/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
@@ -0,0 +1,7 @@
+[
+ {
+ "type": "singleton",
+ "source": "projects/1.18/assets/hexal/hexal/lang/zh_cn.json",
+ "relativePath": "lang/zh_cn.json"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.18/assets/hexal/hexal/lang/zh_cn.json b/projects/1.18/assets/hexal/hexal/lang/zh_cn.json
index 0ab7eb5182f1..47c35ecc542a 100644
--- a/projects/1.18/assets/hexal/hexal/lang/zh_cn.json
+++ b/projects/1.18/assets/hexal/hexal/lang/zh_cn.json
@@ -3,7 +3,7 @@
"entity.hexal.wisp.projectile": "弹射式咒灵",
"entity.hexal.wisp.ticking": "循环式咒灵",
- "entity.hexal.wisp.wandering": "巡航中咒灵",
+ "entity.hexal.wisp.wandering": "游走咒灵",
"hexcasting.mishap.non_player": "%s需由玩家执行",
"hexcasting.mishap.no_wisp": "%s需由咒灵执行",
diff --git a/projects/1.19/assets/hexal/hexal/lang/en_us.json b/projects/1.19/assets/hexal/hexal/lang/en_us.json
new file mode 100644
index 000000000000..b7b06c056422
--- /dev/null
+++ b/projects/1.19/assets/hexal/hexal/lang/en_us.json
@@ -0,0 +1,411 @@
+{
+ "block.hexal.slipway": "Slipway",
+ "block.hexal.mediafied_storage": "Mote Nexus",
+ "block.hexal.relay": "Relay",
+
+ "entity.hexal.wisp.projectile": "Projectile Wisp",
+ "entity.hexal.wisp.ticking": "Cyclic Wisp",
+ "entity.hexal.wisp.wandering": "Wandering Wisp",
+
+
+ "hexcasting.mishap.non_player": "%s expected to be cast by a player.",
+ "hexcasting.mishap.no_wisp": "%s expected to be cast by a wisp.",
+ "hexcasting.mishap.others_wisp": "That wisp is owned by %s, not you.",
+ "hexcasting.mishap.no_links": "%s has no links.",
+ "hexcasting.mishap.self_link": "Tried to link %s to itself.",
+ "hexcasting.mishap.no_bound_storage": "No bound Mote Nexus.",
+ "hexcasting.mishap.storage_unloaded": "Bound Mote Nexus is unloaded.",
+ "hexcasting.mishap.excessive_reproduction": "Wisp %s tried to reproduce excessively; only 1 child per tick.",
+
+ "hexcasting.mishap.invalid_value.class.linkable": "a linkable",
+ "hexcasting.mishap.invalid_value.class.wisp": "a wisp",
+ "hexcasting.mishap.invalid_value.class.consumable_entity": "a consumable entity",
+ "hexcasting.mishap.invalid_value.class.wisp.casting": "a casting wisp",
+ "hexcasting.mishap.invalid_value.class.type.block": "a block type",
+ "hexcasting.mishap.invalid_value.class.type.item": "an item type",
+ "hexcasting.mishap.invalid_value.class.type.entity": "an entity or entity type",
+ "hexcasting.mishap.invalid_value.class.type.block.able": "an item type that has a block",
+ "hexcasting.mishap.invalid_value.class.type.list.double": "a list of numbers",
+ "hexcasting.mishap.invalid_value.class.gate": "a gate",
+ "hexcasting.mishap.invalid_value.class.mote": "a mote",
+ "hexcasting.mishap.invalid_value.class.moteentity.itemitemframe": "a mote, item entity, or item frame",
+ "hexcasting.mishap.invalid_value.moteitemtype": "a mote or item type",
+ "hexcasting.mishap.invalid_value.motemotelist": "a mote or list of motes",
+ "hexcasting.mishap.invalid_value.motemotelistmotelistlist": "a mote, list of motes, or list of lists of motes",
+ "hexcasting.mishap.invalid_value.veclist": "a vector or a list of vectors",
+ "hexcasting.mishap.invalid_value.blockitementityitemframeitem": "a block, item entity, item frame, or mote",
+ "hexcasting.mishap.invalid_value.entity.itemitemframe": "an item entity or item frame",
+ "hexcasting.mishap.invalid_value.int.strictly_positive": "a strictly positive integer",
+ "hexcasting.mishap.invalid_value.crafting_recipe": "a valid crafting recipe",
+ "hexcasting.mishap.invalid_value.mote_duplicated": "each mote to appear only once",
+ "hexcasting.mishap.invalid_value.cant_combine_motes": "two motes that can be combined",
+ "hexcasting.mishap.invalid_value.mote_not_size_one": "a mote with no NBT data or of size one",
+ "hexcasting.mishap.invalid_value.gate.offset": "an offset of at most %f blocks",
+
+
+ "hexcasting.iota.hexal:iota_type": "Iota Type",
+ "hexcasting.iota.hexal:entity_type": "Entity Type",
+ "hexcasting.iota.hexal:item_type": "Item Type",
+ "hexcasting.iota.hexal:gate": "Gate",
+ "hexcasting.iota.hexal:item": "Item",
+
+ "hexal.spelldata.entity_type": "Type",
+ "hexal.spelldata.gate": "Gate %d",
+ "hexal.spelldata.mote": "%s x%d",
+
+ "hexcasting.spell.hexal:type/iota": "Classifier's Purification",
+ "hexcasting.spell.hexal:type/entity": "Physician's Purification",
+ "hexcasting.spell.hexal:type/block_item": "Sorter's Purification",
+ "hexcasting.spell.hexal:type/item_held": "Sorter's Reflection",
+
+ "hexcasting.spell.hexal:raycast/entity/type": "Scout's Exaltation",
+ "hexcasting.spell.hexal:get_entity/type": "Entity Distillation: Type",
+ "hexcasting.spell.hexal:zone_entity/type": "Zone Exaltation: Type",
+ "hexcasting.spell.hexal:zone_entity/not_type": "Zone Exaltation: Not-Type",
+
+ "hexcasting.spell.hexal:current_tick": "Timekeeper's Reflection",
+ "hexcasting.spell.hexal:remaining_evals": "Thanatos' Reflection",
+ "hexcasting.spell.hexal:breath": "Diver's Purification",
+ "hexcasting.spell.hexal:health": "Nurse's Purification",
+ "hexcasting.spell.hexal:armour": "Squire's Purification",
+ "hexcasting.spell.hexal:toughness": "Boxer's Purification",
+ "hexcasting.spell.hexal:light_level": "Lamplighter's Purification",
+
+ "hexcasting.spell.hexal:factorial": "Factorial Purification",
+ "hexcasting.spell.hexal:running/sum": "Running Sum Purification",
+ "hexcasting.spell.hexal:running/mul": "Running Product Purification",
+
+ "hexcasting.spell.hexal:everbook/read": "Mnemosyne's Gambit",
+ "hexcasting.spell.hexal:everbook/write": "Elysium's Gambit",
+ "hexcasting.spell.hexal:everbook/delete": "Lethe's Gambit",
+ "hexcasting.spell.hexal:everbook/toggle_macro": "Brigh's Gambit",
+
+ "hexcasting.spell.hexal:smelt": "Smelt",
+ "hexcasting.spell.hexal:freeze": "Freeze",
+ "hexcasting.spell.hexal:falling_block": "Falling Block",
+ "hexcasting.spell.hexal:place_type": "Place Block II",
+ "hexcasting.spell.hexal:particles": "Particles",
+
+ "hexcasting.spell.hexal:interop/fabric_only/phase_block": "Phase Block",
+
+ "hexcasting.spell.hexal:wisp/summon/projectile": "Summon Projectile Wisp",
+ "hexcasting.spell.hexal:wisp/summon/ticking": "Summon Cyclic Wisp",
+ "hexcasting.spell.hexal:wisp/self": "Identity Reflection",
+ "hexcasting.spell.hexal:wisp/media": "Reservoir Reflection",
+ "hexcasting.spell.hexal:wisp/hex": "Manager's Purification",
+ "hexcasting.spell.hexal:wisp/owner": "Allegiance Distillation",
+ "hexcasting.spell.hexal:wisp/move/target/set": "Pathfinder's Gambit",
+ "hexcasting.spell.hexal:wisp/move/target/get": "Pathfinder's Reflection",
+ "hexcasting.spell.hexal:wisp/move/speed/set": "Haste",
+ "hexcasting.spell.hexal:wisp/move/speed/get": "Speedometer's Reflection",
+ "hexcasting.spell.hexal:wisp/trigger/tick": "Delay Wisp",
+ "hexcasting.spell.hexal:wisp/trigger/comm": "Listen",
+ "hexcasting.spell.hexal:wisp/trigger/move": "Wander",
+ "hexcasting.spell.hexal:wisp/consume": "Consume Wisp",
+ "hexcasting.spell.hexal:wisp/seon/set": "Bind Wisp",
+ "hexcasting.spell.hexal:wisp/seon/get": "Familiar's Reflection",
+ "hexcasting.spell.hexal:wisp/transfer/allow": "Allow Transfer",
+ "hexcasting.spell.hexal:wisp/transfer/disallow": "Disallow Transfer",
+ "hexcasting.spell.hexal:wisp/transfer/others/allow": "Allow Transfer Others",
+ "hexcasting.spell.hexal:wisp/transfer/others/disallow": "Disallow Transfer Others",
+
+ "hexcasting.spell.hexal:get_entity/wisp": "Entity Purification: Wisp",
+ "hexcasting.spell.hexal:zone_entity/wisp": "Zone Distillation: Wisp",
+ "hexcasting.spell.hexal:zone_entity/not_wisp": "Zone Distillation: Non-Wisp",
+
+ "hexcasting.spell.hexal:link": "Link",
+ "hexcasting.spell.hexal:link/others": "Link Others",
+ "hexcasting.spell.hexal:link/unlink": "Unlink",
+ "hexcasting.spell.hexal:link/unlink/others": "Unlink Others",
+ "hexcasting.spell.hexal:link/get": "Phonebook Purification",
+ "hexcasting.spell.hexal:link/get_index": "Recognition Purification",
+ "hexcasting.spell.hexal:link/num": "Popularity Reflection",
+
+ "hexcasting.spell.hexal:link/comm/send": "Send Iota",
+ "hexcasting.spell.hexal:link/comm/read": "Recitation Reflection",
+ "hexcasting.spell.hexal:link/comm/num": "Postmaster's Reflection",
+ "hexcasting.spell.hexal:link/comm/clear": "Unclogging Gambit",
+ "hexcasting.spell.hexal:link/comm/open_transmit": "Open Transmit",
+ "hexcasting.spell.hexal:link/comm/close_transmit": "Close Transmit",
+
+ "hexcasting.spell.hexal:gate/make": "Gate's Reflection",
+ "hexcasting.spell.hexal:gate/mark": "Gate's Opening",
+ "hexcasting.spell.hexal:gate/unmark": "Gate's Dismissal",
+ "hexcasting.spell.hexal:gate/mark/num/get": "Marked Purification",
+ "hexcasting.spell.hexal:gate/mark/get": "Marked Distillation",
+ "hexcasting.spell.hexal:gate/close": "Gate's Closing",
+
+ "hexcasting.spell.hexal:mote/storage/bind": "Bind Storage",
+ "hexcasting.spell.hexal:mote/storage/bind/temp": "Bind Storage - Temporary",
+ "hexcasting.spell.hexal:mote/contained_type/get": "Stocktake Reflection",
+ "hexcasting.spell.hexal:mote/contained/get": "Stocktake Purification",
+ "hexcasting.spell.hexal:mote/storage/remaining_capacity/get": "Capacity Reflection",
+ "hexcasting.spell.hexal:mote/storage/contains": "Containment Distillation",
+ "hexcasting.spell.hexal:mote/make": "Mediafy Item",
+ "hexcasting.spell.hexal:mote/return": "Return Item",
+ "hexcasting.spell.hexal:mote/count/get": "Weighing Purification",
+ "hexcasting.spell.hexal:mote/combine": "Stacking Distillation",
+ "hexcasting.spell.hexal:mote/combinable": "Stacking Distillation II",
+ "hexcasting.spell.hexal:mote/split": "Splitting Gambit",
+ "hexcasting.spell.hexal:mote/storage/get": "Depot Purification",
+ "hexcasting.spell.hexal:mote/storage/set": "Depot Gambit",
+ "hexcasting.spell.hexal:mote/craft": "Craft",
+ "hexcasting.spell.hexal:mote/villager/level/get": "Seniority Purification",
+ "hexcasting.spell.hexal:mote/trade/get": "Offering Purification",
+ "hexcasting.spell.hexal:mote/trade": "Trade",
+ "hexcasting.spell.hexal:mote/use_on": "Use Item On",
+
+ "hexcasting.spell.hexal:tick": "Accelerate",
+
+
+
+ "hexcasting.spell.book.hexal:light_level": "Lamplighter's Prfn.",
+
+ "hexcasting.spell.book.hexal:running/sum": "Running Sum Prfn.",
+ "hexcasting.spell.book.hexal:running/mul": "Running Product Prfn.",
+
+ "hexcasting.spell.book.hexal:get_entity/wisp": "Entity Prfn.: Wisp",
+ "hexcasting.spell.book.hexal:zone_entity/wisp": "Zone Dstl.: Wisp",
+ "hexcasting.spell.book.hexal:zone_entity/not_wisp": "Zone Dstl.: Non-Wisp",
+
+ "hexcasting.spell.book.hexal:mote/storage/bind/temp": "Bind Storage - Temp.",
+
+
+
+ "hexal.entry.slipways": "Slipways",
+ "hexal.page.slipways": "I have heard tales of some geodes in which glowing portals called slipways lie. These slipways are regularly depicted with glowing sparks surrounding them that bear an incredible resemblance to the $(l:hexal:patterns/spells/wisps)$(thing)wisps/$ that I have heard tell of, which may be a connection to look into.",
+
+ "hexal.entry.relay": "Relay",
+ "hexal.page.relay.0": "Often I wish to $(l:hexal:patterns/spells/links#hexal:link)$(action)link/$ together multiple $(l:hexal:patterns/spells/wisps)$(thing)wisps/$, so that they can share media and information over long distances. However running long chains of wisps to transfer these over great distances is inconvenient, and has great upkeep costs. To resolve this issue I have made Relays. Since they are solid blocks rather than media constructs themselves, they are able to maintain the links without any upkeep costs at all.",
+ "hexal.page.relay.1": "Any relays connected together will form a network, with any wisps connected to a relay network able to share media between each other as if they were directly connected. Further, any iota sent to one relay in the network is passed on to every other non-relay connected to the network. Relays have a range of 32 blocks (this means two relays can connect at a distance of 64 blocks). The colour of a network's links can be changed by right clicking on any relay with a colouriser.",
+ "hexal.page.relay.2": "Relays have no owner, so if you want your wisps to $(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)$(action)transfer media/$ with them you must specifically allow them to do so.",
+
+ "hexal.entry.hexal_basics": "Hexal Basic Patterns",
+ "hexal.page.hexal_basics.current_tick": "Adds a number to the stack which seems to be related to how Nature represents time; If I cast the pattern, then cast the same pattern a second later, the number it adds has increased by 20.",
+ "hexal.page.hexal_basics.remaining_evals": "Adds the number of evaluations a hex is still capable of to the stack. This is reduced by $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$.",
+ "hexal.page.hexal_basics.breath": "Removes a Living entity from the stack and returns how much breath it has left (i.e., how close it is to drowning).",
+ "hexal.page.hexal_basics.health": "Removes a Living entity from the stack and returns how much health it has left (i.e., how close it is to dying).",
+ "hexal.page.hexal_basics.armour": "Removes a Living entity from the stack and returns how much armour it has.",
+ "hexal.page.hexal_basics.toughness": "Removes a Living entity from the stack and returns how much toughness it has (another property of armour).",
+ "hexal.page.hexal_basics.light_level": "Removes a position vector from the stack and returns the light level at that position.",
+
+ "hexal.entry.hexal_maths": "Hexal Maths",
+ "hexal.page.hexal_maths.factorial": "Takes a number from the stack and computes its factorial, for example inputting 4 would return 4*3*2*1=24.",
+ "hexal.page.hexal_maths.running/sum": "Takes a list from the stack and computes its running sum, for example inputting [1,2,5] would return [1,3,8].",
+ "hexal.page.hexal_maths.running/mul": "Takes a list from the stack and computes its running product, for example inputting [1,2,5] would return [1,2,10].",
+
+ "hexal.entry.hexal_spell": "Hexal Spells",
+ "hexal.page.hexal_spell.smelt.0": "Remove a location, item entity, or mote from the stack, then either smelt the block at the location or smelt all the items in the item entity or mote.",
+ "hexal.page.hexal_spell.smelt.1": "Costs three quarters of an $(l:items/amethyst)$(item)Amethyst Dust/$ per item smelted (i.e. three quarters of an $(l:items/amethyst)$(item)Amethyst Dust/$ for smelting a block, 6 $(l:items/amethyst)$(item)Amethyst Dust/$ to smelt a stack of 8 items.)",
+ "hexal.page.hexal_spell.freeze": "Freezes the block at a block location. For example, turns water into ice, and ice into packed ice. Costs one $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.hexal_spell.falling_block": "Remove a location from the stack, and force the block there to fall as if it were sand or gravel. Costs one and a half $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.hexal_spell.place_type": "Accepts an item type or mote and a location, and attempts to place a block of that item type at that location. If a mote was passed it will instead place from the record referenced by that mote. Costs an eighth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.hexal_spell.particles": "Accepts a location or a list of locations, and either creates a particle at the location, or creates lines of particles between the locations in the list. Costs two thousandths of an $(l:items/amethyst)$(item)Amethyst Dust/$ per location.",
+
+ "hexal.entry.fabric_only_hexal": "Fabric-Only Hexal Spells",
+ "hexal.page.fabric_only_hexal.interop/fabric_only/phase_block": "Takes a position and a number, and phases the block at that position out for that many seconds. Costs one ten-thousandth of an $(l:items/amethyst)$(item)Amethyst Dust/$ times the square of the time to phase out for.",
+
+ "hexal.entry.wisps": "Wisps",
+ "hexal.page.wisps.0": "I have discovered a way to create constructs from the media itself, visible to others and able to move and act somewhat on their own. They are able to cast hexes in my place, similar to how a $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ evaluates patterns. They do take some of my attention to operate this however, and if too many try and execute at once I will only be able to run some of them, leaving the rest for the next instant.",
+ "hexal.page.wisps.1": "When they are created I assign them a 'reservoir' of media that they have access to, which is taken from me and used to form the wisp. A wisp uses up part of its reservoir simply existing, and when it evaluates the pattern list it is carrying any costs incurred are removed from its reservoir. All wisps seem to take three $(l:items/amethyst)$(item)Amethyst Dust/$ to summon, in addition to whatever media is used for their reservoir.",
+ "hexal.page.wisps.2": "Wisps are punished severely for attempting to hold onto another caster's truename, incurring a 20 times increase in the wisp's media upkeep per truename iota in any of the wisp's iota storage mechanisms.",
+ "hexal.page.wisps.wisp/summon/projectile.0": "This wisp is summoned and launched like an arrow, casting its hex on whatever it hits. The initial stack when it executes will be a reference to itself, then a reference to what it hit.",
+ "hexal.page.wisps.wisp/summon/projectile.1": "This could be a block position or an entity reference. The first vector accepted is the location the wisp will be summoned, while the direction of the second is the direction the wisp will be launched, and the second's magnitude seems to affect the wisp's velocity. The cost of the spell increases with the squared magnitude of velocity. The number accepted determines the wisp's reservoir in $(l:items/amethyst)$(item)Amethyst Dust/$. It loses approximately 3 tenths of an $(l:items/amethyst)$(item)Amethyst Dust/$ of media every second once summoned, and has a range of influence of 4 blocks.",
+ "hexal.page.wisps.wisp/summon/ticking.0": "Similar to Summon Projectile Wisp, but with only one vector input for the position to summon the wisp. Cyclic wisps are unmoving once summoned, instead executing their hex up to 20 times each second.",
+ "hexal.page.wisps.wisp/summon/ticking.1": "The first time it casts the stack will start with a reference to itself, from which point it will always start with the stack and ravenmind in the state they finished on the last cast. This wisp has a less stable form making it lose significantly more media every second, losing approximately seven tenths of an $(l:items/amethyst)$(item)Amethyst Dust/$ per second once summoned. It has a range of influence of 8 blocks.",
+ "hexal.page.wisps.wisp/self": "Add a reference to the casting wisp to the stack. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
+ "hexal.page.wisps.wisp/media": "Add the amount of media in the wisp's reservoir to the stack. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
+ "hexal.page.wisps.wisp/hex": "Removes a reference to a wisp from the stack, and replaces it with the wisp's contained hex. Must be a wisp you summoned, or a wisp that has $(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)allowed$(action) transfer with the caster or caster's owner.",
+ "hexal.page.wisps.wisp/owner": "Removes a reference to a wisp and an entity from the stack, and returns true if that entity owns that wisp, and false otherwise.",
+ "hexal.page.wisps.wisp/move/target/set": "Removes a position vector from the stack; The Cyclic Wisp that executed this pattern will move in a straight line towards that position (colliding with terrain in its path) until it reaches it.",
+ "hexal.page.wisps.wisp/move/target/get": "Adds to the stack the position vector that the executing Cyclic Wisp is currently moving towards.",
+ "hexal.page.wisps.wisp/move/speed/set": "Removes a number from the stack, and sets the executing Cyclic Wisp's maximum speed to that number.",
+ "hexal.page.wisps.wisp/move/speed/get": "Gets the executing Cyclic Wisp's current maximum speed.",
+ "hexal.page.wisps.wisp/transfer/allow": "When two wisps are $(l:hexal:patterns/spells/links)$(thing)linked/$ together, they transfer media between each other until they are balanced. By default this only happens between wisps with the same owner. This takes an index, and explicitly allows the wisp to exchange media with the linkable at that index.",
+ "hexal.page.wisps.wisp/transfer/disallow": "Correspondingly, this takes an index and disallows the wisp from exchanging media with the linkable at that index.",
+ "hexal.page.wisps.wisp/transfer/others/allow": "This takes a wisp that you own and an index, and allows the wisp to exchange media with the linkable at that index.",
+ "hexal.page.wisps.wisp/transfer/others/disallow": "This takes a wisp that you own and an index, and disallows the wisp from exchanging media with the linkable at that index.",
+ "hexal.page.wisps.get_entity/wisp": "Transform the position on the stack into the wisp at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).",
+ "hexal.page.wisps.zone_entity/wisp": "Take a position and maximum distance on the stack, and combine them into a list of wisps near the position.",
+ "hexal.page.wisps.zone_entity/not_wisp": "Take a position and maximum distance on the stack, and combine them into a list of non-wisp entities near the position.",
+ "hexal.page.wisps.wisp/trigger/tick": "Removes an integer from the stack, then delays the wisp's next cast until at least that many twentieth's of a second have passed. This and other triggers like it will halve the wisp's upkeep cost while it isn't casting.",
+ "hexal.page.wisps.wisp/trigger/comm": "The wisp's next cast will not occur until it has received at least one $(l:hexal:patterns/spells/links#hexal:link/comm/send)$(action)communication/$.",
+ "hexal.page.wisps.wisp/trigger/move": "The wisp's next cast will not occur until it has reached the position it is $(l:hexal:patterns/spells/wisps#hexal:wisp/move/target/set)$(action)navigating/$ towards.",
+
+ "hexal.entry.links": "Links",
+ "hexal.page.links.0": "These patterns outline a system that I have found for communicating information from one $(l:hexal:patterns/spells/wisps)$(thing)wisp/$ to another, among other things. There are a number of patterns related to creating these links, and a number of patterns related to sending and receiving iotas over a link once it is created. A wisp can have any number of links active, with each costing a negligible amount of media to maintain each twentieth of a second.",
+ "hexal.page.links.1": "The links of a given linkable are indexed by the order they are created, with this number used by a number of patterns. \"Linkable\" is not its own type, but a shorthand for any type that can be coerced into a linkable (e.g. Entity -> Linkable entities, Vec -> Linkable blocks, ...). Links can span up to double the sum of the two linkable's ranges. To connect linkables over truly vast distances I would do well to look into building some $(l:hexal:items/relay)$(item)Relays/$.",
+ "hexal.page.links.link": "Links the caster to the entity removed from the stack, which must be linkable. This costs one $(l:items/amethyst)$(item)Amethyst Shard/$.",
+ "hexal.page.links.link/others": "May be evaluated by any casting instrument. Links two entities, which must be linkable. This costs one $(l:items/amethyst)$(item)Amethyst Shard/$.",
+ "hexal.page.links.link/unlink": "Removes the link at the given index from the caster's links. This costs two $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.links.link/unlink/others": "Takes two linkables and unlinks them if they are linked. This costs two $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.links.link/get": "Removes an index from the stack, and adds the entity connected to the link at that index to the stack.",
+ "hexal.page.links.link/get_index": "Removes an entity from the stack, and adds the index to the link to that entity to the stack (or -1 if the caster isn't linked to that entity).",
+ "hexal.page.links.link/num": "Adds the number of links to the wisp to the stack.",
+ "hexal.page.links.link/comm/send": "Removes an iota from the stack, then removes an index from the stack and sends the iota along the link at the given index. This costs one hundredth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.links.link/comm/read": "When something receives an iota along a link it is added to a queue. This pattern adds the first iota in the queue to the stack, removing it from the queue.",
+ "hexal.page.links.link/comm/num": "Adds to the stack the number of unread iota in the caster's received iota queue.",
+ "hexal.page.links.link/comm/clear": "Removes all unread iota from the caster's received iota queue.",
+ "hexal.page.links.link/comm/open_transmit": "Similar to $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$, until drawing a $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Close Transmit/$ all patterns I draw are sent along the link whose index is at the top of the stack.",
+ "hexal.page.links.link/comm/close_transmit": "When drawn after $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Open Transmit/$ I stop transmitting drawn patterns. If either $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Open Transmit/$ or $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Close Transmit/$ are executed by an intermediary caster such as a wisp, they will mishap.",
+
+ "hexal.entry.tick": "Accelerate",
+ "hexal.page.tick.tick.0": "Causes the block at the passed vector to perform its normal actions faster in the instant that this spell is cast.",
+ "hexal.page.tick.tick.1": "Casting it costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$, plus a thousandth of an $(l:items/amethyst)$(item)Amethyst Dust/$ for each time it has previously been cast on that block in this hex.",
+
+ "hexal.entry.gates": "Gates",
+ "hexal.page.gates.0": "Gates are the latest in my long line of experimentation with breaking space to connect distant points and allow instantaneous travel. What gates allow me to do, that none of my previous attempts have succeeded at, is to do it $(o)efficiently$(). There are three varieties of gates that I have learned how to construct, all of which take a large amount of media to burn into reality, but are significantly cheaper to operate afterwards.",
+ "hexal.page.gates.1": "Location Anchored Gates are bound to a specific position in the world, and send all that move through them to that position. Entity Anchored Gates are bound to a being that inhabits the world, and send those moving through them to the position of that being (plus an offset, chosen when burning in the gate).",
+ "hexal.page.gates.2": "Drifting Gates are not bound at all, and can be used to send entities anywhere, however they lose efficiency as a result, and can only send entities to places that are in my ambit. When a gate is burnt in I will obtain on my stack a reference to that gate. With that gate reference, I can mark entities with that gate, and I can close the gate, which sends all entities marked with that gate to the gate's destination. Note that closing a gate doesn't use it up; once I have acquired a gate iota I can use it in perpetuity.",
+ "hexal.page.gates.gate/make": "Adds a new gate iota to the stack. Any copy of this iota will point to the same numbered gate. Costs 32 $(l:items/amethyst)$(item)Charged Amethyst/$. If passed null, makes a Drifting Gate. If passed a vector, makes a Location Anchored Gate, If passed a vector and an entity, makes an Entity Anchored Gate.",
+ "hexal.page.gates.gate/mark": "Consumes a gate iota and an entity. Marks that entity to be teleported the next time that gate is closed. Costs one twentieth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.gates.gate/unmark": "Consumes a gate iota and an entity. Unmarks that entity so that if it was marked with $(l:hexal:patterns/spells/gates#hexal:gate/mark)$(action) Gate's Opening/$ it will no longer be teleported the next time that gate is closed.",
+ "hexal.page.gates.gate/mark/num/get": "Consumes a gate iota, returns how many entities are marked by that gate.",
+ "hexal.page.gates.gate/mark/get": "Consumes a gate iota and an entity, returns whether that entity is marked by that gate.",
+ "hexal.page.gates.gate/close": "Consumes a non-drifing gate iota, or a drifting gate iota and a position. Transports all the entities marked with the passed gate to the stored or given position, as relevant. Costs half an $(l:items/amethyst)$(item)Amethyst Shard/$, plus an $(l:items/amethyst)$(item)Amethyst Dust/$ per metre transported per entity, if the gate was drifting.",
+
+ "hexal.entry.motes": "Motes",
+ "hexal.page.motes.explanation.0": "This entry deals with bringing items into the media, making them referencable, countable, bringing order to them and to me and to my mind and-. A mediafied item iota (known as a mote) that has been added to the stack references a specific mote record in a Mote Nexus, since without something holding the thought-pattern of the item to this world it will wither away -away like my cognition is flensing-.",
+ "hexal.page.motes.explanation.1": "Any duplicate of that first mote iota referencing a record references the same record, and any change to one affects them all for they all point to the one and only in the media. Splitting and merging and crafting and trading all affect all affect all-.",
+ "hexal.page.motes.explanation.2": "A Mote Nexus is limited in some ways, but only some. It can contain 1023 different records, but each record can store items innumerable. I have yet to find any limit, I can merge and merge and merge forever and the record keeps growing and growing and growing...",
+ "hexal.page.motes.mediafed_storage_recipe": "The Mote Nexus is built from the mind of a cartographer endlessly mapping the contents of the $(item)Shulker Box/$ that it has been flayed into.",
+ "hexal.page.motes.mote/storage/bind": "Target a Mote Nexus block in the world and bind yourself to it, meaning all items you mediafy will be added to that nexus' capacity. Targeting any other block will unbind you from your currently bound nexus. Costs 32 $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.motes.mote/storage/bind/temp": "Target a Mote Nexus block in the world and bind to it for the remainder of this cast, temporarily overriding your primary binding. Costs one thousandth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.motes.mote/contained_type/get": "Gets all the types of motes contained in the currently bound Mote Nexus.",
+ "hexal.page.motes.mote/contained/get": "Gets all the mote records from the currently bound Mote Nexus that match the passed item type or could be combined with the passed mote.",
+ "hexal.page.motes.mote/storage/remaining_capacity/get": "Gets the remaining capacity of the bound Mote Nexus.",
+ "hexal.page.motes.mote/storage/contains": "Returns true if the Mote Nexus at the given position contains a mote of the given type, or that would stack with the given mote, and false otherwise.",
+ "hexal.page.motes.mote/make": "Convert an item in the world (either an item entity or an item frame) into a mote on your stack. If passed an existing mote instead adds the items from the entity to the mote. Mediafying an item costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.motes.mote/return": "Returns all the items from a mote to the world at the location of your choosing. If passed a number returns at most that many items. Costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.motes.mote/count/get": "Accepts a mote and returns the number of items in the record referenced by that mote.",
+ "hexal.page.motes.mote/combine": "Combines two motes into one, merging the mote records they point to. Any pointers to the second mote will become null, any pointers to the first will remain. This can make motes holding many more items than I could carry in a stack naturally!",
+ "hexal.page.motes.mote/combinable": "Returns true if the first mote can be combined with the items in the second argument (which can be a mote, item entity, or item frame), and false otherwise.",
+ "hexal.page.motes.mote/split": "Splits the specified number of items off of the passed mote, creating a new mote pointing to a new mote record.",
+ "hexal.page.motes.mote/storage/get": "Get the position of the Mote Nexus that contains the passed mote.",
+ "hexal.page.motes.mote/storage/set": "Move the record referenced by the passed mote to the Mote Nexus at the passed position. This returns a new mote pointing to that record, and invalidates all previous motes pointing to that record.",
+ "hexal.page.motes.mote/craft.0": "Takes a mote, list of motes, or list of list of motes. returns a list containing the results of crafting with those items. For example, the input Stone x128 would return [Stone Button x128].",
+ "hexal.page.motes.mote/craft.1": "For more complex crafts, inserting nulls to space items properly will be required. A diamond pickaxe for example would require [[Diamond x2, Diamond x2, Diamond x2], [null, Stick x2], [null, Stick x2]] to get [Diamond Pickaxe x2]. Costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.motes.mote/villager/level/get": "Accepts a villager, returns a number representing that villager's seniority and skill at their craft.",
+ "hexal.page.motes.mote/trade/get.0": "Accepts a villager and returns all of the trades that villager is offering. This is a list of lists of lists. Each trade comprises two lists, the cost, and the returned items. The returned items is a list containing the type of item, and the number of items.",
+ "hexal.page.motes.mote/trade/get.1": "The cost is a list of one or two pairs of item and number of items required by the villager for the trade to be accepted. For example, one trade offer could be [[[Emerald, 1]], [Redstone, 1]].",
+ "hexal.page.motes.mote/trade.0": "Accepts a villager, a list of motes to trade with to villager, and optionally an int for which of that villager's trades to attempt. (int? above means that you can pass 2 or 3 arguments, the optional 3rd being an int).",
+ "hexal.page.motes.mote/trade.1": "If no trade number was passed, it will try each of the villager's trade until finding one that accepts the passed items. If a trade number was passed it will skip straight to using that trade. It will then repeat that trade for as long as it has enough items and the villager is still willing to trade. It will then return the items the villager traded away as a mote to the stack.",
+ "hexal.page.motes.mote/trade.2": "The villager will find this trade to be a learnable experience as it would if trading with you directly, and will improve its skills and trade offerings commensurately. Costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "hexal.page.motes.mote/use_on": "Accepts a mote, and either an entity, or a target block and a normal vector. Uses the item on the entity/block. The mote must either only have one item in it, or the items contained must be extremely simple (no NBT data).",
+
+ "hexal.entry.great_wisps": "Great Wisp Spells",
+ "hexal.page.great_wisps.wisp/consume.0": "Remove a wisp from the stack, and disassemble the wisp. The patterns contained are lost, but the media that it contained can be repurposed if this spell is cast by another wisp.",
+ "hexal.page.great_wisps.wisp/consume.1": "Costs either an $(l:items/amethyst)$(item)Amethyst Shard/$ if the wisp is owned by you or has $(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)allowed$(action) transfer with the caster or caster's owner, or half again as much media as the consumed wisp contains if the wisp is owned by another and has now allowed it. Repurposing the media is not completely efficient, losing one twentieth of the consumed wisp's reserve in transfer.",
+ "hexal.page.great_wisps.wisp/seon/set": "Bind one of my wisps closer to me; I may only have one bound wisp at a time, but whichever wisp is bound costs significantly less upkeep and increased range.",
+ "hexal.page.great_wisps.wisp/seon/get": "Returns my currently bound wisp. A new wisp can only be bound when this returns null. (This is not a great spell, I have simply placed it here for convenience.)",
+
+ "hexal.entry.types": "Types",
+ "hexal.page.types.type/iota": "Remove an iota from the stack, and adds the type of that iota to the stack.",
+ "hexal.page.types.type/entity": "Remove an entity from the stack, and adds the type of the entity at that location to the stack.",
+ "hexal.page.types.type/block_item": "Remove a location, $(l:hexal:hexal.entry.motes)$(item)mote/$, item entity, or item frame from the stack, and adds the type of the block at that location, or type of that item, to the stack (e.g. Grass, Stone, Stick, etc.).",
+ "hexal.page.types.type/item_held": "Adds the type of the item in the caster's offhand to the stack if there is one present, or the type of the casting hand otherwise.",
+
+ "hexal.page.types.raycast/entity/type": "Remove an entity type or item type, a position, and a direction from the stack, and returns an entity or item entity of that type at that position if one exists.",
+ "hexal.page.types.get_entity/type": "Remove an entity type or item type and a position from the stack, and returns an entity or item entity of that type at that position if one exists.",
+ "hexal.page.types.zone_entity/type": "Remove an entity type or item type, a position, and a radius from the stack, and returns a list of all entities or item entities of that type within that radius of that position.",
+ "hexal.page.types.zone_entity/not_type": "Remove an entity type or item type, a position, and a radius from the stack, and returns a list of all entities or item entities not of that type within that radius of that position.",
+
+
+ "hexal.entry.everbook": "Everbook",
+ "hexal.page.everbook.0": "Your Everbook is a strange space that your broken mind can now reach. There are many yous that seem to share this record, worlds and worlds of progress, beginning again and again. Your Everbook can store patterns paired with iotas like an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, though the fragile nature of your mind these days makes it best to route all access to your Everbook through an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$. Any world that you reach enlightenment in, you will have access to the entries you add to it now.",
+ "hexal.page.everbook.everbook/read": "Takes the position of an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, as well as a Pattern as a key, and retrieves the iota at that key from your Everbook, storing it in the given $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$ if able.",
+ "hexal.page.everbook.everbook/write": "Takes the position of an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, as well as a Pattern as a key, and stores the iota in that record at that key to your Everbook at the same key.",
+ "hexal.page.everbook.everbook/delete": "Takes a pattern and removes the entry with that pattern key from your Everbook.",
+ "hexal.page.everbook.everbook/toggle_macro.0": "Takes a pattern and marks that entry of your Everbook as a Pattern that when drawn by your hand will be treated as any other of Nature's patterns.",
+ "hexal.page.everbook.everbook/toggle_macro.1": "When you draw the key of an Everbook entry that has been marked as a Pattern, if that entry is a list Nature will execute each element of the list as it would with $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, though it does not use up an evaluation. Attempting to mark an entry as a Pattern if it is non-existent or infinitely recursive will fail.",
+
+ "hexal.entry.everbook_entries": "Everbook Entries",
+ "hexal.page.everbook_entries.0": "Every page in this entry displays the pattern key for one of the entries of your $(l:hexal:patterns/everbook)$(action)Everbook/$.",
+
+ "hexal.everbook_pattern_entry.header": "Stored Key: %d",
+ "hexal.everbook_pattern_entry.macro_header": "Macro Key: %d",
+
+
+
+ "_comment": "Config Entries",
+ "text.autoconfig.hexal.title": "Hexal Configs",
+ "text.autoconfig.hexal.category.common": "Common",
+ "text.autoconfig.hexal.category.client": "Client",
+ "text.autoconfig.hexal.category.server": "Server",
+
+ "text.autoconfig.hexal.option.server.terrainGeneration": "Terrain Generation",
+ "text.autoconfig.hexal.option.server.generateSlipwayGeodes": "Should generate Slipway Geodes?",
+
+ "text.autoconfig.hexal.option.server.miscSpells": "Miscellaneous Spells",
+ "text.autoconfig.hexal.option.server.miscSpells.fallingBlockCost": "Falling Block Cost",
+ "text.autoconfig.hexal.option.server.miscSpells.freezeCost": "Freeze Cost",
+ "text.autoconfig.hexal.option.server.miscSpells.particlesCost": "Particles Cost per Vector",
+ "text.autoconfig.hexal.option.server.miscSpells.placeTypeCost": "Place Type Cost",
+ "text.autoconfig.hexal.option.server.miscSpells.smeltCost": "Smelt Cost per Item",
+
+ "text.autoconfig.hexal.option.server.wispSpells": "Wisp Spells",
+ "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost": "Move Speed Set Base Cost",
+ "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[0]": "Cost to increase the movement speed of a wisp by 1.",
+ "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[1]": "This is the base cost, with greater increases being quadratically based on this.",
+ "text.autoconfig.hexal.option.server.wispSpells.summonTickingWispCost": "Summon Cyclic Wisp Cost",
+ "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispCost": "Summon Projectile Wisp Cost per Velocity Squared",
+ "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispMinCost": "Summon Cyclic Wisp Minimum Cost",
+
+ "text.autoconfig.hexal.option.server.wispUpkeep": "Wisp Upkeep",
+ "text.autoconfig.hexal.option.server.wispUpkeep.tickingWispUpkeepPerTick": "Cyclic Wisp Upkeep per Tick",
+ "text.autoconfig.hexal.option.server.wispUpkeep.projectileWispUpkeepPerTick": "Projectile Wisp Upkeep per Tick",
+ "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount": "Untriggered Wisp Upkeep Discount",
+ "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[0]": "The upkeep cost of untriggered cyclic wisps is multiplied by this number.",
+ "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[1]": "Bounded from 0.0 to 1.0.",
+ "text.autoconfig.hexal.option.server.wispUpkeep.linkUpkeepPerTick": "Link Upkeep per Tick",
+ "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor": "Bound Wisp Discount Factor",
+ "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[0]": "The upkeep cost of bound wisps is divided by this number.",
+ "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[1]": "Bounded from 2.0 to 200.0.",
+ "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor": "Storing Player Cost Scale Factor",
+ "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[0]": "The multiplicative cost increase of wisps containing an iota of another player.",
+ "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[1]": "Bounded from 1.0 to 200.0.",
+
+ "text.autoconfig.hexal.option.server.linkSpells": "Link Spells",
+ "text.autoconfig.hexal.option.server.linkSpells.linkCost": "Link Cost",
+ "text.autoconfig.hexal.option.server.linkSpells.sendIotaCost": "Send Iota Cost",
+ "text.autoconfig.hexal.option.server.linkSpells.unlinkCost": "Unlink Cost",
+
+ "text.autoconfig.hexal.option.server.gateSpells": "Gate Spells",
+ "text.autoconfig.hexal.option.server.gateSpells.makeGateCost": "Make Gate Cost",
+ "text.autoconfig.hexal.option.server.gateSpells.markGateCost": "Mark Gate Cost",
+ "text.autoconfig.hexal.option.server.gateSpells.closeGateCost": "Close Gate Cost",
+
+ "text.autoconfig.hexal.option.server.itemSpells": "Item Spells",
+ "text.autoconfig.hexal.option.server.itemSpells.bindStorageCost": "Bind Storage Cost",
+ "text.autoconfig.hexal.option.server.itemSpells.bindTemporaryStorageCost": "Bind Temporary Storage Cost",
+ "text.autoconfig.hexal.option.server.itemSpells.makeItemCost": "Make Item Cost",
+ "text.autoconfig.hexal.option.server.itemSpells.returnItemCost": "Return Item Cost",
+ "text.autoconfig.hexal.option.server.itemSpells.craftItemCost": "Craft Item Cost",
+ "text.autoconfig.hexal.option.server.itemSpells.tradeItemCost": "Trade Item Cost",
+ "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned": "Maximum Items Returned",
+ "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[0]": "Maximum number of items that can be returned by Return Item.",
+ "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[1]": "Bounded from 640 to 64,000.",
+ "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage": "Maximum Num. Records in Mote Nexus",
+ "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[0]": "Maximum number of records that can be stored in a Mote Nexus.",
+ "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[1]": "Bounded from 128 to 16,384.",
+
+
+ "text.autoconfig.hexal.option.server.greatSpells": "Great Spells",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost": "Consume Own Wisp Cost",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[0]": "Cost to consume a wisp you own,",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[1]": "or that doesn't fight back for some other reason.",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia": "Consume Other's Wisp Cost per Media",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[0]": "Cost to consume a wisp that fights back, this number is multiplied by",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[1]": "the media possessed by the wisp you are attempting to consume.",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[2]": "Bounded from 1.0 to 20.0.",
+ "text.autoconfig.hexal.option.server.greatSpells.seonWispSetCost": "Bind Wisp Cost",
+ "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost": "Tick Constant Cost",
+ "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost.@Tooltip": "Constant cost to tick a block. Always applies.",
+ "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked": "Tick Cost per Time Ticked",
+ "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[0]": "Cost to tick a block per time that block has already been ticked.",
+ "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[1]": "Added to the constant cost above.",
+ "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb": "Tick Inverse Probability of Random Ticking",
+ "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[0]": "The inverse probability of tick randomly ticking a block.",
+ "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[1]": "Higher numbers make random ticks less likely, lower numbers make them more likely.",
+ "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[2]": "Bound from 600 to 2100."
+}
diff --git a/projects/1.19/assets/hexal/hexal/lang/zh_cn.json b/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
new file mode 100644
index 000000000000..064383ac662b
--- /dev/null
+++ b/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
@@ -0,0 +1,411 @@
+{
+ "block.hexal.slipway": "质道",
+ "block.hexal.mediafied_storage": "物元枢纽",
+ "block.hexal.relay": "继链器",
+
+ "entity.hexal.wisp.projectile": "弹射式咒灵",
+ "entity.hexal.wisp.ticking": "循环式咒灵",
+ "entity.hexal.wisp.wandering": "游走咒灵",
+
+
+ "hexcasting.mishap.non_player": "%s需由玩家执行",
+ "hexcasting.mishap.no_wisp": "%s需由咒灵执行",
+ "hexcasting.mishap.others_wisp": "该咒灵为%s所有,而不是你",
+ "hexcasting.mishap.no_links": "%s没有链接",
+ "hexcasting.mishap.self_link": "试图将%s链接至其自身",
+ "hexcasting.mishap.no_bound_storage": "未绑定物元枢纽",
+ "hexcasting.mishap.storage_unloaded": "绑定的物元枢纽未被加载",
+ "hexcasting.mishap.excessive_reproduction": "咒灵%s试图过度复制,每刻仅可召唤1个子咒灵",
+
+ "hexcasting.mishap.invalid_value.class.linkable": "一个可链接的事物",
+ "hexcasting.mishap.invalid_value.class.wisp": "一个咒灵",
+ "hexcasting.mishap.invalid_value.class.consumable_entity": "一个可被拆解的实体",
+ "hexcasting.mishap.invalid_value.class.wisp.casting": "一个施法咒灵",
+ "hexcasting.mishap.invalid_value.class.type.block": "一个方块类型",
+ "hexcasting.mishap.invalid_value.class.type.item": "一个物品类型",
+ "hexcasting.mishap.invalid_value.class.type.entity": "一个实体或实体类型",
+ "hexcasting.mishap.invalid_value.class.type.block.able": "一个可代表方块的物品类型",
+ "hexcasting.mishap.invalid_value.class.type.list.double": "一个由数组成的列表",
+ "hexcasting.mishap.invalid_value.class.gate": "一个门径",
+ "hexcasting.mishap.invalid_value.class.mote": "一个物元",
+ "hexcasting.mishap.invalid_value.class.moteentity.itemitemframe": "一个物元、物品实体或物品展示框",
+ "hexcasting.mishap.invalid_value.moteitemtype": "一个物元或物品类型",
+ "hexcasting.mishap.invalid_value.motemotelist": "一个物元或物元列表",
+ "hexcasting.mishap.invalid_value.motemotelistmotelistlist": "一个物元、物元列表或由物元列表组成的列表",
+ "hexcasting.mishap.invalid_value.veclist": "一个向量或由向量组成的列表",
+ "hexcasting.mishap.invalid_value.blockitementityitemframeitem": "一个位置向量、物品实体、物品展示框或物品",
+ "hexcasting.mishap.invalid_value.entity.itemitemframe": "一个物品实体或物品展示框",
+ "hexcasting.mishap.invalid_value.int.strictly_positive": "一个严格大于零的整数",
+ "hexcasting.mishap.invalid_value.crafting_recipe": "一个有效的合成配方",
+ "hexcasting.mishap.invalid_value.mote_duplicated": "各物元仅出现一次",
+ "hexcasting.mishap.invalid_value.cant_combine_motes": "两个可合并的物元",
+ "hexcasting.mishap.invalid_value.mote_not_size_one": "一个不包含NBT数据或大小为1的物元",
+ "hexcasting.mishap.invalid_value.gate.offset": "不超过%f格的偏移量",
+
+
+ "hexcasting.iota.hexal:iota_type": "Iota类型",
+ "hexcasting.iota.hexal:entity_type": "实体类型",
+ "hexcasting.iota.hexal:item_type": "物品类型",
+ "hexcasting.iota.hexal:gate": "门径",
+ "hexcasting.iota.hexal:item": "物品",
+
+ "hexal.spelldata.entity_type": "类型",
+ "hexal.spelldata.gate": "门径 %d",
+ "hexal.spelldata.mote": "%s x%d",
+
+ "hexcasting.spell.hexal:type/iota": "分类学家之纯化",
+ "hexcasting.spell.hexal:type/entity": "内科医师之纯化",
+ "hexcasting.spell.hexal:type/block_item": "分拣员之纯化",
+ "hexcasting.spell.hexal:type/item_held": "分拣员之精思",
+
+ "hexcasting.spell.hexal:raycast/entity/type": "侦查员之提整",
+ "hexcasting.spell.hexal:get_entity/type": "实体之馏化:类型",
+ "hexcasting.spell.hexal:zone_entity/type": "区域之提整:类型",
+ "hexcasting.spell.hexal:zone_entity/not_type": "区域之提整:非类型",
+
+ "hexcasting.spell.hexal:current_tick": "计时员之精思",
+ "hexcasting.spell.hexal:remaining_evals": "塔纳托斯之精思",
+ "hexcasting.spell.hexal:breath": "潜水员之纯化",
+ "hexcasting.spell.hexal:health": "护士之纯化",
+ "hexcasting.spell.hexal:armour": "乡绅之纯化",
+ "hexcasting.spell.hexal:toughness": "拳击手之纯化",
+ "hexcasting.spell.hexal:light_level": "灯夫之纯化",
+
+ "hexcasting.spell.hexal:factorial": "阶乘之纯化",
+ "hexcasting.spell.hexal:running/sum": "前缀和之纯化",
+ "hexcasting.spell.hexal:running/mul": "前缀积之纯化",
+
+ "hexcasting.spell.hexal:everbook/read": "谟涅摩叙涅之策略",
+ "hexcasting.spell.hexal:everbook/write": "极乐园之策略",
+ "hexcasting.spell.hexal:everbook/delete": "忘川之策略",
+ "hexcasting.spell.hexal:everbook/toggle_macro": "布莱之策略",
+
+ "hexcasting.spell.hexal:smelt": "烧炼",
+ "hexcasting.spell.hexal:freeze": "冻结",
+ "hexcasting.spell.hexal:falling_block": "坠落方块",
+ "hexcasting.spell.hexal:place_type": "放置方块,第二型",
+ "hexcasting.spell.hexal:particles": "粒子",
+
+ "hexcasting.spell.hexal:interop/fabric_only/phase_block": "暂消方块",
+
+ "hexcasting.spell.hexal:wisp/summon/projectile": "召唤弹射式咒灵",
+ "hexcasting.spell.hexal:wisp/summon/ticking": "召唤循环式咒灵",
+ "hexcasting.spell.hexal:wisp/self": "自我之精思",
+ "hexcasting.spell.hexal:wisp/media": "储罐之精思",
+ "hexcasting.spell.hexal:wisp/hex": "经理之纯化",
+ "hexcasting.spell.hexal:wisp/owner": "效忠之馏化",
+ "hexcasting.spell.hexal:wisp/move/target/set": "开拓者之策略",
+ "hexcasting.spell.hexal:wisp/move/target/get": "开拓者之精思",
+ "hexcasting.spell.hexal:wisp/move/speed/set": "急速",
+ "hexcasting.spell.hexal:wisp/move/speed/get": "速度计之精思",
+ "hexcasting.spell.hexal:wisp/trigger/tick": "延迟咒灵",
+ "hexcasting.spell.hexal:wisp/trigger/comm": "监听",
+ "hexcasting.spell.hexal:wisp/trigger/move": "巡航",
+ "hexcasting.spell.hexal:wisp/consume": "拆解咒灵",
+ "hexcasting.spell.hexal:wisp/seon/set": "绑定咒灵",
+ "hexcasting.spell.hexal:wisp/seon/get": "密友之精思",
+ "hexcasting.spell.hexal:wisp/transfer/allow": "允许转送",
+ "hexcasting.spell.hexal:wisp/transfer/disallow": "禁止转送",
+ "hexcasting.spell.hexal:wisp/transfer/others/allow": "允许转送其他",
+ "hexcasting.spell.hexal:wisp/transfer/others/disallow": "禁止转送其他",
+
+ "hexcasting.spell.hexal:get_entity/wisp": "实体之纯化:咒灵",
+ "hexcasting.spell.hexal:zone_entity/wisp": "区域之馏化:咒灵",
+ "hexcasting.spell.hexal:zone_entity/not_wisp": "区域之馏化:非咒灵",
+
+ "hexcasting.spell.hexal:link": "链接",
+ "hexcasting.spell.hexal:link/others": "链接其他",
+ "hexcasting.spell.hexal:link/unlink": "解链接",
+ "hexcasting.spell.hexal:link/unlink/others": "解链接其他",
+ "hexcasting.spell.hexal:link/get": "电话簿之纯化",
+ "hexcasting.spell.hexal:link/get_index": "识别之纯化",
+ "hexcasting.spell.hexal:link/num": "名气之精思",
+
+ "hexcasting.spell.hexal:link/comm/send": "发送Iota",
+ "hexcasting.spell.hexal:link/comm/read": "朗诵之精思",
+ "hexcasting.spell.hexal:link/comm/num": "邮政局长之精思",
+ "hexcasting.spell.hexal:link/comm/clear": "除塞之策略",
+ "hexcasting.spell.hexal:link/comm/open_transmit": "开始发信",
+ "hexcasting.spell.hexal:link/comm/close_transmit": "结束发信",
+
+ "hexcasting.spell.hexal:gate/make": "门径之精思",
+ "hexcasting.spell.hexal:gate/mark": "开启门径",
+ "hexcasting.spell.hexal:gate/unmark": "解除门径",
+ "hexcasting.spell.hexal:gate/mark/num/get": "标径之纯化",
+ "hexcasting.spell.hexal:gate/mark/get": "标径之馏化",
+ "hexcasting.spell.hexal:gate/close": "关闭门径",
+
+ "hexcasting.spell.hexal:mote/storage/bind": "绑定储库",
+ "hexcasting.spell.hexal:mote/storage/bind/temp": "绑定储库,临时型",
+ "hexcasting.spell.hexal:mote/contained_type/get": "盘货之精思",
+ "hexcasting.spell.hexal:mote/contained/get": "盘货之纯化",
+ "hexcasting.spell.hexal:mote/storage/remaining_capacity/get": "容量之精思",
+ "hexcasting.spell.hexal:mote/storage/contains": "容纳之馏化",
+ "hexcasting.spell.hexal:mote/make": "媒质化物品",
+ "hexcasting.spell.hexal:mote/return": "返还物品",
+ "hexcasting.spell.hexal:mote/count/get": "衡数之纯化",
+ "hexcasting.spell.hexal:mote/combine": "堆叠之馏化",
+ "hexcasting.spell.hexal:mote/combinable": "堆叠之馏化,第二型",
+ "hexcasting.spell.hexal:mote/split": "拆分之策略",
+ "hexcasting.spell.hexal:mote/storage/get": "货场之纯化",
+ "hexcasting.spell.hexal:mote/storage/set": "货场之策略",
+ "hexcasting.spell.hexal:mote/craft": "合成",
+ "hexcasting.spell.hexal:mote/villager/level/get": "资历之纯化",
+ "hexcasting.spell.hexal:mote/trade/get": "报价之纯化",
+ "hexcasting.spell.hexal:mote/trade": "交易",
+ "hexcasting.spell.hexal:mote/use_on": "使用物品",
+
+ "hexcasting.spell.hexal:tick": "加速",
+
+
+
+ "hexcasting.spell.book.hexal:light_level": "灯夫之纯化",
+
+ "hexcasting.spell.book.hexal:running/sum": "前缀和之纯化",
+ "hexcasting.spell.book.hexal:running/mul": "前缀积之纯化",
+
+ "hexcasting.spell.book.hexal:get_entity/wisp": "实体之纯化:咒灵",
+ "hexcasting.spell.book.hexal:zone_entity/wisp": "区域之馏化:咒灵",
+ "hexcasting.spell.book.hexal:zone_entity/not_wisp": "区域之馏化:非咒灵",
+
+ "hexcasting.spell.book.hexal:mote/storage/bind/temp": "绑定储库,临时型",
+
+
+
+ "hexal.entry.slipways": "质道",
+ "hexal.page.slipways": "我曾听说过某些晶洞中有形如泛着光的传送门的东西,它们被称作“质道”。这些质道通常“被莹莹光点围绕”,和我所知的$(l:hexal:patterns/spells/wisps)$(thing)咒灵/$十分相似。也许它们之间的联系值得研究。",
+
+ "hexal.entry.relay": "继链器",
+ "hexal.page.relay.0": "我常希望有方法能$(l:hexal:patterns/spells/links#hexal:link)$(action)连接/$多个$(l:hexal:patterns/spells/wisps)$(thing)咒灵/$,以便远距共享媒质和信息。然而用咒灵远距中继相当不方便,常态消耗也很大。为解决这些问题,我制造出了继链器。它们是固态方块而非媒质构造体,也因此在维持链接时不会有常态消耗。",
+ "hexal.page.relay.1": "相互连接的继链器会形成网络,与之连接的咒灵会共享媒质,类似于咒灵间直接相连。此外,传给网络内任一继链器的 iota 会发送给连接至网络的所有非继链器事物。继链器的工作范围是 32 格(也即两个继链器可链接的最远距离为 64 格)。手持染色剂右击任一继链器即可改变网络链接的颜色。",
+ "hexal.page.relay.2": "继链器没有所有者,若要我的咒灵和其$(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)$(action)转送媒质/$,则必须先允许咒灵这么做。",
+
+ "hexal.entry.hexal_basics": "咒法拓展:基础图案",
+ "hexal.page.hexal_basics.current_tick": "返回一个数,这个数似乎与自然记录时间的方式有关。如果先绘制一遍此图案,在 1 秒后再绘制一遍,返回的数会增加 20。",
+ "hexal.page.hexal_basics.remaining_evals": "将咒术在结束前还能运行图案的次数压入栈顶。结果会因$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$而减少。",
+ "hexal.page.hexal_basics.breath": "移除栈顶实体,并返回其剩余氧气值(也即距其溺水还有多少氧气值可消耗)。",
+ "hexal.page.hexal_basics.health": "移除栈顶实体,并返回其剩余生命值(也即距其死亡还有多少生命值可损失)。",
+ "hexal.page.hexal_basics.armour": "移除栈顶实体,并返回其护甲值。",
+ "hexal.page.hexal_basics.toughness": "移除栈顶实体,并返回其盔甲韧性(盔甲的另一属性)。",
+ "hexal.page.hexal_basics.light_level": "移除栈顶位置向量,并返回该处光照强度。",
+
+ "hexal.entry.hexal_maths": "咒法拓展:数学",
+ "hexal.page.hexal_maths.factorial": "移除栈顶数,返回其阶乘。例如输入 4 则会返回 4 * 3 * 2 * 1 = 24。",
+ "hexal.page.hexal_maths.running/sum": "接受栈顶列表,并计算其前缀和。例如输入 [1, 2, 5] 则会返回 [1, 3, 8]。",
+ "hexal.page.hexal_maths.running/mul": "接受栈顶列表,并计算其前缀积。例如输入 [1, 2, 5] 则会返回 [1, 2, 10]。",
+
+ "hexal.entry.hexal_spell": "咒法拓展:法术",
+ "hexal.page.hexal_spell.smelt.0": "移除栈顶位置向量、物品实体或物元,然后烧炼该处方块,或同时烧炼物品实体或物元中所有物品。",
+ "hexal.page.hexal_spell.smelt.1": "每烧炼一个物品消耗 3/4 个$(l:items/amethyst)$(item)紫水晶粉/$。(也即烧炼 1 个方块消耗 3/4 个$(l:items/amethyst)$(item)紫水晶粉/$,同时烧炼 8 个物品消耗 6 个$(l:items/amethyst)$(item)紫水晶粉/$。)",
+ "hexal.page.hexal_spell.freeze": "冻结所给坐标处方块。例如,水变为冰,冰变为浮冰。消耗 1 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.hexal_spell.falling_block": "移除栈顶位置向量,并使该处方块下落,就像沙子和沙砾一样。消耗 3/2 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.hexal_spell.place_type": "接受一个物品类型或物元和一个位置向量,并会尝试在该位置处放置所给物品类型的方块。若传入物元,则会从对应的物元记录中放置。消耗 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.hexal_spell.particles": "接受一个位置向量或一个由位置向量组成的列表,并在所给位置处生成粒子,或在所给列表各位置之间生成粒子连线。每个位置向量消耗 1/500 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+
+ "hexal.entry.fabric_only_hexal": "咒术拓展:Fabric 独占法术",
+ "hexal.page.fabric_only_hexal.interop/fabric_only/phase_block": "接受一个位置向量和一个数,并使所给位置上方块的体积消失所给数秒。消耗 1/1000 与消失时间的平方的乘积个$(l:items/amethyst)$(item)紫水晶粉/$。",
+
+ "hexal.entry.wisps": "咒灵",
+ "hexal.page.wisps.0": "我发现了一种能仅以媒质创造法术构造体的方式,它们能被他人看见,能移动,也有一定自主行动能力。它们能代替我施法,和$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$类似。不过保持它们的形态确实要耗费我的注意力,而且如果太多咒灵要同时施法,我也只能同时运行其中一部分,剩下的则要稍作延迟。",
+ "hexal.page.wisps.1": "创造咒灵时需要给它们分配它们能访问的一块媒质“储库”(后称媒质库)。这些媒质由我提供,用于形成咒灵本身。咒灵会常态消耗媒质,而当其运行其携带的图案列表时,其中各操作要消耗的媒质也会从媒质库中抽取。所有种类的咒灵似乎都需要 3 个$(l:items/amethyst)$(item)紫水晶粉/$才能召唤,并同时消耗等同于其媒质库容量的媒质。",
+ "hexal.page.wisps.2": "试图持有其他施法者真名的咒灵会被严厉惩罚,其所有 iota 存储位置中每有一个真名都会使其常态消耗增加 20 倍。",
+ "hexal.page.wisps.wisp/summon/projectile.0": "这种咒灵被召唤时会像箭一样被弹射出去,而后会在其击中的事物上施放咒术。其初始栈包含一个代表其自身的 iota 和一个代表其击中的事物的 iota。",
+ "hexal.page.wisps.wisp/summon/projectile.1": "第二个 iota 可以是一个位置向量,也可以是一个实体。第二个向量的模似乎会影响咒灵的速度,此法术消耗的媒质量会以速度向量模的平方增加。接受的数代表咒灵媒质库的容量(以$(l:items/amethyst)$(item)紫水晶粉/$计)。召唤后它每秒会消耗 3/10 个$(l:items/amethyst)$(item)紫水晶粉/$,且其影响区域半径为 4 格。",
+ "hexal.page.wisps.wisp/summon/ticking.0": "此法术与召唤弹射式咒灵类似,但只会接受一个代表召唤位置的向量。循环式咒灵一经召唤就不再移动,并会以每秒 20 次的频率施法。",
+ "hexal.page.wisps.wisp/summon/ticking.1": "其初始栈包含一个代表其自身的 iota,而后每次施法开始时会保留上一次施法后的栈和渡鸦之思。这种咒灵的形态较不稳定,常态消耗率远大于弹射式咒灵。其每秒消耗 7/10 个$(l:items/amethyst)$(item)紫水晶粉/$。其影响区域半径为 8 格。",
+ "hexal.page.wisps.wisp/self": "返回一个代表施法咒灵的 iota。此操作必须由咒灵执行。尝试用法杖执行会招致可怖的事故。",
+ "hexal.page.wisps.wisp/media": "将咒灵媒质库中剩余的媒质量压入栈顶。此操作必须由咒灵执行。尝试用法杖执行会招致可怖的事故。",
+ "hexal.page.wisps.wisp/hex": "移除一个咒灵实体,并返回该咒灵所携带的咒术。所给 iota 必须代表由我召唤的咒灵,或$(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)允许$(action)与施法者或其所有者转送的咒灵。",
+ "hexal.page.wisps.wisp/owner": "移除一个咒灵实体和一个实体,若该实体是该咒灵的所有者,返回 True;否则返回 False。",
+ "hexal.page.wisps.wisp/move/target/set": "移除栈顶位置向量。运行此图案的循环式咒灵会沿直线移动至所给位置(会与途中地形地貌等碰撞),直至抵达该位置处。",
+ "hexal.page.wisps.wisp/move/target/get": "返回循环式咒灵当前目标位置的位置向量。",
+ "hexal.page.wisps.wisp/move/speed/set": "移除栈顶数,并将循环式咒灵自身的速度上限设为该数。",
+ "hexal.page.wisps.wisp/move/speed/get": "返回循环式咒灵自身当前速度上限。",
+ "hexal.page.wisps.wisp/transfer/allow": "当两咒灵$(l:hexal:patterns/spells/links)$(thing)连接/$时,它们会相互转送媒质,直至两者平衡。默认状况下,仅所有者相同的咒灵会自发转送。此操作接受一个编号数,并显式允许咒灵与该编号链接另一端的事物交换媒质。",
+ "hexal.page.wisps.wisp/transfer/disallow": "相应地,此操作接受一个编号数,并禁止咒灵与该编号链接另一端的事物交换媒质。",
+ "hexal.page.wisps.wisp/transfer/others/allow": "接受一个咒灵实体(所有者需是我)和一个编号数,并允许该咒灵与该编号链接另一端的事物交换媒质。",
+ "hexal.page.wisps.wisp/transfer/others/disallow": "接受一个咒灵实体(所有者需是我)和一个编号数,并禁止该咒灵与该编号链接另一端的事物交换媒质。",
+ "hexal.page.wisps.get_entity/wisp": "将栈顶位置向量变为该处咒灵(若无则返回 $(l:casting/influences)$(thing)Null/$)。",
+ "hexal.page.wisps.zone_entity/wisp": "从栈顶获取位置及最大距离,返回该位置给定距离范围内所有咒灵的列表。",
+ "hexal.page.wisps.zone_entity/not_wisp": "从栈顶获取位置及最大距离,返回该位置给定距离范围内所有非咒灵实体的列表。",
+ "hexal.page.wisps.wisp/trigger/tick": "移除栈顶数,然后将咒灵下一次施法时刻更改为延迟所给数个 1/20 秒。所有可用于延迟咒灵施法的操作均能使咒灵的常态消耗减半,直到下一次施法为止。",
+ "hexal.page.wisps.wisp/trigger/comm": "咒灵将在其收到至少一次$(l:hexal:patterns/spells/links#hexal:link/comm/send)$(action)通信/$后才进行下一次施法。",
+ "hexal.page.wisps.wisp/trigger/move": "咒灵将在其抵达被$(l:hexal:patterns/spells/wisps#hexal:wisp/move/target/set)$(action)导向/$的位置后才进行下一次施法。",
+
+ "hexal.entry.links": "链接",
+ "hexal.page.links.0": "这些图案大致构建了一套能在$(l:hexal:patterns/spells/wisps)$(thing)咒灵/$间以及咒灵和其他事物间传递信息的系统。有若干图案与创建链接有关,也有些图案和通过链接发送和接收 iota 的方式相关。一个咒灵能同时维持任意数目的链接,每条每 1/20 秒常态消耗极少量媒质。",
+ "hexal.page.links.1": "可链接事物会以创建顺序为这些链接编号,此编号可用作图案的参数。介绍中的“可链接事物”(Linkable)不是具体参数类型,而是指代所有可被转换为可链接事物的类型。(例如,Entity -> Linkable entities,Vec -> Linkable blocks等等。)链接仅会在两可链接事物影响范围之和的两倍内起效。若要跨更远的距离连接两者,应该转而使用$(l:hexal:items/relay)$(item)继链器/$。",
+ "hexal.page.links.link": "将施法者链接至栈顶实体,且实体必须为可链接的。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
+ "hexal.page.links.link/others": "可在任意施法器件上运行。将两个实体链接,且两实体必须均为可链接的。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
+ "hexal.page.links.link/unlink": "断开施法者的编号为所给数的链接。消耗 2 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.links.link/unlink/others": "接受两个可链接事物,若其间存在链接,则会将其断开。消耗 2 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.links.link/get": "移除栈顶数,并返回对应编号的链接所连的实体。",
+ "hexal.page.links.link/get_index": "移除栈顶实体,并返回自身与该实体相连的链接的编号。若施法者与其无链接则返回 -1。",
+ "hexal.page.links.link/num": "返回自身的链接个数。",
+ "hexal.page.links.link/comm/send": "移除栈顶元素与数,而后向编号为该数的链接发送该元素。消耗 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.links.link/comm/read": "当接收到 iota 时其将被加至一个队列中。此图案会将该队列中的首个 iota 压入栈顶并移出队列。",
+ "hexal.page.links.link/comm/num": "返回接收队列中未读 iota 的个数。",
+ "hexal.page.links.link/comm/clear": "移除施法者接收队列中所有未读 iota。",
+ "hexal.page.links.link/comm/open_transmit": "与$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$类似。在绘制$(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)结束发信/$后,所有我绘制的图案会通过编号为栈顶数的链接发送出去。",
+ "hexal.page.links.link/comm/close_transmit": "在$(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)开始发信/$之后绘制,意味着发信过程结束。如果$(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)开始发信/$或$(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)结束发信/$是由中介施法者(如咒灵)运行的话,则会产生事故。",
+
+ "hexal.entry.tick": "加速",
+ "hexal.page.tick.tick.0": "在法术运行的那一刻,加速所给位置处方块的运作。",
+ "hexal.page.tick.tick.1": "施放此法术要消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$,在整个咒术内,每对同一方块加速一次,额外消耗 1/1000 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+
+ "hexal.entry.gates": "门径",
+ "hexal.page.gates.0": "门径是我有关空间远距连接和瞬间移动的长时间研究的最新成果。与我之前的试验不同的是,它能$(o)极为高效地$()完成传送任务。我已学会构造三种不同的门径,所有三种都需要巨量的媒质才能烧入现实,但后续的操作则相较之下极为便宜。",
+ "hexal.page.gates.1": "位置锚定门径与世界上某一位置绑定,会将所有穿过它们的事物送至该位置。实体锚定门径则与世界上某一实体绑定,会将所有穿过它们的事物送至该实体处(可附带一个偏移向量,需在烧入门径时提供)。",
+ "hexal.page.gates.2": "未锚定门径没有与任何事物绑定,可用于将实体送至任意位置。但其效率也会相应降低,只能将实体送至我所能影响的范围内的位置。门径烧入成功后,我的栈上便会出现一个代表其的 iota。我能以此 iota 标记实体,如此当我关闭门径时,所有被标记的实体就会被传送至门径终点。需注意关闭门径不会将其消耗,获得门径 iota 后便能永久使用。",
+ "hexal.page.gates.gate/make": "压入一个新的门径。所有此 iota 的复制品都指向同一个门径。消耗 32 个$(l:items/amethyst)$(item)充能紫水晶/$。若传入 Null,则构造未锚定门径;若传入一个向量,则构造位置锚定门径;若传入一个向量和一个实体,则构造实体锚定门径。",
+ "hexal.page.gates.gate/mark": "移除栈顶实体与门径,并标记该实体,被标记的实体会在对应门径关闭时被传送。消耗 1/20 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.gates.gate/unmark": "移除栈顶门径与实体,并取消该实体的标记。若其已被$(l:hexal:patterns/spells/gates#hexal:gate/mark)$(action)开启门径/$标记,下一次门径关闭时其将不会被传送。",
+ "hexal.page.gates.gate/mark/num/get": "移除栈顶门径,返回被该门径标记的实体的数量。",
+ "hexal.page.gates.gate/mark/get": "移除栈顶门径和实体,判断该实体是否被该门径标记。",
+ "hexal.page.gates.gate/close": "移除栈顶锚定门径,或未锚定门径与位置向量。将所有被所给门径标记的实体传送至其锚定位置或所给位置。消耗 1/2 个$(l:items/amethyst)$(item)紫水晶碎片/$。若为未锚定门径,则每个实体每传送 1 格额外消耗 1 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+
+ "hexal.entry.motes": "物元",
+ "hexal.page.motes.explanation.0": "此条目主要记述如何将物品本身拉进媒质,使其可被引用,可被计数,并将秩序带给它们也带给我也带给我的意识也带给——。压入栈中的媒质化物品 iota(称为“物元”)都代表着物元枢纽中的某个物元记录。这是因为假如没有东西承载物品中的思维模式,物品本身就会消亡——就像我的意识的剥脱——",
+ "hexal.page.motes.explanation.1": "所有物元 iota 的复制版本都指向同一物元记录,也正因此,对其中一个做出的修改将同步到所有复制版本中去。拆分与合并与合成与交易都影响所有影响所有——",
+ "hexal.page.motes.explanation.2": "物元枢纽也有部分限制,但也只是部分。它最多能存放 1023 条记录,但每条记录中物品的个数则没有上限。我还没发现任何能证明上限存在的证据,我能合并再合并再合并再合并直到永远记录增长然后增长然后增……",
+ "hexal.page.motes.mediafed_storage_recipe": "物元枢纽是用制图师的意识制成的,它会永不中断地标记和映射对应$(item)潜影盒/$中的物品。",
+ "hexal.page.motes.mote/storage/bind": "锚定一个物元枢纽,并将自身与其绑定,所有我媒质化的物品都会存入该枢纽。若锚定至其他枢纽则会自动解开与原枢纽的绑定。消耗 32 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.motes.mote/storage/bind/temp": "锚定一个物元枢纽,在当前咒术结束前将自身与其绑定。其在本咒术内会暂时覆盖永久性绑定的枢纽。消耗 1/1000 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.motes.mote/contained_type/get": "获取当前绑定的枢纽中所有物元的类型。",
+ "hexal.page.motes.mote/contained/get": "获取当前绑定的枢纽中所有和所给物品类型对应的,或所有可与所给物元合并的物元。",
+ "hexal.page.motes.mote/storage/remaining_capacity/get": "获取所绑定的枢纽剩余的空间。",
+ "hexal.page.motes.mote/storage/contains": "若所给位置的物元枢纽中包含所给类型的物元,或包含可与所给物元合并的物元,则返回 True,否则返回 False。",
+ "hexal.page.motes.mote/make": "将世界中的物品(物品实体、物品展示框)转换为物元。若传入物元,则会将所给物体与该物元合并。媒质化 1 份物品消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.motes.mote/return": "将物元中所有物品返还到所给位置处。若传入数,则最多返还该数个物品。消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.motes.mote/count/get": "接受物元,并返回该物元对应的记录中物品的个数。",
+ "hexal.page.motes.mote/combine": "将两个物元合并,也同时合并两者所指向的物元记录。指向第二条记录的物元会变为 Null,指向第一条的物元不会。如此就能在栈中放下远超我随身携带量的物品了!",
+ "hexal.page.motes.mote/combinable": "若第一参数物元可与第二参数(物元、物品实体、物品展示框)中物品合并,返回 True,否则返回 False。",
+ "hexal.page.motes.mote/split": "从所给物元中拆分出所给数个物品,以此创建一条物元记录并返回对应物元 iota。",
+ "hexal.page.motes.mote/storage/get": "获取存储所给物元的枢纽的位置。",
+ "hexal.page.motes.mote/storage/set": "将所给物元对应的记录转移到所给位置处的物元枢纽中,并会返回指向新记录的物元 iota,且所有指向原记录的物元均会失效。",
+ "hexal.page.motes.mote/craft.0": "接受物元,物元组成的列表,或物元列表组成的列表。并返回包含以对应物品合成所得产物的列表。例如,输入“石头 x128”会返回 [石头按钮 x128]。",
+ "hexal.page.motes.mote/craft.1": "更为复杂的合成表则需要在对应位置插入 Null。例如合成钻石镐,会需要 [[钻石 x2, 钻石 x2, 钻石 x2], [Null, 木棍 x2], [Null, 木棍 x2]],并返回 [钻石镐 x2]。消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.motes.mote/villager/level/get": "接受代表村民的 iota,并返回代表该村民在其职业上熟练度的数。",
+ "hexal.page.motes.mote/trade/get.0": "接受代表村民的 iota,并返回该村民所有的交易选项,返回结果是列表的列表的列表。每项交易由两个列表组成,内容分别为给出的物品和换得的物品。换得物品列表由对应的物品类型和可换得物品的数量组成。",
+ "hexal.page.motes.mote/trade/get.1": "给出物品列表则由一对或两对物品类型与对应数量组成。例如,一项交易可能形如 [[[绿宝石, 1]], [红石粉, 1]]。",
+ "hexal.page.motes.mote/trade.0": "接受代表村民的 iota,由物元组成的列表(用于交易),和代表交易次序的整数(可选)。(上方的 int? 表示可传入 2 或 3 个参数,可选的第三个参数需为整数。)",
+ "hexal.page.motes.mote/trade.1": "若不输入次序数,则会依次寻找交易选项,直到找到接受所给物品的选项为止。若输入,则会直接跳转至该交易选项处。这之后便会一直进行交易,直到物品耗尽或是村民停用该项为止。交易结束后会返回由所获得的物品组成的物元。",
+ "hexal.page.motes.mote/trade.2": "村民会将这些交易视作直接与我进行,且会获得经验,并以此精进技艺并改进交易选项。消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexal.page.motes.mote/use_on": "接受一个物元和一个实体或位置向量和法向量。并对实体或所给位置处方块使用物元中物品。物元本身需只能含有一个物品,或其中物品极为简单(无 NBT 数据)。",
+
+ "hexal.entry.great_wisps": "卓越咒灵法术",
+ "hexal.page.great_wisps.wisp/consume.0": "移除栈顶咒灵实体,并拆解该咒灵。咒灵携带的图案不可追回,但是如果此法术是由其他咒灵施放的,那么被拆解咒灵所剩的媒质还可再加利用。",
+ "hexal.page.great_wisps.wisp/consume.1": "若咒灵的所有者是我,或其被$(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)允许$(action)与施法者或其所有者转送,消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$;若咒灵的所有者是他人且未被允许转送,则消耗该咒灵所拥有的媒质量的一半。媒质的再利用效率不算特别高,会在传输过程中损耗掉被拆解咒灵媒质库容量的 1/20。",
+ "hexal.page.great_wisps.wisp/seon/set": "在我的咒灵和我之间建立更紧密的联系。我只能同时绑定一个咒灵,但绑定咒灵的常态消耗将大大减少。",
+ "hexal.page.great_wisps.wisp/seon/get": "返回我当前绑定的咒灵。(这并不是卓越法术,记载于此是为了方便查找。)",
+
+ "hexal.entry.types": "类型",
+ "hexal.page.types.type/iota": "移除栈顶元素,并返回该 iota 的类型。",
+ "hexal.page.types.type/entity": "移除栈顶实体,并返回该实体的类型。",
+ "hexal.page.types.type/block_item": "移除栈顶位置向量,$(l:hexal:hexal.entry.motes)$(item)物元/$,物品实体或物品展示框。并返回该处方块的类型或对应物品类型。(如草方块、石头、木棍等。)",
+ "hexal.page.types.type/item_held": "若施法者副手中有物品,则将其类型压入栈顶;若无,则压入施法用手中物品的类型。",
+
+ "hexal.page.types.raycast/entity/type": "移除栈顶实体类型(或物品类型)、位置向量和方向向量,返回该位置朝向该方向处符合该类型的实体或物品实体(若有)。",
+ "hexal.page.types.get_entity/type": "从栈顶获取实体类型(或物品类型)和位置向量,返回该位置符合该类型的实体或物品实体(若有)。",
+ "hexal.page.types.zone_entity/type": "从栈顶获取实体类型(或物品类型)、位置向量及最大距离,返回该位置给定距离范围内所有符合给定类型的实体或物品实体的列表。",
+ "hexal.page.types.zone_entity/not_type": "从栈顶获取实体类型(或物品类型)、位置向量及最大距离,返回该位置给定距离范围内所有不符合给定类型的实体或物品实体的列表。",
+
+
+ "hexal.entry.everbook": "永恒之书",
+ "hexal.page.everbook.0": "永恒之书是一片奇特的空间,如今已对我残破的意识开放。似乎有许多个我共用所有永恒之书的记录,共享不同世界的研究成果,又不断重新研究。永恒之书能够将图案和 iota 对应并存储,和$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$类似。不过考虑到如今我意识的脆弱,可能还是把永恒之书的访问权限全部交给$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$比较好。只要在某个世界中获得启迪,我就能在那个世界中访问永恒之书的所有内容。",
+ "hexal.page.everbook.everbook/read": "接受指向$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$的位置向量,与一个作为键的图案,并返回永恒之书中对应键处的 iota,若能存储则同时会将其存至给定的$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$中。",
+ "hexal.page.everbook.everbook/write": "接受指向$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$的位置向量,与一个作为键的图案,并将阿卡夏记录中该图案对应的 iota 以同一图案存至永恒之书中。",
+ "hexal.page.everbook.everbook/delete": "接受一个图案,并移除永恒之书中该图案对应的条目。",
+ "hexal.page.everbook.everbook/toggle_macro.0": "接受一个图案,并以该图案标记永恒之书中对应条目,使得绘制该图案所产生的效果和自然创造的其他图案相仿。",
+ "hexal.page.everbook.everbook/toggle_macro.1": "当绘制被标记的永恒之书条目所对应的图案时,如果对应条目存有一个列表,则自然会如同$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$一样依次执行列表中各元素,但不会消耗递归层数。试图将不存在的条目或是会无限递归的条目标记为图案则会失败。",
+
+ "hexal.entry.everbook_entries": "永恒之书条目",
+ "hexal.page.everbook_entries.0": "此条目中每一页都会显示我$(l:hexal:patterns/everbook)$(action)永恒之书/$中某一条目对应的图案键。",
+
+ "hexal.everbook_pattern_entry.header": "存储键:%d",
+ "hexal.everbook_pattern_entry.macro_header": "宏键:%d",
+
+
+
+ "_comment": "Config Entries",
+ "text.autoconfig.hexal.title": "咒法拓展(Hexal)配置",
+ "text.autoconfig.hexal.category.common": "Common",
+ "text.autoconfig.hexal.category.client": "Client",
+ "text.autoconfig.hexal.category.server": "Server",
+
+ "text.autoconfig.hexal.option.server.terrainGeneration": "世界生成",
+ "text.autoconfig.hexal.option.server.generateSlipwayGeodes": "是否生成质道晶洞?",
+
+ "text.autoconfig.hexal.option.server.miscSpells": "杂项法术",
+ "text.autoconfig.hexal.option.server.miscSpells.fallingBlockCost": "“坠落方块”媒质消耗",
+ "text.autoconfig.hexal.option.server.miscSpells.freezeCost": "“冻结”媒质消耗",
+ "text.autoconfig.hexal.option.server.miscSpells.particlesCost": "“粒子”每个向量的媒质消耗",
+ "text.autoconfig.hexal.option.server.miscSpells.placeTypeCost": "“放置方块,第二型”媒质消耗",
+ "text.autoconfig.hexal.option.server.miscSpells.smeltCost": "“烧炼”每个物品的媒质消耗",
+
+ "text.autoconfig.hexal.option.server.wispSpells": "咒灵法术",
+ "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost": "“急速”基础媒质消耗",
+ "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[0]": "使咒灵的移动速度增加1所需的媒质量。",
+ "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[1]": "这个数值是基础媒质消耗,若单次增加更多,实际消耗量依照二次函数变化。",
+ "text.autoconfig.hexal.option.server.wispSpells.summonTickingWispCost": "“召唤循环式咒灵”媒质消耗",
+ "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispCost": "“召唤弹射式咒灵”每速度平方的媒质消耗",
+ "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispMinCost": "“召唤循环式咒灵”媒质消耗下限",
+
+ "text.autoconfig.hexal.option.server.wispUpkeep": "咒灵维护",
+ "text.autoconfig.hexal.option.server.wispUpkeep.tickingWispUpkeepPerTick": "循环式咒灵每刻维护消耗",
+ "text.autoconfig.hexal.option.server.wispUpkeep.projectileWispUpkeepPerTick": "弹射式咒灵每刻维护消耗",
+ "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount": "不活跃咒灵维护消耗减免",
+ "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[0]": "不活跃的循环式咒灵的维护媒质消耗会与此数乘算。",
+ "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[1]": "取值范围为0.0到1.0。",
+ "text.autoconfig.hexal.option.server.wispUpkeep.linkUpkeepPerTick": "链接每刻维护消耗",
+ "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor": "绑定咒灵维护消耗减免因数",
+ "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[0]": "被绑定的咒灵的维护媒质消耗会除以此数。",
+ "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[1]": "取值范围为2.0到200.0。",
+ "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor": "存储玩家iota媒质消耗乘算因数",
+ "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[0]": "存有代表其他玩家的iota的咒灵的媒质消耗会与此数乘算。",
+ "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[1]": "取值范围为1.0到200.0。",
+
+ "text.autoconfig.hexal.option.server.linkSpells": "链接法术",
+ "text.autoconfig.hexal.option.server.linkSpells.linkCost": "“链接”媒质消耗",
+ "text.autoconfig.hexal.option.server.linkSpells.sendIotaCost": "“发送Iota”媒质消耗",
+ "text.autoconfig.hexal.option.server.linkSpells.unlinkCost": "“解链接”媒质消耗",
+
+ "text.autoconfig.hexal.option.server.gateSpells": "门径法术",
+ "text.autoconfig.hexal.option.server.gateSpells.makeGateCost": "“门径之精思”媒质消耗",
+ "text.autoconfig.hexal.option.server.gateSpells.markGateCost": "“开启门径”媒质消耗",
+ "text.autoconfig.hexal.option.server.gateSpells.closeGateCost": "“关闭门径”媒质消耗",
+
+ "text.autoconfig.hexal.option.server.itemSpells": "物品法术",
+ "text.autoconfig.hexal.option.server.itemSpells.bindStorageCost": "“绑定储库”媒质消耗",
+ "text.autoconfig.hexal.option.server.itemSpells.bindTemporaryStorageCost": "“绑定储库,临时型”媒质消耗",
+ "text.autoconfig.hexal.option.server.itemSpells.makeItemCost": "“媒质化物品”媒质消耗",
+ "text.autoconfig.hexal.option.server.itemSpells.returnItemCost": "“返还物品”媒质消耗",
+ "text.autoconfig.hexal.option.server.itemSpells.craftItemCost": "“合成”媒质消耗",
+ "text.autoconfig.hexal.option.server.itemSpells.tradeItemCost": "“交易”媒质消耗",
+ "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned": "最大返还物品数",
+ "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[0]": "“返还物品”单次最多能返还的物品数量。",
+ "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[1]": "取值范围为640到64,000。",
+ "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage": "物元枢纽最大记录条数",
+ "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[0]": "单个物元枢纽中最多能存储的物元记录条数。",
+ "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[1]": "取值范围为128到16,384。",
+
+
+ "text.autoconfig.hexal.option.server.greatSpells": "卓越法术",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost": "拆解自己的咒灵的媒质消耗",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[0]": "拆解咒灵(咒灵的所有者是自己)的媒质消耗,",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[1]": "也适用于拆解出于某些原因不会反抗的咒灵。",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia": "拆解他人的咒灵的单位媒质消耗",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[0]": "拆解会反抗的咒灵的媒质消耗,此数会与",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[1]": "被拆解的咒灵身上含有的媒质总量乘算。",
+ "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[2]": "取值范围为1.0到20.0。",
+ "text.autoconfig.hexal.option.server.greatSpells.seonWispSetCost": "“绑定咒灵”媒质消耗",
+ "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost": "“加速”常态媒质消耗",
+ "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost.@Tooltip": "加速方块运作常态媒质消耗。每次使用均会消耗。",
+ "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked": "“加速”每加速刻累计媒质消耗",
+ "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[0]": "加速方块运作时,之前每加速一刻额外消耗的增长量。",
+ "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[1]": "会与上方常态媒质消耗加算。",
+ "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb": "“加速”随机刻的逆概率",
+ "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[0]": "“加速”加速方块随机刻的逆概率。",
+ "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[1]": "此数越大,越不可能加速随机刻;次数越小,越可能加速随机刻。",
+ "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[2]": "取值范围为600到2100。"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexcassettes/hexcassettes/lang/en_us.json b/projects/1.19/assets/hexcassettes/hexcassettes/lang/en_us.json
new file mode 100644
index 000000000000..1de9dc9a7f06
--- /dev/null
+++ b/projects/1.19/assets/hexcassettes/hexcassettes/lang/en_us.json
@@ -0,0 +1,39 @@
+{
+ "advancements.hexcassettes.quinio.title": "QUINIO",
+ "advancements.hexcassettes.quinio.description": "Make a Hex cast a Hex.",
+ "advancements.hexcassettes.tape_worm.title": "Tape Worm?",
+ "advancements.hexcassettes.tape_worm.description": "Consume a cassette tape.",
+ "advancements.hexcassettes.full_arsenal.title": "Full Album",
+ "advancements.hexcassettes.full_arsenal.description": "Acquire a full arsenal of cassettes.",
+
+ "subtitles.hexcassettes.cassette_eject": "Cassette ejects",
+ "subtitles.hexcassettes.cassette_fail": "Cassette clicks",
+ "subtitles.hexcassettes.cassette_insert": "Cassette inserted",
+ "subtitles.hexcassettes.cassette_loop": "Cassette whirrs",
+
+ "item.hexcassettes.cassette": "Cassette",
+
+ "hexcasting.mishap.hexcassettes:too_many_cassettes": "Attempted to schedule more Hexes than owned cassettes.",
+
+ "hexcassettes.page.async.title": "Asynchronous Hexes",
+ "hexcassettes.page.async.0": "As part of their nature, _Hexes evaluate in their entirety instantly. To delay _Hexes, Nature has devised a quite the whimsical solution: a cassette tape that must be crafted and then \"consumed\". Each _Hex I request to delay takes up one cassette \"slot\" until it fires. These cassettes slots can be viewed when chatting or casting with a staff and I can simply click them to abort the _Hex.",
+ "hexcassettes.page.async.craft": "After crafting it by plating a music disc with a hefty amount of charged amethyst to facilitate the assimilation, I can $(o)consume$() it to add it to my mind's collection. I can only have six cassettes at a time and any more eaten will simply be wasted.",
+ "hexcasting.spell.hexcassettes:enqueue": "Enqueue",
+ "hexcassettes.page.enqueue.summary": "Enqueues a _Hex to cast after that many twentieths of a second. It takes an iota to use as the label for the cassette.",
+ "hexcassettes.page.async.1": "The label iota is used to distinguish cassettes from each other and only the first 32 characters are kept. Enqueuing two _Hexes with the same label overwrites the older one. If I attempt to enqueue more _Hexes than I have cassettes, I incur the Parallel Processing mishap which kills all my currently active cassettes.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.2": "Once a _Hex has been enqueued, I can open my chat screen to see all the cassettes I have eaten. Queued _Hexes are represented as inserted cassettes with their label rendered to the side, and by pressing an cassette, I can cancel the corresponding _Hex.$(br2)Dying also forcibly kills all of my cassettes so I can rest easy that I will not trap myself in an endless death cycle.",
+ "hexcassettes.page.async.3": "If a _Hex casts a near-identical copy of itself, a phenomenon emerges that ancient _Hexcasters call a daemon, which allow for passive _Hexcasting. Study into this branch of _Hexcasting seems limited and I shall be careful if I want to delve in: this type of casting uses exclusively the media from my inventory and if left unchecked, rapid automated casting can easily drain all my media and with nothing else to consume, my life.",
+ "hexcasting.spell.hexcassettes:dequeue": "Dequeue",
+ "hexcassettes.page.dequeue.summary": "I can also automate killing cassettes with this pattern. It takes an iota and dequeues the cassette with that label if it exists.",
+ "hexcasting.spell.hexcassettes:killall": "Disqueue",
+ "hexcassettes.page.killall.summary": "Terminates all cassettes, similar to the effects of the Parallel Processing mishap.",
+ "hexcasting.spell.hexcassettes:specs": "Threading Reflection",
+ "hexcassettes.page.specs.summary": "Pushes the total number of cassettes slots that I currently have.",
+ "hexcasting.spell.hexcassettes:free": "Threading Reflection II",
+ "hexcassettes.page.free.summary": "Pushes the number of non-busy cassette slots that I currently have.",
+ "hexcasting.spell.hexcassettes:inspect": "Program Purification",
+ "hexcassettes.page.inspect.summary": "Pushes null if I do not have an active cassette with that label, or the cassette's _Hex if I do. I hear rumors of this being used for iota storage and passing information between _Hexes.",
+ "hexcasting.spell.hexcassettes:foretell": "Program Purification II",
+ "hexcassettes.page.foretell.summary": "Pushes null if I do not have an active cassette with that label, or how many twentieths of a second until that cassette fires if I do.",
+ "hexcassettes.page.async.4": "I shall also note that rapidly changing cassette names (for example a cassette that enqueues itself with a different name) may be difficult to terminate. I can always resort to $(l:hexcassettes:async#hexcassettes:killall)$(action)Disqueue$() in such cases."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.19/assets/hexcassettes/hexcassettes/lang/zh_cn.json
new file mode 100644
index 000000000000..bacc31a260be
--- /dev/null
+++ b/projects/1.19/assets/hexcassettes/hexcassettes/lang/zh_cn.json
@@ -0,0 +1,39 @@
+{
+ "advancements.hexcassettes.quinio.title": "QUINIO",
+ "advancements.hexcassettes.quinio.description": "让咒术施放咒术",
+ "advancements.hexcassettes.tape_worm.title": "磁带长得像虫子?",
+ "advancements.hexcassettes.tape_worm.description": "吃下一盒磁带。",
+ "advancements.hexcassettes.full_arsenal.title": "完整专辑",
+ "advancements.hexcassettes.full_arsenal.description": "填满磁带库。",
+
+ "subtitles.hexcassettes.cassette_eject": "磁带:弹出",
+ "subtitles.hexcassettes.cassette_fail": "磁带:咔哒",
+ "subtitles.hexcassettes.cassette_insert": "磁带:插入",
+ "subtitles.hexcassettes.cassette_loop": "磁带:嗡嗡作响",
+
+ "item.hexcassettes.cassette": "磁带",
+
+ "hexcasting.mishap.hexcassettes:too_many_cassettes": "试图调度的咒术总数超出磁带的数量上限。",
+
+ "hexcassettes.page.async.title": "异步咒术",
+ "hexcassettes.page.async.0": "$(hex)咒术$()会瞬时完全施放,这是它们的本性。而为延迟$(hex)咒术$(),自然设计了一套有些奇怪的方案:一盒磁带,需要合成后“食用”的磁带。让一个$(hex)咒术$()延迟执行时,其会占用一个磁带“槽”,直至执行后再释放。可以在聊天栏中或用法杖施法时查看这些槽位,点击它们即可终止$(hex)咒术$()。",
+ "hexcassettes.page.async.craft": "为促使音乐唱片与媒质结合,我为其镀上了相当多的充能紫水晶,最终合成了磁带;$(o)食用$()即可收作己用。我最多只能同时持有六盒磁带,在此情况下再食用只会浪费。",
+ "hexcasting.spell.hexcassettes:enqueue": "入队列",
+ "hexcassettes.page.enqueue.summary": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。还需一个 iota 作为磁带的标签。",
+ "hexcassettes.page.async.1": "磁带间使用标签区分,且标签仅保留前 32 个字符。若令两个$(hex)咒术$()按照同一标签入队列,则新的会覆盖旧的。若我试图让入队$(hex)咒术$()的数量超出磁带的数量,那么就会招致“并行处理”事故,导致当前所有磁带终止。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.2": "所有入过队列的$(hex)咒术$()可在聊天栏处查看。队列中的$(hex)咒术$()表现为插入的磁带,其标签会出现在磁带侧面;按压磁带即可取消对应$(hex)咒术$()。$(br2)死亡时,所有磁带都会强制被终止;如此就能避免陷入无尽的死亡循环了。",
+ "hexcassettes.page.async.3": "如果一个$(hex)咒术$()施放了与其自身近乎相同的$(hex)咒术$(),便能达成常态$(hex)施法$()。古代的$(hex)咒术师$()称这种现象为“守护进程”。$(hex)咒法学$()的此分支似乎尚未得到深入研究,亲自深入时务必当心:此类施法方式只会使用物品栏中的媒质;若不加监管,快速的自动施法会轻松耗尽媒质储备,当什么都不剩的时候,抽取的就是生命力了。",
+ "hexcasting.spell.hexcassettes:dequeue": "出队列",
+ "hexcassettes.page.dequeue.summary": "还可用此图案自动终止磁带。接受一个 iota,若存在标签为所给 iota 的磁带,则令其出队列。",
+ "hexcasting.spell.hexcassettes:killall": "终止队列",
+ "hexcassettes.page.killall.summary": "终止所有磁带,效果与“并行处理”事故类似。",
+ "hexcasting.spell.hexcassettes:specs": "线程之精思",
+ "hexcassettes.page.specs.summary": "返回我目前的磁带槽总数。",
+ "hexcasting.spell.hexcassettes:free": "线程之精思,第二型",
+ "hexcassettes.page.free.summary": "返回我目前的空闲磁带槽总数。",
+ "hexcasting.spell.hexcassettes:inspect": "程序之纯化",
+ "hexcassettes.page.inspect.summary": "若所给标签无对应活动中磁带,返回 Null;若有,返回磁带的$(hex)咒术$()。我听传言称,这个图案能用来存储 iota,也可用来在$(hex)咒术$()间传递信息。",
+ "hexcasting.spell.hexcassettes:foretell": "程序之纯化,第二型",
+ "hexcassettes.page.foretell.summary": "若所给标签无对应活动中磁带,返回 Null;若有,返回其还需多少个 1/20 秒才启动。",
+ "hexcassettes.page.async.4": "名称快速切换的磁带会很难终止;比如,会使用新标签将自身入队列的磁带。此类情况需格外注意,但无论如何都有$(l:hexcassettes:async#hexcassettes:killall)$(action)终止队列$()作为兜底。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/en_us.json b/projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/en_us.json
new file mode 100644
index 000000000000..7869aad176df
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/en_us.json
@@ -0,0 +1,45 @@
+{
+ "advancements.hexcassettes.quinio.title": "QUINIO",
+ "advancements.hexcassettes.quinio.description": "Make a Hex cast a Hex.",
+ "advancements.hexcassettes.tape_worm.title": "Tape Worm?",
+ "advancements.hexcassettes.tape_worm.description": "Consume a cassette tape.",
+ "advancements.hexcassettes.full_arsenal.title": "Full Album",
+ "advancements.hexcassettes.full_arsenal.description": "Acquire a full arsenal of cassettes.",
+ "key.categories.hexcassettes": "Hexcassettes",
+ "key.hexcassettes.view_cassettes": "Ponder Cassettes",
+ "hexcasting.mishap.invalid_value.hex_or_index": "a Hex or an index for the cassette",
+ "item.hexcassettes.cassette": "Cassette",
+ "screen.hexical.cassette": "Cassettes",
+ "subtitles.hexcassettes.cassette_eject": "Cassette ejects",
+ "subtitles.hexcassettes.cassette_fail": "Cassette clicks",
+ "subtitles.hexcassettes.cassette_insert": "Cassette inserted",
+ "subtitles.hexcassettes.cassette_loop": "Cassette whirrs",
+
+ "hexcasting.mishap.hexcassettes:no_free_cassettes": "Could not find any free cassette to queue a Hex into.",
+ "hexcasting.mishap.hexcassettes:not_enough_cassettes": "Attempted to queue a Hex into a cassette index I do not have.",
+
+ "hexcassettes.page.async.title": "Asynchronous Hexes",
+ "hexcassettes.page.async.0": "As part of their nature, _Hexes evaluate in their entirety in one instant. To postpone _Hexes for later, Nature has devised quite the whimsical solution: a $(item)Cassette Tape$() that must be crafted and then \"consumed\". I may have up to six at any time. Each one holds a _Hex I requested to delay until that _Hex is ready to cast. After casting, the $(thing)Cassette$() becomes free to hold other _Hexes.",
+ "hexcassettes.page.async.craft": "After plating a $(item)Music Disc$() with a hefty amount of $(item)$(l:items/amethyst)Charged Amethyst$() to enable the $(o)abstraction$(), I can $(o)consume$() my glorious creation using a combination of magic, willpower, and a lot of chewing to add it to my mind's collection.",
+ "hexcasting.action.hexcassettes:enqueue": "Enqueue",
+ "hexcassettes.page.enqueue.summary.0": "Enqueues a _Hex to cast after that many twentieths of a second. Queues it into the first free $(thing)Cassette$() or the current $(thing)Cassette$() and pushes the index of that $(thing)Cassette$().",
+ "hexcassettes.page.async.1": "The index number is used to distinguish $(thing)Cassettes$() from each other. It ranges from 0 to one less than the number of $(thing)Cassettes$() I have in my mind's collection. If $(l:async#hexcassettes:enqueue)$(action)Enqueue$() can not find a free $(thing)Cassette$(), incurs the Parallel Processing mishap, killing all my active $(thing)Cassettes$().$(br2)Seems to hint that my reality has a disturbingly low $(o)temporal resolution$().. best not to dwell on that.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.2": "I can ponder my $(thing)Cassettes$() by pressing $(thing)$(k:hexcassettes.view_cassettes)$() and cycle through them with the arrow keys. Queued _Hexes are represented as inserted $(thing)Cassettes$() with their label rendered to the side, and by pressing an $(thing)Cassette$(), I can cancel the corresponding _Hex.$(br2)Dying also forcibly disqueues all of my $(thing)Cassettes$(). I can rest easy that I will not trap myself in an endless death cycle.",
+ "hexcassettes.page.async.3": "If a $(thing)Cassette$() enqueues a near-identical copy of itself, a phenomenon emerges that ancient _Hexcasters call a daemon: passive, constant _Hexcasting. Study into this branch of _Hexcasting seems limited due to the great danger of manipulating time: $(thing)Cassette$() _Hexes exclusively use the _media from my inventory. If left unchecked, it can easily drain my _media and then my life.",
+ "hexcasting.action.hexcassettes:dequeue": "Dequeue",
+ "hexcassettes.page.dequeue.summary": "Dequeues the $(thing)Cassette$() at the provided index, freeing it instantly and cancelling the _Hex within it.",
+ "hexcasting.action.hexcassettes:killall": "Disqueue",
+ "hexcassettes.page.killall.summary": "Dequeues all $(thing)Cassettes$(). Useful for ouroboros-like _Hexes that bypass regular dequeuing via two mutually resurrecting $(thing)Cassettes$().",
+ "hexcasting.action.hexcassettes:specs": "Threading Reflection",
+ "hexcassettes.page.specs.summary": "Pushes the total number of $(thing)Cassettes$() that I have in my mind's collection.",
+ "hexcasting.action.hexcassettes:free": "Idling Reflection",
+ "hexcassettes.page.free.summary": "Pushes a list of the indices of my non-busy $(thing)Cassettes$().",
+ "hexcasting.action.hexcassettes:inspect": "Program Purification",
+ "hexcassettes.page.inspect.summary": "Pushes $(l:casting/influences)$(thing)Null$() if I do not have an active $(thing)Cassette$() at that index, or the $(thing)Cassette$()'s _Hex if I do. I hear rumors of this being used for iota storage and passing information between _Hexes.",
+ "hexcasting.action.hexcassettes:foretell": "Oracle Purification",
+ "hexcassettes.page.foretell.summary": "Pushes $(l:casting/influences)$(thing)Null$() if I do not have an active $(thing)Cassette$() at that index, or how many twentieths of a second until that $(thing)Cassette$() fires if I do.",
+ "hexcassettes.page.enqueue.summary.1": "A variant of $(l:async#hexcassettes:enqueue)$(action)Enqueue$() that takes an index right after the _Hex. It will force that $(thing)Cassette$()'s _Hex to the new one, regardless if one exists.",
+ "hexcassettes.page.async.4": "If that index does not exist, incurs the Memory Overflow mishap, killing all my active $(thing)Cassettes$().",
+ "hexcasting.action.hexcassettes:self": "State Reflection",
+ "hexcassettes.page.self.summary": "Pushes the current index of the $(thing)Cassette$() this _Hex is running in or $(l:casting/influences)$(thing)Null$() if it is not running in a $(thing)Cassette$()."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/zh_cn.json
new file mode 100644
index 000000000000..bf0b4c4e76fc
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/zh_cn.json
@@ -0,0 +1,45 @@
+{
+ "advancements.hexcassettes.quinio.title": "QUINIO",
+ "advancements.hexcassettes.quinio.description": "让咒术施放咒术",
+ "advancements.hexcassettes.tape_worm.title": "磁带长得像虫子?",
+ "advancements.hexcassettes.tape_worm.description": "吃下一盒磁带。",
+ "advancements.hexcassettes.full_arsenal.title": "完整专辑",
+ "advancements.hexcassettes.full_arsenal.description": "填满磁带库。",
+ "key.categories.hexcassettes": "Hexcassettes",
+ "key.hexcassettes.view_cassettes": "思索磁带",
+ "hexcasting.mishap.invalid_value.hex_or_index": "一个咒术或一个磁带索引",
+ "item.hexcassettes.cassette": "磁带",
+ "screen.hexical.cassette": "磁带",
+ "subtitles.hexcassettes.cassette_eject": "磁带:弹出",
+ "subtitles.hexcassettes.cassette_fail": "磁带:咔哒",
+ "subtitles.hexcassettes.cassette_insert": "磁带:插入",
+ "subtitles.hexcassettes.cassette_loop": "磁带:嗡嗡作响",
+
+ "hexcasting.mishap.hexcassettes:no_free_cassettes": "无法找到可供咒术排队的空闲磁带。",
+ "hexcasting.mishap.hexcassettes:not_enough_cassettes": "试图将咒术排入未持有的磁带队列索引。",
+
+ "hexcassettes.page.async.title": "异步咒术",
+ "hexcassettes.page.async.0": "$(hex)咒术$()会在单个时间片段内完全施放,这是它们的本性。而为延迟$(hex)咒术$(),自然设计了一套有些奇怪的方案:$(item)一盒磁带$(),需要“食用”的磁带。我最多可同时持有六盒磁带。每盒磁带都可容纳单个需延迟执行的$(hex)咒术$(),直至可以施放时再施放。此后,该$(thing)磁带$()会空出,供其他$(hex)咒术$()使用。",
+ "hexcassettes.page.async.craft": "为促使$(item)音乐唱片$()与$(media)媒质$()$(o)融合$(),我为其镀上了相当多的$(item)$(l:items/amethyst)充能紫水晶$()。所得的智慧结晶需要$(o)食用$(),魔法、意志、持之以恒地咀嚼,三者缺一不可;这一过程后,即可将其收作己用。",
+ "hexcasting.action.hexcassettes:enqueue": "入队列",
+ "hexcassettes.page.enqueue.summary": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。$(hex)咒术$()会进入第一个空闲的$(thing)磁带$(),或进入当前$(thing)磁带$(),同时返回该$(thing)磁带$()的索引。",
+ "hexcassettes.page.async.1": "$(thing)磁带$()间使用索引数区分。索引自 0 起始,至目前意识中$(thing)磁带$()的总数之前为止。如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故:终止所有活跃中的$(thing)磁带$()。$(br2)这似乎表明我所处现实的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.2": "按下$(thing)$(k:hexcassettes.view_cassettes)$()键可以思索$(thing)磁带$(),使用方向键可循环切换。已入队列的$(hex)咒术$()会显现为插入的$(thing)磁带$(),同时在侧面显示其标签。按压$(thing)磁带$()可以取消对应$(hex)咒术$()。$(br2)死亡也会强制将所有$(thing)磁带$()清出队列。如此就无需担心了——我不会陷入无穷无尽的死亡循环了。",
+ "hexcassettes.page.async.3": "若$(thing)磁带$()将其自身的副本稍加改动后入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()中$(hex)咒术$()只会消耗物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。",
+ "hexcasting.action.hexcassettes:dequeue": "出队列",
+ "hexcassettes.page.dequeue.summary": "令所给索引处的$(thing)磁带$()出队列,让其进入空闲状态,并取消其中$(hex)咒术$()。",
+ "hexcasting.action.hexcassettes:killall": "终止队列",
+ "hexcassettes.page.killall.summary": "令所有$(thing)磁带$()出队列。很适合给那些和衔尾蛇一样的$(hex)咒术$()用:两个互相激活的$(thing)磁带$()无法以常规手段出队列。",
+ "hexcasting.action.hexcassettes:specs": "线程之精思",
+ "hexcassettes.page.specs.summary": "返回我意识中当前的$(thing)磁带$()总数。",
+ "hexcasting.action.hexcassettes:free": "空闲之精思",
+ "hexcassettes.page.free.summary": "返回我意识中当前的空闲$(thing)磁带$()索引列表。",
+ "hexcasting.action.hexcassettes:inspect": "程序之纯化",
+ "hexcassettes.page.inspect.summary": "若所给索引处$(thing)磁带$()不处于活跃状态,返回 $(l:casting/influences)$(thing)Null$();否则返回其中$(hex)咒术$()。我听过一些传言,说这个图案可以用来存储 iota,也可以用来在$(hex)咒术$()间传递信息。",
+ "hexcasting.action.hexcassettes:foretell": "先知之纯化",
+ "hexcassettes.page.foretell.summary": "若所给索引处$(thing)磁带$()不处于活跃状态,返回 $(l:casting/influences)$(thing)Null$();否则返回该$(thing)磁带$()会在多少个 1/20 秒后施放。",
+ "hexcassettes.page.enqueue.summary.1": "$(l:async#hexcassettes:enqueue)$(action)入队列$()的一个变种,在$(hex)咒术$()后还需向其提供一个索引。它会强制将该$(thing)磁带$()中的$(hex)咒术$()换为所给参数,无论原先里面有没有$(hex)咒术$()。",
+ "hexcassettes.page.async.4": "如果所给的索引不存在,则招致“内存溢出”事故:终止所有活跃中的$(thing)磁带$()。",
+ "hexcasting.action.hexcassettes:self": "状态之精思",
+ "hexcassettes.page.self.summary": "返回当前$(hex)咒术$()所在$(thing)磁带$()的索引。若不在$(thing)磁带$()中运行,则返回 $(l:casting/influences)$(thing)Null$()。"
+}
\ No newline at end of file
From de477c7347485b549c52e724adf3a4e13683885c Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 22:08:51 +0800
Subject: [PATCH 08/78] Hexcellular HexChanting create
---
.../hexcassettes/lang/en_us.json | 0
.../hexcassettes/lang/zh_cn.json | 0
.../hexcellular/lang/en_us.json | 18 +++++++++++++++
.../hexcellular/lang/zh_cn.json | 18 +++++++++++++++
.../1UNKNOWN/hexchanting/lang/en_us.json | 22 +++++++++++++++++++
.../1UNKNOWN/hexchanting/lang/zh_cn.json | 22 +++++++++++++++++++
.../hexcassettes/lang/en_us.json | 0
.../hexcassettes/lang/zh_cn.json | 0
.../hexcellular/lang/en_us.json | 18 +++++++++++++++
.../hexcellular/lang/zh_cn.json | 18 +++++++++++++++
10 files changed, 116 insertions(+)
rename projects/1.19/assets/{hexcassettes => modrinth-hexcassettes}/hexcassettes/lang/en_us.json (100%)
rename projects/1.19/assets/{hexcassettes => modrinth-hexcassettes}/hexcassettes/lang/zh_cn.json (100%)
create mode 100644 projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
rename projects/1.20-fabric/assets/{hexcassettes => modrinth-hexcassettes}/hexcassettes/lang/en_us.json (100%)
rename projects/1.20-fabric/assets/{hexcassettes => modrinth-hexcassettes}/hexcassettes/lang/zh_cn.json (100%)
create mode 100644 projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
diff --git a/projects/1.19/assets/hexcassettes/hexcassettes/lang/en_us.json b/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
similarity index 100%
rename from projects/1.19/assets/hexcassettes/hexcassettes/lang/en_us.json
rename to projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
diff --git a/projects/1.19/assets/hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
similarity index 100%
rename from projects/1.19/assets/hexcassettes/hexcassettes/lang/zh_cn.json
rename to projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
diff --git a/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/en_us.json b/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
new file mode 100644
index 000000000000..d307c782b527
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
@@ -0,0 +1,18 @@
+{
+ "hexcasting.spell.book.hexcellular:create_property": "Schrödinger's Refl.",
+ "hexcasting.spell.book.hexcellular:observe_property": "Observation Purif.",
+ "hexcasting.spell.book.hexcellular:set_property": "Schrödinger's Gambit",
+
+ "hexcasting.mishap.invalid_value.class.property": "a property iota",
+
+ "hexcellular.page.properties.title": "Property Iota",
+ "hexcellular.page.properties.0": "Using Hexcasting, I can etch information into the laws of the universe themselves. These artificial bits of information are fittingly called properties and they can be accessed from anywhere with a property iota. Two hexcasters with copies of the same property can set the property's iota and read it to instantly share the iota with each other.",
+ "hexcellular.page.properties.1": "I can also use it to communicate $(o)state$() within and between my Hexcasting appliances. For instance, a $(l:items/hexcasting)casting device$() that uses a property that it increments in order to keep track of how many times it has been used and do something different each time.$(br2)$(o)Spooky action from a distance...$()",
+ "hexcasting.spell.hexcellular:create_property": "Schrödinger's Reflection",
+ "hexcellular.page.create_property.summary": "Pushes a reference to a random property. Costs one charged amethyst to burn this property into the universe.",
+ "hexcellular.page.properties.2": "When creating a property, the spell pushes a property iota with a randomly generated name. This name is the only reference to the created property. I should immediately store these property iota for safe-keeping because there is no way to recover one once all references to it have been lost and the only ways to interact with a property is through its iota.",
+ "hexcasting.spell.hexcellular:observe_property": "Observation Purification",
+ "hexcellular.page.observe_property.summary": "Observes the current value of the property iota. Free to use.",
+ "hexcasting.spell.hexcellular:set_property": "Schrödinger's Gambit",
+ "hexcellular.page.set_property.summary": "Sets the property iota. Costs about a tenth of a dust. All future observations of the property iota return the new value."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
new file mode 100644
index 000000000000..4261cbad38eb
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
@@ -0,0 +1,18 @@
+{
+ "hexcasting.spell.book.hexcellular:create_property": "薛定谔之精思",
+ "hexcasting.spell.book.hexcellular:observe_property": "观测之纯化",
+ "hexcasting.spell.book.hexcellular:set_property": "薛定谔之策略",
+
+ "hexcasting.mishap.invalid_value.class.property": "一个质性iota",
+
+ "hexcellular.page.properties.title": "质性 Iota",
+ "hexcellular.page.properties.0": "借助咒法学的力量,即可向宇宙的法则中直接刻入信息。这种信息粒有个相当恰当的名字——“质性”/“property”,可以在世界各处通过质性 iota 访问。持有同一质性的副本的两位咒术师在对质性写入后立即读取,即能共享写入的 iota。",
+ "hexcellular.page.properties.1": "还可用其在咒法学设备间共享$(o)状态$()。比如说,$(l:items/hexcasting)施法设备$()使用的质性可以不断递增,以此记录设备的使用次数,以便在不同次数时做出不同操作。$(br2)$(o)鬼魅般的超距作用……$()",
+ "hexcasting.spell.hexcellular:create_property": "薛定谔之精思",
+ "hexcellular.page.create_property.summary": "压入一个代表随机质性的 iota。向宇宙烧录质性需要消耗 1 个充能紫水晶。",
+ "hexcellular.page.properties.2": "创建质性时会随机生成一个名称,此名称是该质性的唯一引用。为保险起见,创建后应当立刻存下一份副本;否则所有代表此质性的 iota 丢失,质性即无法找回,而此该质性的交互只能经由该 iota 进行。",
+ "hexcasting.spell.hexcellular:observe_property": "观测之纯化",
+ "hexcellular.page.observe_property.summary": "观测质性 iota 当前的值。无需消耗媒质。",
+ "hexcasting.spell.hexcellular:set_property": "薛定谔之策略",
+ "hexcellular.page.set_property.summary": "设置质性 iota 的值。消耗大约 1/10 个紫水晶粉。此后所有对其的观测都会返回新设置的值。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json
new file mode 100644
index 000000000000..ebb601287179
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json
@@ -0,0 +1,22 @@
+{
+ "item.hexchanting.amethyst_arrow": "Amethyst Arrow",
+ "item.hexchanting.amethyst_axe": "Amethyst Axe",
+ "item.hexchanting.amethyst_boots": "Amethyst Boots",
+ "item.hexchanting.amethyst_chestplate": "Amethyst Chestplate",
+ "item.hexchanting.amethyst_helmet": "Amethyst Helmet",
+ "item.hexchanting.amethyst_hoe": "Amethyst Hoe",
+ "item.hexchanting.amethyst_leggings": "Amethyst Leggings",
+ "item.hexchanting.amethyst_pickaxe": "Amethyst Pickaxe",
+ "item.hexchanting.amethyst_shovel": "Amethyst Shovel",
+ "item.hexchanting.amethyst_sword": "Amethyst Sword",
+ "hexcasting.action.hexchanting:imbue_equipment": "Imbue Equipment",
+ "hexchanting.page.imbuing.title": "Imbuing Equipment",
+ "hexchanting.page.imbuing.0": "I have found uses for many of Nature's resources outside of my work with _Hexes, such as the construction of tools and armaments. It follows that I am able to do the same with amethyst. If I can align the crystalline structure correctly they can even channel media to cast Hexes.",
+ "hexchanting.page.imbuing.1": "After experimentation I have found that charged amethyst works best when crafting equipment. By substituting it for a material like iron or diamond I can craft items with comparable performance to their diamond equivalents, though less durable. Their true strength is how they interact with the world. When used they resonate with the surrounding media, providing a guide for hexes channeled through them.",
+ "hexchanting.page.imbuing.2": "Compromises have had to be made in the creation of these tools. They must be fed with external media when casting else they will cannibalize their own materials, possibly to the point of destruction. This is similar to a $(l:items/hexcasting)$(item)Cypher/$, though these tools can be recharged.",
+ "hexchanting.page.imbuing.3": "Regular use also slowly drains this reservoir - I believe the media is being expended healing damage to the structure of the amethyst. Conventional means of equipment repair have proved ineffective due to difficulties in integrating a new matrix into the existing crystal.",
+ "hexchanting.page.imbuing.4": "My attempts to craft a bow on similar principles have failed. Amethyst simply doesn't have the flexibility required. I have instead resorted to crafting arrows with amethyst shards, in place of flint. These can be imbued like my other amethyst equipment but they can only draw on their internal media, which is comparable to an amethyst shard. I am sure I could craft an equivalent out of media alone, but there are niches where I may find this useful.",
+ "hexchanting.page.imbue_equipment.summary.0": "Imbues the supplied hexes into the item in my other hand, so that they will be cast whenever the item is used.",
+ "hexchanting.page.imbue_equipment.summary.1": "For tools (axes, hoes, pickaxes and shovels) this triggers after breaking a block. The stack is initialized with the location of the broken block. Break block spells cast through this tool behave as if broken by the tool, which includes any enchantment effects. Swords cast on hit and push the targeted entity to the stack.",
+ "hexchanting.page.imbue_equipment.summary.2": "Armour is more complicated: it casts when the wearer takes damage and pushes the attacking entity, source entity, position and amount to the stack. All but the last may be null, as Nature perceives things in strange ways. Arrows cast when they hit an entity, pushing themself and their target to the stack."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
new file mode 100644
index 000000000000..fe77f3e25c3f
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
@@ -0,0 +1,22 @@
+{
+ "item.hexchanting.amethyst_arrow": "紫水晶箭",
+ "item.hexchanting.amethyst_axe": "紫水晶斧",
+ "item.hexchanting.amethyst_boots": "紫水晶靴子",
+ "item.hexchanting.amethyst_chestplate": "紫水晶胸甲",
+ "item.hexchanting.amethyst_helmet": "紫水晶头盔",
+ "item.hexchanting.amethyst_hoe": "紫水晶锄",
+ "item.hexchanting.amethyst_leggings": "紫水晶护腿",
+ "item.hexchanting.amethyst_pickaxe": "紫水晶镐",
+ "item.hexchanting.amethyst_shovel": "紫水晶锹",
+ "item.hexchanting.amethyst_sword": "紫水晶剑",
+ "hexcasting.action.hexchanting:imbue_equipment": "装备融能",
+ "hexchanting.page.imbuing.title": "为装备融能",
+ "hexchanting.page.imbuing.0": "在$(hex)咒术$()之外,我还发现了自然所赐许多资源的其他用途,就比如说可以制造工具和兵器。紫水晶也能做到这些,可谓顺理成章。要是能把其中的晶体结构也正确对齐,它们甚至还能介导媒质、施放咒术。",
+ "hexchanting.page.imbuing.1": "实验表明,充能紫水晶在合成装备这一方面表现最好。把它放到原本属于铁和钻石等材料的位置里即可,所制成物品的性能与用钻石制成的相当,但前者不如后者耐用。这些装备真正的强大之处,在于它们与世界交互的方式。使用时,它们会与周围的媒质共振,从而为沿自身穿梭的咒术提供引导。",
+ "hexchanting.page.imbuing.2": "取舍在这些工具的制造过程中不可避免。施法时,必须为其提供外源媒质,否则它们便会侵蚀构成自身的材料,甚至可能侵蚀到完全损毁。这一性质与$(l:items/hexcasting)$(item)杂件/$类似;不同之处在于,这些工具可以充能。",
+ "hexchanting.page.imbuing.3": "常规的使用也会缓慢消耗它们自身的媒质——我想应该是用来修复紫水晶结构中的损伤了。而因为已有的晶体和新基质难以整合,传统的修复流程对这些工具效果不佳。",
+ "hexchanting.page.imbuing.4": "我尝试过用这种材料制弓,但失败了。紫水晶的刚度太高了。之后,我改为用紫水晶碎片代替燧石合成箭。这些箭可像其他紫水晶装备一样融能,但它们只能使用其自身的媒质:大约相当于 1 个紫水晶碎片。我确信我可以只用媒质就做出同样功能的东西,不过这些箭还是有着它们独特的长处的。",
+ "hexchanting.page.imbue_equipment.summary.0": "将所给咒术融注入另一只手中的物品,每次使用该物品时即会施放该咒术。",
+ "hexchanting.page.imbue_equipment.summary.1": "对于工具(斧、锄、镐、锹)而言,咒术会在破坏方块后触发。此时栈以所破坏方块的位置起始。若是经由这些工具施放破坏方块法术,表现会与使用该工具破坏一致,魔咒也算在内。剑会在击中敌人时施法,起始栈为所击中的实体。",
+ "hexchanting.page.imbue_equipment.summary.2": "盔甲的机制稍显复杂:它们会在穿戴者受到伤害时施法,并向起始栈中压入进行攻击的实体、来源实体、位置、伤害。除最后一个参数外,其他参数均可能为 Null。自然看待事物的眼光很奇特。箭会在命中实体时施法,并向其栈压入其自身和其目标。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
similarity index 100%
rename from projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/en_us.json
rename to projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
diff --git a/projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
similarity index 100%
rename from projects/1.20-fabric/assets/hexcassettes/hexcassettes/lang/zh_cn.json
rename to projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
new file mode 100644
index 000000000000..c0b0b6b4565d
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
@@ -0,0 +1,18 @@
+{
+ "hexcasting.action.book.hexcellular:create_property": "Schrödinger's Refl.",
+ "hexcasting.action.book.hexcellular:observe_property": "Observation Purif.",
+ "hexcasting.action.book.hexcellular:set_property": "Schrödinger's Gambit",
+
+ "hexcasting.mishap.invalid_value.class.property": "a property iota",
+
+ "hexcellular.page.properties.title": "Property Iota",
+ "hexcellular.page.properties.0": "Using Hexcasting, I can etch information into the laws of the universe themselves. These artificial bits of information are fittingly called properties and they can be accessed from anywhere with a property iota. Two hexcasters with copies of the same property can set the property's iota and read it to instantly share the iota with each other.",
+ "hexcellular.page.properties.1": "I can also use it to communicate $(o)state$() within and between my Hexcasting appliances. For instance, a $(l:items/hexcasting)casting device$() that uses a property that it increments in order to keep track of how many times it has been used and do something different each time.$(br2)$(o)Spooky action from a distance...$()",
+ "hexcasting.action.hexcellular:create_property": "Schrödinger's Reflection",
+ "hexcellular.page.create_property.summary": "Pushes a reference to a random property. Costs one charged amethyst to burn this property into the universe.",
+ "hexcellular.page.properties.2": "When creating a property, the spell pushes a property iota with a randomly generated name. This name is the only reference to the created property. I should immediately store these property iota for safe-keeping because there is no way to recover one once all references to it have been lost and the only ways to interact with a property is through its iota.",
+ "hexcasting.action.hexcellular:observe_property": "Observation Purification",
+ "hexcellular.page.observe_property.summary": "Observes the current value of the property iota. Free to use.",
+ "hexcasting.action.hexcellular:set_property": "Schrödinger's Gambit",
+ "hexcellular.page.set_property.summary": "Sets the property iota. Costs about a tenth of a dust. All future observations of the property iota return the new value."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
new file mode 100644
index 000000000000..1bc6197e74be
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
@@ -0,0 +1,18 @@
+{
+ "hexcasting.action.book.hexcellular:create_property": "薛定谔之精思",
+ "hexcasting.action.book.hexcellular:observe_property": "观测之纯化",
+ "hexcasting.action.book.hexcellular:set_property": "薛定谔之策略",
+
+ "hexcasting.mishap.invalid_value.class.property": "一个质性iota",
+
+ "hexcellular.page.properties.title": "质性 Iota",
+ "hexcellular.page.properties.0": "借助咒法学的力量,即可向宇宙的法则中直接刻入信息。这种信息粒有个相当恰当的名字——“质性”/“property”,可以在世界各处通过质性 iota 访问。持有同一质性的副本的两位咒术师在对质性写入后立即读取,即能共享写入的 iota。",
+ "hexcellular.page.properties.1": "还可用其在咒法学设备间共享$(o)状态$()。比如说,$(l:items/hexcasting)施法设备$()使用的质性可以不断递增,以此记录设备的使用次数,以便在不同次数时做出不同操作。$(br2)$(o)鬼魅般的超距作用……$()",
+ "hexcasting.action.hexcellular:create_property": "薛定谔之精思",
+ "hexcellular.page.create_property.summary": "压入一个代表随机质性的 iota。向宇宙烧录质性需要消耗 1 个充能紫水晶。",
+ "hexcellular.page.properties.2": "创建质性时会随机生成一个名称,此名称是该质性的唯一引用。为保险起见,创建后应当立刻存下一份副本;否则所有代表此质性的 iota 丢失,质性即无法找回,而此该质性的交互只能经由该 iota 进行。",
+ "hexcasting.action.hexcellular:observe_property": "观测之纯化",
+ "hexcellular.page.observe_property.summary": "观测质性 iota 当前的值。无需消耗媒质。",
+ "hexcasting.action.hexcellular:set_property": "薛定谔之策略",
+ "hexcellular.page.set_property.summary": "设置质性 iota 的值。消耗大约 1/10 个紫水晶粉。此后所有对其的观测都会返回新设置的值。"
+}
\ No newline at end of file
From eec39ac7f40848b2853ed4e1de854d22adb026a9 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 22:28:14 +0800
Subject: [PATCH 09/78] Hexecuteif HexGender create
---
.../hexecuteif/lang/en_us.json | 89 +++++++++++++++++++
.../hexecuteif/lang/zh_cn.json | 89 +++++++++++++++++++
.../assets/hexgender/hexgender/README.md | 1 +
.../hexgender}/hexgender/lang/en_us.json | 0
.../hexgender/hexgender/packer-policy.json | 7 ++
.../hexgender/hexgender/lang/en_us.json | 45 ++++++++++
.../hexgender/lang/zh_cn.json | 0
7 files changed, 231 insertions(+)
create mode 100644 projects/1.19/assets/modrinth-hexecuteif/hexecuteif/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-hexecuteif/hexecuteif/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/hexgender/hexgender/README.md
rename projects/{1.20/assets/modrinth-hexgender => 1.20-fabric/assets/hexgender}/hexgender/lang/en_us.json (100%)
create mode 100644 projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
create mode 100644 projects/1.20/assets/hexgender/hexgender/lang/en_us.json
rename projects/1.20/assets/{modrinth-hexgender => hexgender}/hexgender/lang/zh_cn.json (100%)
diff --git a/projects/1.19/assets/modrinth-hexecuteif/hexecuteif/lang/en_us.json b/projects/1.19/assets/modrinth-hexecuteif/hexecuteif/lang/en_us.json
new file mode 100644
index 000000000000..77fffa89f2fd
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexecuteif/hexecuteif/lang/en_us.json
@@ -0,0 +1,89 @@
+{
+ "hexcasting.spell.hexecuteif:eval_if": "Hermes' Deliberation",
+ "hexcasting.spell.hexecuteif:halt_if": "Charon's Caution",
+ "hexcasting.spell.book.hexecuteif:eval_if": "Hermes' Deliberation",
+ "hexcasting.spell.book.hexecuteif:halt_if": "Charon's Caution",
+ "hexecuteif.entry.meta": "HexecuteIf Meta",
+ "hexecuteif.page.meta.eval_if.1": "This spell will assess the current magical environment and selectively execute further spells if and only if the preconditions set by the caster are met.",
+ "hexecuteif.page.meta.eval_if.2": "This adaptation of $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ allows the caster to perform complex spells with a conditional gateway, ensuring they are only cast when beneficial or safe.",
+ "hexecuteif.page.meta.halt_if.1": "Similar to $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ this spell stops the execution of subsequent spells, but only if a specific condition is true.",
+ "hexecuteif.page.meta.halt_if.2": "It acts as a safety net, ensuring that potentially dangerous or unwanted spells are halted under certain circumstances.",
+
+
+
+
+ "hexcasting.spell.hexecuteif:can_break_block": "Can Break Block",
+ "hexcasting.spell.hexecuteif:can_place_block": "Can Place Block",
+ "hexcasting.spell.book.hexecuteif:can_break_block": "Can Break Block",
+ "hexcasting.spell.book.hexecuteif:can_place_block": "Can Place Block",
+ "hexecuteif.entry.blocks": "HexecuteIf Blocks",
+ "hexecuteif.page.blocks.can_break_block": "Takes the position of a block and checks whether it can be broken.",
+ "hexecuteif.page.blocks.can_place_block": "Accepts the position and flag for checking for liquid, and then checks whether it is possible to place a block in this place",
+
+
+
+
+ "hexcasting.spell.hexecuteif:inv_slot_count": "Inventory Size",
+ "hexcasting.spell.book.hexecuteif:inv_slot_count": "Inventory Size",
+
+ "hexcasting.spell.hexecuteif:inv_occupied_slots": "Occupied Slots",
+ "hexcasting.spell.book.hexecuteif:inv_occupied_slots": "Occupied Slots",
+
+ "hexcasting.spell.hexecuteif:inv_slot_item_count": "Number of Items in Slot",
+ "hexcasting.spell.book.hexecuteif:inv_slot_item_count": "Number of Items in Slot",
+
+ "hexcasting.spell.hexecuteif:inv_drop_item": "Throw Item",
+ "hexcasting.spell.book.hexecuteif:inv_drop_item": "Throw Item",
+
+ "hexcasting.spell.hexecuteif:inv_transfer_item": "Transfer Item",
+ "hexcasting.spell.book.hexecuteif:inv_transfer_item": "Transfer Item",
+
+ "hexecuteif.entry.inventory": "HexecuteIf Inventory",
+ "hexecuteif.page.inventory.inv_slot_count": "This function accepts an Inventory Holder as its parameter and returns the total number of slots available in the inventory. It helps determine the maximum capacity of the inventory.",
+ "hexecuteif.page.inventory.inv_occupied_slots": "This function accepts an Inventory Holder as its parameter and returns a list of slots that are currently in use. Each element in the list represents a slot that contains at least one item.",
+ "hexecuteif.page.inventory.inv_slot_item_count": "This function takes an Inventory Holder and a slot index as parameters. It returns the number of items present in the specified slot. It is important to note that the slot must contain items, and it cannot be empty.",
+ "hexecuteif.page.inventory.inv_drop_item.1": "This function accepts an Inventory Holder, a slot index, and a number as parameters.",
+ "hexecuteif.page.inventory.inv_drop_item.2": "It removes the specified number of items from the given slot in the inventory. The slot must contain items, ensuring that the function does not attempt to remove items from an empty slot.",
+ "hexecuteif.page.inventory.inv_transfer_item.1": "$(br)This function requires a source Inventory Holder, a source slot index, a target Inventory Holder, a target slot index, and a number as parameters.",
+ "hexecuteif.page.inventory.inv_transfer_item.2": "It transfers the specified number of items from the source slot in the source inventory to the target slot in the target inventory. The source slot must not be empty, and the target slot must be empty. Additionally, the number of items to be moved must be at least 1 and no more than the total number of items in the source slot.",
+
+
+
+
+ "hexcasting.mishap.can_not_access_to_container_inventory": "You can't access to any containers by this spell",
+ "hexcasting.mishap.can_not_access_to_player_inventory": "You can't access to any player by this spell",
+
+ "hexcasting.mishap.can_not_modify_container_inventory": "You can't modify any container inventory by this spell",
+ "hexcasting.mishap.can_not_modify_player_inventory": "You can't modify any player inventory by this spell",
+
+ "hexcasting.mishap.invalid_value.slot.empty": "Empty Slot Index",
+ "hexcasting.mishap.invalid_value.slot.not_empty": "Not Empty Slot Index",
+ "hexcasting.mishap.invalid_value.inventory_holder": "Container Block or Player",
+
+ "hexecuteif.mishap.excepted_block.block_entity": "Block Entity",
+ "hexecuteif.mishap.excepted_block.container": "Container",
+
+ "text.autoconfig.hexecuteif.title": "HexecuteId Config",
+
+ "text.autoconfig.hexecuteif.category.common": "Common",
+ "text.autoconfig.hexecuteif.category.client": "Client",
+ "text.autoconfig.hexecuteif.category.server": "Server",
+
+ "text.autoconfig.hexecuteif.option.common.multiplyContainerAccess": "Media Multiply On Container",
+ "text.autoconfig.hexecuteif.option.common.multiplyContainerAccess.@Tooltip": "How much will the amount of media required to use spells that require access to the container's inventory be multiplied?",
+
+ "text.autoconfig.hexecuteif.option.common.multiplyPlayerAccess": "Media Multiply On Player",
+ "text.autoconfig.hexecuteif.option.common.multiplyPlayerAccess.@Tooltip": "How much will the amount of media required to use spells that require access to the player’s inventory be multiplied?",
+
+ "text.autoconfig.hexecuteif.option.common.canAccessContainer": "Can Access To Container",
+ "text.autoconfig.hexecuteif.option.common.canAccessContainer.@Tooltip": "Can a spell that requires access to inventory work with a container?",
+
+ "text.autoconfig.hexecuteif.option.common.canAccessPlayer": "Can Access To Player",
+ "text.autoconfig.hexecuteif.option.common.canAccessPlayer.@Tooltip": "Can a spell that requires access to inventory work with a player?",
+
+ "text.autoconfig.hexecuteif.option.common.canModifyContainer": "Can Modify Container",
+ "text.autoconfig.hexecuteif.option.common.canModifyContainer.@Tooltip": "Can a spell that changes inventory items work with a container?",
+
+ "text.autoconfig.hexecuteif.option.common.canModifyPlayer": "Can Modify Player",
+ "text.autoconfig.hexecuteif.option.common.canModifyPlayer.@Tooltip": "Can a spell that changes inventory items work with a player?"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexecuteif/hexecuteif/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexecuteif/hexecuteif/lang/zh_cn.json
new file mode 100644
index 000000000000..d63910c97fea
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexecuteif/hexecuteif/lang/zh_cn.json
@@ -0,0 +1,89 @@
+{
+ "hexcasting.spell.hexecuteif:eval_if": "赫尔墨斯之审慎",
+ "hexcasting.spell.hexecuteif:halt_if": "卡戎之谨慎",
+ "hexcasting.spell.book.hexecuteif:eval_if": "赫尔墨斯之审慎",
+ "hexcasting.spell.book.hexecuteif:halt_if": "卡戎之谨慎",
+ "hexecuteif.entry.meta": "HexecuteIf 元运行",
+ "hexecuteif.page.meta.eval_if.1": "此法术会评估当前法术环境,当且仅当施法者设置的条件达成时才会执行。",
+ "hexecuteif.page.meta.eval_if.2": "此$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$改版可以根据条件选择执行复杂法术与否,以此确保它们只在安全或合适的情况下施放。",
+ "hexecuteif.page.meta.halt_if.1": "与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略/$类似,此法术会阻止后续法术的执行,但仅在给定条件为真时阻止。",
+ "hexecuteif.page.meta.halt_if.2": "它像是某种安全保障措施,在特定情况下会阻止施放有危险性或不必要的法术。",
+
+
+
+
+ "hexcasting.spell.hexecuteif:can_break_block": "可破坏方块",
+ "hexcasting.spell.hexecuteif:can_place_block": "可放置方块",
+ "hexcasting.spell.book.hexecuteif:can_break_block": "可破坏方块",
+ "hexcasting.spell.book.hexecuteif:can_place_block": "可放置方块",
+ "hexecuteif.entry.blocks": "HexecuteIf 方块操作",
+ "hexecuteif.page.blocks.can_break_block": "接受方块的位置向量,检验其是否可被破坏。",
+ "hexecuteif.page.blocks.can_place_block": "接受位置向量和是否检查液体,并检验能否在所给位置放置方块。",
+
+
+
+
+ "hexcasting.spell.hexecuteif:inv_slot_count": "容器大小",
+ "hexcasting.spell.book.hexecuteif:inv_slot_count": "容器大小",
+
+ "hexcasting.spell.hexecuteif:inv_occupied_slots": "被占用槽位",
+ "hexcasting.spell.book.hexecuteif:inv_occupied_slots": "被占用槽位",
+
+ "hexcasting.spell.hexecuteif:inv_slot_item_count": "槽位中物品数",
+ "hexcasting.spell.book.hexecuteif:inv_slot_item_count": "槽位中物品数",
+
+ "hexcasting.spell.hexecuteif:inv_drop_item": "丢出物品",
+ "hexcasting.spell.book.hexecuteif:inv_drop_item": "丢出物品",
+
+ "hexcasting.spell.hexecuteif:inv_transfer_item": "转移物品",
+ "hexcasting.spell.book.hexecuteif:inv_transfer_item": "转移物品",
+
+ "hexecuteif.entry.inventory": "HexecuteIf 物品栏与容器",
+ "hexecuteif.page.inventory.inv_slot_count": "此操作接受一个具有物品栏或容器的事物,返回该物品栏或容器中槽位的总数。可以用来确定物品栏和容器的容量上限。",
+ "hexecuteif.page.inventory.inv_occupied_slots": "此操作接受一个具有物品栏或容器的事物,返回当前被占用的槽位列表。列表中的每个元素代表那些至少装有一个物品的槽位。",
+ "hexecuteif.page.inventory.inv_slot_item_count": "此操作接受一个具有物品栏或容器的事物和一个槽位索引,返回所给槽位中物品的数量。需注意,某些槽位必然含有物品,且无法空置。",
+ "hexecuteif.page.inventory.inv_drop_item.1": "此操作接受一个具有物品栏或容器的事物、一个槽位索引,以及一个数。",
+ "hexecuteif.page.inventory.inv_drop_item.2": "它会从给定物品栏或容器给定槽位中移走所给数个物品。槽位本身必须含有物品,以确保操作不会试图从空槽位中移走物品。",
+ "hexecuteif.page.inventory.inv_transfer_item.1": "$(br)此操作接受一个具有物品栏或容器的事物、一个槽位索引作为来源,一个具有物品栏和容器的事物、一个槽位索引作为目标,以及一个数。",
+ "hexecuteif.page.inventory.inv_transfer_item.2": "它会从来源槽位中转移所给数个物品到目标槽位。来源槽位必须不为空,且目标槽位必须为空。此外,需移动的物品数应至少为 1,且不能多于来源槽位中的物品数。",
+
+
+
+
+ "hexcasting.mishap.can_not_access_to_container_inventory": "你无法通过此法术访问任意容器",
+ "hexcasting.mishap.can_not_access_to_player_inventory": "你无法通过此法术访问任意玩家",
+
+ "hexcasting.mishap.can_not_modify_container_inventory": "你无法通过此法术修改任意容器的内容物",
+ "hexcasting.mishap.can_not_modify_player_inventory": "你无法通过此法术修改任意玩家的物品栏",
+
+ "hexcasting.mishap.invalid_value.slot.empty": "一个空槽位索引",
+ "hexcasting.mishap.invalid_value.slot.not_empty": "一个非空槽位索引",
+ "hexcasting.mishap.invalid_value.inventory_holder": "一个容器方块或玩家",
+
+ "hexecuteif.mishap.excepted_block.block_entity": "一个方块实体",
+ "hexecuteif.mishap.excepted_block.container": "一个容器",
+
+ "text.autoconfig.hexecuteif.title": "HexecuteIf配置",
+
+ "text.autoconfig.hexecuteif.category.common": "Common",
+ "text.autoconfig.hexecuteif.category.client": "Client",
+ "text.autoconfig.hexecuteif.category.server": "Server",
+
+ "text.autoconfig.hexecuteif.option.common.multiplyContainerAccess": "容器媒质倍数",
+ "text.autoconfig.hexecuteif.option.common.multiplyContainerAccess.@Tooltip": "需访问容器内容物的法术所消耗的媒质量的倍数",
+
+ "text.autoconfig.hexecuteif.option.common.multiplyPlayerAccess": "玩家媒质倍数",
+ "text.autoconfig.hexecuteif.option.common.multiplyPlayerAccess.@Tooltip": "需访问玩家物品栏的法术所消耗的媒质量的倍数",
+
+ "text.autoconfig.hexecuteif.option.common.canAccessContainer": "允许访问容器",
+ "text.autoconfig.hexecuteif.option.common.canAccessContainer.@Tooltip": "是否允许需访问容器法术的与容器交互",
+
+ "text.autoconfig.hexecuteif.option.common.canAccessPlayer": "允许访问玩家",
+ "text.autoconfig.hexecuteif.option.common.canAccessPlayer.@Tooltip": "是否允许需访问容器的法术与玩家交互",
+
+ "text.autoconfig.hexecuteif.option.common.canModifyContainer": "允许修改容器",
+ "text.autoconfig.hexecuteif.option.common.canModifyContainer.@Tooltip": "是否允许需修改容器内物品的法术与容器交互",
+
+ "text.autoconfig.hexecuteif.option.common.canModifyPlayer": "允许修改玩家",
+ "text.autoconfig.hexecuteif.option.common.canModifyPlayer.@Tooltip": "是否允许需修改容器内物品的法术与玩家交互"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexgender/hexgender/README.md b/projects/1.20-fabric/assets/hexgender/hexgender/README.md
new file mode 100644
index 000000000000..598ed3a64ee1
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexgender/hexgender/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/hexgender/hexgender)
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexgender/hexgender/lang/en_us.json b/projects/1.20-fabric/assets/hexgender/hexgender/lang/en_us.json
similarity index 100%
rename from projects/1.20/assets/modrinth-hexgender/hexgender/lang/en_us.json
rename to projects/1.20-fabric/assets/hexgender/hexgender/lang/en_us.json
diff --git a/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json b/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
new file mode 100644
index 000000000000..7e322aebea97
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
@@ -0,0 +1,7 @@
+[
+ {
+ "type": "singleton",
+ "source": "projects/1.20/assets/hexgender/hexgender/lang/zh_cn.json",
+ "relativePath": "lang/zh_cn.json"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/hexgender/hexgender/lang/en_us.json b/projects/1.20/assets/hexgender/hexgender/lang/en_us.json
new file mode 100644
index 000000000000..b9af36234f5c
--- /dev/null
+++ b/projects/1.20/assets/hexgender/hexgender/lang/en_us.json
@@ -0,0 +1,45 @@
+{
+ "hexgender.entry.transition_spells": "Gender Identity Spells",
+ "hexgender.entry.transition_spells.entry": "I would occasionally wonder what being born another sex would have been like...$(br)So, with a helping hand from the biomancy corps, I have made a few spells which would allow for instant transitions between sexes!",
+
+ "hexcasting.action.hexgender:female_transition": "Transition: Feminine",
+ "hexgender.page.transition_spells.female_transition": "Transitions the caster to a female!$(br)I wonder how I'd look in a skirt...",
+ "hexcasting.action.hexgender:male_transition": "Transition: Masculine",
+ "hexgender.page.transition_spells.male_transition": "Transitions the caster to a male!$(br)No more periods!",
+ "hexcasting.action.hexgender:other_transition": "Transition: Non-binary",
+ "hexgender.page.transition_spells.other_transition": "Transitions the caster to androgynous!$(br)Hmm... this is... interesting...",
+ "hexcasting.action.hexgender:get_gender": "Gender Identity Prfn.",
+ "hexgender.page.transition_spells.get_gender": "Obtains the target's selected gender as an ordinal (number)",
+
+ "hexgender.entry.bust_patterns": "Go Big or Bust",
+ "hexgender.entry.bust_patterns.entry": "With the newfound transition spells I began to wonder if I could change the properties of my chest. With more help from the biomancy corps, I have developed patterns to do just that... within reason.",
+
+ "hexcasting.action.hexgender:get_bust_size": "Oncologist's Purification",
+ "hexgender.page.bust_patterns.get_bust_size": "Gives the bust size of the target",
+ "hexcasting.action.hexgender:set_bust_size": "Oncologist's Gambit",
+ "hexgender.page.bust_patterns.set_bust_size": "Sets the bust size of the caster",
+ "hexcasting.action.hexgender:get_bounciness": "Gainax Purification",
+ "hexgender.page.bust_patterns.get_bounciness": "Gives the bounciness of the target's breasts",
+ "hexcasting.action.hexgender:set_bounciness": "Gainax Gambit",
+ "hexgender.page.bust_patterns.set_bounciness": "Sets the bounciness of the caster's breasts",
+ "hexcasting.action.hexgender:get_floppiness": "Lindhal's Purification",
+ "hexgender.page.bust_patterns.get_floppiness": "Gives the floppiness of the target's breasts",
+ "hexcasting.action.hexgender:set_floppiness": "Lindhal's Gambit",
+ "hexgender.page.bust_patterns.set_floppiness": "Sets the floppiness of the caster's breasts",
+ "hexcasting.action.hexgender:get_physics": "Hookean Purification",
+ "hexgender.page.bust_patterns.get_physics": "Gives the physics of the target's breasts",
+ "hexcasting.action.hexgender:set_physics": "Hookean Gambit",
+ "hexgender.page.bust_patterns.set_physics": "Sets the physics of the caster's breasts",
+ "hexcasting.action.hexgender:get_cleavage": "Cleavage Purification",
+ "hexgender.page.bust_patterns.get_cleavage": "Gets the cleavage of the target's breasts",
+ "hexcasting.action.hexgender:set_cleavage": "Cleavage Gambit",
+ "hexgender.page.bust_patterns.set_cleavage": "Sets the cleavage of the caster's breasts",
+ "hexcasting.action.hexgender:get_breast_offsets": "Liposuction Purification",
+ "hexgender.page.bust_patterns.get_breast_offsets": "Gets the offset of the target's breasts",
+ "hexcasting.action.hexgender:set_breast_offsets": "Liposuction Gambit",
+ "hexgender.page.bust_patterns.set_breast_offsets": "Sets the offset of the caster's breasts",
+ "hexcasting.action.hexgender:get_uniboob": "Symmastia Purification",
+ "hexgender.page.bust_patterns.get_uniboob": "Gets whether the target's breasts are a uniboob",
+ "hexcasting.action.hexgender:set_uniboob": "Symmastia Gambit",
+ "hexgender.page.bust_patterns.set_uniboob": "Sets whether the caster's breasts are a uniboob"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexgender/hexgender/lang/zh_cn.json b/projects/1.20/assets/hexgender/hexgender/lang/zh_cn.json
similarity index 100%
rename from projects/1.20/assets/modrinth-hexgender/hexgender/lang/zh_cn.json
rename to projects/1.20/assets/hexgender/hexgender/lang/zh_cn.json
From 45044269e00fb1e6cd346bdd778e240c5af24414 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 22:38:22 +0800
Subject: [PATCH 10/78] HexGloop Hexical create
---
.../assets/hexgloop/hexgloop/lang/en_us.json | 495 +++++++++++
.../assets/hexgloop/hexgloop/lang/zh_cn.json | 495 +++++++++++
.../modrinth-hexical/hexical/lang/en_us.json | 679 +++++++++++++++
.../modrinth-hexical/hexical/lang/zh_cn.json | 679 +++++++++++++++
.../modrinth-hexical/hexical/lang/en_us.json | 679 +++++++++++++++
.../modrinth-hexical/hexical/lang/zh_cn.json | 793 ++++++++++++++++++
6 files changed, 3820 insertions(+)
create mode 100644 projects/1.19/assets/hexgloop/hexgloop/lang/en_us.json
create mode 100644 projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
create mode 100644 projects/1.19/assets/modrinth-hexical/hexical/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
diff --git a/projects/1.19/assets/hexgloop/hexgloop/lang/en_us.json b/projects/1.19/assets/hexgloop/hexgloop/lang/en_us.json
new file mode 100644
index 000000000000..cf84277eae46
--- /dev/null
+++ b/projects/1.19/assets/hexgloop/hexgloop/lang/en_us.json
@@ -0,0 +1,495 @@
+{
+ "itemGroup.hexgloop.general": "Hex Gloop",
+ "item.hexgloop.gloop": "Gloop",
+ "item.hexgloop.multi_focus": "Multi Focus",
+ "item.hexgloop.casting_ring": "Casting Ring",
+ "item.hexgloop.focal_ring": "Focal Ring",
+ "item.hexgloop.focal_ring.sealed": "Sealed Focal Ring",
+ "item.hexgloop.focal_pendant": "Focal Pendant",
+ "item.hexgloop.focal_pendant.sealed": "Sealed Focal Pendant",
+ "item.hexgloop.casting_potion": "Potion of Casting",
+ "item.hexgloop.gloop_dye": "Gloop Dye",
+ "item.hexgloop.slate_bowl": "Slate Bowl",
+ "item.hexgloop.hexxyos": "Hexxy-O's",
+ "item.hexgloop.hex_snack": "Thought Gummy",
+ "item.hexgloop.casters_coin": "Caster's Coin",
+ "item.hexgloop.casters_coin.bound": "Bound Caster's Coin",
+ "item.hexgloop.casters_coin.bound_caster": "Bound by %s",
+ "item.hexgloop.heart_pigment": "Sam's Glooptastic Pigment",
+ "item.hexgloop.gloopifact": "Gloopifact",
+ "item.hexgloop.synchronous_gloop": "Synchronous Gloop",
+ "item.hexgloop.hand_mirror": "Hand Mirror",
+ "item.hexgloop.cosmetic_energizer": "Mind Wrench",
+
+ "item.hexgloop.lovely_staff": "Lovely Staff",
+ "item.hexgloop.quartz_staff": "Quartz Staff",
+ "item.hexgloop.carrot_staff": "Carrot Staff",
+ "item.hexgloop.bee_staff": "Bee Staff",
+ "item.hexgloop.rod_staff": "Amethyst On A Stick",
+ "item.hexgloop.bone_staff": "Bone Staff",
+ "item.hexgloop.ice_staff": "Ice Staff",
+ "item.hexgloop.blaze_staff": "Blaze Staff",
+ "item.hexgloop.pumpkin_staff": "Pumpkin.. staff?",
+ "item.hexgloop.wither_staff": "Wither Staff",
+ "item.hexgloop.ghost_staff": "Ghost Staff",
+ "item.hexgloop.owl_staff": "Owl Staff",
+ "item.hexgloop.celestial_staff": "Celestial Staff",
+ "item.hexgloop.longinus_staff": "Staff Of Longinus",
+ "item.hexgloop.candy_cane_staff": "Candy Cane Staff",
+ "item.hexgloop.menorah_staff": "Menorah Staff",
+ "item.hexgloop.christmas_tree_staff": "Christmas Tree Staff",
+
+ "item.hexgloop.hexxy_plush": "Hexxy Plush",
+ "item.hexgloop.hex_blade": "Hex Blade",
+ "item.hexgloop.hex_pickaxe": "Hex Pickaxe",
+ "item.hexgloop.slate_loader": "Ritualist's Inscriber",
+ "item.hexgloop.inventorty": "Inventorty",
+ "item.hexgloop.slate_loader.written": "Ritualist's Inscriber [%s]",
+ "item.hexgloop.covered_spellbook": "Covered Spellbook",
+ "item.hexgloop.covered_spellbook.sealed": "Sealed Covered Spellbook",
+ "item.hexgloop.hand_mirror.tooltip": "Reflects [%s]",
+ "item.hexgloop.hand_mirror.tooltip.not_activated": "Last Reflected [%s]",
+
+ "item.hexgloop.mept_log": "Mept Log",
+ "item.hexgloop.casting_frog": "Frogi",
+ "item.hexgloop.empty_jar": "Empty Jar",
+ "item.hexgloop.mind_jar": "Mind in a Jar",
+ "item.hexgloop.mind_jar.tooltip": "Contains the mind of a %s %s",
+ "item.hexgloop.mind_jar.tooltip.nojob": "Contains an untrained mind",
+ "item.hexgloop.mind_jar.tooltip.empty": "Somehow contains no mind ?",
+
+ "item.hexgloop.essence_stone": "Essence Stone",
+ "item.hexgloop.script": "Script",
+ "item.hexgloop.coping_saw": "Coping Saw",
+ "item.hexgloop.library_card": "Akashic Library Card",
+ "item.hexgloop.library_card.tooltip_dimension": "Bound to %s",
+
+ "item.hexgloop.copper_pen_fidget": "Pen Fidget",
+ "item.hexgloop.dreidel_fidget": "Dreidel Fidget",
+ "item.hexgloop.rainbow_amogus_fidget": "Rainbow Amogus Pop It Fidget",
+
+ "block.hexgloop.gloop_energizer": "Energizer",
+ "block.hexgloop.pedestal": "Pedestal",
+ "block.hexgloop.mirror_pedestal": "Mirrored Pedestal",
+ "block.hexgloop.mind_pedestal": "Flayer's Pedestal",
+ "block.hexgloop.slate_chest": "Slate Chest",
+ "block.hexgloop.gloopy_slate_chest": "Gloopy Slate Chest",
+ "block.hexgloop.sentinel_bed": "Sentinel Bed",
+ "block.hexgloop.accelerator": "Accelerator",
+ "block.hexgloop.hexxed_glass": "Hexxed Glass",
+ "block.hexgloop.slate_lamp": "Slate Lamp",
+ "block.hexgloop.charged_amethyst_block": "Block of Charged Amethyst",
+ "block.hexgloop.gloop_block": "Block of Gloop",
+ "block.hexgloop.syncetrix": "Syncetrix",
+ "block.hexgloop.wave_locus": "Undulator",
+ "block.hexgloop.enlightenment_gate": "Caster's Gate",
+ "block.hexgloop.enlightenment_bridge": "Caster's Bridge",
+ "block.hexgloop.thinking_carpet": "Caster's Carpet",
+ "block.hexgloop.conjured_redstone": "Conjured Redstone",
+ "block.hexgloop.iotic_dial": "Iotic Dial",
+
+ "key.hexgloop.open_iota_wheel": "Open Iota Wheel",
+ "key.hexgloop.casting_ring": "Use Casting Ring",
+ "key.hexgloop.scroll_down": "Scroll Spellbook Down",
+ "key.hexgloop.scroll_up": "Scroll Spellbook Up",
+ "key.hexgloop.open_hex_book": "Open Hex Book",
+ "key.categories.hexgloop": "Hex Gloop",
+
+ "hexgloop.tooltip.multi_focus.page": "Selected Slot %d/%d",
+ "hexgloop.tooltip.multi_focus.page.sealed": "Selected Slot %d/%d (%s)",
+ "hexgloop.tooltip.multi_focus.page_with_name": "Selected Slot %d/%d (\"%s\")",
+ "hexgloop.tooltip.multi_focus.page_with_name.sealed": "Selected Slot %d/%d (\"%s\") (%s)",
+ "hexgloop.tooltip.fidget.page": "Selected Slot %d/%d",
+ "hexgloop.tooltip.fidget.page_with_name": "Selected Slot %d/%d (\"%s\")",
+
+ "hexgloop.tooltip.media_worth": "Worth %s",
+ "hexgloop.tooltip.media_worth_each": "%s per item",
+ "hexgloop.tooltip.pigment": "Pigment: %s",
+
+ "hexcasting.spell.hexgloop:craft/potion": "Craft Potion",
+ "hexcasting.spell.hexgloop:set_label": "Dymo's Gambit",
+ "hexcasting.spell.hexgloop:read_orchard": "Orchard's Reflection",
+ "hexcasting.spell.hexgloop:read_orchard_list": "Orchard's Reflection II",
+
+ "hexcasting.spell.hexgloop:read_pendant": "Memento's Reflection",
+ "hexcasting.spell.hexgloop:write_pendant": "Memento's Gambit",
+ "hexcasting.spell.hexgloop:check_read_pendant": "Cherishing Reflection",
+ "hexcasting.spell.hexgloop:check_write_pendant": "Nostalgic Reflection",
+
+ "hexcasting.spell.hexgloop:read_ring": "Anularis Reflection",
+ "hexcasting.spell.hexgloop:write_ring": "Anularis Gambit",
+
+ "hexcasting.spell.hexgloop:read_right_ring": "Rival's Reflection",
+ "hexcasting.spell.hexgloop:write_right_ring": "Rival's Gambit",
+
+ "hexcasting.spell.hexgloop:read_left_ring": "Lover's Reflection",
+ "hexcasting.spell.hexgloop:write_left_ring": "Lover's Gambit",
+
+ "hexcasting.spell.hexgloop:check_read_ring": "Authenicator's Reflection",
+ "hexcasting.spell.hexgloop:check_write_ring": "Jeweler's Reflection",
+
+ "hexcasting.spell.hexgloop:read_comparator": "Etho's Purification",
+ "hexcasting.spell.hexgloop:read_redstone": "Seth's Purification",
+ "hexcasting.spell.hexgloop:conjure_redstone": "Conjure Redstone Block",
+
+ "hexcasting.spell.hexgloop:clear_truename": "Renew Truename",
+ "hexcasting.spell.hexgloop:truename_agree_eula": "Acknowledge Truename",
+
+ "hexcasting.spell.hexgloop:in_overworld": "Terra Reflection",
+ "hexcasting.spell.hexgloop:in_nether": "Everflame Reflection",
+ "hexcasting.spell.hexgloop:opnop_useless": "Aergia's Gambit",
+ "hexcasting.spell.hexgloop:check_ambit": "Canary's Purification",
+ "hexcasting.spell.hexgloop:catchy_eval": "Athena's Gambit",
+ "hexcasting.spell.hexgloop:reveal_mishap": "Athena's Revelation",
+ "hexcasting.spell.hexgloop:stringify_mishap": "Athena's Reflection",
+ "hexcasting.spell.hexgloop:assert": "Euler's Purification",
+
+ "hexcasting.spell.hexgloop:get_hotbar_slot": "Handy Reflection",
+ "hexcasting.spell.hexgloop:set_hotbar_slot": "Handy Gambit",
+ "hexcasting.spell.hexgloop:swap_hotbar_slot": "Handoff",
+
+ "hexcasting.spell.hexgloop:conjure_tasty_treat": "Conjure Tasty Treat",
+
+ "hexcasting.spell.hexgloop:dispense": "Dispense",
+ "hexcasting.spell.hexgloop:stonecut": "Cut Stone",
+
+ "hexcasting.spell.hexgloop:bind_mirror": "Bind Mirror",
+ "hexcasting.spell.hexgloop:temp_bind_mirror": "Temp Bind Mirror",
+
+ "hexcasting.spell.hexgloop:compare_item_bound_caster": "Notary's Purification",
+ "hexcasting.spell.hexgloop:cooler_compare_item_bound_caster": "Notary's Distillation",
+ "hexcasting.spell.hexgloop:get_item_bound_caster": "Merchant's Reflection",
+ "hexcasting.spell.hexgloop:cooler_get_item_bound_caster": "Merchant's Purification",
+
+ "hexcasting.spell.hexgloop:gloopimind_upload": "Gloopimind Upload",
+ "hexcasting.spell.hexgloop:gloopimind_download": "Gloopimind Download",
+ "hexcasting.spell.hexgloop:craft/gloopifact": "Craft Gloopifact",
+ "hexcasting.spell.hexgloop:gloopifact_read": "Gloopcaster's Reflection",
+ "hexcasting.spell.hexgloop:gloopifact_write": "Gloopcaster's Gambit",
+ "hexcasting.spell.hexgloop:gloopifact_check_read": "Gloopitor's Reflection",
+ "hexcasting.spell.hexgloop:gloopifact_check_write": "Gloopessor's Distillation",
+
+ "hexcasting.spell.hexgloop:block_read": "Ritualist's Purification",
+ "hexcasting.spell.hexgloop:block_write": "Ritualist's Gambit",
+ "hexcasting.spell.hexgloop:can_block_read": "Surveyor's Purification",
+ "hexcasting.spell.hexgloop:can_block_write": "Surveyor's Distillation",
+
+ "hexcasting.spell.hexgloop:craft/inventorty": "Teach Inventorty",
+ "hexcasting.spell.hexgloop:torty_transfer": "Torty Transfer",
+ "hexcasting.spell.hexgloop:torty_count": "Torty's Purification",
+ "hexcasting.spell.hexgloop:torty_max_count": "Torty's Max Purification",
+ "hexcasting.spell.hexgloop:torty_get_type": "Curiosity's Purification",
+ "hexcasting.spell.hexgloop:torty_inv_sizes": "Torty's Reflection",
+ "hexcasting.spell.hexgloop:torty_inv_names": "Torty's Reflection II",
+
+ "hexcasting.spell.hexgloop:craft/casting_frog": "Teach Frogi",
+ "hexcasting.spell.hexgloop:frog_eat": "Frogi Snack",
+
+
+ "hexcasting.spell.hexgloop:craft/hex_blade": "Forge Hex Blade",
+ "hexcasting.spell.hexgloop:craft/hex_pickaxe": "Forge Hex Pickaxe",
+
+ "hexcasting.mishap.bad_item.slot": "%s needs %s in the %s but got %dx %s",
+ "hexcasting.mishap.no_item.slot": "%s needs %s in the %s but got nothing",
+ "hexcasting.mishap.bad_offhand_item.caster_bound": "an item bound by a hexcaster",
+
+ "hexgloop.slotname.necklace": "necklace slot",
+ "hexgloop.slotname.offhandring": "ring slot",
+ "hexgloop.slotname.mainhandring": "ring slot",
+ "hexcasting.mishap.bad_item.labely_item": "a labelable item",
+ "hexcasting.mishap.bad_item.gloopifact": "a gloopifact",
+ "hexcasting.mishap.bad_item.no_stonecutting": "a stonecuttable item",
+
+ "hexcasting.mishap.bad_entity.not_frog_food": "an entity the Frogi can eat",
+
+ "hexcasting.mishap.bad_block.iota.read": "a place to read iotas from",
+ "hexcasting.mishap.bad_block.iota.write": "a place to write iotas to",
+
+ "hexcasting.mishap.mirror_limits": "%s had no reflection",
+
+ "hexcasting.mishap.wrong_casting_source": "%s expected to be cast from %s, but was cast from %s",
+ "hexgloop.comment.ignore": "the second param here VVV is a comma separated list of source_type translation keys. if you're working on a translation and this is preventing it from translating well lmk",
+ "hexcasting.mishap.wrong_casting_sources": "%s expected to be cast from one of: %s, but was cast from %s",
+ "hexcasting.mishap.invalid_value.class.kittygrabbable": "an inventorty slot",
+
+
+ "hexgloop.mishap.catch_wrapper": "Last Mishap: %s",
+ "hexgloop.mishap.catch_wrapper.none": "This cast has yet to mishap",
+ "hexcasting.mishap.cleared_truename": "%s tried to use %s's truename",
+ "hexcasting.mishap.assertion": "%s failed an assertion",
+ "hexcasting.mishap.assertion.labeled": "%s failed an assertion at %s",
+ "hexgloop.generic_circle_spell": "Spell Circle",
+
+ "hexgloop.source_type.staff": "a Staff",
+ "hexgloop.source_type.circle": "a Spell Circle",
+ "hexgloop.source_type.packaged_hex": "a Casting Item",
+ "hexgloop.source_type.wisp": "a Wisp",
+ "hexgloop.source_type.gloopifact": "a Gloopifact",
+ "hexgloop.source_type.inventorty": "an Inventorty",
+ "hexgloop.source_type.frog_casting": "a Frogi",
+
+ "hexgloop.container.simple": "Simple",
+ "hexgloop.container.result": "Result",
+
+ "hexgloop.greatbook.saved": "Wrote %s (%s) to Hex Book",
+ "hexgloop.greatbook.removed": "Removed %s from Hex Book",
+ "hexgloop.greatbook.cleared": "Cleared great spells from Hex Book",
+
+ "hexgloop.tooltip.pattern_shift": "(Hold Shift for Pattern Info)",
+
+ "block.minecraft.banner.hexgloop.hermes.white": "White Hermes",
+ "block.minecraft.banner.hexgloop.hermes.orange": "Orange Hermes",
+ "block.minecraft.banner.hexgloop.hermes.magenta": "Magenta Hermes",
+ "block.minecraft.banner.hexgloop.hermes.light_blue": "Light Blue Hermes",
+ "block.minecraft.banner.hexgloop.hermes.yellow": "Yellow Hermes",
+ "block.minecraft.banner.hexgloop.hermes.lime": "Lime Hermes",
+ "block.minecraft.banner.hexgloop.hermes.pink": "Pink Hermes",
+ "block.minecraft.banner.hexgloop.hermes.gray": "Gray Hermes",
+ "block.minecraft.banner.hexgloop.hermes.light_gray": "Light Gray Hermes",
+ "block.minecraft.banner.hexgloop.hermes.cyan": "Cyan Hermes",
+ "block.minecraft.banner.hexgloop.hermes.purple": "Purple Hermes",
+ "block.minecraft.banner.hexgloop.hermes.blue": "Blue Hermes",
+ "block.minecraft.banner.hexgloop.hermes.brown": "Brown Hermes",
+ "block.minecraft.banner.hexgloop.hermes.green": "Green Hermes",
+ "block.minecraft.banner.hexgloop.hermes.red": "Red Hermes",
+ "block.minecraft.banner.hexgloop.hermes.black": "Black Hermes",
+
+ "hexgloop.truename_eula": "I appear to have imbued this object with my truename. I shudder to think what would happen if this fell into malicious hands. It may be comforting for me to review my notes on Truename Protection Spells",
+
+ "hexgloop.gloopvancement.title": "Glooptastic",
+ "hexgloop.gloopvancement.desc": "Get your hands gloopy",
+ "hexgloop.syncvancement.title": "Gloopy action at a distance",
+ "hexgloop.syncvancement.desc": "Synchronize your gloop",
+ "hexgloop.sketchy_foods.title": "The snack that evals back",
+ "hexgloop.sketchy_foods.desc": "Eat a hexxed snack, they're probably vegan?",
+
+ "hexgloop.hexdoc.gloopcipe_media_cost": "Costs %d Dust",
+
+ "hexgloop.entry.gloopytweaks": "Glooptastic Changes",
+ "hexgloop.page.gloopytweaks.0": "I have noticed some absolutely glooptastic changes in the world recently.$(br2)The hex book seems,, friendlier. When I'm on a page with a pattern and touch it to a hanging scroll, it copies the pattern onto the scroll. It even seems to get the page based on which hand I'm holding it in.",
+ "hexgloop.page.gloopytweaks.1": "I've also discovered that I can apply dye to my staffs if I want to make them more colorful.$(br2)By far the strangest change though is that my hexes $(o)feel$() different, almost like they're vibrating through my bones. Perhaps a sensitive enough scanner could pick up on this?",
+
+ "hexgloop.entry.gloopytweaks_client": "A Gloopy Mind",
+ "hexgloop.page.gloopy_client.0": "I feel that my mind is sharper recently, perhaps more in tune with my hexes.$(br2)For one, it's much easier to visualize patterns. I can even hear something like \"\\\" and visualize it perfectly as $(m)$(0)$(). Additionally, I can hover over these patterns to get a better view of them, or click to copy them for later.",
+ "hexgloop.page.gloopy_client.1": "I've also been finding it more natural to flip through my spellbook. Pressing $(k:key.hexgloop.open_iota_wheel) allows me to visualize my spellbook, and I can flip through it quickly with $(l)$(k:key.hexgloop.scroll_down)$() and $(l)$(k:key.hexgloop.scroll_up)$().",
+ "hexgloop.page.gloopy_client.2": "I've noticed that it's recently become easier to reference these notes while casting too, pressing $(k:key.hexgloop.open_hex_book) causes my book to fly open right to the page I left it.$(br2)Finally, it seems that I can sense more details when I look at certain items, most notably media items, pigments, and scrolls.",
+
+ "hexgloop.entry.casting_ring": "Casting Ring",
+ "hexgloop.page.casting_ring.0": "I do love my staff, but occasionally I find myself needing a lighter casting instrument.$(br2)The casting ring, when equipped, let's me open up a staff free casting grid by pressing $(l)$(k:key.hexgloop.casting_ring)$(). I find my grid reduced without the reach of my staff, but still, this may be a worthwhile trade-off.",
+ "hexgloop.page.casting_ring.1": "I've noticed that my hexes prefer to use items in my offhand, perhaps this will be useful with both of my hands free?",
+
+ "hexgloop.entry.casting_potion": "Casting Potion",
+ "hexgloop.page.casting_potion.0": "I've found that brewing $(l:items/amethyst#dust)amethyst dust$(/l) (or any $(l:items/pigments)pigment$(/l)) into a thick potion will give me a potion that is able to channel media into casting hexes.$(br2)I can craft the potion using the $(l:hexgloop:patterns/spells/craft_potion)Craft Potion$(/l) spell.",
+
+ "hexgloop.entry.fidgets": "Fidgets",
+ "hexgloop.page.fidgets.0": "I've happened upon the most joyous of devices !$(br2)These devices, which I've been calling fidgets, help me channel my thoughts into a form detectable in my hexes. I can interact with them in much the same way as I would with a spellbook, minus the iota storage of course. For accessing these thoughts, see the section on $(l:hexgloop:patterns/minds_orchard)Mind's Orchard$(/l)",
+ "hexgloop.page.fidgets.pen": "A simple device that only toggles between two states. It has a nice clicky noise though.",
+ "hexgloop.page.fidgets.amogus": "At first I was suspicious of this item, but I have now ejected all of my concerns. This whimsical device makes the most delightful popping noises, and lets me channel my thoughts through six states.",
+ "hexgloop.page.fidgets.dreidel": "I made it out of clay ! It has four sides letting me fidget between four states.",
+
+ "hexgloop.entry.trinket_focus": "Trinkety Foci",
+ "hexgloop.page.trinket_focus.0": "I have been overcome by a strong desire to accessorize. These trinkets act just like normal foci but I can wear them and use the $(l:hexgloop:patterns/trinket_focus_patterns)Trinkety Focus Patterns$(/l)$(br2)$(o)[Gloopy Dev Note: you need trinkets on fabric or curios on forge to wear these. You can still use them as foci otherwise though]$()",
+ "hexgloop.page.trinket_focus.pendant": "A fashionable pendant, good for iotas you want to keep close to your heart.",
+ "hexgloop.page.trinket_focus.ring": "A ring forged from the strongest nether metals. For the most important iotas.",
+
+ "hexgloop.entry.gloop": "Gloop !",
+ "hexgloop.page.gloop.0": "This is glooptastic ! My calculations suggest that under the right conditions, slime and media may form together into a highly reactive and adaptive material.$(br2)It'll require a way to energize the reactants and some mechanism to prompt the reaction. I've drafted my schematics for such a device on the following page.",
+ "hexgloop.page.gloop.1": "The adaptive nature of this gloop leads me to believe there may be other forms out there to be discovered...",
+ "hexgloop.page.gloop.2": "I've recently discovered a new form of gloop, I've been calling is synchronous gloop, and it seems to be able to react across great distances.",
+ "hexgloop.page.gloop.energizer": "This machine should be strong enough to channel the media through nearby water and into my reactants. I can use a device such as a hopper to feed media in. $(br2)Now I just need a way to trigger the reaction.. perhaps I can look up to nature for a strike of inspiration ?",
+
+ "hexgloop.entry.multi_focus": "Multi Focus",
+ "hexgloop.page.multi_focus.0": "I can feel the gloop pulling at my mind, maybe I can pull back?$(br2)A gloop constructed multi focus should let me hold multiple iotas in a single item and access them quickly with $(l)$(k:key.hexgloop.open_iota_wheel)$(), sort of like a smaller spellbook. For more organizational techniques I should check my notes on $(l:hexgloop:patterns/labels)labels$(/l)",
+ "hexgloop.page.multi_focus.1": "$(o)I can almost hear it purring..$()",
+
+ "hexgloop.entry.gloop_dye": "Gloop Dye",
+ "hexgloop.page.gloop_dye.0": "I've found that mixing my own dye colors is quite tedious and it would be nice to have something more precise.$(br2)With this gloop dye I should be able to pick any color I'd like for using with items like leather armor or my staffs. I can pick the color by using $(l:patterns/readwrite#hexcasting:write)Scribe's Gambit$(/l) to write a vector holding rgb values between 0-255.$(br2)Using the dye will cost media, but I can recharge it like I would a trinket.",
+ "hexgloop.page.gloop_dye.1": "$(o)so many colors!$()",
+
+ "hexgloop.entry.labels": "Labels",
+ "hexgloop.page.labels.0": "Although my current system lets me flip through my notes quickly, it would be nice to have a way to label them.$(br2)This system should let me label my pages using iotas. I've recorded all the label types that I've found on the following page",
+ "hexgloop.page.labels.1": "$(li)number/string$(li)patterns$(li)items (from an entity or relevant hexal iotas)$(li)entities$(li)null (to clear it)",
+ "hexgloop.page.labels.2": "Assigns a label based on the given iota to the currently selected slot of a labelable item in my offhand.",
+
+ "hexgloop.entry.minds_orchard": "Mind's Orchard",
+ "hexgloop.page.minds_orchard.0": "I've found that if I can hold a concrete enough idea in my mind then I can use these patterns to pick it into my hexes. Something like a $(l:hexgloop:items/fidgets)fidget$(/l) should help me channel my thoughts.$(br2)The value stored in my orchard will always be a list with atleast one number. I haven't yet found a way to store multiple numbers in this list though..",
+ "hexgloop.page.minds_orchard.1": "Picks a number from my mind's orchard representing the index of my thought.",
+ "hexgloop.page.minds_orchard.2": "Picks values from my orchard as a list.",
+
+ "hexgloop.entry.trinket_focus_patterns": "Trinkety Foci Patterns",
+ "hexgloop.page.trinket_focus_patterns.0": "These patterns are useful for interacting with $(l:hexgloop:items/trinket_focus)Trinkety Foci$(/l). Generally they behave very similarly to the other reading and writing patterns.",
+ "hexgloop.page.trinket_focus_patterns.read_pendant": "Copy the iota stored in a pendant I'm wearing and add it to the stack",
+ "hexgloop.page.trinket_focus_patterns.write_pendant": "Remove the top iota from the stack, and save it into the pendant I'm wearing",
+ "hexgloop.page.trinket_focus_patterns.check_read_pendant": "If the pendant I'm wearing holds an iota I can read, returns True. Otherwise, returns False.",
+ "hexgloop.page.trinket_focus_patterns.check_write_pendant": "If I could save an iota into the pendant I'm wearing, returns True. Otherwise, returns False.",
+
+ "hexgloop.page.trinket_focus_patterns.read_ring": "Copy the iota stored in a ring I'm wearing and add it to the stack. If I'm wearing multiple rings this will prefer the one on the hand opposite the one I'm casting with.",
+ "hexgloop.page.trinket_focus_patterns.write_ring": "Remove the top iota from the stack, and save it into the ring I'm wearing. If I'm wearing multiple rings this will prefer the one on the hand opposite the one I'm casting with.",
+ "hexgloop.page.trinket_focus_patterns.read_left_ring": "Copy the iota stored in a ring I'm wearing and add it to the stack. If I'm wearing multiple rings this will prefer the one on my off hand.",
+ "hexgloop.page.trinket_focus_patterns.write_left_ring": "Remove the top iota from the stack, and save it into the ring I'm wearing. If I'm wearing multiple rings this will prefer the one on my off hand.",
+ "hexgloop.page.trinket_focus_patterns.read_right_ring": "Copy the iota stored in a ring I'm wearing and add it to the stack. If I'm wearing multiple rings this will prefer the one on my main hand.",
+ "hexgloop.page.trinket_focus_patterns.write_right_ring": "Remove the top iota from the stack, and save it into the ring I'm wearing. If I'm wearing multiple rings this will prefer the one on my main hand.",
+
+ "hexgloop.page.trinket_focus_patterns.check_read_ring": "If a ring I'm wearing holds an iota I can read, returns True. Otherwise, returns False.",
+ "hexgloop.page.trinket_focus_patterns.check_write_ring": "If I could save an iota into a ring I'm wearing, returns True. Otherwise, returns False.",
+
+ "hexgloop.entry.craft_potion": "Craft Casting Potion",
+ "hexgloop.page.craft_potion.0": "Crafts a $(l:hexgloop:items/casting_potion)Casting Potion$(/l). Costs about 1 shard.",
+
+
+ "hexgloop.entry.redstone": "Redstone",
+ "hexgloop.page.redstone.0": "Gets the redstone signal strength of the block of at the given position",
+ "hexgloop.page.redstone.1": "Reads the value of the block at the given position as a comparator would",
+ "hexgloop.page.redstone.2": "Conjures a redstone-like block at the given position and with the given signal strength. The strength is bound between 0 and 15. This costs 1 dust.",
+
+
+ "hexgloop.entry.truename_protection": "Truename Protection",
+ "hexgloop.page.truename_protection.0": "I've known that my truename can give others access to me, but my research suggests that there's a way for them to use it to cast as me as well.$(br2)Although this is worrying, I've found a way to protect myself from its effects, I've documented this on the following pages.",
+ "hexgloop.page.truename_protection.1": "This spell lets me renew my truename, effectively clearing any stored references to it.",
+ "hexgloop.page.truename_protection.2": "Recently I've felt worries whenever I write my truename. This spell seems to silence those worries. I can always cast it again if I'd like to be more cautious.",
+
+ "hexgloop.entry.gloop_misc_spells": "Misc Gloop Spells",
+ "hexgloop.page.dispense": "Dispenses the given item entity as if it were in a dispenser at the first position facing the direction given by the second vector.$(br2)Costs half a dust for most items, 1 charged for arrows, and 3 dust for other projectiles",
+ "hexgloop.page.stonecut": "Cuts the given item entity as if it were in a stonecutter. If it's given a number it chooses the cut based on that index in the stonecutter, if it's given an item type it tries to cut it into that type.$(br2)Costs an 8th of a dust.",
+
+ "hexgloop.entry.gloopmisc": "Misc Gloop",
+ "hexgloop.page.gloopmisc.0": "Returns whether or not the entity is in the overworld",
+ "hexgloop.page.gloopmisc.1": "Returns whether or not the entity is in the nether",
+ "hexgloop.page.gloopmisc.2": "Returns whether or not the given entity or position is in ambit",
+ "hexgloop.page.gloopmisc.3": "Asserts that the boolean is true and mishaps if not. The mishap is labeled with whatever pattern, if any, comes before it on the stack",
+ "hexgloop.page.gloopmisc.4": "Does absolutely nothing.",
+ "hexgloop.page.gloopmisc.5": "Casts the pattern or patterns on the stack similarly to $(l:hexcasting:patterns/meta#hexcasting:eval)Hermes' Gambit$(/l). If its cast mishaps it will continue on instead of stopping the hex. Returns whether or not the cast mishap",
+ "hexgloop.page.gloopmisc.6": "Reveals the last mishap. This may behave strangely when cast directly from my staff",
+ "hexgloop.page.gloopmisc.7": "Returns a string with information on the last mishap.",
+
+ "hexgloop.entry.iotic_blocks": "Iotic Blocks",
+ "hexgloop.page.iotic_blocks.0": "I've come across a few blocks that hold iotas. These seem to mostly have other ways to access the iota, but it may be convenient to access it directly.",
+ "hexgloop.page.iotic_blocks.read": "Returns the iota stored by the block at the given position",
+ "hexgloop.page.iotic_blocks.write": "Stores the given iota in the block at the given position, if possible",
+ "hexgloop.page.iotic_blocks.can_read": "Returns whether the given block contains a readable iota",
+ "hexgloop.page.iotic_blocks.can_write": "Returns if I can store the given iota in the block at the given position.",
+
+ "hexgloop.entry.hotbar": "Hotbar Manipulation",
+ "hexgloop.page.hotbar.0": "Returns the index of the currently selected slot",
+ "hexgloop.page.hotbar.1": "Selects the slot indexed by the given number",
+ "hexgloop.page.hotbar.2": "Swaps my held items between my hands",
+
+ "hexgloop.entry.more_staffs": "Gloopy Staffs",
+ "hexgloop.page.more_staffs.0": "I've drawn out some designs for new staffs. These certainly have a different style about them, but they function just the same",
+
+ "hexgloop.page.inscriber": "Placing slates by hand has become so tedious. I've rigged together this contraption to improve the process. I can write a list of patterns to it and fill it with slates, as I would a bundle, and then using it will place a slate with the next pattern in the list.",
+
+ "hexgloop.entry.misc_blocks": "Misc Blocks",
+ "hexgloop.page.hexxed_glass": "A block of amethyst dust is basically magic sand right ? Well it smelts like it atleast. Strangely, my raycasts seem to pass right through it.",
+ "hexgloop.page.charged_amethyst_block": "It's not worth much to my hexes, but it sure is pretty.",
+ "hexgloop.page.slate_lamp": "Quite similar to a redstone lamp, it'll glow a soft purple when powered, or otherwise energized",
+ "hexgloop.page.thinking_carpet": "A wonderfully comfy rug, standing on it gives a similar feeling to holding a scrying lens, though much weaker",
+ "hexgloop.page.enlightenment_gate": "It only grants passage to those with torn minds",
+ "hexgloop.page.enlightenment_bridge": "It only grants support to those with torn minds",
+
+ "hexgloop.entry.hex_tools": "Hex Tools",
+ "hexgloop.page.hex_tools.0": "My hexes can largely replace any need for swords and other such tools, but I have to admit they have a certain flair to them.$(br2)These hexxed tools, with their netherite sentience, fill that void quite nicely.",
+ "hexgloop.page.hex_tools.1": "Each of these tools can be inscribed with a hex, much like a trinket, that casts with $(k:key.use). Additionally, each tool has a casting method based on its function.$(br2)The media that powers these hexes also gives strength to the tool itself, ticking down with each use.",
+ "hexgloop.page.hex_blade.0": "When I strike with this blade it casts its hex with my target on its stack.$(br2)The media edge also does a bit of damage on its own, about the same as a netherite sword.",
+ "hexgloop.page.hex_blade.1": "Similar to other casting instrument creation spells. Costs about 4 $(l:items/amethyst)$(item)Charged Amethyst/$",
+ "hexgloop.page.hex_pickaxe.0": "When I mine a block with this pickaxe it casts its hex with the block's position on its stack.",
+ "hexgloop.page.hex_pickaxe.1": "Similar to other casting instrument creation spells. Costs about 4 $(l:items/amethyst)$(item)Charged Amethyst/$",
+
+ "hexgloop.page.script.0": "A $(l:items/focus)$(item)Focus/$ is quite nice but it can be a bit overkill for simple hexes. Who has time to go gather glowstone these days?$(br2)A Script can store a list of up to 16 patterns.",
+
+ "hexgloop.page.essence_stone.0": "Although the creatures of this world don't have the ability to cast, their thoughts may still be painted like mine.$(br2)The Essence Stone allows me to extract an entity's essence, using it as a pigment for my own thoughts. To extract the essense I can simply write the entity to the stone.",
+
+ "hexgloop.page.dyebook": "I've been thinking my spellbooks could use a splash of color. Fashioning a cover for them allows me to dye them. The netherite used in the binding makes it fire proof as well.$(br2)Applying the cover doesn't disturb any of the spells written on its pages. I haven't found a good way to remove the cover yet though..",
+
+ "hexgloop.entry.hex_snacks": "Hex Snacks",
+ "hexgloop.page.hex_snacks.intro": "Hexxing can really work up an appetite, luckily I found some snacks !",
+ "hexgloop.page.hex_snacks.gummy": "The Thought Gummy makes for a nice little snack on the go. It has a trace amount of media, but probably isn't the best trinket filler.",
+ "hexgloop.page.hex_snacks.conjure_gummy": "Conjures a thought gummy at the given position. Costs 1 dust.",
+ "hexgloop.page.hex_snacks.hexxyos": "Part of a mindful breakfast",
+
+ "hexgloop.page.chests.normal": "A slate strengthened chest. It has slightly more storage space than a normal chest.",
+ "hexgloop.page.chests.gloopy": "A slate and gloop strengthened chest. It has the storage space of two regular chests.$(br2)I wonder if it may have more uses yet to be discovered?",
+
+ "hexgloop.page.sentinel_bed": "A comfy bed for my sentinel, it always seems eager to return to it. Cats seem to find it cozy as well.",
+
+ "hexgloop.entry.reflection": "Reflections",
+ "hexgloop.page.reflection.0": "These mirrors, made from hexxed glass and synchronous gloop, seem to allow my hexes to act on items in the mirror's reflection as if they were in my other hand. Using a scrying lens shows the reflected item in my hand.",
+ "hexgloop.page.reflection.1": "This allows me to bind myself to a Mirrored Pedestal so that its held item is reflected into my empty hand.",
+ "hexgloop.page.reflection.2": "Similar to Bind Mirror but only lasting for the single instant of my cast.",
+
+
+ "hexgloop.page.casters_coin.0": "With my truename being so valuable, it'd be nice to have a safer way to barter against it. These coins should do the trick. I can write to it like a focus but it can only be read in once per coin. I've documented a few patterns here that can be used to check who wrote the coin.",
+ "hexgloop.page.casters_coin.1": "",
+ "hexgloop.page.casters_coin.2": "Takes a player entity and returns whether or not they wrote the coin in my other hand.",
+ "hexgloop.page.casters_coin.3": "Takes a player entity from the top of the stack and an item entity and returns whether or not the player wrote the coin in the item entity.",
+ "hexgloop.page.casters_coin.4": "Returns the name of whoever wrote the coin in my other hand.",
+ "hexgloop.page.casters_coin.5": "Returns the name of whoever wrote the coin in the given item entity.",
+
+
+ "hexgloop.page.gloopifact.0": "Gloop seems to be good at holding and manipulating iotas, so perhaps it'd work well as a part of a casting device.$(br2)The gloopifact is very similar to an artifact, just,, much gloopier. Its netherite bindings appear to make it fire resistant, no more losing my tools to nether mishaps.",
+ "hexgloop.page.gloopifact.1": "The focus at its core remains accessible for normal use, though my hexes will still prefer any iota source in my other hand. I've documented a set of patterns, very similar to other iota manipulation patterns, that instead target its internal focus.$(br2)I've also found that its ravenmind is much more malleable and documented patterns that allow it to communicate with my staffcasting ravenmind.$(br2)Except for crafting, these patterns only work when cast by a gloopifact",
+ "hexgloop.page.gloopifact.craft": "",
+ "hexgloop.page.gloopifact.3": "Costs about 16 $(l:items/amethyst)$(item)Charged Amethyst/$",
+ "hexgloop.page.gloopifact.4": "Uploads my gloopifact's ravenmind to my staff",
+ "hexgloop.page.gloopifact.5": "Downloads my staff's ravenmind to my gloopifact",
+ "hexgloop.page.gloopifact.6": "Reads the iota from the gloopifact's internal focus",
+ "hexgloop.page.gloopifact.7": "Writes an iota to the gloopifact's internal focus",
+ "hexgloop.page.gloopifact.8": "Returns whether or not the internal focus can be read",
+ "hexgloop.page.gloopifact.9": "Returns whether or not the given iota can be written to the internal focus.",
+
+ "hexgloop.page.hand_mirror.0": "A hexxed hand mirror, it will $(l:hexgloop:patterns/spells/reflection)reflect$(/l) any item entity written to it. Using a pedestal to hold my item may be convenient. $(br2)Unlike other reflections, which can only be touched by my hexes, the reflections from the hand mirror have a physicality to them that lets me use them as if they were really in my hand.",
+ "hexgloop.page.hand_mirror.craft": "",
+
+ "hexgloop.page.pedestal.0": "I always seem to lose track of my dropped items.$(br2)The pedestal can hold a single item stack in place for me. This item stack is locked in place but my hexes can still interact with it as if it were dropped on the ground. It appears to pick up items dropped on it and respond how I would expect to devices such as hoppers.$(br2)I sense these pedestals may have more magic about them..",
+ "hexgloop.page.pedestal.1": "Solid",
+ "hexgloop.page.pedestal.2": "The mirrored panels inlayed in the pedestal allow me to bind myself to it and see its $(l:hexgloop:patterns/spells/reflection)reflection$(/l)",
+
+ "hexgloop.page.inventorty.0": "I have found the cutest little kitten ! It seems to quite like sitting in my pockets, playing with items. Perhaps I can teach it to do so in a more helpful manner ?$(br2)I've taught it to cast ! I can give it a list of patterns to cast when pet in my inventory, a similar motion to using a bundle strangely enough. The stack of these casts will start with some additional information, first a boolean for if I'm holding the inventorty and then a number indicating the inventory slot it's in or looking at.",
+ "hexgloop.page.inventorty.1": "There are a number of patterns that can only be cast from an inventorty, many of them refer to a 'slot' type. This isn't an actual iota type but a shorthand for iotas that refer to a slot the inventorty can access:$(li)Non-negative numbers reference a specific slot in the open screen by their index. Slots in a separate inventory, such as a chest, are marked by their index + the inventory index * 1000.$(li)Item Entities near the caster.$(li)-2 for the inventory cursor slot$(li)-1000*(inventory index + 1) for the first available destination slot in that inventory.",
+ "hexgloop.page.inventorty.2": "$(o)The great power of Creativity can make the cat quite sleepy.$()",
+ "hexgloop.page.inventorty.3": "Costs about 4 $(item)Charged Amethyst$()",
+ "hexgloop.page.inventorty.4": "Transfers up to the given number of items from the first slot to the second slot. It returns the number of items left in the input slot. If the second slot is null it drops the items on the caster and pushes a reference of it to the stack.",
+ "hexgloop.page.inventorty.5": "Returns how many items are in the given slot.",
+ "hexgloop.page.inventorty.6": "Returns how many items can fit in the given slot.",
+ "hexgloop.page.inventorty.7": "Returns the type of the item in the given slot",
+ "hexgloop.page.inventorty.8": "Returns a list containing the sizes of every inventory the inventorty can see, sorted based on the inventory index.",
+ "hexgloop.page.inventorty.9": "Returns a list containing the names of every inventory the inventorty can see, sorted based on the inventory index.",
+
+ "hexgloop.page.casting_frog.0": "I've befriended a rather silly little creature I've been calling a Frogi. It likes to hang close to me, and seems to get excited when I jump?$(br2)After giving it instructions to cast, and an appropriate hat for its job, it seems that it'll cast when I go to jump but am already in the air, an attempt to double jump as silly as that sounds.",
+ "hexgloop.page.casting_frog.craft": "Jump !",
+ "hexgloop.page.casting_frog.teach": "Costs about 4 $(item)Charged Amethyst$()",
+ "hexgloop.page.casting_frog.eat": "I've seen frogs in a nature try to eat slimes and magma cubes, perhaps my Frogi would like to do the same ?$(br2)Costs about a shard",
+
+ "hexgloop.entry.mepts": "Mepts",
+ "hexgloop.page.mepts.0": "I've now met a few friendly creatures of this world who seem to have the ability to cast for me. They all seem to be made from the same material, a sort of infused, lively, wood with amethyst crystalization. I've decided to call them Mepts, maybe there are more out there ?",
+ "hexgloop.page.mepts.1": "I believe I've worked out how to make a mept log myself.",
+
+
+ "hexgloop.entry.loci": "Loci",
+ "hexgloop.page.loci.intro": "So far I've only constructed spell circles with slates, impeti, and directrices, but some of the blocks I've recently discovered seem to also have interesting uses in circles. I've adopted the term Loci to categorize them. On the following pages I've described the capabilities of some loci that I had previously discovered.",
+ "hexgloop.page.loci.slate_chest": "When the media wave flows through the chest it grants the circle access to the chest's inventory, as if it were the casters own. Good for large blockwork projects perhaps.",
+ "hexgloop.page.loci.pedestal": "When the media wave flows through a pedestal that holds an item containing a pattern, such as a scroll, it will add that pattern to the circle to be cast.",
+ "hexgloop.page.loci.mirror_pedestal": "This behaves similarly to its non-mirrored counterpart, however it will also try to embed any non pattern iotas. This embedding follows the same rules as embedding an iota in a pattern list.",
+
+ "hexgloop.page.accelerator.0": "Circles are by far my slowest means of casting, I believe this block should accelerate them. When the media wave hits an accelerator it boosts its speed by 200% of the original, with the boost fading by 20% each block. A single accelerator's boost will draw 2 amethyst dust from the impetus, though this cost will greatly increase as boosts are stacked. Spacing out the accelerators may help.",
+ "hexgloop.page.accelerator.1": "Speedy !",
+
+ "hexgloop.page.undulator.0": "While a comparator works just fine for detecting the first time the media wave passes over my slates, I haven't had a way to detect additional passes. The undulator will emit a redstone signal whenever it holds the wave.",
+ "hexgloop.page.undulator.1": "Mesmerizing",
+
+ "hexgloop.page.syncetrix.0": "This is certainly not a traditional Directrix ! The exiting wave will always exit the face. If there is a valid block connected it will exit there, otherwise the wave will jump to the first syncetrix in front of it, up to 16 blocks away.",
+ "hexgloop.page.syncetrix.1": "Sink-Eh-Trix",
+
+ "hexgloop.entry.item_flaying": "Item Flaying",
+ "hexgloop.page.mind_pedestal.0": "I can't exactly target an item for mind flaying, but targeting a pedestal holding an item should work fine.$(br2)While this will work with any pedestal, the Flayer's Pedestal can catch and store a single mind that it will attempt to push into future held items.",
+ "hexgloop.page.mind_jar.0": "While blocks may reject a being's mind, this jar sure won't! I can reflay with this mind by passing it as an item entity in place of the villager.",
+
+ "hexgloop.page.library_card.0": "I can construct grand libraries of everything I've learned and wrote, but I can't access them across dimensions.$(br2)Using the library card on an Akashic Record will bind the card to the current dimension. As long as the card is in my inventory, any attempt to read from an akashic library will work as if I were in the bound dimension.",
+
+ "hexgloop.page.coping_saw.0": "It's all so much to bear, the thought that my hexes could take more than I can give, I may need a way of coping with what I saw.$(br2)As long as the Coping Saw is in my hotbar, my hexes won't be able to take my health as media.",
+
+
+ "hexgloop.entry.addons": "Addons",
+ "hexgloop.page.addons": "I've heard tales of a number of additional hex disciplines. This link seems like a good reference for a list of all of them, as well as external tools, datapacks, and more",
+ "hexgloop.page.addons.link": "Addons List"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json b/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
new file mode 100644
index 000000000000..9cb8474c6245
--- /dev/null
+++ b/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
@@ -0,0 +1,495 @@
+{
+ "itemGroup.hexgloop.general": "咒法凝浆",
+ "item.hexgloop.gloop": "紫晶凝浆",
+ "item.hexgloop.multi_focus": "多重核心",
+ "item.hexgloop.casting_ring": "施法戒指",
+ "item.hexgloop.focal_ring": "核心戒指",
+ "item.hexgloop.focal_ring.sealed": "密封核心戒指",
+ "item.hexgloop.focal_pendant": "核心吊坠",
+ "item.hexgloop.focal_pendant.sealed": "密封核心吊坠",
+ "item.hexgloop.casting_potion": "施法药水",
+ "item.hexgloop.gloop_dye": "凝浆染料",
+ "item.hexgloop.slate_bowl": "板岩碗",
+ "item.hexgloop.hexxyos": "咒法麦片",
+ "item.hexgloop.hex_snack": "思维软糖",
+ "item.hexgloop.casters_coin": "施法者硬币",
+ "item.hexgloop.casters_coin.bound": "已绑定的施法者硬币",
+ "item.hexgloop.casters_coin.bound_caster": "绑定至%s",
+ "item.hexgloop.heart_pigment": "Sam的凝浆十足染色剂",
+ "item.hexgloop.gloopifact": "凝浆造物",
+ "item.hexgloop.synchronous_gloop": "同步凝浆",
+ "item.hexgloop.hand_mirror": "手镜",
+ "item.hexgloop.cosmetic_energizer": "意识扳手",
+
+ "item.hexgloop.lovely_staff": "爱心法杖",
+ "item.hexgloop.quartz_staff": "石英法杖",
+ "item.hexgloop.carrot_staff": "胡萝卜法杖",
+ "item.hexgloop.bee_staff": "蜜蜂法杖",
+ "item.hexgloop.rod_staff": "紫水晶钓竿",
+ "item.hexgloop.bone_staff": "骨头法杖",
+ "item.hexgloop.ice_staff": "寒冰法杖",
+ "item.hexgloop.blaze_staff": "烈焰法杖",
+ "item.hexgloop.pumpkin_staff": "南瓜……法杖?",
+ "item.hexgloop.wither_staff": "凋灵法杖",
+ "item.hexgloop.ghost_staff": "幽灵法杖",
+ "item.hexgloop.owl_staff": "猫头鹰法杖",
+ "item.hexgloop.celestial_staff": "天体法杖",
+ "item.hexgloop.longinus_staff": "朗基努斯之杖",
+ "item.hexgloop.candy_cane_staff": "拐杖糖法杖",
+ "item.hexgloop.menorah_staff": "多连灯法杖",
+ "item.hexgloop.christmas_tree_staff": "圣诞树法杖",
+
+ "item.hexgloop.hexxy_plush": "Hexxy毛绒玩偶",
+ "item.hexgloop.hex_blade": "咒术之剑",
+ "item.hexgloop.hex_pickaxe": "咒术镐",
+ "item.hexgloop.slate_loader": "仪式家雕刻器",
+ "item.hexgloop.inventorty": "物品栏小猫",
+ "item.hexgloop.slate_loader.written": "仪式家雕刻器[%s]",
+ "item.hexgloop.covered_spellbook": "装面法术书",
+ "item.hexgloop.covered_spellbook.sealed": "密封装面法术书",
+ "item.hexgloop.hand_mirror.tooltip": "影像[%s]",
+ "item.hexgloop.hand_mirror.tooltip.not_activated": "上一影像[%s]",
+
+ "item.hexgloop.mept_log": "使偶木材",
+ "item.hexgloop.casting_frog": "蛙仔",
+ "item.hexgloop.empty_jar": "空罐子",
+ "item.hexgloop.mind_jar": "罐中意识",
+ "item.hexgloop.mind_jar.tooltip": "装有一名%s%s的意识",
+ "item.hexgloop.mind_jar.tooltip.nojob": "装有一个未经训练的意识",
+ "item.hexgloop.mind_jar.tooltip.empty": "不知怎的未装有意识?",
+
+ "item.hexgloop.essence_stone": "精华石",
+ "item.hexgloop.script": "手稿",
+ "item.hexgloop.coping_saw": "缓释锯",
+ "item.hexgloop.library_card": "阿卡夏借书卡",
+ "item.hexgloop.library_card.tooltip_dimension": "绑定至%s",
+
+ "item.hexgloop.copper_pen_fidget": "笔指记",
+ "item.hexgloop.dreidel_fidget": "四面陀螺指记",
+ "item.hexgloop.rainbow_amogus_fidget": "彩虹色船员按按乐指记",
+
+ "block.hexgloop.gloop_energizer": "充能器",
+ "block.hexgloop.pedestal": "支座",
+ "block.hexgloop.mirror_pedestal": "嵌镜支座",
+ "block.hexgloop.mind_pedestal": "剥离者支座",
+ "block.hexgloop.slate_chest": "板岩箱子",
+ "block.hexgloop.gloopy_slate_chest": "凝浆板岩箱子",
+ "block.hexgloop.sentinel_bed": "哨卫床",
+ "block.hexgloop.accelerator": "加速器",
+ "block.hexgloop.hexxed_glass": "咒术玻璃",
+ "block.hexgloop.slate_lamp": "板岩灯",
+ "block.hexgloop.charged_amethyst_block": "充能紫水晶块",
+ "block.hexgloop.gloop_block": "凝浆块",
+ "block.hexgloop.syncetrix": "同步石",
+ "block.hexgloop.wave_locus": "波荡器",
+ "block.hexgloop.enlightenment_gate": "施法者之门",
+ "block.hexgloop.enlightenment_bridge": "施法者之桥",
+ "block.hexgloop.thinking_carpet": "施法者地毯",
+ "block.hexgloop.conjured_redstone": "构筑的红石",
+ "block.hexgloop.iotic_dial": "Iota仪表",
+
+ "key.hexgloop.open_iota_wheel": "打开Iota轮",
+ "key.hexgloop.casting_ring": "使用施法戒指",
+ "key.hexgloop.scroll_down": "向下滚动法术书",
+ "key.hexgloop.scroll_up": "向上滚动法术书",
+ "key.hexgloop.open_hex_book": "打开咒术笔记",
+ "key.categories.hexgloop": "咒法凝浆",
+
+ "hexgloop.tooltip.multi_focus.page": "所选槽位 %d/%d",
+ "hexgloop.tooltip.multi_focus.page.sealed": "所选槽位 %d/%d(%s)",
+ "hexgloop.tooltip.multi_focus.page_with_name": "所选槽位 %d/%d(“%s”)",
+ "hexgloop.tooltip.multi_focus.page_with_name.sealed": "所选槽位 %d/%d(“%s”)(%s)",
+ "hexgloop.tooltip.fidget.page": "所选槽位 %d/%d",
+ "hexgloop.tooltip.fidget.page_with_name": "所选槽位 %d/%d(“%s”)",
+
+ "hexgloop.tooltip.media_worth": "共计%s",
+ "hexgloop.tooltip.media_worth_each": "%s每物品",
+ "hexgloop.tooltip.pigment": "染色剂:%s",
+
+ "hexcasting.spell.hexgloop:craft/potion": "合成药水",
+ "hexcasting.spell.hexgloop:set_label": "达美之策略",
+ "hexcasting.spell.hexgloop:read_orchard": "果园之精思",
+ "hexcasting.spell.hexgloop:read_orchard_list": "果园之精思,第二型",
+
+ "hexcasting.spell.hexgloop:read_pendant": "纪念之精思",
+ "hexcasting.spell.hexgloop:write_pendant": "纪念之策略",
+ "hexcasting.spell.hexgloop:check_read_pendant": "珍惜之精思",
+ "hexcasting.spell.hexgloop:check_write_pendant": "怀旧之精思",
+
+ "hexcasting.spell.hexgloop:read_ring": "环戒之精思",
+ "hexcasting.spell.hexgloop:write_ring": "环戒之策略",
+
+ "hexcasting.spell.hexgloop:read_right_ring": "对手之精思",
+ "hexcasting.spell.hexgloop:write_right_ring": "对手之策略",
+
+ "hexcasting.spell.hexgloop:read_left_ring": "恋人之精思",
+ "hexcasting.spell.hexgloop:write_left_ring": "恋人之策略",
+
+ "hexcasting.spell.hexgloop:check_read_ring": "验证师之精思",
+ "hexcasting.spell.hexgloop:check_write_ring": "珠宝匠之精思",
+
+ "hexcasting.spell.hexgloop:read_comparator": "Etho之纯化",
+ "hexcasting.spell.hexgloop:read_redstone": "Seth之纯化",
+ "hexcasting.spell.hexgloop:conjure_redstone": "召唤红石方块",
+
+ "hexcasting.spell.hexgloop:clear_truename": "更新真名",
+ "hexcasting.spell.hexgloop:truename_agree_eula": "认可真名",
+
+ "hexcasting.spell.hexgloop:in_overworld": "大地之精思",
+ "hexcasting.spell.hexgloop:in_nether": "永焰之精思",
+ "hexcasting.spell.hexgloop:opnop_useless": "埃吉娅之策略",
+ "hexcasting.spell.hexgloop:check_ambit": "金丝雀之纯化",
+ "hexcasting.spell.hexgloop:catchy_eval": "雅典娜之策略",
+ "hexcasting.spell.hexgloop:reveal_mishap": "雅典娜之揭示",
+ "hexcasting.spell.hexgloop:stringify_mishap": "雅典娜之精思",
+ "hexcasting.spell.hexgloop:assert": "欧拉之纯化",
+
+ "hexcasting.spell.hexgloop:get_hotbar_slot": "帮手之精思",
+ "hexcasting.spell.hexgloop:set_hotbar_slot": "帮手之策略",
+ "hexcasting.spell.hexgloop:swap_hotbar_slot": "换手",
+
+ "hexcasting.spell.hexgloop:conjure_tasty_treat": "召唤美味点心",
+
+ "hexcasting.spell.hexgloop:dispense": "发射",
+ "hexcasting.spell.hexgloop:stonecut": "切石",
+
+ "hexcasting.spell.hexgloop:bind_mirror": "绑定镜子",
+ "hexcasting.spell.hexgloop:temp_bind_mirror": "暂态绑定镜子",
+
+ "hexcasting.spell.hexgloop:compare_item_bound_caster": "公证人之纯化",
+ "hexcasting.spell.hexgloop:cooler_compare_item_bound_caster": "公证人之馏化",
+ "hexcasting.spell.hexgloop:get_item_bound_caster": "商人之精思",
+ "hexcasting.spell.hexgloop:cooler_get_item_bound_caster": "商人之纯化",
+
+ "hexcasting.spell.hexgloop:gloopimind_upload": "凝浆之思上传",
+ "hexcasting.spell.hexgloop:gloopimind_download": "凝浆之思下载",
+ "hexcasting.spell.hexgloop:craft/gloopifact": "制作凝浆造物",
+ "hexcasting.spell.hexgloop:gloopifact_read": "凝浆施法者之精思",
+ "hexcasting.spell.hexgloop:gloopifact_write": "凝浆施法者之策略",
+ "hexcasting.spell.hexgloop:gloopifact_check_read": "凝浆计员之精思",
+ "hexcasting.spell.hexgloop:gloopifact_check_write": "凝浆价员之馏化",
+
+ "hexcasting.spell.hexgloop:block_read": "仪式家之纯化",
+ "hexcasting.spell.hexgloop:block_write": "仪式家之策略",
+ "hexcasting.spell.hexgloop:can_block_read": "勘测员之纯化",
+ "hexcasting.spell.hexgloop:can_block_write": "勘测员之馏化",
+
+ "hexcasting.spell.hexgloop:craft/inventorty": "教导物品栏小猫",
+ "hexcasting.spell.hexgloop:torty_transfer": "物品栏小猫传输",
+ "hexcasting.spell.hexgloop:torty_count": "物品栏猫之纯化",
+ "hexcasting.spell.hexgloop:torty_max_count": "物品栏猫至大之纯化",
+ "hexcasting.spell.hexgloop:torty_get_type": "好奇心之纯化",
+ "hexcasting.spell.hexgloop:torty_inv_sizes": "物品栏猫之精思",
+ "hexcasting.spell.hexgloop:torty_inv_names": "物品栏猫之精思,第二型",
+
+ "hexcasting.spell.hexgloop:craft/casting_frog": "教导蛙仔",
+ "hexcasting.spell.hexgloop:frog_eat": "蛙仔就餐",
+
+
+ "hexcasting.spell.hexgloop:craft/hex_blade": "锻造咒术之剑",
+ "hexcasting.spell.hexgloop:craft/hex_pickaxe": "锻造咒术之镐",
+
+ "hexcasting.mishap.bad_item.slot": "%1$s需要在%3$s中有%2$s,而实际为%4$dx %5$s",
+ "hexcasting.mishap.no_item.slot": "%1$s需要在%3$s中有%2$s,而实际无对应物品",
+ "hexcasting.mishap.bad_offhand_item.caster_bound": "一个绑定至咒术师的物品",
+
+ "hexgloop.slotname.necklace": "项链槽",
+ "hexgloop.slotname.offhandring": "戒指槽",
+ "hexgloop.slotname.mainhandring": "戒指槽",
+ "hexcasting.mishap.bad_item.labely_item": "一个可标签物品",
+ "hexcasting.mishap.bad_item.gloopifact": "一个凝浆造物",
+ "hexcasting.mishap.bad_item.no_stonecutting": "一个可切石物品",
+
+ "hexcasting.mishap.bad_entity.not_frog_food": "一个蛙仔能吃的实体",
+
+ "hexcasting.mishap.bad_block.iota.read": "一个可以读出iota的地方",
+ "hexcasting.mishap.bad_block.iota.write": "一个可以写入iota的地方",
+
+ "hexcasting.mishap.mirror_limits": "%s没有影像",
+
+ "hexcasting.mishap.wrong_casting_source": "%s本应在%s处施放,而实际施放于%s",
+ "hexgloop.comment.ignore": "the second param here VVV is a comma separated list of source_type translation keys. if you're working on a translation and this is preventing it from translating well lmk",
+ "hexcasting.mishap.wrong_casting_sources": "%s本应在%s中一处施放,而实际施放于%s",
+ "hexcasting.mishap.invalid_value.class.kittygrabbable": "一个物品栏槽位",
+
+
+ "hexgloop.mishap.catch_wrapper": "上一事故:%s",
+ "hexgloop.mishap.catch_wrapper.none": "此次施法还未产生事故",
+ "hexcasting.mishap.cleared_truename": "%s试图使用%s的真名",
+ "hexcasting.mishap.assertion": "%s的断言失败了",
+ "hexcasting.mishap.assertion.labeled": "%s在%s的断言失败了",
+ "hexgloop.generic_circle_spell": "法术环",
+
+ "hexgloop.source_type.staff": "法杖",
+ "hexgloop.source_type.circle": "法术环",
+ "hexgloop.source_type.packaged_hex": "施法物品",
+ "hexgloop.source_type.wisp": "咒灵",
+ "hexgloop.source_type.gloopifact": "凝浆造物",
+ "hexgloop.source_type.inventorty": "物品栏小猫",
+ "hexgloop.source_type.frog_casting": "蛙仔",
+
+ "hexgloop.container.simple": "简单",
+ "hexgloop.container.result": "产物",
+
+ "hexgloop.greatbook.saved": "已将%s(%s)写入咒术笔记",
+ "hexgloop.greatbook.removed": "已从咒术笔记中清除%s",
+ "hexgloop.greatbook.cleared": "已清除咒术笔记中的卓越法术",
+
+ "hexgloop.tooltip.pattern_shift": "(按住Shift查看图案信息)",
+
+ "block.minecraft.banner.hexgloop.hermes.white": "白色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.orange": "橙色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.magenta": "品红色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.light_blue": "淡蓝色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.yellow": "黄色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.lime": "黄绿色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.pink": "粉红色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.gray": "灰色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.light_gray": "淡灰色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.cyan": "青色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.purple": "紫色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.blue": "蓝色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.brown": "棕色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.green": "绿色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.red": "红色赫尔墨斯",
+ "block.minecraft.banner.hexgloop.hermes.black": "黑色赫尔墨斯",
+
+ "hexgloop.truename_eula": "我似乎已将我的真名注入这一物件。光是想到这件物品落入恶人手中会发生什么就令我震悚。回顾我在真名保护法术上留的笔记也许能稍作缓解。",
+
+ "hexgloop.gloopvancement.title": "凝浆十足",
+ "hexgloop.gloopvancement.desc": "往手上沾满凝浆",
+ "hexgloop.syncvancement.title": "远距的凝浆操作",
+ "hexgloop.syncvancement.desc": "将凝浆同步起来",
+ "hexgloop.sketchy_foods.title": "会运行你的小食",
+ "hexgloop.sketchy_foods.desc": "吃一个咒术小食,大概是纯素的?",
+
+ "hexgloop.hexdoc.gloopcipe_media_cost": "消耗%d个紫水晶粉",
+
+ "hexgloop.entry.gloopytweaks": "“凝浆”至极的变化",
+ "hexgloop.page.gloopytweaks.0": "我最近发现世界上出现了某些“凝浆”极了的变化。$(br2)咒术笔记自身似乎……更平易友好了。打开到带有图案的一页并与悬挂的卷轴相碰,它就会将图案复制到卷轴上。甚至还会根据我用哪一只手持书决定复制哪一个图案。",
+ "hexgloop.page.gloopytweaks.1": "我还发现如果想让法杖更多姿多彩,可以为法杖覆上染料。$(br2)到目前为止最奇怪的变化则是咒术的$(o)感觉$()不同了,甚至有种它们顺着我的骨头振动的感受。也许足够敏感的扫描器能发现其中区别?",
+
+ "hexgloop.entry.gloopytweaks_client": "“凝浆”十足的意识",
+ "hexgloop.page.gloopy_client.0": "我感觉最近我的意识更敏锐了,也许是和我的咒术步调更一致的缘故。$(br2)例如,可视化图案变得更简单了。我甚至只需听见类似“\\”的东西就能将其完美可视化为$(m)$(0)$()。此外,我还能将鼠标悬停其上以获得更为清晰的视图,还可点击它们以复制。",
+ "hexgloop.page.gloopy_client.1": "我还发现翻笔记变得更顺畅了。按下$(k:key.hexgloop.open_iota_wheel)就能可视化法术书,并通过$(l)$(k:key.hexgloop.scroll_down)$()和$(l)$(k:key.hexgloop.scroll_up)$()快速翻页。",
+ "hexgloop.page.gloopy_client.2": "我还注意到最近施法时对照笔记更轻松了,按下$(k:key.hexgloop.open_hex_book)就能让咒术笔记飞到面前,并打开上次翻到的那页。$(br2)最后,在查看某些物品时,我似乎能察觉到更多细节信息,比如媒质物品、染色剂、卷轴之类。",
+
+ "hexgloop.entry.casting_ring": "施法戒指",
+ "hexgloop.page.casting_ring.0": "我确实很喜欢我的法杖,但偶尔也会想要一种更轻便的施法器具。$(br2)而在佩戴上施法戒指后,我就能通过按$(l)$(k:key.hexgloop.casting_ring)$()直接打开咒术网格而不需法杖辅助。同时因为没有法杖,咒术网格的间距增大了,不过也能算值得。",
+ "hexgloop.page.casting_ring.1": "我注意到我的咒术倾向于使用在我副手中的物品,也许在我双手都空出时这种倾向会有作用?",
+
+ "hexgloop.entry.casting_potion": "施法药水",
+ "hexgloop.page.casting_potion.0": "我发现以$(l:items/amethyst#dust)紫水晶粉$(/l)(或任意$(l:items/pigments)染色剂$(/l))和浓稠的药水为材料可酿造出一种能向咒术中引导媒质的药水。$(br2)可用$(l:hexgloop:patterns/spells/craft_potion)合成药水$(/l)法术合成这种药水。",
+
+ "hexgloop.entry.fidgets": "指记",
+ "hexgloop.page.fidgets.0": "我偶然发现了些极为有意思的装置!$(br2)我称这些装置为“指记”,它们能将我的思维以可被咒术探察的形态引导入咒术。我可和法术书一样与它交互,只是没有存储 iota 的功能。访问这些思维的方式参见$(l:hexgloop:patterns/minds_orchard)意识果园$(/l)部分。",
+ "hexgloop.page.fidgets.pen": "一种只能在两种状态间切换的简单装置。不过切换时发出的咔哒声还算好听。",
+ "hexgloop.page.fidgets.amogus": "起初我觉得这物品很可疑,不过如今我已经把我的担心全部踢出去了。这个奇异的装置会发出最令人开心的啪啪声,且能以六种状态引导我的思维。",
+ "hexgloop.page.fidgets.dreidel": "我用黏土造出了这个小玩意!它有四个面,能在四种状态间切换。",
+
+ "hexgloop.entry.trinket_focus": "饰品型核心",
+ "hexgloop.page.trinket_focus.0": "我有了一种配饰的强烈欲望。这些饰品和普通的核心功能一致,区别在于我能佩戴它们并能使用$(l:hexgloop:patterns/trinket_focus_patterns)饰品型核心图案$(/l)。$(br2)$(o)[凝浆开发者笔记:Fabric 需安装 Trinkets,Forge 需安装 Curios 才能佩戴这些物品。不过没有安装时也可将其用作核心。]$()",
+ "hexgloop.page.trinket_focus.pendant": "一种时尚的吊坠,适用于希望保存在心里的 iota。",
+ "hexgloop.page.trinket_focus.ring": "由下界最强韧的金属铸成的戒指。专为最重要的 iota 设计。",
+
+ "hexgloop.entry.gloop": "凝浆!",
+ "hexgloop.page.gloop.0": "这真是“凝浆”极了!计算表明在适合条件下,黏液和媒质会形成一种反应性和适应性极高的材料。$(br2)反应的启动需要给反应物充能和某些机制的帮助。我在下页记录了我对这种装置的设计草稿。",
+ "hexgloop.page.gloop.1": "从这种凝浆本身的适应性看来,应当还存在几种其他形态仍待发现……",
+ "hexgloop.page.gloop.2": "我最近发现了一种新形态的凝浆,称作“同步凝浆”,它似乎能间隔极远的距离发生反应。",
+ "hexgloop.page.gloop.energizer": "这个机器应当足够强力,能将媒质引导入周围的水中而进一步导入反应物中。可用漏斗一类的装置送入媒质。$(br2)只需要再有触发反应的方式就可以了……也许可以请求自然给予灵光一“闪”?",
+
+ "hexgloop.entry.multi_focus": "多重核心",
+ "hexgloop.page.multi_focus.0": "我能感受到紫晶凝浆对我意识的拉扯,也许我能拉扯回来?$(br2)由紫晶凝浆制成的多重核心能在单个物品中存有多个 iota,并可通过$(l)$(k:key.hexgloop.open_iota_wheel)$()快速取用,比较像一本小型法术书。更多组织整理的技巧参见有关$(l:hexgloop:patterns/labels)标签$(/l)的笔记。",
+ "hexgloop.page.multi_focus.1": "$(o)我仿佛能听见它那和猫一样的呼噜声了。$()",
+
+ "hexgloop.entry.gloop_dye": "凝浆染料",
+ "hexgloop.page.gloop_dye.0": "自己混合染料相当累人,能有种更精确的控制方式更是再好不过。$(br2)这个凝浆染料能为皮革盔甲或法杖等物品染上任意颜色。对其使用$(l:patterns/readwrite#hexcasting:write)书吏之策略$(/l)写入各分量在 0 到 255 之间的向量即可用相应 RGB 颜色染色。$(br2)使用染料需要消耗媒质,但我能像缀品一样为其重新充能。",
+ "hexgloop.page.gloop_dye.1": "$(o)五彩缤纷!$()",
+
+ "hexgloop.entry.labels": "标签",
+ "hexgloop.page.labels.0": "尽管现有的系统能让我迅速翻过笔记书页,有个标记书页的方式也不错。$(br2)这种系统可以使用 iota 标记书页。所有可用的标签类型见后页。",
+ "hexgloop.page.labels.1": "$(li)数/字符串$(li)图案$(li)物品(物品实体或咒法拓展相关 iota 均可)$(li)实体$(li)Null(用于清除)",
+ "hexgloop.page.labels.2": "根据所给 iota 为我副手中可标签物品所选槽位分配标签。",
+
+ "hexgloop.entry.minds_orchard": "意识果园",
+ "hexgloop.page.minds_orchard.0": "我发现如果我能在意识中存下一个足够具体的想法,就可用如下图案将其摘入咒术中。类似$(l:hexgloop:items/fidgets)指记$(/l)的事物应该有助于引导思维。$(br2)我意识果园中存储的值必然是包含至少一个数的列表。不过我还没找到在其中存储多个数的方法。",
+ "hexgloop.page.minds_orchard.1": "从我的意识果园中摘出一个代表我思维索引的数。",
+ "hexgloop.page.minds_orchard.2": "从我的意识果园中摘出包含思维索引的列表。",
+
+ "hexgloop.entry.trinket_focus_patterns": "饰品型核心图案",
+ "hexgloop.page.trinket_focus_patterns.0": "这些图案在有助于与$(l:hexgloop:items/trinket_focus)饰品型核心$(/l)交互。通常状况下它们和其他读写图案功能类似。",
+ "hexgloop.page.trinket_focus_patterns.read_pendant": "复制我所佩戴的吊坠中的 iota,并将其压入栈顶。",
+ "hexgloop.page.trinket_focus_patterns.write_pendant": "移除栈顶 iota,并将其写入我所佩戴的吊坠。",
+ "hexgloop.page.trinket_focus_patterns.check_read_pendant": "如果我所佩戴的吊坠中存有可被读取的 iota,返回 True。否则返回 False。",
+ "hexgloop.page.trinket_focus_patterns.check_write_pendant": "如果能将 iota 写入我所佩戴的吊坠,返回 True。否则返回 False。",
+
+ "hexgloop.page.trinket_focus_patterns.read_ring": "复制我所佩戴的戒指中的 iota,并将其压入栈顶。如果同时佩戴多枚戒指,则优先选择除施法用手外另一只手上的。",
+ "hexgloop.page.trinket_focus_patterns.write_ring": "移除栈顶 iota,并将其写入我所佩戴的戒指。如果同时佩戴多枚戒指,则优先选择除施法用手外另一只手上的。",
+ "hexgloop.page.trinket_focus_patterns.read_left_ring": "复制我所佩戴的戒指中的 iota,并将其压入栈顶。如果同时佩戴多枚戒指,则优先选择副手上的。",
+ "hexgloop.page.trinket_focus_patterns.write_left_ring": "移除栈顶 iota,并将其写入我所佩戴的戒指。如果同时佩戴多枚戒指,则优先选择副手上的。",
+ "hexgloop.page.trinket_focus_patterns.read_right_ring": "复制我所佩戴的戒指中的 iota,并将其压入栈顶。如果同时佩戴多枚戒指,则优先选择主手上的。",
+ "hexgloop.page.trinket_focus_patterns.write_right_ring": "移除栈顶 iota,并将其写入我所佩戴的戒指。如果同时佩戴多枚戒指,则优先选择主手上的。",
+
+ "hexgloop.page.trinket_focus_patterns.check_read_ring": "如果我所佩戴的戒指中存有可被读取的 iota,返回 True。否则返回 False。",
+ "hexgloop.page.trinket_focus_patterns.check_write_ring": "如果能将 iota 写入我所佩戴的戒指,返回 True。否则返回 False。",
+
+ "hexgloop.entry.craft_potion": "合成施法药水",
+ "hexgloop.page.craft_potion.0": "合成一瓶$(l:hexgloop:items/casting_potion)施法药水$(/l)。消耗大约 1 个紫水晶碎片。",
+
+
+ "hexgloop.entry.redstone": "红石",
+ "hexgloop.page.redstone.0": "返回所给位置处方块红石信号的强度。",
+ "hexgloop.page.redstone.1": "返回比较器从所给位置处方块读出的信号强度。",
+ "hexgloop.page.redstone.2": "在所给位置处以所给信号强度召唤类似红石的方块。信号强度需在 0 到 15 之间。消耗 1 个紫水晶粉。",
+
+
+ "hexgloop.entry.truename_protection": "真名保护",
+ "hexgloop.page.truename_protection.0": "我已知道我的真名能给予他人找到我的能力,但我的研究表明,还有方式通过我的真名以我的身份施法。$(br2)这相当令人不安,但我已经找到了抵御这种效果的方法,详细内容记述于后页。",
+ "hexgloop.page.truename_protection.1": "此法术能更新我的真名,并清除掉所有存储设备中对我真名的引用。",
+ "hexgloop.page.truename_protection.2": "最近我在写下我的真名时总是惴惴不安。此法术似乎能将这种不安一扫而空。要是想回到原本小心谨慎的状态,可以再次施放此法术。",
+
+ "hexgloop.entry.gloop_misc_spells": "凝浆杂项法术",
+ "hexgloop.page.dispense": "将所给物品实体发射出去,如同从位于第一位置向量、朝向第二方向向量的发射器发射一样。$(br2)大多数物品消耗 1/2 个紫水晶粉,箭消耗 1 个充能紫水晶,其他弹射物消耗 3 个紫水晶粉。",
+ "hexgloop.page.stonecut": "如同在切石机中一样切凿所给物品实体。若再传入一个数,则会按照切石机中相应索引的配方切石;若再传入一个物品类型,则会尝试切凿为该类型的物品。$(br2)消耗 1/8 个紫水晶粉。",
+
+ "hexgloop.entry.gloopmisc": "凝浆杂项",
+ "hexgloop.page.gloopmisc.0": "检测实体是否身处主世界。",
+ "hexgloop.page.gloopmisc.1": "检测实体是否身处下界。",
+ "hexgloop.page.gloopmisc.2": "检测所给实体或位置向量是否在我影响范围内。",
+ "hexgloop.page.gloopmisc.3": "断言所给布尔值为 True,否则产生事故。事故可用图案标记,若有对应标签则将其压入栈顶。",
+ "hexgloop.page.gloopmisc.4": "什么都不会做。",
+ "hexgloop.page.gloopmisc.5": "以类似$(l:hexcasting:patterns/meta#hexcasting:eval)赫尔墨斯之策略$(/l)的方式运行栈中图案。产生事故时不会停止,而是会继续施放。返回此次施法是否造成事故。",
+ "hexgloop.page.gloopmisc.6": "揭示上一事故。用法杖直接施放时可能会表现得很奇怪。",
+ "hexgloop.page.gloopmisc.7": "返回记述上一事故的字符串。",
+
+ "hexgloop.entry.iotic_blocks": "存有 Iota 的方块",
+ "hexgloop.page.iotic_blocks.0": "我曾遇见过若干能存有 iota 的方块。可以通过已有方式访问其中的 iota,但还是直接操作来得方便。",
+ "hexgloop.page.iotic_blocks.read": "返回所给位置处方块存储的 iota。",
+ "hexgloop.page.iotic_blocks.write": "如果可行,将所给 iota 存入所给位置处的方块。",
+ "hexgloop.page.iotic_blocks.can_read": "检验所给方块中是否存有可读取的 iota。",
+ "hexgloop.page.iotic_blocks.can_write": "检验能否将所给 iota 存入所给位置处的方块。",
+
+ "hexgloop.entry.hotbar": "快捷栏操纵",
+ "hexgloop.page.hotbar.0": "返回当前选中槽位的索引。",
+ "hexgloop.page.hotbar.1": "选中以所给数为索引的槽位。",
+ "hexgloop.page.hotbar.2": "交换左右手手持的物品。",
+
+ "hexgloop.entry.more_staffs": "凝浆法杖",
+ "hexgloop.page.more_staffs.0": "我绘制了一些新法杖的设计图。这些法杖形态各异,但功能完全一致。",
+
+ "hexgloop.page.inscriber": "手动铺设石板很费工夫。因此我捆出了这件工具以减少麻烦。可以向其写入图案列表并放入石板(就和放入收纳袋一样),此时使用此物品就会放置一块石板,并附上列表中的下一个图案。",
+
+ "hexgloop.entry.misc_blocks": "杂项方块",
+ "hexgloop.page.hexxed_glass": "紫水晶粉块可以说是带有魔法的沙子。至少烧炼它就和烧炼沙子一样。奇怪的是,我的射线追踪会穿过这种方块。",
+ "hexgloop.page.charged_amethyst_block": "对施放咒术没什么作用,但确实很漂亮。",
+ "hexgloop.page.slate_lamp": "和红石灯很相似,提供红石信号或通过其他方式充能时会发出柔和的紫色光芒。",
+ "hexgloop.page.thinking_carpet": "极为舒服的地毯,站在上面施法时有种持有探知透镜的感觉,但这种感觉相对较弱。",
+ "hexgloop.page.enlightenment_gate": "只会允许意识撕裂的人通过。",
+ "hexgloop.page.enlightenment_bridge": "只会承载意识撕裂的人。",
+
+ "hexgloop.entry.hex_tools": "咒术工具",
+ "hexgloop.page.hex_tools.0": "咒术大体上能替代剑和其他工具,但我必须承认工具本身带有某种天分。$(br2)这些工具具有的咒术,再加上下界合金的感知力,便能兼顾两种优点。",
+ "hexgloop.page.hex_tools.1": "和缀品类似,每件工具都能存有一个咒术,按下$(k:key.use)即可施放。此外,每种工具都有与本来功能对应的独特施法方式。$(br2)用于支持咒术的媒质也会赋予工具自身以力量,且每次使用时都会消耗。",
+ "hexgloop.page.hex_blade.0": "用此剑击中目标时,其会以目标实体为初始栈施放咒术。$(br2)媒质构成的锋刃本身也能造成少量伤害,大约与下界合金剑相同。",
+ "hexgloop.page.hex_blade.1": "与其他制造施法物品的法术类似。消耗大约 4 个$(l:items/amethyst)$(item)充能紫水晶/$。",
+ "hexgloop.page.hex_pickaxe.0": "用此镐挖掘方块时,其会以该方块位置向量为初始栈施放咒术。",
+ "hexgloop.page.hex_pickaxe.1": "与其他制造施法物品的法术类似。消耗大约 4 个$(l:items/amethyst)$(item)充能紫水晶/$。",
+
+ "hexgloop.page.script.0": "$(l:items/focus)$(item)核心/$功能强大,但论及简单咒术则有种大材小用的感觉。现在谁还愿意去采集荧石呢?$(br2)手稿能存有一个最多含有 16 个图案的列表。",
+
+ "hexgloop.page.essence_stone.0": "尽管这个世界中的生物没有施法的能力,但它们的意识和我一样能被染色。$(br2)我能用精华石提取实体的本质,并用作自身思维的染色剂。将实体写入精华石就能提取出其本质。",
+
+ "hexgloop.page.dyebook": "我一直都想给我的法术书加上一点色彩。给它们装上书皮就可以为其染色了。用于装订的下界合金则能使其防火。$(br2)装面的过程不会影响到书页中记载的法术。我倒是还没找到去掉这层书皮的好方法……",
+
+ "hexgloop.entry.hex_snacks": "咒术小食",
+ "hexgloop.page.hex_snacks.intro": "研究咒法学的劳累总是能勾起我的食欲,好在我找到了些点心和小食!",
+ "hexgloop.page.hex_snacks.gummy": "思维软糖是一种不错的小食,适合忙中闲暇食用。它带有极少量的媒质,或许不算是什么优秀的缀品补剂。",
+ "hexgloop.page.hex_snacks.conjure_gummy": "在所给位置召唤一块思维软糖。消耗 1 个紫水晶粉。",
+ "hexgloop.page.hex_snacks.hexxyos": "满溢着意识的早餐的一部分。",
+
+ "hexgloop.page.chests.normal": "用石板加固的箱子。存储空间比普通箱子略大。",
+ "hexgloop.page.chests.gloopy": "用石板和凝浆加固的箱子。存储空间是普通箱子的两倍。$(br2)不知道是否还有其他用途静待发现?",
+
+ "hexgloop.page.sentinel_bed": "适合我哨卫的舒适床铺,哨卫似乎总是会想回到床上。貌似猫也觉得这张床很舒服。",
+
+ "hexgloop.entry.reflection": "影像",
+ "hexgloop.page.reflection.0": "这种镜子由咒术玻璃和同步凝浆制成,似乎能让我的咒术直接作用于镜中映射的物品,就如同它们在我的另一只手中。可以用探知透镜查看映射了什么物品。",
+ "hexgloop.page.reflection.1": "此法术能将我自己绑定至嵌镜支座,该支座上的物品会被映射至我的空手中。",
+ "hexgloop.page.reflection.2": "与绑定镜子类似,但效果只会在咒术中持续一瞬。",
+
+
+ "hexgloop.page.casters_coin.0": "我的真名非常珍贵,最好找一种足够安全的方法交换它们。这种硬币应该就是合适的交换物。我能像写入核心一样写入这种硬币,但每枚硬币只能读取一次。我在此记录了若干检测谁写入了硬币的图案。",
+ "hexgloop.page.casters_coin.1": "",
+ "hexgloop.page.casters_coin.2": "接受玩家实体,并返回他们是否曾向我另一只手中的硬币写入。",
+ "hexgloop.page.casters_coin.3": "接受栈顶玩家实体和物品实体,并返回所给玩家是否曾向所给物品实体中的硬币写入。",
+ "hexgloop.page.casters_coin.4": "返回曾向我另一只手中硬币写入的玩家的名称。",
+ "hexgloop.page.casters_coin.5": "返回曾向所给物品实体中硬币写入的玩家的名称。",
+
+
+ "hexgloop.page.gloopifact.0": "凝浆貌似很擅长存储和操纵 iota,也许它在施法工具中也能高效运作。$(br2)凝浆造物与造物十分相似,只是凝浆造物更为……凝浆。下界合金固定件似乎令其防火,这样就再也不会因下界中的事故而损失工具了。",
+ "hexgloop.page.gloopifact.1": "中央的核心仍可正常访问,不过我的咒术依旧更倾向于使用另一只手中的 iota 源。我为此记录了一系列图案,这些图案与其他 iota 操作图案极为类似,但它们会优先使用内部核心。$(br2)我还发现其渡鸦之思相较之下极具可塑性。因此我记录了沟通它与法杖施法时的渡鸦之思的图案。$(br2)除去制作用图案外,其余图案只在使用凝浆造物施法时有效。",
+ "hexgloop.page.gloopifact.craft": "",
+ "hexgloop.page.gloopifact.3": "消耗大约 16 个$(l:items/amethyst)$(item)充能紫水晶/$。",
+ "hexgloop.page.gloopifact.4": "将凝浆造物的渡鸦之思上传至法杖。",
+ "hexgloop.page.gloopifact.5": "将法杖的渡鸦之思下载至凝浆造物。",
+ "hexgloop.page.gloopifact.6": "读取凝浆造物内部核心中的 iota。",
+ "hexgloop.page.gloopifact.7": "向凝浆造物内部核心写入 iota。",
+ "hexgloop.page.gloopifact.8": "检验内部核心是否可读取。",
+ "hexgloop.page.gloopifact.9": "检验所给 iota 是否可写入内部核心。",
+
+ "hexgloop.page.hand_mirror.0": "被施以咒术的手镜,它会$(l:hexgloop:patterns/spells/reflection)映射$(/l)出任何写入的物品实体。用支座放置物品应该比较方便。$(br2)与其他只能由咒术触及的影像不同,手镜的影像具有某种物质性,我能像物品就在我手中一样使用它们。",
+ "hexgloop.page.hand_mirror.craft": "",
+
+ "hexgloop.page.pedestal.0": "我似乎总是会找不到我丢在地上的物品。$(br2)支座能够装有单个物品组。该物品组会被固定在原位,但我的咒术仍会将其视为地上的物品。它似乎会拾取掉落在其上的物品,对漏斗等设备的响应也贴合我的预想。$(br2)我感觉这些支座中可能蕴含着更多魔法。",
+ "hexgloop.page.pedestal.1": "坚实",
+ "hexgloop.page.pedestal.2": "支座中嵌入的小片镜子允许我与其绑定,从而查看其$(l:hexgloop:patterns/spells/reflection)影像$(/l)。",
+
+ "hexgloop.page.inventorty.0": "我找到了我见过最可爱的猫猫!它似乎喜欢待在我的口袋里和物品玩耍。也许我能教它怎么玩耍更能帮到他人?$(br2)我成功教会它施法了!给予它一个图案列表再轻抚它即可。这种操作和使用收纳袋相似得出奇。它们开始施法时的栈带有一些额外信息,首先是代表我是否拿起物品栏小猫的布尔值,然后是代表它所处或所看物品栏槽位的数。",
+ "hexgloop.page.inventorty.1": "有部分图案只能由物品栏小猫绘制,这些图案大多都需要“槽位”('slot')参数。“槽位”并不指代某种实际的 iota 类型,而是可被物品栏小猫视作槽位的任意 iota:$(li)代表 GUI 中各槽位索引的非负数。箱子等容器中的槽位则由槽位索引 + 容器索引 * 1000 表示。$(li)施法者周围的物品实体。$(li)-2 代表施法时鼠标所选物品的槽位。$(li)-1000 * (物品栏与容器索引 + 1) 代表对应物品栏或容器中首个可用的目标槽位。",
+ "hexgloop.page.inventorty.2": "$(o)创造力令猫萌生倦意。$()",
+ "hexgloop.page.inventorty.3": "消耗大约 4 个$(item)充能紫水晶$()。",
+ "hexgloop.page.inventorty.4": "将最多所给数个物品从第一个槽位传输到第二个槽位。会返回输入槽中剩余物品的数量。若第二个槽位为 Null,则物品会掉落在施法者周围,并压入代表所得物品实体的 iota。",
+ "hexgloop.page.inventorty.5": "返回所给槽位中物品的数量。",
+ "hexgloop.page.inventorty.6": "返回所给槽位最多能装下多少物品。",
+ "hexgloop.page.inventorty.7": "返回所给槽位中物品的类型。",
+ "hexgloop.page.inventorty.8": "返回一个列表,其中包含物品栏小猫能看见的所有物品栏与容器的大小,并根据物品栏与容器索引排序。",
+ "hexgloop.page.inventorty.9": "返回一个列表,其中包含物品栏小猫能看见的所有物品栏与容器的名称,并根据物品栏与容器索引排序。",
+
+ "hexgloop.page.casting_frog.0": "我与一只有点蠢蠢的小生物做了朋友,我叫它“蛙仔”。它喜欢和我一起行动,而且好像会在我跳跃的时候表现得很兴奋?$(br2)给它有关施法的指示,再为其戴上适合工作的帽子之后,它就会在我身处空中并尝试跳跃时施法。换句可能有点蠢的说法,就是尝试“二段跳”的时候。",
+ "hexgloop.page.casting_frog.craft": "跳跃!",
+ "hexgloop.page.casting_frog.teach": "消耗大约 4 个$(item)充能紫水晶$()。",
+ "hexgloop.page.casting_frog.eat": "我曾见过自然界的青蛙吃下史莱姆和岩浆怪,也许我的蛙仔也能吃?$(br2)消耗大约 1 个紫水晶碎片。",
+
+ "hexgloop.entry.mepts": "使偶",
+ "hexgloop.page.mepts.0": "我近来遇见了这个世界上许多友善的小生物,它们能为我施法。它们似乎都是由同种材料构成的,某种融有能量的、有活力的、带有紫水晶结晶的木材。我决定叫它们“使偶”,也许还有更多种静待发现?",
+ "hexgloop.page.mepts.1": "我认为我已经找到了自行制作使偶木材的方法。",
+
+
+ "hexgloop.entry.loci": "环核",
+ "hexgloop.page.loci.intro": "截至目前,我只在法术环中使用过石板、促动石,以及导向石,但我最近发现的某些方块似乎在法术环中有独特的用处。我取了“环核”这个名称作为总括。后面几页主要用于介绍目前已发现的环核的功能。",
+ "hexgloop.page.loci.slate_chest": "媒质流流过此类箱子时,法术环即可访问箱子的内容物,就像是访问施法者本人的物品一样。也许很适合巨型的方块工程计划。",
+ "hexgloop.page.loci.pedestal": "媒质流流过支座,且支座上物品存有图案(比如卷轴)时,法术环会将该图案加入环中用于施法。",
+ "hexgloop.page.loci.mirror_pedestal": "这种支座和没有嵌镜的支座功能类似,但它同时会尝试向环嵌入非图案 iota。这种嵌入遵循的规则和往图案列表中嵌入 iota 相同。",
+
+ "hexgloop.page.accelerator.0": "到目前为止,法术环是所有施法方式中最慢的,这种方块应当能加快它们的速度。媒质流离开加速器时,其速度会加上抵达时速度的 200%%。而每经过一格速度加成会减少 20%%。单台加速器的运作需从促动石处抽取 2 个紫水晶粉,不过多次加速会使得消耗量迅速增长。在加速器之间留出区间应该能解决这种麻烦。",
+ "hexgloop.page.accelerator.1": "极速!",
+
+ "hexgloop.page.undulator.0": "要检测媒质波首次通过石板时,用比较器就可以了;但它无法检测媒质波的多次通过。波荡器会在媒质波通过其时发出红石信号。",
+ "hexgloop.page.undulator.1": "心醉神迷",
+
+ "hexgloop.page.syncetrix.0": "这肯定不是普通的导向石!媒质波会从带有脸的一侧流出。如果它与有效方块相邻,则会流出到该方块;否则媒质波会跳跃到其前方的第一个同步石处,最远能跳跃 16 格。",
+ "hexgloop.page.syncetrix.1": "特-红-同,波-坞-步,同步",
+
+ "hexgloop.entry.item_flaying": "物品剥离",
+ "hexgloop.page.mind_pedestal.0": "技术上来讲,剥离意识无法以物品为目标,但把目标设为放有物品的支座应该可以。$(br2)虽然所有种类的支座都有此功能,剥离者支座则能捕获并存储单个仪式,并会尝试将其送入后续放上的物品。",
+ "hexgloop.page.mind_jar.0": "方块可能会排斥生物的意识,这种罐子绝对不会!将其作为物品实体替代法术中村民的位置,就可剥离出其中的意识。",
+
+ "hexgloop.page.library_card.0": "我能用我所学所写构建包揽万物的宏伟图书馆,但我无法跨越维度获取其中的知识。$(br2)对阿卡夏记录使用借书卡就可将其与当前维度绑定。只要物品栏中有借书卡,从阿卡夏图书馆中读取的操作都与在对应维度中读取无异。",
+
+ "hexgloop.page.coping_saw.0": "我咒术的需求远超我所能提供的,这种想法如同烙印在我脑中久久不消散。我可能需要某种缓解措施释放压力。$(br2)只要缓释锯位于快捷栏中,咒术就无法将生命值用作媒质。",
+
+
+ "hexgloop.entry.addons": "附属",
+ "hexgloop.page.addons": "我曾听过许多有关其他咒法学派的故事。这个链接应当连接着所有这些故事的辑录。外部工具,数据包等也在其列。",
+ "hexgloop.page.addons.link": "附属列表"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.19/assets/modrinth-hexical/hexical/lang/en_us.json
new file mode 100644
index 000000000000..872ae011c8fb
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -0,0 +1,679 @@
+{
+ "advancements.hexical.arch_lamp.title": "Daemon",
+ "advancements.hexical.arch_lamp.description": "Acquire an archgenie lamp.",
+
+ "advancements.hexical.reload_lamp.title": "Phenomenal Cosmic Powers!",
+ "advancements.hexical.reload_lamp.description": "Reload the lamp.",
+ "advancements.hexical.educate_genie.title": "New Order",
+ "advancements.hexical.educate_genie.description": "Educate the genie with new instructions.",
+ "advancements.hexical.lamp.title": "Diamond in the Rough",
+ "advancements.hexical.lamp.description": "Acquire a genie lamp.",
+ "advancements.hexical.augmented_reality.title": "Augmented Reality",
+ "advancements.hexical.augmented_reality.description": "Conjure a speck.",
+ "advancements.hexical.diy_conjuring.title": "DIY Conjuring!",
+ "advancements.hexical.diy_conjuring.description": "Add a custom modifier to a mage block.",
+ "advancements.hexical.conjure_hexxy.title": "Conjure Hexxy",
+ "advancements.hexical.conjure_hexxy.description": "Give Hexxy a physical form in your world.",
+ "advancements.hexical.hallucinate.title": "Only In My Head",
+ "advancements.hexical.hallucinate.description": "Play a sound only you can hear!",
+ "advancements.hexical.media_slurp.title": "Tripping",
+ "advancements.hexical.media_slurp.description": "\"You sense that something is off.\"",
+
+ "block.hexical.hex_candle": "Hex Candle",
+ "block.hexical.mage_block": "Mage Block",
+ "block.hexical.media_jar": "Media Jar",
+ "death.attack.magic_missile": "%1$s was magically pierced by %2$s",
+ "death.attack.magic_missile.item": "%1$s was magically pierced by %2$s using %3$s",
+ "death.attack.spike": "%1$s was skewered by %2$s",
+ "death.attack.spike.item": "%1$s was skewered by %2$s using %3$s",
+ "entity.hexical.living_scroll": "Living Scroll",
+ "entity.hexical.magic_missile": "Magic Missile",
+ "entity.hexical.mesh": "Mesh",
+ "entity.hexical.speck": "Speck",
+ "entity.hexical.spike": "Amethyst Spike",
+ "key.categories.hexical": "Hexical",
+ "key.hexical.evoke": "Evoke",
+ "key.hexical.telepathy": "Telepathy",
+ "item.hexical.arch_lamp": "Archgenie Lamp",
+ "item.hexical.conjured_compass": "Conjured Compass",
+ "item.hexical.conjured_staff": "Conjured Staff",
+ "item.hexical.grimoire": "Grimoire",
+ "item.hexical.hexburst": "Hexburst",
+ "item.hexical.hextito": "Hextito",
+ "item.hexical.lamp": "Hand Genie Lamp",
+ "item.hexical.gauntlet_staff": "Gauntlet Staff",
+ "item.hexical.lightning_rod_staff": "Lightning Rod Staff",
+ "item.hexical.living_scroll_small": "Small Living Scroll",
+ "item.hexical.living_scroll_medium": "Medium Living Scroll",
+ "item.hexical.living_scroll_large": "Large Living Scroll",
+ "itemGroup.hexical.general": "Hexical",
+ "subtitles.hexical.evoking_murmur": "Player chants",
+ "subtitles.hexical.evoking_casts": "Player casts",
+ "subtitles.hexical.lamp_activate": "Lamp activates",
+ "subtitles.hexical.lamp_deactivate": "Lamp deactivates",
+ "subtitles.hexical.sudden_realization": "Idea pops",
+ "subtitles.hexical.player_slurp": "Player slurps",
+ "subtitles.hexical.candle_flares": "Candle crackles",
+ "subtitles.hexical.replenish_air": "Air appears",
+ "tooltip.hexical.scroll_aged": "Aged",
+ "tooltip.hexical.scroll_glow": "Glowing",
+ "tooltip.hexical.scroll_vanished": "Vanished",
+ "particle.minecraft.soul_7": "",
+ "misc.hexical.media_vision": "",
+
+ "hexical.autograph.header": "Autographed by:",
+
+ "hexical.fortune.0": "It is certain.",
+ "hexical.fortune.1": "It is decidedly so.",
+ "hexical.fortune.2": "Without a doubt.",
+ "hexical.fortune.3": "Yes definitely.",
+ "hexical.fortune.4": "You may rely on it.",
+ "hexical.fortune.5": "As I see it, yes.",
+ "hexical.fortune.6": "Most likely.",
+ "hexical.fortune.7": "Outlook good.",
+ "hexical.fortune.8": "Yes.",
+ "hexical.fortune.9": "Signs point to yes.",
+ "hexical.fortune.10": "Reply hazy, try again.",
+ "hexical.fortune.11": "Ask again later.",
+ "hexical.fortune.12": "Better not tell you now.",
+ "hexical.fortune.13": "Cannot predict.",
+ "hexical.fortune.14": "Concentrate and ask again.",
+ "hexical.fortune.15": "Don't count on it.",
+ "hexical.fortune.16": "My reply is no.",
+ "hexical.fortune.17": "My sources say no.",
+ "hexical.fortune.18": "Outlook not so good.",
+ "hexical.fortune.19": "Very doubtful.",
+
+ "hexcasting.mishap.bad_block.akashic_bookshelf": "an akashic bookshelf",
+ "hexcasting.mishap.bad_block.mage_block": "a mage block",
+ "hexcasting.mishap.bad_block.prestidigitation": "a prestidigitation-sensitive block",
+ "hexcasting.mishap.bad_item.grimoire": "a grimoire",
+ "hexcasting.mishap.bad_item.firework_star": "a firework star",
+ "hexcasting.mishap.bad_item.has_brain": "a villager capable of thought",
+ "hexcasting.mishap.bad_item.smart_villager": "a Journeyman or greater level villager",
+ "hexcasting.mishap.bad_item.lamp_full": "a lamp with media",
+ "hexcasting.mishap.bad_item.lamp": "a lamp",
+ "hexcasting.mishap.bad_item.living_scroll": "a living scroll",
+ "hexcasting.mishap.bad_item.prestidigitation": "a prestidigitation-sensitive entity",
+ "hexcasting.mishap.bad_item.mesh": "a mesh",
+ "hexcasting.mishap.bad_item.speck": "a speck",
+ "hexcasting.mishap.bad_item.specklike": "a specklike entity",
+ "hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
+ "hexcasting.mishap.invalid_value.solid_block": "a non-air block",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
+ "hexcasting.mishap.invalid_value.pattern_list": "a list with only patterns",
+ "hexcasting.mishap.invalid_value.mesh_design": "a list of up to 32 vectors with magnitudes less than 10",
+ "hexcasting.mishap.invalid_value.class.dye": "a dye",
+ "hexcasting.mishap.invalid_value.class.identifier": "an identifier",
+ "hexcasting.mishap.invalid_value.class.pigment": "a pigment",
+ "hexcasting.mishap.invalid_value.true_dye": "a colored dye",
+ "hexcasting.mishap.invalid_value.to_pigment": "a colored dye, identifier of a pigment item, an item entity containing a pigment, or a player",
+ "hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
+ "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
+ "hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
+ "hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
+ "hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
+ "hexcasting.mishap.invalid_value.potion_holding": "a food, potion, or tipped arrow item entity",
+ "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
+ "hexcasting.mishap.invalid_value.integer_natural": "an integer greater than 0",
+ "hexcasting.mishap.invalid_value.recognizable": "a target with extra information",
+ "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
+ "hexcasting.mishap.invalid_value.nonempty_list": "a non-empty list",
+ "hexcasting.mishap.invalid_value.true_dye_list": "a list of colored dyes",
+ "hexcasting.mishap.hexical:active_arch_lamp": "Expected an active Arch Lamp in the inventory.",
+ "hexcasting.mishap.hexical:can_not_dye": "Expected a dyeable target",
+ "hexcasting.mishap.hexical:inedible": "Wristpocketed item is not edible.",
+ "hexcasting.mishap.hexical:needs_chorus_fruit": "Needs chorus fruit within inventory.",
+ "hexcasting.mishap.hexical:needs_conjured_staff": "Expected to be cast by a Conjured Staff.",
+ "hexcasting.mishap.hexical:needs_lamp": "Expected to be cast by a Genie Lamp.",
+ "hexcasting.mishap.hexical:needs_hand_lamp": "Expected to be cast by a Hand Genie Lamp.",
+ "hexcasting.mishap.hexical:needs_arch_lamp": "Expected to be cast by a Archgenie Lamp.",
+ "hexcasting.mishap.hexical:needs_skippable": "Expected to be run inside of Sisyphus' Gambit or Thoth's Gambit.",
+ "hexcasting.mishap.hexical:needs_thoth": "Expected to be run inside of Thoth's Gambit.",
+ "hexcasting.mishap.hexical:outside_circle": "Spell exceeds the domain of the spell circle.",
+ "hexcasting.mishap.hexical:themis": "Expected a number at the top of the pseudo-stack.",
+
+ "hexcasting.spell.book.hexical:theodolite": "Theodolite Purif.",
+ "hexcasting.spell.book.hexical:damage_stack": "Deterioration Purif.",
+ "hexcasting.spell.book.hexical:get_arch_lamp_position": "Arch. Refl.: Spatial",
+ "hexcasting.spell.book.hexical:get_arch_lamp_rotation": "Arch. Refl.: Rotational",
+ "hexcasting.spell.book.hexical:get_arch_lamp_velocity": "Arch. Refl.: Kinetic",
+ "hexcasting.spell.book.hexical:get_arch_lamp_use_time": "Arch. Refl.: Temporal",
+ "hexcasting.spell.book.hexical:get_arch_lamp_media": "Arch. Refl.: Media",
+ "hexcasting.spell.book.hexical:get_arch_lamp_storage": "Arch. Refl.: Memory",
+ "hexcasting.spell.book.hexical:get_effect_amplifier": "Concentration Dstl.",
+ "hexcasting.spell.book.hexical:get_effects_item": "Prescription Purif.",
+ "hexcasting.spell.book.hexical:get_enchantments": "Thaumaturgist's Purif.",
+ "hexcasting.spell.book.hexical:breedable": "Reproduction Purif.",
+ "hexcasting.spell.book.hexical:get_hand_lamp_position": "Genie Refl.: Spatial",
+ "hexcasting.spell.book.hexical:get_hand_lamp_rotation": "Genie Refl.: Rotational",
+ "hexcasting.spell.book.hexical:get_hand_lamp_velocity": "Genie Refl.: Kinetic",
+ "hexcasting.spell.book.hexical:get_hand_lamp_use_time": "Genie Refl.: Temporal",
+ "hexcasting.spell.book.hexical:get_hand_lamp_media": "Genie Refl.: Media",
+ "hexcasting.spell.book.hexical:get_hand_lamp_storage": "Genie Refl.: Memory",
+ "hexcasting.spell.book.hexical:get_biome": "Geographical Purif.",
+ "hexcasting.spell.book.hexical:get_weather": "Meterologist's Refl.",
+ "hexcasting.spell.book.hexical:recognize": "Recognizer's Purif.",
+ "hexcasting.spell.book.hexical:shuffle_pattern": "Glyphmaker's Dstl.",
+ "hexcasting.spell.book.hexical:zone_specklike": "Zone Dstl.: Specklike",
+ "hexcasting.spell.book.hexical:modify_block_bouncy": "Bouncy",
+ "hexcasting.spell.book.hexical:modify_block_energized": "Energized",
+ "hexcasting.spell.book.hexical:modify_block_ephemeral": "Ephemeral",
+ "hexcasting.spell.book.hexical:modify_block_invisible": "Invisible",
+ "hexcasting.spell.book.hexical:modify_block_replaceable": "Replaceable",
+ "hexcasting.spell.book.hexical:modify_block_semipermeable": "Semi-Permeable",
+ "hexcasting.spell.book.hexical:modify_block_volatile": "Volatile",
+ "hexcasting.spell.book.hexical:read_shelf": "Librarian's Purif. II",
+
+ "hexical.page.hexical_changes.title": "Hexical Changes",
+ "hexical.page.hexical_changes.0": "I feel strangely more in tune with the ambient _media around me. It feels $(o)friendlier$() somehow... I can even feel it rippling around me, responding to my actions, as if suggesting new spells to me. The _media itself also feels more malleable, more $(o)workable$(), allowing me to manipulate it into precise specialized effects.",
+ "hexical.page.hexical_changes.1": "I also find my tools more familiar. I notice I require less concentration with my $(l:items/staff)$(item)staff$() and can move around while using it, handy for chasing down targets that get out of my line of sight before I can finish my raycast. I shouldn't become too relaxed though, Nature has not become more forgiving of my mistakes. I can also write directly into my $(l:items/abacus)$(item)abacus$() with $(l:patterns/readwrite#hexcasting:write)Scribe's Gambit$().",
+ "hexical.page.lightning_rod_staff.0": "By fixing a block of amethyst to some lightning rods, I can make quite the impressive $(l:items/staff)$(item)staff$(). It is quite weighty to wield but feels absolutely $(o)electrifying$() to use.",
+ "hexical.page.lightning_rod_staff.1": "$(o)I learned there are troubles$(br)Of more than one kind.$(br)Some come from ahead$(br)And some come from behind.$(br2)But I've bought a big bat.$(br)I'm all ready, you see.$(br)Now my troubles are going$(br)To have troubles with $(l)me!$()",
+ "hexical.page.gauntlet_staff.0": "Staffs are quite heavy to wield and finnicky to hold. In case I tire of them, I can construct a gauntlet-like \"$(l:items/staff)$(item)staff$()\" to grasp and warp the media to my will with my own fingers.",
+ "hexical.page.gauntlet_staff.1": "$(o)Wait, what are fingers??$()",
+
+ "hexical.page.grimoire.title": "Grimoires",
+ "hexical.page.grimoire.0": "By encrusting an $(item)enchanted book$() with charged amethyst and $(l:items/edified)$(item)edified wood$()$(), it traps _media within the pages like an echo chamber. I can then introduce a pattern-to-pattern-list binding for the $(item)grimoire$() to keep bouncing endlessly inside.",
+ "hexical.page.grimoire.1": "When I then cast the $(l:patterns/patterns_as_iotas)pattern$() associated with a pattern list with my $(l:items/staff)$(item)staff$() and the $(item)grimoire$() in my inventory, the pattern $(o)expands$() with a faint sound of a _Hex being cast. I create shortcuts for tedious tasks with this, like the raycast mantra or large patterns. The $(item)grimoire$() can even hijack Nature's patterns, to overwrite or add extra functionality.$(br2)$(o)If there's a book that you want to read, but it hasn't been written yet, then you must write it.$()",
+ "hexcasting.spell.hexical:write_grimoire": "Write Grimoire",
+ "hexical.page.write_grimoire.summary": "Writes a pattern-to-pattern-list binding into the $(item)grimoire$() in my offhand.",
+ "hexcasting.spell.hexical:erase_grimoire": "Erase Grimoire",
+ "hexical.page.erase_grimoire.summary": "Erases the pattern-list binding to the pattern in the $(item)grimoire$() in my offhand if it exists.",
+ "hexcasting.spell.hexical:index_grimoire": "Archivist Reflection",
+ "hexical.page.index_grimoire.summary": "Gets a list of all patterns stored in the $(item)grimoire$().",
+
+ "hexical.page.hex_candle.title": "Hex Candles",
+ "hexical.page.hex_candle.0": "When ignited for the first time, either $(l:hexical:patterns/spells/prestidigitation)magically$() or with a $(item)flint and steel$(), these delightful little candles have pale white flames. When someone interacts with it though, it happily copies their pigment. I can also right-click it with a pigment item to change its color directly. To extinguish, sneak right-click.",
+
+ "hexical.page.living_scroll.title": "Living Scrolls",
+ "hexical.page.living_scroll.0": "Living scrolls are mixed with a pinch of amethyst, enchanting the ink to move and wiggle like the patterns I draw with my $(l:items/staff)$(item)staff$(). Not only that, living scrolls can display lists of patterns.$(br2)$(o)You can't be a proper writer without a touch of madness, can you?$()",
+ "hexical.page.living_scroll.1": "I can freely write and rewrite the scroll's patterns at any time, along with reading it back out. The scroll accepts only a list of pattern iotas, or a pattern iota which is automatically wrapped in a list. When displaying a list of patterns, a living scroll shows one pattern at a time. It changes once per second. Even when I write the same pattern list to two of them at two different moments of their cycle, they end up in sync.",
+ "hexical.page.living_scroll.2": "What follows are some spells I've found for manipulation of living scrolls. The changes caused by these most enchantments can be reverted by casting the spell on the scroll again. They are all free.",
+ "hexcasting.spell.hexical:age_scroll": "Age Scroll",
+ "hexical.page.age_scroll.summary": "Yellows the parchment of the scroll, making it bear striking semblance to some ancient scrolls I've been finding.",
+ "hexcasting.spell.hexical:glow_scroll": "Illuminate Ink",
+ "hexical.page.glow_scroll.summary": "Causes the ink of a living scroll to brightly glow in the dark.",
+ "hexcasting.spell.hexical:color_scroll": "Dye Ink",
+ "hexical.page.color_scroll.summary": "Changes the color of a living scroll's ink to the color specified by the vector, with the components being 0 to 1 values of red, green, and blue respectively.",
+ "hexcasting.spell.hexical:vanish_scroll": "Vanish Scroll",
+ "hexical.page.vanish_scroll.summary": "Causes the scroll paper to become invisible, leaving only the pattern, making it appear as though the pattern were magically etched into the surface.",
+
+ "hexical.page.media_jar.title": "Media Jar",
+ "hexical.page.media_jar.0": "I can craft this little decorative jar of liquid _media that glows quite brightly. Unfortunately, it seems the glass is too thick for me to draw _media through it, although I have read tales that ancient _Hexcasters were able to solve this issue and being able to bottle up liquid _media and use it for their _Hexes.",
+ "hexical.page.media_jar.1": "A similar item was built by prior _Hexcasters and they seemed to use it as crystal ball by sipping the fluid. Holding the energy of thought that permeates existence, perhaps its answers hold some merit.$(br2)$(o)Signs point to yes.$()",
+
+ "hexical.category.lamp": "Genie Lamp",
+ "hexical.category.lamp.desc": "I have heard tales from the villagers about a magical artifact. Legends say it contains a spirit that grants wishes, but I suspect that is just embellishment evolved over centuries of storytelling. However, legends must arise from something and I dedicate this section to my pursuit and research of it.",
+
+ "hexcasting.spell.hexical:lamp_finale": "Finale Reflection",
+ "hexical.page.lamp_finale.hand": "The instant I let go of my lamp, it casts an additional time. I can use this pattern to recognize whether a cast is that finale, and react accordingly.",
+ "hexical.page.lamp_finale.arch": "When an archgenie lamp is turned off, it casts an additional time. I can use this pattern to recognize when whether a cast is that last burst of energy.",
+
+ "hexical.page.mysterious_lamp.title": "Mysterious Lamp",
+ "hexical.page.mysterious_lamp.0": "At last I've obtained the subject of a thousand years of rumor! To think a mere wandering trader was in possession of such a strong artifact. The oil lamp emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow media structure$() of a $(l:items/focus)$(item)focus$() that allows it to store iota. There is also a presence inside with casting capabilities similar to my own.",
+ "hexcasting.spell.hexical:educate_genie": "Educate Genie",
+ "hexical.page.educate_genie.summary": "Teaches the presence my intentions. Because I am $(o)teaching$() an entity rather than $(o)etching$() a $(l:items/hexcasting)$(item)casting device$(), I can freely revise the _Hex and reteach the genie any time without losing the _media.",
+
+ "hexical.page.new_possibilities.title": "New Possibilities",
+ "hexical.page.new_possibilities.0": "It casts $(o)$(l)EVERY INSTANT$(). After writing a spell into it, I was treated to a splendid unceasing gush of _media. I estimate the casting speed must be around twenty times every second. The genie performs the casting with extraordinary efficiency, producing little of the sounds and particles that accompany other casting methods.",
+ "hexical.page.new_possibilities.1": "I have developed some useful patterns to communicate with the genie for information, documented on the next few pages. These patterns must only be cast by the genie within the lamp, lest I succumb to the Impersonate Genie mishap, which emits red sparks and yanks my casting item from my hand.$(br2)$(o)Yeah, but your $(l)$(o)hexcasters$()$(o) were so preoccupied with whether or not they could, they didn't stop to think if they should.$()",
+ "hexcasting.spell.hexical:get_hand_lamp_position": "Genie Reflection: Spatial",
+ "hexical.page.get_hand_lamp_position.summary": "Pushes my original position when I began using the lamp.",
+ "hexcasting.spell.hexical:get_hand_lamp_rotation": "Genie Reflection: Rotational",
+ "hexical.page.get_hand_lamp_rotation.summary": "Pushes my original rotation when I began using the lamp.",
+ "hexcasting.spell.hexical:get_hand_lamp_velocity": "Genie Reflection: Kinetic",
+ "hexical.page.get_hand_lamp_velocity.summary": "Pushes my original velocity when I began using the lamp.",
+ "hexcasting.spell.hexical:get_hand_lamp_use_time": "Genie Reflection: Temporal",
+ "hexical.page.get_hand_lamp_use_time.summary": "Pushes how many times the lamp has cast. Divided by 20, it is the number of seconds since I began using the lamp.",
+ "hexcasting.spell.hexical:get_hand_lamp_media": "Genie Reflection: Media",
+ "hexical.page.get_hand_lamp_media.summary": "Pushes the remaining _media of the lamp, in units of dust.",
+ "hexcasting.spell.hexical:with_hand_lamp": "Genie Reflection",
+ "hexical.page.with_hand_lamp.summary": "Pushes whether this _Hex is being cast by a handheld genie lamp.",
+ "hexcasting.spell.hexical:get_hand_lamp_storage": "Genie Reflection: Memory",
+ "hexical.page.set_hand_lamp_storage.summary": "Sets an internal storage of my lamp to any iota. Strangely allows bypassing the Transgress Others mishap, perhaps because it requires my active concentration to use this lamp.",
+ "hexcasting.spell.hexical:set_hand_lamp_storage": "Genie Gambit",
+ "hexical.page.get_hand_lamp_storage.summary": "Retrieves an iota from my hand lamp's internal storage, returns null by default.",
+
+ "hexical.page.offerings.title": "Offerings",
+ "hexical.page.offerings.0": "Hex casting burns out the mind from the energy of thought, flooding the consciousness, inundating every neuron... it's euphoric. For $(l:items/staff)$(item)staves$(), $(l:items/hexcasting)$(item)casting devices$(), and spell circles, the rate of casting is slow enough that a mind can recuperate; I will never need to replace an impetus. With the speeds lamps operates at, though, even an optimized mind can feel strain.",
+ "hexical.page.offerings.1": "The lamp traps the genie and any attempts to refuel it will free it. Thus, the only way to recharge a genie lamp is to simultaneously replace the _media $(o)and$() the genie, forcing a new mind to work in its stead. A villager will do quite nicely. That is the spell that I have devised.$(br2)$(o)My name? My name is... oh god, why can't I remember my name?$()",
+ "hexcasting.spell.hexical:offer_mind": "Offer Mind",
+ "hexical.page.offer_mind.summary": "Can be cast by me to $(o)borrow$() the experiences and memory of a villager and give it to the lamp in my offhand. The spell itself costs one charged amethyst, plus the _media I'm giving.",
+ "hexical.page.offerings.2": "Notably, this spell will $(o)not$() kill the villager. It splinters off a section of their mind to serve as the genie and for the villager's main consciousness only results in amnesia. I have heard rumors of ancient Hexcasters $(o)growing$() villager minds like crops using this property, consuming them to recharge their lamps, and allowing them to regenerate their lost knowledge in between.",
+ "hexical.page.offerings.3": "Not all villagers can be a genie. I estimate there is so little media potential in any villager lesser than Journeyman-grade that the spell would simply fail. Having most of its workings $(o)optimized$() purely for casting, I doubt an Expert villager will perform any better than a Journeyman. However, certain skills may still affect the quality of casting. My notes on that on the next page.",
+ "hexical.page.offerings.4": "Ingrained memories and inherent abilities seem to be able to survive the optimization process. A master villager who has honed its craft to perfection has internalized its knowledge so deeply, that it casts differently. A wandering villager who has spent its life travelling the world may be so attuned to exploration that the way it casts reflects its experience.",
+
+ "hexical.page.arch_lamps.title": "Archgenie Lamps",
+ "hexical.page.arch_lamps.0": "Rather just losing memories, the master villager's mind exited its body and completely supplanted the original genie. Because a separate entity casts my spells, a lamp should be able to cast even without me holding it. These archgenie lamps are activated and deactivated rather than used and while active in my inventory, they cast every moment even without my input.",
+ "hexical.page.arch_lamps.1": "The output of an archgenie lamp is so grand that it saturates the air around me with _media... it's incredible. Unfortunately, if two lamps are active at once within my inventory, the resonances clash and deactivate both lamps, as well as rendering every archgenie lamp in my inventory useless for a few seconds. I should only have one archgenie lamp active at once, although I can still simultaneously use a regular lamp.",
+ "hexical.page.arch_lamps.2": "$(o)I am a great soft jelly thing. Smoothly rounded, with no mouth, with pulsing white holes filled by fog where my eyes used to be. Rubbery appendages that were once my arms; bulks rounding down into legless humps of soft slippery matter.$(br2)I have no mouth. And I must scream.$()",
+ "hexcasting.spell.hexical:activate_arch_lamp": "Activate Archgenie",
+ "hexical.page.activate_arch_lamp.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)staff$(), or within an arch lamp. Deactivates any archgenie lamp and activates a previously inactive one.",
+ "hexcasting.spell.hexical:terminate_arch_lamp": "Terminate Archgenie",
+ "hexical.page.terminate_arch_lamp.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)staff$(), or within the arch lamp itself. Deactivates the currently active archgenie lamp.",
+ "hexcasting.spell.hexical:has_arch_lamp": "Archgenie Purification",
+ "hexical.page.has_arch_lamp.summary": "Pushes whether a player currently has an active arch lamp.",
+ "hexcasting.spell.hexical:get_arch_lamp_position": "Archgenie Reflection: Spatial",
+ "hexical.page.get_arch_lamp_position.summary": "Pushes the original position of the caster when the arch lamp started casting.",
+ "hexcasting.spell.hexical:get_arch_lamp_rotation": "Archgenie Reflection: Rotational",
+ "hexical.page.get_arch_lamp_rotation.summary": "Pushes the original rotation of the caster when the arch lamp started casting.",
+ "hexcasting.spell.hexical:get_arch_lamp_velocity": "Archgenie Reflection: Kinetic",
+ "hexical.page.get_arch_lamp_velocity.summary": "Pushes the original velocity of the caster when the arch lamp started casting.",
+ "hexcasting.spell.hexical:get_arch_lamp_use_time": "Archgenie Reflection: Temporal",
+ "hexical.page.get_arch_lamp_use_time.summary": "Pushes how many times the lamp has cast. Divided by 20, it returns how many times in seconds the lamp has been in use.",
+ "hexcasting.spell.hexical:get_arch_lamp_media": "Archgenie Reflection: Media",
+ "hexical.page.get_arch_lamp_media.summary": "Pushes the remaining amount of _media left in the lamp, in units of dust.",
+ "hexcasting.spell.hexical:with_arch_lamp": "Archgenie Reflection",
+ "hexical.page.with_arch_lamp.summary": "Pushes whether this _Hex is currently being cast by an arch lamp.",
+ "hexcasting.spell.hexical:get_arch_lamp_storage": "Archgenie Reflection: Memory",
+ "hexical.page.get_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)staff$(), or within an arch lamp. Gets the lamp's iota storage.",
+ "hexcasting.spell.hexical:set_arch_lamp_storage": "Archgenie Gambit",
+ "hexical.page.set_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)staff$(), or within an arch lamp. Sets the lamp's iota storage. Subject to Transgress Others mishap.",
+
+ "hexical.page.enlightened_patterns.title": "Enlightened Patterns",
+ "hexical.page.enlightened_patterns.0": "After my enlightenment, I find myself acutely aware of certain patterns that seem to aid with my newfound abilities to perceive and manipulate _media. These patterns don't seem to require anything new from me, perhaps I've always been able to cast them but was unaware of their existence.",
+ "hexcasting.spell.hexical:am_enlightened": "Epiphany Purification",
+ "hexical.page.am_enlightened.summary": "Pushes whether the given player has achieved enlightenment like I have.",
+ "hexcasting.spell.hexical:is_brainswept": "Sentience Purification",
+ "hexical.page.is_brainswept.summary": "Pushes whether an entity \"has been magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
+
+ "hexical.page.simple_patterns.title": "Hexical Patterns",
+ "hexcasting.spell.hexical:entity_width": "Caliper's Purification",
+ "hexical.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
+ "hexcasting.spell.hexical:theodolite": "Theodolite's Purification",
+ "hexical.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
+ "hexcasting.spell.hexical:swap_one_three": "Reflecting Gambit",
+ "hexical.page.swap_one_three.summary": "Reflects the order of the top three iota, turning A, B, C into C, B, A. Essentially swaps the top and the third-from-the-top iota.",
+ "hexcasting.spell.hexical:swap_two_three": "Bubbling Gambit",
+ "hexical.page.swap_two_three.summary": "Causes the third-from-the-top iota to bubble up over the second-from-the-top iota, essentially swapping them.",
+ "hexcasting.spell.hexical:similar": "Similarity Distillation",
+ "hexical.page.similar.summary": "Pushes whether two iota are of the same type.",
+ "hexcasting.spell.hexical:congruent": "Congruence Distillation",
+ "hexical.page.congruent.summary": "Pushes whether two patterns have the same shape and orientation.",
+ "hexcasting.spell.hexical:dup_many": "Dioscuri Gambit II",
+ "hexical.page.dup_many.summary": "Takes a number and duplicates that many elements of the stack while preserving order.",
+ "hexcasting.spell.hexical:shuffle_pattern": "Glyphmaker's Distillation",
+ "hexical.page.shuffle_pattern.summary": "Takes in a pattern and a number and produces a pattern of the same shape, but different stroke order. My notes reveal that ancient hexcasters used this for some $(o)grand library$().",
+
+ "hexical.page.perlin.title": "Quasirandomness",
+ "hexical.page.perlin.0": "In certain regions of the world, ambient _media is more concentrated. I can measure that concentration and even extrapolate backwards and forwards in time to get a quasi-random number between 0 and 1, corresponding to that location at that time. Points in time and space that are close to each other often have similar values.",
+ "hexcasting.spell.hexical:perlin": "Perlin Distillation",
+ "hexical.page.perlin.summary": "Measures the concentration of ambient at that point in space and time, normalized between 0 and 1.",
+
+ "hexical.page.special_raycasts.title": "Special Raycasts",
+ "hexcasting.spell.hexical:fluid_raycast": "Naval Distillation",
+ "hexical.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
+ "hexcasting.spell.hexical:fluid_surface_raycast": "Lilypad Distillation",
+ "hexical.page.fluid_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but targets only liquids, piercing through all other blocks.",
+ "hexcasting.spell.hexical:piercing_raycast": "Railgun Exaltation",
+ "hexical.page.piercing_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
+ "hexcasting.spell.hexical:piercing_surface_raycast": "Laser Exaltation",
+ "hexical.page.piercing_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
+
+ "hexical.page.telepathy.title": "Telepathy",
+ "hexical.page.telepathy": "_Media is the energy of thought and consequently, it can interact with thoughts as well. Unfortunately or perhaps fortunately for me, the minds of players are too resistant to be swayed by _Hexes and even the minds of villagers resist tampering. There is a notable exception though: my own mind is open to my own _media, allowing me to read and write thoughts.",
+ "hexcasting.spell.hexical:get_telepathy": "Telepathic Reflection",
+ "hexical.page.get_telepathy.summary": "By focusing on a particular image, I can detect that concentration via this pattern. Pushes how long I have been holding down the telepathy key, or -1 if I am not holding it.",
+ "hexcasting.spell.hexical:send_telepathy": "Send Thought",
+ "hexical.page.send_telepathy.summary": "Momentarily displays the iota above my hotbar. If cast repeatedly, each cast overwrites the previous message instantly.",
+ "hexcasting.spell.hexical:shout_telepathy": "Shout Thought",
+ "hexical.page.shout_telepathy.summary": "Displays a iota across my screen. It obstructs my vision and takes some time to fade in, so I shall only use it sparingly.",
+ "hexcasting.spell.hexical:pling": "Hallucinate Pling",
+ "hexical.page.pling.summary": "Causes me to hear a pling that is inaudible to other players.",
+ "hexcasting.spell.hexical:click": "Hallucinate Click",
+ "hexical.page.click.summary": "Causes me to hear a click that is inaudible to other players.",
+ "hexcasting.spell.hexical:moving_up": "Charge Reflection",
+ "hexical.page.moving_up.summary": "Pushes how long I've been intending to move forwards, or -1 if I am not pressing the forwards key.",
+ "hexcasting.spell.hexical:moving_down": "Retreat Reflection",
+ "hexical.page.moving_down.summary": "Pushes how long I've been intending to move backwards, or -1 if I am not pressing the backwards key.",
+ "hexcasting.spell.hexical:moving_left": "Dodge Reflection",
+ "hexical.page.moving_left.summary": "Pushes how long I've been intending to move leftwards, or -1. Can be easily differentiated from Evade Reflection because d comes to the left of e.",
+ "hexcasting.spell.hexical:moving_right": "Evade Reflection",
+ "hexical.page.moving_right.summary": "Pushes how long I've been intending to move rightwards, or -1. Can be easily differentiated from Dodge Reflection because e comes to the right of d.",
+ "hexcasting.spell.hexical:jumping": "Leaping Reflection",
+ "hexical.page.jumping.summary": "Pushes how long I've been intending to jump, or -1 if I am not pressing the jump key.",
+
+ "hexical.page.soroban.title": "Soroban Patterns",
+ "hexical.page.soroban.0": "These patterns manipulate an imaginary counter. I shall find them useful when my $(l:patterns/readwrite#hexcasting:local)Ravenmind$() is occupied or overkill, for example to count iterations in a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() loop. Some ancient scraps recommend its use for some sort of $(o)recursive depth$().$(br2)I shall also note that they don't work properly when drawn by themselves with my staff. It seems memory is maintained only for an instant.",
+ "hexcasting.spell.hexical:soroban_increment": "Soroban Reflection",
+ "hexical.page.soroban_increment.summary": "Pushes the current soroban counter and then increases it.",
+ "hexcasting.spell.hexical:soroban_decrement": "Soroban Reflection II",
+ "hexical.page.soroban_decrement.summary": "Pushes the current soroban counter and then decreases it.",
+ "hexcasting.spell.hexical:soroban_reset": "Soroban Gambit",
+ "hexical.page.soroban_reset.summary": "Resets the soroban counter.",
+
+ "hexical.page.metas.title": "Hexical Metaevals",
+ "hexcasting.spell.hexical:janus": "Janus' Gambit",
+ "hexical.page.janus.0": "Instantly terminates the _Hex regardless of current circumstances, breaking even through $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() and $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().",
+ "hexical.page.janus.1": "It's useful to end a _Hex early once it has reached some desired state, without the difficulty of using $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() because $(l:hexical:patterns/metaevals#hexical:janus)$(action)Janus'$() can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes'$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$().$(br2)$(o)It is always important to know when something has reached its end.$()",
+ "hexcasting.spell.hexical:nephthys": "Nephthys' Gambit",
+ "hexical.page.nephthys.0": "Pops a pattern or pattern list and dives down an amount corresponding to the tail length to cast the pattern list. Useful for surgery-like operations.",
+ "hexical.page.nephthys.1": "It's extremely versatile and I can mend almost any error in my stack using $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit$(), pushing iota after a dive, and transforming surfaced iota. It was named after a goddess of mourning and rivers, lending to how it buries/dives down into the stack.$(br2)$(o)... the unknowns of time travel... is akin to descending blindly into the depths of the freezing water and reappearing as an acorn.$()",
+ "hexcasting.spell.hexical:sekhmet": "Sekhmet's Gambit",
+ "hexical.page.sekhmet.0": "Voids the entire stack except for the top n iota, determined by tail length. In the examples above, zero, one, and two iota are left untouched respectively. $(o)Not$() a meta-evaluation on its own.",
+ "hexical.page.sekhmet.1": "This simple gambit can be accomplished via $(l:patterns/stackmanip#hexcasting:stack_len)$(action)Flock's Reflection$(), $(l:patterns/lists#hexcasting:last_n_list)$(action)Flock's Gambit$(), $(l:patterns/lists#hexcasting:slice)$(action)Selection Exaltation$(), and $(l:patterns/lists#hexcasting:splat)$(action)Flock's Disintegration$() but this serves as a handy short pattern for clearing up my stack. It also pairs extremely well with Thoth's Gambit, letting me clean up the pseudo-stack should I want to only operate on and return first few iota.$(br2)$(o)Everything is possible, but not everything is necessary.$()",
+ "hexcasting.spell.hexical:atalanta": "Atalanta's Gambit",
+ "hexical.page.atalanta.0": "Should only be run inside $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() or $(l:hexical:patterns/metaevals#hexical:sisyphus)$(action)Sisyphus' Gambit$(). Acts similarly to $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() except does not end the iterator, only skips the rest of the current iteration.",
+ "hexical.page.atalanta.1": "This pattern can be useful to implement \"guard clauses\" for multiconditional loops. For example, after getting a list of entities, you may want to only target entities based on some large list of conditions. Rather than a mess of deeply nested conditionals, you can simply $(o)continue$() to the next iteration if any of the conditions fail, skipping the action.$(br2)$(o)You shall not pass!$()",
+ "hexcasting.spell.hexical:castor": "Castor's Gambit",
+ "hexical.page.castor.0": "Should only be run within a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$(). Details on the next page. Beware of triggering the Delve Too Deep mishap.",
+ "hexical.page.castor.1": "This pattern pops an iota and schedules a new iteration of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to come right after the current one, with the popped iota being the top of the stack. It may be helpful to imagine it as the iota being added to the front of the list that I provided for $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to iterate over.$(br2)$(o)Do not go where the path may lead, go instead where there is no path... and leave a trail.$()",
+ "hexcasting.spell.hexical:pollux": "Pollux's Gambit",
+ "hexical.page.pollux.0": "Sibling pattern to $(l:hexical:patterns/metaevals#hexical:castor)$(action)Castor's Gambit$(), this pattern schedules the additional iteration for the end instead. Carries the same risk of encountering the Delve Too Deep mishap.",
+ "hexical.page.pollux.1": "Acts almost identically to its sibling pattern, but places the iteration at the end. I have read scrolls detailing techniques using these twin patterns called $(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)depth-first search$() and $(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)breadth-first search$().$(br2)$(o)Explore the surface before diving deep.$()",
+ "hexcasting.spell.hexical:sisyphus": "Sisyphus' Gambit",
+ "hexical.page.sisyphus.0": "Takes a pattern list and casts it over and over forever until it encounters either a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() or a $(l:hexical:patterns/metaevals#hexical:janus)$(action)Janus' Gambit$().",
+ "hexical.page.sisyphus.1": "While I have heard of self-producing _Hexes called $(o)quines$() used to make infinite loops, they can be slightly unwieldy to work with. This gambit simplifies that process by just repeatedly casting a list until it runs out of evaluations or encounters a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(). The $(l:patterns/readwrite#hexcasting:local)Ravenmind$() is persisted between iterations and it always casts with the base stack.$(br2)$(o)One always finds one's burden again... One must imagine Sisyphus happy.$()",
+ "hexcasting.spell.hexical:themis": "Themis' Gambit",
+ "hexical.page.themis.0": "Takes a list and a pattern or pattern list which is used to sort the list by casting over every iota similar to $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$().",
+ "hexical.page.themis.1": "After each iteration, it demands a number at the top of the stack which will correspond to that iota. At the end of the gambit, a list is pushed with the iota sorted by that number in increasing order. The order of identically numbered iota are kept. If it encounters $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(), it will create a sorted list with only the iota it has come across.$(br2)$(o)Shuffling is the only thing which Nature cannot undo.$()",
+
+ "hexical.page.akashic_utils.title": "Akashic Utilities",
+ "hexical.page.akashic_utils.0": "I have discovered some conveniences for akashic libraries! I can right-click or $(l:hexical:patterns/spells/prestidigitation)magically interact$() with a filled akashic bookshelf to copy its iota into my stack. I can also right-click with a scroll to copy the pattern of the bookshelf onto the scroll. Finally, I have discovered patterns that can read and write directly to a bookshelf within ambit for free.",
+ "hexcasting.spell.hexical:key_shelf": "Librarian's Purification",
+ "hexical.page.key_shelf.summary": "Reads the pattern key of an akashic bookshelf within ambit. Free to cast.",
+ "hexcasting.spell.hexical:read_shelf": "Librarian's Purification II",
+ "hexical.page.read_shelf.summary": "Reads the iota from an akashic bookshelf within ambit. Free to cast.",
+ "hexcasting.spell.hexical:write_shelf": "Librarian's Gambit",
+ "hexical.page.write_shelf.summary": "Writes an iota under a pattern to an akashic bookshelf within ambit. Free to cast.",
+ "hexcasting.spell.hexical:clear_shelf": "Librarian's Gambit II",
+ "hexical.page.clear_shelf.summary": "Clears an akashic bookshelf within ambit. Free to cast.",
+
+ "hexical.page.mage_block.title": "Mage Blocks",
+ "hexical.page.mage_block": "The blocks from $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjure Block$() last forever, are consequently a pain to clean up, and are not too versatile. Luckily, Nature offers an elegant and flexible alternative. These mage blocks come with a suite of $(o)modifiers$(). I could even stack multiple modifiers on one block or reapply a modifier to toggle it off.",
+ "hexcasting.spell.hexical:conjure_mage_block": "Conjure Mage Block",
+ "hexical.page.conjure_mage_block.summary": "Conjures a mage block at the location. Costs three dust.$(br2)$(o)I can create a city out of nothing, or I can cover it in volcanic rock.$()",
+ "hexcasting.spell.hexical:modify_block_bouncy": "Modify Block: Bouncy",
+ "hexical.page.modify_block_bouncy.summary": "This modifier makes the block delightfully fun to bounce on! It returns more force to me than regular slime blocks and I notice even if I sneak, the block bounces me regardless.",
+ "hexcasting.spell.hexical:modify_block_energized": "Modify Block: Energized",
+ "hexical.page.modify_block_energized.summary": "This modifier makes the block emit a Redstone signal, with the number corresponding to the power level of the output.",
+ "hexcasting.spell.hexical:modify_block_ephemeral": "Modify Block: Ephemeral",
+ "hexical.page.modify_block_ephemeral.summary": "This modifier takes in a number in addition to a position and shatters the block after many twentieths of a second. Subsequent casts can lengthen or shorten the duration.",
+ "hexcasting.spell.hexical:modify_block_invisible": "Modify Block: Invisible",
+ "hexical.page.modify_block_invisible.summary": "This modifier prevents the block from emitting the telltale particles that accompany my casting, even when being stood on.",
+ "hexcasting.spell.hexical:modify_block_replaceable": "Modify Block: Replaceable",
+ "hexical.page.modify_block_replaceable.summary": "This modifier is useful for construction! With this modifier applied, I find I can easily place another block in the place of the mage block.",
+ "hexcasting.spell.hexical:modify_block_semipermeable": "Modify Block: Semi-Permeable",
+ "hexical.page.modify_block_semipermeable.summary": "This modifier makes the block semi-permeable, only allowing the last caster of it to pass through while all other entities can not.",
+ "hexcasting.spell.hexical:modify_block_volatile": "Modify Block: Volatile",
+ "hexical.page.modify_block_volatile.summary": "This modifier makes the block break other mage blocks it's touching. Notably, if it breaks another volatile block, that block breaks and so on until every volatile block shatters.",
+
+ "hexical.page.dyes.title": "Dyes",
+ "hexical.page.dyes.0": "The dye spell and its specialized iota allows me to alter the color of blocks and entities. The dye iota represents a color, but also seems to represent the $(o)potential$() to be colored. For example, attempting to get the dye of grass returns null but getting the dye of undyed terracotta returns $(thing)uncolored$(), which I can use to \"bleach\" dyeable blocks.",
+ "hexcasting.spell.hexical:get_dye": "Chromatic Purification",
+ "hexical.page.get_dye.summary": "Gets the dye of a block, entity, or item identifier.",
+ "hexcasting.spell.hexical:dye": "Dye",
+ "hexical.page.dye.summary": "Dyes a dyeable block or entity. Costs an eighth of a dust.",
+ "hexical.page.dyes.1": "The valid block targets for this spell include beds, candles, cakes with candles, carpets, concrete, concrete powder, glazed terracotta, sand into red sand and vice versa, sandstone and all blocks derived from it into its red variant and vice versa, shulker boxes, stained glass, stained glass panes, terracotta, tulips into their multiple colors, and wool blocks. As for entities, cat collars, dog collars, specklikes, shulkers, and item entities of all of the above blocks are valid.",
+ "hexcasting.spell.hexical:translate_dye": "Vision Purification",
+ "hexical.page.translate_dye.summary": "Translates a dye color into a vector, where each component is from 0 to 1 and represents the red, green, and blueness of the dye respectively.",
+
+ "hexical.page.pigments.title": "Pigment Manipulation",
+ "hexical.page.pigments.0": "Like how I can manipulate dyes with patterns, I can also manipulate pigments. I can even store multiple of them and have my hexes randomly choose one to give me for example.",
+ "hexcasting.spell.hexical:to_pigment": "Pigment Purification",
+ "hexical.page.to_pigment.summary": "Takes a colored dye iota and transforms it into a pigment, takes a player and returns their pigment, or takes an item containing a pigment and returns its pigment.",
+ "hexcasting.spell.hexical:sample_pigment": "Pigment Exaltation",
+ "hexical.page.sample_pigment.summary": "Samples the pigment at a certain place and time as a vector, where each component is from 0 to 1 and represents the red, green, and blueness respectively.",
+ "hexcasting.spell.hexical:take_on_pigment": "Internalize Pigment II",
+ "hexical.page.take_on_pigment.summary": "Takes a pigment iota and internalizes it for an eighth of a dust.",
+
+ "hexcasting.spell.hexical:magic_missile": "Magic Missile",
+ "hexical.page.magic_missile.summary": "Conjures a small silver of amethyst that always deals a full heart of damage and decent knockback. Costs one amethyst dust.",
+ "hexical.page.magic_missile.0": "The projectile has a few interesting properties. It automatically disappears after roughly ten seconds or shatters upon hitting an entity or block. It pierces all forms of armor and protection. It is also unaffected by gravity and water drag.$(br2)$(o)A weak but enchanting sparkling projectile.$()",
+ "hexical.page.magic_missile.1": "The conjuration location is quite esoteric: no wonder most users stick to conjuring it in front of them. The basic gist is a vector, where my head's position is the origin, my facing is the Z+ axis, the vector pointing up from my head is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
+
+ "hexcasting.spell.hexical:prestidigitation": "Prestidigitation",
+ "hexical.page.prestidigitation.summary": "Causes a small magical effect on the block or entity, usually not too distinct from the original nature or function of the block or entity. Costs 1/10th dust.",
+ "hexical.page.prestidigitation.0": "This spell differs from all others I've seen. Rather than a single specific effect, this spell seems to combine dozens of small effects into a single spell. It targets a vast array of blocks and entities, and I am constantly finding uses for it. I have documented them on the following pages.",
+ "hexcasting.spell.hexical:can_prestidigitate": "Alteration Purification",
+ "hexical.page.can_prestidigitate.summary": "Pushes whether an entity or location is able to be manipulated with Prestidigitation.",
+ "hexical.page.prestidigitation.1": "I've compiled all of its recorded uses from my notes: opens and close fence gates, trapdoors, and doors of all materials; flicks levers and presses buttons; holds down and releases pressure plates; extinguishes fire and soul fire; lights and extinguishes candles and campfires; rings bells; strips wood; carves pumpkins; makes a note block play its sound; triggers dispensers and droppers; dries mud into clay; turns most soil blocks into path blocks and path blocks into tilled soil...",
+ "hexical.page.prestidigitation.2": "toggles Redstone lamps; drain cauldrons; modifies the state of Redstone repeaters, comparators, and daylight sensors, ignites and deprimes TNT and creepers; shear sheep; give and take arms from armor stands; makes squid squirt ink; makes pandas sneeze; removes the helmet of a snow golem; make pufferfish instantly swell up; take honeycomb from beehives and nests, and activates some kind of \"great work\" whatever that is.",
+
+ "hexical.page.wristpocket.title": "Wristpocket",
+ "hexical.page.wristpocket.0": "I can perform the standard magic trick of vanishing an item and bringing it back. The item hides in the $(o)wristpocket$(), where I can use _media to manipulate it. Wristpocketed items stay with me even after death and I can recall them once I have a $(l:items/staff)staff$() again.$(br2)$(o)Because making something disappear isn't enough; you have to bring it back.$()",
+ "hexcasting.spell.hexical:wristpocket": "Wristpocket",
+ "hexical.page.wristpocket.summary": "This spell vanishes the stack of items in my other hand, or conjures it back, swapping if my other hand is holding something. Costs 1/8th of a dust.",
+ "hexcasting.spell.hexical:wristpocket_item": "Pocket Reflection",
+ "hexical.page.wristpocket_item.summary": "Returns the identifier of the item in my wristpocket, or null if it is empty.",
+ "hexcasting.spell.hexical:wristpocket_count": "Pocket Reflection II",
+ "hexical.page.wristpocket_count.summary": "Returns how many items I have in my wristpocket, or 0 if it is empty.",
+ "hexcasting.spell.hexical:sleight": "Sleight",
+ "hexical.page.sleight.summary": "Performs an act of magical sleight of hand to steal items into my wristpocket or expel my wristpocket back into the world. Costs 1/4th of a dust.",
+ "hexical.page.sleight.0": "- if taking a vector, it conjures my wristpocketed item at that vector.$(br)-if taking an item entity, if my wristpocket is empty, it is pulled into my wristpocket. If my wristpocket is not empty, the items are swapped.$(br2)$(o)If your sleight of hand causes you to break eye contact with your audience, it is too advanced for your skill level.$()",
+ "hexcasting.spell.hexical:mage_hand": "Mage Hand",
+ "hexical.page.mage_hand.summary": "Conjures a magical hand that uses my wristpocketed item to interact with the world. If my wristpocket is empty, acts as though I had interacted with the world.",
+ "hexical.page.mage_hand.0": "- if taking an entity, interacts with the entity with the item.$(br)- if taking a vector, interacts with the block with the item.$(br2)$(o)A spectral, floating hand appears at a point you choose within range.$()",
+ "hexcasting.spell.hexical:ingest": "Assimilate Food",
+ "hexical.page.ingest.summary": "This spell makes me eat my wristpocketed item, nourishing or applying potions to me. Regardless of the item's time to eat or if I'm full, this spell makes me consume it instantly.",
+
+ "hexical.page.specks.title": "Specks",
+ "hexical.page.specks.0": "I can conjure an image of an iota into the world, called a $(thing)speck$(). Nature allows me to customize them quite extensively, altering their size, thickness of stroke, and more. They also take on my pigment color. Once they are in the world, I can move, rotate, and otherwise alter them for free, regardless of range.",
+ "hexcasting.spell.hexical:conjure_speck": "Conjure Speck",
+ "hexical.page.conjure_speck.summary": "Conjures a speck with the iota, position, and rotation. Costs one-hundredth of a dust. Pushes the speck iota to the stack.",
+ "hexcasting.spell.hexical:move_specklike": "Move Speck",
+ "hexical.page.move_specklike.summary": "Moves a speck entity to the position.",
+ "hexcasting.spell.hexical:rotate_specklike": "Rotate Speck",
+ "hexical.page.rotate_specklike.summary": "Rotates a speck entity to face the vector.",
+ "hexcasting.spell.hexical:roll_specklike": "Roll Speck",
+ "hexical.page.roll_specklike.summary": "Accepts a number between 0 and 1, representing a fraction of a full rotation, and rotates the speck's image by that amount.",
+ "hexcasting.spell.hexical:iota_speck": "Alter Speck",
+ "hexical.page.iota_speck.summary": "Changes the speck's iota.",
+ "hexcasting.spell.hexical:lifetime_specklike": "Time Speck",
+ "hexical.page.lifetime_specklike.summary": "Commands the speck to disappear after that many twentieths of a second.",
+ "hexcasting.spell.hexical:size_specklike": "Resize Speck",
+ "hexical.page.size_specklike.summary": "Scales the speck, can range from 0 to 10. Represents size in blocks and is zero by default.",
+ "hexcasting.spell.hexical:thickness_specklike": "Thicken Speck",
+ "hexical.page.thickness_specklike.summary": "Changes the stroke thickness of a pattern speck, can range from 0 to 10. Represents twentieths of a block, and is zero by default.",
+ "hexcasting.spell.hexical:pigment_specklike": "Paint Speck",
+ "hexical.page.pigment_specklike.summary": "Splashes a pigment iota onto the speck, changing its color after creation.",
+ "hexcasting.spell.hexical:kill_specklike": "Dismiss Speck",
+ "hexical.page.kill_specklike.summary": "Forces a speck to disappear.",
+ "hexcasting.spell.hexical:zone_specklike": "Zone Distillation: Speck",
+ "hexical.page.zone_specklike.summary": "Returns specks similarly to other $(l:patterns/entities#hexcasting:zone_entity/animal)zone distillation$() patterns.",
+
+ "hexical.page.simple_spells.title": "Hexical Spells",
+ "hexcasting.spell.hexical:autograph": "Autograph",
+ "hexical.page.autograph.summary": "Permanently autographs the item in my offhand with my name and pigment. Costs nothing.",
+ "hexical.page.autograph.description": "An autographed item holds a list of the names people who have casted this spell on it, in order and in shimmering pigmented text. It becomes unstackable with unautographed items, even of the same type, and the same person can sign it multiple times. It may be used as a secure method of ensuring an item was approved of by a person.$(br2)$(o)Success is when your signature becomes an autograph.$()",
+ "hexcasting.spell.hexical:conjure_hexburst": "Conjure Hexburst",
+ "hexical.page.conjure_hexburst.summary": "Conjures a hexburst at the location with the given iota. Costs one dust. Is subject to the Transgress Others mishap.",
+ "hexical.page.conjure_hexburst.description": "Hexbursts are edible items created by taking an iota and wrapping _media around it, over and over until it gains size. When eaten, a hexburst instantly adds the iota it was made from to the consumer's stack. I shall find this property considerably useful if I ever want to trade my entity reference.",
+ "hexcasting.spell.hexical:conjure_hextito": "Conjure Hextito",
+ "hexical.page.conjure_hextito.summary": "Conjures a hextito at the location. Costs two dust. Is subject to the Transgress Others mishap.",
+ "hexical.page.conjure_hextito.description": "Hextitos are triangular crunchy snacks I can conjure. When consumed, I feel the sudden desire to cast the _Hex used in its creation, using my caster's stack rather than an isolated stack like a regular $(l:items/hexcasting)$(item)casting device$(). I shall find it useful to make simple actions like raycasts, especially in conjunction with hexbursts. If a consumer's stack has an unclosed Introspection, it will not cast, making it quite safe to hand out to other people.",
+ "hexcasting.spell.hexical:ghast_fireball": "Conjure Fireball",
+ "hexical.page.ghast_fireball.summary": "Conjures an explosive fireball that can be punched and damages blocks. Costs three dust.",
+ "hexical.page.ghast_fireball.description": "The conjured fireball simply hangs in the air. It must be propelled via punching it or $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$(). It can also be deflected via similar methods.$(br2)$(o)What's the good of having mastery over cosmic balance and knowing the secrets of fate if you can't blow something up?$()",
+ "hexcasting.spell.hexical:gasp": "Gasp",
+ "hexical.page.gasp.summary": "Instantly replenishes a creature's air bubbles, always costs one dust.",
+ "hexical.page.gasp.description": "Regardless of amount of breath restored, this spell costs exactly one dust so I should ideally wait as long as I safely can before casting this spell. I will find it useful while diving, being teleported into a block, or even keeping sea creatures alive on land.$(br2)$(o)The best way to observe a fish is to become a fish.$()",
+ "hexcasting.spell.hexical:chorus_blink": "Chorus Blink",
+ "hexical.page.chorus_blink.summary": "Between $(l:patterns/spells/basic#hexcasting:blink)$(action)Blink$(), $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), $(item)ender pearls$(), and $(item)chorus fruit$(), this spell serves a harmonious midpoint for safe, precise, and cheap teleportation.",
+ "hexical.page.chorus_blink.description": "It consumes a $(item)chorus fruit$() from my inventory and teleports me up to 16 blocks using an offset vector. The cost is a single dust whether I teleport the full 16 blocks or less, and has no penalty for multiple casts in one hex. Ambit works strangely with repeated casts of this spell because each $(o)blink$() shifts my ambit to my new position.$(br2)$(o)I could be there in a heartbeat.$()",
+
+ "hexical.page.conjure_compass.title": "Conjure Compasses",
+ "hexcasting.spell.hexical:conjure_compass": "Conjure Compass",
+ "hexical.page.conjure_compass.summary": "Conjures a compass at the location pointing towards the second vector. Costs three dust.",
+ "hexical.page.conjure_compass.description": "The compass does not remember the dimension it was formed in, so regardless of dimension, it points towards the same location. If read with Scribe's Reflection, it returns a unit vector pointing towards the location inside it.$(br2)$(o)Aye, the compass doesn't point North. But we're not trying to find North, are we?$()",
+
+ "hexical.page.spike.title": "Conjure Spike",
+ "hexical.page.spike.0": "I hear rumors of a sorcerer illager that can summon fangs from the ground. While I find it hard to believe that villagers can shift _media, I have taken inspiration from those myths and created this spell that brings forth spikes from the ground to skewer targets.",
+ "hexcasting.spell.hexical:spike": "Conjure Spike",
+ "hexical.page.spike.summary": "Takes a non-air position, an axis vector, and a delay in seconds up to ten seconds long and conjures a spike at that location. Costs one shard.",
+ "hexical.page.spike.1": "Each spike takes about a half second to strike and deal a hefty three full hearts of damage. If I attempt to cast this spell where a spike has already been primed, it will do nothing. Spikes will also throw back targets in the direction they were conjured.",
+
+ "hexical.page.conjure_staff.title": "Conjure Staves",
+ "hexical.page.conjure_staff.0": "Conjured staves are not unlike $(l:items/hexcasting)$(item)cyphers$(). They have a battery for casting and when they run out, unable to consume my health or my inventory's stash for _media. They are not rechargable or reprogrammable, and using $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() on it simply destroys it. However, its true power is $(o)input interception$().",
+ "hexcasting.spell.hexical:conjure_staff": "Conjure Staff",
+ "hexical.page.conjure_staff.summary": "Conjures a $(item)staff$() at the location with the amount of _media, rank, and _Hex respectively.$(br2)$(o)This is my $(l)staff$()$(o). There are many like it, but this one is mine.$()",
+ "hexical.page.conjure_staff.1": "When I use my primary or secondary use keys while holding a $(item)conjured staff$(), it intercepts my click, preventing me from interacting with the world while holding it. After a number of clicks corresponding to the rank I assigned at conjuration, it casts the _Hex I gave it, starting the stack with false and true, corresponding to the left and right clicks respectively. If I pause for too long between clicks, it simply cancels the current \"cast\".",
+ "hexical.page.conjure_staff.2": "The spell is not too expensive, requiring only an amethyst shard and the _media for the battery. The result is a speedy and versatile $(l:items/hexcasting)$(item)casting device$(), with infinitely more possibilities and no cooldown compared to other $(l:items/hexcasting)$(item)casting devices$().$(br2)Not only that, conjured staves feature an iota storage that can only be edited from the staff itself.",
+ "hexcasting.spell.hexical:read_staff": "Staff Reflection",
+ "hexical.page.read_staff.summary": "Reads the iota from the $(item)conjured staff's$() inner storage.",
+ "hexcasting.spell.hexical:write_staff": "Staff Gambit",
+ "hexical.page.write_staff.summary": "Writes an iota to the $(item)conjured staff's$() inner storage. Does not allow player references.",
+ "hexcasting.spell.hexical:with_conjured_staff": "Wand Reflection",
+ "hexical.page.with_conjured_staff.summary": "Pushes whether this _Hex is currently being cast by a conjured staff.",
+ "hexical.page.conjure_staff.3": "By holding certain items in my offhand while conjuring a $(item)conjured staff$(), the $(item)staff$() will take on a similar appearance to that item. The items and their corresponding transformations that I have discovered so far are wheat (a four-leafed clover), nautilus shells (a conch), bells (a handbell), tripwire hooks (a key), and glass blocks (a mirror).",
+
+ "hexical.page.pyrotechnics.title": "Pyrotechnics",
+ "hexical.page.pyrotechnics.0": "I have stumbled across some spells all about conjuring fireworks. The _media hums quite festively around the patterns, as if they were once used for grand celebrations, although I shudder to imagine how effective they'd be as a weaponized projectile.$(br2)$(o)You don’t need to say anything. Just watch the fireworks.$()",
+ "hexcasting.spell.hexical:simulate_firework": "Simulate Firework",
+ "hexical.page.simulate_firework.summary": "Analyzes the firework star in my other hand and conjures a firework, with position, velocity, and flight time related to gunpowder amount. Costs one shard plus one dust for each additional gunpowder.",
+ "hexcasting.spell.hexical:conjure_firework": "Conjure Firework",
+ "hexical.page.conjure_firework.summary": "$(br)Conjures a firework of my exact specifications. It is one of the most complex spells I've discovered. Costs the same as the other firework spell.",
+ "hexical.page.conjure_firework.0": "$(o)Basic Theory$()$(br2)The first two parameters of the spell are simple position and velocity. The third parameter dictates flight duration, a number from 1 to 3. I can imagine it as being the amount of gunpowder I would add to a firework rocket.$(br2)The remaining parameters can be imagined as specifications for a virtual firework star.",
+ "hexical.page.conjure_firework.1": "$(o)Shape$()$(br2)The fourth parameter controls the shape of the explosion, based off a number 0 to 3.$(br)- 0 is a simple, small ball-shaped explosion.$(br)- 1 is a large ball-shaped explosion.$(br)- 2 is a star-shaped explosion.$(br)- 3 is a large creeper face-shaped explosion.",
+ "hexical.page.conjure_firework.2": "$(o)Colors$()$(br2)The fifth and sixth parameters are lists of $(l:hexical:patterns/spells/dyes)dyes$(). The first list controls the colors of the firework's initial burst, while the second controls the colors that the first particles fade into. There must be at least one dye specified for the first list, but the second list can be empty if I do not want any fades.",
+ "hexical.page.conjure_firework.3": "$(o)Special Effects$()$(br2)The seventh parameter controls whether the particles of the firework flicker, as if adding glowstone to the virtual firework star.$(br2)The eighth parameter controls whether the particles of the firework leave trails, as if adding a diamond to the virtual firework star.",
+
+ "hexical.page.circle_spells.title": "Circle Spells",
+ "hexical.page.circle_spells.0": "When the _media courses through the boundaries of a circle, it saturates the domain inside the circle with _media, allowing me to manipulate the environment inside far more flexibly than I am used to. The following are some spells I've come across or developed, which are to only be cast by a $(l:greatwork/spellcircles)spell circle$().",
+ "hexcasting.spell.hexical:displace": "Displace",
+ "hexical.page.displace.summary": "For absolutely free, I can teleport an entity in my circle to anywhere else inside within the same circle. Unlike $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), takes in world coordinates rather than an offset.",
+
+ "hexical.page.evocation.title": "Evocation",
+ "hexical.page.evocation.0": "Media is the energy of thought, so it stands to reason that I should be able to simply $(o)think$() magic into existence rather than waving around a staff. After all, I have two chunks' worth of charged amethyst in me at my prime, double that of a $(l:items/staff)$(item)staff$(). I am not yet great enough to shift arbitrary effects into reality but I can bring it forth a prepared _Hex into existence, taking _media from my inventory.",
+ "hexcasting.spell.hexical:internalize_hex": "Internalize Hex",
+ "hexical.page.internalize_hex.summary": "Internalizes a _Hex, allowing me to cast it by holding the R key for one second even without a staff. Costs one charged amethyst for the etching process.",
+ "hexcasting.spell.hexical:is_evoking": "Evoker Reflection",
+ "hexical.page.is_evoking.summary": "Pushes how long since a player has been evoking. Is -1 if they are not currently evoking.",
+ "hexcasting.spell.hexical:with_evocation": "Evocation Reflection",
+ "hexical.page.with_evocation.summary": "Pushes whether evocation is being used to cast this pattern.",
+ "hexical.page.evocation.1": "The ancient texts I have learned this technique from reveals many other interesting trifles: _Hexcasters used to perform evocation without casting a _Hex, as some kind of greeting or group ritual, chanting in unison. Experiments have also been done to see if the spell could etch a _Hex into $(o)villagers$() to grant them the ability to shift _media but the results of those experiments were either never documented or have been lost to time.",
+
+ "hexcasting.spell.hexical:greater_blink": "Greater Blink",
+ "hexical.page.greater_blink.0": "Greater Blink is a significantly cheaper alternative to Greater Teleport. It also does not carry the risk of splattering your items upon arrival. However, it only has pitiful range compared to Greater Teleport and its destination calculations are... esoteric. I also can not specify a target other than myself.",
+ "hexical.page.greater_blink.summary": "Teleports me up to 128 blocks away, relative to my position and rotation. Costs two dust.",
+ "hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in the direction I'm facing. A vector of (0, 1, 0) would teleport me one block \"up\" in the direction of the top of my head. A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head.",
+ "hexical.page.greater_blink.2": "Peculiarly, it moves my feet to the location, perhaps could be helpful to make a raycast simply teleport me right onto the target block rather than submerged into the floor. If I have to do multiple jumps, this property must be accounted for.$(br2)$(o)Long Jaunt! Longer than you think-$()",
+
+ "hexical.page.meshes.title": "Meshes",
+ "hexical.page.meshes.0": "Meshes are the natural evolution of $(l:hexical:patterns/spells/specks)specks$(). Rather than being restricted to the figure of iotas and patterns, stuck in a two-dimensional plane, meshes accept a list of vectors in three-dimensional space and connect them with lines, allowing for infinite creative constructions. It's also responsive to most patterns used for manipulation of specks.",
+ "hexcasting.spell.hexical:conjure_mesh": "Conjure Mesh",
+ "hexical.page.conjure_mesh.summary": "Conjures a mesh with the location and leaves a mesh entity on the stack. Cost one dust.",
+ "hexical.page.meshes.1": "The mesh must be woven to have any appearance. The constraints for the list of vectors provided to a mesh are quite minimal. The list must be no more than 32 vectors long, and those vectors must have magnitudes less than 10. The mesh will then connect each of those points, defined by the relative offset, to each other.",
+ "hexcasting.spell.hexical:weave_mesh": "Weave Mesh",
+ "hexical.page.weave_mesh.summary": "Takes a list of vectors, with constraints defined on the prior page, and weaves the mesh into that shape for free.",
+ "hexcasting.spell.hexical:read_mesh": "Tangle Purification",
+ "hexical.page.read_mesh.summary": "Reads the shape of a mesh as a list of relative vectors. Can be used to copy meshes.",
+
+ "hexical.category.scrying": "Scrying",
+ "hexical.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world. These patterns can divine a surprising amount of information like types of blocks, status effects, the weather, the nutritional value of food, whether I am sprinting, $(o)block explosion resistance$(), and more. While likely not too useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
+
+ "hexical.page.blocks.title": "Blocks",
+ "hexcasting.spell.hexical:block_hardness": "Miner's Purification",
+ "hexical.page.block_hardness.summary": "Pushes how difficult blocks of that block type are to mine.",
+ "hexcasting.spell.hexical:block_blast_resistance": "Demoman's Purification",
+ "hexical.page.block_blast_resistance.summary": "Pushes how resistant blocks of that block type are to explosions.",
+ "hexcasting.spell.hexical:blockstate_waterlogged": "Plumber's Purification",
+ "hexical.page.blockstate_waterlogged.summary": "Pushes whether the block is waterlogged, or null if the block can not be waterlogged.",
+ "hexcasting.spell.hexical:blockstate_rotation": "Orientation Purification",
+ "hexical.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or null if the block does not have a facing direction.",
+ "hexcasting.spell.hexical:blockstate_crop": "Farmer's Purification",
+ "hexical.page.blockstate_crop.summary": "Pushes a number 0 to 1, corresponding to how grown that crop is, as well as beehives, composters, and cauldrons. Strangely works on cakes too.",
+ "hexcasting.spell.hexical:blockstate_glow": "Glowing Purification",
+ "hexical.page.blockstate_glow.summary": "Pushes a boolean for whether the block is in a \"lit\" state, for example furnaces, Redstone torches, lamps, and campfires.",
+ "hexcasting.spell.hexical:blockstate_lock": "Lock Purification",
+ "hexical.page.blockstate_lock.summary": "Pushes a boolean for whether the block is currently in a \"open\" state, for example doors, trapdoors, fence gates, and open barrels.",
+ "hexcasting.spell.hexical:blockstate_turn": "Angle Purification",
+ "hexical.page.blockstate_turn.summary": "Pushes a number corresponding to the rotation of signs, skulls, and banners.",
+ "hexcasting.spell.hexical:blockstate_bunch": "Bunching Purification",
+ "hexical.page.blockstate_bunch.summary": "Pushes how many are in a bunch block, or null otherwise. Useful only for candles, sea pickles, and turtle eggs.",
+ "hexcasting.spell.hexical:blockstate_book": "Book Purification",
+ "hexical.page.blockstate_book.summary": "Pushes a boolean for whether lecterns or jukeboxes have a book/music disc in them respectively. Rumors say it works for some kind of magic bookshelf too.",
+
+ "hexical.page.enchantments.title": "Enchantments",
+ "hexcasting.spell.hexical:get_enchantments": "Thaumaturgist's Purification",
+ "hexical.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
+ "hexcasting.spell.hexical:get_enchantment_strength": "Charm Distillation",
+ "hexical.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
+
+ "hexical.page.entities.title": "Entities",
+ "hexcasting.spell.hexical:get_health": "Vitality Purification",
+ "hexical.page.get_health.summary": "Pushes how close an entity is to death. I can think of these in terms of half-hearts.",
+ "hexcasting.spell.hexical:get_max_health": "Fitness Purification",
+ "hexical.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
+ "hexcasting.spell.hexical:get_air": "Suffocation Purification",
+ "hexical.page.get_air.summary": "Pushes how many seconds before an entity starts to suffocate. This applies to fish out of water as well as land creatures in water.",
+ "hexcasting.spell.hexical:get_max_air": "Lung Purification",
+ "hexical.page.get_max_air.summary": "Pushes how many seconds an entity can last outside their normal breathing environment before they start suffocating.",
+ "hexcasting.spell.hexical:get_player_hunger": "Hunger Purification",
+ "hexical.page.get_player_hunger.summary": "Pushes how full a player is. I can imagine this as individual hunger hunches.",
+ "hexcasting.spell.hexical:get_player_saturation": "Stamina Purification",
+ "hexical.page.get_player_saturation.summary": "Pushes my saturation, which roughly correlates to how long the player will remain full.",
+ "hexcasting.spell.hexical:is_burning": "Inferno Purification",
+ "hexical.page.is_burning.summary": "Pushes whether the entity is burning. Also applies to entities that are visually on fire, even if they are immune to fire like blazes attacking.",
+ "hexcasting.spell.hexical:burning_time": "Inferno Purification II",
+ "hexical.page.burning_time.summary": "Pushes how long in seconds the entity will continue burning if not put out.",
+ "hexcasting.spell.hexical:is_wet": "Enderman's Purification",
+ "hexical.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
+ "hexcasting.spell.hexical:is_baby": "Youth Purification",
+ "hexical.page.is_baby.summary": "Pushes whether a living creature is in its baby form. Also works on armor stands oddly.",
+ "hexcasting.spell.hexical:breedable": "Reproduction Purification",
+ "hexical.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or null if that creature is not capable of that type of reproduction.",
+ "hexcasting.spell.hexical:is_sleeping": "Sloth's Purification",
+ "hexical.page.is_sleeping.summary": "Pushes whether the entity is sleeping. Applies to players, cats, foxes, and a variety of other creatures.",
+ "hexcasting.spell.hexical:is_sprinting": "Racer's Purification",
+ "hexical.page.is_sprinting.summary": "Pushes whether the entity is sprinting. Includes if I am swimming or if I have left the ground since sprinting and extends to cats, foxes, and more.",
+
+ "hexical.page.food.title": "Food",
+ "hexcasting.spell.hexical:edible": "Edibility Purification",
+ "hexical.page.edible.summary": "Takes in an item identifier and pushes whether you can eat it.",
+ "hexcasting.spell.hexical:get_hunger": "Calorie Purification",
+ "hexical.page.get_hunger.summary": "Takes in an item identifier and pushes the amount it will fill you.",
+ "hexcasting.spell.hexical:get_saturation": "Satiation Purification",
+ "hexical.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill you.",
+ "hexcasting.spell.hexical:is_meat": "Flesh Purification",
+ "hexical.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat (wolves can eat it).",
+ "hexcasting.spell.hexical:is_snack": "Dessert Purification",
+ "hexical.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack (you can eat it really quickly).",
+
+ "hexical.page.identifiers.title": "Identifiers",
+ "hexical.page.identifiers.0": "My _Hexes has so far been quite blind to the world. I can get a creature's height, velocity, and more but I can't directly identify that entity. Nature's solution to the problem is the $(o)identifier iota$(). Every entity, block, status effect, enchantment, sound, etc... has a unique identifier that my _Hexes can identify. Once I have two identifiers, I can compare them with each other.",
+ "hexcasting.spell.hexical:identify": "Detective's Purification",
+ "hexical.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
+ "hexical.page.identifiers.1": "I notice that if I were to use Detective's Purification on an item, it returns that it's an item entity, but if I were to use Recognizer's Purification on that same entity, it would return the type of item. This type of item matches with a block identifier returned by Detective's Purification. I can imagine Recognizer's as returning $(o)additional$() information if possible.",
+ "hexcasting.spell.hexical:recognize": "Recognizer's Purification",
+ "hexical.page.recognize.summary": "Pushes extra identifier information of an entity, mainly the item type of an item entity or the item type inside an item frame entity.",
+ "hexcasting.spell.hexical:get_mainhand_stack": "Tool Purification",
+ "hexical.page.get_mainhand_stack.summary": "Returns the type of item in my mainhand.",
+ "hexcasting.spell.hexical:get_offhand_stack": "Accessory Purification",
+ "hexical.page.get_offhand_stack.summary": "Returns the type of item in my offhand.",
+
+ "hexical.page.item.title": "Items",
+ "hexcasting.spell.hexical:count_stack": "Storage Purification",
+ "hexical.page.count_stack.summary": "Takes in an item entity and pushes how many items are in it.",
+ "hexcasting.spell.hexical:count_max_stack": "Warehouse Purification",
+ "hexical.page.count_max_stack.summary": "Takes in an item entity and pushes how many items that can stack in it.",
+ "hexcasting.spell.hexical:damage_stack": "Deterioration Purification",
+ "hexical.page.damage_stack.summary": "Takes in an item entity and pushes how much damage the item has sustained.",
+ "hexcasting.spell.hexical:damage_max_stack": "Fragility Purification",
+ "hexical.page.damage_max_stack.summary": "Takes in an item entity and pushes how much durability the item can have at its peak.",
+
+ "hexical.page.status_effects.title": "Status Effects",
+ "hexcasting.spell.hexical:get_effects_entity": "Diagnosis Purification",
+ "hexical.page.get_effects_entity.summary": "Pushes a list of status effects the entity is afflicted with.",
+ "hexcasting.spell.hexical:get_effects_item": "Prescription Purification",
+ "hexical.page.get_effects_item.summary": "Pushes a list of status effects the food or potion will bestow.",
+ "hexcasting.spell.hexical:get_effect_category": "Condition Purification",
+ "hexical.page.get_effect_category.summary": "Pushes the general \"goodness\" of the effect towards the afflicted. -1 for harmful, 0 for neutral, and 1 for beneficial.",
+ "hexcasting.spell.hexical:get_effect_amplifier": "Concentration Distillation",
+ "hexical.page.get_effect_amplifier.summary": "Pushes the potency of the specific effect acting on the entity or null if the entity doesn't have it.",
+ "hexcasting.spell.hexical:get_effect_duration": "Clearance Distillation",
+ "hexical.page.get_effect_duration.summary": "Pushes how long the effect will last in seconds or null if the entity doesn't have it.",
+
+ "hexical.page.world.title": "World",
+ "hexcasting.spell.hexical:get_light": "Luminance Purification",
+ "hexical.page.get_light.summary": "Pushes the light level at the position as a number 0 to 15. If inside a nontransparent block, it returns zero.",
+ "hexcasting.spell.hexical:get_weather": "Meterologist's Reflection",
+ "hexical.page.get_weather.summary": "Pushes a number corresponding to the weather. 0 for clear, 1 for rain, and 2 for thundering.",
+ "hexcasting.spell.hexical:get_time": "Temporal Reflection",
+ "hexical.page.get_time.summary": "Pushes the age of the world in seconds.",
+ "hexcasting.spell.hexical:get_biome": "Geographical Purification",
+ "hexical.page.get_biome.summary": "Pushes the identifier of the biome type that the vector is within.",
+ "hexcasting.spell.hexical:get_dimension": "Plane Reflection",
+ "hexical.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in."
+}
diff --git a/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
new file mode 100644
index 000000000000..3549ce937018
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -0,0 +1,679 @@
+{
+ "advancements.hexical.arch_lamp.title": "守护进程",
+ "advancements.hexical.arch_lamp.description": "获得大精灵神灯。",
+
+ "advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
+ "advancements.hexical.reload_lamp.description": "为神灯重新充能。",
+ "advancements.hexical.educate_genie.title": "新秩序",
+ "advancements.hexical.educate_genie.description": "向精灵传授新的指示。",
+ "advancements.hexical.lamp.title": "可造之材",
+ "advancements.hexical.lamp.description": "获得精灵神灯。",
+ "advancements.hexical.augmented_reality.title": "增强现实",
+ "advancements.hexical.augmented_reality.description": "构筑一个视斑。",
+ "advancements.hexical.diy_conjuring.title": "构筑DIY!",
+ "advancements.hexical.diy_conjuring.description": "为术士方块附加改进。",
+ "advancements.hexical.conjure_hexxy.title": "构筑Hexxy",
+ "advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态。",
+ "advancements.hexical.hallucinate.title": "只在我的脑海里",
+ "advancements.hexical.hallucinate.description": "播放一段只有你能听见的声音!",
+ "advancements.hexical.media_slurp.title": "迷幻",
+ "advancements.hexical.media_slurp.description": "“你觉得有些东西不太对劲。”",
+
+ "block.hexical.hex_candle": "咒术蜡烛",
+ "block.hexical.mage_block": "术师方块",
+ "block.hexical.media_jar": "媒质罐",
+ "death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
+ "death.attack.magic_missile.item": "%1$s的魔法存在被%2$s用%3$s刺穿了",
+ "death.attack.spike": "%1$s被%2$s刺穿了",
+ "death.attack.spike.item": "%1$s被%2$s用%3$s刺穿了",
+ "entity.hexical.living_scroll": "活线卷轴",
+ "entity.hexical.magic_missile": "魔法飞弹",
+ "entity.hexical.mesh": "网斑",
+ "entity.hexical.speck": "视斑",
+ "entity.hexical.spike": "紫水晶尖刺",
+ "key.categories.hexical": "Hexical",
+ "key.hexical.evoke": "唤咒",
+ "key.hexical.telepathy": "心灵感应",
+ "item.hexical.arch_lamp": "大精灵神灯",
+ "item.hexical.conjured_compass": "构筑的指南针",
+ "item.hexical.conjured_staff": "构筑的法杖",
+ "item.hexical.grimoire": "咒典",
+ "item.hexical.hexburst": "咒术星爆糖",
+ "item.hexical.hextito": "咒力多滋",
+ "item.hexical.lamp": "手持式精灵神灯",
+ "item.hexical.gauntlet_staff": "护手法杖",
+ "item.hexical.lightning_rod_staff": "避雷针法杖",
+ "item.hexical.living_scroll_small": "小型活线卷轴",
+ "item.hexical.living_scroll_medium": "中型活线卷轴",
+ "item.hexical.living_scroll_large": "大型活线卷轴",
+ "itemGroup.hexical.general": "Hexical",
+ "subtitles.hexical.evoking_murmur": "玩家:吟唱",
+ "subtitles.hexical.evoking_casts": "玩家:施法",
+ "subtitles.hexical.lamp_activate": "神灯:启动",
+ "subtitles.hexical.lamp_deactivate": "神灯:终止",
+ "subtitles.hexical.sudden_realization": "点子:出现",
+ "subtitles.hexical.player_slurp": "玩家:啜饮",
+ "subtitles.hexical.candle_flares": "蜡烛:噼啪作响",
+ "subtitles.hexical.replenish_air": "空气:出现",
+ "tooltip.hexical.scroll_aged": "陈化",
+ "tooltip.hexical.scroll_glow": "发光",
+ "tooltip.hexical.scroll_vanished": "隐消",
+ "particle.minecraft.soul_7": "",
+ "misc.hexical.media_vision": "",
+
+ "hexical.autograph.header": "由以下人士亲笔签名:",
+
+ "hexical.fortune.0": "必然如此。",
+ "hexical.fortune.1": "绝对可以。",
+ "hexical.fortune.2": "毫无疑问。",
+ "hexical.fortune.3": "当然。",
+ "hexical.fortune.4": "大可放心。",
+ "hexical.fortune.5": "我想是的。",
+ "hexical.fortune.6": "很有可能。",
+ "hexical.fortune.7": "前景很好。",
+ "hexical.fortune.8": "是。",
+ "hexical.fortune.9": "如你所想。",
+ "hexical.fortune.10": "回应不太清晰,再试一次吧。",
+ "hexical.fortune.11": "请稍后再问。",
+ "hexical.fortune.12": "天机不可泄露。",
+ "hexical.fortune.13": "无法预测。",
+ "hexical.fortune.14": "集中注意力,再问一遍。",
+ "hexical.fortune.15": "想得美。",
+ "hexical.fortune.16": "我看不行。",
+ "hexical.fortune.17": "资料表明不行。",
+ "hexical.fortune.18": "前景不太好。",
+ "hexical.fortune.19": "很悬。",
+
+ "hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
+ "hexcasting.mishap.bad_block.mage_block": "一个术师方块",
+ "hexcasting.mishap.bad_block.prestidigitation": "一个对戏法敏感的方块",
+ "hexcasting.mishap.bad_item.grimoire": "一个咒典",
+ "hexcasting.mishap.bad_item.firework_star": "一个烟火之星",
+ "hexcasting.mishap.bad_item.has_brain": "一个能够思考的村民",
+ "hexcasting.mishap.bad_item.smart_villager": "一个老手或更高等级的村民",
+ "hexcasting.mishap.bad_item.lamp_full": "一个带有媒质的神灯",
+ "hexcasting.mishap.bad_item.lamp": "一个空神灯",
+ "hexcasting.mishap.bad_item.living_scroll": "一个活线卷轴",
+ "hexcasting.mishap.bad_item.prestidigitation": "一个对戏法敏感的实体",
+ "hexcasting.mishap.bad_item.mesh": "一个网斑",
+ "hexcasting.mishap.bad_item.speck": "一个视斑",
+ "hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
+ "hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
+ "hexcasting.mishap.invalid_value.solid_block": "一个非空气方块",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
+ "hexcasting.mishap.invalid_value.pattern_list": "一个仅由图案组成的列表",
+ "hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
+ "hexcasting.mishap.invalid_value.class.dye": "一个染料",
+ "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
+ "hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
+ "hexcasting.mishap.invalid_value.true_dye": "一个有色染料",
+ "hexcasting.mishap.invalid_value.to_pigment": "一个有色染料、一个代表染色剂物品的标识、一个含有染色剂的物品实体,或一个玩家",
+ "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
+ "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
+ "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
+ "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
+ "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
+ "hexcasting.mishap.invalid_value.potion_holding": "一个食物、药水、或药箭物品实体",
+ "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
+ "hexcasting.mishap.invalid_value.integer_natural": "一个大于0的整数",
+ "hexcasting.mishap.invalid_value.recognizable": "一个带有额外信息的目标",
+ "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
+ "hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
+ "hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
+ "hexcasting.mishap.hexical:active_arch_lamp": "物品栏中本应有一个启动的大精灵神灯。",
+ "hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
+ "hexcasting.mishap.hexical:inedible": "魔袋中的物品无法食用。",
+ "hexcasting.mishap.hexical:needs_chorus_fruit": "物品栏中需有紫颂果。",
+ "hexcasting.mishap.hexical:needs_conjured_staff": "本应由构筑的法杖施放。",
+ "hexcasting.mishap.hexical:needs_lamp": "本应由精灵神灯施放。",
+ "hexcasting.mishap.hexical:needs_hand_lamp": "本应由手持式精灵神灯施放。",
+ "hexcasting.mishap.hexical:needs_arch_lamp": "本应由大精灵神灯施放。",
+ "hexcasting.mishap.hexical:needs_skippable": "本应使用于西西弗斯之策略或托特之策略中。",
+ "hexcasting.mishap.hexical:needs_thoth": "本应使用于托特之策略中。",
+ "hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
+ "hexcasting.mishap.hexical:themis": "伪栈栈顶本应存在一个数。",
+
+ "hexcasting.spell.book.hexical:theodolite": "经纬仪之纯化",
+ "hexcasting.spell.book.hexical:damage_stack": "损耗之纯化",
+ "hexcasting.spell.book.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
+ "hexcasting.spell.book.hexical:get_effect_amplifier": "浓度之馏化",
+ "hexcasting.spell.book.hexical:get_effects_item": "处方之纯化",
+ "hexcasting.spell.book.hexical:get_enchantments": "奇术师之纯化",
+ "hexcasting.spell.book.hexical:breedable": "繁衍之纯化",
+ "hexcasting.spell.book.hexical:get_hand_lamp_position": "精灵之精思:空间型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
+ "hexcasting.spell.book.hexical:get_biome": "地理之纯化",
+ "hexcasting.spell.book.hexical:get_weather": "天气学家之精思",
+ "hexcasting.spell.book.hexical:recognize": "识别器之纯化",
+ "hexcasting.spell.book.hexical:shuffle_pattern": "图案制作师之馏化",
+ "hexcasting.spell.book.hexical:zone_specklike": "区域之馏化:类视斑",
+ "hexcasting.spell.book.hexical:modify_block_bouncy": "弹性",
+ "hexcasting.spell.book.hexical:modify_block_energized": "激能",
+ "hexcasting.spell.book.hexical:modify_block_ephemeral": "消逝",
+ "hexcasting.spell.book.hexical:modify_block_invisible": "隐形",
+ "hexcasting.spell.book.hexical:modify_block_replaceable": "可替",
+ "hexcasting.spell.book.hexical:modify_block_semipermeable": "半透",
+ "hexcasting.spell.book.hexical:modify_block_volatile": "失稳",
+ "hexcasting.spell.book.hexical:read_shelf": "图书管理员之纯化,第二型",
+
+ "hexical.page.hexical_changes.title": "Hexical 中的改动",
+ "hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()……甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()本身也变得更可塑、更$(o)可操纵$(),产生更为精确精细的媒质效果已不是难事。",
+ "hexical.page.hexical_changes.1": "我的工具也更顺手了。我注意到,使用$(l:items/staff)$(item)法杖$()时耗费的注意力减少了,我也能在使用时四处走动;之后射线追踪的时候目标就再也跑不出我的视线范围了。不过我也不能太过放松,自然对我失误的惩罚力度依然如旧。我现在还可以用$(l:patterns/readwrite#hexcasting:write)书吏之策略$()直接向$(l:items/abacus)$(item)算盘$()写入。",
+ "hexical.page.lightning_rod_staff.0": "我往一支避雷针的末端嵌了一整块紫水晶,就得到了这种造型令人印象深刻的$(l:items/staff)$(item)法杖$()。它拿起来有些沉重,但用起来仿佛在$(o)号令闪电$()。",
+ "hexical.page.lightning_rod_staff.1": "$(o)我知道世上有困难$(br)而且不止一种。$(br)有些自前路而来$(br)有些从身后接近。$(br2)但我买了根球棍。$(br)你看,我已经准备完毕。$(br)现在我的那些麻烦事$(br)马上就要有$(l)麻烦$()了!",
+ "hexical.page.gauntlet_staff.0": "法杖很重,拿着也不趁手。如果对其失去了兴趣,可以换成这个护手一样的“$(l:items/staff)$(item)法杖$()”,以此亲手感知、亲手操控媒质。",
+ "hexical.page.gauntlet_staff.1": "$(o)等等,手指是什么东西?$()",
+
+ "hexical.page.grimoire.title": "咒典",
+ "hexical.page.grimoire.0": "以充能紫水晶和$(l:items/edified)$(item)启迪木$()$()给$(item)附魔书$()装面,$(item)附魔书$()便能将$(media)媒质$()困在书页内部,就像一间回音室。之后可向其中引入图案至图案列表的绑定关系,以让$(item)咒典$()内部的$(media)媒质$()无限反弹。",
+ "hexical.page.grimoire.1": "在物品栏中放有$(item)咒典$(),再通过$(l:items/staff)$(item)法杖$()绘制其中与图案列表关联的$(l:patterns/patterns_as_iotas)图案$(),该图案会$(o)扩展$()成对应列表,同时发出一阵微弱的$(hex)咒术$()施放声。如此就为繁重的咒术(比如射线追踪曼怛罗和大型图案)创建了捷径。$(item)咒典$()甚至能截获自然提供的图案,可以完全覆写,也可加入额外功能。$(br2)$(o)要是想读一本还没写出来的书,那就亲自去写。$()",
+ "hexcasting.spell.hexical:write_grimoire": "写入咒典",
+ "hexical.page.write_grimoire.summary": "向副手$(item)咒典$()写入一个图案至图案列表的绑定关系。",
+ "hexcasting.spell.hexical:erase_grimoire": "擦除咒典",
+ "hexical.page.erase_grimoire.summary": "若副手持有$(item)咒典$(),擦除其中相应的图案列表绑定。",
+ "hexcasting.spell.hexical:index_grimoire": "档案员之精思",
+ "hexical.page.index_grimoire.summary": "获取$(item)咒典$()中所有图案的列表。",
+
+ "hexical.page.hex_candle.title": "咒术蜡烛",
+ "hexical.page.hex_candle.0": "首次以$(l:hexical:patterns/spells/prestidigitation)魔法$()或$(item)打火石$()点燃后,这些漂亮的小蜡烛上会燃起苍白色的火焰。若有人与其交互,它会复制该人的染色剂。也可以手持染色剂物品右击直接改变它的颜色。熄灭则需潜行右击。",
+
+ "hexical.page.living_scroll.title": "活线卷轴",
+ "hexical.page.living_scroll.0": "活线卷轴中混有一小份紫水晶,其上墨迹会像$(l:items/staff)$(item)法杖$()绘制出的图案那样颤动。活线卷轴的神奇之处还不止于此,它还能展示图案列表。$(br2)$(o)不带点疯劲,怎么能叫作家呢?$()",
+ "hexical.page.living_scroll.1": "卷轴上的图案可随意重绘,也可从卷轴中读出图案。这类卷轴只接受图案列表,单个图案 iota 会自动置入列表之中。写有图案列表时,活线卷轴会依次展示单个图案。图案每秒切换一次,所有活线卷轴都会同步切换。就算是在不同时间点向两份卷轴写入同一图案列表,最后两者也会建立同步。",
+ "hexical.page.living_scroll.2": "后页记录了一些用来操纵活线卷轴的法术。再次施放法术就能消除大部分此类法术产生的效果。它们都无需消耗媒质。",
+ "hexcasting.spell.hexical:age_scroll": "陈化卷轴",
+ "hexical.page.age_scroll.summary": "令卷轴的纸页泛黄,产物和我找到的一些远古卷轴极为相似。",
+ "hexcasting.spell.hexical:glow_scroll": "点亮墨迹",
+ "hexical.page.glow_scroll.summary": "使得活线卷轴的墨迹在暗处发光。",
+ "hexcasting.spell.hexical:color_scroll": "色染墨迹",
+ "hexical.page.color_scroll.summary": "改变活线卷轴墨迹的颜色,具体由所给向量决定;各分量对应红、绿、蓝,取值范围为 0 到 1。",
+ "hexcasting.spell.hexical:vanish_scroll": "隐消卷轴",
+ "hexical.page.vanish_scroll.summary": "使得卷轴的纸张隐形,图案保留不变,看上去就像图案被蚀刻在方块表面一样。",
+
+ "hexical.page.media_jar.title": "媒质罐",
+ "hexical.page.media_jar.0": "我制作了这个能盛液态$(media)媒质$()的小装饰件,它会闪闪发光。但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,从而造出了瓶装的液态$(media)媒质$()。",
+ "hexical.page.media_jar.1": "之前的$(hex)咒术师们$()还制造了一种类似的物品,他们通常会饮用其中液体,以此预知未来。瓶中装着的可是浸润于万事万物的思维能量,它给出的答案也许值得一听。$(br2)$(o)如你所想。$()",
+
+ "hexical.category.lamp": "精灵神灯",
+ "hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。传说中有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,因此我分出了这一章,用于记录我对它的研究。",
+
+ "hexcasting.spell.hexical:lamp_finale": "终局之精思",
+ "hexical.page.lamp_finale.hand": "放下神灯的那一刹那,神灯会额外施法一次。这个图案能判断精灵的施法是否是最后一次,并据此做出反应。",
+ "hexical.page.lamp_finale.arch": "停止大精灵神灯时,它会额外施法一次。我可以使用这个图案来判断某一次施法是否是最后的残响。",
+
+ "hexical.page.mysterious_lamp.title": "神秘的灯壶",
+ "hexical.page.mysterious_lamp.0": "我终于找到了上千年传言中说的东西了!如此强大的物件居然是在一位流浪商人的手里。这件神灯仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。神灯里还有一个实体,它的施法能力与我相当。",
+ "hexcasting.spell.hexical:educate_genie": "教导精灵",
+ "hexical.page.educate_genie.summary": "将我的想法教给实体。而因为我是在$(o)教导$()实体,而非$(o)蚀刻$()$(l:items/hexcasting)$(item)施法物品$(),交予精灵的$(hex)咒术$()可在后续任意时刻任意修改,而不会因此损失$(media)媒质$()。",
+
+ "hexical.page.new_possibilities.title": "全新的可能性",
+ "hexical.page.new_possibilities.0": "$(o)$(l)每一时刻$()它都在施法。往里写入法术后,迎面而来的是一束精确而又永不停歇的$(media)媒质$()流。我估计施法速度大概是在每秒二十次。神灯中的存在会以极高的效率施法,并且不会像其他施法手段那样产生大量声音和粒子。",
+ "hexical.page.new_possibilities.1": "我设计了一些配合神灯的有用图案,见后续页。这些图案只应该由神灯中的精灵运行,否则招致的便是“冒充精灵”事故,施法物品会脱手,并产生红色火花。$(br2)$(o)是的,但你的$(l)$(o)咒术师$()$(o)总是关注能不能做到,而不想想应不应该这么做。$()",
+ "hexcasting.spell.hexical:get_hand_lamp_position": "精灵之精思:空间型",
+ "hexical.page.get_hand_lamp_position.summary": "将我开始使用神灯时的位置压入栈顶。",
+ "hexcasting.spell.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
+ "hexical.page.get_hand_lamp_rotation.summary": "将我开始使用神灯时的朝向压入栈顶。",
+ "hexcasting.spell.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
+ "hexical.page.get_hand_lamp_velocity.summary": "将我开始使用神灯时的速度压入栈顶。",
+ "hexcasting.spell.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
+ "hexical.page.get_hand_lamp_use_time.summary": "将神灯使用的时间压入栈顶。该数除以 20 后即为开始使用神灯后经过的秒数。",
+ "hexcasting.spell.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
+ "hexical.page.get_hand_lamp_media.summary": "将神灯中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
+ "hexcasting.spell.hexical:with_hand_lamp": "精灵之精思",
+ "hexical.page.with_hand_lamp.summary": "检验当前$(hex)咒术$()是否由手持式精灵神灯施放。",
+ "hexcasting.spell.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
+ "hexical.page.set_hand_lamp_storage.summary": "将神灯的内部存储设为任意 iota。奇特的是,这个图案不会招致“违犯他人”事故,也许是因为使用神灯时需要我维持注意力集中吧。",
+ "hexcasting.spell.hexical:set_hand_lamp_storage": "精灵之策略",
+ "hexical.page.get_hand_lamp_storage.summary": "取出手持式神灯内部存储的 iota,默认返回 Null。",
+
+ "hexical.page.offerings.title": "仪献意识",
+ "hexical.page.offerings.0": "施放咒术会使得意识失去思考的能量,镇定知觉,麻痹神经元……真是叫人欲罢不能。对于$(l:items/staff)$(item)法杖$()、$(l:items/hexcasting)$(item)施法物品$()、法术环来说,施法的速度足够缓慢,能给意识喘息的时间;促动石则一经校准无需再次更换。不过论及神灯的施法速度,那就算是最高效的意识也难以为继。",
+ "hexical.page.offerings.1": "神灯会困住精灵,向里面重新充能就会将其释放出来。因此,为精灵神灯重新充能的唯一手段,便是同时替换$(media)媒质$()$(o)和$()精灵,强令一个全新的意识代替原有的工作。用一个村民就可以了。这也是我所制造的法术的用途。$(br2)$(o)我的名字?我的名字是……哦天哪,我为什么记不起我的名字了?$()",
+ "hexcasting.spell.hexical:offer_mind": "制造精灵",
+ "hexical.page.offer_mind.summary": "可由我施放,能从村民那里$(o)借来$()经验和记忆,交给我副手中的神灯。图案本身需要消耗 1 个充能紫水晶,同时消耗我给予精灵的$(media)媒质$()。",
+ "hexical.page.offerings.2": "值得留意的是,这个法术$(o)不会$()杀死村民,而是会从其意识中分出一部分用作精灵的替代品。村民的主意识则只会失去一部分记忆。我听过传言称,古代的$(hex)咒术师们$()会以此像种庄稼一样$(o)培育$()村民的意识,再消耗育成的意识给神灯充能,并留出时间供村民重新学习他们失去的意识。",
+ "hexical.page.offerings.3": "不是所有村民都能变成精灵。我推测,那些不及老手等级的村民不具有值得使用的媒质,对他们施放的法术也会直接失效。而在将村民的大部分知识$(o)优化$()到施法方向后,专家大概不会比老手强出多少。不过,某些技能应该还是会影响到施法的质量。笔记见下页。",
+ "hexical.page.offerings.4": "根深蒂固的意识和生来具有的能力似乎不受优化流程的影响。大师村民们的技艺已臻完美,知识也已烂熟于心,因此他们的施法能力有了质的飞跃。一生都在周游世界的流浪商人则极其熟稔于探索,由他们制成的神灯也会反应出这一特质。",
+
+ "hexical.page.arch_lamps.title": "大精灵神灯",
+ "hexical.page.arch_lamps.0": "大师级村民的意识不只是丢失意识,而是会离开身体,完全取代原本的精灵。而因为施放法术的是独立的实体,神灯应该能在我没手持的时候施法。这些大精灵神灯对应的操作是“启动”和“停止”,而非“使用”。而当其处于我物品栏中时,就算没有我的输入,它们也会每时每刻施法。",
+ "hexical.page.arch_lamps.1": "大精灵神灯的输出太过庞大,甚至能令我周围的空气进入$(media)媒质$()饱和状态……不可思议。不幸的是,若在我物品栏中有两个神灯同时处于启动状态,它们的回响会相互碰撞,致使其停止,并使得物品栏中所有大精灵神灯几秒内无法使用。同一时刻应当只有一个大精灵神灯启动,但此时还可以使用一个普通神灯。",
+ "hexical.page.arch_lamps.2": "$(o)我是一大团肉乎乎的东西,体表圆滑,没有嘴。原来曾经是眼睛的地方如今是两个冒着白烟的洞,两根橡胶棒似的东西曾经是我的双臂。肉向四周摊开变成一堆没有腿的肉团,柔软滑腻。$(br2)我没有嘴,但我必须呐喊。$()",
+ "hexcasting.spell.hexical:activate_arch_lamp": "启动大精灵",
+ "hexical.page.activate_arch_lamp.summary": "此图案可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。停止所有大精灵神灯,并启动一个先前未启动的。",
+ "hexcasting.spell.hexical:terminate_arch_lamp": "终止大精灵",
+ "hexical.page.terminate_arch_lamp.summary": "此图案可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。停止当前启动的大精灵神灯。",
+ "hexcasting.spell.hexical:has_arch_lamp": "大精灵之纯化",
+ "hexical.page.has_arch_lamp.summary": "判断玩家当前是否已启动大精灵神灯。",
+ "hexcasting.spell.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
+ "hexical.page.get_arch_lamp_position.summary": "将我开始使用大精灵神灯时的位置压入栈顶。",
+ "hexcasting.spell.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
+ "hexical.page.get_arch_lamp_rotation.summary": "将我开始使用大精灵神灯时的朝向压入栈顶。",
+ "hexcasting.spell.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
+ "hexical.page.get_arch_lamp_velocity.summary": "将我开始使用大精灵神灯时的速度压入栈顶。",
+ "hexcasting.spell.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
+ "hexical.page.get_arch_lamp_use_time.summary": "将神灯使用的时间压入栈顶。该数除以 20 后即为开始使用神灯后经过的秒数。",
+ "hexcasting.spell.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
+ "hexical.page.get_arch_lamp_media.summary": "将神灯中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
+ "hexcasting.spell.hexical:with_arch_lamp": "大精灵之精思",
+ "hexical.page.with_arch_lamp.summary": "检验当前$(hex)咒术$()是否由大精灵神灯施放。",
+ "hexcasting.spell.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
+ "hexical.page.get_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。获取神灯的 iota 存储。",
+ "hexcasting.spell.hexical:set_arch_lamp_storage": "大精灵之策略",
+ "hexical.page.set_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。设定神灯的 iota 存储。可能招致“违犯他人”事故。",
+
+ "hexical.page.enlightened_patterns.title": "启迪后图案",
+ "hexical.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。",
+ "hexcasting.spell.hexical:am_enlightened": "显圣之纯化",
+ "hexical.page.am_enlightened.summary": "检验所给玩家是否和我一样经过启迪。",
+ "hexcasting.spell.hexical:is_brainswept": "感知之纯化",
+ "hexical.page.is_brainswept.summary": "检验实体“是否经由魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
+
+ "hexical.page.simple_patterns.title": "Hexical 图案",
+ "hexcasting.spell.hexical:entity_width": "卡尺之纯化",
+ "hexical.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
+ "hexcasting.spell.hexical:theodolite": "经纬仪之纯化",
+ "hexical.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
+ "hexcasting.spell.hexical:swap_one_three": "反照之策略",
+ "hexical.page.swap_one_three.summary": "反照栈顶三个 iota 的顺序,将 A, B, C 变为 C, B, A。相当于交换栈顶元素和栈顶往下第三元素。",
+ "hexcasting.spell.hexical:swap_two_three": "泡浮之策略",
+ "hexical.page.swap_two_three.summary": "使得栈顶往下第三元素上浮过栈顶往下第二元素,相当于交换它们。",
+ "hexcasting.spell.hexical:similar": "相似之馏化",
+ "hexical.page.similar.summary": "检验两个 iota 是否类型相同。",
+ "hexcasting.spell.hexical:congruent": "全等之馏化",
+ "hexical.page.congruent.summary": "检验两个图案是否外形相同且方向相同。",
+ "hexcasting.spell.hexical:dup_many": "狄俄斯库里之策略,第二型",
+ "hexical.page.dup_many.summary": "接受一个数,并复制栈顶开始所给数个元素,保留顺序。",
+ "hexcasting.spell.hexical:shuffle_pattern": "图案制作师之馏化",
+ "hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代咒术师会把这些图案用在某种$(o)庞大的图书馆$()中。",
+
+ "hexical.page.perlin.title": "准随机",
+ "hexical.page.perlin.0": "某些地点的环境$(media)媒质$()密度比其他位置高。这种密度可以测量;甚至能在时间上回溯或前进,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
+ "hexcasting.spell.hexical:perlin": "柏林之馏化",
+ "hexical.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
+
+ "hexical.page.special_raycasts.title": "特殊射线追踪",
+ "hexcasting.spell.hexical:fluid_raycast": "海军之馏化",
+ "hexical.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.spell.hexical:fluid_surface_raycast": "睡莲之馏化",
+ "hexical.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.spell.hexical:piercing_raycast": "轨道炮之提整",
+ "hexical.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+ "hexcasting.spell.hexical:piercing_surface_raycast": "激光之提整",
+ "hexical.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+
+ "hexical.page.telepathy.title": "心灵感应",
+ "hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于玩家的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取或向其写入思维。",
+ "hexcasting.spell.hexical:get_telepathy": "心灵感应之精思",
+ "hexical.page.get_telepathy.summary": "对某种影像保持注意力,就可通过此图案探测到注意力的强度。压入我按下“心灵感应”键的时间,如果未按下则返回 -1。",
+ "hexcasting.spell.hexical:send_telepathy": "传递思维",
+ "hexical.page.send_telepathy.summary": "将 iota 暂时显示在快捷栏上方。如果持续施放,则每次施放都会立刻覆盖上一次的结果。",
+ "hexcasting.spell.hexical:shout_telepathy": "喊出思维",
+ "hexical.page.shout_telepathy.summary": "在屏幕中央显示 iota。这么做会阻碍视野,消散也要时间,因此不应经常使用。",
+ "hexcasting.spell.hexical:pling": "幻听扣弦",
+ "hexical.page.pling.summary": "使我听到一段扣弦声,其他玩家无法听见。",
+ "hexcasting.spell.hexical:click": "幻听咔哒",
+ "hexical.page.click.summary": "使我听到一段咔哒声,其他玩家无法听见。",
+ "hexcasting.spell.hexical:moving_up": "突进之精思",
+ "hexical.page.moving_up.summary": "压入我试图向前移动的时间,未按下“向前移动”则返回 -1。",
+ "hexcasting.spell.hexical:moving_down": "后撤之精思",
+ "hexical.page.moving_down.summary": "压入我试图向后移动的时间,未按下“向后移动”则返回 -1。",
+ "hexcasting.spell.hexical:moving_left": "左躲之精思",
+ "hexical.page.moving_left.summary": "压入我试图向左移动的时间,或返回 -1。很容易和右避之精思区分,因为左躲之精思名字里有个“左”。",
+ "hexcasting.spell.hexical:moving_right": "右避之精思",
+ "hexical.page.moving_right.summary": "压入我试图向右移动的时间,或返回 -1。很容易和左躲之精思区分,因为右避之精思名字里有个“右”。",
+ "hexcasting.spell.hexical:jumping": "腾跃之精思",
+ "hexical.page.jumping.summary": "压入我试图跳跃的时间,未按下“跳跃”则返回 -1。",
+
+ "hexical.page.soroban.title": "珠算图案",
+ "hexical.page.soroban.0": "这些图案能操纵一个虚计数器。在$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()被占用或用得太多时,这些图案就能派上用场,比如维护$(l:patterns/meta#hexcasting:for_each)$(action)托特$()循环的迭代次数。一些远古时代的残本推荐将其用于某种$(o)递归深度$()的统计。$(br2)需注意,它们直接用法杖绘制时无法正常工作。似乎这些存储量只会存在一瞬。",
+ "hexcasting.spell.hexical:soroban_increment": "珠算之精思",
+ "hexical.page.soroban_increment.summary": "压入珠算计数器当前值,而后令计数器增加 1。",
+ "hexcasting.spell.hexical:soroban_decrement": "珠算之精思,第二型",
+ "hexical.page.soroban_decrement.summary": "压入珠算计数器当前值,而后令计数器减少 1。",
+ "hexcasting.spell.hexical:soroban_reset": "珠算之策略",
+ "hexical.page.soroban_reset.summary": "重置珠算计数器。",
+
+ "hexical.page.metas.title": "Hexical 元运行",
+ "hexcasting.spell.hexical:janus": "雅努斯之策略",
+ "hexical.page.janus.0": "立即终止当前$(hex)咒术$(),无视所有限制。不同于$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),它甚至能跳出$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()和$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()。",
+ "hexical.page.janus.1": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限;$(l:hexical:patterns/metaevals#hexical:janus)$(action)雅努斯之策略$()不受$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()影响。$(br2)$(o)理解事物已然终结非常重要。$()",
+ "hexcasting.spell.hexical:nephthys": "奈芙蒂斯之策略",
+ "hexical.page.nephthys.0": "弹出一个图案或图案列表,在栈顶往下一定位置处施放所给图案或列表,向下的元素数即是图案尾部的长度。达成的效果与外科医师之提整类似。",
+ "hexical.page.nephthys.1": "这个图案非常好用,与$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()配合几乎能处理栈中的所有问题,潜入栈中后压入 iota,再处理“栈顶”的 iota。这一操作的名字来源于哀悼和河流的女神,意指其“深埋”或“潜入”栈中的操作。$(br2)$(o)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()",
+ "hexcasting.spell.hexical:sekhmet": "塞赫麦特之策略",
+ "hexical.page.sekhmet.0": "清除栈,栈顶若干元素除外,具体数量由图案的尾部长度决定。上方的示例分别会保留 0 个、1 个、2 个 iota。直接绘制时$(o)不是$()元运行。",
+ "hexical.page.sekhmet.1": "此策略的效果可通过$(l:patterns/stackmanip#hexcasting:stack_len)$(action)群体之精思$()、$(l:patterns/lists#hexcasting:last_n_list)$(action)群体之策略$()、$(l:patterns/lists#hexcasting:slice)$(action)选择之提整$()、$(l:patterns/lists#hexcasting:splat)$(action)群体之拆解$()序列简单达成,但这个策略使用起来相当方便。它和托特之策略相性极佳,适合对付那些只需返回栈顶若干元素、其余 iota 仅参与施放的伪栈。$(br2)$(o)凡事都可能,但不都有必要。$()",
+ "hexcasting.spell.hexical:atalanta": "阿塔兰忒之策略",
+ "hexical.page.atalanta.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()或$(l:hexical:patterns/metaevals#hexical:sisyphus)$(action)西西弗斯之策略$()内部使用。效果与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()类似,但不会完全停止迭代,而只是会跳过当前迭代剩余的部分。",
+ "hexical.page.atalanta.1": "此图案常用作多重条件循环的“卫语句”。比如,在获取到实体列表后,可能只需根据一长串条件挑出一部分作为目标。使用此图案,即可避免造出层层嵌套的条件判断,而是在判断不通过时直接“$(o)continue$()”/“$(o)继续$()”到下一迭代,如此就无需执行本迭代内后续的语句了。$(br2)$(o)You shall not pass!$()",
+ "hexcasting.spell.hexical:castor": "卡斯托耳之策略",
+ "hexical.page.castor.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()内部使用。详情见下一页。小心“钻研过深”事故。",
+ "hexical.page.castor.1": "此图案会出栈一个 iota,并将其作为$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()的一个新迭代项,在当前迭代结束后立即开始。该迭代的栈顶元素即为所出栈的元素。想成把 iota 放到$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()所接受的迭代列表的开头,可能会更好理解。$(br2)$(o)不要永远沿着路走,而要走无路之处……并留下你的足迹。$()",
+ "hexcasting.spell.hexical:pollux": "波吕克斯之策略",
+ "hexical.page.pollux.0": "$(l:hexical:patterns/metaevals#hexical:castor)$(action)卡斯托耳之策略$()的兄弟图案,此图案会将新迭代置于所有迭代的末尾。同样有风险招致“钻研过深”事故。",
+ "hexical.page.pollux.1": "效果与其兄弟图案基本一致,但新的迭代置于末尾。我曾阅读过详细记载使用这对图案的技术的卷轴,技术的名字是$(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)深度优先搜索$()和$(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)广度优先搜索$()。$(br2)$(o)深入之前应先探索表面。$()",
+ "hexcasting.spell.hexical:sisyphus": "西西弗斯之策略",
+ "hexical.page.sisyphus.0": "接受一个图案列表,并持续不断运行,直至遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()或$(l:hexical:patterns/metaevals#hexical:janus)$(action)雅努斯之策略$()。",
+ "hexical.page.sisyphus.1": "我曾听过有些能够自我复制的$(hex)咒术$(),叫做“$(o)自产生程序$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()会在迭代间保留,且每次施放均以基础栈起始。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()",
+ "hexcasting.spell.hexical:themis": "忒弥斯之策略",
+ "hexical.page.themis.0": "接受一个列表和一个图案列表,或一个列表与单个图案;在第一参数处运行第二参数,并排序结果,运行的过程与$(l:patterns/meta#hexcasting:for_each)托特之策略$()类似。",
+ "hexical.page.themis.1": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()",
+
+ "hexical.page.akashic_utils.title": "阿卡夏实用法术",
+ "hexical.page.akashic_utils.0": "我发现了阿卡夏图书馆的便捷操作!右击或是$(l:hexical:patterns/spells/prestidigitation)以魔法方式$()与有内容物的阿卡夏书架交互,即可将其 iota 压入我的法杖栈。以卷轴右击可以把对应的图案复制到卷轴上。最后,我还发现了两个图案,可以直接向施法范围内的书架读写,无需消耗媒质。",
+ "hexcasting.spell.hexical:key_shelf": "图书管理员之纯化",
+ "hexical.page.key_shelf.summary": "读取施法范围内阿卡夏书架的键。无需消耗媒质。",
+ "hexcasting.spell.hexical:read_shelf": "图书管理员之纯化,第二型",
+ "hexical.page.read_shelf.summary": "读取施法范围内阿卡夏书架的 iota。无需消耗媒质。",
+ "hexcasting.spell.hexical:write_shelf": "图书管理员之策略",
+ "hexical.page.write_shelf.summary": "向施法范围内的阿卡夏书架写入 iota。无需消耗媒质。",
+ "hexcasting.spell.hexical:clear_shelf": "图书管理员之策略,第二型",
+ "hexical.page.clear_shelf.summary": "清除施法范围内给定的阿卡夏书架。无需消耗媒质。",
+
+ "hexical.page.mage_block.title": "术师方块",
+ "hexical.page.mage_block": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
+ "hexcasting.spell.hexical:conjure_mage_block": "构筑术师方块",
+ "hexical.page.conjure_mage_block.summary": "在所给位置构筑一个术师方块。消耗 3 个紫水晶粉。$(br2)$(o)我可以凭空造出一座城市,也可令其沉没于火山熔岩之中。$()",
+ "hexcasting.spell.hexical:modify_block_bouncy": "改进方块:弹性",
+ "hexical.page.modify_block_bouncy.summary": "此改进使得方块弹性十足!如此制成的方块的弹性比黏液块更好。同时我注意到,潜行时它也会把我弹起来。",
+ "hexcasting.spell.hexical:modify_block_energized": "改进方块:激能",
+ "hexical.page.modify_block_energized.summary": "带有此改进的术士方块能发出红石信号,信号强度即为所给数。",
+ "hexcasting.spell.hexical:modify_block_ephemeral": "改进方块:消逝",
+ "hexical.page.modify_block_ephemeral.summary": "此改进需要一个数和一个位置向量,在所给数个二十分之一秒后打碎所给位置处的方块。后续再次施法可延长或缩短等待时间。",
+ "hexcasting.spell.hexical:modify_block_invisible": "改进方块:隐形",
+ "hexical.page.modify_block_invisible.summary": "此改进阻止方块散发出类似施法时产生的粒子,就算站在上面也一样。",
+ "hexcasting.spell.hexical:modify_block_replaceable": "改进方块:可替",
+ "hexical.page.modify_block_replaceable.summary": "此改进非常适合建筑!其他方块可以直接放置在带有此改进的术师方块处。",
+ "hexcasting.spell.hexical:modify_block_semipermeable": "改进方块:半透",
+ "hexical.page.modify_block_semipermeable.summary": "此改进令方块变得半透,也即只会允许最后一个与其交互的施法者通过,所有其他实体则不行。",
+ "hexcasting.spell.hexical:modify_block_volatile": "改进方块:失稳",
+ "hexical.page.modify_block_volatile.summary": "此改进促使方块破坏与之相邻的术师方块。而当其破坏另一个失稳方块时,与其相连的所有失稳方块都会消失。",
+
+ "hexical.page.dyes.title": "染料",
+ "hexical.page.dyes.0": "染色法术和专用的 iota 可以用来改变方块和实体的颜色。染料 iota 代表一种颜色,也似乎同时象征着染色的$(o)可能性$()。例如,尝试获取草丛的染料会返回 Null,但获取未染色陶瓦的染料会返回$(thing)uncolored$()/$(thing)无色$(),这种染料能够“漂白”可染色方块。",
+ "hexcasting.spell.hexical:get_dye": "色彩之纯化",
+ "hexical.page.get_dye.summary": "获取方块、实体、标识的染料。",
+ "hexcasting.spell.hexical:dye": "染色",
+ "hexical.page.dye.summary": "为可染色的方块或实体染色。消耗 1/8 个紫水晶粉。",
+ "hexical.page.dyes.1": "此法术的有效目标如下:床、蜡烛、插上蜡烛的蛋糕、地毯、混凝土、混凝土粉末、带釉陶瓦、沙和红沙互换、砂岩类和红砂岩类方块互换、潜影盒、染色玻璃、染色玻璃板、陶瓦、郁金香、羊毛。实体有:猫的项圈、狗的项圈、类视斑实体、潜影贝、前述方块的物品实体。",
+ "hexcasting.spell.hexical:translate_dye": "视色之纯化",
+ "hexical.page.translate_dye.summary": "将染料的颜色转换为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
+
+ "hexical.page.pigments.title": "染色剂操纵",
+ "hexical.page.pigments.0": "和通过图案操纵染料一样,染色剂也可操纵。比如说,我甚至能存储多个染色剂,再让咒术随机挑选一个给我。",
+ "hexcasting.spell.hexical:to_pigment": "染色剂之纯化",
+ "hexical.page.to_pigment.summary": "接受一个有色染料 iota,并转换为染色剂;接受一个玩家并返回其染色剂;或是接受一个内含染色剂的物品,并返回其染色剂。",
+ "hexcasting.spell.hexical:sample_pigment": "染色剂之提整",
+ "hexical.page.sample_pigment.summary": "在给定位置和时间获取染色剂颜色,返回为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
+ "hexcasting.spell.hexical:take_on_pigment": "内化染色剂,第二型",
+ "hexical.page.take_on_pigment.summary": "接受一个染色剂 iota 并内化它,消耗 1/8 个紫水晶粉。",
+
+ "hexcasting.spell.hexical:magic_missile": "魔法飞弹",
+ "hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时产生较强的击退。消耗 1 个紫水晶粉。",
+ "hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
+ "hexical.page.magic_missile.1": "构筑的位置本身也相当奇妙:怪不得大多数使用者都只选择在面前构筑它们。这一参数是向量,以我的头部位置为原点,我面朝的方向是 X 轴正向,头顶向上的方向是 Y 轴正向,头部向右的方向是 Z 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
+
+ "hexcasting.spell.hexical:prestidigitation": "戏法",
+ "hexical.page.prestidigitation.summary": "通过魔法令方块或实体产生一定回应,这种回应不会偏离方块或实体本身的性质和功能太远。消耗 1/10 个紫水晶粉。",
+ "hexical.page.prestidigitation.0": "此类法术和我之前遇到过的那些很不一样。它们的效果并不单一固定,而是类似于将许多不同的简单效果综合在单个法术中。它们的有效目标涵盖了许多方块和实体,我也在积极寻找它们的用途。具体内容记在后页。",
+ "hexcasting.spell.hexical:can_prestidigitate": "改易之纯化",
+ "hexical.page.can_prestidigitate.summary": "检验所给实体或位置是否可受戏法操纵。",
+ "hexical.page.prestidigitation.1": "我在此整理了一份经验证适用于此类法术的对象列表:打开或关闭各种材质的栅栏门、活板门、门;拨动拉杆,按压按钮;压下或松开压力板;熄灭火和灵魂火;点燃或熄灭蜡烛和营火;敲钟;为原木等去皮;雕刻南瓜;使音符盒发出声音;触发发射器和投掷器;将泥巴烤干为黏土;将大部分土壤方块变为土径,将土径变为耕地……",
+ "hexical.page.prestidigitation.2": "打开或关闭红石灯;消耗炼药锅的内容物;更改红石中继器、红石比较器、阳光探测器的状态;触发或解除 TNT 和苦力怕的爆炸;为绵羊剪毛;装上或卸下盔甲架的手臂部分;使得鱿鱼喷墨;使得熊猫打喷嚏;去除雪傀儡的头套;令河豚立刻膨胀到最大;从蜂巢和蜂箱中取出蜜脾;以及触发某种“宏伟之作”,不太清楚这是在说什么。",
+
+ "hexical.page.wristpocket.title": "魔袋",
+ "hexical.page.wristpocket.0": "让物品消失,再让物品回来的普通魔术把戏现在已易如反掌。这些物品藏在了$(o)魔袋$()之中,可用$(media)媒质$()操控。藏入魔袋的物品在我死后依然保留,拿到$(l:items/staff)$(item)法杖$()就能取回。$(br2)$(o)因为就让事物消失是不够的;你还要把它变回来。$()",
+ "hexcasting.spell.hexical:wristpocket": "藏入魔袋",
+ "hexical.page.wristpocket.summary": "此法术会令另一只手中的物品组消失;也可重新让其出现,如果手中已经持有物品则会交换。消耗 1/8 个紫水晶粉。",
+ "hexcasting.spell.hexical:wristpocket_item": "魔袋之精思",
+ "hexical.page.wristpocket_item.summary": "返回魔袋中物品的标识,如果魔袋为空则返回 Null。",
+ "hexcasting.spell.hexical:wristpocket_count": "魔袋之精思,第二型",
+ "hexical.page.wristpocket_count.summary": "返回魔袋中的物品数,如果魔袋为空则返回 0。",
+ "hexcasting.spell.hexical:sleight": "花招",
+ "hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗 1/4 个紫水晶粉。",
+ "hexical.page.sleight.0": "- 传入向量:将魔袋中的物品投放到对应位置。$(br)- 传入物品实体:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
+ "hexcasting.spell.hexical:mage_hand": "法师之手",
+ "hexical.page.mage_hand.summary": "构筑一只魔法手,以在世界中使用魔袋中的物品交互。如果魔袋为空,则表现为我自己与世界交互。",
+ "hexical.page.mage_hand.0": "- 传入实体:使用物品与该实体交互。$(br)- 传入向量:使用物品与该处方块交互。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
+ "hexcasting.spell.hexical:ingest": "同化食物",
+ "hexical.page.ingest.summary": "此法术能让我吃下魔袋中的物品,填饱我的肚子,或是给予我药水效果。无论我是否吃饱,也不管食物本身要花多久才能吃下,此法术都会瞬间完成食用。",
+
+ "hexical.page.specks.title": "视斑",
+ "hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受施法范围限制。",
+ "hexcasting.spell.hexical:conjure_speck": "构筑视斑",
+ "hexical.page.conjure_speck.summary": "按照所给 iota、位置、朝向构筑视斑。消耗 1/100 个紫水晶粉。压入视斑 iota。",
+ "hexcasting.spell.hexical:move_specklike": "移动视斑",
+ "hexical.page.move_specklike.summary": "将视斑实体移动至所给位置。",
+ "hexcasting.spell.hexical:rotate_specklike": "旋转视斑",
+ "hexical.page.rotate_specklike.summary": "令视斑实体的朝向变为所给向量。",
+ "hexcasting.spell.hexical:roll_specklike": "滚转视斑",
+ "hexical.page.roll_specklike.summary": "接受一个 0 与 1 之间的数,用作旋转圈数,并依此旋转视斑。",
+ "hexcasting.spell.hexical:iota_speck": "更改视斑",
+ "hexical.page.iota_speck.summary": "更改视斑对应的 iota。",
+ "hexcasting.spell.hexical:lifetime_specklike": "计时视斑",
+ "hexical.page.lifetime_specklike.summary": "令视斑在所给数个二十分之一秒后消失。",
+ "hexcasting.spell.hexical:size_specklike": "缩放视斑",
+ "hexical.page.size_specklike.summary": "更改视斑的大小,接受 0 与 10 之间的数。此数表示以格计的大小,默认为 0。",
+ "hexcasting.spell.hexical:thickness_specklike": "增粗视斑",
+ "hexical.page.thickness_specklike.summary": "更改图案视斑笔触的粗细,接受 0 与 10 之间的数。此数表示以 1/20 格计的大小,默认为 0。",
+ "hexcasting.spell.hexical:pigment_specklike": "染色视斑",
+ "hexical.page.pigment_specklike.summary": "将染色剂施加于视斑,可在构筑后更改其颜色。",
+ "hexcasting.spell.hexical:kill_specklike": "驱散视斑",
+ "hexical.page.kill_specklike.summary": "强令视斑实体消失。",
+ "hexcasting.spell.hexical:zone_specklike": "区域之馏化:类视斑",
+ "hexical.page.zone_specklike.summary": "返回视斑实体,效果与其他$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$()类似。",
+
+ "hexical.page.simple_spells.title": "Hexical 法术",
+ "hexcasting.spell.hexical:autograph": "签名",
+ "hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的染色剂为颜色。无需消耗媒质。",
+ "hexical.page.autograph.description": "所有对物品施放过此法术的人,其名字会依次保留在物品上,且保留对应的染色剂。签过名的物品无法与未签名的物品堆叠,同种的物品也不能。同一人能给同一物品多次签名。可以当作某人认可某物的实证。$(br2)$(o)何谓成功?成功就是你的签名变成了名人签名。$()",
+ "hexcasting.spell.hexical:conjure_hexburst": "构筑咒术星爆糖",
+ "hexical.page.conjure_hexburst.summary": "使用所给 iota 在给定位置构筑一枚咒术星爆糖。消耗 1 个紫水晶粉。可能招致“违犯他人”事故。",
+ "hexical.page.conjure_hexburst.description": "取出一个 iota,再在周围包裹$(media)媒质$(),直至它具备物理形态,就得到了可食用的咒术星爆糖。食用时,这种糖会将其中的 iota 压入食用者的栈。如果我想要交易代表我的 iota,咒术星爆糖应该会很有用。",
+ "hexcasting.spell.hexical:conjure_hextito": "构筑咒力多滋",
+ "hexical.page.conjure_hextito.summary": "在给定位置构筑一片咒力多滋。消耗 2 个紫水晶粉。可能招致“违犯他人”事故。",
+ "hexical.page.conjure_hextito.description": "咒力多滋是一种三角形的酥脆零食。食用时,我会突然生出施放其中$(hex)咒术$()的想法,使用的是我的施法栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合简单的操作集合,比如射线追踪,和咒术星爆糖配合进行构筑更是如此。如果食用者的栈存在未闭合的内省,其中咒术便不会施放,以此保障他人使用的安全。",
+ "hexcasting.spell.hexical:ghast_fireball": "构筑火球",
+ "hexical.page.ghast_fireball.summary": "构筑一个易爆火球,敲击发射后能够摧毁方块。消耗 3 个紫水晶粉。",
+ "hexical.page.ghast_fireball.description": "构筑出的火球只会停在空中,必须敲击或通过$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()发射出去。当然也可用同种手段更改其飞行方向。$(br2)$(o)要是不能炸坏什么东西的话,掌控宇宙平衡和知晓命运之秘又有什么好处呢?$()",
+ "hexcasting.spell.hexical:gasp": "喘息",
+ "hexical.page.gasp.summary": "立即填满生物的氧气条,消耗 1 个紫水晶粉。",
+ "hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个紫水晶粉,因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
+ "hexcasting.spell.hexical:chorus_blink": "紫颂闪现",
+ "hexical.page.chorus_blink.summary": "$(l:patterns/spells/basic#hexcasting:blink)$(action)闪现$()、$(l:patterns/great_spells/teleport)$(action)卓越传送$()、$(item)末影珍珠$()、$(item)紫颂果$(),这一法术处于上述几种传送方式的中间,平衡而和谐,以其安全、精确、低消耗的传送著称。",
+ "hexical.page.chorus_blink.description": "此图案需消耗物品栏中的一个$(item)紫颂果$(),并根据偏移向量传送最多 16 格。无论传送满 16 格还是不到 16 格,消耗均为 1 个紫水晶粉,且单个咒术中使用多次不会有惩罚。神奇的是,重复施放此法术不会因为超出施法范围而终止咒术,这是因为每次$(o)闪现$()都会将施法范围移至新位置。$(br2)$(o)我一眨眼就能到了。$()",
+
+ "hexical.page.conjure_compass.title": "构筑指南针",
+ "hexcasting.spell.hexical:conjure_compass": "构筑指南针",
+ "hexical.page.conjure_compass.summary": "在给定位置构筑一个指南针,它指向第二向量处。消耗 3 个紫水晶粉。",
+ "hexical.page.conjure_compass.description": "指南针并不会记忆它构筑时所处的维度,也即在所有维度中,它都指向同一位置。以书吏之精思读取,会获得指向目标位置的单位向量。$(br2)$(o)对头,指北针不指北方。但我们根本没在找北方啊!$()",
+
+ "hexical.page.spike.title": "构筑尖刺",
+ "hexical.page.spike.0": "我曾听过有一位灾厄村民术士能在地上构筑尖牙。要相信“村民能操控$(media)媒质$()”这种说法很难,但从其中获取灵感还是可行的。我依此制造出了这条法术,能够从地下升起尖刺刺穿目标。",
+ "hexcasting.spell.hexical:spike": "构筑尖刺",
+ "hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗 1 个紫水晶碎片。",
+ "hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会造成高达三颗心的伤害。在已经触发尖刺的位置试图重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
+
+ "hexical.page.conjure_staff.title": "构筑法杖",
+ "hexical.page.conjure_staff.0": "构筑的法杖和$(l:items/hexcasting)$(item)杂件$()比较相像。它们都有施法用的媒质储库,该储库耗尽后也不会消耗我的生命值和物品栏中的$(media)媒质$()物品。它们都无法重新充能,无法重新写入,对其使用$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()也都会将其毁灭。这种法杖的真正力量在于$(o)输入拦截$()。",
+ "hexcasting.spell.hexical:conjure_staff": "构筑法杖",
+ "hexical.page.conjure_staff.summary": "在所给位置处使用给定$(media)媒质$()量、位阶、$(hex)咒术$()构筑$(item)法杖$()。$(br2)$(o)这是我的$(l)法杖$()$(o)。虽有很多相似的,但这一把是我的。$()",
+ "hexical.page.conjure_staff.1": "手持构筑法杖时,它会拦截按下首选或次选“使用”按键的事件,阻止我与世界交互。拦截次数达到构筑时给定的位阶后,它便会施放给定的$(hex)咒术$(),同时根据按下左键或右键分别以 False 或 True 作为起始栈。如果按键之间间隔过久,当次“施法”便会直接取消。",
+ "hexical.page.conjure_staff.2": "此法术并不昂贵,仅需消耗 1 个紫水晶碎片,同时消耗媒质储库所需的$(media)媒质$()量。所得产物操作便捷、反应迅速,具有多种用途,变化的可能性无穷无尽,且不像其他$(l:items/hexcasting)$(item)施法物品$()那样需要冷却时间。$(br2)这种法杖的能力还不止于此,它们还拥有一个仅对法杖自身开放的 iota 存储位置。",
+ "hexcasting.spell.hexical:read_staff": "法杖之精思",
+ "hexical.page.read_staff.summary": "从$(item)构筑的法杖$()的内部存储读出 iota。",
+ "hexcasting.spell.hexical:write_staff": "法杖之策略",
+ "hexical.page.write_staff.summary": "向$(item)构筑的法杖$()的内部存储写入 iota,不接受代表玩家的 iota。",
+ "hexcasting.spell.hexical:with_conjured_staff": "魔杖之精思",
+ "hexical.page.with_conjured_staff.summary": "检验当前$(hex)咒术$()是否由构筑的法杖施放。",
+ "hexical.page.conjure_staff.3": "副手持有特定物品时构筑$(item)法杖$(),则所得$(item)法杖$()的外形会与该物品靠拢。目前我发现的物品与外形对应关系为:小麦(四叶草),鹦鹉螺壳(螺壳),钟(手摇铃),绊线钩(钥匙),玻璃(镜子)。",
+
+ "hexical.page.pyrotechnics.title": "烟花工艺",
+ "hexical.page.pyrotechnics.0": "我发现了一些构筑烟花的法术。$(media)媒质$()在这些图案周围欢欣地嗡鸣着,就好像它们曾用于庆典一样;它们用作武器的威力也可谓令人震悚。$(br2)$(o)什么都别说了。先欣赏烟花吧。$()",
+ "hexcasting.spell.hexical:simulate_firework": "模拟烟花",
+ "hexical.page.simulate_firework.summary": "分析另一只手中的烟火之星,并构筑一道烟花,位置、速度、与火药量有关的飞行时间均由烟火之星决定。消耗 1 个紫水晶碎片,每份火药额外消耗 1 个紫水晶粉。",
+ "hexcasting.spell.hexical:conjure_firework": "构筑烟花",
+ "hexical.page.conjure_firework.summary": "$(br)根据我给定的参数构筑一道烟花。这是我迄今为止发现的最复杂的法术之一。消耗量与其他烟花法术一致。",
+ "hexical.page.conjure_firework.0": "$(o)基础理论$()$(br2)前两个参数分别是位置和速度。第三个参数决定其飞行时间,需是 1 与 3 之间的数。可以认为是加入烟花火箭的火药份数。$(br2)剩余的参数可看作虚拟烟火之星的各特征。",
+ "hexical.page.conjure_firework.1": "$(o)形状效果$()$(br2)第四个参数控制烟花的形状,需是 0 与 3 之间的数。$(br)- 0 对应简单的小型球状效果。$(br)- 1 对应大型球状效果。$(br)- 2 对应星形效果。$(br)- 3 对应大型苦力怕状效果。",
+ "hexical.page.conjure_firework.2": "$(o)颜色$()$(br2)第五和第六个参数是$(l:hexical:patterns/spells/dyes)染料$()列表。第一个列表控制烟花的“初始”颜色,第二个列表控制烟花消散时的“渐变”颜色。第一列表中需至少含有一个染料;若不需“渐变”,第二个列表可以留空。",
+ "hexical.page.conjure_firework.3": "$(o)附加效果$()$(br2)第七个参数控制烟花粒子是否闪烁,相当于加入荧石与否。$(br2)第八个参数控制烟花粒子是否留下踪迹,相当于加入钻石与否。",
+
+ "hexical.page.circle_spells.title": "法术环法术",
+ "hexical.page.circle_spells.0": "媒质流穿梭于法术环中,法术环囊括的区域因而充盈着$(media)媒质$(),灵活控制其中事物也就不再是难事。我将我所遇到或创造的法术记在后页,它们只可由$(l:greatwork/spellcircles)法术环$()施放。",
+ "hexcasting.spell.hexical:displace": "转移",
+ "hexical.page.displace.summary": "无需任何媒质,就可将实体传送至环中任意一处。与$(l:patterns/great_spells/teleport)$(action)卓越传送$()不同在于,此法术接受的是绝对坐标。",
+
+ "hexical.page.evocation.title": "唤咒",
+ "hexical.page.evocation.0": "媒质是思维的能量,则逻辑推理可得,我应当能够直接把$(o)脑海中$()的魔法变为现实,而不需要挥舞法杖,毕竟我在最优状态下相当于 2 个充能紫水晶,是$(l:items/staff)$(item)法杖$()的两倍。我的意识目前还不够强大,无法随意将想法化作现实,不过已蚀刻入意识的$(hex)咒术$()还是可以的。这么做会消耗我物品栏中的$(media)媒质$()。",
+ "hexcasting.spell.hexical:internalize_hex": "内化咒术",
+ "hexical.page.internalize_hex.summary": "内化一份$(hex)咒术$(),此后按住“R”键 1 秒即可唤咒施放,不需持有法杖。内化过程消耗 1 个充能紫水晶。",
+ "hexcasting.spell.hexical:is_evoking": "唤魔者之精思",
+ "hexical.page.is_evoking.summary": "压入玩家唤咒的时间,未在唤咒则为 -1。",
+ "hexcasting.spell.hexical:with_evocation": "唤咒之精思",
+ "hexical.page.with_evocation.summary": "检验当前咒术是否使用唤咒施放。",
+ "hexical.page.evocation.1": "记载有这项技术的古代文本还写有其他琐事。曾经的$(hex)咒术师们$()唤咒时无需施放$(hex)咒术$(),而是会在某种集会或集体仪式中合唱。也有人曾试验过,是否有法术能将$(hex)咒术$()蚀刻入$(o)村民$(),以给予他们操控$(media)媒质$()的手段。但这些试验的结果从未见诸文献,抑或是已经散佚殆尽。",
+
+ "hexcasting.spell.hexical:greater_blink": "卓越闪现",
+ "hexical.page.greater_blink.0": "卓越闪现比卓越传送要便宜许多。它不具有抵达时全身物品散落的风险。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
+ "hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗 2 个紫水晶粉。",
+ "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往我面朝的方向传送 1 格。向量 (0, 1, 0) 会往我头顶的法向传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。",
+ "hexical.page.greater_blink.2": "奇特的是,这一闪现会将我的足部移动至该位置,也许能够少去射线追踪后传送到方块内部的麻烦。如果我需要进行多次闪现,则这一特性必须纳入考量范围。$(br2)$(o)长跳特!比你想的还要久——$()",
+
+ "hexical.page.meshes.title": "网斑",
+ "hexical.page.meshes.0": "网斑是$(l:hexical:patterns/spells/specks)视斑$()的进化形态。不会再受 iota 和图案的限制,也无需屈居于二维平面,网斑接受三维空间中的向量列表,由此带来的创意无穷无尽。网斑也会对大多数操纵视斑的图案有反应。",
+ "hexcasting.spell.hexical:conjure_mesh": "构筑网斑",
+ "hexical.page.conjure_mesh.summary": "在所给位置构筑一个网斑,并压入一个网斑实体。消耗 1 个紫水晶粉。",
+ "hexical.page.meshes.1": "网斑只在编织后才有外形。用以构筑网斑的向量列表无需遵守太多规则:列表的长度不能超出 32 个向量,向量的模长也必须小于 10。网斑会将各向量识别为相对向量,而后依次连接它们。",
+ "hexcasting.spell.hexical:weave_mesh": "编织网斑",
+ "hexical.page.weave_mesh.summary": "接受一个向量列表,需遵守前页指定的规则,并将网斑编织成所给形状,无需消耗媒质。",
+ "hexcasting.spell.hexical:read_mesh": "纠缠之纯化",
+ "hexical.page.read_mesh.summary": "读取网斑的外形,返回相对向量列表。可用于复制网斑。",
+
+ "hexical.category.scrying": "探知",
+ "hexical.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。这些图案可用来卜取一系列信息,方块和实体的类型、药水效果、天气、食物的营养、我在疾跑与否、$(o)方块的爆炸抗性$()等都在其列。虽然这些操作可能不如其他大多数$(hex)咒术$()用处大,但有它们在也不错,我将来也许会用到。",
+
+ "hexical.page.blocks.title": "方块",
+ "hexcasting.spell.hexical:block_hardness": "矿工之纯化",
+ "hexical.page.block_hardness.summary": "压入挖掘给定方块的难易程度。",
+ "hexcasting.spell.hexical:block_blast_resistance": "爆破兵之纯化",
+ "hexical.page.block_blast_resistance.summary": "压入方块对爆炸的抗性。",
+ "hexcasting.spell.hexical:blockstate_waterlogged": "管道工之纯化",
+ "hexical.page.blockstate_waterlogged.summary": "检验方块是否含水。若方块无法含水,则返回 Null。",
+ "hexcasting.spell.hexical:blockstate_rotation": "方向之纯化",
+ "hexical.page.blockstate_rotation.summary": "压入方块的朝向向量。若方块无朝向向量,则返回 Null。",
+ "hexcasting.spell.hexical:blockstate_crop": "农夫之纯化",
+ "hexical.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的成熟程度,对蜂巢、堆肥桶、炼药锅同样有效。奇怪的是,对蛋糕也有效。",
+ "hexcasting.spell.hexical:blockstate_glow": "发光之纯化",
+ "hexical.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有熔炉、红石火把、灯笼、营火等。",
+ "hexcasting.spell.hexical:blockstate_lock": "锁之纯化",
+ "hexical.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有门、活板门、栅栏门、木桶等。",
+ "hexcasting.spell.hexical:blockstate_turn": "角度之纯化",
+ "hexical.page.blockstate_turn.summary": "压入一个数,对应告示牌、头颅、旗帜的旋转方向。",
+ "hexcasting.spell.hexical:blockstate_bunch": "叠放之纯化",
+ "hexical.page.blockstate_bunch.summary": "返回方块的叠放数,无法叠放则返回 Null。仅对蜡烛、海泡菜、海龟蛋有效。",
+ "hexcasting.spell.hexical:blockstate_book": "书之纯化",
+ "hexical.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。有传言称对某种奇妙的书架也有效。",
+
+ "hexical.page.enchantments.title": "魔咒",
+ "hexcasting.spell.hexical:get_enchantments": "奇术师之纯化",
+ "hexical.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
+ "hexcasting.spell.hexical:get_enchantment_strength": "咒能之馏化",
+ "hexical.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
+
+ "hexical.page.entities.title": "实体",
+ "hexcasting.spell.hexical:get_health": "生命力之纯化",
+ "hexical.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
+ "hexcasting.spell.hexical:get_max_health": "健康之纯化",
+ "hexical.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
+ "hexcasting.spell.hexical:get_air": "窒息之纯化",
+ "hexical.page.get_air.summary": "压入实体距离窒息剩余的秒数。对脱水的鱼和溺水的陆地生物均有效。",
+ "hexcasting.spell.hexical:get_max_air": "双肺之纯化",
+ "hexical.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少秒开始窒息。",
+ "hexcasting.spell.hexical:get_player_hunger": "饥饿之纯化",
+ "hexical.page.get_player_hunger.summary": "返回玩家实体的饥饿值。",
+ "hexcasting.spell.hexical:get_player_saturation": "耐力之纯化",
+ "hexical.page.get_player_saturation.summary": "返回我的饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.spell.hexical:is_burning": "炼狱之纯化",
+ "hexical.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
+ "hexcasting.spell.hexical:burning_time": "炼狱之纯化,第二型",
+ "hexical.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余的时间。",
+ "hexcasting.spell.hexical:is_wet": "末影人之纯化",
+ "hexical.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
+ "hexcasting.spell.hexical:is_baby": "青春之纯化",
+ "hexical.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对盔甲架也有效。",
+ "hexcasting.spell.hexical:breedable": "繁衍之纯化",
+ "hexical.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 Null。",
+ "hexcasting.spell.hexical:is_sleeping": "树懒之纯化",
+ "hexical.page.is_sleeping.summary": "检验实体是否在睡眠状态。对玩家、猫、狐狸、以及一系列其他生物有效。",
+ "hexcasting.spell.hexical:is_sprinting": "赛车手之纯化",
+ "hexical.page.is_sprinting.summary": "检验实体是否在疾跑。速泳和疾跑后离地均算作疾跑,对猫、狐狸等也有效。",
+
+ "hexical.page.food.title": "食物",
+ "hexcasting.spell.hexical:edible": "可食性之纯化",
+ "hexical.page.edible.summary": "接受一个物品标识,检验它是否可食用。",
+ "hexcasting.spell.hexical:get_hunger": "卡路里之纯化",
+ "hexical.page.get_hunger.summary": "接受一个物品标识,返回它带来的饱腹感的量。",
+ "hexcasting.spell.hexical:get_saturation": "饱和之纯化",
+ "hexical.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.spell.hexical:is_meat": "肉类之纯化",
+ "hexical.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类(狼能否食用)。",
+ "hexcasting.spell.hexical:is_snack": "甜点之纯化",
+ "hexical.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食(可以迅速食用)。",
+
+ "hexical.page.identifiers.title": "标识",
+ "hexical.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
+ "hexcasting.spell.hexical:identify": "侦探之纯化",
+ "hexical.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
+ "hexical.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
+ "hexcasting.spell.hexical:recognize": "识别器之纯化",
+ "hexical.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
+ "hexcasting.spell.hexical:get_mainhand_stack": "工具之纯化",
+ "hexical.page.get_mainhand_stack.summary": "返回主手物品的类型。",
+ "hexcasting.spell.hexical:get_offhand_stack": "配饰之纯化",
+ "hexical.page.get_offhand_stack.summary": "返回副手物品的类型。",
+
+ "hexical.page.item.title": "物品",
+ "hexcasting.spell.hexical:count_stack": "仓储之纯化",
+ "hexical.page.count_stack.summary": "接受一个物品实体,返回其中物品数量。",
+ "hexcasting.spell.hexical:count_max_stack": "库房之纯化",
+ "hexical.page.count_max_stack.summary": "接受一个物品实体,返回其中最多可堆叠多少物品。",
+ "hexcasting.spell.hexical:damage_stack": "损耗之纯化",
+ "hexical.page.damage_stack.summary": "接受一个物品实体,返回物品剩余的耐久度。",
+ "hexcasting.spell.hexical:damage_max_stack": "脆弱性之纯化",
+ "hexical.page.damage_max_stack.summary": "接受一个物品实体,返回物品的耐久度上限。",
+
+ "hexical.page.status_effects.title": "状态效果",
+ "hexcasting.spell.hexical:get_effects_entity": "诊断之纯化",
+ "hexical.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
+ "hexcasting.spell.hexical:get_effects_item": "处方之纯化",
+ "hexical.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
+ "hexcasting.spell.hexical:get_effect_category": "药性之纯化",
+ "hexical.page.get_effect_category.summary": "获取某效果对承受者造成效应“良性”与否。-1 为负面,0 为中性,1 为正面。",
+ "hexcasting.spell.hexical:get_effect_amplifier": "浓度之馏化",
+ "hexical.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 Null。",
+ "hexcasting.spell.hexical:get_effect_duration": "效除之馏化",
+ "hexical.page.get_effect_duration.summary": "获取效果的持续时间,以秒计,无给定效果则返回 Null。",
+
+ "hexical.page.world.title": "世界",
+ "hexcasting.spell.hexical:get_light": "光照之纯化",
+ "hexical.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
+ "hexcasting.spell.hexical:get_weather": "天气学家之精思",
+ "hexical.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
+ "hexcasting.spell.hexical:get_time": "时间之精思",
+ "hexical.page.get_time.summary": "压入世界经过的时间,以秒计。",
+ "hexcasting.spell.hexical:get_biome": "地理之纯化",
+ "hexical.page.get_biome.summary": "返回给定位置向量处生物群系的标识。",
+ "hexcasting.spell.hexical:get_dimension": "位面之精思",
+ "hexical.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。"
+}
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
new file mode 100644
index 000000000000..3549ce937018
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -0,0 +1,679 @@
+{
+ "advancements.hexical.arch_lamp.title": "守护进程",
+ "advancements.hexical.arch_lamp.description": "获得大精灵神灯。",
+
+ "advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
+ "advancements.hexical.reload_lamp.description": "为神灯重新充能。",
+ "advancements.hexical.educate_genie.title": "新秩序",
+ "advancements.hexical.educate_genie.description": "向精灵传授新的指示。",
+ "advancements.hexical.lamp.title": "可造之材",
+ "advancements.hexical.lamp.description": "获得精灵神灯。",
+ "advancements.hexical.augmented_reality.title": "增强现实",
+ "advancements.hexical.augmented_reality.description": "构筑一个视斑。",
+ "advancements.hexical.diy_conjuring.title": "构筑DIY!",
+ "advancements.hexical.diy_conjuring.description": "为术士方块附加改进。",
+ "advancements.hexical.conjure_hexxy.title": "构筑Hexxy",
+ "advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态。",
+ "advancements.hexical.hallucinate.title": "只在我的脑海里",
+ "advancements.hexical.hallucinate.description": "播放一段只有你能听见的声音!",
+ "advancements.hexical.media_slurp.title": "迷幻",
+ "advancements.hexical.media_slurp.description": "“你觉得有些东西不太对劲。”",
+
+ "block.hexical.hex_candle": "咒术蜡烛",
+ "block.hexical.mage_block": "术师方块",
+ "block.hexical.media_jar": "媒质罐",
+ "death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
+ "death.attack.magic_missile.item": "%1$s的魔法存在被%2$s用%3$s刺穿了",
+ "death.attack.spike": "%1$s被%2$s刺穿了",
+ "death.attack.spike.item": "%1$s被%2$s用%3$s刺穿了",
+ "entity.hexical.living_scroll": "活线卷轴",
+ "entity.hexical.magic_missile": "魔法飞弹",
+ "entity.hexical.mesh": "网斑",
+ "entity.hexical.speck": "视斑",
+ "entity.hexical.spike": "紫水晶尖刺",
+ "key.categories.hexical": "Hexical",
+ "key.hexical.evoke": "唤咒",
+ "key.hexical.telepathy": "心灵感应",
+ "item.hexical.arch_lamp": "大精灵神灯",
+ "item.hexical.conjured_compass": "构筑的指南针",
+ "item.hexical.conjured_staff": "构筑的法杖",
+ "item.hexical.grimoire": "咒典",
+ "item.hexical.hexburst": "咒术星爆糖",
+ "item.hexical.hextito": "咒力多滋",
+ "item.hexical.lamp": "手持式精灵神灯",
+ "item.hexical.gauntlet_staff": "护手法杖",
+ "item.hexical.lightning_rod_staff": "避雷针法杖",
+ "item.hexical.living_scroll_small": "小型活线卷轴",
+ "item.hexical.living_scroll_medium": "中型活线卷轴",
+ "item.hexical.living_scroll_large": "大型活线卷轴",
+ "itemGroup.hexical.general": "Hexical",
+ "subtitles.hexical.evoking_murmur": "玩家:吟唱",
+ "subtitles.hexical.evoking_casts": "玩家:施法",
+ "subtitles.hexical.lamp_activate": "神灯:启动",
+ "subtitles.hexical.lamp_deactivate": "神灯:终止",
+ "subtitles.hexical.sudden_realization": "点子:出现",
+ "subtitles.hexical.player_slurp": "玩家:啜饮",
+ "subtitles.hexical.candle_flares": "蜡烛:噼啪作响",
+ "subtitles.hexical.replenish_air": "空气:出现",
+ "tooltip.hexical.scroll_aged": "陈化",
+ "tooltip.hexical.scroll_glow": "发光",
+ "tooltip.hexical.scroll_vanished": "隐消",
+ "particle.minecraft.soul_7": "",
+ "misc.hexical.media_vision": "",
+
+ "hexical.autograph.header": "由以下人士亲笔签名:",
+
+ "hexical.fortune.0": "必然如此。",
+ "hexical.fortune.1": "绝对可以。",
+ "hexical.fortune.2": "毫无疑问。",
+ "hexical.fortune.3": "当然。",
+ "hexical.fortune.4": "大可放心。",
+ "hexical.fortune.5": "我想是的。",
+ "hexical.fortune.6": "很有可能。",
+ "hexical.fortune.7": "前景很好。",
+ "hexical.fortune.8": "是。",
+ "hexical.fortune.9": "如你所想。",
+ "hexical.fortune.10": "回应不太清晰,再试一次吧。",
+ "hexical.fortune.11": "请稍后再问。",
+ "hexical.fortune.12": "天机不可泄露。",
+ "hexical.fortune.13": "无法预测。",
+ "hexical.fortune.14": "集中注意力,再问一遍。",
+ "hexical.fortune.15": "想得美。",
+ "hexical.fortune.16": "我看不行。",
+ "hexical.fortune.17": "资料表明不行。",
+ "hexical.fortune.18": "前景不太好。",
+ "hexical.fortune.19": "很悬。",
+
+ "hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
+ "hexcasting.mishap.bad_block.mage_block": "一个术师方块",
+ "hexcasting.mishap.bad_block.prestidigitation": "一个对戏法敏感的方块",
+ "hexcasting.mishap.bad_item.grimoire": "一个咒典",
+ "hexcasting.mishap.bad_item.firework_star": "一个烟火之星",
+ "hexcasting.mishap.bad_item.has_brain": "一个能够思考的村民",
+ "hexcasting.mishap.bad_item.smart_villager": "一个老手或更高等级的村民",
+ "hexcasting.mishap.bad_item.lamp_full": "一个带有媒质的神灯",
+ "hexcasting.mishap.bad_item.lamp": "一个空神灯",
+ "hexcasting.mishap.bad_item.living_scroll": "一个活线卷轴",
+ "hexcasting.mishap.bad_item.prestidigitation": "一个对戏法敏感的实体",
+ "hexcasting.mishap.bad_item.mesh": "一个网斑",
+ "hexcasting.mishap.bad_item.speck": "一个视斑",
+ "hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
+ "hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
+ "hexcasting.mishap.invalid_value.solid_block": "一个非空气方块",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
+ "hexcasting.mishap.invalid_value.pattern_list": "一个仅由图案组成的列表",
+ "hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
+ "hexcasting.mishap.invalid_value.class.dye": "一个染料",
+ "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
+ "hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
+ "hexcasting.mishap.invalid_value.true_dye": "一个有色染料",
+ "hexcasting.mishap.invalid_value.to_pigment": "一个有色染料、一个代表染色剂物品的标识、一个含有染色剂的物品实体,或一个玩家",
+ "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
+ "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
+ "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
+ "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
+ "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
+ "hexcasting.mishap.invalid_value.potion_holding": "一个食物、药水、或药箭物品实体",
+ "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
+ "hexcasting.mishap.invalid_value.integer_natural": "一个大于0的整数",
+ "hexcasting.mishap.invalid_value.recognizable": "一个带有额外信息的目标",
+ "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
+ "hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
+ "hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
+ "hexcasting.mishap.hexical:active_arch_lamp": "物品栏中本应有一个启动的大精灵神灯。",
+ "hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
+ "hexcasting.mishap.hexical:inedible": "魔袋中的物品无法食用。",
+ "hexcasting.mishap.hexical:needs_chorus_fruit": "物品栏中需有紫颂果。",
+ "hexcasting.mishap.hexical:needs_conjured_staff": "本应由构筑的法杖施放。",
+ "hexcasting.mishap.hexical:needs_lamp": "本应由精灵神灯施放。",
+ "hexcasting.mishap.hexical:needs_hand_lamp": "本应由手持式精灵神灯施放。",
+ "hexcasting.mishap.hexical:needs_arch_lamp": "本应由大精灵神灯施放。",
+ "hexcasting.mishap.hexical:needs_skippable": "本应使用于西西弗斯之策略或托特之策略中。",
+ "hexcasting.mishap.hexical:needs_thoth": "本应使用于托特之策略中。",
+ "hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
+ "hexcasting.mishap.hexical:themis": "伪栈栈顶本应存在一个数。",
+
+ "hexcasting.spell.book.hexical:theodolite": "经纬仪之纯化",
+ "hexcasting.spell.book.hexical:damage_stack": "损耗之纯化",
+ "hexcasting.spell.book.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
+ "hexcasting.spell.book.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
+ "hexcasting.spell.book.hexical:get_effect_amplifier": "浓度之馏化",
+ "hexcasting.spell.book.hexical:get_effects_item": "处方之纯化",
+ "hexcasting.spell.book.hexical:get_enchantments": "奇术师之纯化",
+ "hexcasting.spell.book.hexical:breedable": "繁衍之纯化",
+ "hexcasting.spell.book.hexical:get_hand_lamp_position": "精灵之精思:空间型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
+ "hexcasting.spell.book.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
+ "hexcasting.spell.book.hexical:get_biome": "地理之纯化",
+ "hexcasting.spell.book.hexical:get_weather": "天气学家之精思",
+ "hexcasting.spell.book.hexical:recognize": "识别器之纯化",
+ "hexcasting.spell.book.hexical:shuffle_pattern": "图案制作师之馏化",
+ "hexcasting.spell.book.hexical:zone_specklike": "区域之馏化:类视斑",
+ "hexcasting.spell.book.hexical:modify_block_bouncy": "弹性",
+ "hexcasting.spell.book.hexical:modify_block_energized": "激能",
+ "hexcasting.spell.book.hexical:modify_block_ephemeral": "消逝",
+ "hexcasting.spell.book.hexical:modify_block_invisible": "隐形",
+ "hexcasting.spell.book.hexical:modify_block_replaceable": "可替",
+ "hexcasting.spell.book.hexical:modify_block_semipermeable": "半透",
+ "hexcasting.spell.book.hexical:modify_block_volatile": "失稳",
+ "hexcasting.spell.book.hexical:read_shelf": "图书管理员之纯化,第二型",
+
+ "hexical.page.hexical_changes.title": "Hexical 中的改动",
+ "hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()……甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()本身也变得更可塑、更$(o)可操纵$(),产生更为精确精细的媒质效果已不是难事。",
+ "hexical.page.hexical_changes.1": "我的工具也更顺手了。我注意到,使用$(l:items/staff)$(item)法杖$()时耗费的注意力减少了,我也能在使用时四处走动;之后射线追踪的时候目标就再也跑不出我的视线范围了。不过我也不能太过放松,自然对我失误的惩罚力度依然如旧。我现在还可以用$(l:patterns/readwrite#hexcasting:write)书吏之策略$()直接向$(l:items/abacus)$(item)算盘$()写入。",
+ "hexical.page.lightning_rod_staff.0": "我往一支避雷针的末端嵌了一整块紫水晶,就得到了这种造型令人印象深刻的$(l:items/staff)$(item)法杖$()。它拿起来有些沉重,但用起来仿佛在$(o)号令闪电$()。",
+ "hexical.page.lightning_rod_staff.1": "$(o)我知道世上有困难$(br)而且不止一种。$(br)有些自前路而来$(br)有些从身后接近。$(br2)但我买了根球棍。$(br)你看,我已经准备完毕。$(br)现在我的那些麻烦事$(br)马上就要有$(l)麻烦$()了!",
+ "hexical.page.gauntlet_staff.0": "法杖很重,拿着也不趁手。如果对其失去了兴趣,可以换成这个护手一样的“$(l:items/staff)$(item)法杖$()”,以此亲手感知、亲手操控媒质。",
+ "hexical.page.gauntlet_staff.1": "$(o)等等,手指是什么东西?$()",
+
+ "hexical.page.grimoire.title": "咒典",
+ "hexical.page.grimoire.0": "以充能紫水晶和$(l:items/edified)$(item)启迪木$()$()给$(item)附魔书$()装面,$(item)附魔书$()便能将$(media)媒质$()困在书页内部,就像一间回音室。之后可向其中引入图案至图案列表的绑定关系,以让$(item)咒典$()内部的$(media)媒质$()无限反弹。",
+ "hexical.page.grimoire.1": "在物品栏中放有$(item)咒典$(),再通过$(l:items/staff)$(item)法杖$()绘制其中与图案列表关联的$(l:patterns/patterns_as_iotas)图案$(),该图案会$(o)扩展$()成对应列表,同时发出一阵微弱的$(hex)咒术$()施放声。如此就为繁重的咒术(比如射线追踪曼怛罗和大型图案)创建了捷径。$(item)咒典$()甚至能截获自然提供的图案,可以完全覆写,也可加入额外功能。$(br2)$(o)要是想读一本还没写出来的书,那就亲自去写。$()",
+ "hexcasting.spell.hexical:write_grimoire": "写入咒典",
+ "hexical.page.write_grimoire.summary": "向副手$(item)咒典$()写入一个图案至图案列表的绑定关系。",
+ "hexcasting.spell.hexical:erase_grimoire": "擦除咒典",
+ "hexical.page.erase_grimoire.summary": "若副手持有$(item)咒典$(),擦除其中相应的图案列表绑定。",
+ "hexcasting.spell.hexical:index_grimoire": "档案员之精思",
+ "hexical.page.index_grimoire.summary": "获取$(item)咒典$()中所有图案的列表。",
+
+ "hexical.page.hex_candle.title": "咒术蜡烛",
+ "hexical.page.hex_candle.0": "首次以$(l:hexical:patterns/spells/prestidigitation)魔法$()或$(item)打火石$()点燃后,这些漂亮的小蜡烛上会燃起苍白色的火焰。若有人与其交互,它会复制该人的染色剂。也可以手持染色剂物品右击直接改变它的颜色。熄灭则需潜行右击。",
+
+ "hexical.page.living_scroll.title": "活线卷轴",
+ "hexical.page.living_scroll.0": "活线卷轴中混有一小份紫水晶,其上墨迹会像$(l:items/staff)$(item)法杖$()绘制出的图案那样颤动。活线卷轴的神奇之处还不止于此,它还能展示图案列表。$(br2)$(o)不带点疯劲,怎么能叫作家呢?$()",
+ "hexical.page.living_scroll.1": "卷轴上的图案可随意重绘,也可从卷轴中读出图案。这类卷轴只接受图案列表,单个图案 iota 会自动置入列表之中。写有图案列表时,活线卷轴会依次展示单个图案。图案每秒切换一次,所有活线卷轴都会同步切换。就算是在不同时间点向两份卷轴写入同一图案列表,最后两者也会建立同步。",
+ "hexical.page.living_scroll.2": "后页记录了一些用来操纵活线卷轴的法术。再次施放法术就能消除大部分此类法术产生的效果。它们都无需消耗媒质。",
+ "hexcasting.spell.hexical:age_scroll": "陈化卷轴",
+ "hexical.page.age_scroll.summary": "令卷轴的纸页泛黄,产物和我找到的一些远古卷轴极为相似。",
+ "hexcasting.spell.hexical:glow_scroll": "点亮墨迹",
+ "hexical.page.glow_scroll.summary": "使得活线卷轴的墨迹在暗处发光。",
+ "hexcasting.spell.hexical:color_scroll": "色染墨迹",
+ "hexical.page.color_scroll.summary": "改变活线卷轴墨迹的颜色,具体由所给向量决定;各分量对应红、绿、蓝,取值范围为 0 到 1。",
+ "hexcasting.spell.hexical:vanish_scroll": "隐消卷轴",
+ "hexical.page.vanish_scroll.summary": "使得卷轴的纸张隐形,图案保留不变,看上去就像图案被蚀刻在方块表面一样。",
+
+ "hexical.page.media_jar.title": "媒质罐",
+ "hexical.page.media_jar.0": "我制作了这个能盛液态$(media)媒质$()的小装饰件,它会闪闪发光。但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,从而造出了瓶装的液态$(media)媒质$()。",
+ "hexical.page.media_jar.1": "之前的$(hex)咒术师们$()还制造了一种类似的物品,他们通常会饮用其中液体,以此预知未来。瓶中装着的可是浸润于万事万物的思维能量,它给出的答案也许值得一听。$(br2)$(o)如你所想。$()",
+
+ "hexical.category.lamp": "精灵神灯",
+ "hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。传说中有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,因此我分出了这一章,用于记录我对它的研究。",
+
+ "hexcasting.spell.hexical:lamp_finale": "终局之精思",
+ "hexical.page.lamp_finale.hand": "放下神灯的那一刹那,神灯会额外施法一次。这个图案能判断精灵的施法是否是最后一次,并据此做出反应。",
+ "hexical.page.lamp_finale.arch": "停止大精灵神灯时,它会额外施法一次。我可以使用这个图案来判断某一次施法是否是最后的残响。",
+
+ "hexical.page.mysterious_lamp.title": "神秘的灯壶",
+ "hexical.page.mysterious_lamp.0": "我终于找到了上千年传言中说的东西了!如此强大的物件居然是在一位流浪商人的手里。这件神灯仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。神灯里还有一个实体,它的施法能力与我相当。",
+ "hexcasting.spell.hexical:educate_genie": "教导精灵",
+ "hexical.page.educate_genie.summary": "将我的想法教给实体。而因为我是在$(o)教导$()实体,而非$(o)蚀刻$()$(l:items/hexcasting)$(item)施法物品$(),交予精灵的$(hex)咒术$()可在后续任意时刻任意修改,而不会因此损失$(media)媒质$()。",
+
+ "hexical.page.new_possibilities.title": "全新的可能性",
+ "hexical.page.new_possibilities.0": "$(o)$(l)每一时刻$()它都在施法。往里写入法术后,迎面而来的是一束精确而又永不停歇的$(media)媒质$()流。我估计施法速度大概是在每秒二十次。神灯中的存在会以极高的效率施法,并且不会像其他施法手段那样产生大量声音和粒子。",
+ "hexical.page.new_possibilities.1": "我设计了一些配合神灯的有用图案,见后续页。这些图案只应该由神灯中的精灵运行,否则招致的便是“冒充精灵”事故,施法物品会脱手,并产生红色火花。$(br2)$(o)是的,但你的$(l)$(o)咒术师$()$(o)总是关注能不能做到,而不想想应不应该这么做。$()",
+ "hexcasting.spell.hexical:get_hand_lamp_position": "精灵之精思:空间型",
+ "hexical.page.get_hand_lamp_position.summary": "将我开始使用神灯时的位置压入栈顶。",
+ "hexcasting.spell.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
+ "hexical.page.get_hand_lamp_rotation.summary": "将我开始使用神灯时的朝向压入栈顶。",
+ "hexcasting.spell.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
+ "hexical.page.get_hand_lamp_velocity.summary": "将我开始使用神灯时的速度压入栈顶。",
+ "hexcasting.spell.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
+ "hexical.page.get_hand_lamp_use_time.summary": "将神灯使用的时间压入栈顶。该数除以 20 后即为开始使用神灯后经过的秒数。",
+ "hexcasting.spell.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
+ "hexical.page.get_hand_lamp_media.summary": "将神灯中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
+ "hexcasting.spell.hexical:with_hand_lamp": "精灵之精思",
+ "hexical.page.with_hand_lamp.summary": "检验当前$(hex)咒术$()是否由手持式精灵神灯施放。",
+ "hexcasting.spell.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
+ "hexical.page.set_hand_lamp_storage.summary": "将神灯的内部存储设为任意 iota。奇特的是,这个图案不会招致“违犯他人”事故,也许是因为使用神灯时需要我维持注意力集中吧。",
+ "hexcasting.spell.hexical:set_hand_lamp_storage": "精灵之策略",
+ "hexical.page.get_hand_lamp_storage.summary": "取出手持式神灯内部存储的 iota,默认返回 Null。",
+
+ "hexical.page.offerings.title": "仪献意识",
+ "hexical.page.offerings.0": "施放咒术会使得意识失去思考的能量,镇定知觉,麻痹神经元……真是叫人欲罢不能。对于$(l:items/staff)$(item)法杖$()、$(l:items/hexcasting)$(item)施法物品$()、法术环来说,施法的速度足够缓慢,能给意识喘息的时间;促动石则一经校准无需再次更换。不过论及神灯的施法速度,那就算是最高效的意识也难以为继。",
+ "hexical.page.offerings.1": "神灯会困住精灵,向里面重新充能就会将其释放出来。因此,为精灵神灯重新充能的唯一手段,便是同时替换$(media)媒质$()$(o)和$()精灵,强令一个全新的意识代替原有的工作。用一个村民就可以了。这也是我所制造的法术的用途。$(br2)$(o)我的名字?我的名字是……哦天哪,我为什么记不起我的名字了?$()",
+ "hexcasting.spell.hexical:offer_mind": "制造精灵",
+ "hexical.page.offer_mind.summary": "可由我施放,能从村民那里$(o)借来$()经验和记忆,交给我副手中的神灯。图案本身需要消耗 1 个充能紫水晶,同时消耗我给予精灵的$(media)媒质$()。",
+ "hexical.page.offerings.2": "值得留意的是,这个法术$(o)不会$()杀死村民,而是会从其意识中分出一部分用作精灵的替代品。村民的主意识则只会失去一部分记忆。我听过传言称,古代的$(hex)咒术师们$()会以此像种庄稼一样$(o)培育$()村民的意识,再消耗育成的意识给神灯充能,并留出时间供村民重新学习他们失去的意识。",
+ "hexical.page.offerings.3": "不是所有村民都能变成精灵。我推测,那些不及老手等级的村民不具有值得使用的媒质,对他们施放的法术也会直接失效。而在将村民的大部分知识$(o)优化$()到施法方向后,专家大概不会比老手强出多少。不过,某些技能应该还是会影响到施法的质量。笔记见下页。",
+ "hexical.page.offerings.4": "根深蒂固的意识和生来具有的能力似乎不受优化流程的影响。大师村民们的技艺已臻完美,知识也已烂熟于心,因此他们的施法能力有了质的飞跃。一生都在周游世界的流浪商人则极其熟稔于探索,由他们制成的神灯也会反应出这一特质。",
+
+ "hexical.page.arch_lamps.title": "大精灵神灯",
+ "hexical.page.arch_lamps.0": "大师级村民的意识不只是丢失意识,而是会离开身体,完全取代原本的精灵。而因为施放法术的是独立的实体,神灯应该能在我没手持的时候施法。这些大精灵神灯对应的操作是“启动”和“停止”,而非“使用”。而当其处于我物品栏中时,就算没有我的输入,它们也会每时每刻施法。",
+ "hexical.page.arch_lamps.1": "大精灵神灯的输出太过庞大,甚至能令我周围的空气进入$(media)媒质$()饱和状态……不可思议。不幸的是,若在我物品栏中有两个神灯同时处于启动状态,它们的回响会相互碰撞,致使其停止,并使得物品栏中所有大精灵神灯几秒内无法使用。同一时刻应当只有一个大精灵神灯启动,但此时还可以使用一个普通神灯。",
+ "hexical.page.arch_lamps.2": "$(o)我是一大团肉乎乎的东西,体表圆滑,没有嘴。原来曾经是眼睛的地方如今是两个冒着白烟的洞,两根橡胶棒似的东西曾经是我的双臂。肉向四周摊开变成一堆没有腿的肉团,柔软滑腻。$(br2)我没有嘴,但我必须呐喊。$()",
+ "hexcasting.spell.hexical:activate_arch_lamp": "启动大精灵",
+ "hexical.page.activate_arch_lamp.summary": "此图案可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。停止所有大精灵神灯,并启动一个先前未启动的。",
+ "hexcasting.spell.hexical:terminate_arch_lamp": "终止大精灵",
+ "hexical.page.terminate_arch_lamp.summary": "此图案可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。停止当前启动的大精灵神灯。",
+ "hexcasting.spell.hexical:has_arch_lamp": "大精灵之纯化",
+ "hexical.page.has_arch_lamp.summary": "判断玩家当前是否已启动大精灵神灯。",
+ "hexcasting.spell.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
+ "hexical.page.get_arch_lamp_position.summary": "将我开始使用大精灵神灯时的位置压入栈顶。",
+ "hexcasting.spell.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
+ "hexical.page.get_arch_lamp_rotation.summary": "将我开始使用大精灵神灯时的朝向压入栈顶。",
+ "hexcasting.spell.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
+ "hexical.page.get_arch_lamp_velocity.summary": "将我开始使用大精灵神灯时的速度压入栈顶。",
+ "hexcasting.spell.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
+ "hexical.page.get_arch_lamp_use_time.summary": "将神灯使用的时间压入栈顶。该数除以 20 后即为开始使用神灯后经过的秒数。",
+ "hexcasting.spell.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
+ "hexical.page.get_arch_lamp_media.summary": "将神灯中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
+ "hexcasting.spell.hexical:with_arch_lamp": "大精灵之精思",
+ "hexical.page.with_arch_lamp.summary": "检验当前$(hex)咒术$()是否由大精灵神灯施放。",
+ "hexcasting.spell.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
+ "hexical.page.get_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。获取神灯的 iota 存储。",
+ "hexcasting.spell.hexical:set_arch_lamp_storage": "大精灵之策略",
+ "hexical.page.set_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。设定神灯的 iota 存储。可能招致“违犯他人”事故。",
+
+ "hexical.page.enlightened_patterns.title": "启迪后图案",
+ "hexical.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。",
+ "hexcasting.spell.hexical:am_enlightened": "显圣之纯化",
+ "hexical.page.am_enlightened.summary": "检验所给玩家是否和我一样经过启迪。",
+ "hexcasting.spell.hexical:is_brainswept": "感知之纯化",
+ "hexical.page.is_brainswept.summary": "检验实体“是否经由魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
+
+ "hexical.page.simple_patterns.title": "Hexical 图案",
+ "hexcasting.spell.hexical:entity_width": "卡尺之纯化",
+ "hexical.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
+ "hexcasting.spell.hexical:theodolite": "经纬仪之纯化",
+ "hexical.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
+ "hexcasting.spell.hexical:swap_one_three": "反照之策略",
+ "hexical.page.swap_one_three.summary": "反照栈顶三个 iota 的顺序,将 A, B, C 变为 C, B, A。相当于交换栈顶元素和栈顶往下第三元素。",
+ "hexcasting.spell.hexical:swap_two_three": "泡浮之策略",
+ "hexical.page.swap_two_three.summary": "使得栈顶往下第三元素上浮过栈顶往下第二元素,相当于交换它们。",
+ "hexcasting.spell.hexical:similar": "相似之馏化",
+ "hexical.page.similar.summary": "检验两个 iota 是否类型相同。",
+ "hexcasting.spell.hexical:congruent": "全等之馏化",
+ "hexical.page.congruent.summary": "检验两个图案是否外形相同且方向相同。",
+ "hexcasting.spell.hexical:dup_many": "狄俄斯库里之策略,第二型",
+ "hexical.page.dup_many.summary": "接受一个数,并复制栈顶开始所给数个元素,保留顺序。",
+ "hexcasting.spell.hexical:shuffle_pattern": "图案制作师之馏化",
+ "hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代咒术师会把这些图案用在某种$(o)庞大的图书馆$()中。",
+
+ "hexical.page.perlin.title": "准随机",
+ "hexical.page.perlin.0": "某些地点的环境$(media)媒质$()密度比其他位置高。这种密度可以测量;甚至能在时间上回溯或前进,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
+ "hexcasting.spell.hexical:perlin": "柏林之馏化",
+ "hexical.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
+
+ "hexical.page.special_raycasts.title": "特殊射线追踪",
+ "hexcasting.spell.hexical:fluid_raycast": "海军之馏化",
+ "hexical.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.spell.hexical:fluid_surface_raycast": "睡莲之馏化",
+ "hexical.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.spell.hexical:piercing_raycast": "轨道炮之提整",
+ "hexical.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+ "hexcasting.spell.hexical:piercing_surface_raycast": "激光之提整",
+ "hexical.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+
+ "hexical.page.telepathy.title": "心灵感应",
+ "hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于玩家的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取或向其写入思维。",
+ "hexcasting.spell.hexical:get_telepathy": "心灵感应之精思",
+ "hexical.page.get_telepathy.summary": "对某种影像保持注意力,就可通过此图案探测到注意力的强度。压入我按下“心灵感应”键的时间,如果未按下则返回 -1。",
+ "hexcasting.spell.hexical:send_telepathy": "传递思维",
+ "hexical.page.send_telepathy.summary": "将 iota 暂时显示在快捷栏上方。如果持续施放,则每次施放都会立刻覆盖上一次的结果。",
+ "hexcasting.spell.hexical:shout_telepathy": "喊出思维",
+ "hexical.page.shout_telepathy.summary": "在屏幕中央显示 iota。这么做会阻碍视野,消散也要时间,因此不应经常使用。",
+ "hexcasting.spell.hexical:pling": "幻听扣弦",
+ "hexical.page.pling.summary": "使我听到一段扣弦声,其他玩家无法听见。",
+ "hexcasting.spell.hexical:click": "幻听咔哒",
+ "hexical.page.click.summary": "使我听到一段咔哒声,其他玩家无法听见。",
+ "hexcasting.spell.hexical:moving_up": "突进之精思",
+ "hexical.page.moving_up.summary": "压入我试图向前移动的时间,未按下“向前移动”则返回 -1。",
+ "hexcasting.spell.hexical:moving_down": "后撤之精思",
+ "hexical.page.moving_down.summary": "压入我试图向后移动的时间,未按下“向后移动”则返回 -1。",
+ "hexcasting.spell.hexical:moving_left": "左躲之精思",
+ "hexical.page.moving_left.summary": "压入我试图向左移动的时间,或返回 -1。很容易和右避之精思区分,因为左躲之精思名字里有个“左”。",
+ "hexcasting.spell.hexical:moving_right": "右避之精思",
+ "hexical.page.moving_right.summary": "压入我试图向右移动的时间,或返回 -1。很容易和左躲之精思区分,因为右避之精思名字里有个“右”。",
+ "hexcasting.spell.hexical:jumping": "腾跃之精思",
+ "hexical.page.jumping.summary": "压入我试图跳跃的时间,未按下“跳跃”则返回 -1。",
+
+ "hexical.page.soroban.title": "珠算图案",
+ "hexical.page.soroban.0": "这些图案能操纵一个虚计数器。在$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()被占用或用得太多时,这些图案就能派上用场,比如维护$(l:patterns/meta#hexcasting:for_each)$(action)托特$()循环的迭代次数。一些远古时代的残本推荐将其用于某种$(o)递归深度$()的统计。$(br2)需注意,它们直接用法杖绘制时无法正常工作。似乎这些存储量只会存在一瞬。",
+ "hexcasting.spell.hexical:soroban_increment": "珠算之精思",
+ "hexical.page.soroban_increment.summary": "压入珠算计数器当前值,而后令计数器增加 1。",
+ "hexcasting.spell.hexical:soroban_decrement": "珠算之精思,第二型",
+ "hexical.page.soroban_decrement.summary": "压入珠算计数器当前值,而后令计数器减少 1。",
+ "hexcasting.spell.hexical:soroban_reset": "珠算之策略",
+ "hexical.page.soroban_reset.summary": "重置珠算计数器。",
+
+ "hexical.page.metas.title": "Hexical 元运行",
+ "hexcasting.spell.hexical:janus": "雅努斯之策略",
+ "hexical.page.janus.0": "立即终止当前$(hex)咒术$(),无视所有限制。不同于$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),它甚至能跳出$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()和$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()。",
+ "hexical.page.janus.1": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限;$(l:hexical:patterns/metaevals#hexical:janus)$(action)雅努斯之策略$()不受$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()影响。$(br2)$(o)理解事物已然终结非常重要。$()",
+ "hexcasting.spell.hexical:nephthys": "奈芙蒂斯之策略",
+ "hexical.page.nephthys.0": "弹出一个图案或图案列表,在栈顶往下一定位置处施放所给图案或列表,向下的元素数即是图案尾部的长度。达成的效果与外科医师之提整类似。",
+ "hexical.page.nephthys.1": "这个图案非常好用,与$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()配合几乎能处理栈中的所有问题,潜入栈中后压入 iota,再处理“栈顶”的 iota。这一操作的名字来源于哀悼和河流的女神,意指其“深埋”或“潜入”栈中的操作。$(br2)$(o)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()",
+ "hexcasting.spell.hexical:sekhmet": "塞赫麦特之策略",
+ "hexical.page.sekhmet.0": "清除栈,栈顶若干元素除外,具体数量由图案的尾部长度决定。上方的示例分别会保留 0 个、1 个、2 个 iota。直接绘制时$(o)不是$()元运行。",
+ "hexical.page.sekhmet.1": "此策略的效果可通过$(l:patterns/stackmanip#hexcasting:stack_len)$(action)群体之精思$()、$(l:patterns/lists#hexcasting:last_n_list)$(action)群体之策略$()、$(l:patterns/lists#hexcasting:slice)$(action)选择之提整$()、$(l:patterns/lists#hexcasting:splat)$(action)群体之拆解$()序列简单达成,但这个策略使用起来相当方便。它和托特之策略相性极佳,适合对付那些只需返回栈顶若干元素、其余 iota 仅参与施放的伪栈。$(br2)$(o)凡事都可能,但不都有必要。$()",
+ "hexcasting.spell.hexical:atalanta": "阿塔兰忒之策略",
+ "hexical.page.atalanta.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()或$(l:hexical:patterns/metaevals#hexical:sisyphus)$(action)西西弗斯之策略$()内部使用。效果与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()类似,但不会完全停止迭代,而只是会跳过当前迭代剩余的部分。",
+ "hexical.page.atalanta.1": "此图案常用作多重条件循环的“卫语句”。比如,在获取到实体列表后,可能只需根据一长串条件挑出一部分作为目标。使用此图案,即可避免造出层层嵌套的条件判断,而是在判断不通过时直接“$(o)continue$()”/“$(o)继续$()”到下一迭代,如此就无需执行本迭代内后续的语句了。$(br2)$(o)You shall not pass!$()",
+ "hexcasting.spell.hexical:castor": "卡斯托耳之策略",
+ "hexical.page.castor.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()内部使用。详情见下一页。小心“钻研过深”事故。",
+ "hexical.page.castor.1": "此图案会出栈一个 iota,并将其作为$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()的一个新迭代项,在当前迭代结束后立即开始。该迭代的栈顶元素即为所出栈的元素。想成把 iota 放到$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()所接受的迭代列表的开头,可能会更好理解。$(br2)$(o)不要永远沿着路走,而要走无路之处……并留下你的足迹。$()",
+ "hexcasting.spell.hexical:pollux": "波吕克斯之策略",
+ "hexical.page.pollux.0": "$(l:hexical:patterns/metaevals#hexical:castor)$(action)卡斯托耳之策略$()的兄弟图案,此图案会将新迭代置于所有迭代的末尾。同样有风险招致“钻研过深”事故。",
+ "hexical.page.pollux.1": "效果与其兄弟图案基本一致,但新的迭代置于末尾。我曾阅读过详细记载使用这对图案的技术的卷轴,技术的名字是$(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)深度优先搜索$()和$(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)广度优先搜索$()。$(br2)$(o)深入之前应先探索表面。$()",
+ "hexcasting.spell.hexical:sisyphus": "西西弗斯之策略",
+ "hexical.page.sisyphus.0": "接受一个图案列表,并持续不断运行,直至遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()或$(l:hexical:patterns/metaevals#hexical:janus)$(action)雅努斯之策略$()。",
+ "hexical.page.sisyphus.1": "我曾听过有些能够自我复制的$(hex)咒术$(),叫做“$(o)自产生程序$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()会在迭代间保留,且每次施放均以基础栈起始。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()",
+ "hexcasting.spell.hexical:themis": "忒弥斯之策略",
+ "hexical.page.themis.0": "接受一个列表和一个图案列表,或一个列表与单个图案;在第一参数处运行第二参数,并排序结果,运行的过程与$(l:patterns/meta#hexcasting:for_each)托特之策略$()类似。",
+ "hexical.page.themis.1": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()",
+
+ "hexical.page.akashic_utils.title": "阿卡夏实用法术",
+ "hexical.page.akashic_utils.0": "我发现了阿卡夏图书馆的便捷操作!右击或是$(l:hexical:patterns/spells/prestidigitation)以魔法方式$()与有内容物的阿卡夏书架交互,即可将其 iota 压入我的法杖栈。以卷轴右击可以把对应的图案复制到卷轴上。最后,我还发现了两个图案,可以直接向施法范围内的书架读写,无需消耗媒质。",
+ "hexcasting.spell.hexical:key_shelf": "图书管理员之纯化",
+ "hexical.page.key_shelf.summary": "读取施法范围内阿卡夏书架的键。无需消耗媒质。",
+ "hexcasting.spell.hexical:read_shelf": "图书管理员之纯化,第二型",
+ "hexical.page.read_shelf.summary": "读取施法范围内阿卡夏书架的 iota。无需消耗媒质。",
+ "hexcasting.spell.hexical:write_shelf": "图书管理员之策略",
+ "hexical.page.write_shelf.summary": "向施法范围内的阿卡夏书架写入 iota。无需消耗媒质。",
+ "hexcasting.spell.hexical:clear_shelf": "图书管理员之策略,第二型",
+ "hexical.page.clear_shelf.summary": "清除施法范围内给定的阿卡夏书架。无需消耗媒质。",
+
+ "hexical.page.mage_block.title": "术师方块",
+ "hexical.page.mage_block": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
+ "hexcasting.spell.hexical:conjure_mage_block": "构筑术师方块",
+ "hexical.page.conjure_mage_block.summary": "在所给位置构筑一个术师方块。消耗 3 个紫水晶粉。$(br2)$(o)我可以凭空造出一座城市,也可令其沉没于火山熔岩之中。$()",
+ "hexcasting.spell.hexical:modify_block_bouncy": "改进方块:弹性",
+ "hexical.page.modify_block_bouncy.summary": "此改进使得方块弹性十足!如此制成的方块的弹性比黏液块更好。同时我注意到,潜行时它也会把我弹起来。",
+ "hexcasting.spell.hexical:modify_block_energized": "改进方块:激能",
+ "hexical.page.modify_block_energized.summary": "带有此改进的术士方块能发出红石信号,信号强度即为所给数。",
+ "hexcasting.spell.hexical:modify_block_ephemeral": "改进方块:消逝",
+ "hexical.page.modify_block_ephemeral.summary": "此改进需要一个数和一个位置向量,在所给数个二十分之一秒后打碎所给位置处的方块。后续再次施法可延长或缩短等待时间。",
+ "hexcasting.spell.hexical:modify_block_invisible": "改进方块:隐形",
+ "hexical.page.modify_block_invisible.summary": "此改进阻止方块散发出类似施法时产生的粒子,就算站在上面也一样。",
+ "hexcasting.spell.hexical:modify_block_replaceable": "改进方块:可替",
+ "hexical.page.modify_block_replaceable.summary": "此改进非常适合建筑!其他方块可以直接放置在带有此改进的术师方块处。",
+ "hexcasting.spell.hexical:modify_block_semipermeable": "改进方块:半透",
+ "hexical.page.modify_block_semipermeable.summary": "此改进令方块变得半透,也即只会允许最后一个与其交互的施法者通过,所有其他实体则不行。",
+ "hexcasting.spell.hexical:modify_block_volatile": "改进方块:失稳",
+ "hexical.page.modify_block_volatile.summary": "此改进促使方块破坏与之相邻的术师方块。而当其破坏另一个失稳方块时,与其相连的所有失稳方块都会消失。",
+
+ "hexical.page.dyes.title": "染料",
+ "hexical.page.dyes.0": "染色法术和专用的 iota 可以用来改变方块和实体的颜色。染料 iota 代表一种颜色,也似乎同时象征着染色的$(o)可能性$()。例如,尝试获取草丛的染料会返回 Null,但获取未染色陶瓦的染料会返回$(thing)uncolored$()/$(thing)无色$(),这种染料能够“漂白”可染色方块。",
+ "hexcasting.spell.hexical:get_dye": "色彩之纯化",
+ "hexical.page.get_dye.summary": "获取方块、实体、标识的染料。",
+ "hexcasting.spell.hexical:dye": "染色",
+ "hexical.page.dye.summary": "为可染色的方块或实体染色。消耗 1/8 个紫水晶粉。",
+ "hexical.page.dyes.1": "此法术的有效目标如下:床、蜡烛、插上蜡烛的蛋糕、地毯、混凝土、混凝土粉末、带釉陶瓦、沙和红沙互换、砂岩类和红砂岩类方块互换、潜影盒、染色玻璃、染色玻璃板、陶瓦、郁金香、羊毛。实体有:猫的项圈、狗的项圈、类视斑实体、潜影贝、前述方块的物品实体。",
+ "hexcasting.spell.hexical:translate_dye": "视色之纯化",
+ "hexical.page.translate_dye.summary": "将染料的颜色转换为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
+
+ "hexical.page.pigments.title": "染色剂操纵",
+ "hexical.page.pigments.0": "和通过图案操纵染料一样,染色剂也可操纵。比如说,我甚至能存储多个染色剂,再让咒术随机挑选一个给我。",
+ "hexcasting.spell.hexical:to_pigment": "染色剂之纯化",
+ "hexical.page.to_pigment.summary": "接受一个有色染料 iota,并转换为染色剂;接受一个玩家并返回其染色剂;或是接受一个内含染色剂的物品,并返回其染色剂。",
+ "hexcasting.spell.hexical:sample_pigment": "染色剂之提整",
+ "hexical.page.sample_pigment.summary": "在给定位置和时间获取染色剂颜色,返回为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
+ "hexcasting.spell.hexical:take_on_pigment": "内化染色剂,第二型",
+ "hexical.page.take_on_pigment.summary": "接受一个染色剂 iota 并内化它,消耗 1/8 个紫水晶粉。",
+
+ "hexcasting.spell.hexical:magic_missile": "魔法飞弹",
+ "hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时产生较强的击退。消耗 1 个紫水晶粉。",
+ "hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
+ "hexical.page.magic_missile.1": "构筑的位置本身也相当奇妙:怪不得大多数使用者都只选择在面前构筑它们。这一参数是向量,以我的头部位置为原点,我面朝的方向是 X 轴正向,头顶向上的方向是 Y 轴正向,头部向右的方向是 Z 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
+
+ "hexcasting.spell.hexical:prestidigitation": "戏法",
+ "hexical.page.prestidigitation.summary": "通过魔法令方块或实体产生一定回应,这种回应不会偏离方块或实体本身的性质和功能太远。消耗 1/10 个紫水晶粉。",
+ "hexical.page.prestidigitation.0": "此类法术和我之前遇到过的那些很不一样。它们的效果并不单一固定,而是类似于将许多不同的简单效果综合在单个法术中。它们的有效目标涵盖了许多方块和实体,我也在积极寻找它们的用途。具体内容记在后页。",
+ "hexcasting.spell.hexical:can_prestidigitate": "改易之纯化",
+ "hexical.page.can_prestidigitate.summary": "检验所给实体或位置是否可受戏法操纵。",
+ "hexical.page.prestidigitation.1": "我在此整理了一份经验证适用于此类法术的对象列表:打开或关闭各种材质的栅栏门、活板门、门;拨动拉杆,按压按钮;压下或松开压力板;熄灭火和灵魂火;点燃或熄灭蜡烛和营火;敲钟;为原木等去皮;雕刻南瓜;使音符盒发出声音;触发发射器和投掷器;将泥巴烤干为黏土;将大部分土壤方块变为土径,将土径变为耕地……",
+ "hexical.page.prestidigitation.2": "打开或关闭红石灯;消耗炼药锅的内容物;更改红石中继器、红石比较器、阳光探测器的状态;触发或解除 TNT 和苦力怕的爆炸;为绵羊剪毛;装上或卸下盔甲架的手臂部分;使得鱿鱼喷墨;使得熊猫打喷嚏;去除雪傀儡的头套;令河豚立刻膨胀到最大;从蜂巢和蜂箱中取出蜜脾;以及触发某种“宏伟之作”,不太清楚这是在说什么。",
+
+ "hexical.page.wristpocket.title": "魔袋",
+ "hexical.page.wristpocket.0": "让物品消失,再让物品回来的普通魔术把戏现在已易如反掌。这些物品藏在了$(o)魔袋$()之中,可用$(media)媒质$()操控。藏入魔袋的物品在我死后依然保留,拿到$(l:items/staff)$(item)法杖$()就能取回。$(br2)$(o)因为就让事物消失是不够的;你还要把它变回来。$()",
+ "hexcasting.spell.hexical:wristpocket": "藏入魔袋",
+ "hexical.page.wristpocket.summary": "此法术会令另一只手中的物品组消失;也可重新让其出现,如果手中已经持有物品则会交换。消耗 1/8 个紫水晶粉。",
+ "hexcasting.spell.hexical:wristpocket_item": "魔袋之精思",
+ "hexical.page.wristpocket_item.summary": "返回魔袋中物品的标识,如果魔袋为空则返回 Null。",
+ "hexcasting.spell.hexical:wristpocket_count": "魔袋之精思,第二型",
+ "hexical.page.wristpocket_count.summary": "返回魔袋中的物品数,如果魔袋为空则返回 0。",
+ "hexcasting.spell.hexical:sleight": "花招",
+ "hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗 1/4 个紫水晶粉。",
+ "hexical.page.sleight.0": "- 传入向量:将魔袋中的物品投放到对应位置。$(br)- 传入物品实体:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
+ "hexcasting.spell.hexical:mage_hand": "法师之手",
+ "hexical.page.mage_hand.summary": "构筑一只魔法手,以在世界中使用魔袋中的物品交互。如果魔袋为空,则表现为我自己与世界交互。",
+ "hexical.page.mage_hand.0": "- 传入实体:使用物品与该实体交互。$(br)- 传入向量:使用物品与该处方块交互。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
+ "hexcasting.spell.hexical:ingest": "同化食物",
+ "hexical.page.ingest.summary": "此法术能让我吃下魔袋中的物品,填饱我的肚子,或是给予我药水效果。无论我是否吃饱,也不管食物本身要花多久才能吃下,此法术都会瞬间完成食用。",
+
+ "hexical.page.specks.title": "视斑",
+ "hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受施法范围限制。",
+ "hexcasting.spell.hexical:conjure_speck": "构筑视斑",
+ "hexical.page.conjure_speck.summary": "按照所给 iota、位置、朝向构筑视斑。消耗 1/100 个紫水晶粉。压入视斑 iota。",
+ "hexcasting.spell.hexical:move_specklike": "移动视斑",
+ "hexical.page.move_specklike.summary": "将视斑实体移动至所给位置。",
+ "hexcasting.spell.hexical:rotate_specklike": "旋转视斑",
+ "hexical.page.rotate_specklike.summary": "令视斑实体的朝向变为所给向量。",
+ "hexcasting.spell.hexical:roll_specklike": "滚转视斑",
+ "hexical.page.roll_specklike.summary": "接受一个 0 与 1 之间的数,用作旋转圈数,并依此旋转视斑。",
+ "hexcasting.spell.hexical:iota_speck": "更改视斑",
+ "hexical.page.iota_speck.summary": "更改视斑对应的 iota。",
+ "hexcasting.spell.hexical:lifetime_specklike": "计时视斑",
+ "hexical.page.lifetime_specklike.summary": "令视斑在所给数个二十分之一秒后消失。",
+ "hexcasting.spell.hexical:size_specklike": "缩放视斑",
+ "hexical.page.size_specklike.summary": "更改视斑的大小,接受 0 与 10 之间的数。此数表示以格计的大小,默认为 0。",
+ "hexcasting.spell.hexical:thickness_specklike": "增粗视斑",
+ "hexical.page.thickness_specklike.summary": "更改图案视斑笔触的粗细,接受 0 与 10 之间的数。此数表示以 1/20 格计的大小,默认为 0。",
+ "hexcasting.spell.hexical:pigment_specklike": "染色视斑",
+ "hexical.page.pigment_specklike.summary": "将染色剂施加于视斑,可在构筑后更改其颜色。",
+ "hexcasting.spell.hexical:kill_specklike": "驱散视斑",
+ "hexical.page.kill_specklike.summary": "强令视斑实体消失。",
+ "hexcasting.spell.hexical:zone_specklike": "区域之馏化:类视斑",
+ "hexical.page.zone_specklike.summary": "返回视斑实体,效果与其他$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$()类似。",
+
+ "hexical.page.simple_spells.title": "Hexical 法术",
+ "hexcasting.spell.hexical:autograph": "签名",
+ "hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的染色剂为颜色。无需消耗媒质。",
+ "hexical.page.autograph.description": "所有对物品施放过此法术的人,其名字会依次保留在物品上,且保留对应的染色剂。签过名的物品无法与未签名的物品堆叠,同种的物品也不能。同一人能给同一物品多次签名。可以当作某人认可某物的实证。$(br2)$(o)何谓成功?成功就是你的签名变成了名人签名。$()",
+ "hexcasting.spell.hexical:conjure_hexburst": "构筑咒术星爆糖",
+ "hexical.page.conjure_hexburst.summary": "使用所给 iota 在给定位置构筑一枚咒术星爆糖。消耗 1 个紫水晶粉。可能招致“违犯他人”事故。",
+ "hexical.page.conjure_hexburst.description": "取出一个 iota,再在周围包裹$(media)媒质$(),直至它具备物理形态,就得到了可食用的咒术星爆糖。食用时,这种糖会将其中的 iota 压入食用者的栈。如果我想要交易代表我的 iota,咒术星爆糖应该会很有用。",
+ "hexcasting.spell.hexical:conjure_hextito": "构筑咒力多滋",
+ "hexical.page.conjure_hextito.summary": "在给定位置构筑一片咒力多滋。消耗 2 个紫水晶粉。可能招致“违犯他人”事故。",
+ "hexical.page.conjure_hextito.description": "咒力多滋是一种三角形的酥脆零食。食用时,我会突然生出施放其中$(hex)咒术$()的想法,使用的是我的施法栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合简单的操作集合,比如射线追踪,和咒术星爆糖配合进行构筑更是如此。如果食用者的栈存在未闭合的内省,其中咒术便不会施放,以此保障他人使用的安全。",
+ "hexcasting.spell.hexical:ghast_fireball": "构筑火球",
+ "hexical.page.ghast_fireball.summary": "构筑一个易爆火球,敲击发射后能够摧毁方块。消耗 3 个紫水晶粉。",
+ "hexical.page.ghast_fireball.description": "构筑出的火球只会停在空中,必须敲击或通过$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()发射出去。当然也可用同种手段更改其飞行方向。$(br2)$(o)要是不能炸坏什么东西的话,掌控宇宙平衡和知晓命运之秘又有什么好处呢?$()",
+ "hexcasting.spell.hexical:gasp": "喘息",
+ "hexical.page.gasp.summary": "立即填满生物的氧气条,消耗 1 个紫水晶粉。",
+ "hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个紫水晶粉,因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
+ "hexcasting.spell.hexical:chorus_blink": "紫颂闪现",
+ "hexical.page.chorus_blink.summary": "$(l:patterns/spells/basic#hexcasting:blink)$(action)闪现$()、$(l:patterns/great_spells/teleport)$(action)卓越传送$()、$(item)末影珍珠$()、$(item)紫颂果$(),这一法术处于上述几种传送方式的中间,平衡而和谐,以其安全、精确、低消耗的传送著称。",
+ "hexical.page.chorus_blink.description": "此图案需消耗物品栏中的一个$(item)紫颂果$(),并根据偏移向量传送最多 16 格。无论传送满 16 格还是不到 16 格,消耗均为 1 个紫水晶粉,且单个咒术中使用多次不会有惩罚。神奇的是,重复施放此法术不会因为超出施法范围而终止咒术,这是因为每次$(o)闪现$()都会将施法范围移至新位置。$(br2)$(o)我一眨眼就能到了。$()",
+
+ "hexical.page.conjure_compass.title": "构筑指南针",
+ "hexcasting.spell.hexical:conjure_compass": "构筑指南针",
+ "hexical.page.conjure_compass.summary": "在给定位置构筑一个指南针,它指向第二向量处。消耗 3 个紫水晶粉。",
+ "hexical.page.conjure_compass.description": "指南针并不会记忆它构筑时所处的维度,也即在所有维度中,它都指向同一位置。以书吏之精思读取,会获得指向目标位置的单位向量。$(br2)$(o)对头,指北针不指北方。但我们根本没在找北方啊!$()",
+
+ "hexical.page.spike.title": "构筑尖刺",
+ "hexical.page.spike.0": "我曾听过有一位灾厄村民术士能在地上构筑尖牙。要相信“村民能操控$(media)媒质$()”这种说法很难,但从其中获取灵感还是可行的。我依此制造出了这条法术,能够从地下升起尖刺刺穿目标。",
+ "hexcasting.spell.hexical:spike": "构筑尖刺",
+ "hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗 1 个紫水晶碎片。",
+ "hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会造成高达三颗心的伤害。在已经触发尖刺的位置试图重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
+
+ "hexical.page.conjure_staff.title": "构筑法杖",
+ "hexical.page.conjure_staff.0": "构筑的法杖和$(l:items/hexcasting)$(item)杂件$()比较相像。它们都有施法用的媒质储库,该储库耗尽后也不会消耗我的生命值和物品栏中的$(media)媒质$()物品。它们都无法重新充能,无法重新写入,对其使用$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()也都会将其毁灭。这种法杖的真正力量在于$(o)输入拦截$()。",
+ "hexcasting.spell.hexical:conjure_staff": "构筑法杖",
+ "hexical.page.conjure_staff.summary": "在所给位置处使用给定$(media)媒质$()量、位阶、$(hex)咒术$()构筑$(item)法杖$()。$(br2)$(o)这是我的$(l)法杖$()$(o)。虽有很多相似的,但这一把是我的。$()",
+ "hexical.page.conjure_staff.1": "手持构筑法杖时,它会拦截按下首选或次选“使用”按键的事件,阻止我与世界交互。拦截次数达到构筑时给定的位阶后,它便会施放给定的$(hex)咒术$(),同时根据按下左键或右键分别以 False 或 True 作为起始栈。如果按键之间间隔过久,当次“施法”便会直接取消。",
+ "hexical.page.conjure_staff.2": "此法术并不昂贵,仅需消耗 1 个紫水晶碎片,同时消耗媒质储库所需的$(media)媒质$()量。所得产物操作便捷、反应迅速,具有多种用途,变化的可能性无穷无尽,且不像其他$(l:items/hexcasting)$(item)施法物品$()那样需要冷却时间。$(br2)这种法杖的能力还不止于此,它们还拥有一个仅对法杖自身开放的 iota 存储位置。",
+ "hexcasting.spell.hexical:read_staff": "法杖之精思",
+ "hexical.page.read_staff.summary": "从$(item)构筑的法杖$()的内部存储读出 iota。",
+ "hexcasting.spell.hexical:write_staff": "法杖之策略",
+ "hexical.page.write_staff.summary": "向$(item)构筑的法杖$()的内部存储写入 iota,不接受代表玩家的 iota。",
+ "hexcasting.spell.hexical:with_conjured_staff": "魔杖之精思",
+ "hexical.page.with_conjured_staff.summary": "检验当前$(hex)咒术$()是否由构筑的法杖施放。",
+ "hexical.page.conjure_staff.3": "副手持有特定物品时构筑$(item)法杖$(),则所得$(item)法杖$()的外形会与该物品靠拢。目前我发现的物品与外形对应关系为:小麦(四叶草),鹦鹉螺壳(螺壳),钟(手摇铃),绊线钩(钥匙),玻璃(镜子)。",
+
+ "hexical.page.pyrotechnics.title": "烟花工艺",
+ "hexical.page.pyrotechnics.0": "我发现了一些构筑烟花的法术。$(media)媒质$()在这些图案周围欢欣地嗡鸣着,就好像它们曾用于庆典一样;它们用作武器的威力也可谓令人震悚。$(br2)$(o)什么都别说了。先欣赏烟花吧。$()",
+ "hexcasting.spell.hexical:simulate_firework": "模拟烟花",
+ "hexical.page.simulate_firework.summary": "分析另一只手中的烟火之星,并构筑一道烟花,位置、速度、与火药量有关的飞行时间均由烟火之星决定。消耗 1 个紫水晶碎片,每份火药额外消耗 1 个紫水晶粉。",
+ "hexcasting.spell.hexical:conjure_firework": "构筑烟花",
+ "hexical.page.conjure_firework.summary": "$(br)根据我给定的参数构筑一道烟花。这是我迄今为止发现的最复杂的法术之一。消耗量与其他烟花法术一致。",
+ "hexical.page.conjure_firework.0": "$(o)基础理论$()$(br2)前两个参数分别是位置和速度。第三个参数决定其飞行时间,需是 1 与 3 之间的数。可以认为是加入烟花火箭的火药份数。$(br2)剩余的参数可看作虚拟烟火之星的各特征。",
+ "hexical.page.conjure_firework.1": "$(o)形状效果$()$(br2)第四个参数控制烟花的形状,需是 0 与 3 之间的数。$(br)- 0 对应简单的小型球状效果。$(br)- 1 对应大型球状效果。$(br)- 2 对应星形效果。$(br)- 3 对应大型苦力怕状效果。",
+ "hexical.page.conjure_firework.2": "$(o)颜色$()$(br2)第五和第六个参数是$(l:hexical:patterns/spells/dyes)染料$()列表。第一个列表控制烟花的“初始”颜色,第二个列表控制烟花消散时的“渐变”颜色。第一列表中需至少含有一个染料;若不需“渐变”,第二个列表可以留空。",
+ "hexical.page.conjure_firework.3": "$(o)附加效果$()$(br2)第七个参数控制烟花粒子是否闪烁,相当于加入荧石与否。$(br2)第八个参数控制烟花粒子是否留下踪迹,相当于加入钻石与否。",
+
+ "hexical.page.circle_spells.title": "法术环法术",
+ "hexical.page.circle_spells.0": "媒质流穿梭于法术环中,法术环囊括的区域因而充盈着$(media)媒质$(),灵活控制其中事物也就不再是难事。我将我所遇到或创造的法术记在后页,它们只可由$(l:greatwork/spellcircles)法术环$()施放。",
+ "hexcasting.spell.hexical:displace": "转移",
+ "hexical.page.displace.summary": "无需任何媒质,就可将实体传送至环中任意一处。与$(l:patterns/great_spells/teleport)$(action)卓越传送$()不同在于,此法术接受的是绝对坐标。",
+
+ "hexical.page.evocation.title": "唤咒",
+ "hexical.page.evocation.0": "媒质是思维的能量,则逻辑推理可得,我应当能够直接把$(o)脑海中$()的魔法变为现实,而不需要挥舞法杖,毕竟我在最优状态下相当于 2 个充能紫水晶,是$(l:items/staff)$(item)法杖$()的两倍。我的意识目前还不够强大,无法随意将想法化作现实,不过已蚀刻入意识的$(hex)咒术$()还是可以的。这么做会消耗我物品栏中的$(media)媒质$()。",
+ "hexcasting.spell.hexical:internalize_hex": "内化咒术",
+ "hexical.page.internalize_hex.summary": "内化一份$(hex)咒术$(),此后按住“R”键 1 秒即可唤咒施放,不需持有法杖。内化过程消耗 1 个充能紫水晶。",
+ "hexcasting.spell.hexical:is_evoking": "唤魔者之精思",
+ "hexical.page.is_evoking.summary": "压入玩家唤咒的时间,未在唤咒则为 -1。",
+ "hexcasting.spell.hexical:with_evocation": "唤咒之精思",
+ "hexical.page.with_evocation.summary": "检验当前咒术是否使用唤咒施放。",
+ "hexical.page.evocation.1": "记载有这项技术的古代文本还写有其他琐事。曾经的$(hex)咒术师们$()唤咒时无需施放$(hex)咒术$(),而是会在某种集会或集体仪式中合唱。也有人曾试验过,是否有法术能将$(hex)咒术$()蚀刻入$(o)村民$(),以给予他们操控$(media)媒质$()的手段。但这些试验的结果从未见诸文献,抑或是已经散佚殆尽。",
+
+ "hexcasting.spell.hexical:greater_blink": "卓越闪现",
+ "hexical.page.greater_blink.0": "卓越闪现比卓越传送要便宜许多。它不具有抵达时全身物品散落的风险。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
+ "hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗 2 个紫水晶粉。",
+ "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往我面朝的方向传送 1 格。向量 (0, 1, 0) 会往我头顶的法向传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。",
+ "hexical.page.greater_blink.2": "奇特的是,这一闪现会将我的足部移动至该位置,也许能够少去射线追踪后传送到方块内部的麻烦。如果我需要进行多次闪现,则这一特性必须纳入考量范围。$(br2)$(o)长跳特!比你想的还要久——$()",
+
+ "hexical.page.meshes.title": "网斑",
+ "hexical.page.meshes.0": "网斑是$(l:hexical:patterns/spells/specks)视斑$()的进化形态。不会再受 iota 和图案的限制,也无需屈居于二维平面,网斑接受三维空间中的向量列表,由此带来的创意无穷无尽。网斑也会对大多数操纵视斑的图案有反应。",
+ "hexcasting.spell.hexical:conjure_mesh": "构筑网斑",
+ "hexical.page.conjure_mesh.summary": "在所给位置构筑一个网斑,并压入一个网斑实体。消耗 1 个紫水晶粉。",
+ "hexical.page.meshes.1": "网斑只在编织后才有外形。用以构筑网斑的向量列表无需遵守太多规则:列表的长度不能超出 32 个向量,向量的模长也必须小于 10。网斑会将各向量识别为相对向量,而后依次连接它们。",
+ "hexcasting.spell.hexical:weave_mesh": "编织网斑",
+ "hexical.page.weave_mesh.summary": "接受一个向量列表,需遵守前页指定的规则,并将网斑编织成所给形状,无需消耗媒质。",
+ "hexcasting.spell.hexical:read_mesh": "纠缠之纯化",
+ "hexical.page.read_mesh.summary": "读取网斑的外形,返回相对向量列表。可用于复制网斑。",
+
+ "hexical.category.scrying": "探知",
+ "hexical.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。这些图案可用来卜取一系列信息,方块和实体的类型、药水效果、天气、食物的营养、我在疾跑与否、$(o)方块的爆炸抗性$()等都在其列。虽然这些操作可能不如其他大多数$(hex)咒术$()用处大,但有它们在也不错,我将来也许会用到。",
+
+ "hexical.page.blocks.title": "方块",
+ "hexcasting.spell.hexical:block_hardness": "矿工之纯化",
+ "hexical.page.block_hardness.summary": "压入挖掘给定方块的难易程度。",
+ "hexcasting.spell.hexical:block_blast_resistance": "爆破兵之纯化",
+ "hexical.page.block_blast_resistance.summary": "压入方块对爆炸的抗性。",
+ "hexcasting.spell.hexical:blockstate_waterlogged": "管道工之纯化",
+ "hexical.page.blockstate_waterlogged.summary": "检验方块是否含水。若方块无法含水,则返回 Null。",
+ "hexcasting.spell.hexical:blockstate_rotation": "方向之纯化",
+ "hexical.page.blockstate_rotation.summary": "压入方块的朝向向量。若方块无朝向向量,则返回 Null。",
+ "hexcasting.spell.hexical:blockstate_crop": "农夫之纯化",
+ "hexical.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的成熟程度,对蜂巢、堆肥桶、炼药锅同样有效。奇怪的是,对蛋糕也有效。",
+ "hexcasting.spell.hexical:blockstate_glow": "发光之纯化",
+ "hexical.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有熔炉、红石火把、灯笼、营火等。",
+ "hexcasting.spell.hexical:blockstate_lock": "锁之纯化",
+ "hexical.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有门、活板门、栅栏门、木桶等。",
+ "hexcasting.spell.hexical:blockstate_turn": "角度之纯化",
+ "hexical.page.blockstate_turn.summary": "压入一个数,对应告示牌、头颅、旗帜的旋转方向。",
+ "hexcasting.spell.hexical:blockstate_bunch": "叠放之纯化",
+ "hexical.page.blockstate_bunch.summary": "返回方块的叠放数,无法叠放则返回 Null。仅对蜡烛、海泡菜、海龟蛋有效。",
+ "hexcasting.spell.hexical:blockstate_book": "书之纯化",
+ "hexical.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。有传言称对某种奇妙的书架也有效。",
+
+ "hexical.page.enchantments.title": "魔咒",
+ "hexcasting.spell.hexical:get_enchantments": "奇术师之纯化",
+ "hexical.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
+ "hexcasting.spell.hexical:get_enchantment_strength": "咒能之馏化",
+ "hexical.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
+
+ "hexical.page.entities.title": "实体",
+ "hexcasting.spell.hexical:get_health": "生命力之纯化",
+ "hexical.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
+ "hexcasting.spell.hexical:get_max_health": "健康之纯化",
+ "hexical.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
+ "hexcasting.spell.hexical:get_air": "窒息之纯化",
+ "hexical.page.get_air.summary": "压入实体距离窒息剩余的秒数。对脱水的鱼和溺水的陆地生物均有效。",
+ "hexcasting.spell.hexical:get_max_air": "双肺之纯化",
+ "hexical.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少秒开始窒息。",
+ "hexcasting.spell.hexical:get_player_hunger": "饥饿之纯化",
+ "hexical.page.get_player_hunger.summary": "返回玩家实体的饥饿值。",
+ "hexcasting.spell.hexical:get_player_saturation": "耐力之纯化",
+ "hexical.page.get_player_saturation.summary": "返回我的饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.spell.hexical:is_burning": "炼狱之纯化",
+ "hexical.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
+ "hexcasting.spell.hexical:burning_time": "炼狱之纯化,第二型",
+ "hexical.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余的时间。",
+ "hexcasting.spell.hexical:is_wet": "末影人之纯化",
+ "hexical.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
+ "hexcasting.spell.hexical:is_baby": "青春之纯化",
+ "hexical.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对盔甲架也有效。",
+ "hexcasting.spell.hexical:breedable": "繁衍之纯化",
+ "hexical.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 Null。",
+ "hexcasting.spell.hexical:is_sleeping": "树懒之纯化",
+ "hexical.page.is_sleeping.summary": "检验实体是否在睡眠状态。对玩家、猫、狐狸、以及一系列其他生物有效。",
+ "hexcasting.spell.hexical:is_sprinting": "赛车手之纯化",
+ "hexical.page.is_sprinting.summary": "检验实体是否在疾跑。速泳和疾跑后离地均算作疾跑,对猫、狐狸等也有效。",
+
+ "hexical.page.food.title": "食物",
+ "hexcasting.spell.hexical:edible": "可食性之纯化",
+ "hexical.page.edible.summary": "接受一个物品标识,检验它是否可食用。",
+ "hexcasting.spell.hexical:get_hunger": "卡路里之纯化",
+ "hexical.page.get_hunger.summary": "接受一个物品标识,返回它带来的饱腹感的量。",
+ "hexcasting.spell.hexical:get_saturation": "饱和之纯化",
+ "hexical.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.spell.hexical:is_meat": "肉类之纯化",
+ "hexical.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类(狼能否食用)。",
+ "hexcasting.spell.hexical:is_snack": "甜点之纯化",
+ "hexical.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食(可以迅速食用)。",
+
+ "hexical.page.identifiers.title": "标识",
+ "hexical.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
+ "hexcasting.spell.hexical:identify": "侦探之纯化",
+ "hexical.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
+ "hexical.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
+ "hexcasting.spell.hexical:recognize": "识别器之纯化",
+ "hexical.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
+ "hexcasting.spell.hexical:get_mainhand_stack": "工具之纯化",
+ "hexical.page.get_mainhand_stack.summary": "返回主手物品的类型。",
+ "hexcasting.spell.hexical:get_offhand_stack": "配饰之纯化",
+ "hexical.page.get_offhand_stack.summary": "返回副手物品的类型。",
+
+ "hexical.page.item.title": "物品",
+ "hexcasting.spell.hexical:count_stack": "仓储之纯化",
+ "hexical.page.count_stack.summary": "接受一个物品实体,返回其中物品数量。",
+ "hexcasting.spell.hexical:count_max_stack": "库房之纯化",
+ "hexical.page.count_max_stack.summary": "接受一个物品实体,返回其中最多可堆叠多少物品。",
+ "hexcasting.spell.hexical:damage_stack": "损耗之纯化",
+ "hexical.page.damage_stack.summary": "接受一个物品实体,返回物品剩余的耐久度。",
+ "hexcasting.spell.hexical:damage_max_stack": "脆弱性之纯化",
+ "hexical.page.damage_max_stack.summary": "接受一个物品实体,返回物品的耐久度上限。",
+
+ "hexical.page.status_effects.title": "状态效果",
+ "hexcasting.spell.hexical:get_effects_entity": "诊断之纯化",
+ "hexical.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
+ "hexcasting.spell.hexical:get_effects_item": "处方之纯化",
+ "hexical.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
+ "hexcasting.spell.hexical:get_effect_category": "药性之纯化",
+ "hexical.page.get_effect_category.summary": "获取某效果对承受者造成效应“良性”与否。-1 为负面,0 为中性,1 为正面。",
+ "hexcasting.spell.hexical:get_effect_amplifier": "浓度之馏化",
+ "hexical.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 Null。",
+ "hexcasting.spell.hexical:get_effect_duration": "效除之馏化",
+ "hexical.page.get_effect_duration.summary": "获取效果的持续时间,以秒计,无给定效果则返回 Null。",
+
+ "hexical.page.world.title": "世界",
+ "hexcasting.spell.hexical:get_light": "光照之纯化",
+ "hexical.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
+ "hexcasting.spell.hexical:get_weather": "天气学家之精思",
+ "hexical.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
+ "hexcasting.spell.hexical:get_time": "时间之精思",
+ "hexical.page.get_time.summary": "压入世界经过的时间,以秒计。",
+ "hexcasting.spell.hexical:get_biome": "地理之纯化",
+ "hexical.page.get_biome.summary": "返回给定位置向量处生物群系的标识。",
+ "hexcasting.spell.hexical:get_dimension": "位面之精思",
+ "hexical.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。"
+}
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
new file mode 100644
index 000000000000..c275b1d04ef6
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -0,0 +1,793 @@
+{
+ "advancements.hexical.arch_lamp.title": "守护进程",
+ "advancements.hexical.arch_lamp.description": "获得大精灵神灯。",
+ "advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
+ "advancements.hexical.reload_lamp.description": "为神灯重新充能。",
+ "advancements.hexical.educate_genie.title": "新秩序",
+ "advancements.hexical.educate_genie.description": "向精灵传授新的指示。",
+ "advancements.hexical.lamp.title": "可造之材",
+ "advancements.hexical.lamp.description": "获得精灵神灯。",
+ "advancements.hexical.augmented_reality.title": "增强现实",
+ "advancements.hexical.augmented_reality.description": "构筑一个视斑。",
+ "advancements.hexical.diy_conjuring.title": "构筑DIY!",
+ "advancements.hexical.diy_conjuring.description": "为术士方块附加改进。",
+ "advancements.hexical.conjure_hexxy.title": "构筑Hexxy",
+ "advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态。",
+ "advancements.hexical.hallucinate.title": "只在我的脑海里",
+ "advancements.hexical.hallucinate.description": "播放一段只有你能听见的声音!",
+ "advancements.hexical.media_slurp.title": "迷幻",
+ "advancements.hexical.media_slurp.description": "“你觉得有些东西不太对劲。”",
+
+ "block.hexical.hex_candle": "咒术蜡烛",
+ "block.hexical.mage_block": "术师方块",
+ "block.hexical.media_jar": "媒质罐",
+ "block.hexical.pedestal": "支座",
+ "block.hexical.sentinel_bed": "哨卫床",
+ "death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
+ "death.attack.magic_missile.item": "%1$s的魔法存在被%2$s用%3$s刺穿了",
+ "death.attack.spike": "%1$s被%2$s刺穿了",
+ "death.attack.spike.item": "%1$s被%2$s用%3$s刺穿了",
+ "effect.hexical.wooleyed": "毡障",
+ "effect.hexical.wooleyed.description": "模糊物理形体与媒质的界限。",
+ "entity.hexical.animated_scroll": "活线卷轴",
+ "entity.hexical.magic_missile": "魔法飞弹",
+ "entity.hexical.mesh": "网斑",
+ "entity.hexical.speck": "视斑",
+ "entity.hexical.spike": "紫水晶尖刺",
+ "key.categories.hexical": "Hexical",
+ "key.hexical.evoke": "唤咒",
+ "key.hexical.open_hexbook": "打开咒术笔记",
+ "key.hexical.telepathy": "唤起心灵感应",
+ "item.hexical.animated_scroll_small": "小型活线卷轴",
+ "item.hexical.animated_scroll_medium": "中型活线卷轴",
+ "item.hexical.animated_scroll_large": "大型活线卷轴",
+ "item.hexical.arch_lamp": "大精灵神灯",
+ "item.hexical.conjured_compass": "构筑的指南针",
+ "item.hexical.grimoire": "咒典",
+ "item.hexical.hand_lamp": "手持式精灵神灯",
+ "item.hexical.hexburst": "咒术星爆糖",
+ "item.hexical.hextito": "咒力多滋",
+ "item.hexical.gauntlet_staff": "护手法杖",
+ "item.hexical.ledger": "账本",
+ "item.hexical.lightning_rod_staff": "避雷针法杖",
+ "item.hexical.scarab_beetle": "圣甲虫",
+ "item.hexical.tchotchke": "杂饰",
+ "item.minecraft.potion.effect.wooleyed": "毡障药水",
+ "item.minecraft.splash_potion.effect.wooleyed": "喷溅型毡障药水",
+ "item.minecraft.lingering_potion.effect.wooleyed": "滞留型毡障药水",
+ "item.minecraft.tipped_arrow.effect.wooleyed": "毡障之箭",
+ "itemGroup.hexical.general": "Hexical",
+ "stat.hexical.evocation": "受毡障次数",
+ "subtitles.hexical.amethyst_melt": "紫水晶:融化",
+ "subtitles.hexical.item_dunks": "物品:浸入",
+ "subtitles.hexical.evoking_murmur": "玩家:吟唱",
+ "subtitles.hexical.evoking_casts": "玩家:施法",
+ "subtitles.hexical.lamp_activate": "神灯:启动",
+ "subtitles.hexical.lamp_deactivate": "神灯:终止",
+ "subtitles.hexical.player_slurp": "玩家:啜饮",
+ "subtitles.hexical.replenish_air": "空气:出现",
+ "subtitles.hexical.scarab_chirps": "圣甲虫:吱吱",
+ "subtitles.hexical.sudden_realization": "点子:出现",
+ "tooltip.hexical.scroll_aged": "陈化",
+ "tooltip.hexical.scroll_glow": "发光",
+ "tooltip.hexical.scroll_vanished": "隐消",
+
+ "hexical.autograph.header": "由以下人士亲笔签名:",
+ "hexical.cracked.cracked": "已破解",
+ "hexical.cracked.program": "咒术:",
+ "hexical.grimoire.contains": "含有以下图案的绑定:",
+ "hexical.scarab.program": "含有:%s",
+ "hexical.recipe.transmute.media_free": "无需消耗",
+ "hexical.recipe.transmute.media_cost": "消耗%s个紫水晶粉",
+ "hexical.recipe.transmute.media_yield": "产出%s个紫水晶粉",
+ "hexical.ledger.stack": "事故前最后记录到的栈:",
+ "hexical.ledger.mishap": "最后一次事故的信息:",
+
+ "hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
+ "hexcasting.mishap.bad_block.mage_block": "一个术师方块",
+ "hexcasting.mishap.bad_block.prestidigitation": "一个对戏法敏感的方块",
+ "hexcasting.mishap.bad_block.slate": "一个石板方块",
+ "hexcasting.mishap.bad_block.flower_spawnable": "空气或一个花盆",
+ "hexcasting.mishap.bad_block.solid_platform": "一个固体平台",
+ "hexcasting.mishap.bad_item.animated_scroll": "一个活线卷轴",
+ "hexcasting.mishap.bad_item.anything": "任意物品",
+ "hexcasting.mishap.bad_item.casting_device": "一个可施放咒术的设备",
+ "hexcasting.mishap.bad_item.firework_star": "一个烟火之星",
+ "hexcasting.mishap.bad_item.grimoire": "一个咒典",
+ "hexcasting.mishap.bad_item.has_brain": "一个能够思考的村民",
+ "hexcasting.mishap.bad_item.autographed": "一个经过签名的物品",
+ "hexcasting.mishap.bad_item.hand_lamp": "一个手持式精灵神灯",
+ "hexcasting.mishap.bad_item.lamp": "一个空神灯",
+ "hexcasting.mishap.bad_item.mesh": "一个网斑",
+ "hexcasting.mishap.bad_item.prestidigitation": "一个对戏法敏感的实体",
+ "hexcasting.mishap.bad_item.scarab_beetle": "一个圣甲虫",
+ "hexcasting.mishap.bad_item.smart_villager": "一个老手或更高等级的村民",
+ "hexcasting.mishap.bad_item.speck": "一个视斑",
+ "hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
+ "hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
+ "hexcasting.mishap.invalid_value.horizontal_axis_vector": "一个水平轴向向量",
+ "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
+ "hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识",
+ "hexcasting.mishap.invalid_value.class.dye": "一个染料",
+ "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
+ "hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
+ "hexcasting.mishap.invalid_value.conjurable_flower_id": "一个代表可构筑花卉的标识",
+ "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
+ "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
+ "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
+ "hexcasting.mishap.invalid_value.integer_natural": "一个大于0的整数",
+ "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
+ "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
+ "hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
+ "hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
+ "hexcasting.mishap.invalid_value.number_list": "一个由数组成的非空列表",
+ "hexcasting.mishap.invalid_value.null_or_pattern": "Null或一个图案",
+ "hexcasting.mishap.invalid_value.number_or_vector": "一个数或向量",
+ "hexcasting.mishap.invalid_value.potion_holding": "一个食物、药水、或药箭物品实体",
+ "hexcasting.mishap.invalid_value.recognizable": "一个带有额外信息的目标",
+ "hexcasting.mishap.invalid_value.small_vector": "一个长度小于等于2的向量",
+ "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
+ "hexcasting.mishap.invalid_value.to_pigment": "一个有色染料、一个代表染色剂物品的标识、一个含有染色剂的物品实体,或一个玩家",
+ "hexcasting.mishap.invalid_value.true_dye": "一个有色染料",
+ "hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
+ "hexcasting.mishap.hexical:active_arch_lamp": "物品栏中本应有一个启动的大精灵神灯。",
+ "hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
+ "hexcasting.mishap.hexical:inedible": "魔袋中的物品无法食用。",
+ "hexcasting.mishap.hexical:magic_missile_coordinates": "无法辨识出空间轴。",
+ "hexcasting.mishap.hexical:needs_wristpocket": "本应由玩家或顶部放有支座的法术环施放。",
+ "hexcasting.mishap.hexical:needs_staff": "本应由法杖施放。",
+ "hexcasting.mishap.hexical:needs_lamp": "本应由精灵施放。",
+ "hexcasting.mishap.hexical:needs_hand_lamp": "本应由手持式精灵神灯施放。",
+ "hexcasting.mishap.hexical:needs_turret": "本应由支座上的精灵施放。",
+ "hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
+ "hexcasting.mishap.hexical:illegal_jailbreak": "试图破解内含咒术的施法物品。",
+
+ "hexcasting.action.book.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
+ "hexcasting.action.book.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
+ "hexcasting.action.book.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
+ "hexcasting.action.book.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
+ "hexcasting.action.book.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
+ "hexcasting.action.book.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
+ "hexcasting.action.book.hexical:get_effect_amplifier": "浓度之馏化",
+ "hexcasting.action.book.hexical:get_effects_item": "处方之纯化",
+ "hexcasting.action.book.hexical:get_enchantments": "奇术师之纯化",
+ "hexcasting.action.book.hexical:breedable": "繁衍之纯化",
+ "hexcasting.action.book.hexical:get_hand_lamp_position": "精灵之精思:空间型",
+ "hexcasting.action.book.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
+ "hexcasting.action.book.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
+ "hexcasting.action.book.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
+ "hexcasting.action.book.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
+ "hexcasting.action.book.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
+ "hexcasting.action.book.hexical:nephthys": "奈芙蒂斯之策略",
+ "hexcasting.action.book.hexical:sekhmet": "塞赫麦特之策略",
+ "hexcasting.action.book.hexical:serialize_pattern": "笔迹师之纯化",
+ "hexcasting.action.book.hexical:deserialize_pattern": "书法师之纯化",
+ "hexcasting.action.book.hexical:shuffle_pattern": "图案制作师之馏化",
+ "hexcasting.action.book.hexical:read_shelf": "图书管理员之纯化,第二型",
+ "hexcasting.action.book.hexical:zone_specklike": "区域之馏化:类视斑",
+ "hexcasting.action.book.hexical:modify_block_bouncy": "弹性",
+ "hexcasting.action.book.hexical:modify_block_energized": "激能",
+ "hexcasting.action.book.hexical:modify_block_ephemeral": "消逝",
+ "hexcasting.action.book.hexical:modify_block_invisible": "隐形",
+ "hexcasting.action.book.hexical:modify_block_replaceable": "可替",
+ "hexcasting.action.book.hexical:modify_block_volatile": "失稳",
+ "hexcasting.action.book.hexical:theodolite": "经纬仪之纯化",
+ "hexcasting.action.book.hexical:identify": "侦探之纯化",
+ "hexcasting.action.book.hexical:recognize": "识别器之纯化",
+ "hexcasting.action.book.hexical:damage_stack": "损耗之纯化",
+ "hexcasting.action.book.hexical:classify": "分类器之纯化",
+ "hexcasting.action.book.hexical:get_biome": "地理之纯化",
+ "hexcasting.action.book.hexical:get_weather": "天气学家之精思",
+
+ "hexical.page.hexical_changes.title": "Hexical 中的改动",
+ "hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()。我甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()也变得更可塑、更$(o)可操纵$(),令媒质产生更精确精细的效果已不是难事。我还可以按下$(thing)$(k:hexical.open_hexbook)$()就打开$(item)咒术笔记$()。",
+ "hexical.page.hexical_changes.1": "我的工具也更顺手了。我无需再全神贯注地使用$(l:items/staff)$(item)法杖$(),而是可在使用时四处走动;之后射线追踪的时候目标就再也跑不出我的视线范围了。不过我也不能太过放松,自然对我失误的惩罚力度依然如旧。我现在还可以用$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()直接向$(l:items/abacus)$(item)算盘$()写入。",
+ "hexical.page.lightning_rod_staff.0": "我往一支避雷针的末端嵌了一整块紫水晶,就得到了这种造型令人印象深刻的$(l:items/staff)$(item)法杖$()。它拿起来有些沉重,但用起来仿佛在$(o)号令闪电$()。",
+ "hexical.page.lightning_rod_staff.1": "$(o)我知道世上有困难$(br)而且不止一种。$(br)有些自前路而来$(br)有些从身后接近。$(br2)但我买了根球棍。$(br)你看,我已经准备完毕。$(br)现在我的那些麻烦事$(br)马上就要有$(l)麻烦$()了!",
+ "hexical.page.gauntlet_staff.0": "$(l:items/staff)$(item)法杖$()很重,拿着也不趁手。要是对其失去了兴趣,可以换成这个护手一样的设备,以此亲手感知、亲手操控$(media)媒质$()。",
+ "hexical.page.gauntlet_staff.1": "$(o)况且一根法杖对我而言似乎也是天方夜谭。如果你需要一个合适的工具来控制并操纵灵气,我想手套就是个不错的选择。$()$(br2)- 我从一本古怪的书里复原出的笔记。很明显书中所谓“灵气”就是指$(media)媒质$()。",
+
+ "hexical.page.grimoire.title": "咒典",
+ "hexical.page.grimoire.0": "以$(l:items/amethyst)$(item)充能紫水晶$()和$(l:items/edified)$(item)启迪木$()$()给$(item)附魔书$()装面,$(item)附魔书$()便能将$(media)媒质$()困在书页内部,就像一间回音室。之后可向其中引入图案至图案列表的绑定关系,以让$(item)咒典$()内部的$(media)媒质$()无限反弹。",
+ "hexical.page.grimoire.1": "在物品栏中放有$(item)咒典$(),再通过$(l:items/staff)$(item)法杖$()绘制其中与图案列表关联的$(l:patterns/patterns_as_iotas)图案$(),该图案会$(o)扩展$()成对应列表,同时发出一阵微弱的$(hex)咒术$()施放声。如此就为繁重的$(hex)咒术$()(比如射线追踪曼怛罗和大型图案)创建了捷径。$(item)咒典$()甚至能截获自然提供的图案,可以完全覆写,也可加入额外功能。$(br2)$(o)要是想读一本还没写出来的书,那就亲自去写。$()",
+ "hexcasting.action.hexical:write_grimoire": "写入咒典",
+ "hexical.page.write_grimoire.summary": "向副手$(item)咒典$()写入一个图案至图案列表的绑定关系。",
+ "hexcasting.action.hexical:erase_grimoire": "擦除咒典",
+ "hexical.page.erase_grimoire.summary": "若副手持有$(item)咒典$(),擦除其中相应的图案列表绑定。",
+ "hexcasting.action.hexical:index_grimoire": "档案员之精思",
+ "hexical.page.index_grimoire.summary": "获取副手$(item)咒典$()中所有图案的列表。",
+
+ "hexical.page.scarab.title": "圣甲虫",
+ "hexical.page.scarab.0": "$(item)圣甲虫$()是个可爱的护符。它们对$(media)媒质$()相当敏感;因此在启动后,它们能定位被自然忽略的图案,并加以替换。特别来说,对自然而言没有意义的图案会压入栈顶,供$(item)圣甲虫$()判别。$(br2)$(o)我不管了,上吧圣甲虫。$()",
+ "hexical.page.scarab.1": "我可以教导$(item)圣甲虫$(),让它将图案处理成方便使用的形式。比如说,可以让它在碰到给定图案时执行一系列图案,以无缝衔接那些$(o)新$()图案,甚至连$(l:items/hexcasting)$(item)施法物品$()中的图案也行。",
+ "hexical.page.scarab.2": "$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()可以教导$(item)圣甲虫$()图案列表。此列表后续不可通过$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()反向读出;它们的感知力足以抵抗读心,不过它们确实会自豪地展出$(hex)咒术$()。这些指示也不可覆盖;传达新指示前必须先$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除$()。",
+ "hexical.page.scarab.3": "如果需要进一步处理图案,$(l:patterns/pattern_manipulation)能操纵图案的元操作图案$()会很有用。理论上来说,我可以创造出一整族的图案,类似$(l:patterns/numbers)数字面量$()和$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()等,而且所有$(l:items/staff)法杖$()或者$(l:items/hexcasting)$(item)施法物品$()都可以用。",
+
+ "hexical.page.animated_scroll.title": "活线卷轴",
+ "hexical.page.animated_scroll.0": "$(item)活线卷轴$()中混有一小份紫水晶,其上墨迹会像$(l:items/staff)$(item)法杖$()绘制出的图案那样颤动。$(item)活线卷轴$()的神奇之处还不止于此,它还能展示图案列表。$(br2)$(o)不带点疯劲,怎么能叫作家呢?$()",
+ "hexical.page.animated_scroll.1": "卷轴上的图案可随意重绘,也可从卷轴中读出图案。这类卷轴只接受$(l:patterns/patterns_as_iotas)图案列表$(),单个$(l:patterns/patterns_as_iotas)图案 iota$() 会自动置入列表之中。$(item)活线卷轴$()会依次展示单个图案,图案每秒切换一次。就算是在不同时间点向两份卷轴写入同一图案列表,最后两者也会建立同步。",
+ "hexical.page.animated_scroll.2": "后页记录了一些用来操纵$(item)活线卷轴$()的法术。再次施放法术就能消除大部分此类法术产生的效果。它们都无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:age_scroll": "陈化卷轴",
+ "hexical.page.age_scroll.summary": "令$(item)活线卷轴$()的纸页泛黄,产物和我找到的一些远古卷轴极为相似。",
+ "hexcasting.action.hexical:color_scroll": "色染墨迹",
+ "hexical.page.color_scroll.summary": "改变$(item)活线卷轴$()墨迹的颜色,具体由所给向量决定;各分量对应红、绿、蓝,取值范围为 0 到 1。",
+ "hexcasting.action.hexical:glow_scroll": "点亮墨迹",
+ "hexical.page.glow_scroll.summary": "使得$(item)活线卷轴$()的墨迹在所有光照条件下均发光。",
+ "hexcasting.action.hexical:vanish_scroll": "隐消卷轴",
+ "hexical.page.vanish_scroll.summary": "使得$(item)活线卷轴$()的纸张隐形,图案保留不变,看上去就像图案被蚀刻在方块表面一样。",
+
+ "hexical.page.hex_candle.title": "咒术蜡烛",
+ "hexical.page.hex_candle.0": "首次以$(l:patterns/spells/prestidigitation)魔法$()或$(item)打火石$()点燃后,这些漂亮的小蜡烛上会燃起苍白色的火焰。把它泡在水里也似乎无法让其熄灭。若有人与其交互,它会复制该人的染色剂。也可以手持染色剂物品右击直接改变它的颜色。熄灭则需$(thing)$(k:sneak)+$(k:use)$()。",
+ "hexical.page.hex_candle.1": "$(o)医生发现自己身处一个巨大的洞穴之中,那里面排满了无数颤动着火焰的蜡烛,每一支都代表了一个生命的长短。$()",
+
+ "hexical.page.media_jar.title": "媒质罐",
+ "hexical.page.media_jar.0": "我成功把我手头的$(l:items/amethyst)$(item)紫水晶$()全部融化到这个小罐里了!但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,成功把液态$(media)媒质$()装到了某种瓶子里去供$(hex)咒术$()使用。不过,这个$(item)媒质罐$()也有回收媒质的神奇功能。",
+ "hexical.page.media_jar.description": "$(o)就在那儿,她看见了一团浅浅的雾:那东西只有鸡蛋大小。它在柔和的淡海绿色之外几乎不带什么颜色,闪闪发光,非常漂亮。",
+ "hexical.page.media_jar.1": "我可以把物品浸到这种液体里,以向其中注入纯净的$(media)媒质$()。渗入物品的$(media)媒质$()会$(o)改变$()物品,产物新奇而难以预测。$(br2)很难想象摄入这种浓缩$(media)媒质$()后会发生什么。",
+ "hexical.recipe.alchemists_take_this.header": "制金",
+ "hexical.recipe.alchemists_take_this.text": "将铜变形成金。",
+ "hexical.recipe.thoughtknot.header": "编织结念绳",
+ "hexical.recipe.thoughtknot.text": "往大量$(media)媒质$()里进入$(item)线$()就可制成$(l:items/thought_knot)$(item)结念绳$(),而无需往上刷$(l:items/amethyst)$(item)紫水晶粉$()。效率稍微高些。",
+ "hexical.recipe.unthoughtknot.header": "释放念结",
+ "hexical.recipe.unthoughtknot.text": "吸出$(l:items/thought_knot)$(item)结念绳$()的媒质。相较合成配方来说会损耗$(media)媒质$(),却是回收点滴$(media)媒质$()的好方法。",
+ "hexical.recipe.cry_obsidian.header": "感伤黑曜石",
+ "hexical.recipe.cry_obsidian.text": "向$(item)黑曜石$()中注入$(media)媒质$()。这些$(media)媒质$()会从中溢出,看上去就好像在流泪。",
+ "hexical.recipe.uncry_obsidian.header": "安慰黑曜石",
+ "hexical.recipe.uncry_obsidian.text": "返还$(item)哭泣的黑曜石$()中的$(media)媒质$()。$(br2)$(o)心理咨询!:D$()",
+
+ "hexical.page.ledger.title": "账本",
+ "hexical.page.ledger.0": "$(l:patterns/meta)当咒术施放咒术时$(),其中的$(hex)咒术$()便很难追踪,而自然对这种疏忽绝不手软。好在,$(item)账本$()能帮我记录最后施放的 32 个图案,最后招致的事故,以及栈在事故前的状态。$(item)账本$()的真正强大之处,在于其$(o)甚至$()能记录$(l:patterns/meta)元运行$()的图案。",
+ "hexical.page.ledger.1": "施放新$(hex)咒术$()前,可以点击图案将其清出$(item)账本$(),避免造成数据污染。$(br2)$(o)你可能看到的只是一堆收据,我看到的却是一段故事。我能感觉出这故事的走向,不是什么好走向。$()",
+
+ "hexical.page.sentinel_bed.title": "哨卫床",
+ "hexical.page.sentinel_bed.0": "这张床里的$(item)磁石$()似乎能让它自身和$(o)其上的实体$()一直处于我$(hex)咒术$()的影响范围内;不过我更倾向于认为,我的$(l:patterns/spells/sentinels)$(thing)哨卫$()是因为喜欢$(item)羊毛$()才这样的。猫也觉得这张床很舒服,就和燃烧中的熔炉和床一样。$(br2)我听过些传言,说古代的$(hex)咒术师们$()会把它当成无视距离的 iota 仓储方块,但我想不出来是怎么做到的。",
+ "hexical.page.sentinel_bed.1": "$(o)为我的哨卫准备的舒适床铺,它似乎总想趴回上面。$()",
+
+ "hexical.page.wooleyed_potion.title": "毡障药水",
+ "hexical.page.wooleyed_potion.0": "这些$(item)药水$()似乎会模糊物质与$(media)媒质$()的界限。一剂的药效持续 10 分钟。在它的作用下,我感觉我能实现愈加卓伟的奇迹。$(br2)最重要的变化,是生命力兑换$(media)媒质$()效率的增加。我估计每 1 颗红心可抵 1 整个$(l:items/amethyst)紫水晶碎片$()。",
+ "hexical.page.wooleyed_potion.header": "毡障药水",
+ "hexical.page.wooleyed_potion.1": "向$(item)尴尬的药水$()里酿入一枚$(l:items/hexcasting)$(item)杂件$(),即可制成毡障药水。",
+
+ "hexical.page.pedestal.title": "支座",
+ "hexical.page.pedestal.0": "支座可以让物品悬浮在其上。和物品展示框和箱子不一样的是,我的$(hex)咒术$()仍可以和其上物品交互,就像和掉在地上的物品交互一样。空支座可吸引周围的物品,其与漏斗的交互也和我想的契合。就算物品被换走,它也能正常运作。",
+ "hexical.page.pedestal.1": "$(o)展示用的支座和任何狭小封闭的空间没什么两样——都和监狱差不多。$()",
+
+ "hexical.category.lamp": "精灵神灯",
+ "hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。村民说有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,这件物品必然有强大之处;因此我分出了这一章,用于记录我对它的研究。",
+
+ "hexcasting.action.hexical:lamp_finale": "终局之精思",
+ "hexical.page.lamp_finale.hand": "放下$(item)神灯$()的那一刹那,它会额外施法一次。这个图案能判断精灵的施法是否是最后一次,并据此做出反应。",
+ "hexical.page.lamp_finale.arch": "停止$(item)大精灵神灯$()时,它会额外施法一次。我可以使用这个图案来判断某一次施法是否是最后的残响。",
+
+ "hexical.page.hand_lamps.title": "手持式灯壶",
+ "hexical.page.hand_lamps.0": "我终于找到了上千年传言中说的东西了!如此强大的物件居然是在一位流浪商人的手里。这件$(item)手持式神灯$()仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。我还感受到$(item)神灯$()里有一个存在,它的施法能力与我相当。",
+ "hexical.page.hand_lamps.1": "感觉没错,$(item)神灯$()里有一个$(o)活着的、有智慧的$()意识,但究竟是何种魔法维持了它的生命又把它困在灯里,我不得而知。若不管$(item)神灯$()的可怖用途,它的设计可谓巧如天工。按住触发按钮时,我的图案会送至所召唤的灯内“精灵”,它便会施放,出于绝望和无聊。",
+ "hexcasting.action.hexical:wish": "许愿",
+ "hexical.page.wish.summary": "向精灵许愿,希望它能为我施放$(hex)咒术$()。而因为我是在$(o)教导$()意识,而非$(o)蚀刻$()$(l:items/hexcasting)$(item)施法物品$(),可在后续任意时刻教导精灵新$(hex)咒术$(),不会因此损失$(media)媒质$()。",
+ "hexical.page.hand_lamps.2": "说它是在施法有些低估它了。$(o)$(l)每一时刻$()它都在施法。许愿后拿着它,一束精确而又永不停歇的$(media)媒质$()流迎面而来。我只能估计施法速度大概是在每秒二十次。$(item)神灯$()中的存在会以极高的效率施法,并且不会像其他施法手段那样产生大量声音和粒子。",
+ "hexical.page.hand_lamps.3": "我设计了一些配合$(item)神灯$()的有用图案,见后续页。这些图案只应该由$(item)神灯$()中的精灵运行,否则招致的便是“冒充精灵”事故。$(br2)$(o)我不是任你摆布的工具。$()$(br)灯中传来奇异的微弱人声,大概不用管吧。",
+ "hexcasting.action.hexical:get_hand_lamp_position": "精灵之精思:空间型",
+ "hexical.page.get_hand_lamp_position.summary": "将我开始使用$(item)神灯$()时的位置压入栈顶。",
+ "hexcasting.action.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
+ "hexical.page.get_hand_lamp_rotation.summary": "将我开始使用$(item)神灯$()时的朝向压入栈顶。",
+ "hexcasting.action.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
+ "hexical.page.get_hand_lamp_velocity.summary": "将我开始使用$(item)神灯$()时的速度压入栈顶。",
+ "hexcasting.action.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
+ "hexical.page.get_hand_lamp_use_time.summary": "将$(item)神灯$()开始使用后经过的时间压入栈顶。该数除以 20 即为秒数。",
+ "hexcasting.action.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
+ "hexical.page.get_hand_lamp_media.summary": "将$(item)神灯$()中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
+ "hexcasting.action.hexical:set_hand_lamp_storage": "精灵之策略",
+ "hexical.page.get_hand_lamp_storage.summary": "请求精灵为我记忆一个 iota。奇特的是,这个图案不会招致“违犯他人”事故,也许是因为使用$(item)神灯$()时需要我维持注意力集中吧。",
+ "hexcasting.action.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
+ "hexical.page.set_hand_lamp_storage.summary": "取出手持式$(item)神灯$()内部存储的 iota 压入栈顶。先前若未进行保存,则返回 $(l:casting/influences)$(thing)Null$()。",
+
+ "hexical.page.genie_lore.title": "关于精灵",
+ "hexical.page.genie_lore.0": "$(hex)咒法学$()的技艺会使得意识失去思考的能力,镇定知觉,麻痹神经元……真是叫人欲罢不能。对于$(l:items/staff)$(item)法杖$()、$(l:items/hexcasting)$(item)施法物品$()、$(l:greatwork/spellcircles)卓伟构造$()来说,施法的速度足够缓慢,能给意识喘息的时间;只是运行很多图案伤不到我自己。不过要是论及$(item)神灯$()的施法速度,那就算是为$(hex)咒法学$()而生的意识也很难招架。",
+ "hexical.page.genie_lore.1": "低等级$(l:items/hexcasting)$(item)施法物品$()通常会把一部分$(media)媒质$()浪费到噪声和粒子中去;好在$(item)神灯$()不会浪费,而是会捕获用来修复精灵的意识。实际过程基本没有浪费$(media)媒质$(),真是难以置信。但$(item)神灯$()终究还是会枯竭,幸运的是,直接充入$(media)媒质$()就能解决。",
+ "hexcasting.action.hexical:recharge_lamp": "神灯充能",
+ "hexical.page.recharge_lamp.summary": "为我副手中的$(item)神灯$()充能。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$(),同时消耗我送入$(item)神灯$()的$(media)媒质$()。",
+ "hexical.page.genie_lore.2": "$(item)神灯$()似乎能够存下无限多的$(media)媒质$()。要是原来有$(media)媒质$()时去充能,它的容量只会相应增加。真可谓是$(hex)咒法学$()科技树上的奇观。",
+ "hexical.page.genie_lore.3": "在进一步的考察后,我发现$(item)神灯$()中的精灵似乎只是极为简单的思维与$(media)媒质$()网络,简单到甚至像人力所为。我认为这不太能叫生物,更像是$(o)咒灵$()。把它换成更加复杂、具有$(o)感知力$()的意识,带来的或许就是质变。所需的意识必须品质极高,经过处理后还需保留些许能力;花费一生精进手艺的村民应该足够。",
+ "hexcasting.action.hexical:promote_lamp": "晋升神灯",
+ "hexical.page.promote_lamp.summary": "在另一只手中持有神灯时施放。消耗大约 10 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+
+ "hexical.page.arch_lamps.title": "大精灵神灯",
+ "hexical.page.arch_lamps.0": "$(item)神灯$()飞出了我的手,停在了村民面前,然后把村民整个吸了进去,$(item)神灯$()自己也因此发生了变化。这些$(item)大精灵神灯$()中的强大意识对应的是“启动”和“停止”,而非“使用”。而当其启用后并处于我物品栏中时,它们会每时每刻施法。捡起一个会自动将其停止,可能是某种安全措施。",
+ "hexical.page.arch_lamps.1": "$(l:lamp/arch_lamps)$(item)大精灵神灯$()的输出太过庞大,甚至能令我周围的空气进入$(media)媒质$()饱和状态……不可思议。不幸的是,若在我物品栏中有两个此类神灯同时处于启动状态,它们的回响会相互碰撞,致使其停止,并使得物品栏中所有神灯几秒内无法使用。同一时刻应当只有一个$(item)大精灵神灯$()启动,但此时还可以使用一个$(item)手持式神灯$()。",
+ "hexical.page.arch_lamps.2": "$(o)我是一大团肉乎乎的东西,体表圆滑,没有嘴。原来曾经是眼睛的地方如今是两个冒着白烟的洞,两根橡胶棒似的东西曾经是我的双臂。肉向四周摊开变成一堆没有腿的肉团,柔软滑腻。$(br2)我没有嘴,但我必须呐喊。$()",
+ "hexcasting.action.hexical:has_arch_lamp": "大精灵之纯化",
+ "hexical.page.has_arch_lamp.summary": "判断玩家当前是否已启动$(l:lamp/arch_lamps)$(item)大精灵神灯$()。",
+ "hexcasting.action.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
+ "hexical.page.get_arch_lamp_position.summary": "将我开始使用$(l:lamp/arch_lamps)$(item)大精灵神灯$()时的位置压入栈顶。",
+ "hexcasting.action.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
+ "hexical.page.get_arch_lamp_rotation.summary": "将我开始使用$(l:lamp/arch_lamps)$(item)大精灵神灯$()时的朝向压入栈顶。",
+ "hexcasting.action.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
+ "hexical.page.get_arch_lamp_velocity.summary": "将我开始使用$(l:lamp/arch_lamps)$(item)大精灵神灯$()时的速度压入栈顶。",
+ "hexcasting.action.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
+ "hexical.page.get_arch_lamp_use_time.summary": "将$(l:lamp/arch_lamps)$(item)大精灵神灯$()开始使用后经过的时间压入栈顶。该数除以 20 即为秒数。",
+ "hexcasting.action.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
+ "hexical.page.get_arch_lamp_media.summary": "将$(l:lamp/arch_lamps)$(item)大精灵神灯$()中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
+ "hexcasting.action.hexical:set_arch_lamp_storage": "大精灵之策略",
+ "hexical.page.set_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及$(l:lamp/arch_lamps)$(item)大精灵神灯$()自身运行。设定神灯的 iota 存储。和$(item)手持式神灯$()不同,这个图案可能招致“违犯他人”事故。",
+ "hexcasting.action.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
+ "hexical.page.get_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及$(l:lamp/arch_lamps)$(item)大精灵神灯$()自身运行。获取神灯的 iota 存储。",
+
+ "hexical.page.lamp_pillows.title": "枕座",
+ "hexical.page.lamp_pillows.0": "似乎$(l:lamp/arch_lamps)$(item)大精灵神灯$()会在无人持有时抑制精灵的施法能力,也许是为阻止精灵用$(media)媒质$()削弱神灯的禁锢。我从未见到过这种表现;大概能设计如此精妙的仪器的意识总是才智与偏执并存吧。",
+
+ "hexical.page.pedestal_circles.title": "法术环中的支座",
+ "hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)支座$()也具有魔法功用!其中若放有$(l:patterns/readwrite#hexcasting:write)$(item)带着信息的物品$(),同时有$(l:greatwork/spellcircles)$(thing)法术环$()的媒质波穿过它,则它会将物品中的 iota 压入栈顶。如果该 iota 刚好处于未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$()中,则其会进入所构造的列表。",
+
+ "hexical.page.enlightened_patterns.title": "启迪后图案",
+ "hexical.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经启迪的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
+ "hexcasting.action.hexical:am_enlightened": "显圣之纯化",
+ "hexical.page.am_enlightened.summary": "检验所给玩家是否和我一样经过启迪。",
+ "hexcasting.action.hexical:is_brainswept": "感知之纯化",
+ "hexical.page.is_brainswept.summary": "检验实体“是否经由魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
+
+ "hexical.page.simple_patterns.title": "Hexical 图案",
+ "hexcasting.action.hexical:garbage": "垃圾之精思",
+ "hexical.page.garbage.summary": "返回$(l:casting/influences)$(action)垃圾$()。不懂这个图案有什么作用,但它确实是个图案。",
+ "hexcasting.action.hexical:get_media": "媒质之纯化",
+ "hexical.page.get_media.summary": "返回物品中的、生物含有的、生物持有的,即特种媒质存储方块含有的媒质。",
+
+ "hexical.page.patterns.title": "图案操作",
+ "hexical.page.patterns.0": "我发现了一系列图案,主要用于操纵及构造$(l:patterns/patterns_as_iotas)图案$()。奇怪的是,这些图案也能构造出$(l:items/staff)$(item)法杖$()$(o)无法$()绘制的图案,好在自然应该不会为这些“非法”图案分配实际作用。可以认为$(l:items/scarab)$(item)圣甲虫$()能随意使用它们。",
+ "hexcasting.action.hexical:congruent": "全等之馏化",
+ "hexical.page.congruent.summary": "检验两个图案是否外形相同且方向相同。",
+ "hexcasting.action.hexical:serialize_pattern": "笔迹师之纯化",
+ "hexical.page.serialize_pattern.summary": "将图案转换为数列表,以供拆分与分析。是$(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)书法师之纯化$()的逆法术。",
+ "hexcasting.action.hexical:deserialize_pattern": "书法师之纯化",
+ "hexical.page.deserialize_pattern.summary": "将数列表转换回图案,以供检视与运行。是$(l:patterns/pattern_manipulation#hexical:serialize_pattern)$(action)笔迹师之纯化$()的逆法术。",
+ "hexical.page.patterns.1": "$(l:patterns/pattern_manipulation#hexical:serialize_pattern)$(action)笔迹师之纯化$()返回的数对应图案中的笔画。向右上方延伸的笔画对应 0,其余方向按逆时针依次递增。$(br2)$(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)书法师之纯化$()会对超出 0 到 5 范围的数求$(l:patterns/math#hexcasting:modulo)余数$()以转换到该范围内。",
+ "hexical.page.patterns.2": "这些列表有多种良好性质。加上或减去某个常量,即可旋转图案。为列表首部和尾部切片,可提取出图案的前后缀。对于旋转对称的图案而言,将首个元素移至末尾或将最末元素移至首部,即可旋转开始位置。而通过列表操作小心更改其中元素,还可制造出$(o)向后延伸的笔画$()。",
+ "hexcasting.action.hexical:draw_pattern": "手写之馏化",
+ "hexical.page.draw_pattern.summary": "接受一个图案,并将其转换为长度为 1 的向量列表。这些向量的 Z 分量为 0。也许对某些艺术性$(hex)咒术$()很有用。",
+ "hexcasting.action.hexical:shuffle_pattern": "图案制作师之馏化",
+ "hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代的$(hex)咒术师们$()会把这些图案用在某种$(o)庞大的图书馆$()中。",
+
+ "hexical.page.perlin.title": "准随机",
+ "hexical.page.perlin.0": "某些地点的环境$(media)媒质$()密度比其他位置高。这种密度可以测量;甚至能在时间上回溯或前进,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
+ "hexcasting.action.hexical:perlin": "柏林之馏化",
+ "hexical.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
+
+ "hexical.page.special_raycasts.title": "特殊射线追踪",
+ "hexcasting.action.hexical:fluid_raycast": "海军之馏化",
+ "hexical.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.action.hexical:fluid_surface_raycast": "睡莲之馏化",
+ "hexical.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.action.hexical:piercing_raycast": "轨道炮之提整",
+ "hexical.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+ "hexcasting.action.hexical:piercing_surface_raycast": "激光之提整",
+ "hexical.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+
+ "hexical.page.telepathy.title": "心灵感应",
+ "hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于玩家的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取意图或向其写入思维。",
+ "hexcasting.action.hexical:get_telepathy": "心灵感应之精思",
+ "hexical.page.get_telepathy.summary": "对某种影像保持注意力,就可通过此图案探测到注意力的强度。压入我按下$(thing)$(k:hexical.telepathy)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
+ "hexcasting.action.hexical:send_telepathy": "传递思维",
+ "hexical.page.send_telepathy.summary": "将 iota 暂时显示在快捷栏上方。如果持续施放,则每次施放都会立刻覆盖上一次的结果。",
+ "hexcasting.action.hexical:shout_telepathy": "喊出思维",
+ "hexical.page.shout_telepathy.summary": "在屏幕中央显示 iota。这么做会阻碍视野,消散也要时间,因此不应经常使用。",
+ "hexcasting.action.hexical:pling": "幻听扣弦",
+ "hexical.page.pling.summary": "使我听到一段扣弦声,其他玩家无法听见。",
+ "hexcasting.action.hexical:click": "幻听咔哒",
+ "hexical.page.click.summary": "使我听到一段咔哒声,其他玩家无法听见。",
+ "hexcasting.action.hexical:left_click": "进攻之精思",
+ "hexical.page.left_click.summary": "压入我按下$(thing)$(k:attack)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
+ "hexcasting.action.hexical:right_click": "操纵之精思",
+ "hexical.page.right_click.summary": "压入我按下$(thing)$(k:use)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
+ "hexcasting.action.hexical:moving_up": "突进之精思",
+ "hexical.page.moving_up.summary": "压入我按下$(thing)$(k:forward)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
+ "hexcasting.action.hexical:moving_down": "后撤之精思",
+ "hexical.page.moving_down.summary": "压入我按下$(thing)$(k:back)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
+ "hexcasting.action.hexical:moving_left": "左躲之精思",
+ "hexical.page.moving_left.summary": "压入我按下$(thing)$(k:left)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。很容易和右避之精思区分,因为左躲之精思名字里有个“左”。",
+ "hexcasting.action.hexical:moving_right": "右避之精思",
+ "hexical.page.moving_right.summary": "压入我按下$(thing)$(k:right)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。很容易和左躲之精思区分,因为右避之精思名字里有个“右”。",
+ "hexcasting.action.hexical:jumping": "腾跃之精思",
+ "hexical.page.jumping.summary": "压入我按下$(thing)$(k:jump)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
+ "hexcasting.action.hexical:sneaking": "潜行之精思",
+ "hexical.page.sneaking.summary": "压入我按下$(thing)$(k:sneak)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
+
+ "hexical.page.greatwork_utils.title": "卓伟之作实用图案",
+ "hexical.page.greatwork_utils.0": "我发现了$(l:greatwork/akashiclib)阿卡夏书架$()和$(l:items/slate)$(item)石板$()的几个便捷特性!我可以对经过写入的书架按下$(thing)$(k:use)$()或使用$(l:patterns/spells/prestidigitation)魔法交互$(),以将其中 iota 复制到栈中。我还发现了能向影响范围内的$(l:greatwork/akashiclib)$(item)书架$()和$(l:items/slate)$(item)石板$()写入与读取的图案。",
+ "hexcasting.action.hexical:key_shelf": "图书管理员之纯化",
+ "hexical.page.key_shelf.summary": "读取$(l:greatwork/akashiclib)阿卡夏书架$()的键。无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:read_shelf": "图书管理员之纯化,第二型",
+ "hexical.page.read_shelf.summary": "读取$(l:greatwork/akashiclib)阿卡夏书架$()的 iota。无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:write_shelf": "图书管理员之策略",
+ "hexical.page.write_shelf.summary": "以图案键向$(l:greatwork/akashiclib)阿卡夏书架$()写入 iota。无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:clear_shelf": "图书管理员之策略,第二型",
+ "hexical.page.clear_shelf.summary": "清除给定的$(l:greatwork/akashiclib)阿卡夏书架$()。无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:read_slate": "仪式学家之纯化",
+ "hexical.page.read_slate.summary": "读取$(l:items/slate)$(item)石板$()上的图案,若无则返回 $(l:casting/influences)$(thing)Null$()。无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:write_slate": "仪式学家之策略",
+ "hexical.page.write_slate.summary": "向$(l:items/slate)$(item)石板$()写入图案,若传入 $(l:casting/influences)$(thing)Null$() 则将其清除。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+
+ "hexical.page.mage_block.title": "术师方块",
+ "hexical.page.mage_block": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
+ "hexcasting.action.hexical:conjure_mage_block": "构筑术师方块",
+ "hexical.page.conjure_mage_block.summary": "在所给位置构筑一个术师方块。消耗 3 个$(l:items/amethyst)$(item)紫水晶粉$()。$(br2)$(o)我可以凭空造出一座城市,也可令其沉没于火山熔岩之中。$()",
+ "hexcasting.action.hexical:modify_block_bouncy": "改进方块:弹性",
+ "hexical.page.modify_block_bouncy.summary": "此改进使得方块弹性十足!如此制成的方块的弹性比黏液块更好。同时我注意到,潜行时它也会把我弹起来。",
+ "hexcasting.action.hexical:modify_block_energized": "改进方块:激能",
+ "hexical.page.modify_block_energized.summary": "带有此改进的术士方块能发出红石信号,信号强度即为所给数。",
+ "hexcasting.action.hexical:modify_block_ephemeral": "改进方块:消逝",
+ "hexical.page.modify_block_ephemeral.summary": "此改进需要一个数和一个位置向量,在所给数个二十分之一秒后打碎所给位置处的方块。后续再次施法可延长或缩短等待时间。",
+ "hexcasting.action.hexical:modify_block_invisible": "改进方块:隐形",
+ "hexical.page.modify_block_invisible.summary": "此改进阻止方块散发出类似施法时产生的粒子,就算站在上面也一样。",
+ "hexcasting.action.hexical:modify_block_replaceable": "改进方块:可替",
+ "hexical.page.modify_block_replaceable.summary": "此改进非常适合建筑!其他方块可以直接放置在带有此改进的术师方块处。",
+ "hexcasting.action.hexical:modify_block_volatile": "改进方块:失稳",
+ "hexical.page.modify_block_volatile.summary": "此改进促使方块破坏与之相邻的术师方块。而当其破坏另一个失稳方块时,与其相连的所有失稳方块都会消失。",
+
+ "hexical.page.dyes.title": "染料",
+ "hexical.page.dyes.0": "染色法术和专用的 iota 可以用来改变方块和实体的颜色。染料 iota 代表一种颜色,也似乎同时象征着染色的$(o)可能性$()。例如,尝试获取草丛的染料会返回 $(l:casting/influences)$(thing)Null$(),但获取未染色陶瓦的染料会返回$(thing)uncolored$()/$(thing)无色$(),这种染料能够“漂白”可染色方块。",
+ "hexcasting.action.hexical:get_dye": "色彩之纯化",
+ "hexical.page.get_dye.summary": "获取方块、实体、方块标识、物品标识的染料。",
+ "hexcasting.action.hexical:dye": "染色",
+ "hexical.page.dye.summary": "为可染色的方块或实体染色。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.dyes.1": "此法术的有效目标如下:床、蜡烛、插上蜡烛的蛋糕、地毯、混凝土、混凝土粉末、带釉陶瓦、沙子和红沙互换、砂岩类和红砂岩类方块互换、潜影盒、染色玻璃、染色玻璃板、陶瓦、郁金香、羊毛。实体有:猫的项圈、狗的项圈、类视斑实体、潜影贝、前述方块的物品实体。",
+ "hexcasting.action.hexical:translate_dye": "视色之纯化",
+ "hexical.page.translate_dye.summary": "将染料的颜色转换为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
+
+ "hexical.page.pigments.title": "染色剂操纵",
+ "hexical.page.pigments.0": "和通过图案操纵染料一样,染色剂也可操纵。比如说,我甚至能存储多个染色剂,再让咒术随机挑选一个给我。",
+ "hexcasting.action.hexical:to_pigment": "染色剂之纯化",
+ "hexical.page.to_pigment.summary": "接受一个有色染料 iota,并转换为染色剂;接受一个玩家并返回其染色剂;或是接受一个内含染色剂的物品,并返回其染色剂。",
+ "hexcasting.action.hexical:sample_pigment": "染色剂之提整",
+ "hexical.page.sample_pigment.summary": "在给定位置和时间获取染色剂颜色,返回为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
+ "hexcasting.action.hexical:take_on_pigment": "内化染色剂,第二型",
+ "hexical.page.take_on_pigment.summary": "接受一个染色剂 iota 并内化它。",
+
+ "hexcasting.action.hexical:magic_missile": "魔法飞弹",
+ "hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时强令目标退后。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
+ "hexical.page.magic_missile.1": "第一个向量是构筑的位置,其性质相当奇妙:怪不得大多数$(hex)咒术师$()都只选择在面前构筑它们。这一参数以我的头部位置为原点,我$(l:patterns/basics#hexcasting:get_entity_look)$(action)面朝的方向$()是 Z 轴正向,$(l:patterns/scrying/entities#hexical:theodolite)$(action)头顶向上的方向$()是 Y 轴正向,头部向右的方向是 X 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
+ "hexical.page.magic_missile.2": "第二个向量是速率,好在比第一参数简单不少。它就是简单的偏移向量,与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()接受的向量类似。而与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()不同的是,本法术的向量没有模长限制,也不会因模长增加而增大消耗。$(br2)$(item)魔法飞弹$()与$(item)箭$()的不同之处在于,前者不会因为飞行速度快而造成更多伤害。飞弹还会产生一种奇怪的击退效果,无视实体的质量和弹射物的速度。",
+
+ "hexcasting.action.hexical:prestidigitation": "戏法",
+ "hexical.page.prestidigitation.summary": "通过魔法令方块或实体产生一定回应,这种回应不会偏离方块或实体本身的性质和功能太远。消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.prestidigitation.0": "此类法术和我之前遇到过的那些很不一样。它们的效果并不单一固定,而是类似于将许多不同的简单效果综合在单个法术中。它们的有效目标涵盖了许多方块和实体,我也在积极寻找它们的用途。具体内容记在后页。它大概可以看作某种基础的魔术戏法。",
+ "hexcasting.action.hexical:can_prestidigitate": "改易之纯化",
+ "hexical.page.can_prestidigitate.summary": "检验所给实体或位置是否可受戏法操纵。",
+ "hexical.page.prestidigitation.1": "我在此整理了一份经验证适用于此类法术的对象列表:打开或关闭各种材质的栅栏门、活板门、门;拨动拉杆,按压按钮;压下或松开压力板;熄灭火和灵魂火;点燃或熄灭蜡烛和营火;敲钟;为原木等去皮;雕刻南瓜;使音符盒发出声音;触发发射器和投掷器;将泥巴烤干为黏土;将大部分土壤方块变为土径,将土径变为耕地……",
+ "hexical.page.prestidigitation.2": "打开或关闭红石灯;消耗炼药锅的内容物;更改红石中继器、红石比较器、阳光探测器的状态;触发或解除 TNT 和苦力怕的爆炸;为绵羊剪毛;装上或卸下盔甲架的手臂部分;使得鱿鱼喷墨;使得熊猫打喷嚏;去除雪傀儡的头套;令河豚立刻膨胀到最大;从蜂巢和蜂箱中取出蜜脾;以及触发某种“宏伟之作”,不太清楚这是在说什么。",
+
+ "hexical.page.wristpocket.title": "魔袋",
+ "hexical.page.wristpocket.0": "让物品消失,再让物品回来的普通魔术把戏现在已易如反掌。这些物品藏在了$(o)魔袋$()之中,可用$(media)媒质$()操控。藏入魔袋的物品在我死后依然保留,只要能施法就能取回。$(br2)$(o)因为就让事物消失是不够的;你还要把它变回来。$()",
+ "hexcasting.action.hexical:wristpocket": "藏入魔袋",
+ "hexical.page.wristpocket.summary": "此法术会令另一只手中的物品组消失;也可重新让其出现,如果手中已经持有物品则会交换。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:wristpocket_item": "魔袋之精思",
+ "hexical.page.wristpocket_item.summary": "返回魔袋中物品的标识,如果魔袋为空则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexical:wristpocket_count": "魔袋之精思,第二型",
+ "hexical.page.wristpocket_count.summary": "返回魔袋中的物品数,如果魔袋为空则返回 0。",
+ "hexcasting.action.hexical:sleight": "花招",
+ "hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.sleight.0": "传入向量时:将魔袋中的物品投放到对应位置。传入物品实体时:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(l:greatwork/spellcircles)$(thing)法术环$()也可以施放此法术,以操纵促动石上方支座中的物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
+ "hexcasting.action.hexical:mage_hand": "法师之手",
+ "hexical.page.mage_hand.summary": "将我意识中的魔法手投射出来,以在世界中使用魔袋中的物品交互。如果魔袋为空,则表现为空手交互。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.mage_hand.0": "传入实体时:使用魔袋中物品与该实体交互。传入向量时:使用物品与该处方块或$(o)空间$()交互。而因为这只手仅是意识的投射,它无法使用仅限玩家的施法方式。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
+ "hexcasting.action.hexical:mage_mouth": "法师之口",
+ "hexical.page.mage_mouth.summary": "此法术能让我吃下魔袋中的物品,填饱我的肚子,或是给予我药水效果。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$(),若物品无法食用则招致事故。",
+ "hexical.page.mage_mouth.0": "无论食用通常需要多少时间、食物有何种特殊效果、我在饮食中有无限制、食用行为有无冷却、还是我是否吃饱,此法术都会瞬间完成食用。$(br2)$(o)食即药,药即食。$()",
+
+ "hexical.page.specks.title": "视斑",
+ "hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受影响范围限制。",
+ "hexcasting.action.hexical:conjure_speck": "构筑视斑",
+ "hexical.page.conjure_speck.summary": "按照所给 iota、位置、朝向构筑视斑。消耗极少量$(media)媒质$()。压入视斑 iota。",
+ "hexcasting.action.hexical:move_specklike": "移动视斑",
+ "hexical.page.move_specklike.summary": "将视斑实体移动至所给位置。",
+ "hexcasting.action.hexical:rotate_specklike": "旋转视斑",
+ "hexical.page.rotate_specklike.summary": "令视斑实体的朝向变为所给向量。",
+ "hexcasting.action.hexical:roll_specklike": "滚转视斑",
+ "hexical.page.roll_specklike.summary": "接受一个 0 与 1 之间的数,用作旋转圈数,并依此旋转视斑。",
+ "hexcasting.action.hexical:iota_speck": "更改视斑",
+ "hexical.page.iota_speck.summary": "更改视斑对应的 iota。",
+ "hexcasting.action.hexical:lifetime_specklike": "计时视斑",
+ "hexical.page.lifetime_specklike.summary": "令视斑在所给数个二十分之一秒后消失。",
+ "hexcasting.action.hexical:size_specklike": "缩放视斑",
+ "hexical.page.size_specklike.summary": "更改视斑的大小,接受 0 与 10 之间的数。此数表示以格计的大小,默认为 0。",
+ "hexcasting.action.hexical:thickness_specklike": "增粗视斑",
+ "hexical.page.thickness_specklike.summary": "更改图案视斑笔触的粗细,接受 0 与 10 之间的数。此数表示以 1/20 格计的大小,默认为 0。",
+ "hexcasting.action.hexical:pigment_specklike": "染色视斑",
+ "hexical.page.pigment_specklike.summary": "将染色剂施加于视斑,可在构筑后更改其颜色。",
+ "hexcasting.action.hexical:kill_specklike": "驱散视斑",
+ "hexical.page.kill_specklike.summary": "强令视斑实体消失。",
+ "hexcasting.action.hexical:zone_specklike": "区域之馏化:类视斑",
+ "hexical.page.zone_specklike.summary": "返回视斑实体,效果与其他$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$()类似。",
+
+ "hexical.page.simple_spells.title": "Hexical 法术",
+ "hexcasting.action.hexical:confetti": "彩花",
+ "hexical.page.confetti.summary": "在给定位置以给定方向、速率、速度制造一阵类似$(l:patterns/spells/pyrotechnics)烟花$()的响声及一簇色彩鲜艳的粒子。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.confetti.description": "这些粒子不会造成伤害,且在触地前会四处飘动。第一个向量控制位置。第二个参数控制方向;若传入数,则表示向所有方向爆炸的速度;若传入向量,则会令粒子偏向该方向。数的绝对值和向量的模长均不可超过 2。$(br2)$(o)剩下的不过是些彩花。$()",
+ "hexcasting.action.hexical:sparkle": "烁星",
+ "hexical.page.sparkle.summary": "在给定位置以给定颜色和持续时间制造一颗闪光的小粒子。消耗极少量$(media)媒质$()。",
+ "hexical.page.sparkle.description": "第一个向量控制位置,第二个控制颜色。第二向量各分量应为 0 到 1 的数,分别对应红、绿、蓝三色。最后的数代表烁星应存在多少个 1/20 秒,最多可存在 5 秒。$(br2)$(o)闪光的不一定是金子。$()",
+ "hexcasting.action.hexical:block_ping": "标记方块",
+ "hexical.page.block_ping.summary": "将$(media)媒质$()聚焦成裸眼可见的小立方体,很适合用来高亮标记各种物体。消耗极少量$(media)媒质$()。",
+ "hexical.page.block_ping.description": "第一个向量控制位置,第二个控制颜色。第二向量各分量应为 0 到 1 的数,分别对应红、绿、蓝三色。最后的数代表标记应存在多少个 1/20 秒,最多可存在 10 秒。$(br2)$(o)给我瞅瞅!$()",
+ "hexcasting.action.hexical:crack_device": "破解设备",
+ "hexical.page.crack_device.summary": "对不包含$(hex)咒术$()的$(l:items/hexcasting)$(item)施法物品$()使用时,$(o)将其破解$()。经破解的施法物品会自豪地展现它们的$(hex)咒术$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+ "hexical.page.crack_device.description": "如果试图破解已经写入过的设备的内部结构,法术便会让我眼盲一段时间。不过,我认为好像有一瞬,我看到了$(hex)咒术$()显现在我的眼前,$(media)媒质$()填满了我的大脑。$(br2)$(o)现在时间都要靠电啦、振荡的石英晶体啦,鬼知道什么东西来走。$()$(br)——明显是在说$(l:items/amethyst)$(item)紫水晶$()。",
+ "hexcasting.action.hexical:place_block_type": "构筑",
+ "hexical.page.place_block_type.summary": "在给定位置以给定朝向和水平朝向放置我物品栏中给定类型的方块。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.place_block_type.description": "标识参见$(l:patterns/scrying/identifiers)$(action)标识探知章节$()。“朝向”指一个轴向向量,代表我在放置方块时面朝的方向。对门、楼梯等方块来说,朝向应为上或下,而“水平朝向”则决定了方块的朝向。$(br2)$(o)在现代文明人类的心理中,房子的重要性怎么强调都不为过。$()",
+ "hexcasting.action.hexical:autograph": "签名",
+ "hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的$(l:items/pigments)$(item)染色剂$()为颜色。无需消耗$(media)媒质$();且作为亲笔的证明,只能由我的$(item)$(l:items/staff)法杖$()施放。",
+ "hexical.page.autograph.description": "所有对物品施放过此法术的人,其名字会依次保留在物品上,且保留对应的$(l:items/pigments)$(item)染色剂$()。签过名的物品无法与未签名的物品堆叠,同种的物品也不能。签名无法通过$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)常规手段$()去除。同一人能给同一物品多次签名,如此那人的名字便会移至最下方。$(br2)$(o)我强烈反对引用这句话的所有作品。$()",
+ "hexcasting.action.hexical:unautograph": "撤回签名",
+ "hexical.page.unautograph.summary": "特种化的$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$(),能够抹除签名。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$(),类似$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()。",
+ "hexical.page.unautograph.description": "即便签名与物品$(media)媒质$()之间的纽带相当强大,这个法术依然能将它$(o)撕开$()。不过,它同时还会清空$(l:items/focus)$(item)核心$()存有的 iota 以及$(l:items/hexcasting)$(item)施法物品$()的$(hex)咒术$()和$(media)媒质$()。大概也算是好事吧;我送出的$(hex)咒法学$()礼品上只要还留有我的签名,那就可确认无人从中作梗。",
+ "hexcasting.action.hexical:conjure_hexburst": "构筑咒术星爆糖",
+ "hexical.page.conjure_hexburst.summary": "使用所给 iota 在给定位置构筑一枚$(item)咒术星爆糖$()。消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
+ "hexical.page.conjure_hexburst.description": "取出一个 iota,再在周围包裹$(media)媒质$(),直至它具备物理形态,就得到了可食用的$(item)咒术星爆糖$()。食用时,这种糖会将其中的 iota 压入食用者的栈。如果我想要交易代表我的 iota,它应该会很有用。如果栈中有未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),则其会进入所构造的列表。",
+ "hexcasting.action.hexical:conjure_hextito": "构筑咒力多滋",
+ "hexical.page.conjure_hextito.summary": "在给定位置构筑一片$(hex)咒力多滋$()。消耗 2 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
+ "hexical.page.conjure_hextito.description": "$(hex)咒力多滋$()是一种三角形的酥脆零食。食用者会立即施放其中$(hex)咒术$();使用的是$(item)$(l:items/staff)法杖$()栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合简单的操作集合,也方便我与他人分享我设计的$(hex)咒术$()。如果食用者的栈存在未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),其中咒术便不会施放,以此保障他人使用的安全。",
+ "hexcasting.action.hexical:flower": "构筑花卉",
+ "hexical.page.flower.summary": "在给定位置构筑一株花,品种任选。所需的花卉必须先经过$(l:patterns/scrying/identifiers)$(action)标识$()。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.flower.description": "构筑处四周必须存在足够支撑植物的平坦表面。不要求它可以种植花卉;但如果不可种植,那么任何轻微的动作都会让花朵掉落。还可以在花盆处使用:法术会先尝试在其中构筑。$(br2)$(o)杂草不过是还未得人青睐的鲜花。$()",
+ "hexcasting.action.hexical:light": "荧亮",
+ "hexical.page.light.summary": "在给定位置构筑一个给定光照强度的隐形光源。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.light.description": "构筑的位置必须腾空,或需该处方块极为脆弱。光照强度为 1 到 15 的数,两端闭。如果对应位置处已有光源,则法术变为无消耗,也不会产生粒子。$(br2)$(o)光明使人盲目。只有身处黑暗才能洞悉本质。$()",
+ "hexcasting.action.hexical:snowball": "构筑雪球",
+ "hexical.page.snowball.summary": "构筑一个不会造成伤害的雪球,并压入一个实体 iota。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.snowball.description": "若没有$(hex)咒术$()协助,构筑处的雪球便会向下坠落,也即必须使用$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()发射出去。$(br2)$(o)随着年岁的增长,我也愈有为世界做贡献的力量;我像是一个雪球——滚得越远,长得就越大。$()",
+ "hexcasting.action.hexical:ghast_fireball": "构筑火球",
+ "hexical.page.ghast_fireball.summary": "构筑一个易爆火球,并压入一个实体 iota。消耗大约 3 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.ghast_fireball.description": "构筑出的火球只会停在空中,必须敲击或通过$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()发射出去。当然也可用同种手段更改其飞行方向。$(br2)$(o)要是不能炸坏什么东西的话,掌控宇宙平衡和知晓命运之秘又有什么好处呢?$()",
+ "hexcasting.action.hexical:llama_spit": "吐唾沫",
+ "hexical.page.llama_spit.summary": "构筑一个能造成少量伤害的黏性弹射物。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.llama_spit.description": "构筑出的弹射物不带速度,不加$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()便只会因重力而下坠。它造成的伤害微不足道,大概不太适合战斗,但又很便宜……$(br2)$(o)会爆成一团黏答答乱麻的弹射物。$()",
+ "hexcasting.action.hexical:gasp": "喘息",
+ "hexical.page.gasp.summary": "立即填满生物的氧气条,消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$(),因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
+ "hexcasting.action.hexical:parrot": "啼鸣",
+ "hexical.page.parrot.summary": "在某位置附近发出一阵与某生物有关的声音,就好像鹦鹉模仿了那个生物的声音一样。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.parrot.description": "如果鹦鹉无法模仿声音,此法术便不会有功效,但仍会消耗$(media)媒质$()。$(br2)我觉得这大概只能用来给朋友和敌人开玩笑。也许自然真的允许我偶尔用$(hex)咒术$()找乐子,这个便宜法术好像就是为此而生的。$(br2)$(o)嘶嘶嘶嘶嘶……$()",
+ "hexcasting.action.hexical:myodesopsia": "飞蚊症",
+ "hexical.page.myodesopsia.summary": "在我周围构筑所给列表中图案的投影,对我自己和附近玩家可见。无需消耗$(media)媒质$()。",
+ "hexical.page.myodesopsia.description": "这些图案投影和使用其他方法施法时出现的“浮游物”类似,也许它只是构筑了施放所给列表后会出现的东西。有趣的是,各个图案不管在列表中出现多少次,都只会投射一次。",
+
+ "hexical.page.conjure_compass.title": "构筑指南针",
+ "hexcasting.action.hexical:conjure_compass": "构筑指南针",
+ "hexical.page.conjure_compass.summary": "在给定位置构筑一个$(item)构筑的指南针$(),它指向当前维度的第二向量处。消耗大约 3 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.conjure_compass.description": "若使用$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()读取,则会返回指向所给位置的单位向量。身处其他维度时,$(item)指南针$()会剧烈旋转,读取的产物也变成了 $(l:casting/influences)$(thing)Null$()。$(item)指南针$()用完后,还可以当点心吃了它。$(br2)$(o)对头,指北针不指北方。但我们根本没在找北方啊!$()",
+
+ "hexical.page.spike.title": "构筑尖刺",
+ "hexical.page.spike.0": "我曾听过有一位灾厄村民术士能在地上构筑尖牙。要相信“村民能操控$(media)媒质$()”这种说法很难,但从其中获取灵感还是可行的。我依此制造出了这条法术,能够从地下升起尖刺刺穿目标。",
+ "hexcasting.action.hexical:spike": "构筑尖刺",
+ "hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。",
+ "hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会在缓慢缩回前造成高达三颗心的伤害。若在已经触发尖刺的位置重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
+
+ "hexical.page.tchotchke.title": "杂饰",
+ "hexical.page.tchotchke.0": "$(item)杂饰$()和$(l:items/hexcasting)$(item)杂件$()比较相像。它们都有施法用的媒质储库,该储库耗尽后也不会消耗我的生命值和物品栏中的$(media)媒质$()物品。它们都无法重新充能,无法重新写入,对其使用$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()也都会将其毁灭。这种法杖的真正力量在于$(o)输入拦截$()。",
+ "hexical.page.tchotchke.1": "手持$(item)杂饰$()时按下$(thing)$(k:attack)$()或$(thing)$(k:use)$(),它便会拦截这一按键,阻止我与世界交互。拦截次数达到构筑时给定的“位阶”后,它便会施放给定的$(hex)咒术$(),同时根据按下$(thing)$(k:attack)$()或$(thing)$(k:use)$()压入一个 False 或 True 组成的列表。如果按键之间间隔过久,当次“施法”便会直接取消。",
+ "hexcasting.action.hexical:conjure_tchotchke": "构筑杂饰",
+ "hexical.page.conjure_tchotchke.summary": "在所给位置处使用给定$(media)媒质$()量、位阶、$(hex)咒术$()构筑$(item)杂饰$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$(),同时消耗存入储库的$(media)媒质$()。",
+ "hexical.page.tchotchke.2": "我发现古代的$(hex)咒术师们$()很喜欢用这些物件,主要是因为用途多种多样和构筑便捷。杂饰内部还有一个 iota 存储空间,只能由其自身编辑。因此,每个杂饰都可看作完全封闭的魔法饰品。$(br2)$(o)完美的状态,不是不再需要增加什么,而是无可删减。$()",
+ "hexcasting.action.hexical:write_tchotchke": "杂饰之策略",
+ "hexical.page.write_tchotchke.summary": "向$(item)杂饰$()的内部存储写入 iota,将来用其施法时可以读出。可能招致“违犯他人”事故,且无法被其他物品读取。",
+ "hexcasting.action.hexical:read_tchotchke": "杂饰之精思",
+ "hexical.page.read_tchotchke.summary": "从$(item)杂饰$()的内部存储读出 iota。",
+
+ "hexical.page.circle_spells.title": "法术环法术",
+ "hexical.page.circle_spells.0": "媒质流穿梭于$(l:greatwork/spellcircles)法术环$()中,其囊括的区域因而充盈着$(media)媒质$(),产生强大魔法效果和灵活控制其中$(media)媒质$()也就不再是难事。我将需要这种增浓媒质场的法术记载后页,它们只可由$(l:greatwork/impetus)促动石$()施放。",
+ "hexcasting.action.hexical:displace": "转移",
+ "hexical.page.displace.summary": "无需任何媒质,就可将$(l:greatwork/spellcircles)环$()中实体传送至同一$(l:greatwork/spellcircles)法术环$()中任意一处。与$(l:patterns/great_spells/teleport)$(action)卓越传送$()不同在于,此法术接受的是绝对坐标。无需消耗$(media)媒质$()。",
+
+ "hexical.page.evocation.title": "唤咒",
+ "hexical.page.evocation.0": "$(media)媒质$()是思维的能量,则逻辑推理可得,我应当能够直接把$(o)脑海中$()的魔法变为现实,而不需要挥舞$(item)$(l:items/staff)法杖$(),毕竟我在最优状态下大约相当于 2 个$(l:items/amethyst)$(item)充能紫水晶$(),是$(l:items/staff)$(item)法杖$()的两倍。我的意识目前还不够强大,无法随意将想法化作现实,不过挥挥手唤出已蚀刻入意识的$(hex)咒术$()还是可以的。这么做会消耗我物品栏中的$(media)媒质$()。",
+ "hexcasting.action.hexical:set_evocation": "加深印象",
+ "hexical.page.set_evocation.summary": "刻入一份$(hex)咒术$(),此后按住$(thing)$(k:hexical.evoke)$()键 1 秒即可唤咒施放。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。$(br2)$(o)但是安东尼动了动念头,结果它在草地上做了个后滚翻,然后浑身颤抖地躺着,小小的黑眼睛中闪烁的全是恐惧。$()",
+ "hexcasting.action.hexical:get_evocation": "唤咒之精思",
+ "hexical.page.get_evocation.summary": "返回刻入我意识的$(hex)咒术$()。",
+ "hexcasting.action.hexical:is_evoking": "唤魔者之精思",
+ "hexical.page.is_evoking.summary": "压入玩家唤咒的时间,未在唤咒则为 -1。",
+ "hexical.page.evocation.1": "记载有这项技术的古代文本还写有其他琐事。曾经的$(hex)咒术师们$()唤咒时无需施放$(hex)咒术$(),而是会在某种集会或集体仪式中挥动手臂合唱。也有人曾试验过,是否有法术能将$(hex)咒术$()蚀刻入$(o)村民$(),以给予他们操控$(media)媒质$()的手段。但这些试验的结果从未见诸文献,抑或是已经散佚殆尽。",
+
+ "hexical.page.pyrotechnics.title": "烟花工艺",
+ "hexical.page.pyrotechnics.0": "我发现了一些构筑烟花的法术。$(media)媒质$()在这些图案周围欢欣地嗡鸣着,就好像它们曾用于庆典一样;它们用作武器的威力也可谓令人震悚。$(br2)$(o)什么都别说了。先欣赏烟花吧。$()",
+ "hexcasting.action.hexical:simulate_firework": "模拟烟花",
+ "hexical.page.simulate_firework.summary": "分析另一只手中的$(item)烟火之星$(),并构筑一道烟花,位置、速度、与火药量有关的飞行时间均由烟火之星决定。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。",
+ "hexcasting.action.hexical:conjure_firework": "构筑烟花",
+ "hexical.page.conjure_firework.summary": "$(br)根据我$(o)详细$()给定的参数构筑一道烟花。这是我迄今为止发现的最复杂的法术之一。消耗量与其他烟花法术一致。",
+ "hexical.page.conjure_firework.0": "$(o)基础理论$()$(br2)前两个参数分别是位置和速度。第三个参数决定其飞行时间,需是 1 与 3 之间的数。可以认为是加入烟花火箭的$(item)火药$()份数。$(br2)剩余的参数可看作$(thing)虚拟烟火之星$()的各特征。",
+ "hexical.page.conjure_firework.1": "$(o)形状效果$()$(br2)第四个参数控制烟花的形状,需是 0 与 3 之间的数。$(br)- 0 对应简单的小型球状效果。$(br)- 1 对应大型球状效果。$(br)- 2 对应星形效果。$(br)- 3 对应大型苦力怕状效果。",
+ "hexical.page.conjure_firework.2": "$(o)颜色$()$(br2)第五和第六个参数是$(l:patterns/spells/dyes)染料$()列表。第一个列表控制烟花的“初始”颜色,第二个列表控制烟花消散时的“渐变”颜色。第一列表中需至少含有一个染料;若不需“渐变”,第二个列表可以留空。",
+ "hexical.page.conjure_firework.3": "$(o)附加效果$()$(br2)第七个参数控制烟花粒子是否闪烁,相当于加入荧石与否。$(br2)第八个参数控制烟花粒子是否留下踪迹,相当于加入钻石与否。",
+
+ "hexical.page.shaders.title": "着色器",
+ "hexical.page.shaders.0": "这些法术作用于我的光感受体,能更改我的视野,也许是为实际用途,也许只是好玩。这些法术的效果会在死亡或暂离世界时消散。$(br2)$(o)你感觉得到了解放。你感觉你与魔力和谐共处。挖,这颜色闻起来真有意思。通常的概念已经不起作用。$()",
+ "hexcasting.action.hexical:shader_clear": "清空视野",
+ "hexical.page.shader_clear.summary": "终止我当前拥有的所有着色器法术。很适合在过度实验后“缓缓”眼睛。",
+ "hexcasting.action.hexical:shader_owl": "穿透黑暗",
+ "hexical.page.shader_owl.summary": "大幅改善我在暗处的视野,不过光照会同时变得极为刺眼。",
+ "hexcasting.action.hexical:shader_lines": "显现形体",
+ "hexical.page.shader_lines.summary": "将世界变为黑白细线。很适合用来辨别微妙的差异。",
+ "hexcasting.action.hexical:shader_tv": "广播视野",
+ "hexical.page.shader_tv.summary": "令我的视野中出现奇怪的线条,且视野的中心“向我”突出。大概是有所致敬……",
+ "hexcasting.action.hexical:shader_media": "辨识重点",
+ "hexical.page.shader_media.summary": "让我只能看见最为重要的事物……",
+ "hexcasting.action.hexical:shader_spider": "分裂视野",
+ "hexical.page.shader_spider.summary": "将我的视野分裂为多个小块,和蜘蛛的视野大概差不多。不太清楚为什么这么做能让我看得更清晰……",
+
+ "hexical.category.scrying": "探知",
+ "hexical.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。这些图案可用来卜取一系列信息,方块和实体的类型、药水效果、天气、食物的营养、我在疾跑与否、$(o)方块的爆炸抗性$()等都在其列。虽然这些操作在大多数$(hex)咒术$()中没什么大用处,但有它们在也不错,我将来也许会用到。",
+
+ "hexical.page.blocks.title": "方块",
+ "hexcasting.action.hexical:block_hardness": "矿工之纯化",
+ "hexical.page.block_hardness.summary": "压入挖掘给定方块的难易程度。",
+ "hexcasting.action.hexical:block_blast_resistance": "爆破兵之纯化",
+ "hexical.page.block_blast_resistance.summary": "压入方块对爆炸的抗性。",
+ "hexcasting.action.hexical:blockstate_waterlogged": "管道工之纯化",
+ "hexical.page.blockstate_waterlogged.summary": "检验方块是否含水。若方块无法含水,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexical:blockstate_rotation": "方向之纯化",
+ "hexical.page.blockstate_rotation.summary": "压入方块的朝向向量。若方块无朝向向量,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexical:blockstate_crop": "农夫之纯化",
+ "hexical.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的成熟程度,对蜂巢、堆肥桶、炼药锅同样有效。奇怪的是,对蛋糕也有效。",
+ "hexcasting.action.hexical:blockstate_glow": "发光之纯化",
+ "hexical.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有熔炉、红石火把、灯笼、营火等。",
+ "hexcasting.action.hexical:blockstate_lock": "锁之纯化",
+ "hexical.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有门、活板门、栅栏门、木桶等。",
+ "hexcasting.action.hexical:blockstate_turn": "角度之纯化",
+ "hexical.page.blockstate_turn.summary": "压入一个数,对应告示牌、头颅、旗帜的旋转方向。",
+ "hexcasting.action.hexical:blockstate_bunch": "叠放之纯化",
+ "hexical.page.blockstate_bunch.summary": "返回方块的叠放数,无法叠放则返回 $(l:casting/influences)$(thing)Null$()。仅对蜡烛、海泡菜、海龟蛋有效。",
+ "hexcasting.action.hexical:blockstate_book": "书之纯化",
+ "hexical.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。我读到过它可能对所谓“卓伟大作”中的某种奇妙书架也有效。",
+
+ "hexical.page.enchantments.title": "魔咒",
+ "hexcasting.action.hexical:get_enchantments": "奇术师之纯化",
+ "hexical.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
+ "hexcasting.action.hexical:get_enchantment_strength": "咒能之馏化",
+ "hexical.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
+
+ "hexical.page.entities.title": "实体",
+ "hexcasting.action.hexical:entity_width": "卡尺之纯化",
+ "hexical.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
+ "hexcasting.action.hexical:theodolite": "经纬仪之纯化",
+ "hexical.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
+ "hexcasting.action.hexical:get_health": "生命力之纯化",
+ "hexical.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
+ "hexcasting.action.hexical:get_max_health": "健康之纯化",
+ "hexical.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
+ "hexcasting.action.hexical:get_air": "窒息之纯化",
+ "hexical.page.get_air.summary": "压入实体距离窒息剩余的秒数。对脱水的鱼和溺水的陆地生物均有效。",
+ "hexcasting.action.hexical:get_max_air": "双肺之纯化",
+ "hexical.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少秒开始窒息。",
+ "hexcasting.action.hexical:get_player_hunger": "饥饿之纯化",
+ "hexical.page.get_player_hunger.summary": "返回玩家实体的饥饿值。使用半个饥饿值火腿作为单位。",
+ "hexcasting.action.hexical:get_player_saturation": "耐力之纯化",
+ "hexical.page.get_player_saturation.summary": "返回我的饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.action.hexical:is_burning": "炼狱之纯化",
+ "hexical.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
+ "hexcasting.action.hexical:burning_time": "炼狱之纯化,第二型",
+ "hexical.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余的时间。",
+ "hexcasting.action.hexical:is_wet": "末影人之纯化",
+ "hexical.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
+ "hexcasting.action.hexical:is_baby": "青春之纯化",
+ "hexical.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对盔甲架也有效。",
+ "hexcasting.action.hexical:breedable": "繁衍之纯化",
+ "hexical.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexical:is_sleeping": "树懒之纯化",
+ "hexical.page.is_sleeping.summary": "检验实体是否在睡眠状态。对玩家、猫、狐狸、以及一系列其他生物有效。",
+ "hexcasting.action.hexical:is_sprinting": "赛车手之纯化",
+ "hexical.page.is_sprinting.summary": "检验实体是否在疾跑。速泳和疾跑后离地均算作疾跑,对猫、狐狸等也有效。",
+
+ "hexical.page.environment.title": "环境",
+ "hexical.page.environment.0": "本节的图案比较“元”:它们会返回其所处的魔法环境。特定的环境中某些图案无法施放,所以本节图案也许适合用来规避事故。",
+ "hexcasting.action.hexical:env_ambit": "影响范围之纯化",
+ "hexical.page.env_ambit.summary": "检验所给位置或实体是否处于影响范围中。",
+ "hexcasting.action.hexical:env_staff": "法杖之精思",
+ "hexical.page.env_staff.summary": "检验该图案是否由$(l:items/staff)$(item)法杖$()施放。",
+ "hexcasting.action.hexical:env_offhand": "敏捷之精思",
+ "hexical.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果……",
+ "hexcasting.action.hexical:env_media": "媒质之精思",
+ "hexical.page.env_media.summary": "返回此次施放时可用的$(media)媒质$()的量。",
+ "hexcasting.action.hexical:env_packaged_hex": "设备之精思",
+ "hexical.page.env_packaged_hex.summary": "检验该图案是否由任意$(l:items/hexcasting)$(item)施法物品$()施放。",
+ "hexcasting.action.hexical:env_hand_lamp": "许愿之精思",
+ "hexical.page.env_hand_lamp.summary": "检验该图案是否由$(l:lamp/hand_lamps)$(item)手持式精灵神灯$()施放。",
+ "hexcasting.action.hexical:env_arch_lamp": "大愿之精思",
+ "hexical.page.env_arch_lamp.summary": "检验该图案是否由$(l:lamp/arch_lamps)$(item)大精灵神灯$()施放。",
+ "hexcasting.action.hexical:env_turret": "炮塔之精思",
+ "hexical.page.env_turret.summary": "检验该图案是否由处于$(l:items/pedestals)$(thing)支座$()中的$(l:lamp/arch_lamps)$(item)大精灵神灯$()施放。",
+ "hexcasting.action.hexical:env_circle": "建构之精思",
+ "hexical.page.env_circle.summary": "检验该图案是否由某种$(l:greatwork/spellcircles)$(thing)$(o)卓伟之作$()施放。",
+ "hexcasting.action.hexical:env_evocation": "灵能之精思",
+ "hexical.page.env_evocation.summary": "检验该图案是否$(l:patterns/spells/evocation)$(item)只通过思维$()施放。",
+ "hexcasting.action.hexical:env_tchotchke": "饰件之精思",
+ "hexical.page.env_tchotchke.summary": "检验该图案是否由$(l:patterns/spells/tchotchke)$(item)杂饰$()施放。",
+
+ "hexical.page.food.title": "食物",
+ "hexcasting.action.hexical:edible": "可食性之纯化",
+ "hexical.page.edible.summary": "接受一个物品标识,检验它是否可被我食用。",
+ "hexcasting.action.hexical:get_hunger": "卡路里之纯化",
+ "hexical.page.get_hunger.summary": "接受一个物品标识,返回它为我带来的饱腹感的量。",
+ "hexcasting.action.hexical:get_saturation": "饱和之纯化",
+ "hexical.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.action.hexical:is_meat": "肉类之纯化",
+ "hexical.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类,也即狼能否食用。",
+ "hexcasting.action.hexical:is_snack": "甜点之纯化",
+ "hexical.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食,也即可否迅速食用。",
+
+ "hexical.page.identifiers.title": "标识",
+ "hexical.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
+ "hexcasting.action.hexical:identify": "侦探之纯化",
+ "hexical.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
+ "hexical.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
+ "hexcasting.action.hexical:recognize": "识别器之纯化",
+ "hexical.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
+ "hexcasting.action.hexical:classify": "分类器之纯化",
+ "hexical.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
+ "hexcasting.action.hexical:get_mainhand_stack": "工具之纯化",
+ "hexical.page.get_mainhand_stack.summary": "返回玩家主手物品的类型。",
+ "hexcasting.action.hexical:get_offhand_stack": "配饰之纯化",
+ "hexical.page.get_offhand_stack.summary": "返回玩家副手物品的类型。",
+
+ "hexical.page.item.title": "物品",
+ "hexcasting.action.hexical:count_stack": "仓储之纯化",
+ "hexical.page.count_stack.summary": "接受一个物品实体,返回其中物品数量。",
+ "hexcasting.action.hexical:count_max_stack": "库房之纯化",
+ "hexical.page.count_max_stack.summary": "接受一个物品实体,返回其中最多可堆叠多少物品。",
+ "hexcasting.action.hexical:damage_stack": "损耗之纯化",
+ "hexical.page.damage_stack.summary": "接受一个物品实体,返回物品剩余的耐久度。",
+ "hexcasting.action.hexical:damage_max_stack": "脆弱性之纯化",
+ "hexical.page.damage_max_stack.summary": "接受一个物品实体,返回物品的耐久度上限。",
+ "hexcasting.action.hexical:media_max_stack": "潜能之纯化",
+ "hexical.page.media_max_stack.summary": "接受一个物品实体,若其无法存储媒质,返回 $(l:casting/influences)$(thing)Null$();否则返回其$(media)媒质$()存储上限。",
+
+ "hexical.page.status_effects.title": "状态效果",
+ "hexcasting.action.hexical:get_effects_entity": "诊断之纯化",
+ "hexical.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
+ "hexcasting.action.hexical:get_effects_item": "处方之纯化",
+ "hexical.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
+ "hexcasting.action.hexical:get_effect_category": "药性之纯化",
+ "hexical.page.get_effect_category.summary": "获取某效果对承受者造成效应“良性”与否。-1 为负面,0 为中性,1 为正面。",
+ "hexcasting.action.hexical:get_effect_amplifier": "浓度之馏化",
+ "hexical.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexical:get_effect_duration": "效除之馏化",
+ "hexical.page.get_effect_duration.summary": "获取效果的持续时间,以秒计,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
+
+ "hexical.page.world.title": "世界",
+ "hexcasting.action.hexical:get_light": "光照之纯化",
+ "hexical.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
+ "hexcasting.action.hexical:get_weather": "天气学家之精思",
+ "hexical.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
+ "hexcasting.action.hexical:get_power": "电池之纯化",
+ "hexical.page.get_power.summary": "返回给定位置的红石信号强度。",
+ "hexcasting.action.hexical:get_comparator": "外设之纯化",
+ "hexical.page.get_comparator.summary": "返回比较器对准给定位置时会输出的红石信号强度。",
+ "hexcasting.action.hexical:get_day": "昼夜之精思",
+ "hexical.page.get_day.summary": "返回当天时间的进程,返回值在 0(一天刚开始)到 1(一天要结束)之间。",
+ "hexcasting.action.hexical:get_time": "时间之精思",
+ "hexical.page.get_time.summary": "压入世界经过的时间,主要用来计时,不受睡觉等事件的影响。除以 20 后即为秒数。",
+ "hexcasting.action.hexical:get_biome": "地理之纯化",
+ "hexical.page.get_biome.summary": "返回给定位置向量处生物群系的标识。",
+ "hexcasting.action.hexical:get_dimension": "位面之精思",
+ "hexical.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。",
+ "hexcasting.action.hexical:get_moon": "月相之精思",
+ "hexical.page.get_moon.summary": "返回当前的月相,返回值为可见的月亮照亮区域的占比。",
+ "hexcasting.action.hexical:get_einstein": "扭曲之精思",
+ "hexical.page.get_einstein.summary": "检验该维度是否遵守时间与空间的标准规则:指南针和钟能在其中运作。",
+
+ "hexcasting.action.hexical:greater_blink": "卓越闪现",
+ "hexical.page.greater_blink.0": "卓越闪现比$(l:patterns/great_spells/teleport)$(action)卓越传送$()要便宜许多。它不会在抵达时让我全身的物品散落。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
+ "hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往我面朝的方向传送 1 格。向量 (0, 1, 0) 会往我头顶的法向传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。向量 (1, 0, 0) 会往我的右侧传送 1 格。",
+ "hexical.page.greater_blink.2": "$(o)长跳特!比你想的还要久——$()",
+
+ "hexical.page.meshes.title": "网斑",
+ "hexical.page.meshes.0": "网斑是$(l:patterns/spells/specks)视斑$()的进化形态。不会再受 iota 和图案的限制,也无需屈居于二维平面,网斑接受三维空间中的向量列表并在其间连线,由此带来的创意无穷无尽。网斑也会对大多数操纵视斑的图案有反应。",
+ "hexcasting.action.hexical:conjure_mesh": "构筑网斑",
+ "hexical.page.conjure_mesh.summary": "在所给位置构筑一个网斑,并压入一个网斑实体。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.meshes.1": "网斑只在编织后才有外形。用以构筑网斑的向量列表无需遵守太多规则:只要列表的长度不超出 32 个向量,且向量的模长小于 10 即可。而后,网斑会依次连接它们。",
+ "hexcasting.action.hexical:weave_mesh": "编织网斑",
+ "hexical.page.weave_mesh.summary": "接受一个向量列表,需遵守前页指定的规则,并将网斑编织成所给形状,无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:read_mesh": "纠缠之纯化",
+ "hexical.page.read_mesh.summary": "将网斑的外形返回为向量列表。可用于复制网斑。"
+}
From b329ba6504ebaa79b998f86e2f3b5e37e9ccc1a5 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 22:42:41 +0800
Subject: [PATCH 11/78] Hexiron HexKinetics Hexlink create
---
.../assets/hexiron/hexiron/lang/en_us.json | 14 ++
.../assets/hexiron/hexiron/lang/zh_cn.json | 14 ++
.../hexkinetics/hexkinetics/lang/en_us.json | 89 ++++++++++
.../hexkinetics/hexkinetics/lang/zh_cn.json | 89 ++++++++++
.../assets/hexlink/hexlink/lang/en_us.json | 163 ++++++++++++++++++
.../assets/hexlink/hexlink/lang/zh_cn.json | 163 ++++++++++++++++++
6 files changed, 532 insertions(+)
create mode 100644 projects/1.19/assets/hexiron/hexiron/lang/en_us.json
create mode 100644 projects/1.19/assets/hexiron/hexiron/lang/zh_cn.json
create mode 100644 projects/1.19/assets/hexkinetics/hexkinetics/lang/en_us.json
create mode 100644 projects/1.19/assets/hexkinetics/hexkinetics/lang/zh_cn.json
create mode 100644 projects/1.19/assets/hexlink/hexlink/lang/en_us.json
create mode 100644 projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
diff --git a/projects/1.19/assets/hexiron/hexiron/lang/en_us.json b/projects/1.19/assets/hexiron/hexiron/lang/en_us.json
new file mode 100644
index 000000000000..9ce360d481c8
--- /dev/null
+++ b/projects/1.19/assets/hexiron/hexiron/lang/en_us.json
@@ -0,0 +1,14 @@
+{
+ "hexcasting.spell.hexiron:angelwings": "White Sun's Meridian",
+ "hexcasting.spell.hexiron:planarsight": "Red Sun's Meridian",
+ "hexcasting.spell.hexiron:oakskin": "Green Sun's Meridian",
+ "hexcasting.spell.hexiron:trueinvis": "Black Sun's Meridian",
+ "hexcasting.spell.hexiron:charged": "Blue Sun's Meridian",
+ "hexiron.entry.ironspells": "Iron's Spells 'n Spellbooks",
+ "hexiron.pages.ironspells.1": "It seems that myriad forms of magic exist in the multiverse, you just need to know where to look. The spells documented here interact with one such magic system, functioning similarly to the familiar $(l:patterns/great_spells/zeniths)Zeniths$(/l).",
+ "hexiron.pages.ironspells.2": "Accepts a living entity and a number, and bestows Angel Wings upon it, allowing it to glide similar to an elytra. Costs 1 amethyst dust per 2 seconds.",
+ "hexiron.pages.ironspells.3": "Accepts a living entity and a number, and Charges it with arcane lightning, enhancing its abilities. Costs 1 amethyst dust per second.",
+ "hexiron.pages.ironspells.4": "Accepts a living entity and a number, and renders it Truly Invisible, causing even its equipment to vanish. Costs 1 amethyst dust per second.",
+ "hexiron.pages.ironspells.5": "Accepts a living entity and a number, and grants it Planar Sight, allowing it to perceive entities through barriers. Costs 2 amethyst dust per second.",
+ "hexiron.pages.ironspells.6": "Accepts a living entity and two numbers (duration, potency), and imbues it with Oakskin, reducing damage taken. Costs a base of 1 amethyst dust per second, scaling with the cube of potency."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexiron/hexiron/lang/zh_cn.json b/projects/1.19/assets/hexiron/hexiron/lang/zh_cn.json
new file mode 100644
index 000000000000..a2525990ea83
--- /dev/null
+++ b/projects/1.19/assets/hexiron/hexiron/lang/zh_cn.json
@@ -0,0 +1,14 @@
+{
+ "hexcasting.spell.hexiron:angelwings": "白阳巡天",
+ "hexcasting.spell.hexiron:planarsight": "红阳巡天",
+ "hexcasting.spell.hexiron:oakskin": "绿阳巡天",
+ "hexcasting.spell.hexiron:trueinvis": "黑阳巡天",
+ "hexcasting.spell.hexiron:charged": "蓝阳巡天",
+ "hexiron.entry.ironspells": "Iron's Spells 'n Spellbooks",
+ "hexiron.pages.ironspells.1": "多元宇宙中似乎存在着千万种不同的魔法,发现它们只是需要合适的视角。记载在此的法术即是源自其中一种魔法体系,实际的效应则类似老朋友$(l:patterns/great_spells/zeniths)天顶法术$(/l)。",
+ "hexiron.pages.ironspells.2": "接受一个活体和一个数,并给予其天使之翼,令其能在空中滑翔,如同佩有鞘翅。每 2 秒消耗 1 个紫水晶粉。",
+ "hexiron.pages.ironspells.3": "接受一个活体和一个数,使用奥术雷电令其超负荷,增强目标的能力。每 1 秒消耗 1 个紫水晶粉。",
+ "hexiron.pages.ironspells.4": "接受一个活体和一个数,令其完全真实地隐身,连手中和身上的装备都消隐不见。每 1 秒消耗 1 个紫水晶粉。",
+ "hexiron.pages.ironspells.5": "接受一个活体和一个数,并给予其位面视觉,令其能透过障碍感知实体。每 1 秒消耗 2 个紫水晶粉。",
+ "hexiron.pages.ironspells.6": "接受一个活体和两个数(持续时间、效果强度),并给予其树皮,减轻其受到的伤害。每 1 秒基础消耗 1 个紫水晶粉,乘以效果强度的立方计算。"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexkinetics/hexkinetics/lang/en_us.json b/projects/1.19/assets/hexkinetics/hexkinetics/lang/en_us.json
new file mode 100644
index 000000000000..5cea1be5742b
--- /dev/null
+++ b/projects/1.19/assets/hexkinetics/hexkinetics/lang/en_us.json
@@ -0,0 +1,89 @@
+{
+ "hexcasting.spell.hexkinetics:direction/const": "Alidade's Purification II",
+ "hexcasting.spell.hexkinetics:is_gravity/const": "Inertia Purification",
+ "hexcasting.spell.hexkinetics:visibility/const": "Visibility Distillation",
+ "hexcasting.spell.hexkinetics:get_vehicle/const": "Vehicle Purification",
+ "hexcasting.spell.hexkinetics:get_rider/const": "Jockey Purification",
+ "hexcasting.spell.hexkinetics:get_shooter/const": "Shooter Purification",
+ "hexcasting.spell.hexkinetics:hadamard/const": "Hadamard's Distillation",
+ "hexcasting.spell.hexkinetics:round/const": "Imprecision Purification",
+ "hexcasting.spell.hexkinetics:reflection/const": "Optician's Distillation",
+ "hexcasting.spell.hexkinetics:get_vec/const": "Sphere Distillation",
+ "hexcasting.spell.hexkinetics:get_vec_from/const": "Span Distillation",
+ "hexcasting.spell.hexkinetics:rotate/spell": "Rotate",
+ "hexcasting.spell.hexkinetics:rotate_two/spell": "Rotate II",
+ "hexcasting.spell.hexkinetics:rotate_block/spell": "Rotate: Block",
+ "hexcasting.spell.hexkinetics:swap/spell": "Momentum Swap",
+ "hexcasting.spell.hexkinetics:pixel/raycast": "Sniper's Distillation",
+ "hexcasting.spell.hexkinetics:lesser_teleport/spell": "Lesser Teleport",
+ "hexcasting.spell.hexkinetics:projectile/spell": "Place Projectile",
+ "hexcasting.spell.hexkinetics:extract_flight/spell": "Steal Flight",
+ "hexcasting.spell.hexkinetics:zero_g/spell": "Twokai's Ideal Condition",
+ "hexcasting.spell.hexkinetics:fast/spell": "Propulsion",
+ "hexcasting.spell.hexkinetics:move_block/spell": "Greater Translocation",
+ "hexcasting.spell.hexkinetics:stop/spell": "Chronos' Gambit",
+
+ "hexcasting.spell.book.hexkinetics:direction/const": "Alidade's Purification II",
+ "hexcasting.spell.book.hexkinetics:is_gravity/const": "Inertia Purification",
+ "hexcasting.spell.book.hexkinetics:visibility/const": "Visibility Distillation",
+ "hexcasting.spell.book.hexkinetics:get_vehicle/const": "Vehicle Purification",
+ "hexcasting.spell.book.hexkinetics:get_rider/const": "Jockey Purification",
+ "hexcasting.spell.book.hexkinetics:get_shooter/const": "Shooter Purification",
+ "hexcasting.spell.book.hexkinetics:hadamard/const": "Hadamard's Distillation",
+ "hexcasting.spell.book.hexkinetics:round/const": "Imprecision Purification",
+ "hexcasting.spell.book.hexkinetics:reflection/const": "Optician's Distillation",
+ "hexcasting.spell.book.hexkinetics:get_vec/const": "Sphere Distillation",
+ "hexcasting.spell.book.hexkinetics:get_vec_from/const": "Span Distillation",
+ "hexcasting.spell.book.hexkinetics:rotate/spell": "Rotate",
+ "hexcasting.spell.book.hexkinetics:rotate_two/spell": "Rotate II",
+ "hexcasting.spell.book.hexkinetics:rotate_block/spell": "Rotate: Block",
+ "hexcasting.spell.book.hexkinetics:swap/spell": "Momentum Swap",
+ "hexcasting.spell.book.hexkinetics:pixel/raycast": "Sniper's Distillation",
+ "hexcasting.spell.book.hexkinetics:lesser_teleport/spell": "Lesser Teleport",
+ "hexcasting.spell.book.hexkinetics:projectile/spell": "Place Projectile",
+ "hexcasting.spell.book.hexkinetics:extract_flight/spell": "Steal Flight",
+ "hexcasting.spell.book.hexkinetics:zero_g/spell": "Twokai's Ideal Condition",
+ "hexcasting.spell.book.hexkinetics:fast/spell": "Propulsion",
+ "hexcasting.spell.book.hexkinetics:move_block/spell": "Greater Translocation",
+ "hexcasting.spell.book.hexkinetics:stop/spell": "Chronos' Gambit",
+
+ "hexkinetics.entry.hexkinetics_mathematics": "HexKinetics Mathematics",
+ "hexkinetics.page.hexkinetics_mathematics.reflection/const": "This operation retrieves two vectors from the stack and calculates a vector reflection of the first vector based on the second vector, which acts as a normal and defines the reflection plane.",
+ "hexkinetics.page.hexkinetics_mathematics.hadamard/const": "Elements corresponding to the same columns of given vectors are multiplied together to form a new vector.",
+ "hexkinetics.page.hexkinetics_mathematics.round/const": "Number or elements in given vector are rounded to the nearest whole.",
+ "hexkinetics.page.hexkinetics_mathematics.get_vec/const": "Take a position and maximum distance on the stack, and combine them into a list of all block positions that are needed to create an hollow sphere of that range.",
+ "hexkinetics.page.hexkinetics_mathematics.get_vec_from/const": "Combine two positions in a list and create a list that includes those points as well as all block positions located between them.",
+
+ "hexkinetics.entry.hexkinetics_patterns": "HexKinetics Patterns",
+ "hexkinetics.page.hexkinetics_patterns.direction/const": "Alidade's Purification but it returns the direction player is looking in form of full, round vectors, as (0,1,0).",
+ "hexkinetics.page.hexkinetics_patterns.pixel/raycast": "Architect's Distillation but it returns the precise hit position. Very versatile, it can be used on various entities and materials with the exception of air.",
+ "hexkinetics.page.hexkinetics_patterns.is_gravity/const": "Determines whether the entity is currently in a state of inertia or if it is subject to the force of gravity. If the entity is found to be in a state of inertia, purification returns true.",
+ "hexkinetics.page.hexkinetics_patterns.visibility/const": "Returns whether a vector is currently within vision of an entity.",
+ "hexkinetics.page.hexkinetics_patterns.get_vehicle/const": "Pops the entity off the stack and pushes a reference to the vehicle it is currently occupying. Returns Null if the entity is not riding any vehicle.",
+ "hexkinetics.page.hexkinetics_patterns.get_rider/const": "Pops the entity (vehicle) off the stack and pushes a reference to the entity that is currently occupying it. If vehicle has more than one passenger it returns the first one.",
+ "hexkinetics.page.hexkinetics_patterns.get_shooter/const": "It pops an object off the stack and pushes out the reference to the entity that fired it. Returns Null if the entity isn't a projectile. Only works if shooter is in your ambit.",
+
+ "hexkinetics.entry.hexkinetics_spells": "HexKinetics Spells",
+ "hexkinetics.page.hexkinetics_spells.lesser_teleport/spell": "Takes entity and number or vector off the stack, then teleports the entity to its vector but with all fractions changed to given number, or fractions of every component changed to number in responding component in given vector.",
+ "hexkinetics.page.hexkinetics_spells.lesser_teleport/spell.page_two": "For example if given 5 and entity is on [35.11, 9.56, -10] it teleports it to [35.05, 9.05, -10.05]. It doesn't take numbers from 100 and up. Costs 1/5 of an amethyst dust.",
+ "hexkinetics.page.hexkinetics_spells.extract_flight/spell": "When used on a bird (chicken/parrot) or a phantom, it kills them while enabling you to harness their flight, thus putting you into a gliding state. Costs 2 amethyst shards.",
+ "hexkinetics.page.hexkinetics_spells.swap/spell": "Swaps the motion of two entities. Costs 1 amethyst dust.",
+ "hexkinetics.page.hexkinetics_spells.projectile/spell": "Remove a location from the stack, then pick a projectile item and place it at the given location. The following items are currently compatible: normal, tipped, and spectral arrows, snowballs, eggs, tridents, ender pearls, eyes of ender, and fire charges. Costs 1 amethyst shard.",
+
+ "hexkinetics.entry.rotate_spells": "Rotation Spells",
+ "hexkinetics.page.rotate_spells.rotate/spell": "Takes an entity and a vector as inputs and performs a rotation of the entity, to the direction indicated by the vector. It costs 1/8 of amethyst dust or if cast on another player it will cost one amethyst shard.",
+ "hexkinetics.page.rotate_spells.rotate_two/spell": "Accepts an entity and a vector, rotates the entity motion direction in direction of a vector. If rotated to [0, 0, 0] it will completly stop its velocity. Costs 3/4 amethyst dust.",
+ "hexkinetics.page.rotate_spells.rotate_block/spell": "Accepts a vector and a direction vector, rotates block at a given vector. Although it may appear to function similar to explosions, high explosion-resistant blocks are not affected. Costs 1/8 of amethyst dust.",
+
+ "hexkinetics.entry.great_kinetics": "Kinetics",
+ "hexkinetics.page.great_kinetics.zero_g/spell": "Makes an entity not affected by gravity or friction for certain amount of time.",
+ "hexkinetics.page.great_kinetics.zero_g/spell.page_two": "Which when combined with Impulse can make player go in a certain direction with given speed of a vector for given amount of time. Although it can be difficult to move on your own in this state of inertia. Costs units of Amethyst Dust equal to amount of time given times two. Unless time is 1 or less then it will cost only time.",
+ "hexkinetics.page.great_kinetics.stop/spell": "Stops given entity from ticking and doing any action for one tick. Costs 1/10 of amethyst dust.",
+ "hexkinetics.page.great_kinetics.fast/spell": "This spell utilizes a vector to impulse a target entity, applying a continuous force over a duration determined by a given number.",
+ "hexkinetics.page.great_kinetics.fast/spell.page_two": "The force is exerted in intervals of 5 ticks (1/4 of a second). The duration is limited to a range of 0 to 200 units of time (50 seconds). Costs length of the vector squared times time or if length of this vector is less then one it will cost one * time.",
+
+ "hexkinetics.entry.greatertranslocation": "Greater Translocation",
+ "hexkinetics.page.greatertranslocation.move_block/spell": "This spell lets me teleport almost any block nearly anywhere in the entire world! There does seem to be a limit, but it is much greater than the normal radius of influence I am used to.",
+ "hexkinetics.page.greatertranslocation.move_block/spell.page_two": "The block will be teleported by the given vector, which is an offset from its given position. If block will be translocated to a harder block, the original block will be completely removed. If moved to a softer block, the destination block is destroyed, similary to using Break Block on it. In the case of blocks with equal hardness, the translocated block remains in place. Nature seems to struggle to find a solution in such instances, rendering the translocation ineffective, yet it still consumes amount of media needed for normal translocation.",
+ "hexkinetics.page.greatertranslocation.move_block/spell.page_three": "For distances up to 1 block, the charge is only one amethyst shard. If distance is greater than 1 block but not exceeding 100 blocks, the cost increases to 5 charged amethyst. When the distance falls within the range of 100 to 10,000 blocks, the cost becomes 10 charged amethyst. For distances larger than 10,000 blocks, the price rises to every additional block from 10,000 as amethyst shard plus 10 charged amethyst."
+}
diff --git a/projects/1.19/assets/hexkinetics/hexkinetics/lang/zh_cn.json b/projects/1.19/assets/hexkinetics/hexkinetics/lang/zh_cn.json
new file mode 100644
index 000000000000..32f950be32d5
--- /dev/null
+++ b/projects/1.19/assets/hexkinetics/hexkinetics/lang/zh_cn.json
@@ -0,0 +1,89 @@
+{
+ "hexcasting.spell.hexkinetics:direction/const": "照准仪之纯化,第二型",
+ "hexcasting.spell.hexkinetics:is_gravity/const": "惯性之纯化",
+ "hexcasting.spell.hexkinetics:visibility/const": "可视性之馏化",
+ "hexcasting.spell.hexkinetics:get_vehicle/const": "载具之纯化",
+ "hexcasting.spell.hexkinetics:get_rider/const": "骑士之纯化",
+ "hexcasting.spell.hexkinetics:get_shooter/const": "射手之纯化",
+ "hexcasting.spell.hexkinetics:hadamard/const": "阿达玛之馏化",
+ "hexcasting.spell.hexkinetics:round/const": "误差之纯化",
+ "hexcasting.spell.hexkinetics:reflection/const": "配镜师之馏化",
+ "hexcasting.spell.hexkinetics:get_vec/const": "球面之馏化",
+ "hexcasting.spell.hexkinetics:get_vec_from/const": "跨限之馏化",
+ "hexcasting.spell.hexkinetics:rotate/spell": "转向",
+ "hexcasting.spell.hexkinetics:rotate_two/spell": "转向,第二型",
+ "hexcasting.spell.hexkinetics:rotate_block/spell": "转向:方块",
+ "hexcasting.spell.hexkinetics:swap/spell": "动量交换",
+ "hexcasting.spell.hexkinetics:pixel/raycast": "狙击手之馏化",
+ "hexcasting.spell.hexkinetics:lesser_teleport/spell": "微距传送",
+ "hexcasting.spell.hexkinetics:projectile/spell": "放置弹射物",
+ "hexcasting.spell.hexkinetics:extract_flight/spell": "飞行偷取",
+ "hexcasting.spell.hexkinetics:zero_g/spell": "痛快者之理想条件",
+ "hexcasting.spell.hexkinetics:fast/spell": "推进",
+ "hexcasting.spell.hexkinetics:move_block/spell": "卓越移位",
+ "hexcasting.spell.hexkinetics:stop/spell": "克罗诺斯之策略",
+
+ "hexcasting.spell.book.hexkinetics:direction/const": "照准仪之纯化,第二型",
+ "hexcasting.spell.book.hexkinetics:is_gravity/const": "惯性之纯化",
+ "hexcasting.spell.book.hexkinetics:visibility/const": "可视性之馏化",
+ "hexcasting.spell.book.hexkinetics:get_vehicle/const": "载具之纯化",
+ "hexcasting.spell.book.hexkinetics:get_rider/const": "骑士之纯化",
+ "hexcasting.spell.book.hexkinetics:get_shooter/const": "射手之纯化",
+ "hexcasting.spell.book.hexkinetics:hadamard/const": "阿达玛之馏化",
+ "hexcasting.spell.book.hexkinetics:round/const": "误差之纯化",
+ "hexcasting.spell.book.hexkinetics:reflection/const": "配镜师之馏化",
+ "hexcasting.spell.book.hexkinetics:get_vec/const": "球面之馏化",
+ "hexcasting.spell.book.hexkinetics:get_vec_from/const": "跨限之馏化",
+ "hexcasting.spell.book.hexkinetics:rotate/spell": "转向",
+ "hexcasting.spell.book.hexkinetics:rotate_two/spell": "转向,第二型",
+ "hexcasting.spell.book.hexkinetics:rotate_block/spell": "转向:方块",
+ "hexcasting.spell.book.hexkinetics:swap/spell": "动量交换",
+ "hexcasting.spell.book.hexkinetics:pixel/raycast": "狙击手之馏化",
+ "hexcasting.spell.book.hexkinetics:lesser_teleport/spell": "微距传送",
+ "hexcasting.spell.book.hexkinetics:projectile/spell": "放置弹射物",
+ "hexcasting.spell.book.hexkinetics:extract_flight/spell": "飞行偷取",
+ "hexcasting.spell.book.hexkinetics:zero_g/spell": "痛快者之理想条件",
+ "hexcasting.spell.book.hexkinetics:fast/spell": "推进",
+ "hexcasting.spell.book.hexkinetics:move_block/spell": "卓越移位",
+ "hexcasting.spell.book.hexkinetics:stop/spell": "克罗诺斯之策略",
+
+ "hexkinetics.entry.hexkinetics_mathematics": "咒法动力学:数学",
+ "hexkinetics.page.hexkinetics_mathematics.reflection/const": "移除栈顶两个向量,将第一个向量关于以第二个向量为法向量的平面对称,并返回对称向量。",
+ "hexkinetics.page.hexkinetics_mathematics.hadamard/const": "将所给向量中位置相同的分量相乘并返回。",
+ "hexkinetics.page.hexkinetics_mathematics.round/const": "将数或向量的所有分量舍入至最近整数。",
+ "hexkinetics.page.hexkinetics_mathematics.get_vec/const": "从栈顶获取位置和最大距离,并返回距该位置给定距离(即形成空心球面)的所有方块的位置向量组成的列表。",
+ "hexkinetics.page.hexkinetics_mathematics.get_vec_from/const": "接受组为列表的两个位置向量,并返回这两点和两点确定的长方体内所有方块位置向量组成的列表。",
+
+ "hexkinetics.entry.hexkinetics_patterns": "咒法动力学:图案",
+ "hexkinetics.page.hexkinetics_patterns.direction/const": "接受一个实体。执行照准仪之纯化,但会以轴向单位向量或其和向量形式返回其视线向量,如 (0,1,0)。",
+ "hexkinetics.page.hexkinetics_patterns.pixel/raycast": "与建筑师之馏化类似,但会返回射线追踪的精确落点位置向量。用途颇多,对除空气外的各种实体和方块都有效。",
+ "hexkinetics.page.hexkinetics_patterns.is_gravity/const": "检验实体受重力影响与否,若不受则返回 True。",
+ "hexkinetics.page.hexkinetics_patterns.visibility/const": "检验所给位置向量是否在所给实体视线之内。",
+ "hexkinetics.page.hexkinetics_patterns.get_vehicle/const": "移除栈顶实体,并返回代表其所处载具的 iota。若该实体并未骑乘载具则返回 Null。",
+ "hexkinetics.page.hexkinetics_patterns.get_rider/const": "移除栈顶载具实体,并返回正骑乘其的实体。若该载具上有多个实体,则仅返回第一个。",
+ "hexkinetics.page.hexkinetics_patterns.get_shooter/const": "移除栈顶实体,并返回发射其的实体。若所给实体不是弹射物则返回 Null。仅在发射者处于我影响范围内时生效。",
+
+ "hexkinetics.entry.hexkinetics_spells": "咒法动力学:法术",
+ "hexkinetics.page.hexkinetics_spells.lesser_teleport/spell": "移除栈顶实体和数或实体和向量,并将实体传送至各分量整数部分与当前位置向量相同,各分量小数部分为百分之所给数或百分之所给向量对应分量处。",
+ "hexkinetics.page.hexkinetics_spells.lesser_teleport/spell.page_two": "例如传入 5 且实体位于 [35.11, 9.56, -10],则会将其传送至 [35.05, 9.05, -10.05]。不接受大于等于 100 的数。消耗 1/5 个紫水晶粉。",
+ "hexkinetics.page.hexkinetics_spells.extract_flight/spell": "当对鸟类(鸡、鹦鹉等)或幻翼使用时,会将其杀死并偷取它们的飞行能力,我也会变为滑翔姿态。消耗 2 个紫水晶碎片。",
+ "hexkinetics.page.hexkinetics_spells.swap/spell": "交换两个实体的运动状态。消耗 1 个紫水晶粉。",
+ "hexkinetics.page.hexkinetics_spells.projectile/spell": "移除栈顶位置向量,选择一个弹射物物品并弹射至所给位置。目前支持如下物品:箭、药箭、光灵箭、雪球、蛋、三叉戟、末影珍珠、末影之眼、火焰弹。消耗 1 个紫水晶碎片。",
+
+ "hexkinetics.entry.rotate_spells": "转向法术",
+ "hexkinetics.page.hexkinetics_spells.rotate/spell": "移除栈顶实体和向量,并将实体旋转至面向所给向量。消耗 1/8 个紫水晶粉。若对另一玩家施放则消耗 1 个紫水晶碎片。",
+ "hexkinetics.page.hexkinetics_spells.rotate_two/spell": "移除栈顶实体和向量,并将实体的运动方向旋转至面向所给向量。若旋转至 [0, 0, 0] 则会使实体的速度归零。消耗 3/4 个紫水晶粉。",
+ "hexkinetics.page.rotate_spells.rotate_block/spell": "移除栈顶位置向量和方向向量,并旋转所给位置处的方块。尽管表现上和爆炸类似,但对爆炸抗性较高的方块没有效果。消耗 1/8 个紫水晶粉。",
+
+ "hexkinetics.entry.great_kinetics": "动力学",
+ "hexkinetics.page.great_kinetics.zero_g/spell": "使得实体在一定时间内不受重力和摩擦力的影响。",
+ "hexkinetics.page.great_kinetics.zero_g/spell.page_two": "若与驱动结合使用,我就能在一定时间内以给定速度向给定方向移动。不过在这种惯性状态下,自行移动就变得很困难了。消耗 2 乘时间个紫水晶粉。若时间小于等于 1,则不再将时间乘 2。",
+ "hexkinetics.page.great_kinetics.stop/spell": "停止所给实体在下一刻的刻处理等各种行为。消耗 1/10 个紫水晶粉。",
+ "hexkinetics.page.great_kinetics.fast/spell": "使用所给向量驱动实体,在一定时间(由所给数决定)内对其连续施力。消耗向量模长平方与时间的积个紫水晶粉。",
+ "hexkinetics.page.great_kinetics.fast/spell.page_two": "力的施加时间以 5 刻(1/4 秒)为单位,施力时间则需在 0 到 200(50 秒)个单位之间。消耗向量模长平方与时间的积个紫水晶粉。若向量模长小于 1 则消耗 1 与时间的积个紫水晶粉。",
+
+ "hexkinetics.entry.greatertranslocation": "卓越移位",
+ "hexkinetics.page.greatertranslocation.move_block/spell": "此法术能把几乎任何方块传送到世界上几乎任何一处!当然它也有极限,但可比我熟悉的施法距离要远得多。",
+ "hexkinetics.page.greatertranslocation.move_block/spell.page_two": "方块会按所给向量偏移出其原有位置。当移位至硬度更高的方块时,原有方块会被完全移除;而当移位至硬度较低的方块时,目标处方块会被摧毁,就和对其使用破坏方块差不多。而假如两者硬度相等,则被移位的方块不会被移动。自然似乎难以在这种情况下完成操作,移位也会失效,但依然会消耗同等操作所需的媒质。",
+ "hexkinetics.page.greatertranslocation.move_block/spell.page_three": "若移位距离小于等于 1 格,消耗 1 个紫水晶碎片;若大于 1 格且小于 100 格,消耗 5 个充能紫水晶;若不小于 100 格且不大于 10,000 格,消耗 10 个充能紫水晶;若大于 10,000 格,则在 10 个充能紫水晶之上每超过 10,000 格一格额外消耗 1 个紫水晶碎片。"
+}
diff --git a/projects/1.19/assets/hexlink/hexlink/lang/en_us.json b/projects/1.19/assets/hexlink/hexlink/lang/en_us.json
new file mode 100644
index 000000000000..2e57031c72de
--- /dev/null
+++ b/projects/1.19/assets/hexlink/hexlink/lang/en_us.json
@@ -0,0 +1,163 @@
+{
+ "hexlink.mishap.empty_collar": "Your focus collar is empty",
+ "hexlink.mishap.no_collar_item": "You don't have any focus collar",
+ "hexlink.mishap.extractor_item": "suitable extraction catalyzer item like an Extraction Crystal",
+ "hexlink.mishap.spell_holder": "spell holder item",
+ "hexlink.mishap.not_extractable": "This %s Spirit is not extractable with %s",
+ "hexlink.mishap.not_enough_soul": "Missing %d spirits",
+ "hexlink.mishap.cant_mix_at": "You cannot summon a vortex at this location, you can summon a vortex at an empty place",
+ "hexlink.mishap.invalid_spirit_source": "The Spirit source is invalid, you need a valid target from where to get spirits",
+ "hexlink.mishap.invalid_spirit_target": "The Spirit target is invalid, you need a valid target where to put spirits",
+ "hexlink.mishap.not_manifestable": "You cannot manifeset %s on %s",
+
+ "emi.category.hexlink.vortex": "Vortex Crafting",
+
+
+ "hexcasting.spell.hexlink:spirit_extraction": "Spirit Extraction",
+ "hexcasting.spell.hexlink:spirit_transfer": "Spirit Transfer",
+ "hexcasting.spell.hexlink:spirit_transfer_look": "Spirit Storage Look",
+ "hexcasting.spell.hexlink:spirit_transfer_look_all": "Spirit Storage Look All",
+ "hexcasting.spell.hexlink:spirit_self_transfer_look": "Spirit Self Storage Look",
+ "hexcasting.spell.hexlink:spirit_transfer_count": "Spirit Storage Count",
+ "hexcasting.spell.hexlink:spirit_self_transfer_count": "Spirit Self Storage Count",
+
+ "hexcasting.spell.hexlink:spirit_vortex": "Vortex Formation",
+ "hexcasting.spell.hexlink:spirit_manifestation": "Spirit Manifestation",
+ "hexcasting.spell.hexlink:spirit_self_manifestation": "Spirit Self Manifestation",
+ "hexcasting.spell.hexlink:spirit_look": "Spirit Look",
+
+
+ "hexcasting.spell.hexlink:read_trinket": "Boehmer's Reflection",
+ "hexcasting.spell.hexlink:write_trinket": "Boehmer's Gambit",
+ "hexcasting.spell.hexlink:write_spell": "Flem's Gambit",
+ "hexcasting.spell.hexlink:get_nbt": "Samuel Purification",
+ "hexcasting.spell.hexlink:find_nbt": "Gabriel Distillation",
+
+
+
+ "hexlink.spirit": " Spirit",
+ "hexlink.or": " or ",
+ "hexlink.spirit_iota": "Spirit Iota",
+ "hexlink.spirit_iota.good": "valid Spirit Iota",
+
+
+ "hexlink.spirit.block": "Block Spirit",
+ "hexlink.spirit.entity": "Entity Spirit",
+ "hexlink.spirit.potion": "Potion Spirit",
+ "hexlink.spirit.item": "Item Spirit",
+ "hexlink.spirit.enchantment": "Enchantment Spirit",
+ "hexlink.spirit.function": "Command Spirit",
+ "hexlink.spirit.special": "Special Spirit",
+ "hexlink.spirit.biome": "Biome Spirit",
+
+
+ "hexlink.extractor.item": "Item",
+ "hexlink.extractor.entity": "Entity",
+ "hexlink.extractor.block": "Block",
+ "hexlink.extractor.enchantment": "Enchantment",
+ "hexlink.extractor.potion": "Potion",
+ "hexlink.extractor.everything": "Anything",
+ "hexlink.extractor.biome": "Biome",
+
+
+ "item.hexlink.upgraded_book": "Upgraded Spellbook",
+ "item.hexlink.special_staff": "Special Staff",
+ "item.hexlink.mixed_pigment": "Mixed Pigment",
+ "item.hexlink.focus_collar": "Forbidden Focus Collar",
+ "item.hexlink.spirit": "%s Spirit",
+ "item.hexlink.spirit.none": "Spirit",
+
+ "item.hexlink.philosophical_crystal": "Philosophical Crystal of %s",
+ "item.hexlink.philosophical_crystal.none": "Transparent Crystal",
+ "item.hexlink.haunted_crystal": "Haunted Crystal of %s",
+ "item.hexlink.haunted_crystal.none": "Weird Crystal",
+
+ "item.hexlink.tablet": "Tablet of %s",
+ "item.hexlink.tablet.none": "Empty Tablet",
+ "item.hexlink.small_bag": "Soul Pocket of %s...",
+ "item.hexlink.small_bag.none": "Soul Pocket",
+ "item.hexlink.medium_bag": "Soul Bag of %s...",
+ "item.hexlink.medium_bag.none": "Soul Bag",
+ "item.hexlink.big_bag": "Large Soul Bag of %s...",
+ "item.hexlink.big_bag.none": "Large Soul Bag",
+ "item.hexlink.crystal": "Crystal of %s",
+ "item.hexlink.crystal.none": "Empty Crystal",
+
+ "item.hexlink.tablet_staff": "Tablet Staff",
+ "item.hexlink.big_tablet_on_a_stick": "Big Tablet on a Stick Staff",
+ "item.hexlink.spirit_staff": "Spirit Staff",
+ "item.hexlink.handmade_staff": "Handmade Staff",
+ "item.hexlink.pure_media_staff": "Pure Media Staff",
+ "item.hexlink.snake_staff": "Snake Staff",
+ "item.hexlink.cane_staff": "Cane Staff",
+
+ "block.hexlink.vortex": "Media Vortex",
+ "block.hexlink.big_tablet": "Big Tablet",
+
+
+ "itemGroup.hexlink.hexlink": "Hexlink",
+
+
+ "hexlink.category.spirits": "Spirit Spells",
+ "hexlink.category.spirits.desc": "Turn anything into media spirits, then mix them and finally manifest them.",
+
+
+ "tag.item.hexlink.stack_sized": "Extraction count depend on durability",
+ "tag.item.hexlink.staves": "Hexlink Staves",
+
+
+ "hexlink.entry.readwrite": "Hexlink Read and Write",
+ "hexlink.page.write_spell": "This pattern can write a spell into a Special Wand, as an dropped item, in an item frame or in the caster hand.",
+
+ "hexlink.page.spirit_extraction.desc": "This spell can extract a spirit from an entity, using a extraction catalyzer like an $(l:hexlink:items/crystals)Extraction Crystal/$, into a $(l:hexlink:items/bag)Spirit Container/$. The quantity of spirit extracted depends of the target. The items used, as a catalyzer or as a extraction target, can be dropped, in item frame, in the first slot of a container, or the offhand of the caster. I have to check the extraction conditions, it could go wrong.",
+ "hexlink.page.spirit_extraction.target.desc": "The first parameter is the entity to extract from, the second parameter is an extractor catalyzer, the third parameter is a spirit container. ",
+
+ "hexlink.page.spirit_transfer.desc": "These patterns are useful for manipulating and moving spirits. Spirits are stored in spirit containers. Spirit containers can be dropped items, items in frames, the caster holding a spirit container item, media vortexes, the block position of a container containing spirit container items.",
+ "hexlink.page.spirit_transfer.transfer.desc": "With this pattern I can transfer spirits from a spirit container to another spirit container. The first parameter is the container to extract from, the second parameter is the container to fill into.",
+ "hexlink.page.spirit_transfer.look.desc": "With this pattern I can get the type of the last Spirit stored in a spirit container or Null if the container is empty or if the entity or block is not a spirit source.",
+ "hexlink.page.spirit_transfer.look_all.desc": "With this pattern I can get the type of the all Spirits stored in a spirit container or Null if the container is empty or if the entity or block is not a spirit source.",
+ "hexlink.page.spirit_transfer.count.desc": "With this pattern I can count how many spirits, of a type of spirit, a container contains.",
+
+ "hexlink.page.get_nbt": "NBT Manipulation",
+ "hexlink.page.get_nbt.desc": "[Need MoreIotas] I see everything (In a small radius). With this pattern I can extract every property of a block or an entity into a list.",
+ "hexlink.page.find_nbt.desc": "$(br)[Need MoreIotas] With this pattern I can extract a specific property of a block or an entity. I must provide the path that leads to the sought-after essence. For example, [\"Inventory\",0,\"id\"].",
+
+ "hexlink.page.spirit_manifestation.desc": "With these powerful spells, I can manifest spirits in the physical world. I can manifest it through a entity catalyst or at a position.",
+ "hexlink.page.spirit_manifestation.target.desc": "$(br)The first parameter is the container to extract from, the second is the type of spirit to manifest, the third is the number of spirits to manifest, and the last is the entity or location to manifest at.",
+ "hexlink.page.spirit_self_manifestation.self.desc": "This shortcut variant take the spirits from an container in the caster inventory. The first parameter is the type of spirit to manifest, the second is the number of spirit to manifest, and the third is the entity or location to manifest at.",
+
+ "hexlink.page.spirit_other": "Other Spells",
+ "hexlink.page.spirit_vortex.desc": "With this pattern, I can summon a $(l:hexlink:items/vortex)Media Vortex/$. I can then transfer spirits into it, to store them. Spirits in a vortex can merge into new spirits.",
+ "hexlink.page.spirit_look.desc": "With this pattern, I can feel the proximity of the spirit with a physical object.",
+
+
+ "hexlink.page.crystals": "Extraction Crystals",
+ "hexlink.page.crystals.desc": "Extraction Crystals help me to extract spirits. I can extract spirit using them with $(l:hexlink:patterns/spirits/extraction)Spirit Extraction/$. I can find these in dungeon chests.",
+ "hexlink.page.crystals.block": "This type of crystal can extract the spirit of a block. With a Block Spirit, I can summon blocks and simulate interaction with one.",
+ "hexlink.page.crystals.item": "This type of crystal can extract the spirit of an item. With an Item Spirit, I can simulate the use of an item.",
+ "hexlink.page.crystals.entity": "This type of crystal can extract the spirit of an entity. With an Entity Spirit, I can summon an entity. The entity's health must be at or below 4.",
+ "hexlink.page.crystals.potion": "This type of crystal can extract the spirit of a potion effect. With a Potion Spirit, I can give an effect to an entity or summon an effect cloud.",
+ "hexlink.page.crystals.enchantment": "This type of crystal can extract the spirit of a enchanted item or enchanted book. With a Enchantment Spirit, I can enchant a item or create an enchanted book. The target can be the first item of a container, a dropped item, an item in a frame or item of the caster offhand.",
+ "hexlink.page.crystals.everything": "This type of crystal can extract the spirit of anything.",
+
+ "hexlink.page.vortex": "Media Vortex and Containers",
+ "hexlink.page.vortex.desc": "Media vortexes can contains up to 100 spirits, and mix them to create new spirits. You can create a Media Vortex using $(l:hexlink:patterns/spirits/other)Vortex Formation/$, and then put spirits in and take spirits out using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$.",
+ "hexlink.page.big_tablet.desc": "Big Tablets can contains up to 1000 spirits. You can put spirits in and take spirits out using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$.",
+
+ "hexlink.page.bag": "Soul Bags",
+ "hexlink.page.bag.desc": "Souls bags contain spirits that are used for $(l:hexlink:patterns/spirits/manifestation)Spirit Manifestation/$. You can fill these using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$. You can select a spirit type of a spirit container by shift scrolling while holding it like a spell book.",
+ "hexlink.page.bag.small_bag": "Soul pockets can contains up to 2 different types of spirits, and 30 of each.",
+ "hexlink.page.bag.medium_bag": "Soul bags can contains up to 5 different types of spirits, and 100 of each.",
+ "hexlink.page.bag.big_bag": "Large soul bags can contains up to 10 different types of spirits, and 300 of each.",
+ "hexlink.page.bag.tablet": "Soul tablets can contains up to 10 spirits of one type, you can them in dungeon chests.",
+ "hexlink.page.bag.philosophical_crystal": "Philosophical crystals are infinite sources of spirits.",
+ "hexlink.page.bag.haunted_crystal": "Haunted crystals are unstable rip-off of philosophical crystals.",
+
+ "hexlink.page.upgraded_book.1": "A $(l:hexlink:items/upgraded_book)$(item)Upgraded Spellbook/$ is like an entire library of artifacts. It can call spell using my own iota stack without drawing patterns with it. If it contains a Pattern iota or a list of patterns, it is evaluated like with Hermes Gambit else the iota is added on top of my stack. You can color each of its pages using Color Spirits.",
+ "hexlink.page.upgraded_book.2": "Blablabla... Magic!",
+
+ "hexlink.page.special_staff.1": "I discovered how the staffs help me interfere with the surrounding media. I think I could create a customizable wand with my new knowledge. To do this, I have to write a spell in it using $(l:hexlink:patterns/readwrite)Flem's Gambit/$. Then when I'll write a pattern using this staff, the spell written in it will be cast with a stack filled with my current stack as a list and the pattern I just drawn on top. Then, the list on top of the remaining stack is taken as my new stack. A number below the list on top of the remaining stack can tell me how the pattern has been resolved.",
+ "hexlink.page.special_staff.2": "I need a powerful energy to interact directly with the media realm.",
+
+ "hexlink.page.focus_collar": "[TOTALLY FORBIDDEN] With this FORBIDDEN focus around my *CENSORED*, I can read from it with my FORBIDDEN left hand FORBIDDENLY empty. I *CENSORED* to use $(l:hexlink:patterns/readwrite)these patterns/$."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json b/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
new file mode 100644
index 000000000000..e6ea758a6649
--- /dev/null
+++ b/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
@@ -0,0 +1,163 @@
+{
+ "hexlink.mishap.empty_collar": "核心项圈为空",
+ "hexlink.mishap.no_collar_item": "未佩戴核心项圈",
+ "hexlink.mishap.extractable_to": "提取水晶之类的有效提取催化物",
+ "hexlink.mishap.spell_holder": "可存有咒术的物品",
+ "hexlink.mishap.not_extractable": "该%s灵体无法被%s提取",
+ "hexlink.mishap.not_enough_soul": "缺少%d个灵体",
+ "hexlink.mishap.cant_mix_at": "无法在此处召唤涡旋,应当在空气处召唤",
+ "hexlink.mishap.invalid_spirit_source": "无效灵体来源,需要有效的灵体获取来源",
+ "hexlink.mishap.invalid_spirit_target": "无效灵体目标,需要有效的灵体存放目标",
+ "hexlink.mishap.not_manifestable": "无法在%2$s上使%1$s显形",
+
+ "emi.category.hexlink.vortex": "涡旋合成",
+
+
+ "hexcasting.spell.hexlink:spirit_extraction": "灵体提取",
+ "hexcasting.spell.hexlink:spirit_transfer": "灵体转移",
+ "hexcasting.spell.hexlink:spirit_transfer_look": "灵体容器探察",
+ "hexcasting.spell.hexlink:spirit_transfer_look_all": "灵体容器探察全部",
+ "hexcasting.spell.hexlink:spirit_self_transfer_look": "自身灵体容器探察",
+ "hexcasting.spell.hexlink:spirit_transfer_count": "灵体容器计数",
+ "hexcasting.spell.hexlink:spirit_self_transfer_count": "自身灵体容器计数",
+
+ "hexcasting.spell.hexlink:spirit_vortex": "涡旋成型",
+ "hexcasting.spell.hexlink:spirit_manifestation": "灵体显形",
+ "hexcasting.spell.hexlink:spirit_self_manifestation": "自身灵体显形",
+ "hexcasting.spell.hexlink:spirit_look": "灵体探察",
+
+
+ "hexcasting.spell.hexlink:read_trinket": "伯默之精思",
+ "hexcasting.spell.hexlink:write_trinket": "伯默之策略",
+ "hexcasting.spell.hexlink:write_spell": "弗莱姆之策略",
+ "hexcasting.spell.hexlink:get_nbt": "撒母耳之纯化",
+ "hexcasting.spell.hexlink:find_nbt": "加百列之馏化",
+
+
+
+ "hexlink.spirit": "灵体",
+ "hexlink.or": "或",
+ "hexlink.spirit_iota": "灵体iota",
+ "hexlink.spirit_iota.good": "有效的灵体iota",
+
+
+ "hexlink.spirit.block": "方块灵体",
+ "hexlink.spirit.entity": "实体灵体",
+ "hexlink.spirit.potion": "药水灵体",
+ "hexlink.spirit.item": "物品灵体",
+ "hexlink.spirit.enchantment": "魔咒灵体",
+ "hexlink.spirit.function": "命令灵体",
+ "hexlink.spirit.special": "特殊灵体",
+ "hexlink.spirit.biome": "生物群系灵体",
+
+
+ "hexlink.extractor.item": "物品",
+ "hexlink.extractor.entity": "实体",
+ "hexlink.extractor.block": "方块",
+ "hexlink.extractor.enchantment": "魔咒",
+ "hexlink.extractor.potion": "药水",
+ "hexlink.extractor.everything": "任意",
+ "hexlink.extractor.biome": "生物群系",
+
+
+ "item.hexlink.upgraded_book": "升级法术书",
+ "item.hexlink.special_staff": "特殊法杖",
+ "item.hexlink.mixed_pigment": "混合染色剂",
+ "item.hexlink.focus_collar": "禁忌的核心项圈",
+ "item.hexlink.spirit": "%s灵体",
+ "item.hexlink.spirit.none": "灵体",
+
+ "item.hexlink.philosophical_crystal": "%s之贤者水晶",
+ "item.hexlink.philosophical_crystal.none": "透明水晶",
+ "item.hexlink.haunted_crystal": "%s之缠魂水晶",
+ "item.hexlink.haunted_crystal.none": "奇异水晶",
+
+ "item.hexlink.tablet": "%s之石板",
+ "item.hexlink.tablet.none": "空灵魂石板",
+ "item.hexlink.small_bag": "%s之灵魂口袋",
+ "item.hexlink.small_bag.none": "灵魂口袋",
+ "item.hexlink.medium_bag": "%s之灵魂袋",
+ "item.hexlink.medium_bag.none": "灵魂袋",
+ "item.hexlink.big_bag": "%s之大灵魂袋",
+ "item.hexlink.big_bag.none": "大灵魂袋",
+ "item.hexlink.crystal": "%s之水晶",
+ "item.hexlink.crystal.none": "空提取水晶",
+
+ "item.hexlink.tablet_staff": "石板法杖",
+ "item.hexlink.big_tablet_on_a_stick": "镶大石板法杖",
+ "item.hexlink.spirit_staff": "灵体法杖",
+ "item.hexlink.handmade_staff": "手工法杖",
+ "item.hexlink.pure_media_staff": "纯媒质法杖",
+ "item.hexlink.snake_staff": "蛇形法杖",
+ "item.hexlink.cane_staff": "棍状法杖",
+
+ "block.hexlink.vortex": "媒质涡旋",
+ "block.hexlink.big_tablet": "大石板",
+
+
+ "itemGroup.hexlink.hexlink": "Hexlink",
+
+
+ "hexlink.category.spirits": "灵体法术",
+ "hexlink.category.spirits.desc": "将事物变为媒质灵体,混合交融再令其显形。",
+
+
+ "tag.item.hexlink.stack_sized": "提取量由耐久度决定",
+ "tag.item.hexlink.staves": "Hexlink 法杖",
+
+
+ "hexlink.entry.readwrite": "Hexlink 读取与写入",
+ "hexlink.page.write_spell": "此图案可将咒术写入特殊法杖。法杖可为物品实体、物品展示框中物品,或施法者手持。",
+
+ "hexlink.page.spirit_extraction.desc": "此法术可通过$(l:hexlink:items/crystals)提取水晶/$等提取催化物从实体中提取灵体,并将其存入$(l:hexlink:items/bag)灵体容器/$。被提取目标决定提出灵体的数量。此法术中的物品可以是物品实体、容器首格中的物品,或者施法者副手中的物品。",
+ "hexlink.page.spirit_extraction.target.desc": "第一参数为被提取对象;第二参数为提取催化物,如提取水晶;第三参数则为灵体容器。",
+
+ "hexlink.page.spirit_transfer.desc": "这些图案是操纵和移动灵体的好帮手。灵体存储于灵体容器。物品实体、物品展示框中的物品、施法者手持物品、媒质涡旋,装有灵体容器的容器位置向量等均可视为灵体容器。",
+ "hexlink.page.spirit_transfer.transfer.desc": "此图案可将灵体在两灵体容器间转移。第一参数为转移起点,第二参数为转移终点。",
+ "hexlink.page.spirit_transfer.look.desc": "此图案可查看灵体容器中的上一灵体。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
+ "hexlink.page.spirit_transfer.look_all.desc": "此图案可查看灵体容器中的所有灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
+ "hexlink.page.spirit_transfer.count.desc": "此图案可统计灵体容器中某种灵体的存储数量。",
+
+ "hexlink.page.get_nbt": "NBT 操纵",
+ "hexlink.page.get_nbt.desc": "[需要安装更多 Iota] 我能在较短距离内看到所有事物。此图案能将方块或实体的所有属性提取为列表。",
+ "hexlink.page.find_nbt.desc": "$(br)[需要安装更多 Iota] 此图案能提取某个方块或实体的特定属性。提取时必须要给定所探寻的灵魂本质的路径。例如,[\"Inventory\",0,\"id\"]。",
+
+ "hexlink.page.spirit_manifestation.desc": "这个强力法术能将灵体显形至物理世界。我能通过某实体或在某位置令其显形。",
+ "hexlink.page.spirit_manifestation.target.desc": "$(br)第一参数为被提取的容器,第二参数为需显形灵体的类型,第三参数为显形的强度,最末参数则是显形实体或显形位置。",
+ "hexlink.page.spirit_self_manifestation.self.desc": "此快捷变种会从施法者物品栏中的灵体容器抽取灵体。第一参数为需显形灵体的类型,第二参数为显形的强度,第三参数则是显形实体或显形位置。",
+
+ "hexlink.page.spirit_other": "其他法术",
+ "hexlink.page.spirit_vortex.desc": "此图案可召唤$(l:hexlink:items/vortex)媒质涡旋/$。可向其中放入灵体以存储。涡旋中的灵体也有可能融合出新灵体。",
+ "hexlink.page.spirit_look.desc": "此图案可使我感受灵体与某物体的接近程度。",
+
+
+ "hexlink.page.crystals": "提取水晶",
+ "hexlink.page.crystals.desc": "提取水晶有助于提取灵体的过程。将其与$(l:hexlink:patterns/spirits/extraction)灵体提取/$配合使用就能提出灵体。能在地牢箱子中发现这类水晶。",
+ "hexlink.page.crystals.block": "此类水晶可以装入方块灵体。可通过此类灵体召唤方块,或是模拟与其的交互。",
+ "hexlink.page.crystals.item": "此类水晶可以装入物品灵体。可通过此类灵体模拟使用物品。",
+ "hexlink.page.crystals.entity": "此类水晶可以装入实体灵体。可通过此类灵体召唤实体。实体的生命值必须小于等于 4。",
+ "hexlink.page.crystals.potion": "此类水晶可以装入药水效果灵体。可通过此类灵体给予实体效果,或是召唤效果云。",
+ "hexlink.page.crystals.enchantment": "此类水晶可以装入附魔物品和附魔书的灵体。可通过此类灵体附魔物品或制作附魔书。容器中的首个物品、物品实体、物品展示框中的物品,施法者副手中物品等均可视为提取目标。",
+ "hexlink.page.crystals.everything": "此类水晶可以装入任意灵体。",
+
+ "hexlink.page.vortex": "媒质涡旋与容器",
+ "hexlink.page.vortex.desc": "媒质涡旋最多可装有 100 个灵体,也能将其混合以制造新灵体。$(l:hexlink:patterns/spirits/other)涡旋成型/$可产生媒质涡旋,$(l:hexlink:patterns/spirits/transfer)灵体转移/$则能放入或取出灵体。",
+ "hexlink.page.big_tablet.desc": "大石板最多可装有 1000 个灵体。可用$(l:hexlink:patterns/spirits/transfer)灵体转移/$放入或取出灵体。",
+
+ "hexlink.page.bag": "灵魂袋",
+ "hexlink.page.bag.desc": "灵魂袋可装下用于$(l:hexlink:patterns/spirits/manifestation)灵体显形/$的灵体。可用$(l:hexlink:patterns/spirits/transfer)灵体转移/$填充它们。还可在手持时潜行滚动滚轮以选择灵体类型,就和法术书一样。",
+ "hexlink.page.bag.small_bag": "灵魂口袋可装下最多 2 种灵体,每种最多 30 个。",
+ "hexlink.page.bag.medium_bag": "灵魂袋可装下最多 5 种灵体,每种最多 100 个。",
+ "hexlink.page.bag.big_bag": "大灵魂袋可装下最多 10 种灵体,每种最多 300 个。",
+ "hexlink.page.bag.tablet": "灵魂石板可装下最多 10 个单种灵体,且能在地牢箱子中找到。",
+ "hexlink.page.bag.philosophical_crystal": "贤者水晶是灵体的无限来源。",
+ "hexlink.page.bag.haunted_crystal": "缠魂水晶则是贤者水晶的不稳定仿制品。",
+
+ "hexlink.page.upgraded_book.1": "$(l:hexlink:items/upgraded_book)$(item)升级法术书/$有如一整个图书馆的造物。它不需要绘制图案就能使用我的栈来施法。若其中存有图案 iota 或列表,则会像赫尔墨斯之策略一样运行,否则会将 iota 压入栈顶。可用颜色灵体为各页染色。",
+ "hexlink.page.upgraded_book.2": "以下省略!",
+
+ "hexlink.page.special_staff.1": "我发现了法杖与周遭媒质交互的奥秘。也许我能用这些新知识制造一个可定制的法杖。我需要用$(l:hexlink:patterns/readwrite)弗莱姆之策略/$向其中写入法术。此后用这种法杖绘制图案时,写入的法术便会以我当前栈和压入栈顶的所绘制图案施放。完毕后,栈上方的列表视作栈的新状态,下方的数则表明图案的解析方式。",
+ "hexlink.page.special_staff.2": "直接与媒质域交互会需要大量能量。",
+
+ "hexlink.page.focus_collar": "[完全禁忌]有了这个戴在[数据屏蔽]上的[禁忌],我就可以在[禁忌]左手[禁忌]不拿物品时从[数据屏蔽]读取了。但[数据屏蔽]使用$(l:hexlink:patterns/readwrite)这些图案/$。"
+}
\ No newline at end of file
From 6955f293cc63756e18fbe586549616c1fc53bf18 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 23:06:10 +0800
Subject: [PATCH 12/78] HexMapping HextendedStaves create
---
.../lanishextendedstaves/lang/en_us.json | 2 +-
.../lanishextendedstaves/lang/zh_cn.json | 2 +-
.../assets/hexmapping/hexmapping/README.md | 1 +
.../hexmapping/hexmapping/lang/en_us.json | 55 ++++++++++++
.../hexmapping/hexmapping/packer-policy.json | 7 ++
.../hextended-staves/hextended/README.md | 0
.../hextended/lang/en_us.json | 88 ++++++++++++++++++
.../hextended/packer-policy.json | 7 ++
.../hexmapping/hexmapping/lang/en_us.json | 55 ++++++++++++
.../hexmapping/hexmapping/lang/zh_cn.json | 55 ++++++++++++
.../hextended/lang/en_us.json | 88 ++++++++++++++++++
.../hextended/lang/zh_cn.json | 89 +++++++++++++++++++
12 files changed, 447 insertions(+), 2 deletions(-)
create mode 100644 projects/1.20-fabric/assets/hexmapping/hexmapping/README.md
create mode 100644 projects/1.20-fabric/assets/hexmapping/hexmapping/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
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/assets/hexmapping/hexmapping/lang/en_us.json
create mode 100644 projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json
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/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..14693f5e1ff3 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/hexmapping/hexmapping/README.md b/projects/1.20-fabric/assets/hexmapping/hexmapping/README.md
new file mode 100644
index 000000000000..daf85069bac0
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexmapping/hexmapping/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/hexmapping/hexmapping)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexmapping/hexmapping/lang/en_us.json b/projects/1.20-fabric/assets/hexmapping/hexmapping/lang/en_us.json
new file mode 100644
index 000000000000..7d246474494f
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexmapping/hexmapping/lang/en_us.json
@@ -0,0 +1,55 @@
+{
+ "hexmapping.entry.marker_actions": "Marker Actions",
+ "hexcasting.action.hexmapping:create_marker/circle": "Circle Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.circle": "Creates a new Circle Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)position$(), and $(thing)radius$()",
+ "hexcasting.action.hexmapping:create_marker/rectangle": "Rectangle Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.rectangle": "Creates a new Rectangle Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)top corner$(), and $(thing)bottom corner$()",
+ "hexcasting.action.hexmapping:create_marker/polygon": "Polygon Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.polygon": "Creates a new Polygon Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$()",
+ "hexmapping.page.marker_actions.create_marker.polygon.hexical": "Creates a new Polygon Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$() OR a $(thing)Hexical Mesh Entity$()",
+ "hexcasting.action.hexmapping:create_marker/polyline": "Polyline Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.polyline": "Creates a new Polyline Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$()",
+ "hexmapping.page.marker_actions.create_marker.polyline.hexical": "Creates a new Polyline Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$() OR a $(thing)Hexical Mesh Entity$()",
+ "hexcasting.action.hexmapping:create_marker/icon": "Icon Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.icon": "Creates a new Icon Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)icon$(), and $(thing)position$()",
+ "hexcasting.action.hexmapping:set_fill_color": "Marker Fill Dist.",
+ "hexmapping.page.marker_actions.set_fill_color": "Sets the Fill Color of a marker, if applicable (Circle, Rectangle, and Polygon)",
+ "hexcasting.action.hexmapping:set_line_color": "Marker Line Dist.",
+ "hexmapping.page.marker_actions.set_line_color": "Sets the Line Color of a marker, if applicable (Circle, Rectangle, Polyline, and Polygon)",
+ "hexcasting.action.hexmapping:set_line_weight": "Marker Line Dist. II",
+ "hexmapping.page.marker_actions.set_line_weight": "Sets the Line Weight of a marker, if applicable (Circle, Rectangle, Polyline, and Polygon)",
+ "hexcasting.action.hexmapping:has_marker": "Marker Dist.",
+ "hexmapping.page.marker_actions.has_marker": "Checks if a marker exists on the $(thing)map$() under the provided $(thing)identifier$()",
+
+ "hexmapping.entry.marker_spells": "Marker Spells",
+ "hexcasting.action.hexmapping:set_marker": "Set Marker",
+ "hexmapping.page.marker_spells.set_marker": "Adds the provided $(thing)marker$() to the $(thing)map$() under the provided $(thing)identifier$()$(br2)Ambit validation is done here",
+ "hexmapping.page.marker_spells.set_marker.mishaps": "Each $(thing)marker$() has a distinct ambit test. They are as follows:$(li)$(thing)Circle Marker$() has its center position tested, then offset in the cardinal directions by the radius and tested again$(li)$(thing)Rectangle Marker$() has both its corners tested$(li)$(thing)Polygon and Polyline Markers$() have all points tested$(li)$(thing)Icon Marker$() has its position tested",
+ "hexcasting.action.hexmapping:remove_marker": "Remove Marker",
+ "hexmapping.page.marker_spells.remove_marker": "Removed the marker on the $(thing)map$() under the provided $(thing)identifier$()",
+
+ "hexmapping.entry.markers": "Nature's Glass Eye",
+ "hexmapping.page.markers.info": "$(italic)I have made a terrifying discovery. We are being observed...$()$(br2)I first thought it was an error within my anti-scrying hexes but upon further testing, it seems something is peering into our world and using Nature itself to do so. $(br2)This cannot stand...",
+ "hexmapping.page.markers.info.extra": "I have started testing the limits of their perception.$(br2)Utilizing a $(thing)Map$(), I have found a way to alter their perception by inscribing various $(thing)Markers$() onto Nature's very own eyes.$(br2)$(italic)I fear my actions may have drawn more observers... I hope I am wrong...$(br2)$(br) $(bold)THEY SEE ME$()$(br2) $(italic)they see you, $(#ff0000)$(playername)",
+ "hexmapping.page.markers.missing": "Oh, huh... Seems you are missing any map mod that we have integration for...$(br2)Here are the existing integrations:$(li)$(l:https://modrinth.com/plugin/bluemap)Bluemap$(/l)$(li)$(l:https://modrinth.com/plugin/dynmap)Dynmap$(/l)$(li)$(l:https://modrinth.com/plugin/pl3xmap)Pl3xmap$(/l)$(li)$(l:https://modrinth.com/plugin/squaremap)Squaremap$(/l)",
+ "hexcasting.action.hexmapping:get_maps/bluemap": "Bluemap Reflection",
+ "hexmapping.page.markers.get_maps.bluemap": "Pushes a list of $(thing)Maps$() for your current dimension from Bluemap to the stack",
+ "hexcasting.action.hexmapping:get_maps/dynmap": "Dynmap Reflection",
+ "hexmapping.page.markers.get_maps.dynmap": "Pushes a list of $(thing)Maps$() for your current dimension from Dynmap to the stack",
+ "hexcasting.action.hexmapping:get_maps/pl3xmap": "Pl3xmap Reflection",
+ "hexmapping.page.markers.get_maps.pl3xmap": "Pushes a list of $(thing)Maps$() for your current dimension from Pl3xmap to the stack",
+ "hexcasting.action.hexmapping:get_maps/squaremap": "Squaremap Reflection",
+ "hexmapping.page.markers.get_maps.squaremap": "Pushes a list of $(thing)Maps$() for your current dimension from Squaremap to the stack",
+
+ "hexcasting.mishap.invalid_value.class.map": "a map",
+ "hexcasting.mishap.invalid_value.class.marker": "a marker",
+ "hexcasting.mishap.invalid_value.class.marker.options": "a circle, rectangle, polygon, or polyline marker",
+ "hexcasting.mishap.invalid_value.class.marker.options.fill": "a circle, rectangle, or polygon marker",
+ "hexcasting.mishap.invalid_value.class.marker.options.line": "a circle, rectangle, polygon, or polyline marker",
+ "hexcasting.mishap.invalid_value.class.marker.options.weight": "a circle, rectangle, polygon, or polyline marker",
+
+ "hexmapping.mishap.bad_map": "Could not find %s map under %s",
+ "hexmapping.mishap.api.uninitialized": "The API for %s is uninitialized",
+ "hexmapping.mishap.marker.unrecognized": "This marker has no direct translation to %s markers",
+ "hexmapping.mishap.no_integration": "This map iota is for %s mod but it is not installed"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json b/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
new file mode 100644
index 000000000000..55880e8edd92
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
@@ -0,0 +1,7 @@
+[
+ {
+ "type": "singleton",
+ "source": "projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json",
+ "relativePath": "lang/zh_cn.json"
+ }
+]
\ No newline at end of file
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..e69de29bb2d1
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..bb5154a5592c
--- /dev/null
+++ b/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json
@@ -0,0 +1,88 @@
+{
+ "itemGroup.hextended": "Hextended's Gear",
+
+ "item.hextended.extended_staff_oak": "Extended Oak Staff",
+ "item.hextended.extended_staff_spruce": "Extended Spruce Staff",
+ "item.hextended.extended_staff_birch": "Extended Birch Staff",
+ "item.hextended.extended_staff_jungle": "Extended Jungle Staff",
+ "item.hextended.extended_staff_dark_oak": "Extended Dark Oak Staff",
+ "item.hextended.extended_staff_acacia": "Extended Acacia Staff",
+ "item.hextended.extended_staff_crimson": "Extended Crimson Staff",
+ "item.hextended.extended_staff_warped": "Extended Warped Staff",
+ "item.hextended.extended_staff_mangrove": "Extended Mangrove Staff",
+ "item.hextended.extended_staff_edified": "Extended Edified Staff",
+ "item.hextended.extended_staff_cherry": "Extended Cherry Staff",
+ "item.hextended.extended_staff_bamboo": "Extended Bamboo Staff",
+ "item.hextended.extended_staff_mindsplice": "Extended Mindsplice Staff",
+ "item.hextended.extended_staff_quenched": "Extended Quenched Shard Staff",
+
+ "item.hextended.lesser_battery_staff": "Improvised Amethyst Staff",
+ "item.hextended.lesser_battery_extended_staff": "Improvised Extended Amethyst Staff",
+ "item.hextended.sealed_lesser_battery_extended_staff": "Sealed Improvised Extended Amethyst Staff",
+ "item.hextended.sealed_lesser_battery_staff": "Sealed Improvised Amethyst Staff",
+
+ "item.hextended.moss_staff": "Mossy Staff",
+ "item.hextended.flowered_moss_staff": "Flowering Mossy Staff",
+ "item.hextended.extended_moss_staff": "Extended Mossy Staff",
+ "item.hextended.extended_flowered_moss_staff": "Extended Flowering Mossy Staff",
+ "item.hextended.prismarine_staff": "Prismarine Staff",
+ "item.hextended.dark_prismarine_staff": "Dark Prismarine Staff",
+ "item.hextended.extended_prismarine_staff": "Extended Prismarine Staff",
+ "item.hextended.extended_dark_prismarine_staff": "Extended Dark Prismarine Staff",
+ "item.hextended.obsidian_staff": "Obsidian Staff",
+ "item.hextended.purpur_staff": "Purpur Staff",
+ "item.hextended.extended_obsidian_staff": "Extended Obsidian Staff",
+ "item.hextended.extended_purpur_staff": "Extended Purpur Staff",
+
+ "item.hextended.extended_quartz_staff": "Extended Quartz Staff",
+ "item.hextended.extended_blaze_staff": "Extended Blaze Staff",
+ "item.hextended.extended_wither_staff": "Extended Wither Staff",
+ "item.hextended.extended_owlbert_staff": "Extended Owl Staff",
+ "item.hextended.extended_ghost_staff": "Extended Ghost Staff",
+ "item.hextended.extended_celestial_staff": "Extended Celestial Staff",
+ "item.hextended.extended_longinus_staff": "Extended Longinus Staff",
+ "item.hextended.extended_ice_staff": "Extended Ice Staff",
+ "item.hextended.extended_carrot_staff": "Extended Carrot Staff",
+ "item.hextended.extended_bee_staff": "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.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.gloopstended_staves": "Gloop-stended Staves",
+ "hextended.page.gloopstended_staves.0": "$(o)\"Gloop\"! Ha! Wondrous./$$(br2)Recently I've caught wind of a curious substance simply dubbed \"gloop\". Along with it, even more staff designs have $(m)glooped/$ blown my way.",
+ "hextended.page.gloopstended_staves.crafting.header.0": "Nether Staves",
+ "hextended.page.gloopstended_staves.crafting.desc.0": "Hm. Not much seems to elicit foreboding strength $(o)quite/$ like waving around half a wither.$(br2)(note the lack of skulls in this recipe, dear reader!)",
+ "hextended.page.gloopstended_staves.crafting.header.1": "Mept Staves",
+ "hextended.page.gloopstended_staves.crafting.desc.1": "\"Say goodnight, sister!\"$(br2)Some legends tell of staves that made use of circular patterns. Sounds nothing short of wild witchery!",
+ "hextended.page.gloopstended_staves.crafting.desc.2": "Nicknamed the \"Garden Staff\", it lets you cast the Revive Magick withou-- er, it's very... healthy to wield?",
+ "hextended.page.gloopstended_staves.crafting.desc.3": "Likewise to the Garden Staff, you may instead refer to this staff as the Hive Staff. Now populated with the hum of media $(o)and/$ the hum of busy friends!"
+}
\ 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..a4550d1c7cc3
--- /dev/null
+++ b/projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json
@@ -0,0 +1,7 @@
+[
+ {
+ "type": "singleton",
+ "source": "projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json",
+ "relativePath": "lang/zh_cn.json"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/hexmapping/hexmapping/lang/en_us.json b/projects/1.20/assets/hexmapping/hexmapping/lang/en_us.json
new file mode 100644
index 000000000000..7d246474494f
--- /dev/null
+++ b/projects/1.20/assets/hexmapping/hexmapping/lang/en_us.json
@@ -0,0 +1,55 @@
+{
+ "hexmapping.entry.marker_actions": "Marker Actions",
+ "hexcasting.action.hexmapping:create_marker/circle": "Circle Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.circle": "Creates a new Circle Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)position$(), and $(thing)radius$()",
+ "hexcasting.action.hexmapping:create_marker/rectangle": "Rectangle Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.rectangle": "Creates a new Rectangle Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)top corner$(), and $(thing)bottom corner$()",
+ "hexcasting.action.hexmapping:create_marker/polygon": "Polygon Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.polygon": "Creates a new Polygon Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$()",
+ "hexmapping.page.marker_actions.create_marker.polygon.hexical": "Creates a new Polygon Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$() OR a $(thing)Hexical Mesh Entity$()",
+ "hexcasting.action.hexmapping:create_marker/polyline": "Polyline Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.polyline": "Creates a new Polyline Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$()",
+ "hexmapping.page.marker_actions.create_marker.polyline.hexical": "Creates a new Polyline Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$() OR a $(thing)Hexical Mesh Entity$()",
+ "hexcasting.action.hexmapping:create_marker/icon": "Icon Marker Exlt.",
+ "hexmapping.page.marker_actions.create_marker.icon": "Creates a new Icon Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)icon$(), and $(thing)position$()",
+ "hexcasting.action.hexmapping:set_fill_color": "Marker Fill Dist.",
+ "hexmapping.page.marker_actions.set_fill_color": "Sets the Fill Color of a marker, if applicable (Circle, Rectangle, and Polygon)",
+ "hexcasting.action.hexmapping:set_line_color": "Marker Line Dist.",
+ "hexmapping.page.marker_actions.set_line_color": "Sets the Line Color of a marker, if applicable (Circle, Rectangle, Polyline, and Polygon)",
+ "hexcasting.action.hexmapping:set_line_weight": "Marker Line Dist. II",
+ "hexmapping.page.marker_actions.set_line_weight": "Sets the Line Weight of a marker, if applicable (Circle, Rectangle, Polyline, and Polygon)",
+ "hexcasting.action.hexmapping:has_marker": "Marker Dist.",
+ "hexmapping.page.marker_actions.has_marker": "Checks if a marker exists on the $(thing)map$() under the provided $(thing)identifier$()",
+
+ "hexmapping.entry.marker_spells": "Marker Spells",
+ "hexcasting.action.hexmapping:set_marker": "Set Marker",
+ "hexmapping.page.marker_spells.set_marker": "Adds the provided $(thing)marker$() to the $(thing)map$() under the provided $(thing)identifier$()$(br2)Ambit validation is done here",
+ "hexmapping.page.marker_spells.set_marker.mishaps": "Each $(thing)marker$() has a distinct ambit test. They are as follows:$(li)$(thing)Circle Marker$() has its center position tested, then offset in the cardinal directions by the radius and tested again$(li)$(thing)Rectangle Marker$() has both its corners tested$(li)$(thing)Polygon and Polyline Markers$() have all points tested$(li)$(thing)Icon Marker$() has its position tested",
+ "hexcasting.action.hexmapping:remove_marker": "Remove Marker",
+ "hexmapping.page.marker_spells.remove_marker": "Removed the marker on the $(thing)map$() under the provided $(thing)identifier$()",
+
+ "hexmapping.entry.markers": "Nature's Glass Eye",
+ "hexmapping.page.markers.info": "$(italic)I have made a terrifying discovery. We are being observed...$()$(br2)I first thought it was an error within my anti-scrying hexes but upon further testing, it seems something is peering into our world and using Nature itself to do so. $(br2)This cannot stand...",
+ "hexmapping.page.markers.info.extra": "I have started testing the limits of their perception.$(br2)Utilizing a $(thing)Map$(), I have found a way to alter their perception by inscribing various $(thing)Markers$() onto Nature's very own eyes.$(br2)$(italic)I fear my actions may have drawn more observers... I hope I am wrong...$(br2)$(br) $(bold)THEY SEE ME$()$(br2) $(italic)they see you, $(#ff0000)$(playername)",
+ "hexmapping.page.markers.missing": "Oh, huh... Seems you are missing any map mod that we have integration for...$(br2)Here are the existing integrations:$(li)$(l:https://modrinth.com/plugin/bluemap)Bluemap$(/l)$(li)$(l:https://modrinth.com/plugin/dynmap)Dynmap$(/l)$(li)$(l:https://modrinth.com/plugin/pl3xmap)Pl3xmap$(/l)$(li)$(l:https://modrinth.com/plugin/squaremap)Squaremap$(/l)",
+ "hexcasting.action.hexmapping:get_maps/bluemap": "Bluemap Reflection",
+ "hexmapping.page.markers.get_maps.bluemap": "Pushes a list of $(thing)Maps$() for your current dimension from Bluemap to the stack",
+ "hexcasting.action.hexmapping:get_maps/dynmap": "Dynmap Reflection",
+ "hexmapping.page.markers.get_maps.dynmap": "Pushes a list of $(thing)Maps$() for your current dimension from Dynmap to the stack",
+ "hexcasting.action.hexmapping:get_maps/pl3xmap": "Pl3xmap Reflection",
+ "hexmapping.page.markers.get_maps.pl3xmap": "Pushes a list of $(thing)Maps$() for your current dimension from Pl3xmap to the stack",
+ "hexcasting.action.hexmapping:get_maps/squaremap": "Squaremap Reflection",
+ "hexmapping.page.markers.get_maps.squaremap": "Pushes a list of $(thing)Maps$() for your current dimension from Squaremap to the stack",
+
+ "hexcasting.mishap.invalid_value.class.map": "a map",
+ "hexcasting.mishap.invalid_value.class.marker": "a marker",
+ "hexcasting.mishap.invalid_value.class.marker.options": "a circle, rectangle, polygon, or polyline marker",
+ "hexcasting.mishap.invalid_value.class.marker.options.fill": "a circle, rectangle, or polygon marker",
+ "hexcasting.mishap.invalid_value.class.marker.options.line": "a circle, rectangle, polygon, or polyline marker",
+ "hexcasting.mishap.invalid_value.class.marker.options.weight": "a circle, rectangle, polygon, or polyline marker",
+
+ "hexmapping.mishap.bad_map": "Could not find %s map under %s",
+ "hexmapping.mishap.api.uninitialized": "The API for %s is uninitialized",
+ "hexmapping.mishap.marker.unrecognized": "This marker has no direct translation to %s markers",
+ "hexmapping.mishap.no_integration": "This map iota is for %s mod but it is not installed"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json b/projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json
new file mode 100644
index 000000000000..da23cf0dcfd6
--- /dev/null
+++ b/projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json
@@ -0,0 +1,55 @@
+{
+ "hexmapping.entry.marker_actions": "标记操作",
+ "hexcasting.action.hexmapping:create_marker/circle": "圆形标记之提整",
+ "hexmapping.page.marker_actions.create_marker.circle": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)位置$()、$(thing)半径$()创建圆形标记。",
+ "hexcasting.action.hexmapping:create_marker/rectangle": "矩形标记之提整",
+ "hexmapping.page.marker_actions.create_marker.rectangle": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)顶部角位置$()、$(thing)底部角位置$()创建矩形标记。",
+ "hexcasting.action.hexmapping:create_marker/polygon": "多边形标记之提整",
+ "hexmapping.page.marker_actions.create_marker.polygon": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)位置列表$()创建多边形标记。",
+ "hexmapping.page.marker_actions.create_marker.polygon.hexical": "根据所给 $(thing)标识$()、$(thing)标签$()、$(thing)位置列表$()$(bold)或$() $(thing)Hexical 的网斑实体$()创建多边形标记。",
+ "hexcasting.action.hexmapping:create_marker/polyline": "折线标记之提整",
+ "hexmapping.page.marker_actions.create_marker.polyline": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)位置列表$()创建折线标记。",
+ "hexmapping.page.marker_actions.create_marker.polyline.hexical": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)位置列表$()$(bold)或$() $(thing)Hexical 的网斑实体$()创建折线标记。",
+ "hexcasting.action.hexmapping:create_marker/icon": "图标标记之提整",
+ "hexmapping.page.marker_actions.create_marker.icon": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)图标$()、$(thing)位置$()创建图标标记。",
+ "hexcasting.action.hexmapping:set_fill_color": "标记填充之馏化",
+ "hexmapping.page.marker_actions.set_fill_color": "若标记类型合适(圆形、矩形、多边形),设置标记的填充颜色。",
+ "hexcasting.action.hexmapping:set_line_color": "标记描边之馏化",
+ "hexmapping.page.marker_actions.set_line_color": "若标记类型合适(圆形、矩形、折线、多边形),设置标记的描边颜色。",
+ "hexcasting.action.hexmapping:set_line_weight": "标记描边之馏化,第二型",
+ "hexmapping.page.marker_actions.set_line_weight": "若标记类型合适(圆形、矩形、折线、多边形),设置标记的描边线宽。",
+ "hexcasting.action.hexmapping:has_marker": "标记之馏化",
+ "hexmapping.page.marker_actions.has_marker": "检查$(thing)地图$()中是否存在使用所给$(thing)标识$()的标记。",
+
+ "hexmapping.entry.marker_spells": "标记法术",
+ "hexcasting.action.hexmapping:set_marker": "设置标记",
+ "hexmapping.page.marker_spells.set_marker": "将所给$(thing)标记$()以其$(thing)标识$()加至$(thing)地图$()。$(br2)会在此时判定是否在影响范围内。",
+ "hexmapping.page.marker_spells.set_marker.mishaps": "各类$(thing)标记$()的判定方式不一。具体如下:$(li)$(thing)圆形标记$()判定其圆心位置及由此沿各轴向偏移半径长度的各位置。$(li)$(thing)矩形标记$()判定其两角。$(li)$(thing)多边形和折线标记$()判定所有点。$(li)$(thing)图标标记$()判定其位置。",
+ "hexcasting.action.hexmapping:remove_marker": "移除标记",
+ "hexmapping.page.marker_spells.remove_marker": "移除$(thing)地图$()中使用所给$(thing)标识$()的标记。",
+
+ "hexmapping.entry.markers": "自然的义眼",
+ "hexmapping.page.markers.info": "$(italic)我发现了一个恐怖的真相。有东西在看着我们……$()$(br2)我开始觉得这只是反探知咒术的误差。但在进一步测试之后,这些似乎都表明:有东西在窥探我们的世界,还借自然来掩人耳目。$(br2)是可忍……",
+ "hexmapping.page.markers.info.extra": "我已着手测试它们感知力的限度。$(br2)借助$(thing)地图$(),我成功将各种$(thing)标记$()刻入了自然的眼睛,以此扭曲它们的知觉。$(br2)$(italic)我担心我的举动可能引来了更多观测者……希望我猜错了……$(br2)$(br) $(bold)它们看见我了$()$(br2) $(italic)它们看见你了,$(#ff0000)$(playername)",
+ "hexmapping.page.markers.missing": "啊,呃……你好像没有安装任何兼容的地图模组……$(br2)这里是已有兼容模组的清单:$(li)$(l:https://modrinth.com/plugin/bluemap)Bluemap$(/l)$(li)$(l:https://modrinth.com/plugin/dynmap)Dynmap$(/l)$(li)$(l:https://modrinth.com/plugin/pl3xmap)Pl3xmap$(/l)$(li)$(l:https://modrinth.com/plugin/squaremap)Squaremap$(/l)",
+ "hexcasting.action.hexmapping:get_maps/bluemap": "Bluemap 之精思",
+ "hexmapping.page.markers.get_maps.bluemap": "从 Bluemap 中读出当前维度的$(thing)地图$()列表,并压入栈顶。",
+ "hexcasting.action.hexmapping:get_maps/dynmap": "Dynmap 之精思",
+ "hexmapping.page.markers.get_maps.dynmap": "从 Dynmap 中读出当前维度的$(thing)地图$()列表,并压入栈顶。",
+ "hexcasting.action.hexmapping:get_maps/pl3xmap": "Pl3xmap 之精思",
+ "hexmapping.page.markers.get_maps.pl3xmap": "从 Pl3xmap 中读出当前维度的$(thing)地图$()列表,并压入栈顶。",
+ "hexcasting.action.hexmapping:get_maps/squaremap": "Squaremap 之精思",
+ "hexmapping.page.markers.get_maps.squaremap": "从 Squaremap 中读出当前维度的$(thing)地图$()列表,并压入栈顶。",
+
+ "hexcasting.mishap.invalid_value.class.map": "一个地图",
+ "hexcasting.mishap.invalid_value.class.marker": "一个标记",
+ "hexcasting.mishap.invalid_value.class.marker.options": "一个圆形、矩形、多边形或折线标记",
+ "hexcasting.mishap.invalid_value.class.marker.options.fill": "一个圆形、矩形或多边形标记",
+ "hexcasting.mishap.invalid_value.class.marker.options.line": "一个圆形、矩形、多边形或折线标记",
+ "hexcasting.mishap.invalid_value.class.marker.options.weight": "一个圆形、矩形、多边形或折线标记",
+
+ "hexmapping.mishap.bad_map": "无法找到%2$s的%1$s地图",
+ "hexmapping.mishap.api.uninitialized": "%1$s对应的API尚未初始化",
+ "hexmapping.mishap.marker.unrecognized": "此标记无法直接转换为%s标记",
+ "hexmapping.mishap.no_integration": "此地图iota需同%s模组使用,但该模组未安装"
+}
\ 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..bb5154a5592c
--- /dev/null
+++ b/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json
@@ -0,0 +1,88 @@
+{
+ "itemGroup.hextended": "Hextended's Gear",
+
+ "item.hextended.extended_staff_oak": "Extended Oak Staff",
+ "item.hextended.extended_staff_spruce": "Extended Spruce Staff",
+ "item.hextended.extended_staff_birch": "Extended Birch Staff",
+ "item.hextended.extended_staff_jungle": "Extended Jungle Staff",
+ "item.hextended.extended_staff_dark_oak": "Extended Dark Oak Staff",
+ "item.hextended.extended_staff_acacia": "Extended Acacia Staff",
+ "item.hextended.extended_staff_crimson": "Extended Crimson Staff",
+ "item.hextended.extended_staff_warped": "Extended Warped Staff",
+ "item.hextended.extended_staff_mangrove": "Extended Mangrove Staff",
+ "item.hextended.extended_staff_edified": "Extended Edified Staff",
+ "item.hextended.extended_staff_cherry": "Extended Cherry Staff",
+ "item.hextended.extended_staff_bamboo": "Extended Bamboo Staff",
+ "item.hextended.extended_staff_mindsplice": "Extended Mindsplice Staff",
+ "item.hextended.extended_staff_quenched": "Extended Quenched Shard Staff",
+
+ "item.hextended.lesser_battery_staff": "Improvised Amethyst Staff",
+ "item.hextended.lesser_battery_extended_staff": "Improvised Extended Amethyst Staff",
+ "item.hextended.sealed_lesser_battery_extended_staff": "Sealed Improvised Extended Amethyst Staff",
+ "item.hextended.sealed_lesser_battery_staff": "Sealed Improvised Amethyst Staff",
+
+ "item.hextended.moss_staff": "Mossy Staff",
+ "item.hextended.flowered_moss_staff": "Flowering Mossy Staff",
+ "item.hextended.extended_moss_staff": "Extended Mossy Staff",
+ "item.hextended.extended_flowered_moss_staff": "Extended Flowering Mossy Staff",
+ "item.hextended.prismarine_staff": "Prismarine Staff",
+ "item.hextended.dark_prismarine_staff": "Dark Prismarine Staff",
+ "item.hextended.extended_prismarine_staff": "Extended Prismarine Staff",
+ "item.hextended.extended_dark_prismarine_staff": "Extended Dark Prismarine Staff",
+ "item.hextended.obsidian_staff": "Obsidian Staff",
+ "item.hextended.purpur_staff": "Purpur Staff",
+ "item.hextended.extended_obsidian_staff": "Extended Obsidian Staff",
+ "item.hextended.extended_purpur_staff": "Extended Purpur Staff",
+
+ "item.hextended.extended_quartz_staff": "Extended Quartz Staff",
+ "item.hextended.extended_blaze_staff": "Extended Blaze Staff",
+ "item.hextended.extended_wither_staff": "Extended Wither Staff",
+ "item.hextended.extended_owlbert_staff": "Extended Owl Staff",
+ "item.hextended.extended_ghost_staff": "Extended Ghost Staff",
+ "item.hextended.extended_celestial_staff": "Extended Celestial Staff",
+ "item.hextended.extended_longinus_staff": "Extended Longinus Staff",
+ "item.hextended.extended_ice_staff": "Extended Ice Staff",
+ "item.hextended.extended_carrot_staff": "Extended Carrot Staff",
+ "item.hextended.extended_bee_staff": "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.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.gloopstended_staves": "Gloop-stended Staves",
+ "hextended.page.gloopstended_staves.0": "$(o)\"Gloop\"! Ha! Wondrous./$$(br2)Recently I've caught wind of a curious substance simply dubbed \"gloop\". Along with it, even more staff designs have $(m)glooped/$ blown my way.",
+ "hextended.page.gloopstended_staves.crafting.header.0": "Nether Staves",
+ "hextended.page.gloopstended_staves.crafting.desc.0": "Hm. Not much seems to elicit foreboding strength $(o)quite/$ like waving around half a wither.$(br2)(note the lack of skulls in this recipe, dear reader!)",
+ "hextended.page.gloopstended_staves.crafting.header.1": "Mept Staves",
+ "hextended.page.gloopstended_staves.crafting.desc.1": "\"Say goodnight, sister!\"$(br2)Some legends tell of staves that made use of circular patterns. Sounds nothing short of wild witchery!",
+ "hextended.page.gloopstended_staves.crafting.desc.2": "Nicknamed the \"Garden Staff\", it lets you cast the Revive Magick withou-- er, it's very... healthy to wield?",
+ "hextended.page.gloopstended_staves.crafting.desc.3": "Likewise to the Garden Staff, you may instead refer to this staff as the Hive Staff. Now populated with the hum of media $(o)and/$ the hum of busy friends!"
+}
\ 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..a2a9260994cb
--- /dev/null
+++ b/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json
@@ -0,0 +1,89 @@
+{
+ "itemGroup.hextended": "咒法装备拓展",
+
+ "item.hextended.extended_staff_oak": "橡木长法杖",
+ "item.hextended.extended_staff_spruce": "云杉木长法杖",
+ "item.hextended.extended_staff_birch": "白桦木长法杖",
+ "item.hextended.extended_staff_jungle": "丛林木长法杖",
+ "item.hextended.extended_staff_dark_oak": "深色橡木长法杖",
+ "item.hextended.extended_staff_acacia": "金合欢木长法杖",
+ "item.hextended.extended_staff_crimson": "绯红木长法杖",
+ "item.hextended.extended_staff_warped": "诡异木长法杖",
+ "item.hextended.extended_staff_mangrove": "红树木长法杖",
+ "item.hextended.extended_staff_edified": "启迪木长法杖",
+ "item.hextended.extended_staff_cherry": "樱花木长法杖",
+ "item.hextended.extended_staff_bamboo": "竹长法杖",
+ "item.hextended.extended_staff_mindsplice": "制念长法杖",
+ "item.hextended.extended_staff_quenched": "淬灵晶长法杖",
+
+ "item.hextended.lesser_battery_staff": "临时紫水晶法杖",
+ "item.hextended.lesser_battery_extended_staff": "临时紫水晶长法杖",
+ "item.hextended.sealed_lesser_battery_extended_staff": "密封的临时紫水晶长法杖",
+ "item.hextended.sealed_lesser_battery_staff": "密封的临时紫水晶法杖",
+
+ "item.hextended.moss_staff": "覆苔法杖",
+ "item.hextended.flowered_moss_staff": "盛放的覆苔法杖",
+ "item.hextended.extended_moss_staff": "覆苔长法杖",
+ "item.hextended.extended_flowered_moss_staff": "盛放的覆苔长法杖",
+ "item.hextended.prismarine_staff": "海晶石法杖",
+ "item.hextended.dark_prismarine_staff": "暗海晶石法杖",
+ "item.hextended.extended_prismarine_staff": "海晶石长法杖",
+ "item.hextended.extended_dark_prismarine_staff": "暗海晶石长法杖",
+ "item.hextended.obsidian_staff": "黑曜石法杖",
+ "item.hextended.purpur_staff": "紫颂法杖",
+ "item.hextended.extended_obsidian_staff": "黑曜石长法杖",
+ "item.hextended.extended_purpur_staff": "紫颂长法杖",
+
+ "item.hextended.extended_quartz_staff": "石英长法杖",
+ "item.hextended.extended_blaze_staff": "烈焰长法杖",
+ "item.hextended.extended_wither_staff": "凋灵长法杖",
+ "item.hextended.extended_owlbert_staff": "猫头鹰长法杖",
+ "item.hextended.extended_ghost_staff": "幽灵长法杖",
+ "item.hextended.extended_celestial_staff": "天体长法杖",
+ "item.hextended.extended_longinus_staff": "朗基努斯长法杖",
+ "item.hextended.extended_ice_staff": "寒冰长法杖",
+ "item.hextended.extended_carrot_staff": "胡萝卜长法杖",
+ "item.hextended.extended_bee_staff": "蜜蜂长法杖",
+
+
+
+ "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.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.gloopstended_staves": "凝浆长法杖",
+ "hextended.page.gloopstended_staves.0": "$(o)“凝浆”!哈!真是奇妙。/$$(br2)最近,我听说了一种奇异的物质,名称就叫“凝浆”。随它一起来的,还有许多种法杖设计,完全$(m)凝/$超出了我的期待。",
+ "hextended.page.gloopstended_staves.crafting.header.0": "下界法杖",
+ "hextended.page.gloopstended_staves.crafting.desc.0": "哈。除了拿着半个凋灵挥来舞去之外,还有$(o)什么/$能彰显压迫感呢?$(br2)(亲爱的读者,务必注意这一合成表中无需头颅!)",
+ "hextended.page.gloopstended_staves.crafting.header.1": "使偶法杖",
+ "hextended.page.gloopstended_staves.crafting.desc.1": "“晚安了,姐姐!”$(br2)某些传说中提到过使用圆形图案的法杖。听起来和野魔法没什么两样!",
+ "hextended.page.gloopstended_staves.crafting.desc.2": "昵称“花园法杖”,它能让你更轻松地施放复活魔能技,而不需——呃,它……拿着就很健康?",
+ "hextended.page.gloopstended_staves.crafting.desc.3": "和花园法杖类似,你也可以将这支法杖称作蜂巢法杖。其中住着的,不仅有蜂鸣的媒质,$(o)还有/$蜂鸣的忙碌伙伴!"
+
+}
\ No newline at end of file
From 6529e9e67e032dda233a7132f841f20e7a60dcb2 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 23:18:55 +0800
Subject: [PATCH 13/78] Hextweaks HexThingy Hextrogen create
---
.../1.18-fabric/assets/hexal/hexal/README.md | 1 +
.../assets/hexal/hexal/packer-policy.json | 5 +-
.../hextweaks/lang/en_us.json | 78 +++++++++++++++++++
.../hextweaks/lang/zh_cn.json | 78 +++++++++++++++++++
.../1UNKNOWN/hexcasted/packer-policy.json | 5 +-
.../ephemera/ephemera/packer-policy.json | 5 +-
.../hexgender/hexgender/packer-policy.json | 5 +-
.../hexmapping/hexmapping/packer-policy.json | 5 +-
.../hextended/packer-policy.json | 5 +-
.../assets/hexvr/hex_vr/packer-policy.json | 5 +-
.../hexthingy/lang/en_us.json | 18 +++++
.../hexthingy/lang/zh_cn.json | 18 +++++
.../hextrogen/lang/en_us.json | 12 +++
.../hextrogen/lang/zh_cn.json | 12 +++
.../modrinth-hextweaks/hextweaks/README.md | 1 +
.../hextweaks/lang/en_us.json | 66 ++++++++++++++++
.../hextweaks/packer-policy.json | 6 ++
.../hextweaks/lang/en_us.json | 66 ++++++++++++++++
.../hextweaks/lang/zh_cn.json | 66 ++++++++++++++++
19 files changed, 436 insertions(+), 21 deletions(-)
create mode 100644 projects/1.18-fabric/assets/hexal/hexal/README.md
create mode 100644 projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/README.md
create mode 100644 projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/packer-policy.json
create mode 100644 projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
create mode 100644 projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
diff --git a/projects/1.18-fabric/assets/hexal/hexal/README.md b/projects/1.18-fabric/assets/hexal/hexal/README.md
new file mode 100644
index 000000000000..45c0c49e45fb
--- /dev/null
+++ b/projects/1.18-fabric/assets/hexal/hexal/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.18/assets/hexal/hexal)
\ No newline at end of file
diff --git a/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json b/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
index e6ba074c2167..1ee9f40270c3 100644
--- a/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
+++ b/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
@@ -1,7 +1,6 @@
[
{
- "type": "singleton",
- "source": "projects/1.18/assets/hexal/hexal/lang/zh_cn.json",
- "relativePath": "lang/zh_cn.json"
+ "type": "indirect",
+ "source": "projects/1.18/assets/hexal/hexal"
}
]
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/en_us.json b/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
new file mode 100644
index 000000000000..7ad502748a18
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
@@ -0,0 +1,78 @@
+{
+ "hexcasting.spell.hextweaks:nausea": "Nadir of Nausea",
+ "hextweaks.page.spell.nausea": "Inflicts $(thing)nausea/$. Base cost is one Amethyst Dust per 4 seconds.$(br2)totally not a weed joke $(l:https://discord.com/channels/936370934292549712/1011455473528098857/1098374462333788242)link$(/l)",
+
+ "hextweaks.entry.grand_spells": "Grand Spells",
+ "hextweaks.entry.grand_spells.desc": "This section contains spells that have truly been lost to time. As such. I can only find small, sparse details about them. Perhaps I'd have better luck $(l:hextweaks:patterns/great_spells/craftgrandscroll)$(action)coaxing them from nature herself/$...",
+ "hextweaks.entry.mass_mindflay": "Mass Mindflay Rituals",
+ "hextweaks.entry.mass_mindflay.desc": "Spells that seem to require me to flay minds en masse. I assume I'd need a mass of living media to attempt such a feat.$(br)Villagers, from experience, serve as a good high-density source of media. Minimally-trained villagers contribute minimally to the ritual, with each level they gain doubling their contribution.$(br)It also appears that there is a natural order, with the ones requiring the most sacrifices being performed over lower-cost ones.$(br)It also appears that only one ritual can be performed per cast.",
+
+ "hextweaks.page.spell.craft.grandscroll": "Takes an Ancient Scroll and the position of a Budding Amethyst, and searches for a random Grand Spell.",
+ "hexcasting.spell.hextweaks:craft/grandscroll": "Natural Search",
+
+ "block.hextweaks.crystallizedbookblock": "Grand Spell Dropper Block",
+ "item.hextweaks.crystallized_scroll": "Crystallized Scroll",
+ "item.hextweaks.crystallized_scroll.of": "Crystallized Scroll of %s",
+ "item.scroll.great_or_better": "A Great Spell's Scroll, or better",
+
+ "hexcasting.spell.hextweaks:grand/reroll": "Reroll Pattern",
+ "hextweaks.entry.grand.reroll": "Reroll Pattern",
+ "hextweaks.page.grand.reroll": "I've accrued quite a few Ancient Scrolls I no longer have need for. Fortunately, this spell lets me search the world for new patterns. Unfortunately, I can't do this forever, as its cost scales exponentially... $(br)Takes an Entity (Ancient/Crystallized Scroll), and rerolls the pattern upon it.$(br)Costs 10*1.25^[Number of times I've rerolled] Charged Amethyst.",
+
+ "hexcasting.spell.hextweaks:grand/massbrainsweep": "Mass Mindflay",
+ "hextweaks.page.grand.massmindflay": "All I've been able to find is that it takes a list of Entities, and another value I may have to figure out myself.$(br)$(l:patterns/great_spells/brainsweep)$(action)I think I have some notes on this./$ However, I should be careful — this feels like too much power to be wielded by one hand.",
+ "hextweaks.page.mass_mindflay.create_slipway": "Create Slipway",
+ "hextweaks.page.mass_mindflay.create_slipway.content": "Takes a position which is where the slipway will be created. It must be empty air, otherwise nothing will happen.$(br)Consumes 5 Masters.",
+ "hextweaks.page.mass_mindflay.destroy_slipway": "Collapse Slipway",
+ "hextweaks.page.mass_mindflay.destroy_slipway.content": "Takes a position where the slipway is located. $(br)Consumes a Master.",
+
+ "hextweaks.entry.hextweaks_utility": "Hextweaks Utility",
+ "hextweaks.entry.hextweaks.dict": "Hextweaks Dictionary",
+
+ "hexcasting.spell.hextweaks:page/right": "Progress Gambit",
+ "hexcasting.spell.hextweaks:page/left": "Regress Gambit",
+ "hextweaks.page.hextweaks_utility.page/right": "Turns the spellbook that you are holding one page to the right.",
+ "hextweaks.page.hextweaks_utility.page/left": "Turns the spellbook that you are holding one page to the left.",
+
+ "hexcasting.spell.hextweaks:suicide": "Suspicious Glyph",
+ "hextweaks.page.spell.suicide": "It appears to be a pattern, I wonder what happens if I cast it",
+ "death.attack.hextweaks.death.sus": "%s was called sus",
+
+ "hextweaks.iota.dictionary": "{%s}",
+ "hextweaks.mishap.notadict": "is not a dictionary",
+ "hextweaks.mishap.cannotbekey": "cannot be a dictionary key",
+ "hextweaks.mishap.cannotbevalue": "cannot be a dictionary value",
+ "hextweaks.mishap.dicttoolarge": "%s cannot have a value inserted, as it is too big",
+
+ "note.dictionary.name": "Clerk's ",
+ "hexcasting.spell.hextweaks:dict/new": "Clerk's Vacant Reflection",
+ "hexcasting.spell.hextweaks:dict/from": "Clerk's Distillation",
+ "hexcasting.spell.hextweaks:dict/break": "Clerk's Decomposition",
+ "hexcasting.spell.hextweaks:dict/size": "Clerk's Abacus Purification",
+ "hexcasting.spell.hextweaks:dict/set": "Clerk's Integration Exaltation",
+ "hexcasting.spell.hextweaks:dict/get": "Clerk's Surgeon's Exaltation",
+ "hexcasting.spell.hextweaks:dict/remove": "Clerk's Excisor's Distillation",
+ "hexcasting.spell.hextweaks:dict/thoths": "Clerk's Thoth's Gambit",
+ "hexcasting.spell.hextweaks:dict/break/single": "Clerk's Decomposition II",
+
+ "hexcasting.action.book.hextweaks:dict/new": "Clerk's Vacant Rfln.",
+ "hexcasting.action.book.hextweaks:dict/size": "Clerk's Abacus Prfn.",
+ "hexcasting.action.book.hextweaks:dict/set": "Clerk's Integration Exln.",
+ "hexcasting.action.book.hextweaks:dict/get": "Clerk's Surgeon's Exln.",
+ "hexcasting.action.book.hextweaks:dict/remove": "Clerk's Excisor's Dstl.",
+
+ "hextweaks.page.hextweaks.dict.info": "Dictionaries are a type of iota added by HexTweaks, similar to a portable akashic record (although limited to 32 indexes).$(br)The type key indicates any type - except dictionaries or lists, as they cannot be used as keys.",
+ "hextweaks.page.hextweaks.dict.new": "Pushes a new, empty dictionary to the stack.",
+ "hextweaks.page.hextweaks.dict.from": "Turns two lists into a dictionary. Invalid keys get their values dropped.",
+ "hextweaks.page.hextweaks.dict.break": "Breaks a dictionary into list of keys and values.",
+ "hextweaks.page.hextweaks.dict.break.single": "Breaks only the first value, and drops the others.",
+ "hextweaks.page.hextweaks.dict.size": "Pops a dictionary and returns its size.",
+ "hextweaks.page.hextweaks.dict.set": "Adds a key/value pair to the dictionary. The dictionary iota remains on the stack.",
+ "hextweaks.page.hextweaks.dict.get": "Gets a value from the dictionary using a key. The dictionary iota remains on the stack.",
+ "hextweaks.page.hextweaks.dict.remove": "Removes a key from the dictionary.",
+ "hextweaks.page.hextweaks.dict.thoths": "A corollary of Thoth's Gambit for dictionaries.$(br) Pushes [key,value] to the top of the stack instead of a single value.",
+
+
+ "hexcasting.spell.hextweaks:itter": "Pebbles' Purification",
+ "hextweaks.page.hextweaks.utility.itter": "Takes a number and returns all numbers 0 to n-1, producing n values. I should be careful as to not flood my stack."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json b/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
new file mode 100644
index 000000000000..aacfaeb0ce23
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
@@ -0,0 +1,78 @@
+{
+ "hexcasting.spell.hextweaks:nausea": "反胃之西沉",
+ "hextweaks.page.spell.nausea": "给予$(thing)反胃/$。每 4 秒持续时间的基础消耗为 1 个紫水晶粉。$(br2)完全不是“weed”笑话$(l:https://discord.com/channels/936370934292549712/1011455473528098857/1098374462333788242)链接$(/l)",
+
+ "hextweaks.entry.grand_spells": "卓伟法术",
+ "hextweaks.entry.grand_spells.desc": "本节记载着真正遗落散尽的法术。正因此,我只能搜寻到少量有关细节,难以知全貌。也许我能到$(l:hextweaks:patterns/great_spells/craftgrandscroll)$(action)自然那里碰碰运气/$……",
+ "hextweaks.entry.mass_mindflay": "群体剥离意识仪式",
+ "hextweaks.entry.mass_mindflay.desc": "此处记载着似乎需要大量剥离意识的法术。我认为施放如此宏大的法术,需要极大量的活体媒质。$(br)村民的熟练度是不错的高密度媒质源。交易极少的村民对仪式的贡献也极少,熟练度每增一级贡献就会翻倍。$(br)而且似乎仪式间存在着某种自然顺序,所需较多的仪式会优先于所需较少的仪式执行。$(br)并且每次施法貌似只能执行一次仪式。",
+
+ "hextweaks.page.spell.craft.grandscroll": "接受一份远古卷轴、和一个紫水晶母岩的位置,并随机搜索出一个卓伟法术。",
+ "hexcasting.spell.hextweaks:craft/grandscroll": "自然搜索",
+
+ "block.hextweaks.crystallizedbookblock": "卓伟法术生成方块",
+ "item.hextweaks.crystallized_scroll": "晶化卷轴",
+ "item.hextweaks.crystallized_scroll.of": "%s之晶化卷轴",
+ "item.scroll.great_or_better": "远古卷轴或更高级的卷轴",
+
+ "hexcasting.spell.hextweaks:grand/reroll": "重骰图案",
+ "hextweaks.entry.grand.reroll": "重骰图案",
+ "hextweaks.page.grand.reroll": "没有收集需要的远古卷轴已经堆积如山,好在这个法术能在世界中搜索新图案。可惜我没法永远这么做,不然它的消耗会指数式增长……$(br)接受一个远古卷轴或晶化卷轴实体,并重骰其上图案。$(br)消耗 10 * 1.25 ^ (重骰次数) 个充能紫水晶。",
+
+ "hexcasting.spell.hextweaks:grand/massbrainsweep": "群体剥离意识",
+ "hextweaks.page.grand.massmindflay": "需要一个由实体组成的列表,还有一个参量应自行推断,我目前就发现这么多了……$(br)$(l:patterns/great_spells/brainsweep)$(action)我应该记下了些相关的笔记。/$即使如此,也务必万分注意,这些法术的力量不像是常人所能掌控的。",
+ "hextweaks.page.mass_mindflay.create_slipway": "创造质道",
+ "hextweaks.page.mass_mindflay.create_slipway.content": "接受一个位置向量,并在该位置处创造质道,且该位置需无方块,否则什么都不会发生。$(br)消耗 5 个大师村民。",
+ "hextweaks.page.mass_mindflay.destroy_slipway": "坍缩质道",
+ "hextweaks.page.mass_mindflay.destroy_slipway.content": "接受质道位置向量,并将其摧毁。$(br)消耗 1 个大师村民。",
+
+ "hextweaks.entry.hextweaks_utility": "咒法调整:实用",
+ "hextweaks.entry.hextweaks.dict": "咒法调整:字典",
+
+ "hexcasting.spell.hextweaks:page/right": "页进之策略",
+ "hexcasting.spell.hextweaks:page/left": "页退之策略",
+ "hextweaks.page.hextweaks_utility.page/right": "将我所持的法术书向右翻一页。",
+ "hextweaks.page.hextweaks_utility.page/left": "将我所持的法术书向左翻一页。",
+
+ "hexcasting.spell.hextweaks:suicide": "可疑的图案",
+ "hextweaks.page.spell.suicide": "似乎是某种图案,真想知道它有什么效果。",
+ "death.attack.hextweaks.death.sus": "%s被认为相当可疑",
+
+ "hextweaks.iota.dictionary": "{%s}",
+ "hextweaks.mishap.notadict": "一个字典",
+ "hextweaks.mishap.cannotbekey": "一个有效字典键",
+ "hextweaks.mishap.cannotbevalue": "一个有效字典值",
+ "hextweaks.mishap.dicttoolarge": "%s过大,因此无法新加入键值对",
+
+ "note.dictionary.name": "书记员之",
+ "hexcasting.spell.hextweaks:dict/new": "书记员空无之精思",
+ "hexcasting.spell.hextweaks:dict/from": "书记员之馏化",
+ "hexcasting.spell.hextweaks:dict/break": "书记员之分解",
+ "hexcasting.spell.hextweaks:dict/size": "书记员算盘之纯化",
+ "hexcasting.spell.hextweaks:dict/set": "书记员整合之提整",
+ "hexcasting.spell.hextweaks:dict/get": "书记员外科医师之提整",
+ "hexcasting.spell.hextweaks:dict/remove": "书记员切除器之馏化",
+ "hexcasting.spell.hextweaks:dict/thoths": "书记员托特之策略",
+ "hexcasting.spell.hextweaks:dict/break/single": "书记员之分解,第二型",
+
+ "hexcasting.action.book.hextweaks:dict/new": "书记员空无之精思",
+ "hexcasting.action.book.hextweaks:dict/size": "书记员算盘之纯化",
+ "hexcasting.action.book.hextweaks:dict/set": "书记员整合之提整",
+ "hexcasting.action.book.hextweaks:dict/get": "书记员外科医师之提整",
+ "hexcasting.action.book.hextweaks:dict/remove": "书记员切除器之馏化",
+
+ "hextweaks.page.hextweaks.dict.info": "字典是咒法调整新增的一种 iota,类似便携式阿卡夏记录,但最多只能包含 32 条记录。$(br)key(键)类型代表除字典和列表外的所有 iota 类型,字典和列表不可出现于字典内。",
+ "hextweaks.page.hextweaks.dict.new": "压入一个空的新字典。",
+ "hextweaks.page.hextweaks.dict.from": "将两个列表组合为一个字典,无效键对应的值会被丢弃。",
+ "hextweaks.page.hextweaks.dict.break": "将一个字典拆解为键列表和值列表。",
+ "hextweaks.page.hextweaks.dict.break.single": "仅将字典中第一对键值拆出,其余丢弃。",
+ "hextweaks.page.hextweaks.dict.size": "弹出字典,并返回其大小。",
+ "hextweaks.page.hextweaks.dict.set": "将键值对加入字典,字典会留在栈内。",
+ "hextweaks.page.hextweaks.dict.get": "返回字典中键对应的值,字典会留在栈内。",
+ "hextweaks.page.hextweaks.dict.remove": "从字典中移除键。",
+ "hextweaks.page.hextweaks.dict.thoths": "适用于字典的托特之策略。$(br)会将键值对分别压入栈顶,而非仅压入值。",
+
+
+ "hexcasting.spell.hextweaks:itter": "石子之纯化",
+ "hextweaks.page.hextweaks.utility.itter": "接受一个数,并返回从 0 开始至 n - 1 的所有数,共计 n 个。务必小心,以免往栈中塞进太多 iota。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
index c2957700f06e..166278912c15 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
@@ -1,7 +1,6 @@
[
{
- "type": "singleton",
- "source": "projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json",
- "relativePath": "lang/zh_cn.json"
+ "type": "indirect",
+ "source": "projects/1.20/assets/1UNKNOWN/hexcasted"
}
]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json b/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
index b37c9eb4a9d6..59e88043ef3a 100644
--- a/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
+++ b/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
@@ -1,7 +1,6 @@
[
{
- "type": "singleton",
- "source": "projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json",
- "relativePath": "lang/zh_cn.json"
+ "type": "indirect",
+ "source": "projects/1.20/assets/ephemera/ephemera"
}
]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json b/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
index 7e322aebea97..788c2d2195df 100644
--- a/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
+++ b/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
@@ -1,7 +1,6 @@
[
{
- "type": "singleton",
- "source": "projects/1.20/assets/hexgender/hexgender/lang/zh_cn.json",
- "relativePath": "lang/zh_cn.json"
+ "type": "indirect",
+ "source": "projects/1.20/assets/hexgender/hexgender"
}
]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json b/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
index 55880e8edd92..f07413f407ed 100644
--- a/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
+++ b/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
@@ -1,7 +1,6 @@
[
{
- "type": "singleton",
- "source": "projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json",
- "relativePath": "lang/zh_cn.json"
+ "type": "indirect",
+ "source": "projects/1.20/assets/hexmapping/hexmapping/lang"
}
]
\ 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
index a4550d1c7cc3..61f3942c17a9 100644
--- a/projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json
+++ b/projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json
@@ -1,7 +1,6 @@
[
{
- "type": "singleton",
- "source": "projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json",
- "relativePath": "lang/zh_cn.json"
+ "type": "indirect",
+ "source": "projects/1.20/assets/hextended-staves/hextended"
}
]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json b/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
index 8dc10b182a45..cff36249ef7c 100644
--- a/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
+++ b/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
@@ -1,7 +1,6 @@
[
{
- "type": "singleton",
- "source": "projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json",
- "relativePath": "lang/zh_cn.json"
+ "type": "indirect",
+ "source": "projects/1.20/assets/hexvr/hex_vr"
}
]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/en_us.json
new file mode 100644
index 000000000000..4fd85566eabd
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/en_us.json
@@ -0,0 +1,18 @@
+{
+ "hexcasting.mishap.notalive.single": "Cannot be casted to not alive entity",
+
+ "hexcasting.action.hexthingy:smite": "Smite",
+ "hexcasting.action.hexthingy:allaycreation": "Allay Creation",
+ "hexcasting.action.hexthingy:things/pasteurpurification": "Pasteur's Purification",
+ "hexcasting.action.hexthingy:things/cleaneffect": "Clean Effects",
+
+ "hexthingy.entry.smite": "Smite",
+ "hexthingy.entry.allaycreation": "Allay Creation",
+ "hexthingy.entry.patternthings": "Pattern Things",
+ "hexthingy.entry.spellthings": "Spell Things",
+
+ "hexthingy.page.smite": "Deals damage to entity. Costs about 1.5 $(l:items/amethyst)$(item)Amethyst Shards/$ per 1 $(thing)HP/$.",
+ "hexthingy.page.allaycreation": "By infusing a Vex with media, you can create an Allay. Costs about 15 $(l:items/amethyst)$(item)Charged Amethyst/$",
+ "hexthingy.page.things.pasteurpurification": "Takes an entity and returns its health",
+ "hexthingy.page.things.cleaneffect": "Takes an entity and removes all effects from it (Will not remove Infinite effects). Costs about 1 $(l:items/amethyst)$(item)Amethyst Dust/$ per every second multiplied by the level of effect."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/zh_cn.json
new file mode 100644
index 000000000000..3cda204b79a8
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/zh_cn.json
@@ -0,0 +1,18 @@
+{
+ "hexcasting.mishap.notalive.single": "无法向非活体实体施放",
+
+ "hexcasting.action.hexthingy:smite": "惩戒",
+ "hexcasting.action.hexthingy:allaycreation": "悦灵制造",
+ "hexcasting.action.hexthingy:things/pasteurpurification": "巴斯德之纯化",
+ "hexcasting.action.hexthingy:things/cleaneffect": "清除效果",
+
+ "hexthingy.entry.smite": "惩戒",
+ "hexthingy.entry.allaycreation": "悦灵制造",
+ "hexthingy.entry.patternthings": "HexThingy 图案",
+ "hexthingy.entry.spellthings": "HexThingy 法术",
+
+ "hexthingy.page.smite": "对实体造成伤害。每造成 1 点 $(thing)HP/$ 的伤害消耗大约 1.5 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
+ "hexthingy.page.allaycreation": "向恼鬼融注媒质,就得到了悦灵。消耗大约 15 个$(l:items/amethyst)$(item)充能紫水晶/$。",
+ "hexthingy.page.things.pasteurpurification": "接受一个实体,返回其生命值。",
+ "hexthingy.page.things.cleaneffect": "接受一个实体,并移除其身上所有效果(不会移除无限持续时间的效果)。每效果每等级每秒持续时间消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉/$。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
new file mode 100644
index 000000000000..b91979c515d9
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
@@ -0,0 +1,12 @@
+{
+ "advancement.hextrogen.dash.title": "Breaking Inertia",
+ "advancement.hextrogen.dash.description": "Dash using the power of estrogen!",
+ "hexcasting.mishap.hextrogen:no_estrogen": "Expected estrogen.",
+ "hextrogen.page.estrogen.title": "Dashing",
+ "hextrogen.page.estrogen.0": "After $(item)Estrogen$(), I seem to have unlocked a peculiar ability to $(#ac3232)Dash$() by tapping $(thing)$(k:estrogen.dash)$().$(br2)$(#ac3232)Dashing$() grants me a sudden burst of momentum for a few moments, during which my velocity can not be altered. _Media being the energy of thought, I can use _Hexcasting to stimulate the area of my brain responsible for this ability, with a surprising amount of directional control.",
+ "hexcasting.action.hextrogen:dash": "Dash",
+ "hextrogen.page.dash.summary": "Accepts a vector, normalizes it, and compels my mind to $(#ac3232)Dash$() in that direction. Cancels my velocity if given the zero vector. Free. If I am out of $(#ac3232)Dashes$(), does nothing. Requires $(item)Estrogen$().",
+ "hextrogen.page.estrogen.1": "I must touch the ground again in order to \"refresh\" my $(#ac3232)Dash$(). However, I believe more potent forms of $(item)Estrogen$() can potentially unlock several consecutive $(#ac3232)Dashes$() before I require footing. Alternatively, I can utilize _Hexcasting to instantly renew my $(#ac3232)Dashes$().$(br2)I have discovered records of certain precise $(#ac3232)Dashes$() that can massively boost my mobility, but that art seems to have been lost to time.",
+ "hexcasting.action.hextrogen:refresh_dashes": "Overdrive",
+ "hextrogen.page.refresh_dashes.summary": "Instantly replenishes all of my $(#ac3232)Dashes$(). Costs about one $(l:items/amethyst)$(item)Charged Amethyst$(). Nature $(o)really$() doesn't want me to dash infinitely, it seems. Requires $(item)Estrogen$()."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
new file mode 100644
index 000000000000..78fa31eba6f8
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
@@ -0,0 +1,12 @@
+{
+ "advancement.hextrogen.dash.title": "打破惯性",
+ "advancement.hextrogen.dash.description": "用雌激素的力量冲刺!",
+ "hexcasting.mishap.hextrogen:no_estrogen": "本应存在雌激素。",
+ "hextrogen.page.estrogen.title": "冲刺",
+ "hextrogen.page.estrogen.0": "借助$(item)雌激素$(),我似乎学会了一项新能力——按下$(thing)$(k:estrogen.dash)$()就可$(#ac3232)冲刺$()。$(br2)$(#ac3232)冲刺$()会给予持续一段时间的动量爆发,期间我无法调整速度。$(media)媒质$()是思维的能量,因此可借助$(hex)咒法学$()刺激大脑中掌管此能力的区域,还保留了相当程度的方向控制。",
+ "hexcasting.action.hextrogen:dash": "冲刺",
+ "hextrogen.page.dash.summary": "接受一个向量,进行归一化,并令我的意识向该方向$(#ac3232)冲刺$()。如果传入零向量则让速度归零。无需消耗$(media)媒质$()。如果我当前不能$(#ac3232)冲刺$(),则无效果。需要$(item)雌激素$()。",
+ "hextrogen.page.estrogen.1": "$(#ac3232)冲刺$()次数会在触碰到地面时“重置”。不过,我相信更强效的$(item)雌激素$()可以在着陆前支持更多次连续的$(#ac3232)冲刺$()。而且,我还可以用$(hex)咒法学$()手段来刷新$(#ac3232)冲刺$()次数。$(br2)我找到了若干记录,称恰到好处的$(#ac3232)冲刺$()能极大地增加机动性,但这门技艺似乎已经随时间远去了。",
+ "hexcasting.action.hextrogen:refresh_dashes": "过载",
+ "hextrogen.page.refresh_dashes.summary": "立即恢复所有$(#ac3232)冲刺$()次数。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。自然大概$(o)真的很$()不想让我一直冲刺。需要$(item)雌激素$()。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/README.md b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/README.md
new file mode 100644
index 000000000000..3d3dcb1c2a8f
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/modrinth-hextweaks/hextweaks)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
new file mode 100644
index 000000000000..59e44b42213d
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
@@ -0,0 +1,66 @@
+{
+ "hexcasting.action.hextweaks:grand_spell": "Unknown Grand Spell",
+ "hexcasting.action.hextweaks:infusion": "Infuse Will",
+ "hextweaks.page.infusion.1": "Takes a pattern and makes it unique to me by injecting patterns that I cannot draw by hand$(br)also seems to put more power into certain spells",
+
+ "hextweaks.action.lackwill": "The action appears to work but lacks a ",
+ "hextweaks.action.lackwill.will": "Will",
+
+ "hextweaks.handler.grand": "Grand Spell",
+
+ "death.attack.hextweaks.death.sus": "%s was called sus",
+
+ "hextweaks.entry.interop.cc": "Computercraft",
+ "hextweaks.page.interop.cc.1": "Thanks to my extensive research I have discovered that I can give the turtles and pocket computers a Mindsplice staff to have them perform menial task in my place",
+ "hextweaks.page.interop.cc.2": "there also appears to be a new event when a staff is equipped $(o)reveal() which just has a string sent via patterns like reveal.$(br)and $(o)mishap) that contains the mishap's class,the pattern's name, and the hex pattern as string",
+ "hextweaks.page.interop.cc.3": "Turtles cast as no one and have normal ambit. pocket computers cast as the player holding them. also having full ambit",
+
+ "hextweaks.category.grand_spells.desc": "It appears that there is another layer of spells. I must infuse my will inorder to find them. I will document what I find out about them here",
+ "hextweaks.category.grand_spells": "Grand Spells",
+
+ "hextweaks.category.grand_spells.mindflay_rituals": "Mass Mindflay Rituals",
+ "hextweaks.category.grand_spells.mindflay_rituals.desc": "Here I have compiled every rituals known to me.$(br)\"On The Bulk Flaying Of Minds\"$(br)$(br)Seems to operate on a \"Point\" system. with each villager being worth double the previous",
+
+ "hextweaks.entry.patterns.grand.fireball": "Fireball",
+ "hextweaks.page.patterns.grand.fireball.1": "It is fireball but with double the maximum power",
+
+ "hextweaks.entry.patterns.grand.explode": "Explode",
+ "hextweaks.page.patterns.grand.explode.1": "It is explosion but with double the maximum power",
+
+ "hextweaks.entry.patterns.grand.mindflay": "Grand Mindflay",
+ "hextweaks.page.patterns.grand.mindflay.1": "As it's parent would have you believe it takes the will of mobs and puts them in something else.$(br) this version acts in bulk taking a $(br)[entity], vec3|entity -> $(br)and performing various rituals",
+
+ "hextweaks.entry.rituals.slipways": "Create and Collapse Slipways",
+ "hextweaks.page.rituals.slipways.1": "Create slipway.$(br)[villager (80 points)],wisp -> $(br)takes some villagers and turns the wisp into a slipway",
+ "hextweaks.page.rituals.slipways.2": "Collapse slipway.$(br)[villager (16 points)],pos -> $(br)takes some villagers and collapses the slipway into 10-20 wandering wisp",
+
+ "hextweaks.entry.rituals.titration": "Titration Time Skip",
+ "hextweaks.page.rituals.titration.1": "$(br)[villager + witch (8 points per witch)],pos -> $(br)takes some villager and witches and tries to skip 12 hours for each witch sacrificed",
+
+ "hextweaks.entry.rituals.restock": "Restock Trades",
+ "hextweaks.page.rituals.restock.1": "[Villager (1 point per trade)],Villager$(br)Restocks all of the targeted villagers trades.$(br)Consumes 1 point for each trade offered by the target villager",
+
+ "hextweaks.entry.rituals.reset": "Reset Chunk",
+ "hextweaks.page.rituals.reset.1": "[Mason (128 points)], Position ->$(br)Starts a ritual to reset a chunk. it takes 30 minutes total (20 stages of 1-minute and 10-minute countdown)$(br)consumes $(o)98304$() quenched shards per stage. The ritual will not start if any entity aside from Mason villagers is present in the input list",
+
+ "hextweaks.entry.hextweaks_utility": "Hextweaks Utility",
+ "hexcasting.action.hextweaks:page/right": "Progress Gambit",
+ "hexcasting.action.hextweaks:page/left": "Regress Gambit",
+ "hextweaks.page.hextweaks_utility.page/right": "Turns the spellbook that your are holding one page to the right",
+ "hextweaks.page.hextweaks_utility.page/left": "Turns the spellbook that your are holding one page to the left",
+
+ "hexcasting.action.hextweaks:while": "Heket's Gambit",
+ "hextweaks.page.hextweaks_utility.while": "Removes a pattern list from the stack. Examines (but does not remove) the iota beneath it, and evaluates the pattern list if and only if $(l:patterns/logic#hexcasting:bool_coerce)Augur's Purification$() would respond to that iota with True. Examination and evaluation repeats until the iota would no longer create truth.",
+
+ "hextweaks.entry.hextweaks_pe": "Hextweaks Post Enlightenment",
+
+ "hexcasting.action.hextweaks:wave": "Wave Reflection",
+ "hextweaks.page.hextweaks_pe.wave": "Returns the posistion of the $(item)Wave$() of media passing through a $(l:greatwork/impetus)Spell Circle$()",
+
+ "hexcasting.action.hextweaks:normal": "Normals reflection",
+ "hextweaks.page.hextweaks_pe.normal": "Returns the $(item)normal$() of the $(item)slate$() the $(item)Wave$() is on in the $(l:greatwork/impetus)Spell Circle$()",
+
+ "hextweaks.entity.sbe": "Ritual Beacon",
+ "hextweaks.ritual.reset": "Ritual of Resetting",
+ "hextweaks.page.hextweaks_utility.sbe": "Gets all Active ritual entities within the specified range$(br)$(br)HexTweaks also makes a mixin so Compass Prfn's no longer do a ambit check"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/packer-policy.json b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/packer-policy.json
new file mode 100644
index 000000000000..4f3845f6a020
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/packer-policy.json
@@ -0,0 +1,6 @@
+[
+ {
+ "type": "indirect",
+ "source": "projects/1.20/assets/modrinth-hextweaks/hextweaks"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/en_us.json b/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
new file mode 100644
index 000000000000..59e44b42213d
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
@@ -0,0 +1,66 @@
+{
+ "hexcasting.action.hextweaks:grand_spell": "Unknown Grand Spell",
+ "hexcasting.action.hextweaks:infusion": "Infuse Will",
+ "hextweaks.page.infusion.1": "Takes a pattern and makes it unique to me by injecting patterns that I cannot draw by hand$(br)also seems to put more power into certain spells",
+
+ "hextweaks.action.lackwill": "The action appears to work but lacks a ",
+ "hextweaks.action.lackwill.will": "Will",
+
+ "hextweaks.handler.grand": "Grand Spell",
+
+ "death.attack.hextweaks.death.sus": "%s was called sus",
+
+ "hextweaks.entry.interop.cc": "Computercraft",
+ "hextweaks.page.interop.cc.1": "Thanks to my extensive research I have discovered that I can give the turtles and pocket computers a Mindsplice staff to have them perform menial task in my place",
+ "hextweaks.page.interop.cc.2": "there also appears to be a new event when a staff is equipped $(o)reveal() which just has a string sent via patterns like reveal.$(br)and $(o)mishap) that contains the mishap's class,the pattern's name, and the hex pattern as string",
+ "hextweaks.page.interop.cc.3": "Turtles cast as no one and have normal ambit. pocket computers cast as the player holding them. also having full ambit",
+
+ "hextweaks.category.grand_spells.desc": "It appears that there is another layer of spells. I must infuse my will inorder to find them. I will document what I find out about them here",
+ "hextweaks.category.grand_spells": "Grand Spells",
+
+ "hextweaks.category.grand_spells.mindflay_rituals": "Mass Mindflay Rituals",
+ "hextweaks.category.grand_spells.mindflay_rituals.desc": "Here I have compiled every rituals known to me.$(br)\"On The Bulk Flaying Of Minds\"$(br)$(br)Seems to operate on a \"Point\" system. with each villager being worth double the previous",
+
+ "hextweaks.entry.patterns.grand.fireball": "Fireball",
+ "hextweaks.page.patterns.grand.fireball.1": "It is fireball but with double the maximum power",
+
+ "hextweaks.entry.patterns.grand.explode": "Explode",
+ "hextweaks.page.patterns.grand.explode.1": "It is explosion but with double the maximum power",
+
+ "hextweaks.entry.patterns.grand.mindflay": "Grand Mindflay",
+ "hextweaks.page.patterns.grand.mindflay.1": "As it's parent would have you believe it takes the will of mobs and puts them in something else.$(br) this version acts in bulk taking a $(br)[entity], vec3|entity -> $(br)and performing various rituals",
+
+ "hextweaks.entry.rituals.slipways": "Create and Collapse Slipways",
+ "hextweaks.page.rituals.slipways.1": "Create slipway.$(br)[villager (80 points)],wisp -> $(br)takes some villagers and turns the wisp into a slipway",
+ "hextweaks.page.rituals.slipways.2": "Collapse slipway.$(br)[villager (16 points)],pos -> $(br)takes some villagers and collapses the slipway into 10-20 wandering wisp",
+
+ "hextweaks.entry.rituals.titration": "Titration Time Skip",
+ "hextweaks.page.rituals.titration.1": "$(br)[villager + witch (8 points per witch)],pos -> $(br)takes some villager and witches and tries to skip 12 hours for each witch sacrificed",
+
+ "hextweaks.entry.rituals.restock": "Restock Trades",
+ "hextweaks.page.rituals.restock.1": "[Villager (1 point per trade)],Villager$(br)Restocks all of the targeted villagers trades.$(br)Consumes 1 point for each trade offered by the target villager",
+
+ "hextweaks.entry.rituals.reset": "Reset Chunk",
+ "hextweaks.page.rituals.reset.1": "[Mason (128 points)], Position ->$(br)Starts a ritual to reset a chunk. it takes 30 minutes total (20 stages of 1-minute and 10-minute countdown)$(br)consumes $(o)98304$() quenched shards per stage. The ritual will not start if any entity aside from Mason villagers is present in the input list",
+
+ "hextweaks.entry.hextweaks_utility": "Hextweaks Utility",
+ "hexcasting.action.hextweaks:page/right": "Progress Gambit",
+ "hexcasting.action.hextweaks:page/left": "Regress Gambit",
+ "hextweaks.page.hextweaks_utility.page/right": "Turns the spellbook that your are holding one page to the right",
+ "hextweaks.page.hextweaks_utility.page/left": "Turns the spellbook that your are holding one page to the left",
+
+ "hexcasting.action.hextweaks:while": "Heket's Gambit",
+ "hextweaks.page.hextweaks_utility.while": "Removes a pattern list from the stack. Examines (but does not remove) the iota beneath it, and evaluates the pattern list if and only if $(l:patterns/logic#hexcasting:bool_coerce)Augur's Purification$() would respond to that iota with True. Examination and evaluation repeats until the iota would no longer create truth.",
+
+ "hextweaks.entry.hextweaks_pe": "Hextweaks Post Enlightenment",
+
+ "hexcasting.action.hextweaks:wave": "Wave Reflection",
+ "hextweaks.page.hextweaks_pe.wave": "Returns the posistion of the $(item)Wave$() of media passing through a $(l:greatwork/impetus)Spell Circle$()",
+
+ "hexcasting.action.hextweaks:normal": "Normals reflection",
+ "hextweaks.page.hextweaks_pe.normal": "Returns the $(item)normal$() of the $(item)slate$() the $(item)Wave$() is on in the $(l:greatwork/impetus)Spell Circle$()",
+
+ "hextweaks.entity.sbe": "Ritual Beacon",
+ "hextweaks.ritual.reset": "Ritual of Resetting",
+ "hextweaks.page.hextweaks_utility.sbe": "Gets all Active ritual entities within the specified range$(br)$(br)HexTweaks also makes a mixin so Compass Prfn's no longer do a ambit check"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json b/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
new file mode 100644
index 000000000000..c7538641a7a5
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
@@ -0,0 +1,66 @@
+{
+ "hexcasting.action.hextweaks:grand_spell": "未知卓伟法术",
+ "hexcasting.action.hextweaks:infusion": "融注意志",
+ "hextweaks.page.infusion.1": "接受一个图案,并以此生成一个无法手动绘制的、因人而异的图案。$(br)似乎会给予某些法术更多能量。",
+
+ "hextweaks.action.lackwill": "此操作似乎有用,但缺少了",
+ "hextweaks.action.lackwill.will": "的意志",
+
+ "hextweaks.handler.grand": "卓伟法术",
+
+ "death.attack.hextweaks.death.sus": "%s被认为相当可疑",
+
+ "hextweaks.entry.interop.cc": "ComputerCraft",
+ "hextweaks.page.interop.cc.1": "我进行了大量研究,最终发现我可以给海龟和掌上电脑配备一杆制念法杖,以让它们替我执行些琐事。",
+ "hextweaks.page.interop.cc.2": "它们持有法杖时还有一些新事件(event)可用。$(o)reveal$() 会像揭示那样通过图案返回字符串。$(br)$(o)mishap$() 则会包含事故的类名、图案的名称,以及字符串形式的咒术图案。",
+ "hextweaks.page.interop.cc.3": "海龟的施法不具有施法者,施法范围正常。掌上电脑施法的施法者为手持它的玩家,施法范围同样正常。",
+
+ "hextweaks.category.grand_spells.desc": "似乎法术还有另一个层次,必须向其中融注意志才能找到它们。我会将我找到的法术记录在此。",
+ "hextweaks.category.grand_spells": "卓伟法术",
+
+ "hextweaks.category.grand_spells.mindflay_rituals": "群体剥离意识仪式",
+ "hextweaks.category.grand_spells.mindflay_rituals.desc": "这里是我所知的所有仪式。$(br)“关于意识的群体剥离”$(br)$(br)这些仪式似乎依照某种“点数”系统运作,村民熟练度每增一级,点数贡献就会翻倍。",
+
+ "hextweaks.entry.patterns.grand.fireball": "火球",
+ "hextweaks.page.patterns.grand.fireball.1": "与火球类似,但强度上限变为了 2 倍。",
+
+ "hextweaks.entry.patterns.grand.explode": "爆炸",
+ "hextweaks.page.patterns.grand.explode.1": "与爆炸类似,但强度上限变为了 2 倍。",
+
+ "hextweaks.entry.patterns.grand.mindflay": "卓伟剥离意识",
+ "hextweaks.page.patterns.grand.mindflay.1": "和前人讲述的一样,此法术会剥离生物的意识并存入其他事物。$(br)这一版本的法术能够批量剥离,接受$(br)[entity], vec3|entity -> $(br)而后以此执行各种仪式",
+
+ "hextweaks.entry.rituals.slipways": "创造与坍缩质道",
+ "hextweaks.page.rituals.slipways.1": "创造一个质道。$(br)[村民(80 点)], 咒灵 -> $(br)接受一些村民,并将目标咒灵变为质道。",
+ "hextweaks.page.rituals.slipways.2": "坍缩一个质道。$(br)[村民(16 点)], pos -> $(br)接受一些村民,并将质道坍缩为 10 到 20 个游走咒灵。",
+
+ "hextweaks.entry.rituals.titration": "定量时间跳跃",
+ "hextweaks.page.rituals.titration.1": "$(br)[村民 + 女巫(每个 8 点)], pos -> $(br)接受一些村民和女巫,每献祭一个女巫,即尝试向前跳过 12 小时的时间。",
+
+ "hextweaks.entry.rituals.restock": "交易补货",
+ "hextweaks.page.rituals.restock.1": "[村民(每项交易 1 点)], 村民 ->$(br)为目标村民的所有交易补货。$(br)目标村民每有 1 项交易,即消耗 1 点点数。",
+
+ "hextweaks.entry.rituals.reset": "重置区块",
+ "hextweaks.page.rituals.reset.1": "[石匠(128 点)], pos ->$(br)启动重置区块的仪式。此仪式共需花费 30 分钟,分为 20 个 1 分钟阶段和 10 分钟冷却。$(br)每个阶段消耗 $(o)98304$() 个淬灵晶。送入的列表中若存在不是石匠村民的实体,仪式便不会启动。",
+
+ "hextweaks.entry.hextweaks_utility": "咒法调整:实用",
+ "hexcasting.action.hextweaks:page/right": "页进之策略",
+ "hexcasting.action.hextweaks:page/left": "页退之策略",
+ "hextweaks.page.hextweaks_utility.page/right": "将我所持的法术书向右翻一页。",
+ "hextweaks.page.hextweaks_utility.page/left": "将我所持的法术书向左翻一页。",
+
+ "hexcasting.action.hextweaks:while": "海奎特之策略",
+ "hextweaks.page.hextweaks_utility.while": "移除栈顶的图案列表。检视而不移除其下方的 iota,并运行被移除的图案列表,当且仅当$(l:patterns/logic#hexcasting:bool_coerce)占卜师之纯化$()会对被检视的 iota 返回 True。检视和运行会一直持续,直至被检视的 iota 不再返回 True。",
+
+ "hextweaks.entry.hextweaks_pe": "咒法调整:启迪之后",
+
+ "hexcasting.action.hextweaks:wave": "波之精思",
+ "hextweaks.page.hextweaks_pe.wave": "返回$(l:greatwork/impetus)法术环$()中$(item)媒质波$()的未知。",
+
+ "hexcasting.action.hextweaks:normal": "法向之精思",
+ "hextweaks.page.hextweaks_pe.normal": "返回$(l:greatwork/impetus)法术环$()中$(item)媒质波$()所处$(item)石板$()的$(item)法向量$()。",
+
+ "hextweaks.entity.sbe": "仪式信标",
+ "hextweaks.ritual.reset": "重置仪式",
+ "hextweaks.page.hextweaks_utility.sbe": "获取范围内所有已启动的仪式实体。$(br)$(br)咒法拓展还通过 Mixin 让指南针之纯化不再检查施法范围。"
+}
\ No newline at end of file
From 0c2ebc220c1d5a65957834611585bac87da9ef11 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 23:32:25 +0800
Subject: [PATCH 14/78] HexWeb HexxyAttributes create
---
.../modrinth-hex-ways/hexways/lang/zh_cn.json | 6 ++--
.../modrinth-hexical/hexical/lang/zh_cn.json | 14 ++++-----
.../hexxyattributes/lang/en_us.json | 16 ++++++++++
.../hexxyattributes/lang/zh_cn.json | 16 ++++++++++
.../assets/hexweb/hexweb/README.md | 1 +
.../assets/hexweb/hexweb/lang/en_us.json | 30 +++++++++++++++++++
.../assets/hexweb/hexweb/packer-policy.json | 6 ++++
.../hexxyattributes/README.md | 1 +
.../hexxyattributes/lang/en_us.json | 16 ++++++++++
.../hexxyattributes/packer-policy.json | 6 ++++
.../1.20/assets/hexweb/hexweb/lang/en_us.json | 30 +++++++++++++++++++
.../1.20/assets/hexweb/hexweb/lang/zh_cn.json | 30 +++++++++++++++++++
.../hextweaks/lang/zh_cn.json | 4 +--
.../hexxyattributes/lang/en_us.json | 16 ++++++++++
.../hexxyattributes/lang/zh_cn.json | 16 ++++++++++
15 files changed, 196 insertions(+), 12 deletions(-)
create mode 100644 projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/hexweb/hexweb/README.md
create mode 100644 projects/1.20-fabric/assets/hexweb/hexweb/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/hexweb/hexweb/packer-policy.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md
create mode 100644 projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json
create mode 100644 projects/1.20/assets/hexweb/hexweb/lang/en_us.json
create mode 100644 projects/1.20/assets/hexweb/hexweb/lang/zh_cn.json
create mode 100644 projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
create mode 100644 projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
diff --git a/projects/1.19/assets/modrinth-hex-ways/hexways/lang/zh_cn.json b/projects/1.19/assets/modrinth-hex-ways/hexways/lang/zh_cn.json
index fa3f7dc1a815..616534d014ed 100644
--- a/projects/1.19/assets/modrinth-hex-ways/hexways/lang/zh_cn.json
+++ b/projects/1.19/assets/modrinth-hex-ways/hexways/lang/zh_cn.json
@@ -17,13 +17,13 @@
"portalhexaddon.page.hexways.summonscry": "与单向传送门类似,但无法穿过。和功能完整的传送门没法比,但它的消耗实在是很少。每级尺寸消耗 4 个紫水晶碎片。",
"portalhexaddon.page.hexways.moveportalinput": "接受一个传送门实体和一个位置向量,并将传送门的入口移动至所给位置。因为传送门并非单个实体,而是两个一组,此处的“入口”指代传入的那一侧。消耗 2 个紫水晶粉。",
"portalhexaddon.page.hexways.removeportal": "要是传送门的影响太过惹眼,此法术即可解决问题,直接消去一个传送门对。无需消耗$(media)媒质/$。",
- "portalhexaddon.page.hexways.portalambit": "这些传送门,真是奇特……我$(hex)咒术/$的返回能够透过它们,虽然会遭到削减。我在传送门另一侧外部的施法范围会变为剩余距离的一半。也即,如下等式“(32 - 我的位置)/2”能完全描述这一规律。",
+ "portalhexaddon.page.hexways.portalambit": "这些传送门,真是奇特……我$(hex)咒术/$的返回能够透过它们,虽然会遭到削减。我在传送门另一侧外部的影响范围会变为剩余距离的一半。也即,如下等式“(32 - 我的位置)/2”能完全描述这一规律。",
"portalhexaddon.page.hexways.setportalsides": "我对六边形堪称$(italic)熟稔/$,但它们并不适合所有情况。而此法术可以更改传送门的边数和横滚角度,无需消耗$(media)媒质/$。",
"portalhexaddon.page.hexways.resizeportal": "接受一个传送门、一个高度数、一个宽度数,以此更改传送门的大小。神奇的是,同时会把传送门的外形变回六边形。消耗的紫水晶碎片量等于高度和宽度的平均数。",
- "portalhexaddon.page.hexways.getoutputinfo": "这个好用的图案会返回传入传送门的“出口”传送门实体,如果没有对应实体则返回出口位置向量。配合传送门施法范围有大用处。无需消耗$(media)媒质/$。",
+ "portalhexaddon.page.hexways.getoutputinfo": "这个好用的图案会返回传入传送门的“出口”传送门实体,如果没有对应实体则返回出口位置向量。配合传送门影响范围有大用处。无需消耗$(media)媒质/$。",
"portalhexaddon.page.hexways.getoutputinfocont": "在多次碰壁后,我认为此图案和移动传送门法术最合拍,因为它会返回双向传送门的出口实体。另一个用处是射线追踪;普通的射线追踪无法穿过传送门,但此法术可以模拟。",
"portalhexaddon.page.hexways.rotateportal": "旋转向量变化无常,确实麻烦。好在我可以用这个法术改变给定传送门的朝向。需要注意的是,它同时也会旋转出口的朝向,且无需消耗$(media)媒质/$。",
- "portalhexaddon.page.hexways.portalambittitle": "传送门施法范围",
+ "portalhexaddon.page.hexways.portalambittitle": "传送门影响范围",
"portalhexaddon.page.hexways.pageintro": "我发现了模拟虫洞(或者说是电子隧穿?)现象的方式,仅凭媒质。这一发现的基础在于另一个模组:“沉浸式传送门”。真是有趣!我需要立即实践这一发现。",
"portalhexaddon.page.hexways.pageintrotitle": "咒术传送门?",
diff --git a/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
index 3549ce937018..07fb7d9dfea7 100644
--- a/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -370,15 +370,15 @@
"hexical.page.themis.1": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()",
"hexical.page.akashic_utils.title": "阿卡夏实用法术",
- "hexical.page.akashic_utils.0": "我发现了阿卡夏图书馆的便捷操作!右击或是$(l:hexical:patterns/spells/prestidigitation)以魔法方式$()与有内容物的阿卡夏书架交互,即可将其 iota 压入我的法杖栈。以卷轴右击可以把对应的图案复制到卷轴上。最后,我还发现了两个图案,可以直接向施法范围内的书架读写,无需消耗媒质。",
+ "hexical.page.akashic_utils.0": "我发现了阿卡夏图书馆的便捷操作!右击或是$(l:hexical:patterns/spells/prestidigitation)以魔法方式$()与有内容物的阿卡夏书架交互,即可将其 iota 压入我的法杖栈。以卷轴右击可以把对应的图案复制到卷轴上。最后,我还发现了两个图案,可以直接向影响范围内的书架读写,无需消耗媒质。",
"hexcasting.spell.hexical:key_shelf": "图书管理员之纯化",
- "hexical.page.key_shelf.summary": "读取施法范围内阿卡夏书架的键。无需消耗媒质。",
+ "hexical.page.key_shelf.summary": "读取影响范围内阿卡夏书架的键。无需消耗媒质。",
"hexcasting.spell.hexical:read_shelf": "图书管理员之纯化,第二型",
- "hexical.page.read_shelf.summary": "读取施法范围内阿卡夏书架的 iota。无需消耗媒质。",
+ "hexical.page.read_shelf.summary": "读取影响范围内阿卡夏书架的 iota。无需消耗媒质。",
"hexcasting.spell.hexical:write_shelf": "图书管理员之策略",
- "hexical.page.write_shelf.summary": "向施法范围内的阿卡夏书架写入 iota。无需消耗媒质。",
+ "hexical.page.write_shelf.summary": "向影响范围内的阿卡夏书架写入 iota。无需消耗媒质。",
"hexcasting.spell.hexical:clear_shelf": "图书管理员之策略,第二型",
- "hexical.page.clear_shelf.summary": "清除施法范围内给定的阿卡夏书架。无需消耗媒质。",
+ "hexical.page.clear_shelf.summary": "清除影响范围内给定的阿卡夏书架。无需消耗媒质。",
"hexical.page.mage_block.title": "术师方块",
"hexical.page.mage_block": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
@@ -449,7 +449,7 @@
"hexical.page.ingest.summary": "此法术能让我吃下魔袋中的物品,填饱我的肚子,或是给予我药水效果。无论我是否吃饱,也不管食物本身要花多久才能吃下,此法术都会瞬间完成食用。",
"hexical.page.specks.title": "视斑",
- "hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受施法范围限制。",
+ "hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受影响范围限制。",
"hexcasting.spell.hexical:conjure_speck": "构筑视斑",
"hexical.page.conjure_speck.summary": "按照所给 iota、位置、朝向构筑视斑。消耗 1/100 个紫水晶粉。压入视斑 iota。",
"hexcasting.spell.hexical:move_specklike": "移动视斑",
@@ -491,7 +491,7 @@
"hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个紫水晶粉,因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
"hexcasting.spell.hexical:chorus_blink": "紫颂闪现",
"hexical.page.chorus_blink.summary": "$(l:patterns/spells/basic#hexcasting:blink)$(action)闪现$()、$(l:patterns/great_spells/teleport)$(action)卓越传送$()、$(item)末影珍珠$()、$(item)紫颂果$(),这一法术处于上述几种传送方式的中间,平衡而和谐,以其安全、精确、低消耗的传送著称。",
- "hexical.page.chorus_blink.description": "此图案需消耗物品栏中的一个$(item)紫颂果$(),并根据偏移向量传送最多 16 格。无论传送满 16 格还是不到 16 格,消耗均为 1 个紫水晶粉,且单个咒术中使用多次不会有惩罚。神奇的是,重复施放此法术不会因为超出施法范围而终止咒术,这是因为每次$(o)闪现$()都会将施法范围移至新位置。$(br2)$(o)我一眨眼就能到了。$()",
+ "hexical.page.chorus_blink.description": "此图案需消耗物品栏中的一个$(item)紫颂果$(),并根据偏移向量传送最多 16 格。无论传送满 16 格还是不到 16 格,消耗均为 1 个紫水晶粉,且单个咒术中使用多次不会有惩罚。神奇的是,重复施放此法术不会因为超出影响范围而终止咒术,这是因为每次$(o)闪现$()都会将影响范围移至新位置。$(br2)$(o)我一眨眼就能到了。$()",
"hexical.page.conjure_compass.title": "构筑指南针",
"hexcasting.spell.hexical:conjure_compass": "构筑指南针",
diff --git a/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
new file mode 100644
index 000000000000..f623dbadffca
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
@@ -0,0 +1,16 @@
+{
+ "hexxyattributes.entry.attributes": "Attributes",
+ "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...",
+
+ "hexcasting.spell.book.hexxyattributes:domain_reflection": "Domain Reflection",
+ "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.",
+
+ "hexcasting.spell.book.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection",
+ "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.",
+
+ "hexcasting.spell.book.hexxyattributes:media_reflection": "Media Reflection",
+ "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!",
+
+ "hexcasting.spell.book.hexxyattributes:mind_purification": "Mind Purification",
+ "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
new file mode 100644
index 000000000000..c0f4d0e83dd9
--- /dev/null
+++ b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
@@ -0,0 +1,16 @@
+{
+ "hexxyattributes.entry.attributes": "属性",
+ "hexxyattributes.entry.attributes.entry": "我的研究表明,并非所有此派精妙魔艺的研习者都有同样的能力。换句话说,世上的学者具有不同的$(italic)属性$(clear)。$(br2)我一直都以为$(italic)天赋$(clear)只是个假说。好吧……",
+
+ "hexcasting.spell.book.hexxyattributes:domain_reflection": "界域之精思",
+ "hexxyattributes.page.domain_reflection": "将我的影响范围入栈。",
+
+ "hexcasting.spell.book.hexxyattributes:sentinel_domain_reflection": "哨卫界域之精思",
+ "hexxyattributes.page.sentinel_domain_reflection": "将我哨卫的影响范围入栈。",
+
+ "hexcasting.spell.book.hexxyattributes:media_reflection": "媒质之精思",
+ "hexxyattributes.page.media_reflection": "将我的媒质消耗速率入栈。我认为基础值应当等于 1。很适合收住我对自身能力的过度高估!",
+
+ "hexcasting.spell.book.hexxyattributes:mind_purification": "意识之精思",
+ "hexxyattributes.page.mind_purification": "将栈中的玩家转变为布尔值。此图案会向目标的大脑送入一小股媒质。如果他有研习咒法学的潜能,返回 True;否则返回 False。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexweb/hexweb/README.md b/projects/1.20-fabric/assets/hexweb/hexweb/README.md
new file mode 100644
index 000000000000..f52d9b83985b
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexweb/hexweb/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/hexweb/hexweb)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexweb/hexweb/lang/en_us.json b/projects/1.20-fabric/assets/hexweb/hexweb/lang/en_us.json
new file mode 100644
index 000000000000..4fb88f969ec9
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexweb/hexweb/lang/en_us.json
@@ -0,0 +1,30 @@
+{
+ "hexweb.iota.response": "HTTPResponse{%s}",
+
+ "hexweb.mishap.invalid_json_key": "The \"%s\" key is not present within the JsonIota!",
+ "hexweb.mishap.cannot_json": "The %s iota has no direct Json translation!",
+ "hexweb.mishap.too_early": "You tried accessing a HTTP response before it arrived!",
+ "hexweb.mishap.blacklist_url": "This URL is blacklisted! Attempted: %s",
+ "hexcasting.mishap.invalid_value.class.json": "a json object",
+ "hexcasting.mishap.invalid_value.class.response": "a HTTP response",
+
+ "hexweb.entry.json_patterns": "JSON Patterns",
+ "hexweb.page.json_patterns.entry": "These patterns were taken from a series of notes scrawled on the walls of the room of a Douglas Crockford shortly before their disappearence.$(br)$(br)They describe ways of creating and manipulating a dictionary-like object which uses Strings for keys and a select range of iotas as values. I wonder what the practical applications are...",
+ "hexcasting.action.hexweb:create_json": "Jason's Reflection",
+ "hexweb.page.json_patterns.create_json": "Creates an empty JSON object.",
+ "hexcasting.action.hexweb:parse_json": "Jason's Gambit",
+ "hexweb.page.json_patterns.parse_json": "Turns the given String into a JSON object. If it cannot be parsed into a JSON object itself, a wrapper JSON object will be created.",
+ "hexcasting.action.hexweb:has_element": "Jason's Purification",
+ "hexweb.page.json_patterns.has_element": "Checks whether the given JSON iota has the given key.",
+ "hexcasting.action.hexweb:get_element": "Jason's Purification II",
+ "hexweb.page.json_patterns.get_element": "Gets the stored iota at the given key. Mishaps upon their being no iota.",
+ "hexcasting.action.hexweb:set_element": "Jason's Exaltation",
+ "hexweb.page.json_patterns.set_element": "Sets the given iota at the given key. Setting a Garbage iota removes the key.",
+
+ "hexweb.entry.http_spells": "HTTP Spells",
+ "hexweb.page.http_spells.entry": "While pondering the depths of one's mind, Sir Bernes-Lee caught a glimpse into another universe. With this view fresh in his mind, he quickly conjured a JSON object, imbued it with information, and sent it hurdling into the other universe.$(br)$(br)These are the patterns recovered after Berners-Lee was found dead having received enough information back to fry his mind.",
+ "hexcasting.action.hexweb:request": "Request",
+ "hexweb.page.http_spells.request": "Sends an HTTP request made of the given data, method, and headers to the provided URL.$(br2)The Response is truthy if a response is received.",
+ "hexcasting.action.hexweb:get_response": "Get Response",
+ "hexweb.page.http_spells.get_response": "Given a Response Iota, attempt to parse the results. Will Mishap if too early or an IOException is thrown."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexweb/hexweb/packer-policy.json b/projects/1.20-fabric/assets/hexweb/hexweb/packer-policy.json
new file mode 100644
index 000000000000..48473677ee22
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexweb/hexweb/packer-policy.json
@@ -0,0 +1,6 @@
+[
+ {
+ "type": "indirect",
+ "source": "projects/1.20/assets/hexweb/hexweb"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md
new file mode 100644
index 000000000000..0cb2419b05f5
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
new file mode 100644
index 000000000000..172f467491a4
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
@@ -0,0 +1,16 @@
+{
+ "hexxyattributes.entry.attributes": "Attributes",
+ "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...",
+
+ "hexcasting.action.hexxyattributes:domain_reflection": "Domain Reflection",
+ "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.",
+
+ "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection",
+ "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.",
+
+ "hexcasting.action.hexxyattributes:media_reflection": "Media Reflection",
+ "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!",
+
+ "hexcasting.action.hexxyattributes:mind_purification": "Mind Purification",
+ "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json
new file mode 100644
index 000000000000..2e5dad7b8f84
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json
@@ -0,0 +1,6 @@
+[
+ {
+ "type": "indirect",
+ "source": "projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/hexweb/hexweb/lang/en_us.json b/projects/1.20/assets/hexweb/hexweb/lang/en_us.json
new file mode 100644
index 000000000000..4fb88f969ec9
--- /dev/null
+++ b/projects/1.20/assets/hexweb/hexweb/lang/en_us.json
@@ -0,0 +1,30 @@
+{
+ "hexweb.iota.response": "HTTPResponse{%s}",
+
+ "hexweb.mishap.invalid_json_key": "The \"%s\" key is not present within the JsonIota!",
+ "hexweb.mishap.cannot_json": "The %s iota has no direct Json translation!",
+ "hexweb.mishap.too_early": "You tried accessing a HTTP response before it arrived!",
+ "hexweb.mishap.blacklist_url": "This URL is blacklisted! Attempted: %s",
+ "hexcasting.mishap.invalid_value.class.json": "a json object",
+ "hexcasting.mishap.invalid_value.class.response": "a HTTP response",
+
+ "hexweb.entry.json_patterns": "JSON Patterns",
+ "hexweb.page.json_patterns.entry": "These patterns were taken from a series of notes scrawled on the walls of the room of a Douglas Crockford shortly before their disappearence.$(br)$(br)They describe ways of creating and manipulating a dictionary-like object which uses Strings for keys and a select range of iotas as values. I wonder what the practical applications are...",
+ "hexcasting.action.hexweb:create_json": "Jason's Reflection",
+ "hexweb.page.json_patterns.create_json": "Creates an empty JSON object.",
+ "hexcasting.action.hexweb:parse_json": "Jason's Gambit",
+ "hexweb.page.json_patterns.parse_json": "Turns the given String into a JSON object. If it cannot be parsed into a JSON object itself, a wrapper JSON object will be created.",
+ "hexcasting.action.hexweb:has_element": "Jason's Purification",
+ "hexweb.page.json_patterns.has_element": "Checks whether the given JSON iota has the given key.",
+ "hexcasting.action.hexweb:get_element": "Jason's Purification II",
+ "hexweb.page.json_patterns.get_element": "Gets the stored iota at the given key. Mishaps upon their being no iota.",
+ "hexcasting.action.hexweb:set_element": "Jason's Exaltation",
+ "hexweb.page.json_patterns.set_element": "Sets the given iota at the given key. Setting a Garbage iota removes the key.",
+
+ "hexweb.entry.http_spells": "HTTP Spells",
+ "hexweb.page.http_spells.entry": "While pondering the depths of one's mind, Sir Bernes-Lee caught a glimpse into another universe. With this view fresh in his mind, he quickly conjured a JSON object, imbued it with information, and sent it hurdling into the other universe.$(br)$(br)These are the patterns recovered after Berners-Lee was found dead having received enough information back to fry his mind.",
+ "hexcasting.action.hexweb:request": "Request",
+ "hexweb.page.http_spells.request": "Sends an HTTP request made of the given data, method, and headers to the provided URL.$(br2)The Response is truthy if a response is received.",
+ "hexcasting.action.hexweb:get_response": "Get Response",
+ "hexweb.page.http_spells.get_response": "Given a Response Iota, attempt to parse the results. Will Mishap if too early or an IOException is thrown."
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexweb/hexweb/lang/zh_cn.json b/projects/1.20/assets/hexweb/hexweb/lang/zh_cn.json
new file mode 100644
index 000000000000..262c0766c0f5
--- /dev/null
+++ b/projects/1.20/assets/hexweb/hexweb/lang/zh_cn.json
@@ -0,0 +1,30 @@
+{
+ "hexweb.iota.response": "HTTP响应{%s}",
+
+ "hexweb.mishap.invalid_json_key": "JSON iota中没有“%s”键!",
+ "hexweb.mishap.cannot_json": "Iota%s无法翻译为JSON!",
+ "hexweb.mishap.too_early": "试图在HTTP响应到达前访问!",
+ "hexweb.mishap.blacklist_url": "此URL已被黑名单!访问对象:%s",
+ "hexcasting.mishap.invalid_value.class.json": "一个JSON对象",
+ "hexcasting.mishap.invalid_value.class.response": "一个HTTP响应",
+
+ "hexweb.entry.json_patterns": "JSON 图案",
+ "hexweb.page.json_patterns.entry": "这些图案来自某位道格拉斯·克罗克福德失踪前不久在其房间的墙壁上涂画的一些文字。$(br)$(br)那些文字描述了如何创造与操纵一种类似字典的对象:以字符串为键,以特定类型的 iota 为值。不知道这种 iota 有何实际用途……",
+ "hexcasting.action.hexweb:create_json": "杰森之精思",
+ "hexweb.page.json_patterns.create_json": "获取一个空 JSON 对象。",
+ "hexcasting.action.hexweb:parse_json": "杰森之策略",
+ "hexweb.page.json_patterns.parse_json": "将所给字符串转换为 JSON 对象。若无法直接解析为 JSON 对象,则创建一个包装 JSON 对象。",
+ "hexcasting.action.hexweb:has_element": "杰森之纯化",
+ "hexweb.page.json_patterns.has_element": "检验所给 JSON iota 有无给定键。",
+ "hexcasting.action.hexweb:get_element": "杰森之纯化,第二型",
+ "hexweb.page.json_patterns.get_element": "根据所给键获取对应 iota。无对应 iota 时会招致事故。",
+ "hexcasting.action.hexweb:set_element": "杰森之提整",
+ "hexweb.page.json_patterns.set_element": "设置所给键对应的 iota。",
+
+ "hexweb.entry.http_spells": "HTTP 法术",
+ "hexweb.page.http_spells.entry": "在思考意识的深度时,伯纳斯-李爵士偶然看到了另一个宇宙的存在。说时迟那时快,他迅速构筑了一个 JSON 对象,向其中灌注了信息,再向那个宇宙发送了出去。$(br)$(br)这些图案是在伯纳斯-李被发现已死时回收得来的,他接收的信息多到烧坏了他的意识。",
+ "hexcasting.action.hexweb:request": "请求",
+ "hexweb.page.http_spells.request": "使用所给数据向所给网络连接端点发送 HTTP 请求。$(br2)收到响应即视作响应为真值。",
+ "hexcasting.action.hexweb:get_response": "解析响应",
+ "hexweb.page.http_spells.get_response": "接受一个 HTTP 响应并尝试解析。过早解析或抛出 IOException 时会招致事故。"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json b/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
index c7538641a7a5..24fe0bfe678f 100644
--- a/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
+++ b/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
@@ -13,7 +13,7 @@
"hextweaks.entry.interop.cc": "ComputerCraft",
"hextweaks.page.interop.cc.1": "我进行了大量研究,最终发现我可以给海龟和掌上电脑配备一杆制念法杖,以让它们替我执行些琐事。",
"hextweaks.page.interop.cc.2": "它们持有法杖时还有一些新事件(event)可用。$(o)reveal$() 会像揭示那样通过图案返回字符串。$(br)$(o)mishap$() 则会包含事故的类名、图案的名称,以及字符串形式的咒术图案。",
- "hextweaks.page.interop.cc.3": "海龟的施法不具有施法者,施法范围正常。掌上电脑施法的施法者为手持它的玩家,施法范围同样正常。",
+ "hextweaks.page.interop.cc.3": "海龟的施法不具有施法者,影响范围正常。掌上电脑施法的施法者为手持它的玩家,影响范围同样正常。",
"hextweaks.category.grand_spells.desc": "似乎法术还有另一个层次,必须向其中融注意志才能找到它们。我会将我找到的法术记录在此。",
"hextweaks.category.grand_spells": "卓伟法术",
@@ -62,5 +62,5 @@
"hextweaks.entity.sbe": "仪式信标",
"hextweaks.ritual.reset": "重置仪式",
- "hextweaks.page.hextweaks_utility.sbe": "获取范围内所有已启动的仪式实体。$(br)$(br)咒法拓展还通过 Mixin 让指南针之纯化不再检查施法范围。"
+ "hextweaks.page.hextweaks_utility.sbe": "获取范围内所有已启动的仪式实体。$(br)$(br)咒法拓展还通过 Mixin 让指南针之纯化不再检查影响范围。"
}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
new file mode 100644
index 000000000000..172f467491a4
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
@@ -0,0 +1,16 @@
+{
+ "hexxyattributes.entry.attributes": "Attributes",
+ "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...",
+
+ "hexcasting.action.hexxyattributes:domain_reflection": "Domain Reflection",
+ "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.",
+
+ "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection",
+ "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.",
+
+ "hexcasting.action.hexxyattributes:media_reflection": "Media Reflection",
+ "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!",
+
+ "hexcasting.action.hexxyattributes:mind_purification": "Mind Purification",
+ "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False."
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
new file mode 100644
index 000000000000..81bcd35c4068
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
@@ -0,0 +1,16 @@
+{
+ "hexxyattributes.entry.attributes": "属性",
+ "hexxyattributes.entry.attributes.entry": "我的研究表明,并非所有此派精妙魔艺的研习者都有同样的能力。换句话说,世上的学者具有不同的$(italic)属性$(clear)。$(br2)我一直都以为$(italic)天赋$(clear)只是个假说。好吧……",
+
+ "hexcasting.action.hexxyattributes:domain_reflection": "界域之精思",
+ "hexxyattributes.page.domain_reflection": "将我的影响范围入栈。",
+
+ "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "哨卫界域之精思",
+ "hexxyattributes.page.sentinel_domain_reflection": "将我哨卫的影响范围入栈。",
+
+ "hexcasting.action.hexxyattributes:media_reflection": "媒质之精思",
+ "hexxyattributes.page.media_reflection": "将我的媒质消耗速率入栈。我认为基础值应当等于 1。很适合收住我对自身能力的过度高估!",
+
+ "hexcasting.action.hexxyattributes:mind_purification": "意识之精思",
+ "hexxyattributes.page.mind_purification": "将栈中的玩家转变为布尔值。此图案会向目标的大脑送入一小股媒质。如果他有研习咒法学的潜能,返回 True;否则返回 False。"
+}
\ No newline at end of file
From 88476f6842faffa1eb420fdb444a6a85896f7418 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 23:48:16 +0800
Subject: [PATCH 15/78] HexxyDimension HexxySkies create
---
.../modrinth-hexdim/hexdim/lang/en_us.json | 53 +++++++++++++
.../modrinth-hexdim/hexdim/lang/zh_cn.json | 53 +++++++++++++
.../assets/modrinth-hexsky/hexsky/README.md | 1 +
.../modrinth-hexsky/hexsky/lang/en_us.json | 76 +++++++++++++++++++
.../modrinth-hexsky/hexsky/packer-policy.json | 6 ++
.../modrinth-hexsky/hexsky/lang/en_us.json | 76 +++++++++++++++++++
.../modrinth-hexsky/hexsky/lang/zh_cn.json | 76 +++++++++++++++++++
7 files changed, 341 insertions(+)
create mode 100644 projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexsky/hexsky/README.md
create mode 100644 projects/1.20-fabric/assets/modrinth-hexsky/hexsky/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexsky/hexsky/packer-policy.json
create mode 100644 projects/1.20/assets/modrinth-hexsky/hexsky/lang/en_us.json
create mode 100644 projects/1.20/assets/modrinth-hexsky/hexsky/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/en_us.json
new file mode 100644
index 000000000000..19c4a011f27e
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/en_us.json
@@ -0,0 +1,53 @@
+{
+ "hexdim.mishap.invalidenv": "Invalid Casting Environment. Try casting in a different dimension.",
+ "hexdim.iota.room": "Room Iota",
+ "hexdim.iota.permissions.execute": "Room Iota with Execute Permissions",
+ "hexdim.iota.permissions.write": "Room Iota with Write Permissions",
+ "hexdim.iota.permissions.read": "Room Iota with Read Permissions",
+
+ "hexdim.entry.dim": "Hexxy Dimensions",
+ "hexdim.page.dim.1": "When I saw $(l:greatwork/the_work)IT$().$(br)I realized it could be shaped by my will.$(br)I just need the right $(l:patterns/great_spells/dimension#hexdim:dim/create)pattern$().$(br)There also appear to be a few new mishaps I can encounter, most of which involve the room not being ready yet or no longer existing.$(br2)$(l)I shouldn't punch the walls for too long - that may draw $(thing)their$(nocolor) attention, resulting in a painful expulsion from the room.$()",
+ "hexdim.page.dim.2": "To work with this power I have developed a new iota type, which I call a $(thing)room$(). $(br)A room iota appears to give me extensive powers over an extradimensional room, which can be created and manipulated by the spells below. Note that for all of these spells, unless a media cost is specified, there is no cost at all. $(br2)To restrict the powers granted by a given room iota (such as if I want to give partial access to a friend) I have access to three permission settings (R, W, and X) all of which are enabled by default. The R permission allows me to enter the room, the W permission allows me to delete the room, and the X permission allows me to $(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)transfer my casting into the room$(). These permissions can be revoked using $(l:patterns/great_spells/dimension#hexdim:dim/perm/remove)Everett's Authority$().$(br2)(If it wasn't clear, you can \"break\" the walls of a room. Doing so will deal some non-lethal damage and return you to the Overworld.)",
+
+ "hexcasting.action.hexdim:dim/create": "Everett's Exaltation",
+ "hexdim.page.dim.create": "Creates a new room for me, with the provided width, height, and depth. Costs six Charged Amethyst per block.",
+ "hexdim.page.dim.create.extend": "When I first make a room it appears I must wait for it to be \"carved\".$(br)I am unable to do anything practical in the room until I let nature carve it out.$(br2)Carving takes place at around 20 blocks per second. I can $(l:patterns/great_spells/dimension#hexdim:dim/time)figure out how many are left$() with a simple pattern.",
+
+ "hexcasting.action.hexdim:dim/kidnap": "Everett's Abduction",
+ "hexdim.page.dim.kidnap": "You are going to $(m)Brazil$(), $(m)My Domain$(), $(o)T H E F U N Z O N E",
+ "hexdim.page.dim.kidnap.extend": "Transports the provided entity/entities (willing or otherwise!) to the provided room, at the cost of one Amethyst Shard per entity. $(br)$(o)There is no will save. I should probally prepare countermeasures for if I find myself taken.$()",
+
+ "hexcasting.action.hexdim:dim/cast/activate": "Everett's Environment",
+ "hexdim.page.dim.cast.activate": "My own personal casting space!",
+ "hexdim.page.dim.cast.activate.extend": "Mutates my $(thing)casting environment$() for the rest of the current spell, allowing me to cast as though I was located in the provided room. While this effect is active, my $(thing)ambit$() within the room extends to the entirety of the space.$(br)Trying to cast this pattern using a room iota with the X permission disabled, or while the effect is already active, results in a $(thing)Mishap$().$(br)Also, my staff appears to actively conflict with the effect, ignoring it unless I $(l:patterns/meta#hexcasting:eval)execute a spell all at once$().",
+
+ "hexcasting.action.hexdim:dim/cast/deactivate": "Everett's Environment II",
+ "hexdim.page.dim.cast.deactivate": "Look Ma, two dimensions!",
+ "hexdim.page.dim.cast.deactivate.extend": "Undoes the current $(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)mutation to my environment$().$(br)This can be useful if, for example, I want to briefly swap to my personal space to access information and then return to casting in my actual location.",
+
+ "hexcasting.action.hexdim:dim/kick": "Everett's Expulsion",
+ "hexdim.page.dim.kick": "G E T O U T",
+ "hexdim.page.dim.kick.extend": "Expels entities from a room to the overworld. This will only function if I'm casting from within the room the entities are located in, either physically or via $(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)Everett's Environment$().",
+
+ "hexcasting.action.hexdim:dim/rel/to": "Everett's Relative Prfn.",
+ "hexdim.page.dim.rel.to": "This should make things easier.",
+ "hexdim.page.dim.rel.to.extend": "Given a room and an absolute position, this will convert the position to be relative to the northwest corner of the room. Does not affect the Y coordinate of the position.$(br)This may be helpful for determining offsets within a room.",
+
+ "hexcasting.action.hexdim:dim/rel/from": "Everett's Relative Prfn. II",
+ "hexdim.page.dim.rel.from": "This should also make things easier.",
+ "hexdim.page.dim.rel.from.extend": "Given a room and a positon relative to the room's northwest corner, this will convert the position to absolute coordinates. Does not affect the Y coordinate of the position.$(br)This may be helpful when accessing block or entities within the room.$(br)Only positive relative offsets will become positions that are actually inside the room. Negative offsets will produce a position in the \"wall\" between rooms.",
+
+ "hexcasting.action.hexdim:dim/pos/set": "Everett's Location",
+ "hexdim.page.dim.pos.set": "Sets the position you arrive at when you warp into this room, relative to the northwest corner.$(br)Requires W permission on the room.",
+
+ "hexcasting.action.hexdim:dim/perm/remove": "Everett's Authority",
+ "hexdim.page.dim.perm.remove": "Disables the specified permission for this room iota. 0 refers to R, 1 refers to W, and 2 refers to X.",
+
+ "hexcasting.action.hexdim:dim/time": "Everett's Timing Prfn.",
+ "hexdim.page.dim.time": "How much longer must I wait?",
+ "hexdim.page.dim.time.extend": "Given a room iota, tells me the number of blocks remaining to be carved.$(br)This can be used to determine how much progress has been made on carving the room, and how much longer it will take to finish.",
+
+ "hexcasting.action.hexdim:dim/carved": "Everett's Carving Prfn.",
+ "hexdim.page.dim.carved": "Are we done yet?",
+ "hexdim.page.dim.carved.extend": "Given a room iota, tells me whether it is finished carving and ready to be used."
+}
diff --git a/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/zh_cn.json
new file mode 100644
index 000000000000..0fcdc602c4d0
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/zh_cn.json
@@ -0,0 +1,53 @@
+{
+ "hexdim.mishap.invalidenv": "施法环境无效。试试看换个维度施法。",
+ "hexdim.iota.room": "维室iota",
+ "hexdim.iota.permissions.execute": "具有执行权限的维室iota",
+ "hexdim.iota.permissions.write": "具有写入权限的维室iota",
+ "hexdim.iota.permissions.read": "具有读取权限的维室iota",
+
+ "hexdim.entry.dim": "咒法维度",
+ "hexdim.page.dim.1": "在看到$(l:greatwork/the_work)那样的事物$()时。$(br)我便意识到,我能随我心意将其塑形。$(br)我只是需要正确的$(l:patterns/great_spells/dimension#hexdim:dim/create)图案$()。$(br)我似乎还会遇到几种新事故,大多数都是因为维室未准备好、或是已不再存在。$(br2)$(l)我不应大肆破坏周围的墙壁,不然可能会引起$(thing)它们$(nocolor)的注意,结果就是我被扔出维室$()。",
+ "hexdim.page.dim.2": "为操作这种力量,我设计了一种新 iota,叫做$(thing)维室$()。$(br)维室 iota 似乎会给予我对某片超维空间强大的控制力,后页的法术就是创建和操纵这片空间的工具。需注意,除非标明媒质消耗量,就无需消耗媒质。$(br2)为限制维室 iota 的操纵功能(比如说只给朋友部分权限),这种 iota 带有 3 种权限设置(R、W、X),默认均启用。R 权限允许进入维室,W 权限允许删除维室,X 权限允许我将$(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)影响范围转移到维室中$()。$(l:patterns/great_spells/dimension#hexdim:dim/perm/remove)埃弗雷特之权限$()可以禁用这些权限。$(br2)(再明确一下,你其实可以“破坏”墙壁,这么做后你会受到非致命伤害,并返回主世界。)",
+
+ "hexcasting.action.hexdim:dim/create": "埃弗雷特之提整",
+ "hexdim.page.dim.create": "按照给定的长宽高制造一个新维室。每方块消耗 6 个充能紫水晶。",
+ "hexdim.page.dim.create.extend": "每次新造维室时,似乎必须先等其“雕琢”完毕。$(br)在自然雕琢完毕之前,我无法在其中做任何有实际效果的事。$(br2)雕琢的速度约为每秒 20 个方块。可以用一个简单图案$(l:patterns/great_spells/dimension#hexdim:dim/time)查看还有多少仍待雕琢$()。",
+
+ "hexcasting.action.hexdim:dim/kidnap": "埃弗雷特之劫持",
+ "hexdim.page.dim.kidnap": "即将前往:$(m)巴西$(),$(m)我的领域$(),$(o)欢 乐 的 地 方",
+ "hexdim.page.dim.kidnap.extend": "将给定实体(情不情愿都没关系!)送入给定维室,每个实体效果 1 个紫水晶碎片。$(br)$(o)此法术没有效果豁免。最好为我自己被劫持准备些反制手段。$()",
+
+ "hexcasting.action.hexdim:dim/cast/activate": "埃弗雷特之环境",
+ "hexdim.page.dim.cast.activate": "独属我自己的施法空间!",
+ "hexdim.page.dim.cast.activate.extend": "在咒术剩下的部分里变换我的$(thing)施法环境$(),如同在给定维室中施放一样。起效后$(thing)影响范围/$会囊括整个维室。$(br)尝试对禁用 X 权限的维室施放,或此法术已起效,则会招致$(thing)事故/$。$(br)此外,我的法杖似乎会主动排斥这种效应,除非$(l:patterns/meta#hexcasting:eval)在同一时刻运行所有/$法术。",
+
+ "hexcasting.action.hexdim:dim/cast/deactivate": "埃弗雷特之环境,第二型",
+ "hexdim.page.dim.cast.deactivate": "双维度在手!",
+ "hexdim.page.dim.cast.deactivate.extend": "移除$(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)我施法环境上的变换$()。$(br)如果需要临时换到个人空间获取信息,再返回实际位置施法,这个图案就很有用了。",
+
+ "hexcasting.action.hexdim:dim/kick": "埃弗雷特之驱逐",
+ "hexdim.page.dim.kick": "滚 出 去",
+ "hexdim.page.dim.kick.extend": "将实体从维室驱逐到主世界。此法术只在我的施法环境和给定实体同处一个维室时有效,物理上同处、或是通过$(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)埃弗雷特之环境$()同处均可。",
+
+ "hexcasting.action.hexdim:dim/rel/to": "埃弗雷特相对之纯化",
+ "hexdim.page.dim.rel.to": "应该能让事情更简单些。",
+ "hexdim.page.dim.rel.to.extend": "给定维室和绝对位置,此图案会将所给位置转换为对所给维室西北角的相对位置。不会改变 Y 坐标。$(br)在计算维室中坐标的时候应该很有用。",
+
+ "hexcasting.action.hexdim:dim/rel/from": "埃弗雷特相对之纯化,二型",
+ "hexdim.page.dim.rel.from": "应该能让事情更简单些。",
+ "hexdim.page.dim.rel.from.extend": "给定维室和对其西北角的相对位置,此图案会将所给位置转换为绝对位置。不会改变 Y 坐标。$(br)在访问该维室中方块和实体的时候应该很有用。$(br)正数坐标指向房间内部。负数则对应着维室之间的“墙壁”。",
+
+ "hexcasting.action.hexdim:dim/pos/set": "埃弗雷特之位置",
+ "hexdim.page.dim.pos.set": "设定传入维室时的目的地,坐标相对西北角。$(br)需要拥有维室的 W 权限。",
+
+ "hexcasting.action.hexdim:dim/perm/remove": "埃弗雷特之权限",
+ "hexdim.page.dim.perm.remove": "禁用维室的给定权限。0 为 R 权限,1 为 W 权限,2 为 X 权限。",
+
+ "hexcasting.action.hexdim:dim/time": "埃弗雷特计时之纯化",
+ "hexdim.page.dim.time": "我还要等多久?",
+ "hexdim.page.dim.time.extend": "接受一个维室,返回仍需雕琢的方块数。$(br)可以用来确定维室的雕琢进度,以及还需多久才能完成。",
+
+ "hexcasting.action.hexdim:dim/carved": "埃弗雷特雕琢之纯化",
+ "hexdim.page.dim.carved": "我们完成了吗?",
+ "hexdim.page.dim.carved.extend": "接受一个维室,检验其否已雕琢完毕可供使用。"
+}
diff --git a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/README.md b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/README.md
new file mode 100644
index 000000000000..9e8163252705
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/modrinth-hexsky/hexsky)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/lang/en_us.json
new file mode 100644
index 000000000000..d7974bf73b76
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/lang/en_us.json
@@ -0,0 +1,76 @@
+{
+ "hexsky.iota.ship": "Ship: \"%s\"",
+ "hexsky.mishap.invalid": "Ship is Invalid spell because: %s",
+ "hexsky.mishap.invalid.reason.null": "Ship does not exist!",
+
+ "hexsky.entry.navimancy": "Ship Navimancy",
+ "hexsky.page.navimancy": "While various biological, mechanical, or otherwise media-infused creations are able to break from the environment, they are either physically restrained or unable to host solid construction. With the helping hand of the Naval Corps, I have devised methods of assembling and controlling portions of the world as rigid, separated objects.",
+ "hexsky.page.navimancy.terms": "These objects can move untethered, and allow for an enormous range of invention. $(li)$(thing)Ships$() are freely-moving objects which have separated from the world.$(li)$(thing)Force$() is an $(l:patterns/spells/basic#hexcasting:add_motion)impulse$() in a specific direction.$(li)$(thing)Torque$() is akin to Force, but concerns rotation exclusively.$(li)$(thing)Variant$() forces are based on the ship's axes.$(li)$(thing)Invariant$() forces are applied based on the world's.$()",
+
+ "hexsky.entry.complexhex": "Complex Navimancy",
+ "hexsky.page.complexhex.entry": "In the course of my research, I have found simpler representations of rotation inadequate. As such, I developed patterns that allow for the use of more useful representations of rotation. These patterns are for applying such representations to ships.",
+ "hexcasting.action.hexsky:ship_rot_quat": "Bearings Purification",
+ "hexsky.page.complexhex.ship_rot_quat": "Returns a ship's rotation as a $(thing)Quaternion$().",
+ "hexcasting.action.hexsky:ship_rot_quat_set": "Bearings Distillation",
+ "hexsky.page.complexhex.ship_rot_quat_set": "Sets a ship's rotation to the provided $(thing)Quaternion$(). The ship must not be cloaked, and the $(thing)Quaternion must be valid.",
+
+ "hexsky.entry.hexal": "Wisp Navimancy",
+ "hexsky.page.hexal.wisp.entry": "Ships are often difficult for simpler beings to comprehend on their own, so I created these patterns to direct wisps between them.",
+ "hexcasting.action.hexsky:embark": "Embark",
+ "hexsky.page.hexal.wisp.embark": "Attaches the wisp to the ship. It must be near. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
+ "hexcasting.action.hexsky:disembark": "Disembark",
+ "hexsky.page.hexal.wisp.disembark": "Detaches the wisp from a ship. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
+
+ "hexsky.entry.moreiotas": "More Navimancy",
+ "hexsky.page.moreiotas.entry": "Developments in manipulating information justify appropriate ship-related patterns.",
+ "hexcasting.action.hexsky:ship_slug_get": "Boatwright's Prfn.",
+ "hexsky.page.moreiotas.ship_slug_get": "Returns the name of a ship.",
+ "hexcasting.action.hexsky:ship_slug_set": "Boatwright's Dstl.",
+ "hexsky.page.moreiotas.ship_slug_set": "Sets the name of a ship. The ship must be uncloaked.",
+ "hexcasting.action.hexsky:world_to_ship_matrix": "Windward Purification",
+ "hexsky.page.moreiotas.world_to_ship_matrix": "Returns the $(thing)World-to-Ship$() transform matrix of the targeted ship",
+ "hexcasting.action.hexsky:ship_to_world_matrix": "Leeward Purification",
+ "hexsky.page.moreiotas.ship_to_world_matrix": "Returns the $(thing)Ship-to-World$() transform matrix of the targeted ship",
+
+ "hexsky.entry.navimancy.basic": "Basic Navimancy",
+ "hexcasting.action.hexsky:cloak": "Cloaking Purification",
+ "hexsky.page.navimancy.basic.cloak": "Toggles and returns the state of a ship's cloak. This pattern acts as security for a ship, obscuring new references from being obtained. Exercise caution.",
+ "hexcasting.action.hexsky:p2s": "Deckhand's Purification",
+ "hexsky.page.navimancy.basic.p2s": "Takes a position and returns the ship that it corresponds to. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
+ "hexcasting.action.hexsky:ship_pos": "Ship Compass Prfn.",
+ "hexsky.page.navimancy.basic.ship_pos": "Analogous to $(l:patterns/basics#hexcasting:entity_pos/eye)Compass Purification$(), but instead returns the position of a ship's Center of Mass.",
+ "hexcasting.action.hexsky:ship_rot": "Heading Purification",
+ "hexsky.page.navimancy.basic.ship_rot": "Analogous to $(l:patterns/basics#hexcasting:get_entity_look)Alidade's Purification$(), but instead gets the ship's forward direction",
+ "hexcasting.action.hexsky:ship_raycast": "Crow's Distillation",
+ "hexsky.page.navimancy.basic.ship_raycast": "Analogous to $(l:patterns/basics#hexcasting:raycast)Archer's Distillation$(), but instead returns a ship. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
+ "hexcasting.action.hexsky:zone_ships": "Zone Dstl.: Ship",
+ "hexsky.page.navimancy.basic.zone_ships": "Analogous to $(l:patterns/entities#hexcasting:zone_entity)Zone Distillation$(), but instead returns a list of ships. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
+ "hexcasting.action.hexsky:ship_weight": "Tonnage Purification",
+ "hexsky.page.navimancy.basic.ship_weight": "Takes a ship and returns its total mass.$(br)Forces applied by Hexes are to be multiplied by this number.",
+ "hexcasting.action.hexsky:ship_scale": "Magnification Prfn.",
+ "hexsky.page.navimancy.basic.ship_scale": "Takes a ship and returns its current scale.",
+ "hexcasting.action.hexsky:shiptoworldpos": "Worldly Purification",
+ "hexsky.page.navimancy.basic.shiptoworldpos": "Takes a position originating from a ship and transforms it into its worldly equivalent.",
+ "hexcasting.action.hexsky:block_mass": "Deadweight Purification",
+ "hexsky.page.navimancy.basic.block_mass": "Takes a position of a Block and adds its current mass to the stack.",
+
+
+
+ "hexsky.entry.navimancy.applied": "Applied Navimancy",
+ "hexcasting.action.hexsky:assemble": "Assemble",
+ "hexsky.page.navimancy.applied.assemble": "Takes a list of vectors corresponding to static blocks in the world, and transforms them into a separated free-floating object. Blocks outside of my ambit are ignored.",
+ "hexcasting.action.hexsky:force_variant": "Helmsman's Push",
+ "hexsky.page.navimancy.applied.force_variant": "Applies a $(thing)Variant Force$() to the ship in the specified direction",
+ "hexcasting.action.hexsky:torque_variant": "Helmsman's Twist",
+ "hexsky.page.navimancy.applied.torque_variant": "Applies a $(thing)Variant Torque$() to the ship in the specified direction",
+ "hexcasting.action.hexsky:force_invariant": "Nature's Push",
+ "hexsky.page.navimancy.applied.force_invariant": "Applies an $(thing)Invariant Force$() to the ship in the specified direction",
+ "hexcasting.action.hexsky:torque_invariant": "Nature's Twist",
+ "hexsky.page.navimancy.applied.torque_invariant": "Applies an $(thing)Invariant Torque$() to the ship in the specified direction",
+ "hexcasting.action.hexsky:force_invariant_pos": "Nature's Yeet II",
+ "hexsky.page.navimancy.applied.force_invariant_pos": "Applies an $(thing)Invariant Force$() to the ship in the specified direction with a specified offset from the $(l:patterns/basic_navimancy#hexsky:ship_pos)Center of Mass$()",
+ "hexcasting.action.hexsky:force_variant_pos": "Helmsman's Yeet II",
+ "hexsky.page.navimancy.applied.force_variant_pos": "Applies an $(thing)Variant Force$() to the ship in the specified direction with a specified offset from the $(l:patterns/basic_navimancy#hexsky:ship_pos)Center of Mass$()",
+ "hexcasting.action.hexsky:ship_scaling": "Nature's Amusement",
+ "hexsky.page.navimancy.applied.ship_scaling": "Alters the scale of a ship."
+}
diff --git a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/packer-policy.json b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/packer-policy.json
new file mode 100644
index 000000000000..96b9756d44b9
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/packer-policy.json
@@ -0,0 +1,6 @@
+[
+ {
+ "type": "indirect",
+ "source": "projects/1.20/assets/modrinth-hexsky/hexsky"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexsky/hexsky/lang/en_us.json b/projects/1.20/assets/modrinth-hexsky/hexsky/lang/en_us.json
new file mode 100644
index 000000000000..d7974bf73b76
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hexsky/hexsky/lang/en_us.json
@@ -0,0 +1,76 @@
+{
+ "hexsky.iota.ship": "Ship: \"%s\"",
+ "hexsky.mishap.invalid": "Ship is Invalid spell because: %s",
+ "hexsky.mishap.invalid.reason.null": "Ship does not exist!",
+
+ "hexsky.entry.navimancy": "Ship Navimancy",
+ "hexsky.page.navimancy": "While various biological, mechanical, or otherwise media-infused creations are able to break from the environment, they are either physically restrained or unable to host solid construction. With the helping hand of the Naval Corps, I have devised methods of assembling and controlling portions of the world as rigid, separated objects.",
+ "hexsky.page.navimancy.terms": "These objects can move untethered, and allow for an enormous range of invention. $(li)$(thing)Ships$() are freely-moving objects which have separated from the world.$(li)$(thing)Force$() is an $(l:patterns/spells/basic#hexcasting:add_motion)impulse$() in a specific direction.$(li)$(thing)Torque$() is akin to Force, but concerns rotation exclusively.$(li)$(thing)Variant$() forces are based on the ship's axes.$(li)$(thing)Invariant$() forces are applied based on the world's.$()",
+
+ "hexsky.entry.complexhex": "Complex Navimancy",
+ "hexsky.page.complexhex.entry": "In the course of my research, I have found simpler representations of rotation inadequate. As such, I developed patterns that allow for the use of more useful representations of rotation. These patterns are for applying such representations to ships.",
+ "hexcasting.action.hexsky:ship_rot_quat": "Bearings Purification",
+ "hexsky.page.complexhex.ship_rot_quat": "Returns a ship's rotation as a $(thing)Quaternion$().",
+ "hexcasting.action.hexsky:ship_rot_quat_set": "Bearings Distillation",
+ "hexsky.page.complexhex.ship_rot_quat_set": "Sets a ship's rotation to the provided $(thing)Quaternion$(). The ship must not be cloaked, and the $(thing)Quaternion must be valid.",
+
+ "hexsky.entry.hexal": "Wisp Navimancy",
+ "hexsky.page.hexal.wisp.entry": "Ships are often difficult for simpler beings to comprehend on their own, so I created these patterns to direct wisps between them.",
+ "hexcasting.action.hexsky:embark": "Embark",
+ "hexsky.page.hexal.wisp.embark": "Attaches the wisp to the ship. It must be near. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
+ "hexcasting.action.hexsky:disembark": "Disembark",
+ "hexsky.page.hexal.wisp.disembark": "Detaches the wisp from a ship. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
+
+ "hexsky.entry.moreiotas": "More Navimancy",
+ "hexsky.page.moreiotas.entry": "Developments in manipulating information justify appropriate ship-related patterns.",
+ "hexcasting.action.hexsky:ship_slug_get": "Boatwright's Prfn.",
+ "hexsky.page.moreiotas.ship_slug_get": "Returns the name of a ship.",
+ "hexcasting.action.hexsky:ship_slug_set": "Boatwright's Dstl.",
+ "hexsky.page.moreiotas.ship_slug_set": "Sets the name of a ship. The ship must be uncloaked.",
+ "hexcasting.action.hexsky:world_to_ship_matrix": "Windward Purification",
+ "hexsky.page.moreiotas.world_to_ship_matrix": "Returns the $(thing)World-to-Ship$() transform matrix of the targeted ship",
+ "hexcasting.action.hexsky:ship_to_world_matrix": "Leeward Purification",
+ "hexsky.page.moreiotas.ship_to_world_matrix": "Returns the $(thing)Ship-to-World$() transform matrix of the targeted ship",
+
+ "hexsky.entry.navimancy.basic": "Basic Navimancy",
+ "hexcasting.action.hexsky:cloak": "Cloaking Purification",
+ "hexsky.page.navimancy.basic.cloak": "Toggles and returns the state of a ship's cloak. This pattern acts as security for a ship, obscuring new references from being obtained. Exercise caution.",
+ "hexcasting.action.hexsky:p2s": "Deckhand's Purification",
+ "hexsky.page.navimancy.basic.p2s": "Takes a position and returns the ship that it corresponds to. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
+ "hexcasting.action.hexsky:ship_pos": "Ship Compass Prfn.",
+ "hexsky.page.navimancy.basic.ship_pos": "Analogous to $(l:patterns/basics#hexcasting:entity_pos/eye)Compass Purification$(), but instead returns the position of a ship's Center of Mass.",
+ "hexcasting.action.hexsky:ship_rot": "Heading Purification",
+ "hexsky.page.navimancy.basic.ship_rot": "Analogous to $(l:patterns/basics#hexcasting:get_entity_look)Alidade's Purification$(), but instead gets the ship's forward direction",
+ "hexcasting.action.hexsky:ship_raycast": "Crow's Distillation",
+ "hexsky.page.navimancy.basic.ship_raycast": "Analogous to $(l:patterns/basics#hexcasting:raycast)Archer's Distillation$(), but instead returns a ship. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
+ "hexcasting.action.hexsky:zone_ships": "Zone Dstl.: Ship",
+ "hexsky.page.navimancy.basic.zone_ships": "Analogous to $(l:patterns/entities#hexcasting:zone_entity)Zone Distillation$(), but instead returns a list of ships. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
+ "hexcasting.action.hexsky:ship_weight": "Tonnage Purification",
+ "hexsky.page.navimancy.basic.ship_weight": "Takes a ship and returns its total mass.$(br)Forces applied by Hexes are to be multiplied by this number.",
+ "hexcasting.action.hexsky:ship_scale": "Magnification Prfn.",
+ "hexsky.page.navimancy.basic.ship_scale": "Takes a ship and returns its current scale.",
+ "hexcasting.action.hexsky:shiptoworldpos": "Worldly Purification",
+ "hexsky.page.navimancy.basic.shiptoworldpos": "Takes a position originating from a ship and transforms it into its worldly equivalent.",
+ "hexcasting.action.hexsky:block_mass": "Deadweight Purification",
+ "hexsky.page.navimancy.basic.block_mass": "Takes a position of a Block and adds its current mass to the stack.",
+
+
+
+ "hexsky.entry.navimancy.applied": "Applied Navimancy",
+ "hexcasting.action.hexsky:assemble": "Assemble",
+ "hexsky.page.navimancy.applied.assemble": "Takes a list of vectors corresponding to static blocks in the world, and transforms them into a separated free-floating object. Blocks outside of my ambit are ignored.",
+ "hexcasting.action.hexsky:force_variant": "Helmsman's Push",
+ "hexsky.page.navimancy.applied.force_variant": "Applies a $(thing)Variant Force$() to the ship in the specified direction",
+ "hexcasting.action.hexsky:torque_variant": "Helmsman's Twist",
+ "hexsky.page.navimancy.applied.torque_variant": "Applies a $(thing)Variant Torque$() to the ship in the specified direction",
+ "hexcasting.action.hexsky:force_invariant": "Nature's Push",
+ "hexsky.page.navimancy.applied.force_invariant": "Applies an $(thing)Invariant Force$() to the ship in the specified direction",
+ "hexcasting.action.hexsky:torque_invariant": "Nature's Twist",
+ "hexsky.page.navimancy.applied.torque_invariant": "Applies an $(thing)Invariant Torque$() to the ship in the specified direction",
+ "hexcasting.action.hexsky:force_invariant_pos": "Nature's Yeet II",
+ "hexsky.page.navimancy.applied.force_invariant_pos": "Applies an $(thing)Invariant Force$() to the ship in the specified direction with a specified offset from the $(l:patterns/basic_navimancy#hexsky:ship_pos)Center of Mass$()",
+ "hexcasting.action.hexsky:force_variant_pos": "Helmsman's Yeet II",
+ "hexsky.page.navimancy.applied.force_variant_pos": "Applies an $(thing)Variant Force$() to the ship in the specified direction with a specified offset from the $(l:patterns/basic_navimancy#hexsky:ship_pos)Center of Mass$()",
+ "hexcasting.action.hexsky:ship_scaling": "Nature's Amusement",
+ "hexsky.page.navimancy.applied.ship_scaling": "Alters the scale of a ship."
+}
diff --git a/projects/1.20/assets/modrinth-hexsky/hexsky/lang/zh_cn.json b/projects/1.20/assets/modrinth-hexsky/hexsky/lang/zh_cn.json
new file mode 100644
index 000000000000..7e9c0e8effbb
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hexsky/hexsky/lang/zh_cn.json
@@ -0,0 +1,76 @@
+{
+ "hexsky.iota.ship": "船只:“%s”",
+ "hexsky.mishap.invalid": "船只有关法术无效:%s",
+ "hexsky.mishap.invalid.reason.null": "船只不存在!",
+
+ "hexsky.entry.navimancy": "船只航行术",
+ "hexsky.page.navimancy": "虽然许多生物性、机械性、媒质融注性构造都能从环境中独立出来,但它们仍受到诸多物理限制,或是无法具有物理实体、无法搭载其他构造。在海军军团的帮助下,我成功地将世界的一部分组装为了刚性的独立物体,且能控制它们。",
+ "hexsky.page.navimancy.terms": "这些物体的移动不需外物协助,因此具有近乎无限的可塑性。$(li)$(thing)船只$()是独立于世界的、能自由移动的物体。$(li)$(thing)力$()是朝向特定方向的$(l:patterns/spells/basic#hexcasting:add_motion)驱动$()。$(li)$(thing)力矩$()与力类似,但只涉及旋转。$(li)$(thing)相对$()力以船只的轴为参照。$(li)$(thing)绝对$()力则以世界的轴为参照。$()",
+
+ "hexsky.entry.complexhex": "ComplexHex 航行术",
+ "hexsky.page.complexhex.entry": "我在的研究过程中发现简单的旋转表示方式难以堪用。因此,我开发了适配高效旋转表示方式的图案。它们能够将这些表示方式作用于船只。",
+ "hexcasting.action.hexsky:ship_rot_quat": "轴承之纯化",
+ "hexsky.page.complexhex.ship_rot_quat": "将船只的朝向返回为$(thing)四元数$()。",
+ "hexcasting.action.hexsky:ship_rot_quat_set": "轴承之馏化",
+ "hexsky.page.complexhex.ship_rot_quat_set": "将船只的朝向设定为所给$(thing)四元数$()。船只的遮篷需被禁用,且$(thing)四元数$()必须有效。",
+
+ "hexsky.entry.hexal": "咒灵航行术",
+ "hexsky.page.hexal.wisp.entry": "构造更简单的事物常常难以独自理解船只的存在,因此我制造了这些图案,用以在船只处引导咒灵。",
+ "hexcasting.action.hexsky:embark": "登船",
+ "hexsky.page.hexal.wisp.embark": "将咒灵连接至船只。咒灵和船只必须足够靠近。此操作必须由咒灵执行,尝试用法杖执行会招致可怖的事故。",
+ "hexcasting.action.hexsky:disembark": "下船",
+ "hexsky.page.hexal.wisp.disembark": "解开咒灵和船只的连接。此操作必须由咒灵执行,尝试用法杖执行会招致可怖的事故。",
+
+ "hexsky.entry.moreiotas": "MoreIotas 航行术",
+ "hexsky.page.moreiotas.entry": "在信息处理方面上的发展带来的是配套的船只图案。",
+ "hexcasting.action.hexsky:ship_slug_get": "造船工之纯化",
+ "hexsky.page.moreiotas.ship_slug_get": "返回船只的名称。",
+ "hexcasting.action.hexsky:ship_slug_set": "造船工之馏化",
+ "hexsky.page.moreiotas.ship_slug_set": "设置船只的名称。船只的遮篷需被禁用。",
+ "hexcasting.action.hexsky:world_to_ship_matrix": "迎风之纯化",
+ "hexsky.page.moreiotas.world_to_ship_matrix": "返回目标船只的$(thing)世界至船只$()变换矩阵。",
+ "hexcasting.action.hexsky:ship_to_world_matrix": "背风之纯化",
+ "hexsky.page.moreiotas.ship_to_world_matrix": "返回目标船只的$(thing)船只至世界$()变换矩阵。",
+
+ "hexsky.entry.navimancy.basic": "基础航行术",
+ "hexcasting.action.hexsky:cloak": "遮篷之纯化",
+ "hexsky.page.navimancy.basic.cloak": "切换并返回船只的遮篷状态。此图案可用作船只的安全措施,能阻止外部对象获取代表它的 iota。使用需谨慎。",
+ "hexcasting.action.hexsky:p2s": "甲板水手之纯化",
+ "hexsky.page.navimancy.basic.p2s": "接受一个位置,返回对应的船只。会被$(l:patterns/basic_navimancy#hexsky:cloak)遮篷$()阻挡。",
+ "hexcasting.action.hexsky:ship_pos": "船用罗经之纯化",
+ "hexsky.page.navimancy.basic.ship_pos": "与$(l:patterns/basics#hexcasting:entity_pos/eye)指南针之纯化$()类似,但会返回船只的质心位置。",
+ "hexcasting.action.hexsky:ship_rot": "航向之纯化",
+ "hexsky.page.navimancy.basic.ship_rot": "与$(l:patterns/basics#hexcasting:get_entity_look)照准仪之纯化$()类似,但会获取船只的前方方向。",
+ "hexcasting.action.hexsky:ship_raycast": "瞭望鸦之馏化",
+ "hexsky.page.navimancy.basic.ship_raycast": "与$(l:patterns/basics#hexcasting:raycast)弓箭手之馏化$()类似,但会返回船只 iota。会被$(l:patterns/basic_navimancy#hexsky:cloak)遮篷$()阻挡。",
+ "hexcasting.action.hexsky:zone_ships": "区域之馏化:船只",
+ "hexsky.page.navimancy.basic.zone_ships": "与$(l:patterns/entities#hexcasting:zone_entity)区域之馏化$()类似,但会返回船只 iota 列表。会被$(l:patterns/basic_navimancy#hexsky:cloak)遮篷$()阻挡。",
+ "hexcasting.action.hexsky:ship_weight": "吨位之纯化",
+ "hexsky.page.navimancy.basic.ship_weight": "接受一个船只,返回其总质量。$(br)咒术产生的力会乘以此数。",
+ "hexcasting.action.hexsky:ship_scale": "放大之纯化",
+ "hexsky.page.navimancy.basic.ship_scale": "接受一个船只,返回其当前缩放倍率。",
+ "hexcasting.action.hexsky:shiptoworldpos": "世间之纯化",
+ "hexsky.page.navimancy.basic.shiptoworldpos": "接受一个相对船只的位置,并将其转换为世界位置。",
+ "hexcasting.action.hexsky:block_mass": "载重之纯化",
+ "hexsky.page.navimancy.basic.block_mass": "接受一个方块位置,返回其当前质量。",
+
+
+
+ "hexsky.entry.navimancy.applied": "应用航行术",
+ "hexcasting.action.hexsky:assemble": "组装",
+ "hexsky.page.navimancy.applied.assemble": "接受对应世界中静态方块的位置向量列表,将其组装为可自由移动的独立物体。超出我影响范围的方块会被忽略。",
+ "hexcasting.action.hexsky:force_variant": "舵手之推动",
+ "hexsky.page.navimancy.applied.force_variant": "沿给定方向对船只施加一个$(thing)相对力$()。",
+ "hexcasting.action.hexsky:torque_variant": "舵手之扭转",
+ "hexsky.page.navimancy.applied.torque_variant": "沿给定方向对船只施加一个$(thing)相对力矩$()。",
+ "hexcasting.action.hexsky:force_invariant": "自然之推动",
+ "hexsky.page.navimancy.applied.force_invariant": "沿给定方向对船只施加一个$(thing)绝对力$()。",
+ "hexcasting.action.hexsky:torque_invariant": "自然之扭转",
+ "hexsky.page.navimancy.applied.torque_invariant": "沿给定方向对船只施加一个$(thing)绝对力矩$()。",
+ "hexcasting.action.hexsky:force_invariant_pos": "自然之掷抛,第二型",
+ "hexsky.page.navimancy.applied.force_invariant_pos": "沿给定方向对船只施加一个$(thing)绝对力$(),根据相对$(l:patterns/basic_navimancy#hexsky:ship_pos)质心$()位置的偏移向量移动作用点。",
+ "hexcasting.action.hexsky:force_variant_pos": "舵手之掷抛,第二型",
+ "hexsky.page.navimancy.applied.force_variant_pos": "沿给定方向对船只施加一个$(thing)相对力$(),根据相对$(l:patterns/basic_navimancy#hexsky:ship_pos)质心$()位置的偏移向量移动作用点。",
+ "hexcasting.action.hexsky:ship_scaling": "自然之欢愉",
+ "hexsky.page.navimancy.applied.ship_scaling": "更改船只的缩放倍率。"
+}
\ No newline at end of file
From 8cd4aabeff2a127f1a66878bf761348f2042ac37 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 25 Mar 2025 23:58:00 +0800
Subject: [PATCH 16/78] Mediaworks MoreIotas Oneironaut MerlingsGrace create
---
.../mediaworks/lang/en_us.json | 124 ++++++
.../mediaworks/lang/zh_cn.json | 124 ++++++
.../moreiotas/moreiotas/lang/en_us.json | 105 ++++++
.../moreiotas/moreiotas/lang/zh_cn.json | 105 ++++++
.../oneironaut/oneironaut/lang/en_us.json | 355 ++++++++++++++++++
.../oneironaut/oneironaut/lang/zh_cn.json | 355 ++++++++++++++++++
.../merlingsgrace/lang/en_us.json | 6 +
.../merlingsgrace/lang/zh_cn.json | 6 +
.../assets/oneironaut/oneironaut/README.md | 1 +
.../oneironaut/oneironaut/lang/en_us.json | 323 ++++++++++++++++
.../oneironaut/oneironaut/packer-policy.json | 6 +
.../oneironaut/oneironaut/lang/en_us.json | 323 ++++++++++++++++
.../oneironaut/oneironaut/lang/zh_cn.json | 323 ++++++++++++++++
13 files changed, 2156 insertions(+)
create mode 100644 projects/1.19/assets/modrinth-mediaworks/mediaworks/lang/en_us.json
create mode 100644 projects/1.19/assets/modrinth-mediaworks/mediaworks/lang/zh_cn.json
create mode 100644 projects/1.19/assets/moreiotas/moreiotas/lang/en_us.json
create mode 100644 projects/1.19/assets/moreiotas/moreiotas/lang/zh_cn.json
create mode 100644 projects/1.19/assets/oneironaut/oneironaut/lang/en_us.json
create mode 100644 projects/1.19/assets/oneironaut/oneironaut/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/modrinth-merlingsgrace/merlingsgrace/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-merlingsgrace/merlingsgrace/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/oneironaut/oneironaut/README.md
create mode 100644 projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/oneironaut/oneironaut/packer-policy.json
create mode 100644 projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
create mode 100644 projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
diff --git a/projects/1.19/assets/modrinth-mediaworks/mediaworks/lang/en_us.json b/projects/1.19/assets/modrinth-mediaworks/mediaworks/lang/en_us.json
new file mode 100644
index 000000000000..ef14f65478d0
--- /dev/null
+++ b/projects/1.19/assets/modrinth-mediaworks/mediaworks/lang/en_us.json
@@ -0,0 +1,124 @@
+{
+ "effect.mediaworks.astral_projection": "Astral Projection",
+
+ "item.mediaworks.magic_cloak": "Featherweave Cloak",
+
+ "enchantment.mediaworks.reciprocation": "Reciprocation",
+ "enchantment.mediaworks.reciprocation.desc": "Casts the held iota (if any) whenever the wearer is damaged.",
+ "enchantment.mediaworks.media_shield": "Media Shield",
+ "enchantment.mediaworks.media_shield.desc": "Absorbs raw incoming damage (before armor calculations) by up to a certain percentage, consuming an amount of media equivalent to the absorbed damage.",
+ "enchantment.mediaworks.locale_magnification": "Locale Magnification",
+ "enchantment.mediaworks.locale_magnification.desc": "Increases personal casting range of influence and raycast distance.",
+
+ "advancements.mediaworks.find_cloak": "Dust and Feathers",
+ "advancements.mediaworks.find_cloak.description": "Find a Featherweave Cloak among the dark remnants of an ancient age.",
+
+ "mediaworks.subtitle.astral.ambience": "Nature whispers",
+ "mediaworks.subtitle.astral.return": "Astral Projection ends",
+ "mediaworks.message.projection": "Press %1$s to Return",
+
+ "mediaworks.visage.text.unbounded": "Text Visage (Unbounded)",
+ "mediaworks.visage.text.bounded": "Text Visage (%1$d, %2$d)",
+
+ "hexcasting.spell.mediaworks:astral_projection": "Astral Projection",
+ "hexcasting.spell.mediaworks:astral_pos": "Astral Locale Reflection",
+ "hexcasting.spell.mediaworks:astral_look": "Astral Gaze Reflection",
+
+ "hexcasting.spell.mediaworks:macula/add": "Etch Visage",
+ "hexcasting.spell.mediaworks:macula/clear": "Macula Erasure",
+ "hexcasting.spell.mediaworks:macula/dimensions": "Macula Gambit",
+ "hexcasting.spell.mediaworks:visage/text/unbounded": "Calligrapher's Purification",
+ "hexcasting.spell.mediaworks:visage/text/bounded": "Calligrapher's Exaltation",
+
+ "hexcasting.spell.mediaworks:cloak/read": "Medivh's Reflection",
+ "hexcasting.spell.mediaworks:get_media": "Media Reflection",
+ "hexcasting.spell.mediaworks:get_entity_media": "Media Purification I",
+ "hexcasting.spell.mediaworks:get_pos_media": "Media Purification II",
+
+ "hexcasting.mishap.black_eye.visage_cap": "Your Macula could not withstand too many Visages at once",
+ "hexcasting.mishap.black_eye.duration_cap": "Your Macula could not accept a Fleeting Visage for longer than a day, consider etching a Lasting Visage instead",
+ "hexcasting.mishap.invalid_value.class.visage": "Visage",
+
+ "mediaworks.entry.astral_projection": "Astral Projection",
+ "mediaworks.page.astral_projection.1": "Finally, no longer am I confined to my mortal shell! The spell $(l:mediaworks:greatwork/astral_self)$(thing)projects/$ my mind outside of my body, granting multiple useful abilities for the specified number of seconds.",
+ "mediaworks.page.astral_projection.2": "Seeing how inert and defenseless the body becomes without a mind actively governing it, I suppose it is a boon that this spell only targets the caster.$(p)Casting the spell costs about 2 units of $(l:items/amethyst)$(item)Amethyst Dust/$ per second of duration.$(br)If my $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$ holds any iota when I cast this spell, the iota is captured as an $(thing)Astral Iota/$ for the entire duration of the projection.",
+ "mediaworks.page.astral_projection.3": "During such a massive paradigm shift, concentration is hard to maintain, so all the patterns I've drawn and iotas I've saved to my previous stack are lost.$(p)Lastly, it seems that I cannot extend my remaining time while already dissociated. Trying to do so leads to an $(l:casting/mishaps)$(thing)Entity is Immune/$ mishap.",
+
+ "mediaworks.entry.astral_self": "Astral Self",
+ "mediaworks.page.astral_self.1": "The state of $(l:mediaworks:patterns/great_spells/astral_projection)$(thing)Astral Projection/$ is... $(thing)TRUE BLISS/$! In it, I can $(italic)hear/$ the veil thinning, I can $(italic)see/$ the whispers of Nature, I can $(italic)smell/$ colors of _media calling out to me senses jumbled must reach must attain mu$(obf)st remark that you're quite attentive lol/$",
+ "mediaworks.page.astral_self.2": "While projecting, I can fly as I please within my range of influence and phase through any blocks. However, my astral self sees the world in black and white, its sight fading as it moves further from my body, and a thick fog occludes its sight not that far away. It cannot interact with anything and cannot be interacted with.",
+ "mediaworks.page.astral_self.3": "While I visualise my astral self as a translucent copy of me, other casters can only see a flying particle cloud colored with my $(l:items/pigments)$(thing)pigment/$, and other creatures ignore my astral self completely.$(p)There is still one more boon: if my $(l:mediaworks:patterns/great_spells/astral_projection)$(thing)Astral Projection/$ spell captured an $(thing)Astral Iota/$, then whenever I press $(thing)$(k:use)/$ during that projection, Nature evaluates the iota, much like when casting from a $(l:items/hexcasting)$(thing)Casting Item/$.",
+ "mediaworks.page.astral_self.4": "If Astral Projection ends peacefully, Nature gently pushes my mind back into my body. This happens if:$(li)The time allotted by the corresponding $(l:mediaworks:patterns/great_spells/astral_projection)$(thing)spell/$ runs out;$(li)I press $(thing)$(k:inventory)/$.",
+ "mediaworks.page.astral_self.5": "However, sometimes Astral Projection ends... not so peacefully. Nature does not take kindly to betrayal of its expectations, and throws my mind back into my body, in disarray. This happens if:$(li)My attempt to cast an Astral Iota results in a failure;$(li)My dull body is moved further than 3 blocks from the casting position;$(li)My astral self leaves my range of influence./$",
+ "mediaworks.page.astral_self.6": "...I've done some more research, though. It appears that, if I act carefully, - I need to be careful I MUST, I can NOT lose myself to arrogance now, - there might be a way to $(l:patterns/great_spells/greater_sentinel)$(thing)circumvent/$ the range limitation altogether.",
+
+ "mediaworks.entry.astral_utils": "Astral Utilities",
+ "hexcasting.spell.book.mediaworks:astral_pos": "Astral Locale Rfln.",
+ "mediaworks.page.astral_utils.astral_pos": "Returns the \"eye\" position vector of my astral self, similarly to how $(l:patterns/basics#hexcasting:entity_pos/eye)$(thing)Compass' Purification/$ works for my physical body. Returns $(l:casting/influences)$(thing)Null/$ if I am not projecting.",
+ "hexcasting.spell.book.mediaworks:astral_look": "Astral Gaze Rfln.",
+ "mediaworks.page.astral_utils.astral_look": "Returns the direction my astral self is looking in, similarly to how $(l:patterns/basics#hexcasting:get_entity_look)$(thing)Alidade's Purification/$ works for my physical body. Returns $(l:casting/influences)$(thing)Null/$ if I am not projecting.",
+
+ "mediaworks.entry.macula": "Macula Etching",
+ "mediaworks.entry.macula.desc": "$(l:patterns/basics#hexcasting:print)$(thing)Reveal/$ is a good pattern, but sometimes I find myself wishing for more flexibility. Thankfully, with just a few simple $(l:mediaworks:patterns/macula/macula_patterns)$(thing)patterns/$ I can affect my sight by directly etching $(l:mediaworks:patterns/macula/macula_concepts#mediaworks:visages)$(thing)Visages/$ onto my eye's very $(l:mediaworks:patterns/macula/macula_concepts)$(thing)Macula/$. These visages work similarly to the essential information that seems to have been etched onto my eyes by Nature itself, like health or hotbar.",
+
+ "mediaworks.entry.macula_concepts": "Macula Concepts",
+ "mediaworks.page.macula_concepts.1": "Macula is the part of my eye where visages are etched. Due to its physical nature, it is not carried between different bodies (like when respawning). It can hold $(thing)Lasting Visages/$ - shown indefinitely - and $(thing)Fleeting Visages/$. Fleeting visages fade gradually in the last second of their lifetime, unless the lifetime is 1 second or less in the first place. However, it appears that my Macula is somewhat fragile, so it cannot hold more than 32 visages at a time, and neither can it accept $(thing)Fleeting Visages/$ that stay for longer than 1 full day.",
+ "mediaworks.page.macula_concepts.2": "Visage is a generic word referring to any element visible on my macula. In order to etch one, I need to prepare one first, e.g. with $(l:mediaworks:patterns/macula/text_visages#mediaworks:visage/text/unbounded)$(thing)Calligrapher's Purification/$. Such operations result in $(thing)Visage Iotas/$: they hold information needed to reproduce their specific visages anywhere on the Macula. I can then store these iotas, or $(l:mediaworks:patterns/macula/macula_patterns#mediaworks:macula/add)$(thing)etch/$ them.",
+ "mediaworks.page.macula_concepts.2.title": "Visages",
+ "mediaworks.page.macula_concepts.3": "Visages are positioned in a somewhat special 3-dimensional space, which I have very creatively dubbed the $(thing)Macula Space/$. It is akin to a box with its front (the Z-axis) facing towards me, though with a few caveats:$(li)The top left corner of my sight corresponds to coordinates X = 0, Y = 0, the $(thing)Macula Origin/$ of sorts.$(li)Macula width and height change along with my $(t:Game window's scaled dimensions, e.g. 480x270 in the 1920x1080 resolution)$(thing)outlook/$.$(li)There is no perspective, so the Z coordinate, $(thing)depth/$, only determines which visage comes out on top in case of overlap.",
+ "mediaworks.page.macula_concepts.3.title": "Macula Space",
+ "mediaworks.page.macula_concepts.4": "Though etching things onto my own eyes phases me curiously little, I should probably still be careful that nothing goes wrong, lest I incur the $(l:mediaworks:patterns/macula/black_eye)$(thing)Black Eye/$ mishap.",
+ "mediaworks.page.macula_concepts.4.title": "Word of Caution",
+
+ "mediaworks.entry.macula_patterns": "Macula Patterns",
+ "mediaworks.page.macula_patterns.macula_add": "Puts the visage at the specified point in the $(l:mediaworks:patterns/macula/macula_concepts#mediaworks:macula_space)$(thing)Macula Space/$. If the display duration (the third argument) is supplied, the visage is $(l:mediaworks:patterns/macula/macula_concepts)$(thing)Fleeting/$, otherwise - $(l:mediaworks:patterns/macula/macula_concepts)$(thing)Lasting/$. Costs a negligible amount of _media.",
+ "mediaworks.page.macula_patterns.macula_clear": "Clears my Macula quickly and painlessly. Definitely beats suffering a $(l:mediaworks:patterns/macula/black_eye)$(thing)Black Eye/$ or dying. Costs a negligible amount of _media.",
+ "mediaworks.page.macula_patterns.macula_dimensions": "Returns my current $(l:mediaworks:patterns/macula/macula_concepts#mediaworks:macula_space)$(thing)Macula width and height/$. An absolute must for any sufficiently complex Macula calculations.",
+
+ "mediaworks.entry.black_eye": "Black Eye Mishap",
+ "mediaworks.page.black_eye.1": "Occurs when I have tried to put more than 32 visages onto my Macula, or to create a $(l:mediaworks:patterns/macula/macula_concepts)$(thing)Fleeting Visage/$ for longer than 1 day.$(p)Causes black sparks and damages my Macula, clearing it and blinding me for a couple of seconds.$(p)$(italic)Good thing the blindness is temporary...",
+
+ "mediaworks.entry.text_visages": "Text Visages",
+ "mediaworks.page.text_visages.1": "A type of visages that can show any text, with a constant line height of $(thing)9/$. Their ability to capture iotas' $(italic)current/$ texts makes them a more flexible equivalent of $(l:patterns/basics#hexcasting:print)$(thing)Reveal/$.$(p)Text visages can be $(thing)unbounded/$ or $(thing)bounded/$. The former can stretch infinitely, and the latter wrap lines that exceed the max width, displaying only the lines that fully fit within the max height.",
+ "hexcasting.spell.book.mediaworks:visage/text/unbounded": "Calligrapher's Prfn.",
+ "mediaworks.page.text_visages.create_unbounded": "Extracts current display text from any iota and creates an unbounded text visage iota.",
+ "hexcasting.spell.book.mediaworks:visage/text/bounded": "Calligrapher's Exlt.",
+ "mediaworks.page.text_visages.create_bounded": "Extracts current display text from any iota and creates a bounded text visage iota, with the first number specifying max width and second - max height.",
+
+ "mediaworks.entry.mediaworks_moreiotas": "Mediaworks-MoreIotas",
+ "mediaworks.page.mediaworks_moreiotas.1": "It appears that $(thing)Strings/$ have some special properties when used with $(l:mediaworks:patterns/macula/text_visages)$(thing)Text Visages/$. Specifically, the Calligrapher's patterns extract the underlying strings rather than their colored, quoted displays, and let me take advantage of the old ways of $(l:https://minecraft.fandom.com/wiki/Formatting_codes)formatting/$.",
+ "mediaworks.page.mediaworks_moreiotas.2": "To format text, I need only type the \"codes\" with the $(thing)&/$ symbol instead of the paragraph symbol, since I cannot normally type the latter. Any instances of $(thing)&/$ that are not part of a formatting code are left as-is.",
+
+ "mediaworks.entry.mediaworks_tweaks": "Mediaworking Changes",
+ "mediaworks.page.mediaworks_tweaks.1": "The _media flow in the world feels somewhat different lately. It has become more... perhaps, the word I am looking for is \"workable\"?$(p)I have unearthed legends about casters pulling _media from items inside $(thing)Shulker Boxes/$, though only after all other available _media sources are exhausted. Application rules seem to be the same as for _media from $(l:items/phials)$(thing)Media Phials/$.",
+ "mediaworks.page.mediaworks_tweaks.2": "When choosing an inventory slot to pull _media from, it no longer matters how much _media there is in the slot's item stack. This means that multiple successive casts will now prioritize fully exhausting inventory item stacks instead of \"load-balancing\", and thus will free up my pockets more quickly.",
+ "mediaworks.page.mediaworks_tweaks.3": "A $(l:items/lens)$(thing)Scrying Lens/$ worn in my helmet slot or face slot now also condenses the casting grid, much like when held in the other hand. However, having multiple lenses on my person is redundant, because 2 or even 3 of them have the same effect as just 1.",
+
+ "mediaworks.entry.mediaworks_containers": "Mediaworks Containers",
+ "mediaworks.page.mediaworks_containers.1": "In a $(italic)modified/$ world, there can be all kinds of containers besides $(thing)Shulker Boxes/$. Some of them can even act as _media $(l:mediaworks:basics/mediaworks_tweaks)$(thing)sources/$ in much the same way! I will be cataloguing such special containers here.",
+
+ "mediaworks.page.magic_cloak.1": "Many scripts hint at cities deep underground where masters of magic wore feathered cloaks. The cloaks were bestowed upon them by a powerful mage who figured out how to embed ideas into the threads of dark fabric. With this fabric did he create the first cloak of this kind.$(p)If I ever manage to obtain one, I will document further discoveries about it here.",
+ "mediaworks.page.magic_cloak.2": "The cloaks exist after all! After god knows how many centuries in the $(thing)Deep Dark/$, the weave feels oddly pristine to the touch, and the threads can hold iotas in a way that I have so far failed to replicate.",
+ "mediaworks.page.magic_cloak.3": "I can write iotas to and read them from a $(thing)Featherweave Cloak/$ much like with a $(l:items/focus)$(thing)Focus/$. It doesn't seem like waxing it would work, though.$(p)Conveniently, I can also $(l:mediaworks:patterns/cloak_patterns#mediaworks:cloak/read)$(thing)read/$ from a cloak without taking it off, and cut quite the dashing figure while doing so.",
+ "mediaworks.page.magic_cloak.4": "Speaking of dashing figures, I can dye the cloak almost any color imaginable! The fabric absorbs dyes much like the mundane leather gear, yet infinitely more befitting of a true mage such as myself.$(p)Should I ever need to get rid of the applied dyes, a good ol' cauldron wash will do.",
+ "mediaworks.page.magic_cloak.5": "However, this is not the full extent of their potential, $(italic)far/$ from it. I have been finding some peculiar $(thing)Enchanted Books/$ unique to the dark and damp ancient cities, so perhaps the way to greater power lies through the secrets of enchanting.$(p)On the following pages I have compiled a list of enchantments applicable to featherweave cloaks.",
+ "mediaworks.page.magic_cloak.reciprocation.1": "Whenever I take damage, this enchantment forces the cloak to retaliate by automatically evaluating its stored iota. An empty cloak will not do anything, and a cloak with a non-evaluatable iota will cause the usual mishap.",
+ "mediaworks.page.magic_cloak.reciprocation.2": "This also triggers when overcasting from health, thereby causing a self-perpetuating loop that can easily consume my mind in the blink of an eye.$(p)However, if it cannot kill me for some reason, it should fizzle out after about 50 repetitions.",
+ "mediaworks.page.magic_cloak.media_shield.1": "Adds an external layer of defense that absorbs a percentage of incoming blockable damage, 10% per level at most. This triggers before any armor calculations, and every absorbed damage point costs as much media as a single health point gives when overcasting. the media is spent in the same way as when casting with a staff.",
+ "mediaworks.page.magic_cloak.media_shield.2": "If there is not enough media to cover the full effect and no way for Nature to force it out of me, the enchantment will only absorb as much damage as the available media allows. Otherwise, the media is spent in the same way as when casting with a staff.",
+ "mediaworks.page.magic_cloak.locale_magnification": "The rarest of them all! An enchantment that unconditionally extends my standard range of influence by 8, 16, or 32 blocks, depending on the level. This extension even applies to my raycast distance, like when using $(l:patterns/basics#hexcasting:raycast)$(thing)Archer's Distillation/$!",
+ "mediaworks.page.magic_cloak.other_enchants": "A featherweave cloak is wearable and damageable. It stands to reason, then, that it accepts any enchantments available to other such items (e.g. the $(thing)Elytra/$).",
+ "mediaworks.page.magic_cloak.other_enchants.title": "Other Enchantments",
+ "mediaworks.page.magic_cloak.post": "$(italic)More scrawls on ancient paper... \"He betrayed us, these cloths given to our leaders were nothing but a way to disarm us. The Skulk will follow soon after. I am leaving before it's too late. Beware these dark fabrics...\"$(p)I should stay away from this place and its heirlooms. These linens are cursed and no allure of power would ever change that fact.$(p)But how bad could it really be?/$",
+
+ "mediaworks.entry.media_patterns": "Mediaworks",
+ "mediaworks.page.media_patterns.get_media": "Returns the amount of _media currently available to the hex without overcasting, in units of $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "mediaworks.page.media_patterns.get_entity_media.1": "Returns the amount of _media in a dropped item entity, or in an entity's inventory if it is a player, in units of $(l:items/amethyst)$(item)Amethyst Dust/$. Returns 0 if not applicable.",
+ "mediaworks.page.media_patterns.get_entity_media.2": "Curiously, the _media in $(l:items/hexcasting)$(thing)Casting Items/$ seems to be obscured: they do not contribute to a player's evaluated _media total. However, this obscurity does not hold under closer scrutiny: when evaluating a dropped casting item directly, the pattern does report its contained _media.",
+ "mediaworks.page.media_patterns.get_pos_media.1": "Returns the total amount of _media in the container at the position, in units of $(l:items/amethyst)$(item)Amethyst Dust/$. Returns 0 if not applicable. Works for a certain $(l:greatwork/impetus)$(thing)special container/$ as well.",
+ "mediaworks.page.media_patterns.get_pos_media.2": "Stored $(l:items/hexcasting)$(thing)Casting Items/$ do not contribute to the calculated _media total.",
+
+ "mediaworks.entry.cloak_patterns": "Cloakworks",
+ "mediaworks.page.cloak_patterns.cloak_read.1": "Old tales depict a figure of power unmatched, yet tender to all creatures under the sun. Among his many great feats, he was the first to spin the $(l:mediaworks:items/magic_cloak)$(thing)Featherweave Cloak/$ fabric out of feathers and dust.",
+ "mediaworks.page.cloak_patterns.cloak_read.2": "This pattern can extract the iota held in a worn featherweave cloak, without the need to take it off and resort to $(l:patterns/readwrite)$(thing)traditional methods/$."
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-mediaworks/mediaworks/lang/zh_cn.json b/projects/1.19/assets/modrinth-mediaworks/mediaworks/lang/zh_cn.json
new file mode 100644
index 000000000000..8b9d10aa301c
--- /dev/null
+++ b/projects/1.19/assets/modrinth-mediaworks/mediaworks/lang/zh_cn.json
@@ -0,0 +1,124 @@
+{
+ "effect.mediaworks.astral_projection": "魂灵投射",
+
+ "item.mediaworks.magic_cloak": "羽织斗篷",
+
+ "enchantment.mediaworks.reciprocation": "回应",
+ "enchantment.mediaworks.reciprocation.desc": "若存有iota,则在穿戴者受到伤害时施放之。",
+ "enchantment.mediaworks.media_shield": "媒质护盾",
+ "enchantment.mediaworks.media_shield.desc": "吸收一定比例的伤害,并消耗等价的媒质,吸收比例优先于护甲值计算。",
+ "enchantment.mediaworks.locale_magnification": "术场扩增",
+ "enchantment.mediaworks.locale_magnification.desc": "增加个人施法影响范围和射线追踪距离上限。",
+
+ "advancements.mediaworks.find_cloak": "尘与羽",
+ "advancements.mediaworks.find_cloak.description": "在远古年代的黑暗遗迹中找到羽织斗篷。",
+
+ "mediaworks.subtitle.astral.ambience": "自然:低语",
+ "mediaworks.subtitle.astral.return": "魂灵投射:结束",
+ "mediaworks.message.projection": "按下%1$s来返回",
+
+ "mediaworks.visage.text.unbounded": "文本示像(未绑定)",
+ "mediaworks.visage.text.bounded": "文本示像(%1$d, %2$d)",
+
+ "hexcasting.spell.mediaworks:astral_projection": "魂灵投射",
+ "hexcasting.spell.mediaworks:astral_pos": "魂灵所处之精思",
+ "hexcasting.spell.mediaworks:astral_look": "魂灵视线之精思",
+
+ "hexcasting.spell.mediaworks:macula/add": "蚀刻示像",
+ "hexcasting.spell.mediaworks:macula/clear": "黄斑擦除",
+ "hexcasting.spell.mediaworks:macula/dimensions": "黄斑之策略",
+ "hexcasting.spell.mediaworks:visage/text/unbounded": "书法家之纯化",
+ "hexcasting.spell.mediaworks:visage/text/bounded": "书法家之提整",
+
+ "hexcasting.spell.mediaworks:cloak/read": "麦迪文之精思",
+ "hexcasting.spell.mediaworks:get_media": "媒质之精思",
+ "hexcasting.spell.mediaworks:get_entity_media": "媒质之纯化,第一型",
+ "hexcasting.spell.mediaworks:get_pos_media": "媒质之纯化,第二型",
+
+ "hexcasting.mishap.black_eye.visage_cap": "你的黄斑无法同时承受过多示像",
+ "hexcasting.mishap.black_eye.duration_cap": "你的黄斑无法承受显示时间超过1天的短暂示像,可考虑蚀刻长效示像",
+ "hexcasting.mishap.invalid_value.class.visage": "示像",
+
+ "mediaworks.entry.astral_projection": "魂灵投射",
+ "mediaworks.page.astral_projection.1": "终于,不需再受我会衰老躯壳的禁锢了!此法术会将我的意识$(l:mediaworks:greatwork/astral_self)$(thing)投射/$出我的身体,所给数代表投射秒数,这几秒内我会获得多种有用的能力。",
+ "mediaworks.page.astral_projection.2": "如今亲眼见到无意识操控的身体的惰性和脆弱,我想此法术只会以施法者为目标也算是一种益处。$(p)施放法术后,每秒持续时间消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉/$。$(br)如果在施放此法术时我的$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$中存有 iota,则该 iota 会在整段投射过程中被捕获为$(thing)魂灵 iota/$。",
+ "mediaworks.page.astral_projection.3": "在如此大型的范式转移过程中,人很难维持集中力,也因此我绘制的所有图案和前一个栈中的所有 iota 都会消失。$(p)最后,在魂灵离体后我无法再延长投射时间。试图这么做会导致$(l:casting/mishaps)$(thing)实体免疫/$事故。",
+
+ "mediaworks.entry.astral_self": "魂灵自我",
+ "mediaworks.page.astral_self.1": "$(l:mediaworks:patterns/great_spells/astral_projection)$(thing)魂灵投射/$的状态是……$(thing)$(bold)真正的极乐/$!处于这种状态中的我能$(italic)听见/$屏障的减弱,我能$(italic)看见/$自然的低语,我能$(italic)闻到/$$(media)媒质/$引召我的颜色感官崩解必须达到必须获得必$(obf)st remark that you're quite attentive lol/$",
+ "mediaworks.page.astral_self.2": "投射状态下,我能在我影响范围内随心所欲地飞翔,并且能穿过任何方块。然而,我的魂灵自我看到的世界是灰度的,离身体越远视野也越暗,远处的景象也被浓雾笼罩隐藏。它无法与任何事物交互,也无法被任何事物交互。",
+ "mediaworks.page.astral_self.3": "我眼中我的魂灵自我是我形体的透明翻版,但其他施法者只能看见与我$(l:items/pigments)$(thing)染色剂/$同色的浮空粒子云,其他生物则完全无视我的魂灵自我。$(p)还有一点益处:如果$(l:mediaworks:patterns/great_spells/astral_projection)$(thing)魂灵投射/$法术捕获有$(thing)魂灵 iota/$,则在投射过程中按下$(thing)$(k:use)/$时,自然就会运行该 iota,和用$(l:items/hexcasting)$(thing)施法物品/$施放类似。",
+ "mediaworks.page.astral_self.4": "如果魂灵投射平安无事地结束,自然会温柔地将我的意识推回我的身体。这种现象发生于:$(li)对应$(l:mediaworks:patterns/great_spells/astral_projection)$(thing)法术/$分配到的时间耗尽时;$(li)我按下$(thing)$(k:inventory)/$时。",
+ "mediaworks.page.astral_self.5": "但是,有些时候魂灵投射的结束……并不会平安无事。自然不会善待对其期望的背叛,并会将我的意识以紊乱的状态扔回我的身体。这种现象发生于:$(li)施放魂灵 iota 导致事故与错误;$(li)我的迟钝身体移动到距施法位置 3 格之外;$(li)我的魂灵自我离开影响范围。/$",
+ "mediaworks.page.astral_self.6": "……我也做过一些研究。似乎只要我足够小心——我需要注意千万小心不被自大迷惑心智——就能找到完全$(l:patterns/great_spells/greater_sentinel)$(thing)绕开/$范围限制的方式。",
+
+ "mediaworks.entry.astral_utils": "魂灵实用图案",
+ "hexcasting.spell.book.mediaworks:astral_pos": "魂灵所处之精思",
+ "mediaworks.page.astral_utils.astral_pos": "返回我魂灵自我的“眼部”位置向量,和$(l:patterns/basics#hexcasting:entity_pos/eye)$(thing)指南针之纯化/$在物理身体上的效果相似。如果我并未处于投射状态,则返回 $(l:casting/influences)$(thing)Null/$。",
+ "hexcasting.spell.book.mediaworks:astral_look": "魂灵视线之精思",
+ "mediaworks.page.astral_utils.astral_look": "返回我魂灵自我所看的方向,和$(l:patterns/basics#hexcasting:get_entity_look)$(thing)照准仪之纯化/$在物理身体上的效果相似。如果我并未处于投射状态,则返回 $(l:casting/influences)$(thing)Null/$。",
+
+ "mediaworks.entry.macula": "黄斑蚀刻",
+ "mediaworks.entry.macula.desc": "$(l:patterns/basics#hexcasting:print)$(thing)揭示/$是个好图案,但偶尔我也想要些更灵活的手段。好在只需若干简单$(l:mediaworks:patterns/macula/macula_patterns)$(thing)图案/$,我就能将$(l:mediaworks:patterns/macula/macula_concepts#mediaworks:visages)$(thing)示像/$直接蚀刻到我眼内的$(l:mediaworks:patterns/macula/macula_concepts)$(thing)黄斑/$上,以此修改我的视觉。这些示像的运作方式与自然蚀刻入眼的基础信息(如生命值和快捷栏)类似。",
+
+ "mediaworks.entry.macula_concepts": "黄斑相关概念",
+ "mediaworks.page.macula_concepts.1": "黄斑是我眼球中蚀刻示像的位置。受其物理性质限制,黄斑不会在不同身体间继承(比如重生)。黄斑支持两种示像:能显示任意长时间的$(thing)长效示像/$,以及$(thing)短暂示像/$。短暂示像会在持续时间的最后一秒淡出,除非持续时间本身就不足 1 秒。不过,我的黄斑较为脆弱,无法同时承受超过 32 个示像,也不能接受持续超过 1 天的$(thing)短暂示像/$。",
+ "mediaworks.page.macula_concepts.2": "示像是描述我黄斑上视觉元素的通用词汇。蚀刻示像之前先要将其准备完善,$(l:mediaworks:patterns/macula/text_visages#mediaworks:visage/text/unbounded)$(thing)书法家之纯化/$就能做到。此类操作会产生$(thing)示像 iota/$,它们存有在黄斑上重现对应示像所需的信息。可以存储它们,也可直接将其$(l:mediaworks:patterns/macula/macula_patterns#mediaworks:macula/add)$(thing)蚀刻/$。",
+ "mediaworks.page.macula_concepts.2.title": "示像",
+ "mediaworks.page.macula_concepts.3": "示像的坐标对应着某种特殊 3 维空间中的位置,我将其创造性地称为$(thing)黄斑空间/$。这种空间类似于一个前面(Z 轴)面朝我的盒子,但仍有几点不同:$(li)我视野的左上角对应坐标 X = 0,Y = 0,也称作$(thing)黄斑原点/$。$(li)黄斑宽度和高度会随我$(t:游戏窗口的长宽,例如1920x1080分辨率下的480x270)$(thing)视野/$的变化而变化。$(li)不存在透视,因此 Z 坐标($(thing)深度/$)只决定重叠示像的遮挡关系。",
+ "mediaworks.page.macula_concepts.3.title": "黄斑空间",
+ "mediaworks.page.macula_concepts.4": "尽管向眼睛蚀刻事物不会对我造成太大影响,我还是应该小心谨慎减少失误,以免招致$(l:mediaworks:patterns/macula/black_eye)$(thing)黑眼/$事故。",
+ "mediaworks.page.macula_concepts.4.title": "注意事项",
+
+ "mediaworks.entry.macula_patterns": "黄斑图案",
+ "mediaworks.page.macula_patterns.macula_add": "在$(l:mediaworks:patterns/macula/macula_concepts#mediaworks:macula_space)$(thing)黄斑空间/$中给定位置显示示像。若提供显示时长(第三个参数),则显示为$(l:mediaworks:patterns/macula/macula_concepts)$(thing)短暂示像/$;否则显示为$(l:mediaworks:patterns/macula/macula_concepts)$(thing)长效示像/$。消耗极少量$(media)媒质/$。",
+ "mediaworks.page.macula_patterns.macula_clear": "迅速而无痛地清空我的黄斑。和承受$(l:mediaworks:patterns/macula/black_eye)$(thing)黑眼/$或垂死的痛苦相比要好很多。消耗极少量$(media)媒质/$。",
+ "mediaworks.page.macula_patterns.macula_dimensions": "返回当前的$(l:mediaworks:patterns/macula/macula_concepts#mediaworks:macula_space)$(thing)黄斑宽度和高度/$。任何足够复杂的黄斑运算均以其为基础。",
+
+ "mediaworks.entry.black_eye": "黑眼事故",
+ "mediaworks.page.black_eye.1": "试图在黄斑上显示超过 32 个示像,或试图显示持续时间超过 1 天的$(l:mediaworks:patterns/macula/macula_concepts)$(thing)短暂示像/$时出现。$(p)产生黑色火花,并损伤我的黄斑,清空其上所有示像并致盲几秒。$(p)$(italic)好在失明只是暂时的……",
+
+ "mediaworks.entry.text_visages": "文本示像",
+ "mediaworks.page.text_visages.1": "可显示任意文本的示像,行高恒定为 $(thing)9/$。它们能够捕获 iota 的$(italic)当前/$文本,是比$(l:patterns/basics#hexcasting:print)$(thing)揭示/$更加灵活的替代品。$(p)文本示像分为$(thing)未绑定/$和$(thing)绑定/$两种。前者可无限延伸,后者则会在超出最大宽度时换行,同时只会显示能在最大高度内完全显示的行。",
+ "hexcasting.spell.book.mediaworks:visage/text/unbounded": "书法家之纯化",
+ "mediaworks.page.text_visages.create_unbounded": "提取任意 iota 当前显示的文本,并创建一个未绑定文本示像 iota。",
+ "hexcasting.spell.book.mediaworks:visage/text/bounded": "书法家之提整",
+ "mediaworks.page.text_visages.create_bounded": "提取任意 iota 当前显示的文本,并创建一个绑定文本示像 iota,第一个数代表最大宽度,第二个代表最大高度。",
+
+ "mediaworks.entry.mediaworks_moreiotas": "媒质工程-更多 Iota",
+ "mediaworks.page.mediaworks_moreiotas.1": "似乎$(thing)字符串/$与$(l:mediaworks:patterns/macula/text_visages)$(thing)文本示像/$一起使用时会表现出特殊性质。具体而言,书法家图案会提取字符串本身,而非有色带引号的显示版本,同时也允许利用古老的$(l:https://minecraft.fandom.com/wiki/Formatting_codes)格式化/$方法。",
+ "mediaworks.page.mediaworks_moreiotas.2": "格式化文本只需要在“代码”前加上“$(thing)&/$”,而非小节号(一般无法打出)。所有不属于格式化代码的“$(thing)&/$”则保留原样。",
+
+ "mediaworks.entry.mediaworks_tweaks": "媒质工程的变化",
+ "mediaworks.page.mediaworks_tweaks.1": "近来,世界中的$(media)媒质/$流貌似稍有变化。它现在愈发……合适的用词应该是“便于操纵”?$(p)我新发现了一些传说,主要记载了施法者从$(thing)潜影盒/$中的物品抽取$(media)媒质/$的事迹,但这种现象只会在所有其他$(media)媒质/$源枯竭后发生。这些规则对$(l:items/phials)$(thing)媒质之瓶/$中的$(media)媒质/$似乎也同样有效。",
+ "mediaworks.page.mediaworks_tweaks.2": "选择$(media)媒质/$抽取槽位时也不会再按照物品组中$(media)媒质/$的总量的顺序依次抽取。也就是说,多次连续施法会优先消耗同一物品组,而非采用“负载均衡”策略,如此我的口袋便能更快清出空间。",
+ "mediaworks.page.mediaworks_tweaks.3": "佩戴于头盔槽或头饰槽的$(l:items/lens)$(thing)探知透镜/$现在也能凝聚咒术网格,和在另一只手中手持的效果相仿。然而,佩戴或持有多个透镜不会增强效果,佩戴 2 个乃至 3 个的效果和仅佩戴 1 个没什么不同。",
+
+ "mediaworks.entry.mediaworks_containers": "媒质工程容器",
+ "mediaworks.page.mediaworks_containers.1": "在$(italic)经模组修改的/$世界中,容器可能不只有$(thing)潜影盒/$一种。其中某些甚至也能以同样的方式成为$(media)媒质/$$(l:mediaworks:basics/mediaworks_tweaks)$(thing)源/$!如下是我整理的一份特殊容器列表。",
+
+ "mediaworks.page.magic_cloak.1": "许多文本都提及在地底深处的城市中,魔法大师们会穿着缀有羽毛的斗篷。这些斗篷是一位强大的法师给予他们的。那位法师成功将思绪嵌入了暗色织物的纤维之中,也正是这种织物制成了第一件羽织斗篷。$(p)倘若我真有机会找到一件,我会将后续发现一并记录在此。",
+ "mediaworks.page.magic_cloak.2": "世上竟然真有这种斗篷!在$(thing)深暗之域/$中经过难以想象的岁月后,织物本身的触感却新得出奇,织线存储 iota 的方式我到现在也没能复现。",
+ "mediaworks.page.magic_cloak.3": "$(thing)羽织斗篷/$的写入和读取操作与$(l:items/focus)$(thing)核心/$非常类似。不过,上蜡貌似没有什么作用。$(p)我还能在不脱下斗篷的情况下从中便捷地$(l:mediaworks:patterns/cloak_patterns#mediaworks:cloak/read)$(thing)读取/$,也算形貌非凡。",
+ "mediaworks.page.magic_cloak.4": "而谈及形貌非凡,斗篷本身可以被染成几乎任何一种颜色!这种织物会和普通的皮革装备一样吸收染料,但它可比皮革更适合我这种真正的法师。$(p)假若要去除其上的染料,放到炼药锅中清洗一遍即可。",
+ "mediaworks.page.magic_cloak.5": "然而,这还不是它能力的极限,$(italic)远远/$不及。我在阴暗潮湿的远古城市中发现过几本奇异的$(thing)附魔书/$,而且从未在别处发现过。也许通向强大力量之路就在附魔的秘密之中。$(p)我在后几页整理了羽织斗篷可用魔咒的列表。",
+ "mediaworks.page.magic_cloak.reciprocation.1": "每当我受到伤害,此魔咒会强制令斗篷回应复仇,也即自动运行其存储的 iota。空斗篷不会回应,而存有无法运行的 iota 的斗篷则会产生事故。",
+ "mediaworks.page.magic_cloak.reciprocation.2": "过度施法导致的生命值损失也会触发这种回应,如此就进入了某种“永动”循环,在极短的时间内耗尽我的意识。$(p)不过,若是它由于某种原因无法杀死我,这种回应便会在进行大概 50 次后停止。",
+ "mediaworks.page.magic_cloak.media_shield.1": "在外面附上防御层,并吸收一定比例的可格挡伤害,每级最多吸收 10%%。此效果会在护甲值计算开始前进行,且吸收的伤害会按照过度施法时生命值媒质代换比消耗等价的媒质。消耗媒质的方式与法杖施法相同。",
+ "mediaworks.page.magic_cloak.media_shield.2": "如果剩余的媒质不足以发挥全部能力,并且自然也无法从我身上强行逼出,则魔咒只会吸收可用媒质能吸收的伤害量。其余情况下,消耗媒质的方式与法杖施法相同。",
+ "mediaworks.page.magic_cloak.locale_magnification": "最为稀有的魔咒!不同等级会将我的基础影响范围分别无条件扩展 8、16、32 格。这种扩展对我的射线追踪(例如$(l:patterns/basics#hexcasting:raycast)$(thing)弓箭手之馏化/$)也有效!",
+ "mediaworks.page.magic_cloak.other_enchants": "羽织斗篷可穿戴,也会受损。那么推论可得,它同时也会接受同类物品(例如$(thing)鞘翅/$)可用的其他魔咒。",
+ "mediaworks.page.magic_cloak.other_enchants.title": "其他魔咒",
+ "mediaworks.page.magic_cloak.post": "$(italic)古代纸页上还有其他仓促写下的字……“他背叛了我们,他送给我们领袖的布匹只是解除我们武装的手段。幽匿将至。我得在无可挽回前离开。小心那些暗色的织物……”$(p)我应该远离此处和其中的珍宝。这些布料附有诅咒,任何强大能力带来的诱惑都无法否认这一点。$(p)但这又能坏到哪里去呢?/$",
+
+ "mediaworks.entry.media_patterns": "媒质工程",
+ "mediaworks.page.media_patterns.get_media": "返回当前咒术可用的$(media)媒质/$总量,以$(l:items/amethyst)$(item)紫水晶粉/$计,过度施法不计入。",
+ "mediaworks.page.media_patterns.get_entity_media.1": "返回物品实体中的$(media)媒质/$量,如果是玩家则返回其物品栏中的$(media)媒质/$量,以$(l:items/amethyst)$(item)紫水晶粉/$计。不适用则返回 0。",
+ "mediaworks.page.media_patterns.get_entity_media.2": "奇怪的是,$(l:items/hexcasting)$(thing)施法物品/$中的$(media)媒质/$量无法读取:它们不计入玩家的$(media)媒质/$总量。然而,这种隐秘在仔细的审视之下无所遁形:直接对施法物品的物品实体施放,则确实会返回其中的$(media)媒质/$量。",
+ "mediaworks.page.media_patterns.get_pos_media.1": "返回所给位置处容器中的$(media)媒质/$总量,以$(l:items/amethyst)$(item)紫水晶粉/$计。不适用则返回 0。对某种$(l:greatwork/impetus)$(thing)特殊的容器/$也有效。",
+ "mediaworks.page.media_patterns.get_pos_media.2": "容器中的$(l:items/hexcasting)$(thing)施法物品/$不计入$(media)媒质/$总量。",
+
+ "mediaworks.entry.cloak_patterns": "斗篷工程",
+ "mediaworks.page.cloak_patterns.cloak_read.1": "古代的故事描述了一位人物,他拥有无可比拟的伟力,却对行于日光下的万事万物温柔有加。他伟大成就的其中之一,便是以尘和羽编织出了第一份$(l:mediaworks:items/magic_cloak)$(thing)羽织斗篷/$织料。",
+ "mediaworks.page.cloak_patterns.cloak_read.2": "此图案可将身上羽织斗篷中所存的 iota 直接读出,不需再脱下后采用$(l:patterns/readwrite)$(thing)传统方法/$。"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/moreiotas/moreiotas/lang/en_us.json b/projects/1.19/assets/moreiotas/moreiotas/lang/en_us.json
new file mode 100644
index 000000000000..f655830285b7
--- /dev/null
+++ b/projects/1.19/assets/moreiotas/moreiotas/lang/en_us.json
@@ -0,0 +1,105 @@
+{
+ "hexcasting.iota.moreiotas:string": "String",
+ "hexcasting.iota.moreiotas:matrix": "Matrix",
+
+ "hexal.tooltip.string": "\"%s\"",
+
+ "hexcasting.spell.moreiotas:string/empty": "Blank Reflection",
+ "hexcasting.spell.moreiotas:string/space": "Spacing Reflection",
+ "hexcasting.spell.moreiotas:string/comma": "Comma Reflection",
+ "hexcasting.spell.moreiotas:string/newline": "Breaking Reflection",
+ "hexcasting.spell.moreiotas:string/block/get": "Reader's Purification",
+ "hexcasting.spell.moreiotas:string/block/set": "Write",
+ "hexcasting.spell.moreiotas:string/chat/caster": "Whisper Reflection",
+ "hexcasting.spell.moreiotas:string/chat/all": "Listener's Reflection",
+ "hexcasting.spell.moreiotas:string/chat/prefix/get": "Sifter's Reflection",
+ "hexcasting.spell.moreiotas:string/chat/prefix/set": "Sifter's Gambit",
+ "hexcasting.spell.moreiotas:string/iota": "Scrivener's Purification",
+ "hexcasting.spell.moreiotas:string/action": "Patternmaster's Purification",
+ "hexcasting.spell.moreiotas:string/name/get": "Moniker Purification",
+ "hexcasting.spell.moreiotas:string/name/set": "Name",
+ "hexcasting.spell.moreiotas:string/add": "Concatenation Distillation",
+ "hexcasting.spell.moreiotas:string/split": "Separation Distillation",
+ "hexcasting.spell.moreiotas:string/parse": "Input Purification",
+ "hexcasting.spell.moreiotas:string/find": "Discoverer's Distillation",
+ "hexcasting.spell.moreiotas:string/sub": "Winnowing Distillation",
+ "hexcasting.spell.moreiotas:string/len": "Length Distillation: Str",
+ "hexcasting.spell.moreiotas:string/case": "Case Distillation",
+
+ "hexcasting.spell.moreiotas:matrix/make": "Transformation Purification",
+ "hexcasting.spell.moreiotas:matrix/unmake": "Restoration Purification",
+ "hexcasting.spell.moreiotas:matrix/identity": "Identity Purification",
+ "hexcasting.spell.moreiotas:matrix/zero": "Zero Distillation",
+ "hexcasting.spell.moreiotas:matrix/rotation": "Rotation Distillation",
+ "hexcasting.spell.moreiotas:matrix/add": "Addition Distillation: Matrix",
+ "hexcasting.spell.moreiotas:matrix/mul": "Multiplication Distillation: Matrix",
+ "hexcasting.spell.moreiotas:matrix/transpose": "Transpose Purification",
+ "hexcasting.spell.moreiotas:matrix/inverse": "Inverse Purification",
+ "hexcasting.spell.moreiotas:matrix/determinant": "Determinant Purification",
+ "hexcasting.spell.moreiotas:matrix/concat/vert": "Tower Distillation",
+ "hexcasting.spell.moreiotas:matrix/concat/hori": "Sprawling Distillation",
+ "hexcasting.spell.moreiotas:matrix/split/vert": "Toppling Gambit",
+ "hexcasting.spell.moreiotas:matrix/split/hori": "Mitosis Gambit",
+
+ "hexcasting.spell.book.moreiotas:string/action": "Patternmaster's Prfct.",
+ "hexcasting.spell.book.moreiotas:string/len": "Length Dstl.: Str",
+
+ "hexcasting.spell.book.moreiotas:matrix/make": "Transformation Prfct.",
+ "hexcasting.spell.book.moreiotas:matrix/unmake": "Restoration Prfct.",
+ "hexcasting.spell.book.moreiotas:matrix/add": "Add. Dstl.: Matrix",
+ "hexcasting.spell.book.moreiotas:matrix/mul": "Mul. Dstl.: Matrix",
+
+ "moreiotas.entry.strings": "Strings",
+ "moreiotas.page.strings.string/empty": "Add an empty string to the stack, useful for combining with other strings.",
+ "moreiotas.page.strings.string/space": "Add a blank space string to the stack, useful for combining with other strings.",
+ "moreiotas.page.strings.string/comma": "Add a comma string to the stack, useful for combining with other strings.",
+ "moreiotas.page.strings.string/newline": "Add a string to the stack representing a break between lines, useful for combining with other strings.",
+ "moreiotas.page.strings.string/block/get": "Removes a vector from the stack. If that vector is pointing at a sign or lectern, it returns that sign or lectern's text to the stack. Otherwise, it returns null.",
+ "moreiotas.page.strings.string/block/set": "Removes a vector and a string from the stack. If that vector is pointing at a sign or lectern, it writes that string to that sign or lectern. Costs a hundredth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "moreiotas.page.strings.string/chat/caster": "Adds the last message the caster sent to the stack as a string.",
+ "moreiotas.page.strings.string/chat/all": "Adds the last message anyone sent to the stack as a string.",
+ "moreiotas.page.strings.string/chat/prefix/set": "Accepts a string; All future chat messages starting with that string won't be seen by others, and only messages prefixed with that string can be read by $(l:moreiotas:patterns/strings#moreiotas:string/chat/caster)$(action)Whisper Reflection/$.",
+ "moreiotas.page.strings.string/chat/prefix/get": "Returns the last string you passed to $(l:moreiotas:patterns/strings#moreiotas:string/chat/prefix/set)$(action)Sifter's Gambit/$.",
+ "moreiotas.page.strings.string/iota": "Converts the iota on top of the stack into a string.",
+ "moreiotas.page.strings.string/action": "Converts the pattern on top of the stack into the string for that pattern's name. If there is no action associated with that pattern, or if the associated pattern is a Great Spell, it returns null.",
+ "moreiotas.page.strings.string/name/get": "Takes an entity and returns that entity's name. If it is an item entity, return the item's name.",
+ "moreiotas.page.strings.string/name/set": "Takes a string and an entity, and sets that entities name to the given string. If the entity is an item entity, also set the item's name. Costs a hundredth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
+ "moreiotas.page.strings.string/add": "Removes the top two strings from the stack and combines them together.",
+ "moreiotas.page.strings.string/split": "Removes the top two strings from the stack and splits the first string, using the second string as the delimiter and returning as a list.",
+ "moreiotas.page.strings.string/parse": "Removes a string from the top of the stack and returns the number that string parses as (or null if it doesn't parse).",
+ "moreiotas.page.strings.string/find": "Removes two strings from the top of the stack, and returns the first index of the first string where the second string is a substring.",
+ "moreiotas.page.strings.string/sub": "Removes a string and two positive integers from the top of the stack, and returns the substring from the first to the second (inclusive first, exclusive second).",
+ "moreiotas.page.strings.string/len": "Removes a string and returns its length.",
+ "moreiotas.page.strings.string/case": "Removes a string and a bool or null. If it was true, return the string in upper case. If false, lowercase. If null, toggle each character's case.",
+
+ "moreiotas.entry.matrices": "Matrices",
+ "moreiotas.page.matrices.0": "Matrices are a helpful tool for manipulating vectors to do as I wish, able to represent any linear transformation that can be applied to a vector. Of note with these patterns is that many are forgiving with their inputs, accepting in place of matrices things that can be easily mapped to matrices, namely numbers and vectors.",
+ "moreiotas.page.matrices.1": "For example, attempting to multiply a 3x3 matrix with a vector, rather than mishapping, will return a new vector. For more information on how to make use of matrices to their fullest potential, the below is a helpful resource.",
+ "moreiotas.page.matrices.1.link_text": "3blue1brown",
+ "moreiotas.page.matrices.matrix/make.0": "Converts the iota on top of the stack into a matrix. This iota can be a number, vector, or list.",
+ "moreiotas.page.matrices.matrix/make.1": "If it is a number, it becomes a 1x1 matrix. If it's a vector, it becomes a 3x1 matrix. If it's a list, it must be a list of purely numbers, purely vectors, or purely lists of numbers (each of which must be the same length). If it's a list of numbers it'll be 1 by n, if it's a list of vectors it'll be 3 by n, and if it's a list of lists it'll be n by m, where n is the inner list length and m is the outer list length.",
+ "moreiotas.page.matrices.matrix/unmake.0": "Converts the iota on top of the stack back from a matrix into a number, vector, or list depending on the vector's size.",
+ "moreiotas.page.matrices.matrix/unmake.1": "A 1x1 matrix will become a number. A 1x3 or 3x1 matrix will become a vector. A 3 by n or n by 3 matrix will become a list of vectors, and any matrix not covered by the previous will become a list of list of numbers, with each inner list being one column of the matrix.",
+ "moreiotas.page.matrices.matrix/identity": "Accepts a positive integer n, and returns an n by n matrix with 1 along the diagonal and 0 elsewhere.",
+ "moreiotas.page.matrices.matrix/zero": "Accepts positive integers n and m, and returns an n by m matrix of zeros.",
+ "moreiotas.page.matrices.matrix/rotation": "Accepts a vec v and number θ, and returns a matrix representing rotating by θ radians around v.",
+ "moreiotas.page.matrices.matrix/add": "Adds two matrices together; they must have the same number of columns and rows.",
+ "moreiotas.page.matrices.matrix/mul": "Multiplies the first n by m matrix with an m by p matrix.",
+ "moreiotas.page.matrices.matrix/transpose": "Accepts an n by m matrix and returns an m by n matrix where every entry has been flipped along the diagonal.",
+ "moreiotas.page.matrices.matrix/inverse": "Accepts an n by n matrix and returns the n by n matrix such that in*out = identity.",
+ "moreiotas.page.matrices.matrix/determinant": "Accepts a square matrix and returns the determinant of that matrix. Mishaps for matrices larger than 4x4.",
+ "moreiotas.page.matrices.matrix/concat/vert": "Accepts an n by m matrix and an n by p matrix and produces an n by (m+p) matrix by putting the first matrix on top of the second.",
+ "moreiotas.page.matrices.matrix/concat/hori": "Accepts an m by n matrix and a p by n matrix and produces an (m+p) by n matrix by putting the first matrix to the left of the second.",
+ "moreiotas.page.matrices.matrix/split/vert": "Accepts an n by m matrix and an int from 0 to n, and returns two matrices created by splitting the input matrix vertically at the inputted int.",
+ "moreiotas.page.matrices.matrix/split/hori": "Accepts an n by m matrix and an int from 0 to m, and returns two matrices created by splitting the input matrix horizontally at the inputted int.",
+
+
+ "hexcasting.mishap.invalid_value.class.string": "a string",
+ "hexcasting.mishap.invalid_value.class.matrix": "a matrix",
+ "hexcasting.mishap.invalid_value.class.matrix.square": "a square matrix",
+ "hexcasting.mishap.invalid_value.class.numvecmat": "a number, vector, or matrix",
+ "hexcasting.mishap.invalid_value.class.possible_matrix": "an iota able to be converted to a matrix",
+ "hexcasting.mishap.invalid_value.matrix.wrong_size": "a matrix %s by %s",
+ "hexcasting.mishap.invalid_value.matrix.max_size": "a final matrix less than %1$d by %1$d, was %2$d by %3$d",
+ "hexcasting.mishap.invalid_value.string.max_size": "a string less than %d chars long, was %d"
+}
\ No newline at end of file
diff --git a/projects/1.19/assets/moreiotas/moreiotas/lang/zh_cn.json b/projects/1.19/assets/moreiotas/moreiotas/lang/zh_cn.json
new file mode 100644
index 000000000000..78c26c003470
--- /dev/null
+++ b/projects/1.19/assets/moreiotas/moreiotas/lang/zh_cn.json
@@ -0,0 +1,105 @@
+{
+ "hexcasting.iota.moreiotas:string": "字符串",
+ "hexcasting.iota.moreiotas:matrix": "矩阵",
+
+ "hexal.tooltip.string": "\"%s\"",
+
+ "hexcasting.spell.moreiotas:string/empty": "空串之精思",
+ "hexcasting.spell.moreiotas:string/space": "空格之精思",
+ "hexcasting.spell.moreiotas:string/comma": "逗点之精思",
+ "hexcasting.spell.moreiotas:string/newline": "断句之精思",
+ "hexcasting.spell.moreiotas:string/block/get": "读者之纯化",
+ "hexcasting.spell.moreiotas:string/block/set": "书写",
+ "hexcasting.spell.moreiotas:string/chat/caster": "耳语之精思",
+ "hexcasting.spell.moreiotas:string/chat/all": "听者之精思",
+ "hexcasting.spell.moreiotas:string/chat/prefix/get": "筛具之精思",
+ "hexcasting.spell.moreiotas:string/chat/prefix/set": "筛具之策略",
+ "hexcasting.spell.moreiotas:string/iota": "代笔人之纯化",
+ "hexcasting.spell.moreiotas:string/action": "图案师之纯化",
+ "hexcasting.spell.moreiotas:string/name/get": "名号之纯化",
+ "hexcasting.spell.moreiotas:string/name/set": "命名",
+ "hexcasting.spell.moreiotas:string/add": "接串之馏化",
+ "hexcasting.spell.moreiotas:string/split": "分串之馏化",
+ "hexcasting.spell.moreiotas:string/parse": "输入之纯化",
+ "hexcasting.spell.moreiotas:string/find": "发现者之馏化",
+ "hexcasting.spell.moreiotas:string/sub": "簸具之提整",
+ "hexcasting.spell.moreiotas:string/len": "长度之纯化:字符串",
+ "hexcasting.spell.moreiotas:string/case": "大小写之馏化",
+
+ "hexcasting.spell.moreiotas:matrix/make": "组阵之纯化",
+ "hexcasting.spell.moreiotas:matrix/unmake": "解阵之纯化",
+ "hexcasting.spell.moreiotas:matrix/identity": "单位阵之纯化",
+ "hexcasting.spell.moreiotas:matrix/zero": "零阵之馏化",
+ "hexcasting.spell.moreiotas:matrix/rotation": "旋转阵之馏化",
+ "hexcasting.spell.moreiotas:matrix/add": "加法之馏化:矩阵",
+ "hexcasting.spell.moreiotas:matrix/mul": "乘法之馏化:矩阵",
+ "hexcasting.spell.moreiotas:matrix/transpose": "转置之纯化",
+ "hexcasting.spell.moreiotas:matrix/inverse": "逆阵之纯化",
+ "hexcasting.spell.moreiotas:matrix/determinant": "行列式之纯化",
+ "hexcasting.spell.moreiotas:matrix/concat/vert": "纵接之馏化",
+ "hexcasting.spell.moreiotas:matrix/concat/hori": "横拼之馏化",
+ "hexcasting.spell.moreiotas:matrix/split/vert": "倒坠之策略",
+ "hexcasting.spell.moreiotas:matrix/split/hori": "有丝分裂之策略",
+
+ "hexcasting.spell.book.moreiotas:string/action": "图案师之纯化",
+ "hexcasting.spell.book.moreiotas:string/len": "长度之纯化:字符串",
+
+ "hexcasting.spell.book.moreiotas:matrix/make": "组阵之纯化",
+ "hexcasting.spell.book.moreiotas:matrix/unmake": "解阵之纯化",
+ "hexcasting.spell.book.moreiotas:matrix/add": "加法之馏化:矩阵",
+ "hexcasting.spell.book.moreiotas:matrix/mul": "乘法之馏化:矩阵",
+
+ "moreiotas.entry.strings": "字符串",
+ "moreiotas.page.strings.string/empty": "压入一个空字符串。其在与其他字符串连接方面十分有用。",
+ "moreiotas.page.strings.string/space": "压入一个由单个空格组成的字符串。其在与其他字符串连接方面十分有用。",
+ "moreiotas.page.strings.string/comma": "压入一个由单个半角逗号组成的字符串。其在与其他字符串连接方面十分有用。",
+ "moreiotas.page.strings.string/newline": "压入一个由单个换行符组成的字符串。其在与其他字符串连接方面十分有用。",
+ "moreiotas.page.strings.string/block/get": "移除栈顶向量,若该向量坐标处有一告示牌或讲台,返回其上文本。否则返回 Null。",
+ "moreiotas.page.strings.string/block/set": "移除栈顶向量和字符串。若该向量坐标处有一告示牌或讲台,则会将所给字符串写至其上。消耗 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "moreiotas.page.strings.string/chat/caster": "将施法者发至聊天框的最后一条消息作为字符串压入栈顶。",
+ "moreiotas.page.strings.string/chat/all": "将任何人发至聊天框的最后一条消息作为字符串压入栈顶。",
+ "moreiotas.page.strings.string/chat/prefix/set": "接受一个字符串。所有此后发出的以此字符串起始的消息将不再可见。同时,$(l:moreiotas:patterns/strings#moreiotas:string/chat/caster)$(action)耳语之精思/$也将只能读取上述不再可见的消息。",
+ "moreiotas.page.strings.string/chat/prefix/get": "返回上一次传给$(l:moreiotas:patterns/strings#moreiotas:string/chat/prefix/set)$(action)筛具之策略/$的字符串。",
+ "moreiotas.page.strings.string/iota": "将栈顶元素转换为字符串。",
+ "moreiotas.page.strings.string/action": "将栈顶图案转换为其名称。如果该图案不对应任何操作,或对应的操作是卓越法术,则返回 Null。",
+ "moreiotas.page.strings.string/name/get": "接受栈顶实体,并返回其名称。若为物品实体,则返回物品的名称。",
+ "moreiotas.page.strings.string/name/set": "接受栈顶字符串和实体,并将该实体的名称设定为该字符串。若为物品实体,则会同时更改物品的名称。消耗 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "moreiotas.page.strings.string/add": "移除栈顶两字符串,并将其连接。",
+ "moreiotas.page.strings.string/split": "移除栈顶两字符串,并以第二个字符串为分隔符拆分第一个字符串,结果作为列表返回。",
+ "moreiotas.page.strings.string/parse": "移除栈顶字符串,并返回字符串所解析得的数(若无法解析则返回 Null)。",
+ "moreiotas.page.strings.string/find": "移除栈顶两字符串,并返回第二个字符串在第一个字符串中第一次出现的位置下标。",
+ "moreiotas.page.strings.string/sub": "移除栈顶字符串和两个数,并返回字符串中下标从第一个数(含)到第二个数(不含)间的子串。",
+ "moreiotas.page.strings.string/len": "移除栈顶字符串,并返回其长度。",
+ "moreiotas.page.strings.string/case": "移除栈顶字符串和布尔值(Null 也可)。若为 True,将字符串改为全大写并返回;若为 False,则改为全小写;若为 Null,则更改所有字符的大小写。",
+
+ "moreiotas.entry.matrices": "矩阵",
+ "moreiotas.page.matrices.0": "矩阵是操纵向量的好帮手,它们能表示任何可作用于向量的线性变换。需注明的是,本条目里的图案在所接受 iota 的类型方面十分随和,它们会接受任何可直接映射为矩阵的 iota,如数和向量。",
+ "moreiotas.page.matrices.1": "例如,将一 3x3 矩阵与一向量相乘不会产生事故,而是会返回一个新向量。更多有关发掘矩阵潜能的信息可参见下方链接(译注:B 站官方账号同视频见$(l:https://www.bilibili.com/video/BV1ns41167b9)此/$和$(l:https://www.bilibili.com/video/BV1ys411472E?p=4)此/$)。",
+ "moreiotas.page.matrices.1.link_text": "3blue1brown",
+ "moreiotas.page.matrices.matrix/make.0": "将栈顶元素转换为矩阵。接受数、向量和列表。",
+ "moreiotas.page.matrices.matrix/make.1": "若该 iota 为数,其将变为 1x1 的矩阵。若该 iota 为向量,其将变为 3x1 的矩阵。若该 iota 为列表,则其需为一完全由数组成,或完全由向量组成,或完全由仅含数的列表(所有列表需等长)组成的列表。若组成元素为数,其将变为 1xn 的矩阵;若组成元素为向量,其将变为 3xn 的矩阵;若组成元素为列表,则变为 nxm 的矩阵,其中 n 为内层列表长度,m 为外层列表长度。",
+ "moreiotas.page.matrices.matrix/unmake.0": "将栈顶矩阵依其长宽转换为数、向量或列表。",
+ "moreiotas.page.matrices.matrix/unmake.1": "1x1 矩阵会变成数。1x3 或 3x1 矩阵会变成向量。3xn 或 nx3 矩阵会变成由向量组成的列表。所有其余矩阵会变成由仅含数的列表组成的列表,内层列表长度为矩阵列数。",
+ "moreiotas.page.matrices.matrix/identity": "接受一个正整数 n,返回一 n 阶单位矩阵(即主对角线处为 1,其余各处为 0 的方阵)。",
+ "moreiotas.page.matrices.matrix/zero": "接受两个正整数,返回一 nxm 的零矩阵(即处处为 0 的矩阵)。",
+ "moreiotas.page.matrices.matrix/rotation": "接受一向量 v 与一数 θ,返回对应以 v 为轴正向旋转 θ 弧度的旋转矩阵。",
+ "moreiotas.page.matrices.matrix/add": "将两矩阵相加。两矩阵的长宽必须一致。",
+ "moreiotas.page.matrices.matrix/mul": "将一 nxm 矩阵与一 mxp 矩阵相乘。",
+ "moreiotas.page.matrices.matrix/transpose": "接受一 nxm 矩阵并返回一 mxn 矩阵,其中所有元素按主对角线对称翻转。",
+ "moreiotas.page.matrices.matrix/inverse": "接受一 nxn 矩阵并返回一 nxn 矩阵,使得原矩阵和返回矩阵相乘得单位矩阵。",
+ "moreiotas.page.matrices.matrix/determinant": "接受一方阵并返回其行列式。若对 4x4 以上方阵使用,则会产生事故。",
+ "moreiotas.page.matrices.matrix/concat/vert": "接受一 mxn 矩阵与一 pxn 矩阵,返回一 (m+p)xn 矩阵,其中第一个矩阵位于第二个矩阵上方。",
+ "moreiotas.page.matrices.matrix/concat/hori": "接受一 nxm 矩阵与一 nxp 矩阵,返回一 nx(m+p) 矩阵,其中第一个矩阵位于第二个矩阵左方。",
+ "moreiotas.page.matrices.matrix/split/vert": "接受一 nxm 矩阵与一 0 到 n 间的整数,返回由原矩阵在所给整数行处上下分割所得的两个矩阵。",
+ "moreiotas.page.matrices.matrix/split/hori": "接受一 nxm 矩阵与一 0 到 m 间的整数,返回由原矩阵在所给整数列处左右分割所得的两个矩阵。",
+
+
+ "hexcasting.mishap.invalid_value.class.string": "一个字符串",
+ "hexcasting.mishap.invalid_value.class.matrix": "一个矩阵",
+ "hexcasting.mishap.invalid_value.class.matrix.square": "一个方阵",
+ "hexcasting.mishap.invalid_value.class.numvecmat": "一个数、向量或矩阵",
+ "hexcasting.mishap.invalid_value.class.possible_matrix": "一个可转换为矩阵的iota",
+ "hexcasting.mishap.invalid_value.matrix.wrong_size": "一个%sx%s的矩阵",
+ "hexcasting.mishap.invalid_value.matrix.max_size": "一个小于%1$dx%1$d的矩阵,而实际为%2$dx%3$d",
+ "hexcasting.mishap.invalid_value.string.max_size": "一个长度小于%d字符的字符串,而实际长度为%d"
+}
diff --git a/projects/1.19/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.19/assets/oneironaut/oneironaut/lang/en_us.json
new file mode 100644
index 000000000000..67d82f18556b
--- /dev/null
+++ b/projects/1.19/assets/oneironaut/oneironaut/lang/en_us.json
@@ -0,0 +1,355 @@
+{
+ "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
+ "hexcasting.spell.oneironaut:getdim1": "Spatial Reflection",
+ "hexcasting.spell.oneironaut:getdim2": "Spatial Reflection II",
+ "hexcasting.spell.oneironaut:getdimoverworld": "Homeland Reflection",
+ "hexcasting.spell.oneironaut:getdimnether": "Inferno Reflection",
+ "hexcasting.spell.oneironaut:getdimheight": "Atlas' Decomposition",
+ "hexcasting.spell.oneironaut:getdimscale": "Ratio Purification",
+ "hexcasting.spell.oneironaut:dimteleport": "Noetic Gateway",
+ "hexcasting.spell.oneironaut:infusemedia": "Media Infusion",
+ "hexcasting.spell.oneironaut:swapspace": "Spatial Interchange",
+ "hexcasting.spell.oneironaut:paintconjured": "Externalize Pigment",
+ "hexcasting.spell.oneironaut:craftrod": "Conduct Rod",
+ "hexcasting.spell.oneironaut:getrodlook": "Baton Reflection",
+ "hexcasting.spell.oneironaut:getrodpos": "Baton Reflection II",
+ "hexcasting.spell.oneironaut:getrodstamp": "Metronome Reflection",
+ "hexcasting.spell.oneironaut:delayrod": "Metronome Gambit",
+ "hexcasting.spell.oneironaut:haltrod": "Finale",
+ "hexcasting.spell.oneironaut:resetrod": "Encore",
+ "hexcasting.spell.oneironaut:readrodram": "Williams' Reflection",
+ "hexcasting.spell.oneironaut:writerodram": "Williams' Gambit",
+ "hexcasting.spell.oneironaut:readrodramremote": "Williams' Reflection II",
+ "hexcasting.spell.oneironaut:writerodramremote": "Williams' Gambit II",
+ "hexcasting.spell.oneironaut:queryrod": "Conductor's Reflection",
+ "hexcasting.spell.oneironaut:rodloopactive": "Conductor's Reflection II",
+ "hexcasting.spell.oneironaut:craftbottomlesstrinket": "Craft Bottomless Trinket",
+ "hexcasting.spell.oneironaut:readframerotation": "Decorator's Purification",
+ "hexcasting.spell.oneironaut:setframerotation": "Decorator's Gambit",
+ "hexcasting.spell.oneironaut:writeidea": "Inscribe Idea",
+ "hexcasting.spell.oneironaut:readidea": "Retrieve Idea",
+ "hexcasting.spell.oneironaut:readideatime": "Metadata Purification",
+ "hexcasting.spell.oneironaut:readideawriter": "Metadata Distillation",
+ "hexcasting.spell.oneironaut:particleburst": "Particle Burst",
+ "hexcasting.spell.oneironaut:readsentinel": "Scrutinize Sentinel",
+ "hexcasting.spell.oneironaut:resistdetection": "Stealth Shroud",
+ "hexcasting.spell.oneironaut:detectshroud": "Discern Shroud",
+ "hexcasting.spell.oneironaut:invisibility": "Hidden Sun's Zenith",
+ "hexcasting.spell.oneironaut:circle": "Circle",
+ "hexcasting.spell.oneironaut:getstatus": "Apothecary's Prfn.",
+ "hexcasting.spell.oneironaut:getstatuscategory": "Apothecary's Prfn. II",
+ "hexcasting.spell.oneironaut:getstatusduration": "Pharmacist's Dstln.",
+ "hexcasting.spell.oneironaut:getstatuslevel": "Pharmacist's Dstln. II",
+ "hexcasting.spell.oneironaut:getbystatus": "Zone Exltn.: Status",
+ "hexcasting.spell.oneironaut:getbystatusinverse": "Zone Exltn.: Not-Status",
+ "hexcasting.spell.oneironaut:getbystatussingle": "Entity Distillation: Status",
+ "hexcasting.spell.oneironaut:removestatus": "Cleanse Status",
+ "hexcasting.spell.oneironaut:applymindrender": "Empower Mind Render",
+ "hexcasting.spell.oneironaut:reviveflayed": "Instill Psyche",
+ "hexcasting.spell.oneironaut:advanceautomaton": "Cellular Generation",
+ "hexcasting.spell.oneironaut:filteredentityraycast": "Scout's Exaltation",
+ "hexcasting.spell.oneironaut:gaussianrand": "Entropy Reflection II",
+ "hexcasting.spell.oneironaut:applynotmissing": "Uplifting Resonance",
+ "hexcasting.spell.oneironaut:getsoulprint": "Soulprint Reflection",
+ "hexcasting.spell.oneironaut:signitem": "Sign Item",
+ "hexcasting.spell.oneironaut:checksignature": "Signature Purification",
+
+ "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
+ "item.oneironaut.pseudoamethyst_shard": "Pseudoamethyst Shard",
+ "item.oneironaut.shifting_pseudoamethyst": "Shifting Pseudoamethyst",
+ "item.oneironaut.thought_slurry_bucket": "Thought Slurry Bucket",
+ "item.oneironaut.reverberation_rod": "Reverberation Rod",
+ "item.oneironaut.endless_phial": "Inexhaustible Phial",
+ "item.oneironaut.bottomless_trinket": "Bottomless Trinket",
+ "item.oneironaut.echo_staff": "Echo Staff",
+ "item.oneironaut.beacon_staff": "Magitech Staff",
+ "item.oneironaut.spoon_staff": "Spoon",
+ "item.oneironaut.pigment_flame": "Flame Pigment",
+ "item.oneironaut.pigment_echo": "Echo Pigment",
+ "item.oneironaut.pigment_noosphere": "Noetic Pigment",
+ "item.oneironaut.memory_fragment": "Memory Fragment",
+ "item.oneironaut.memory_fragment.all": "It seems I've consumed all the memories that this crystal can offer me...",
+ "item.oneironaut.wisp_capture_device": "Wisp Wrangler",
+ "item.oneironaut.mind_scalpel": "Synaptic Scalpel",
+ "item.oneironaut.monkfruit": "Monkfruit",
+ "item.oneironaut.rending_thorns": "Rending Thorns",
+
+ "block.oneironaut.noosphere_gate": "Inscrutable Rift",
+ "block.oneironaut.pseudoamethyst_block": "Pseudoamethyst Block",
+ "block.oneironaut.pseudoamethyst_cluster": "Pseudoamethyst Cluster",
+ "block.oneironaut.pseudoamethyst_bud_small": "Small Pseudoamethyst Bud",
+ "block.oneironaut.pseudoamethyst_bud_medium": "Medium Pseudoamethyst Bud",
+ "block.oneironaut.pseudoamethyst_bud_large": "Large Pseudoamethyst Bud",
+ "block.oneironaut.thought_slurry": "Thought Slurry",
+ "block.oneironaut.thought_slurry_flowing": "Flowing Thought Slurry",
+ "block.oneironaut.noosphere_basalt": "Noosphere Basalt",
+ "block.oneironaut.wisp_lantern": "Wisp Lantern",
+ "block.oneironaut.wisp_lantern_tinted": "Tinted Wisp Lantern",
+ "block.oneironaut.super_budding": "Budding Pseudoamethyst",
+ "block.oneironaut.sentinel_sensor": "Sentinel Sensor",
+ "block.oneironaut.raycast_blocker": "Anti-Raycast Slate",
+ "block.oneironaut.raycast_blocker_glass": "Anti-Raycast Glass",
+ "block.oneironaut.sentinel_trap": "Seer Impetus",
+ "block.oneironaut.circle": "§0§oCircle",
+ "block.oneironaut.hex_resistant_block": "Hex-Warded Obsidian",
+ "block.oneironaut.media_ice": "Sagely Ice",
+ "block.oneironaut.media_ice_frosted": "Transient Sagely Ice",
+ "block.oneironaut.media_gel": "Plasmodial Psyche",
+ "block.oneironaut.cell": "Dissonant Psyche",
+ "block.oneironaut.wisp_battery": "Wisp Weaver",
+ "block.oneironaut.decorative_wisp_battery": "Lesser Wisp Weaver",
+ "block.oneironaut.hover_elevator": "Hexcaster's Hoverlift",
+ "block.oneironaut.hover_repeater": "Hoverlift Repeater",
+ "block.oneironaut.monkfruit_bush": "Monkfruit Bush",
+
+ "fluid.oneironaut.thought_slurry": "Thought Slurry",
+
+ "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
+ "oneironaut.entry.dim_iotas": "Dimension Iotas",
+ "oneironaut.entry.status_iotas": "Status Iotas",
+ "oneironaut.entry.noosphere_main": "A Strange Realm",
+ "oneironaut.entry.noosphere_materials": "Thoughtful Materials",
+ "oneironaut.entry.wisp_lanterns": "Wisp Devices",
+ "oneironaut.entry.slipway_hint": "A Reflection on Slipways",
+ "oneironaut.entry.miscpatterns": "Misc. Oneironaut Patterns",
+ "oneironaut.entry.super_budding": "Better Media Farming",
+ "oneironaut.entry.idea_inscription": "Idea Inscription",
+ "oneironaut.entry.sentinel_detection": "Sentinel Detection",
+ "oneironaut.entry.detection_shielding": "Nondetection",
+ "oneironaut.entry.raycast_assailant": "Anti-Hex Blocks",
+ "oneironaut.entry.mindrender": "Mind Render",
+ "oneironaut.entry.soulprints": "Soulprints",
+ "oneironaut.entry.hover_elevator": "Hoverlifts",
+ "oneironaut.entry.flayrevival": "Artificial Minds",
+
+ "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
+ "oneironaut.page.spaceswap.1": "Accepts two lists of two vectors, to define two cuboids, and a Spatial Imprint. These cuboids must have the exact same dimensions and rotation.",
+ "oneironaut.page.spaceswap.2": "I'm not quite sure what this one is supposed to do, it's always yelling at me about special dimensions. Perhaps it needs to use this special dimension as an intermediary?",
+ "oneironaut.page.spaceswap.3": "Exchanges the blocks within the first cuboid in your current dimension (which must be within ambit) for the blocks within the second cuboid in the dimension corresponding to the Spatial Imprint. $(l:https://www.desmos.com/calculator/ydbg8zhmyp)Cost (in amethyst dust) is logarithmic for the first 1001 blocks, after which it increases linearly$(/l).$(br)Will not exchange any unbreakable blocks.$(br)One or both of the endpoint dimensions must be the noosphere.",
+ "oneironaut.page.spaceswap.4": "One or both of the endpoint dimensions must be the noosphere.",
+ "oneironaut.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
+ "oneironaut.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
+ "oneironaut.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
+ "hexcasting.spell.oneironaut:dimteleport.samedim": "The spell does not do anything, similar to if I told someone to go home, when they were already at home.",
+ "oneironaut.page.dim_iotas.1": "I've descovered a kind of iota which seems to represent a layer of reality itself. In lieu of better understanding, I've decided to call these Spatial Imprints.",
+ "oneironaut.page.dim_iotas.2": "Returns a Spatial Imprint representing the dimension I am currently in. Costs a negligible amount of media.",
+ "oneironaut.page.dim_iotas.3": "Returns a Spatial Imprint representing the dimension my sentinel is currently in. Costs one-tenth of an amethyst dust.",
+ "oneironaut.page.dim_iotas.4": "Returns a Spatial Imprint representing the overworld. Costs one-tenth of an amethyst dust.",
+ "oneironaut.page.dim_iotas.5": "Returns a Spatial Imprint representing the nether. Costs one-tenth of an amethyst dust.$(br)There seems to be some resistance when I cast this. Perhaps I'll be able to overcome it with $(#54398a)greater skill$()...",
+ "oneironaut.page.dim_iotas.6": "Accepts a Spatial Imprint, and returns the lowest and highest altitudes at which blocks can exist in the corresponding dimension.",
+ "oneironaut.page.dim_iotas.7": "Accepts a Spatial Imprint, and returns how many blocks you'd have to travel in the overworld to travel the equivalent of one block in the input dimension.",
+ "oneironaut.page.dimteleport.1": "Accepts an entity and a Spatial Imprint and teleports the entity to its position in the proper dimension. Generally costs 20 Charged Amethyst.$(br)Will fail if supplied a player other than myself.",
+ "oneironaut.page.dimteleport.2": "If I use this to return to a dimension that I previously left within the same instant, the cost drops to five amethyst dust, as the spell can take advantage of a lingering strand of media leading back to my original position. Otherwise, it will attempt to find a safe spot to deposit me, potentially conjuring a block to prevent me from falling to my doom.$(br2)Strangely, I feel an odd sense of acceleration when transporting myself this way, along some incomprehensible axis.",
+ "oneironaut.page.infusemedia.1": "Accepts a vector and infuses media into the corresponding block in order to transmute it. Cost and exact effect vary depending on target.",
+ "oneironaut.page.infusemedia.2": "Conceptually, this spell is quite similar to $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l).$(br)However, the media that the target block receives is far more finely-tuned, and can thus achieve far more interesting results.",
+ "oneironaut.page.wisp_lanterns.1": "I've found that by using materials unique to the Noosphere, I can create a special jar capable of producing and containing a tiny wisp. While this wisp cannot cast anything, it emits quite a bit of light, and will mimic pigments shown to it.$(br)I can also craft a version with tinted glass, in case the wisp's light would disrupt my study's aesthetic.",
+ "oneironaut.page.wisp_lanterns.2": "Additionally, by feeding this illumination wisp significant amounts of media, I can cause it to undergo mitosis, with the newly-created wisp being seemingly-identical to the wandering wisps produced by slipways.$(br2)The device to split the wisp in this way can be fed media-bearing items via hoppers or similar, and is capable of storing 640 charged amethyst worth of media.",
+ "oneironaut.page.wisp_lanterns.3": "Simply apply a redstone signal to activate. Produces a wisp every four seconds, and consumes two charged amethyst to do so.$(br)The capacity and fill level of the phial used make no difference.",
+ "oneironaut.page.wisp_lanterns.4": "Alternatively, I can create a version which does not consume (or accept) any media, but produces wisps which yield only net-zero media when consumed.$(br2)All the sparkly shiny orbs, none of the prohibitive cost!",
+ "oneironaut.page.wisp_lanterns.5.originaltoolong": "Using similar principles, I've designed a device which can capture (and contain) wisps for their eventual release, though it does not work on wandering wisps due to their instability.$(br)Capturing one of my own wisps always consumes one amethyst shard worth of its (rechargable) 64-charged capacity, and capturing someone else's costs half again as much media as it contains. To capture a wisp, I must simply use the item on a wisp, and it will be sucked into the housing(assuming it has sufficient media and does not already contain a wisp).",
+ "oneironaut.page.wisp_lanterns.5": "Using similar principles, I've designed a device which captures, stores, and releases wisps, though it does not work on unstable wandering wisps. Capturing one of my own wisps consumes one amethyst shard from its battery. Capturing someone else's wisp costs half again the media it contains. To capture a wisp, I must simply use the device on it, assuming it has enough media and isn't already occupied.",
+ "oneironaut.page.wisp_lanterns.6": "When releasing a cyclic wisp, it is placed on the side of the block I use the item on. Projectile wisps are launched from my face, retaining their previous speed (but not direction). To discard a contained wisp, I need only use the item while crouching.",
+ "oneironaut.page.wisp_lanterns.7": "To initalize the device's media battery, I must use it on one of my own wisps, which will irretrievably consume it and set the battery's capacity to the wisp's stored media value, rounded up to the nearest dust. Should I wish to reset this (along with everything else about the device), I can simply place it in a crafting grid on its own.",
+
+ "oneironaut.page.noosphere_materials.1": "A strange fluid which agitates media entering it, preventing amethyst crystal formation. Stimulates my mind in pleasing ways when I immerse myself in it.",
+ "oneironaut.page.noosphere_materials.2": "A rock which is primarily composed of media, somehow. Can be used to craft spell circle blocks.",
+ "oneironaut.page.noosphere_materials.3.title": "Pseudoamethyst",
+ "oneironaut.page.noosphere_materials.3": "A large crystal of media much like amethyst, but not quite the same. Produces a buzzing sensation under my fingers when I touch it, as if its media is stimulating the nerves. Breaking it without special care causes it to shatter into 1-4 pieces.",
+ "oneironaut.page.noosphere_materials.4": "The shards can be used to fuel spells, and yield slightly more energy than a normal amethyst shard. Can also be used to craft several interesting things.",
+ "oneironaut.page.noosphere_materials.5": "A solid form of media which is created when Thought Slurry freezes in a media-rich environment, or is caused to freeze by a hex.$(br)Its surface seems to have negative friction, causing anything sliding on it to accelerate indefinitely (albeit slowly).",
+ "oneironaut.page.noosphere_materials.6": "An extremely viscous mass of media, capable of very basic cognition, analagous to a slime mold. While it is normally quite lethargic, it uses a spell-like ability to attempt to ensnare anything that touches it.",
+ "oneironaut.page.slipway_hint.1": "The slipways, they must lead $(o)somewhere$(). Wisps do not simply manifest from nothing. No matter what I try, I cannot insert so much as a finger through that chaotic rift.$(br2)I'm going about this wrong. Perhaps rather than attempting to force my way through, I should be attempting to calm the storm.",
+ "oneironaut.page.slipway_hint.2": "A large amount of harmonious media may just do it...",
+ "oneironaut.page.slipway_hint.2.title": "Hmm...",
+ "oneironaut.page.noosphere_main.1": "I've made it.$(br)The realm beyond the slipways. The ambient media is overwhelming. My mind is screaming at me, telling me I shouldn't be here. But I must press on. This is the next step in the journey.",
+ "oneironaut.page.noosphere_main.2": "Every single thing I've examined here seems to be composed largely of media, similar to conjured matter, but orders of magnitude denser.$(br)$(o)Even the air is media. How am I breathing?$(br2)$(l)How can I even exist here?",
+ "oneironaut.page.rod.1": "I've discovered that I can craft a peculiar sort of casting item, using the strange shards found in ancient cities.$(br)This item is unusual in that it casts its imbued hex twenty times per second while I concentrate on it, until it either mishaps or I cast Finale or Encore. This initiates a cooldown period, usually about one second.",
+ "oneironaut.page.rod.2": "The echo shards seem to bear some bizarre form of media, with a tendency to loop back on itself while retaining a bit of the previous cast.",
+ "oneironaut.page.rod.3": "Acts just like $(l:patterns/spells/hexcasting)the spells used to program conventional casting items$(). Costs 10 Charged Amethyst.",
+ "oneironaut.page.rod.4": "When cast with a Reverberation Rod, returns my look vector from when I started the current cast loop.",
+ "oneironaut.page.rod.5": "When cast with a Reverberation Rod, returns my eye position from when I started the current cast loop.",
+ "oneironaut.page.rod.6": "When cast with a Reverberation Rod, returns the timestamp from when I started the current cast loop.",
+ "oneironaut.page.rod.7": "Accepts a positive integer. When cast with a Reverberation Rod, delays the current cast loop's next cast until that many twentieths of a second have passed.",
+ "oneironaut.page.rod.8": "When cast with a Reverberation Rod, forcibly halts the current cast loop.",
+ "oneironaut.page.rod.9": "Accepts a positive integer. Halts the current cast loop but also reduces the cooldown period from 1 second to ((1/20) * number) seconds. Cooldown due to mishap is unaffected.",
+ "oneironaut.page.rod.10": "Accepts a non-list iota, and stores it inside the current cast loop. It will be lost when the cast loop ends.",
+ "oneironaut.page.rod.11": "Returns the iota stored in the current cast loop. Defaults to NULL.",
+ "oneironaut.page.rod.12": "Returns a boolean corresponding to whether the current cast is making use of a rod.",
+ "oneironaut.page.rod.13": "As Williams' Gambit, but can be cast from non-rod sources while a rod is in use.",
+ "oneironaut.page.rod.14": "As Williams' Reflection, but can be cast from non-rod sources while a rod is in use.",
+ "oneironaut.page.rod.15": "Returns whether the caster is currently using a rod, regardless of the current cast is from that rod.",
+ "oneironaut.page.rod.16": "Echo shards can also be used in the construction of a staff, though it seems the only special property of such a staff is making sculk sounds.",
+ "oneironaut.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
+ "oneironaut.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
+ "oneironaut.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
+ "oneironaut.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
+ "oneironaut.page.miscpatterns.5": "Returns a random number between 0 and 1, with a gaussian distribution.",
+ "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
+ "oneironaut.page.super_budding.1": "I've found that the amethyst-like material native to the noosphere can be imbued with a villager's mind, much like normal amethyst. What's more, the block that results from this process produces significantly more media than normal Budding Amethyst, and it can be picked up and moved if one takes special care.",
+ "oneironaut.page.super_budding.2": "Pseudoamethyst requires a stronger mind than normal amethyst, but the cost is well worth it.",
+ "oneironaut.page.super_budding.3": "Additionally, when cultivated in the Noosphere, budding pseudoamethyst will produce pseudoamethyst clusters rather than conventional amethyst. These clusters will of course yield pseudoamethyst shards, as well as an unstable form of pseudoamethyst containing about four times as much media as the regular shards. Unfortunately, due to this instability, it cannot be directly converted into usable media. However, it can be converted into many other forms of media crystal by simply bringing the two items together.",
+ "oneironaut.page.super_budding.4": "It seems to react to my gaze, as if endowed with some form of perception.",
+ "oneironaut.page.super_budding.5": "The media generation rate of budding pseudoamethyst is such that even when immersed in thought slurry to inhibit crystal formation, it will still yield usable amounts of media. While the overall supply is nigh-endless, the amount accessible to any given action is quite small, like an inch-deep ocean a million miles across. However, due to this minimal depth, the media will dissipate rapidly before reaching my staff when accessed from afar, such as when recharging an item.",
+ "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I certainly $(o)can$() hold several of these in order to gain access to more easy media, this results in rapidly-diminishing returns.",
+ "oneironaut.page.super_budding.7": "I can also jam one into a trinket in order to replace its media supply with an inexhaustible phial, giving it access to the endless media within. However, it cannot use any media other than that provided by the phial.",
+ "oneironaut.page.super_budding.8": "Writes a hex to the bottomless trinket in my other hand. Costs ten charged amethyst.",
+ "oneironaut.page.idea_inscription.1": "As the noosphere is a realm of thought, it stands to reason that it could be used for information storage. These patterns do just that, inscribing an iota into the noosphere and reading it back (regardless of my current dimension). They can also store iotas inside the minds of other beings, assuming their thoughts are as... $(o)unfettered$() as my own. In the notation for these patterns, \"key\" refers to any vector or compatible entity.",
+ "oneironaut.page.idea_inscription.2": "While this is quite versatile, the noosphere's ambient media is constantly in motion, and as such any iota stored in it will eventually be lost, similar to if I poured hot water into the ocean. It seems to take about an hour before such information decays into unusable garbage.$(br2)It seems that $(l:greatwork/akashiclib)Akashic Libraries$(/l) work based on similar principles, where the shelves serve as insulation to prevent decay.",
+ "oneironaut.page.idea_inscription.3": "Accepts a valid key and any iota, and stores it in the corresponding location. Costs a quarter of an amethyst dust.",
+ "oneironaut.page.idea_inscription.4": "Accepts a valid key, and returns the corresponding iota. Costs one-eigth of an amethyst dust.",
+ "oneironaut.page.idea_inscription.5": "Accepts a valid key, and returns when the corresponding iota was inscribed, or -1. Costs no media.",
+ "oneironaut.page.idea_inscription.6": "Accepts a valid key and a player, and returns whether the corresponding iota was inscribed by that player. Costs no media.",
+ "oneironaut.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
+ "oneironaut.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
+ "oneironaut.page.sentinel_detection.1": "By combining the noosphere's pseudoamethyst with the organic sensory apparatus native to the deep dark, I've discovered a way to detect fluctuations in ambient media. This new form of sensor detects the presence of $(l:patterns/spells/sentinels)Sentinels$(/l) within approximately 16 meters, and outputs a redstone signal based on its proximity to the closest one. Comparators attached to it will output a signal if the sentinel in question is particularly powerful.",
+ "oneironaut.page.sentinel_detection.2": "$(o)I'm sure the warden won't mind.$()",
+ "oneironaut.page.sentinel_detection.3": "Additionally, this sensor can be incorporated into a Cleric Impetus, allowing it to activate when a sentinel is placed in the area (albeit with a lower range than the plain sensor). I've dubbed this contraption a Seer Impetus. Though it no longer responds to redstone, the circle's hex will start with a reference to the owner of the triggering sentinel on the stack.$(br)Due to the media interference produced by the cast, the impetus cannot detect sentinels it places itself.",
+ "oneironaut.page.sentinel_detection.4": "As the sensor does not care whose sentinel it sees, I should take care to avoid allowing my trap circles to target me.",
+ "oneironaut.page.sentinel_detection.5": "Accepts a vector and a player, and returns either the distance from the vector to the target player's sentinel or NULL. Costs a negligible amount of media.",
+ "oneironaut.page.sentinel_detection.6": "Conjures a fleeting sensor at the target coordinates, which \"listens\" to the patterns in the ambient media to seek out the telltale signature of a sentinel.",
+ "oneironaut.page.detection_shielding.1": "While conventional invisibility potions work just fine for fooling human senses, they are useless against hexes, so I've yet to find any method of making oneself completely undetectable. However, this spell I've discovered allows me to get closer to that goal, scattering media around a creature like chaff, in order to interfere with hex-based detection methods.",
+ "oneironaut.page.detection_shielding.2": "Accepts a living entity and a number ($(o)n$()), and shields the entity from hex-based detection for $(o)n$() seconds. Costs two amethyst dust per second.",
+ "oneironaut.page.detection_shielding.3": "Also drains media from the entity at a rate of 1/10 of a dust per second, as the shielding effect collects it to produce the chaff.$(br2)I should be careful with what I apply this to, as creatures with no loose media of their own will have their very minds fractured in order to provide this media.",
+ "oneironaut.page.detection_shielding.4": "While this is very effective at blocking effects such as $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l) and the various forms of $(l:patterns/entities#hexcasting:zone_entity/animal)Zone Distillation$(/l), it has no effect on $(l:patterns/entities#hexcasting:get_entity)Entity Purification$(/l) variants, as those already have a fairly precise idea of where you are. What's more, the chaff itself produces an energy signautre, which, while dim, is detectable by a specialized pattern.",
+ "oneironaut.page.detection_shielding.5": "Accepts a vector and a number, and returns a list of unit vectors pointing from the initial vector to shrouded entities within a radius defined by the number.",
+ "oneironaut.page.detection_shielding.6": "I've also discovered a spell which applies normal Invisibility. Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), and costs one amethyst dust per three seconds.",
+ "oneironaut.page.raycast_assailant.1": "By \"threading\" pseudoamethyst through a block, I can create something which causes any raycast (including entity raycasts) that hits or passes through it to return null, as if it didn't hit anything.",
+ "oneironaut.page.raycast_assailant.3": "Strangely, combining pseudoamethyst with obsidian in the same way does not confer anti-raycast properties, instead making it nigh-indestructible to hexes. However, the resultant block loses much of its durability, being no stronger than common stone (though it retains its blast resistance).",
+ "oneironaut.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
+ "oneironaut.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
+ "oneironaut.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
+ "oneironaut.page.status_iotas.4": "Accepts an entity and a status effect type, and returns the effect on the target's duration in seconds.",
+ "oneironaut.page.status_iotas.5": "Accepts an entity and a status effect type, and returns the effect on the target's potency.",
+ "oneironaut.page.status_iotas.6": "Accepts a status effect type and a vector, and returns an entity at that position which has that effect.",
+ "oneironaut.page.status_iotas.7": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which have that effect.",
+ "oneironaut.page.status_iotas.8": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which do not have that effect.",
+ "oneironaut.page.status_iotas.9": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
+ "oneironaut.page.status_iotas.10": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
+ "oneironaut.page.mindrender.1": "I've read legends of a particularly macabre form of weapon known as a Mind Render. This weapon, sometimes used by ancient hexcasters, is capable of severing a creature's very thoughts, dealing damage that bypasses all known forms of protection. What's more, if this damage leaves the target just on the brink of true death, it will fall into a vegetative state, never to recover. I shudder to think of what the ancients may have used this property for...",
+ "oneironaut.page.mindrender.2": "Accepts an item or item frame bearing the Sharpness enchantment, and converts it into Mind Render of the same level. Cost is based on enchantment level, and increases by 50%% if the item is a book.",
+ "oneironaut.page.lore.treatise1.1": "While it is possible to produce most iotas on the fly, there are cases where one finds it impractical, or simply cannot (such as very large and precise numbers, or entity references), and as such must obtain the desired iota in another way. Reading it from a Focus or a similar item works just fine, but in many cases this would require a third hand, which I do not have. Other methods of fetching iotas from external locations have their own limitations as well.",
+ "oneironaut.page.lore.treatise1.2": "In cases where no external reference method would work well, one must insert the desired iota into the hex itself. This may seem counterintuive to some, what with the conventional wisdom being that a hex is a list of patterns, but one must remember that patterns are just another type of iota, which $(l:patterns/meta#hexcasting:eval)Hermes' Gambit$(/l) (and similar patterns) works particularly well with.",
+ "oneironaut.page.lore.treatise1.3": "While you can't just shove a number into the list and expect it to be pushed to the stack as if it was a $(l:patterns/numbers)Numerical Reflection$(/l) pattern, there are ways around this.$(br2)The simplest (and least reliable) is the $(l:patterns/patterns_as_iotas#hexcasting:escape)Consideration$(/l) pattern. Similar to its use when casting freehand, anything that comes immediately after it in a list will be escaped and pushed to the stack when it might otherwise be executed, preventing mishaps due to execution of non-patterns.",
+ "oneironaut.page.lore.treatise1.4": "However, when you're more than one exeuction deep in a hex (such as with nested conditional logic, or loops), the number of Considerations required to properly escape an iota increases exponentially, making it unreliable when used in anything that could conceivably be executed by another hex.",
+ "oneironaut.page.lore.treatise1.4.link": "relevant xkcd",
+ "oneironaut.page.lore.treatise1.5": "A far more reliable method of escaping iotas is to use $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(/l) and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)Retrospection$(/l). When a pattern list is being evaluated and an Introspection is encountered, everything up to (but not including) its paired Retrospection is escaped and pushed to the stack in a list, regardless of iota type. You can then work with this list as you see fit, such as using $(l:patterns/lists#hexcasting:splat)Flock's Disintegration$(/l) to push all of its contents to the stack on their own.",
+ "oneironaut.page.lore.treatise1.6": "If the contents of your list looks like this:$(br2)Introspection$(br)Any iota(s)$(br)Retrospection$(br)Flock's Disintegration$(br2)the state of the stack after all that is executed will simply be all the iotas that were contained within Introspection and Retrospection.",
+ "oneironaut.page.lore.treatise2.1": "When one wishes to impart motion upon something, the standard method is to use $(l:patterns/spells/basic#hexcasting:add_motion)Impulse$(/l). However, this can get prohibitively expensive when one wishes to make something move extremely quickly, as the cost increases exponentially with the length of the vector. This can be mitigated by simply using a magnitude-1 Impulse many times over on a single target, turning the overall cost from n^2 to 2n-1, where n is the magnitude of the vector.",
+ "oneironaut.page.lore.treatise2.2": "The easiest way to accomplish this is with $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l), by giving it a list containing many instances of the same entity reference. There are other (and often better) methods, of course, but aside from simply drawing the patterns over and over, they generally fall under the broader topic of loops, which is outside the scope of this document.",
+ "oneironaut.page.lore.treatise3.1": "While $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) is perfectly-suited for casting something on many targets at once, using to it cast something on one target many times can get awkward, and short of completely halting the hex, it is not possible to add or remove targets once Thoth has begun executing.$(br)To get around these limitations, one simply needs to use a different sort of loop.",
+ "oneironaut.page.lore.treatise3.2.header": "While Loop",
+ "oneironaut.page.lore.treatise3.2": "A While loop is a loop that continues executing until some condition is fulfilled, such as an entity's target velocity having been reached. The most common way to accomplish this is creating a pattern list which duplicates and executes the top iota on the stack, duplicating it, then executing it. On its own this simply produces an infinite loop which does nothing but mishap.",
+ "oneironaut.page.lore.treatise3.3": "However, by adding actual functionality and a bit of boolean logic, you can create a proper while loop. The code for the aforementioned infinite loop is as follows:$(br)Introspection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br)Retrospection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br2)By adding logic that changes whether the inner Hermes' Gambit gets evaluated based on a condition, you can make it stop once that condition is fulfilled.",
+ "oneironaut.page.lore.treatise3.4.header": "Loop Unrolling",
+ "oneironaut.page.lore.treatise3.4": "A more complex form of loop is an unrolled loop. Like Thoth's Gambit, it's created with a fixed number of iterations which can't easily be added to, but Charon's Gambit can be used to halt it early if need be. It also has the advantage that when done competently, it only ever produces one or two levels of recursion depth (not counting anything executed in the body of the loop). Loop unrolling is accomplished by creating a pattern list you want to repeat, duplicating it many times, and then combining all those lists into one.",
+ "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:concat)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
+ "oneironaut.page.lore.treatise4.1": "Some of my, erm, \"colleagues\" have trouble transcribing long hexes.$(br)\"This is too long!\"$(br)\"The grid doesn't have enough space!\"$(br)$(bold)Skill issue$(), I say. It's not like a hex is immutable once you've drawn the last Retrospection. All you need to do is save the work-in-progress hex to a focus (though you should make sure to conserve enough grid space to actually do this).",
+ "oneironaut.page.lore.treatise4.2": "Then you just use the $(l:patterns/lists)list manipulation$(/l) patterns to combine it with the other parts once you're done.$(br2)You don't even need to use multiple foci, you can just append one part to the last one as you finish them, and then save that to one focus. The multiple-focus method makes it easier to debug your finished hex, but as far as I know that's its only benefit compared to the one-focus method.",
+ "oneironaut.page.lore.science1.1": "$(o)\"What is this and how do I get rid of it?\"$()$(br)A question asked by many people upon their first encounter with a slipway. I don't have a good answer for the second part of the question, but I believe I can provide a satisfactory response to the first.$(br)From what I can tell, a slipway is a tiny hole in space, the other side of which is the media realm known as the Noosphere.",
+ "oneironaut.page.lore.science1.2": "The wisp-like phenomena that emerge from it are formed when the vast ambient media of the Noosphere attempts to rush through the hole (much like gas leaking into a near-vacuum) and gets tangled in a manner similar to how wisp-summoning spells weave the media which they consume.",
+ "oneironaut.page.lore.science1.3": "Additionally, it seems that slipways have a sort of barrier over the entrance, preventing any matter from passing through. If this barrier could be pierced, and the hole expanded, the slipway would become capable of absorbing matter into the noosphere. It would also cease producing wisps, as the media coming through would do so far more slowly, and thus not be agitated and tangled. If one were to attempt this, they would have to be careful not to widen it too greatly, or they would risk the surrounding area being absorbed into the noosphere.",
+
+ "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
+
+ "oneironaut.page.lore.science2.1": "What a strange place. The liquid that comprises the ocean here is not much denser than water, but small islands float in it despite being comprised of a rock similar in density to ordinary basalt. What's more, everything seems strangely ephemeral, like a dream. But how could this be a dream, when I am more lucid than I've ever been before?",
+ "oneironaut.page.lore.science2.2": "It seems this great lucidity is a product of the ambient media present here, lubricating my thoughts. These media levels even exceed those present at the cores of wisps, reducing their innate decay to infinitesimal levels. Interestingly, this has no effect on wisps which bear an imprint of someone else's soul, preventing me from using wisps as indefinite truename storage.$(br)This ambient media even leaks through sufficiently-large dimensional rifts, preserving wisps on the other side as long as they remain within a certain range of the rift.",
+ "oneironaut.page.lore.science3.1": "This crystal is quite fascinating. An object formed from pure media, orders of magnitude denser than conventional conjured blocks, or even the condensed media crystals that some of my colleagues at the library have been studying. It doesn't even contain the trace amounts of silicon dioxide found in amethyst of similar media density. And when I leave it unattended for a while, dust collects in fractalline patterns, as if the crystal bears a passive spell-like effect.",
+ "oneironaut.page.lore.science3.2": "Examining it more thoroughly under a microscope, it seems that these fractals extend beneath the surface of the crystal, and are constantly shifting in a consistent pattern. Could this be a time crystal?",
+ "oneironaut.page.glow_ambit.1": "Despite diligent research, the source of the special properties of other hexcasters' entity references has eluded me. However, I've discovered a way to bestow one such property upon other beings, at least temporarily (and flashily).$(br)This spell allows casters to affect creatures from great distances just like the infinite-range aspect of a player reference. However, one must still be close to the target in order to perform the initial application.",
+ "oneironaut.page.glow_ambit.2": "Accepts a living entity, and allows it to be accessed from anywhere for one minute. Has a base cost of one amethyst shard, plus one additional shard per application before allowing it to expire.",
+ "oneironaut.page.glow_ambit.3": "It seems that this effect functions by causing the target to emit some sort of psionic resonance, strong enough to cause its outline to be \"visible\" through all manner of barriers (perhaps hexcasters naturally produce this same resonance, but much subtler?). However, this glow is distinct from that induced by spectral arrows and similar, so don't bet on things to detect that working for this.",
+ "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:oneironaut:patterns/idea_inscription)Idea Inscription$(/l).",
+ "oneironaut.page.soulprints.2": "Returns my soulprint, mishapping if cast using anything other than a staff. Costs a negligible amount of media.",
+ "oneironaut.page.soulprints.3": "Invisibly engraves my soulprint onto the item in my other hand, or erases it if it is already there. Costs 1 amethyst dust.$(br)I should be careful to seal any focuses or similar that I sign, as acquiring an unsealed signed focus may allow someone to impersonate me, and Erase Item gets rid of the signature.",
+ "oneironaut.page.soulprints.4": "Accepts a soulprint, and checks if the item in my other hand is engraved with it. Returns true if so, false otherwise. Costs a negligible amount of media.",
+ "oneironaut.page.hover_elevator.1": "By combining materials native to the noosphere with certain ingredients associated with levitation, I can create a device which produces streams of propulsive energy capable of carrying me along them, with minimal risk of falling. To use it, it must be placed facing directly towards another one (which must be facing it in turn). Once I've done this, both ends must be activated with a",
+ "oneironaut.page.hover_elevator.2": "redstone signal, and the energy stream will form between the paired emitters, assuming they are within range of each other (64 meters horizontally, or 128 vertically). By stepping into the stream, I will be held in place until I look towards either end of the stream, at which point I will be accelerated in that direction until I hit a maximum speed proportional to how closely my vision parallels the stream. Crouching causes the stream to hold me in place regardless of my gaze.",
+ "oneironaut.page.hover_elevator.3": "$(o)Best to don some long fall boots the first time I try these.",
+ "oneironaut.page.hover_elevator.meme":"$(o)Bad and naughty hexcasters get sent to the hover cube.",
+ "oneironaut.page.hover_elevator.4": "Additionally, I can create a repeater capable of extending the range of the emitters when placed between them, such that the stream can continue on as if it had just left the emitter. Of course, such an extension requires more powerful components, and even then the stream can only be extended by three repeaters before it becomes too unstable to form.",
+ "oneironaut.page.hover_elevator.5": "Fortunately, this device seems to be rather immaterial for some reason, and I can pass straight through it without having to carefully twist around it in the stream.$(br)$(o)No, it does not make the stream pause for a moment before continuing.",
+ "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:oneironaut:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
+ "oneironaut.page.flayrevival.2": "Accepts a flayed mob, and creates an artifical pseudo-mind to inhabit its body. Costs 16 charged amethyst when used on a villager, or 10 amethyst shards for anything else.",
+ "oneironaut.page.flayrevival.3": "While these pseudo-minds are capable of moving their bodies around as if they were their original inhabitants, they are too simple to be called truly sapient, even with the rather loose definition of the term that must be used when applying it to villagers. As such, any villager \"restored\" in this manner loses any professional experience it had before, and cannot gain such experience ever again.",
+ "oneironaut.page.flayrevival.4": "They do, however, regain their ability to reproduce, with any children they produce being untainted by my craft.$(br2)I'm not sure why the restored villagers suddenly gain an affinity for green clothing, but at least it serves as a good indicator of which villagers will be of little further use.",
+ "oneironaut.page.monkfruit.1": "I've discovered that using the $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l) spell on a Sweet Berry Bush produces a rather interesting plant. It is much like the shrub it mutates from, however its thorns are imbued with a media field which siphons the minds of pricked creatures into the plant in order to grow. It can grow without this (albeit slowly), though it still requires minds nearby to provide small amounts of media.",
+ "oneironaut.page.monkfruit.2": "The fruit that this bush produces is quite sweet, and can be processed into sugar. Additionally, eating one seems to release bits of media into the air, which seek out rechargeable items on my person. I should be wary of the thorns while picking the fruit.",
+ "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:oneironaut:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
+ "oneironaut.page.monkfruit.4": "$(o)It's not rocket science.$()",
+
+ "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
+ "oneironaut.advancements.noosphere.enter": "A Realm of Thought and Dream",
+ "oneironaut.advancements.noosphere.enter.description": "Enter the Noosphere",
+ "oneironaut.advancements.noosphere.find_tower": "A Timeless Classic",
+ "oneironaut.advancements.noosphere.find_tower.description": "Discover the tower of an unknown hexcaster",
+ "oneironaut.advancements.noosphere.find_media_lab": "Crystallized",
+ "oneironaut.advancements.noosphere.find_media_lab.description": "Discover a grim experiment",
+ "oneironaut.advancements.noosphere.find_garden": "Stranded",
+ "oneironaut.advancements.noosphere.find_garden.description": "Discover an unfortunate soul's last reminder of home",
+ "oneironaut.advancements.lore.root": "Oneironaut Lore",
+ "oneironaut.advancements.lore.root.description": "Memories lost to time",
+ "oneironaut.advancements.lore.treatise1": "Hexcaster's Memory #1",
+ "oneironaut.advancements.lore.treatise1.description": "Reflections on iota embedding",
+ "oneironaut.advancements.lore.treatise2": "Hexcaster's Memory #2",
+ "oneironaut.advancements.lore.treatise2.description": "Reflections on efficient use of Impulse",
+ "oneironaut.advancements.lore.treatise3": "Hexcaster's Memory #3",
+ "oneironaut.advancements.lore.treatise3.description": "Reflections on repeated patterns",
+ "oneironaut.advancements.lore.treatise4": "Hexcaster's Memory #4",
+ "oneironaut.advancements.lore.treatise4.description": "Reflections on long hexes",
+ "oneironaut.advancements.lore.science1": "Scientist's Memory #1",
+ "oneironaut.advancements.lore.science1.description": "Research into the nature of slipways",
+ "oneironaut.advancements.lore.science2": "Scientist's Memory #2",
+ "oneironaut.advancements.lore.science2.description": "Research into the properties of the Noosphere",
+ "oneironaut.advancements.lore.science3": "Scientist's Memory #3",
+ "oneironaut.advancements.lore.science3.description": "Research into the structure of pseudoamethyst",
+ "oneironaut.advancements.unflay": "Recycling!",
+ "oneironaut.advancements.unflay.description": "Surely you weren't going to just throw that away!",
+ "oneironaut.advancements.ouchie": "Ouch!",
+ "oneironaut.advancements.ouchie.description": "What did you expect?",
+
+ "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
+ "hexcasting.mishap.oneironaut:badcuboid.mismatch": "Supplied cuboids are dissimilar.",
+ "hexcasting.mishap.oneironaut:badcuboid.toobig": "Supplied cuboids are too big.",
+ "hexcasting.mishap.oneironaut:uninfusable": "Expected an infusable block at %s, but got %s.",
+ "hexcasting.mishap.oneironaut:nonconjured": "Expected a conjured block at %s, but got %s.",
+ "hexcasting.mishap.oneironaut:nonoosphere": "Expected one end of the transfer to be a special dimension.",
+ "hexcasting.mishap.oneironaut:norod": "Expected to be cast from a Reverberation Rod.",
+ "hexcasting.mishap.oneironaut:norodremote": "Expected an active Reverberation Rod in hand.",
+ "hexcasting.mishap.oneironaut:missingeffect": "Expected %s to be affected by %s, but they are not.",
+ "hexcasting.mishap.oneironaut:missingenchant": "Expected %s to be enchanted with %s, but it is not.",
+ "hexcasting.mishap.oneironaut:unhappyslime": "The slime says \"%s\"",
+ "hexcasting.mishap.oneironaut:norequirediota": "The slime demands %s",
+ "hexcasting.mishap.oneironaut:requiresdifferententities": "an entity different from the target",
+ "hexcasting.mishap.oneironaut:nostaff": "%s expected to be cast using a staff.",
+ "oneironaut.mishap.noitemframe": "an item frame",
+ "oneironaut.mishap.invalidideakey": "a vector, player, or soulprint",
+ "oneironaut.mishap.unenlightenedtarget": "an enlightened player",
+ "oneironaut.mishap.notbrainswept": "a flayed villager",
+ "oneironaut.mishap.badentitykey": "an enlightened player or a flayed villager",
+ "oneironaut.mishap.nolistsallowed": "a non-list iota",
+ "oneironaut.mishap.entitytypelistplease": "a list of entity types",
+ "oneironaut.mishap.wrongsizelist": "List is improperly sized.",
+ "oneironaut.mishap.twovectorsplease": "List does not contain two vectors.",
+ "oneironaut.mishap.requiresflayedmob": "%s expected a flayed mob, but got %s.",
+ "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "a spatial imprint",
+ "hexcasting.mishap.invalid_value.class.oneironaut:status": "a status effect",
+ "hexcasting.mishap.invalid_value.class.oneironaut:visiblestatus": "a detectable status effect",
+ "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "a soulprint",
+
+ "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
+ "hexcasting.iota.oneironaut:dim": "Dimension",
+ "hexcasting.iota.oneironaut:potion": "Status Effect",
+ "hexcasting.iota.oneironaut:uuid": "Soulprint",
+ "hexcasting.iota.oneironaut:uuid.label": "Soulprint of %s",
+ "biome.oneironaut.noosphere_sea": "Noosphere Sea",
+ "text.oneironaut.clearIdeasResponse": "Cleared iota storage map.",
+ "effect.oneironaut.detection_resistance": "Media Shroud",
+ "effect.oneironaut.not_missing": "Uplifting Resonance",
+ "effect.oneironaut.missing": "Broken Potion Iota",
+ "enchantment.oneironaut.overcast_damage": "Mind Render",
+ "itemGroup.oneironaut.oneironaut": "Oneironaut",
+ "oneironaut.tooltip.wispcapturedevice.haswisp": "Contains a wisp with %s dust and hex signature %s.",
+ "oneironaut.tooltip.wispcapturedevice.nowisp": "No wisp.",
+ "oneironaut.tooltip.wispcapturedevice.uninitialized": "Media reservoir has not been initialized.",
+ "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+}
diff --git a/projects/1.19/assets/oneironaut/oneironaut/lang/zh_cn.json b/projects/1.19/assets/oneironaut/oneironaut/lang/zh_cn.json
new file mode 100644
index 000000000000..d30c62376979
--- /dev/null
+++ b/projects/1.19/assets/oneironaut/oneironaut/lang/zh_cn.json
@@ -0,0 +1,355 @@
+{
+ "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
+ "hexcasting.spell.oneironaut:getdim1": "空间之精思",
+ "hexcasting.spell.oneironaut:getdim2": "空间之精思,第二型",
+ "hexcasting.spell.oneironaut:getdimoverworld": "家园之精思",
+ "hexcasting.spell.oneironaut:getdimnether": "狱界之精思",
+ "hexcasting.spell.oneironaut:getdimheight": "阿特拉斯之分解",
+ "hexcasting.spell.oneironaut:getdimscale": "空程之纯化",
+ "hexcasting.spell.oneironaut:dimteleport": "智识门径",
+ "hexcasting.spell.oneironaut:infusemedia": "媒质灌注",
+ "hexcasting.spell.oneironaut:swapspace": "空间互换",
+ "hexcasting.spell.oneironaut:paintconjured": "外化染色剂",
+ "hexcasting.spell.oneironaut:craftrod": "指挥法杖",
+ "hexcasting.spell.oneironaut:getrodlook": "指挥棒之精思",
+ "hexcasting.spell.oneironaut:getrodpos": "指挥棒之精思,第二型",
+ "hexcasting.spell.oneironaut:getrodstamp": "节拍器之精思",
+ "hexcasting.spell.oneironaut:delayrod": "节拍器之策略",
+ "hexcasting.spell.oneironaut:haltrod": "终曲",
+ "hexcasting.spell.oneironaut:resetrod": "安可",
+ "hexcasting.spell.oneironaut:readrodram": "威廉姆斯之精思",
+ "hexcasting.spell.oneironaut:writerodram": "威廉姆斯之策略",
+ "hexcasting.spell.oneironaut:readrodramremote": "威廉姆斯之精思,第二型",
+ "hexcasting.spell.oneironaut:writerodramremote": "威廉姆斯之策略,第二型",
+ "hexcasting.spell.oneironaut:queryrod": "指挥家之精思",
+ "hexcasting.spell.oneironaut:rodloopactive": "指挥家之精思,第二型",
+ "hexcasting.spell.oneironaut:craftbottomlesstrinket": "制作无底缀品",
+ "hexcasting.spell.oneironaut:readframerotation": "装潢师之纯化",
+ "hexcasting.spell.oneironaut:setframerotation": "装潢师之策略",
+ "hexcasting.spell.oneironaut:writeidea": "刻印思绪",
+ "hexcasting.spell.oneironaut:readidea": "收回思绪",
+ "hexcasting.spell.oneironaut:readideatime": "元数据之纯化",
+ "hexcasting.spell.oneironaut:readideawriter": "元数据之馏化",
+ "hexcasting.spell.oneironaut:particleburst": "粒子迸发",
+ "hexcasting.spell.oneironaut:readsentinel": "检视哨卫",
+ "hexcasting.spell.oneironaut:resistdetection": "隐匿遮罩",
+ "hexcasting.spell.oneironaut:detectshroud": "辨察遮罩",
+ "hexcasting.spell.oneironaut:invisibility": "隐阳当空",
+ "hexcasting.spell.oneironaut:circle": "圆",
+ "hexcasting.spell.oneironaut:getstatus": "药师之纯化",
+ "hexcasting.spell.oneironaut:getstatuscategory": "药师之纯化,第二型",
+ "hexcasting.spell.oneironaut:getstatusduration": "药剂师之馏化",
+ "hexcasting.spell.oneironaut:getstatuslevel": "药剂师之馏化,第二型",
+ "hexcasting.spell.oneironaut:getbystatus": "区域之提整:状态",
+ "hexcasting.spell.oneironaut:getbystatusinverse": "区域之提整:非状态",
+ "hexcasting.spell.oneironaut:getbystatussingle": "实体之馏化:状态",
+ "hexcasting.spell.oneironaut:removestatus": "清除状态",
+ "hexcasting.spell.oneironaut:applymindrender": "赋能意识撕裂者",
+ "hexcasting.spell.oneironaut:reviveflayed": "灌注精神",
+ "hexcasting.spell.oneironaut:advanceautomaton": "质胞生成",
+ "hexcasting.spell.oneironaut:filteredentityraycast": "侦查员之提整",
+ "hexcasting.spell.oneironaut:gaussianrand": "熵之精思,第二型",
+ "hexcasting.spell.oneironaut:applynotmissing": "扬升共振",
+ "hexcasting.spell.oneironaut:getsoulprint": "灵魂印记之精思",
+ "hexcasting.spell.oneironaut:signitem": "签印物品",
+ "hexcasting.spell.oneironaut:checksignature": "签印之纯化",
+
+ "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
+ "item.oneironaut.pseudoamethyst_shard": "伪紫水晶碎片",
+ "item.oneironaut.shifting_pseudoamethyst": "易形伪紫水晶",
+ "item.oneironaut.thought_slurry_bucket": "思维浆液桶",
+ "item.oneironaut.reverberation_rod": "回响之杖",
+ "item.oneironaut.endless_phial": "无穷媒质之瓶",
+ "item.oneironaut.bottomless_trinket": "无底缀品",
+ "item.oneironaut.echo_staff": "回响法杖",
+ "item.oneironaut.beacon_staff": "科技法杖",
+ "item.oneironaut.spoon_staff": "勺子",
+ "item.oneironaut.pigment_flame": "火焰染色剂",
+ "item.oneironaut.pigment_echo": "回响染色剂",
+ "item.oneironaut.pigment_noosphere": "智识染色剂",
+ "item.oneironaut.memory_fragment": "记忆碎片",
+ "item.oneironaut.memory_fragment.all": "似乎我已经集齐了这些晶体中所有我能找到的记忆……",
+ "item.oneironaut.wisp_capture_device": "咒灵牧织器",
+ "item.oneironaut.mind_scalpel": "突触手术刀",
+ "item.oneironaut.monkfruit": "修道果",
+ "item.oneironaut.rending_thorns": "裂识荆棘",
+
+ "block.oneironaut.noosphere_gate": "神秘裂口",
+ "block.oneironaut.pseudoamethyst_block": "伪紫水晶块",
+ "block.oneironaut.pseudoamethyst_cluster": "伪紫水晶簇",
+ "block.oneironaut.pseudoamethyst_bud_small": "小型伪紫水晶芽",
+ "block.oneironaut.pseudoamethyst_bud_medium": "中型伪紫水晶芽",
+ "block.oneironaut.pseudoamethyst_bud_large": "大型伪紫水晶芽",
+ "block.oneironaut.thought_slurry": "思维浆液",
+ "block.oneironaut.thought_slurry_flowing": "流动的思维浆液",
+ "block.oneironaut.noosphere_basalt": "智识界玄武岩",
+ "block.oneironaut.wisp_lantern": "咒灵灯笼",
+ "block.oneironaut.wisp_lantern_tinted": "遮光咒灵灯笼",
+ "block.oneironaut.super_budding": "伪紫水晶母岩",
+ "block.oneironaut.sentinel_sensor": "哨卫探测器",
+ "block.oneironaut.raycast_blocker": "反射线追踪板岩",
+ "block.oneironaut.raycast_blocker_glass": "反射线追踪玻璃",
+ "block.oneironaut.sentinel_trap": "探察促动石",
+ "block.oneironaut.circle": "§0§o圆",
+ "block.oneironaut.hex_resistant_block": "咒术防护黑曜石",
+ "block.oneironaut.media_ice": "贤能智冰",
+ "block.oneironaut.media_ice_frosted": "暂态贤能智冰",
+ "block.oneironaut.media_gel": "精神原质团",
+ "block.oneironaut.cell": "失协精神",
+ "block.oneironaut.wisp_battery": "咒灵编织器",
+ "block.oneironaut.decorative_wisp_battery": "初等咒灵编织器",
+ "block.oneironaut.hover_elevator": "咒术师的悬浮桥链",
+ "block.oneironaut.hover_repeater": "悬浮桥链中继器",
+ "block.oneironaut.monkfruit_bush": "修道果丛",
+
+ "fluid.oneironaut.thought_slurry": "思维浆液",
+
+ "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
+ "oneironaut.entry.dim_iotas": "维度 Iota",
+ "oneironaut.entry.status_iotas": "状态 Iota",
+ "oneironaut.entry.noosphere_main": "奇怪的领域",
+ "oneironaut.entry.noosphere_materials": "富思维材料",
+ "oneironaut.entry.wisp_lanterns": "咒灵设备",
+ "oneironaut.entry.slipway_hint": "有关质道的精思",
+ "oneironaut.entry.miscpatterns": "航梦:杂项图案",
+ "oneironaut.entry.super_budding": "更好地量产媒质",
+ "oneironaut.entry.idea_inscription": "思绪刻印",
+ "oneironaut.entry.sentinel_detection": "哨卫侦测",
+ "oneironaut.entry.detection_shielding": "侦测回避",
+ "oneironaut.entry.raycast_assailant": "反咒术方块",
+ "oneironaut.entry.mindrender": "意识撕裂者",
+ "oneironaut.entry.soulprints": "灵魂印记",
+ "oneironaut.entry.hover_elevator": "悬浮桥链",
+ "oneironaut.entry.flayrevival": "人工意识",
+
+ "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
+ "oneironaut.page.spaceswap.1": "接受均由两个向量组成的两个列表,用于定义两个长方体,以及一个空间印记。所定义的长方体必须保证尺寸与朝向一致。",
+ "oneironaut.page.spaceswap.2": "我不太清楚这个图案具体能做什么,它总是对我喊着什么“特殊维度”。也许它需要这种特殊维度作为中介?",
+ "oneironaut.page.spaceswap.3": "将我所处维度中第一个长方体包含的方块(需在影响范围内)与空间印记对应维度中第二个长方体包含的方块互换。$(l:https://www.desmos.com/calculator/ydbg8zhmyp)消耗以紫水晶粉计,前 1001 个方块遵循对数消耗,之后则按照线性关系增加$(/l)。$(br)不会互换不可破坏的方块。$(br)两维度之一或两者均需为智识界。",
+ "oneironaut.page.spaceswap.4": "两维度之一或两者均需为智识界。",
+ "oneironaut.page.paintconjured.1": "接受一个向量与代表染色剂的物品类型。如果目标方块属于我,则消耗极少量媒质;否则消耗 1 个紫水晶粉。",
+ "oneironaut.page.paintconjured.2": "将所给位置处构筑方块的颜色设置为所给染色剂的颜色;如果传入的是 Null,则将其设置为我意识的颜色。$(br2)不保证对非传统构筑物质有效。",
+ "oneironaut.page.paintconjured.3": "这种效果让人心神愉悦,有点奇怪。就好像它曾用于某个盛大的节庆活动,与会队伍会把自己队的颜色泼洒到对手的领地上,类似于意识层面上的占领。",
+ "hexcasting.spell.oneironaut:dimteleport.samedim": "这个法术什么都不会做,类似让已经在家的人回家。",
+ "oneironaut.page.dim_iotas.1": "我发现了一种新 iota,它们似乎象征着现实本身的某一层面。为方便理解,我决定称其为“空间印记”。",
+ "oneironaut.page.dim_iotas.2": "返回象征着我所处维度的空间印记。消耗极少量媒质。",
+ "oneironaut.page.dim_iotas.3": "返回象征着我哨卫所处维度的空间印记。消耗 1/10 个紫水晶粉。",
+ "oneironaut.page.dim_iotas.4": "返回象征着主世界的空间印记。消耗 1/10 个紫水晶粉。",
+ "oneironaut.page.dim_iotas.5": "返回象征着下界的空间印记。消耗 1/10 个紫水晶粉。$(br)这个法术的施放总有些不够顺畅。也许我需要$(#54398a)再精进我的技术$()……",
+ "oneironaut.page.dim_iotas.6": "接受一个空间印记,返回对应维度中可存在方块的最低和最高海拔。",
+ "oneironaut.page.dim_iotas.7": "接受一个空间印记,返回对应维度中1格距离相当于主世界中的几格距离。",
+ "oneironaut.page.dimteleport.1": "接受一个实体和一个空间印记,将所给实体传送入对应维度的同一位置。消耗 20 个充能紫水晶。$(br2)传入其他玩家时会失效。",
+ "oneironaut.page.dimteleport.2": "如果在离开原先所处维度的同一时刻,用此法术返回该维度,则消耗会减少到 5 个紫水晶粉:法术会捕捉残存的媒质以将我传送回原来的位置。其他情况下,则会在目的地周围找个安全的位置作为目的地,甚至有可能构筑方块以防止坠落而亡。$(br2)我在用这个法术时总有种奇怪的加速感,但我无法理解加速度到底是朝着哪个轴的。",
+ "oneironaut.page.infusemedia.1": "接受一个向量,并向该位置方块中注入媒质,以嬗变该方块。消耗量与具体效果随目标变化而变。",
+ "oneironaut.page.infusemedia.2": "概念上来看,此法术与$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)类似。$(br)然而,这种方法灌注的媒质相较之下经过精细调校,因此能产生更为有意思的效果。",
+ "oneironaut.page.wisp_lanterns.1": "我发现,若是使用了独属于智识界的材料,便能制造出一种特殊的罐子,它能产生并容纳一只微型咒灵。这种咒灵尽管无法施法,但能发出相当的光,还会模拟它看见的染色剂。$(br)我还能用遮光玻璃制造同类物品,避免咒灵的光亮影响到我书房的美学设计。",
+ "oneironaut.page.wisp_lanterns.2": "此外,往这些照明用咒灵里注入大量的媒质,就可强令其分裂自身。新产生的咒灵与质道产生的游走咒灵几乎完全一致。$(br2)以此类方式分裂咒灵的设备接受任意存储媒质的物品,可通过漏斗一类的装置送入。它最多能存储相当于 640 个充能紫水晶的媒质。",
+ "oneironaut.page.wisp_lanterns.3": "给予红石信号即可激活。它每 4 秒产生 1 个咒灵,同时消耗 2 个充能紫水晶。$(br)合成时所用媒质之瓶的容量和媒质量对产物无影响。",
+ "oneironaut.page.wisp_lanterns.4": "还可制造一类完全不消耗(和接受)媒质的设备,它所生成的咒灵拆解后总媒质量为 0。$(br2)闪亮球珠仍在,不见代价惹忧!",
+ "oneironaut.page.wisp_lanterns.5.originaltoolong": "参照类似原理,我设计了一种能够捕获(并容纳)咒灵的设备,之后再释放出去。不过游走咒灵太过不稳定,无法捕获。$(br)此设备的媒质容量为 64 个充能紫水晶(可重充能)。捕获我自己的咒灵消耗 1 个紫水晶碎片,捕获他人的咒灵消耗咒灵中媒质量的 1.5 倍。直接对咒灵使用即可捕获它,吸入外壳中(需有足量媒质,且其中未存有咒灵)。",
+ "oneironaut.page.wisp_lanterns.5": "参照类似原理,我设计了一种能够捕获、存储、释放咒灵的设备,不过它对游走咒灵无效。捕获我自己的咒灵消耗 1 个紫水晶碎片,捕获他人的咒灵消耗相当于 1.5 倍咒灵中媒质量的媒质。直接对咒灵使用即可捕获它,设备自身需有足量媒质,且其中未存有咒灵。",
+ "oneironaut.page.wisp_lanterns.6": "释放循环型咒灵时,它会出现在所指方块的旁边。弹射式咒灵则会从我的脸前发射出去,保留捕获前速度(方向不保留)。潜行时使用物品,即可丢弃存储的咒灵。",
+ "oneironaut.page.wisp_lanterns.7": "初始化此装置的媒质储库时,需手持后对我自己的咒灵使用。该咒灵会消散且无法召回,装置的媒质容量会设为与该咒灵一致,按紫水晶粉向上取整。若需重设此数据(以及其他所有数据与配置),将其单独放在合成方格中合成即可。",
+
+ "oneironaut.page.noosphere_materials.1": "一种奇怪的流体,会搅混进入其中的媒质,并阻止紫水晶晶体的形成。浸在其中时,它会以愉悦的方式刺激我的意识。",
+ "oneironaut.page.noosphere_materials.2": "主要由媒质构成的岩石,原理不明。可合成法术环方块。",
+ "oneironaut.page.noosphere_materials.3.title": "伪紫水晶",
+ "oneironaut.page.noosphere_materials.3": "一大块媒质晶体,与紫水晶类似但不完全相同。触摸时会有种嗡鸣感,就好像媒质在刺激神经一般。不加以特殊措施直接破坏会将其破碎为 1 到 4 块碎片。",
+ "oneironaut.page.noosphere_materials.4": "这些碎片能驱动法术,且比普通紫水晶提供的能量稍多一些。也能用来制造些有趣的物件。",
+ "oneironaut.page.noosphere_materials.5": "一种固态的媒质,由思维浆液在富媒质环境中冻结而得。这种冻结也可由咒术造成。$(br)其表面的摩擦系数似乎为负,任何在其上滑动的事物会无限加速(虽然较慢)。",
+ "oneironaut.page.noosphere_materials.6": "一类极其黏稠的媒质,拥有极为基础的认知能力,与黏菌类似。它通常情况下表现出惰性,但会以类似法术的能力试图困住触碰到它的事物。",
+ "oneironaut.page.slipway_hint.1": "那些质道,它们一定能联通到$(o)某些地方$()。咒灵不会凭空出现。不管我怎么尝试,我最多只能让一根手指穿过那道混沌的裂口。$(br2)我大概是想错了。与其凭蛮力穿过裂口,也许还是尝试平息风暴更为有效。",
+ "oneironaut.page.slipway_hint.2": "大量的调谐媒质应该就能做到……",
+ "oneironaut.page.slipway_hint.2.title": "嗯……",
+ "oneironaut.page.noosphere_main.1": "我成功了。$(br)质道另一端的领域。环境中的媒质多到难以想象。我的意识正朝我尖啸,叫喊着我不应该在这里。但我必须前进。这里就是旅途的下一站。",
+ "oneironaut.page.noosphere_main.2": "我在此勘测的每一件事物似乎主要都由媒质构成,很像构筑物质,但浓度高出了几个数量级。$(br)$(o)就连空气都是媒质。我是怎么呼吸的?$(br2)$(l)我又是怎么能存在于此的?",
+ "oneironaut.page.rod.1": "我发现我能用远古城市中找到的奇怪碎片合成一种奇异的施法物品。$(br)这件物品的奇异之处,就在于集中思维时,它能以每秒 20 次的频率施放其中的咒术,直到产生事故或者我施放终曲和安可时才停止。如此会触发一段冷却时间,通常有大约 1 秒。",
+ "oneironaut.page.rod.2": "回响碎片似乎包含着某种怪异形态的媒质。因此它具有循环自身的倾向,同时会保留一部分上一次施法时的信息。",
+ "oneironaut.page.rod.3": "和$(l:patterns/spells/hexcasting)用于制造传统施法物品的法术$()类似。消耗 10 个充能紫水晶。",
+ "oneironaut.page.rod.4": "使用回响之杖施放时,返回当前循环开始时我的视线向量。",
+ "oneironaut.page.rod.5": "使用回响之杖施放时,返回当前循环开始时我的眼部位置。",
+ "oneironaut.page.rod.6": "使用回响之杖施放时,返回当前循环开始时的时间戳。",
+ "oneironaut.page.rod.7": "接受一个正整数。使用回响之杖施放时,将下一次施法延迟所给数个 1/20 秒。",
+ "oneironaut.page.rod.8": "使用回响之杖施放时,强制停止当前循环。",
+ "oneironaut.page.rod.9": "接受一个正整数。停止当前循环,并将冷却时间从 1 秒缩短至所给数个 1/20 秒。事故造成的冷却不受影响。",
+ "oneironaut.page.rod.10": "接受一个非列表 iota,并将其存入当前循环。该 iota 会在循环结束时丢失。",
+ "oneironaut.page.rod.11": "返回当前循环中存储的 iota。默认为 Null。",
+ "oneironaut.page.rod.12": "检查当前施法者是否正在使用回响之杖,返回一个布尔值。",
+ "oneironaut.page.rod.13": "与威廉姆斯之策略类似,但可在回响之杖被占用时,由其他施法方式施放。",
+ "oneironaut.page.rod.14": "与威廉姆斯之精思类似,但可在回响之杖被占用时,由其他施法方式施放。",
+ "oneironaut.page.rod.15": "检查施法者是否正在使用回响之杖,不要求是在使用当前杖。",
+ "oneironaut.page.rod.16": "回响碎片也可用于制造法杖,不过这种法杖唯一的特殊性质便是发出些幽匿的声音。",
+ "oneironaut.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
+ "oneironaut.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
+ "oneironaut.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
+ "oneironaut.page.miscpatterns.4": "与$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)类似,但能够接受一个实体类型 iota 列表。类型不在该列表内的实体会被忽略。消耗的媒质量略多于上文所提图案的“极少量”。",
+ "oneironaut.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布。",
+ "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
+ "oneironaut.page.super_budding.1": "我发现智识界出产的一种类紫水晶物质会接受村民的意识,这点和普通的紫水晶一样。不过,接受意识所得方块的媒质产量相当高,远超出普通紫水晶母岩的能力,而且只要足够小心就能捡起它搬走。",
+ "oneironaut.page.super_budding.2": "比起使用普通紫水晶来说,使用伪紫水晶需要更强大的意识,但得到的回报绝对值得。",
+ "oneironaut.page.super_budding.3": "此外,在智识界中培育时,伪紫水晶母岩会产生伪紫水晶簇,而不是普通的紫水晶。自然,这些晶簇掉落的是伪紫水晶碎片,但同时也会掉落一种不甚稳定的伪紫水晶,其媒质含量是普通碎片的四倍。正是由于这种不稳定性,此类伪紫水晶无法直接转换为媒质。但把它和其他形态的媒质水晶放在一起,即可令其转变为那种形态。",
+ "oneironaut.page.super_budding.4": "它似乎对我的凝视有了反应,就好像它有某种感知力一样。",
+ "oneironaut.page.super_budding.5": "就算让伪紫水晶母岩浸没在思维浆液中,抑制晶体的形成,它的媒质生成率依然足够平常使用。尽管总供给量近乎无穷,但单个操作能使用的媒质量相当少;就像一片几十万几百万千米宽,但只有几厘米深的海洋。而由于其深度极为有限,在远距获取使用(如为物品充能等)时,其中的媒质会在抵达法杖前迅速消散殆尽。",
+ "oneironaut.page.super_budding.6": "常态提供大约与 1/10 个紫水晶粉相当的媒质。虽然我$(o)可以$()同时持有好多个来轻松获取媒质,但每个媒质瓶带来的增量会快速减少。",
+ "oneironaut.page.super_budding.7": "还可以往缀品里塞一个,以让无穷媒质之瓶为其供应媒质。但是,如此操作后,缀品便不会再接受其他来源的媒质。",
+ "oneironaut.page.super_budding.8": "向另一只手中的无底缀品写入咒术。消耗 10 个充能紫水晶。",
+ "oneironaut.page.idea_inscription.1": "智识界是思维的领域,它能用来存储信息也就顺理成章。这些图案就能把 iota 刻印入智识界,并能读出它们(不论当前身处什么维度)。它们还能把 iota 存储到其他生物的意识中,当然它们的意识也需和我一样……$(o)无拘无束$()。在相关描述中,用于指代向量和有效实体的词是“键”/“key”。",
+ "oneironaut.page.idea_inscription.2": "这种操作用途不少,但智识界的环境媒质处于常态的运动中,任何存入其中的 iota 终会消解,和往海洋中倒热水没什么区别。似乎这种信息在变为无用的垃圾前能存在一小时。$(br2)$(l:greatwork/akashiclib)阿卡夏图书馆$(/l)的原理貌似与之类似,书架则相当于用来避免消解的阻隔层。",
+ "oneironaut.page.idea_inscription.3": "接受一个有效键以及任意 iota,并将所给 iota 存入相应位置。消耗大约 1/4 个紫水晶粉。",
+ "oneironaut.page.idea_inscription.4": "接受一个有效键,并返回相应 iota。消耗大约 1/4 个紫水晶粉。",
+ "oneironaut.page.idea_inscription.5": "接受一个有效键, 并返回刻印对应 iota 的时间,或是返回 -1。不消耗媒质。",
+ "oneironaut.page.idea_inscription.6": "接受一个有效键和一个代表玩家的 iota,并检验对应 iota 是否由所给玩家刻印。不消耗媒质。",
+ "oneironaut.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
+ "oneironaut.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
+ "oneironaut.page.sentinel_detection.1": "将智识界的伪紫水晶和深暗之域的有机感测体结合起来,就是一种检测环境媒质中扰动的方式。这种新探测器会检测大约 16 米内的$(l:patterns/spells/sentinels)哨卫$(/l),检测到则会根据最近哨卫的距离输出红石信号。如果最近的哨卫格外强大,则相邻的比较器会输出信号。",
+ "oneironaut.page.sentinel_detection.2": "$(o)我相信监守者不会在意的。$()",
+ "oneironaut.page.sentinel_detection.3": "除此之外,这种探测器还可整合到牧师促动石中,产物会在区域内存在哨卫时启动(不过探测半径较普通探测器较低)。我叫这种装置“探察促动石”。尽管它不再对红石信号产生反应,但会获取代表触发哨卫的所有者的 iota,并置入法术环咒术的初始栈。$(br)而由于施法时产生的媒质干扰,这种促动石无法侦测到自身放置的哨卫。",
+ "oneironaut.page.sentinel_detection.4": "这种探测器不论侦测到谁的哨卫都为产生反应,我应当避免让我铺设的陷阱法术环瞄准我自己。",
+ "oneironaut.page.sentinel_detection.5": "接受一个向量和一个玩家,并返回该位置到所给玩家哨卫的距离,或者返回 Null。消耗极少量媒质。",
+ "oneironaut.page.sentinel_detection.6": "在所给位置坐标构筑一个短时探测器,它会“监听”环境媒质中的存在形态,以此分辨出最为明显的哨卫标记。",
+ "oneironaut.page.detection_shielding.1": "传统的隐身药水足以迷惑常人的感官,但面对咒术则毫无作用,让事物完全无法侦测的方法还有待发现。然而,我找到的这个法术应当是向上述目标迈出的第一步。它能让媒质像糠皮一样盖在生物周围,以此干扰咒术的侦测手段。",
+ "oneironaut.page.detection_shielding.2": "接受一个生物和一个数,并给予该实体持续所给数秒的咒术侦测护盾。每秒持续时间消耗 2 个紫水晶粉。",
+ "oneironaut.page.detection_shielding.3": "同时每秒会消耗所影响实体 1/10 个紫水晶粉,护盾的构筑需要这些媒质。$(br2)我需要注意我把这种效果给予了什么事物,因为没有携带其他媒质来源的生物会消耗自身的意识来供给护盾。",
+ "oneironaut.page.detection_shielding.4": "这种护盾在阻挡$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)和各种$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$(/l)时效果良好,但它对$(l:patterns/entities#hexcasting:get_entity)实体之纯化$(/l)的变种没有作用,那些操作已经包含所处位置的精确概念。而且,这层糠皮自身也有能量特征,尽管暗淡,依然可用特种图案侦测。",
+ "oneironaut.page.detection_shielding.5": "接受一个向量和一个数,并返回以所给位置为起始,指向范围内带有遮罩的实体的单位向量列表,侦测半径为所给数。",
+ "oneironaut.page.detection_shielding.6": "我还发现了能给予普通隐身效果的法术。和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,每 3 秒持续时间消耗 1 个紫水晶粉。",
+ "oneironaut.page.raycast_assailant.1": "往方块中“织入”伪紫水晶,产物便能令抵达或穿过其的射线追踪(对实体的射线追踪也有效)返回 Null,就好像射线追踪没有检测到任何事物一样。",
+ "oneironaut.page.raycast_assailant.3": "奇怪的是,以同种方式加工伪紫水晶和黑曜石的产物不具备阻碍射线追踪的能力,而是变得近乎无法被咒术摧毁。不过,产物的硬度也因此大幅下降,变得和普通石头没什么两样(爆炸抗性不变)。",
+ "oneironaut.page.status_iotas.1": "这些图案主要操作代表生物身上长时效果的 iota,我可以用这些图案评估生物的状态,比只用护士之纯化更加深入彻底。$(br)虽然我的研究表明,代表瞬时效果的状态 iota 有存在的可能,但它们非常难以获取,而且我目前没想到它们有什么用途。",
+ "oneironaut.page.status_iotas.2": "接受一个生物,并返回目标当前所有效果组成的列表 iota。",
+ "oneironaut.page.status_iotas.3": "接受一个状态效果,并根据该效果对生物产生正面、负面,或中性影响返回一个数。",
+ "oneironaut.page.status_iotas.4": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的持续时间,以秒计。",
+ "oneironaut.page.status_iotas.5": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的强度。",
+ "oneironaut.page.status_iotas.6": "接受一个状态效果和一个向量,并返回该处带有该状态效果的实体。",
+ "oneironaut.page.status_iotas.7": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有带有给定状态效果生物的列表。",
+ "oneironaut.page.status_iotas.8": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有无给定状态效果生物的列表。",
+ "oneironaut.page.status_iotas.9": "接受一个实体和一个状态效果,并移除该实体身上的所给状态效果。消耗由效果自身的伤害性、强度、剩余持续时间决定。",
+ "oneironaut.page.status_iotas.10": "若是要移除非自身实体身上的正面效果,则消耗会增加。$(br2)所有需要检测实体身上有无所给状态效果的图案都有副作用。如果该实体当前没有这种效果,则图案会失效,并给予我反胃。",
+ "oneironaut.page.mindrender.1": "我曾读到过一种极其可怖的武器,“意识撕裂者”。古代的咒术师偶尔会用这种武器,它能将生物的思维直接斩断,造成的伤害无视所有已知保护手段。而且,如果造成的伤害令目标离真正的死亡仅一步之遥,则其会进入植物人状态,永远无法恢复如初。想到古代人使用这种物件的原因,我不由得寒透脊骨……",
+ "oneironaut.page.mindrender.2": "接受带有锋利魔咒的物品,或放有此类物品的物品展示框,并将锋利转换为同等级的意识撕裂。消耗由魔咒等级决定,目标为书时额外消耗 50%%。",
+ "oneironaut.page.lore.treatise1.1": "虽然施放咒术时能直接产生大多数 iota,但总会有不够便捷的情况,甚至于无法产生(例如庞大而精确的数和实体 iota)而不得不另辟蹊径。从核心之类的物品中读取 iota 也不错,但大多数情况下这么做需要第三只手,我很明显没有。从外部位置获取 iota 的其他方法也各有各的局限性。",
+ "oneironaut.page.lore.treatise1.2": "而在无外部引用手段可用的情况下,所需的 iota 必须直接插入咒术本身。对部分人而言,这么做会有些不合常理。这是因为传统上的咒术是一个图案列表,但图案自己也是一种 iota,一种与$(l:patterns/meta#hexcasting:eval)赫尔墨斯之策略$(/l)(以及同类图案)协同效果很好的 iota。",
+ "oneironaut.page.lore.treatise1.3": "尽管你没法直接把数放到列表里面,然后让它和使用$(l:patterns/numbers)数字之精思$(/l)一样压入栈顶,但有方法能做到。$(br2)最简单(也是最可靠)的方法是$(l:patterns/patterns_as_iotas#hexcasting:escape)考察$(/l)。和手动施法时一样,列表中其后方的任意事物会被转义并直接压入栈顶,而非和平时一样运行,如此就可避免运行非图案导致的事故。",
+ "oneironaut.page.lore.treatise1.4": "然而,当你位于咒术中超过一层运行深度处(比如循环和嵌套的条件逻辑),转义 iota 所需的考察数量会极速增长。在那些能够由另一咒术运行的事物中,这种方法便不再可靠。",
+ "oneironaut.page.lore.treatise1.4.link": "相关的 xkcd",
+ "oneironaut.page.lore.treatise1.5": "更为可靠的转义 iota 方法是$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(/l)和$(l:patterns/patterns_as_iotas#hexcasting:close_paren)反思$(/l)。运行图案列表时,内省后方直到相应反思之间(内省和反思不计)的事物会被转义,并以列表形式压入栈顶,不论 iota 的类型如何。然后就可以用合适方式操作此列表,比如用$(l:patterns/lists#hexcasting:splat)群体之拆解$(/l)把列表中各项分别压入栈顶。",
+ "oneironaut.page.lore.treatise1.6": "如果你的列表的结构与此类似:$(br2)内省$(br)任意 iota(s)$(br)反思$(br)群体之拆解$(br2)运行这些 iota 之后,栈中会压入内省与反思之间的所有 iota。",
+ "oneironaut.page.lore.treatise2.1": "推动事物的标准做法是$(l:patterns/spells/basic#hexcasting:add_motion)驱动$(/l)。但是,如果想要事物极为迅速地移动,这种方法可能会昂贵到无法使用。这是因为消耗会随向量模长增大而极速增长。对单个目标使用多次模长为 1 的驱动就能减少这种影响,总消耗会从 n^2 降到 2n-1,其中 n 是向量的模长。",
+ "oneironaut.page.lore.treatise2.2": "这种方法最简单的实现方式需要$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l),传入多个重复的实体 iota 组成的列表即可。当然也有其他(且通常更好的)方法存在。但除去重复绘制图案外,这些方法大多离不开循环这一命题,这就有点超出这篇文档的范畴了。",
+ "oneironaut.page.lore.treatise3.1": "虽然$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l)极其适合同时对多个目标施放同一法术,但对同一目标施放多次法术就有点麻烦了。它不仅容易导致咒术的停止,运行开始后还无法添加或移除作用目标。$(br)而绕过这些局限也很简单,换用另一种循环即可。",
+ "oneironaut.page.lore.treatise3.2.header": "While 循环",
+ "oneironaut.page.lore.treatise3.2": "While 循环是一种在既定条件达成之前一直运行的循环,条件可以是实体的速度达到了给定值等。一个仅会复制自身再运行栈顶 iota 的图案列表就是这种循环最简单的实现方式。如果单独运行它,那么咒术会进入无限循环,除非产生事故不然不会停止。",
+ "oneironaut.page.lore.treatise3.3": "向其中加入实际功能和一些布尔逻辑,就能创造出有用的 while 循环。前文所提无限循环的代码如下:$(br)内省$(br)双子之分解$(br)赫尔墨斯之策略$(br)反思$(br)双子之分解$(br)赫尔墨斯之策略$(br2)向其中加入根据条件是否运行列表内赫尔墨斯之策略的逻辑,达成相应条件后循环便会终止。",
+ "oneironaut.page.lore.treatise3.4.header": "循环展开",
+ "oneironaut.page.lore.treatise3.4": "“已展开循环”/“Unrolled loop”是一种更为复杂的循环。和托特之策略一样,构建时其迭代次数同样固定,难以增加修改。但如有需要,卡戎之策略可以令其提前停止。比较来看,这种循环仅产生一到两层递归深度(循环体运行所致深度不计),是其优势所在。先写定想要重复的图案列表,再多次复制,最后把所有列表合成一体,就实现了循环展开。",
+ "oneironaut.page.lore.treatise3.5": "这一目标最简单的达成方式是$(l:patterns/stackmanip#hexcasting:duplicate)双子之分解$(/l)接$(l:patterns/lists#hexcasting:concat)组合之馏化$(/l),运行后原列表会重复 2 次。可重复使用此方法以复制原列表 2 的幂次,所得的列表在运行时只会产生一层递归深度。更灵活的做法则是使用$(l:patterns/stackmanip#hexcasting:duplicate_n)双子之策略$(/l)产生 $(o)n$() 个副本,再将 $(o)n-1$() 个组合之馏化放入列表并运行,如此便能把所有原列表副本合为一体。",
+ "oneironaut.page.lore.treatise4.1": "我的一些呃,“同事”,在抄录长咒术时遇到了麻烦。$(br)“这东西好长!”$(br)“咒术网格都不够用了!”$(br)我认为这是$(bold)能力问题$()。这又不是那些绘制完最后一个反思后没法修改咒术的麻烦。只需把未完成的咒术存到核心中即可。(不过你应该注意为存储操作留出空间。)",
+ "oneironaut.page.lore.treatise4.2": "完成之后,再用$(l:patterns/lists)列表操作$(/l)图案把各部分合起来就行了。$(br2)甚至都不需要用多个核心,写完一部分后把它接到核心中列表的后方,再把所得列表存入核心即可。多核心会让调试咒术更轻松,但据我目前所知,这也是多核心相对单核心唯一的优势。",
+ "oneironaut.page.lore.science1.1": "$(o)“这是什么?我该怎么把它弄走?”$()$(br)大多数人在第一次遇见质道时都会产生这些疑问。我对第二个问题暂时没有答案,但回答第一个问题还是可以的。$(br)就我所知,质道是空间中的微小孔洞,其另一侧是称作“智识界”的媒质界。",
+ "oneironaut.page.lore.science1.2": "质道中逸散的类咒灵现象是智识界中巨量的环境媒质试图迅速通过孔洞的结果(就像是气体扩散入接近真空的空间),这些媒质的纠缠卷绕方式与召唤咒灵法术中编织供咒灵消耗的媒质的方式类似。",
+ "oneironaut.page.lore.science1.3": "此外,质道的入口处似乎存在某种屏障,任何物质都会被阻挡不得通过。如果这一屏障可被穿透,孔洞可被扩展,质道就可将物质吸收入智识界。这么做后质道不会再产生咒灵,是媒质的通过速度大大降低,不会再受扰动而缠绕的缘故。如果想要尝试,就需小心不要过度扩展,否则周围区域都有被吸收入智识界的危险。",
+
+ "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
+
+ "oneironaut.page.lore.science2.1": "真是个奇怪的地方。组成此处海洋的液体不比水致密多少,那些岛屿由密度类似玄武岩的岩石构成,却能浮在其中。而且,此处的所有事物都似乎瞬息万变,如梦似幻。但我比从前任何时候都要清醒,这又怎么会是梦境?",
+ "oneironaut.page.lore.science2.2": "这种清醒感应当是此处环境媒质的效果,它会润滑我的思维。这里的媒质浓度甚至超过了咒灵的核心,它们的天然消耗也因此缩减到无穷小。有趣的是,那些带有某人灵魂印记的咒灵不会受此效应影响,因此咒灵无法用于长时存储真名。$(br)这些环境媒质甚至会从足够大的维度裂缝中渗漏出去,正是它维持了裂隙另一侧距离足够近的咒灵的形态。",
+ "oneironaut.page.lore.science3.1": "这种晶体很是有趣。一件仅由媒质构成的物体,浓度超越了传统的构筑方块,甚至超越了我在图书馆中的同事们研究的那些致密媒质晶体。连媒质密度相近的紫水晶中的都有痕量二氧化硅,此晶体中却完全不存在杂质。而令其静置一段时间后,晶体粉末会以分形模式累积,就好像在持续不断地施法。",
+ "oneironaut.page.lore.science3.2": "我在显微镜下详细检验了这种晶体,可观察到这些分形状结构会向晶体内部延伸,且会以固定模式一直变化。这有无可能是一种时间晶体?",
+ "oneironaut.page.glow_ambit.1": "尽管经过了长久的研究,代表其他咒术师的 iota 中仍有些特殊性质的由来未能厘清。不过,我找到了一种赋予其他事物同样性质的方法,不敢说持久,但至少能暂时做到。(还很昂贵。)$(br)这种法术允许施法者跨越极远的距离影响生物,就和玩家 iota 的无限影响距离一样。但对目标施放这种法术时,依然需要离目标足够近。",
+ "oneironaut.page.glow_ambit.2": "接受一个活体,在 1 分钟内即可在世界各处访问所给活体。基础消耗 1 个紫水晶碎片,在效应消退前每施放一次额外消耗 1 个紫水晶碎片。",
+ "oneironaut.page.glow_ambit.3": "这种效果的原理似乎是让目标散发出某种超自然共振。这种共振相当强大,目标的轮廓隔着各种形式的障碍依然“可见”。(咒术师们也许就在持续产生这种共振,只不过是没有如此效果显著?)但是,这种辉光与光灵箭等造成的辉光不一样,不要指望监测那种辉光的仪器对这种也有效。",
+ "oneironaut.page.soulprints.1": "灵魂印记和代表我自己的 iota 类似,功能中也有“代表我”这一项,但使用的限制会多出许多。除了通过我本人之外,他人没有方式获得灵魂印记,不过这些灵魂印记不受写入限制,和普通的玩家 iota 不一样。$(br2)有意思的是,灵魂印记也是$(l:oneironaut:patterns/idea_inscription)思绪刻印$(/l)的有效键。",
+ "oneironaut.page.soulprints.2": "返回我自己的灵魂印记,使用除法杖之外的施法手段时会招致事故。消耗极少量媒质。",
+ "oneironaut.page.soulprints.3": "将我的灵魂印记隐写到另一只手中的物品上,若已有灵魂印记则清除。消耗 1 个紫水晶粉。$(br)签印物品前要注意先将核心一类的物品密封,经过签印的未密封核心有身份泄露的风险,清除物品会同时去除签印。",
+ "oneironaut.page.soulprints.4": "接受一个灵魂印记,并检查我另一只手中物品上是否有对应的隐写。若有,返回 True;否则返回 False。消耗极少量媒质。",
+ "oneironaut.page.hover_elevator.1": "使用原产于智识界的材料,再加上与飘浮有关的原材料,做出的设备能够产生具有推动力的能量流;我站在其中也会被推动,而且很难摔出来。使用时必须令其朝向另外一个此类设备,也即两个此类设备需面对面放置。放置妥当后,两端均需以",
+ "oneironaut.page.hover_elevator.2": "红石信号激活,若两者在各自范围内(水平方向 64 米,垂直方向 128 米),则其间会产生能量流。走入能量流后我会被固定在原地;往两端中的一端看时,会向该方向加速至最大速度。此最大速度与我的视线与能量流的平行程度成正比。潜行时会强制将我锁定在原地,无论往哪个方向看都是如此。",
+ "oneironaut.page.hover_elevator.3": "$(o)在真的用这东西之前,我最好还是穿双远距防摔靴当保险。",
+ "oneironaut.page.hover_elevator.meme":"$(o)淘气的咒术师会被送到飘浮方块里去喔。",
+ "oneironaut.page.hover_elevator.4": "此外,还可以制造一个中继器,用于延长端设备的范围。经过此中继器的能量流会恢复至其刚离开端设备的状态。如此强大的器具自然需要强大的组件,但就算如此,能量流在经过 3 个中继器后,也会因太过不稳定而无法维持。",
+ "oneironaut.page.hover_elevator.5": "好在由于某种原因,此设备并没有传统意义上的实体;也即在能量流中移动时可以直接穿过去,而不需要小心翼翼地绕过。$(br)$(o)不会的,它不会在延续能量流之前顿一下的。",
+ "oneironaut.page.flayrevival.1": "剥离完意识的村民、或是被$(l:oneironaut:items/mindrender)意识撕裂者$(/l)摧残到仅剩最后一丝气息的生物,它们都变成了毫无用途的空壳,我对此相当苦恼。尽管它们$(o)确实$()能自己完成少数几种任务;但除此之外的大多数任务就连无智慧可言的野兽都能做好,它们却无能为力了。好在我发现了一个法术,能让这些空壳具有某种程度的认知能力。",
+ "oneironaut.page.flayrevival.2": "接受一个已剥离意识的生物,并创造一个人工伪意识融入其中。对村民使用时消耗 16 个充能紫水晶,其余情况消耗 10 个紫水晶碎片。",
+ "oneironaut.page.flayrevival.3": "这些伪意识确实能驱动躯体,一如身体的原主人,但它们离真正的所谓智慧还差得远,换成适用于村民的宽松定义也是一样。因此,以此方法“恢复正常”的村民会失去先前的职业经验,也无法再获取此类经验了。",
+ "oneironaut.page.flayrevival.4": "不过,他们依然保留了繁衍的能力。他们的后代不会受到我先前行为的影响。$(br2)我不太确定为什么村民恢复后都喜欢上了绿色的衣物,但这种性质确实方便我辨识哪些村民不堪大用。",
+ "oneironaut.page.monkfruit.1": "我发现对甜浆果丛使用$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)法术能变出一种相当有趣的植物。它和原来的灌木很像,但它的棘刺中融有媒质场,能吸走其刺中的生物的意识以让自己生长。它不刺人也能生长(虽然很慢),但仍需周围存在具有意识的生物才能结出少量媒质。",
+ "oneironaut.page.monkfruit.2": "它结出的果实相当甜,且能加工处理成糖。而且,食用一颗似乎能向空气释放出些许媒质,又会进一步为我身上可以重新填充媒质的物品充入媒质。摘果子时务必要小心灌木中的刺。",
+ "oneironaut.page.monkfruit.3": "成熟植株上剪下的枝条依然具有这些危险的性质,可以用来合成一把不祥的刀。$(br2)这把刀和附有低等级$(l:oneironaut:items/mindrender)意识撕裂$(/l)魔咒的剑类似,但它更为精确:撕裂意识时能把对形体的附带损伤降到最低。如果我有这个想法,当然可以把它用作普通的冷兵器,但确实要承担杀死目标的风险。",
+ "oneironaut.page.monkfruit.4": "$(o)这又不是什么高端科技。$()",
+
+ "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
+ "oneironaut.advancements.noosphere.enter": "思维与梦的领域",
+ "oneironaut.advancements.noosphere.enter.description": "进入智识界",
+ "oneironaut.advancements.noosphere.find_tower": "永存经典",
+ "oneironaut.advancements.noosphere.find_tower.description": "发现一座属于身份不详的咒术师的高塔",
+ "oneironaut.advancements.noosphere.find_media_lab": "结晶",
+ "oneironaut.advancements.noosphere.find_media_lab.description": "发现一次结局惨淡的实验",
+ "oneironaut.advancements.noosphere.find_garden": "搁浅",
+ "oneironaut.advancements.noosphere.find_garden.description": "发现一个不幸灵魂最后停留之处的遗迹",
+ "oneironaut.advancements.lore.root": "航梦故事",
+ "oneironaut.advancements.lore.root.description": "失落于时间的记忆",
+ "oneironaut.advancements.lore.treatise1": "咒术师的记忆,#1",
+ "oneironaut.advancements.lore.treatise1.description": "有关iota嵌入的精思",
+ "oneironaut.advancements.lore.treatise2": "咒术师的记忆,#2",
+ "oneironaut.advancements.lore.treatise2.description": "有关有效利用驱动的精思",
+ "oneironaut.advancements.lore.treatise3": "咒术师的记忆,#3",
+ "oneironaut.advancements.lore.treatise3.description": "有关重复图案的精思",
+ "oneironaut.advancements.lore.treatise4": "咒术师的记忆,#4",
+ "oneironaut.advancements.lore.treatise4.description": "有关长咒术的精思",
+ "oneironaut.advancements.lore.science1": "科学家的记忆,#1",
+ "oneironaut.advancements.lore.science1.description": "有关质道本质的研究",
+ "oneironaut.advancements.lore.science2": "科学家的记忆,#2",
+ "oneironaut.advancements.lore.science2.description": "有关智识界性质的研究",
+ "oneironaut.advancements.lore.science3": "科学家的记忆,#3",
+ "oneironaut.advancements.lore.science3.description": "有关伪紫水晶结构的研究",
+ "oneironaut.advancements.unflay": "回收!",
+ "oneironaut.advancements.unflay.description": "你肯定不会直接丢掉的!",
+ "oneironaut.advancements.ouchie": "好痛!",
+ "oneironaut.advancements.ouchie.description": "难道觉得不会痛吗?",
+
+ "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
+ "hexcasting.mishap.oneironaut:badcuboid.mismatch": "提供的长方体尺寸不相同。",
+ "hexcasting.mishap.oneironaut:badcuboid.toobig": "提供的长方体尺寸过大。",
+ "hexcasting.mishap.oneironaut:uninfusable": "本应在%s处有一个可灌注方块,而实际为%s。",
+ "hexcasting.mishap.oneironaut:nonconjured": "本应在%s处有一个构筑的方块,而实际为%s。",
+ "hexcasting.mishap.oneironaut:nonoosphere": "互换的其中一方需为一个特殊维度。",
+ "hexcasting.mishap.oneironaut:norod": "需要以回响之杖施放。",
+ "hexcasting.mishap.oneironaut:norodremote": "需要手持启动的回响之杖。",
+ "hexcasting.mishap.oneironaut:missingeffect": "%s本应拥有%s,而实际没有。",
+ "hexcasting.mishap.oneironaut:missingenchant": "%s本应带有%s魔咒,而实际没有。",
+ "hexcasting.mishap.oneironaut:unhappyslime": "黏液说道:“%s”",
+ "hexcasting.mishap.oneironaut:norequirediota": "黏液需要%s",
+ "hexcasting.mishap.oneironaut:requiresdifferententities": "一个与目标不同的实体",
+ "hexcasting.mishap.oneironaut:nostaff": "%s本应由法杖施放。",
+ "oneironaut.mishap.noitemframe": "一个物品展示框",
+ "oneironaut.mishap.invalidideakey": "一个向量、玩家或灵魂印记",
+ "oneironaut.mishap.unenlightenedtarget": "一个经过启迪的玩家",
+ "oneironaut.mishap.notbrainswept": "一个剥除意识的村民",
+ "oneironaut.mishap.badentitykey": "一个经过启迪的玩家或剥除意识的村民",
+ "oneironaut.mishap.nolistsallowed": "一个非列表iota",
+ "oneironaut.mishap.entitytypelistplease": "一个实体类型列表",
+ "oneironaut.mishap.wrongsizelist": "列表长度不合适。",
+ "oneironaut.mishap.twovectorsplease": "列表未包含两个向量。",
+ "oneironaut.mishap.requiresflayedmob": "%s本应获取一个已剥离意识的生物,而实际为%s。",
+ "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "一个空间印记",
+ "hexcasting.mishap.invalid_value.class.oneironaut:status": "一个状态效果",
+ "hexcasting.mishap.invalid_value.class.oneironaut:visiblestatus": "一个可检测的状态效果",
+ "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "一个灵魂印记",
+
+ "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
+ "hexcasting.iota.oneironaut:dim": "维度",
+ "hexcasting.iota.oneironaut:potion": "状态效果",
+ "hexcasting.iota.oneironaut:uuid": "灵魂印记",
+ "hexcasting.iota.oneironaut:uuid.label": "%s的灵魂印记",
+ "biome.oneironaut.noosphere_sea": "智识之海",
+ "text.oneironaut.clearIdeasResponse": "已清除iota存储映射。",
+ "effect.oneironaut.detection_resistance": "媒质遮罩",
+ "effect.oneironaut.not_missing": "扬升共振",
+ "effect.oneironaut.missing": "损坏的状态效果iota",
+ "enchantment.oneironaut.overcast_damage": "意识撕裂",
+ "itemGroup.oneironaut.oneironaut": "航梦",
+ "oneironaut.tooltip.wispcapturedevice.haswisp": "包含具有%s个紫水晶粉、咒术印识为%s的咒灵。",
+ "oneironaut.tooltip.wispcapturedevice.nowisp": "没有咒灵。",
+ "oneironaut.tooltip.wispcapturedevice.uninitialized": "媒质储库未初始化。",
+ "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
+}
diff --git a/projects/1.20-fabric/assets/modrinth-merlingsgrace/merlingsgrace/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-merlingsgrace/merlingsgrace/lang/en_us.json
new file mode 100644
index 000000000000..27b9ae344d4f
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-merlingsgrace/merlingsgrace/lang/en_us.json
@@ -0,0 +1,6 @@
+{
+ "hexcasting.action.merlingsgrace:merlingsgrace": "Merling's Grace",
+ "hexcasting.mishap.wrong_origin.single": "Can only be cast by a %s",
+ "merlingsgrace.entry.merlingsgrace": "Merling's Grace",
+ "merlingsgrace.page.merlingsgrace": "Applies $(thing)Dolphin's Grace/$. Costs one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds. Can only be cast by Merlings"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-merlingsgrace/merlingsgrace/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-merlingsgrace/merlingsgrace/lang/zh_cn.json
new file mode 100644
index 000000000000..b4eeb10b722c
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-merlingsgrace/merlingsgrace/lang/zh_cn.json
@@ -0,0 +1,6 @@
+{
+ "hexcasting.action.merlingsgrace:merlingsgrace": "人鱼族的恩惠",
+ "hexcasting.mishap.wrong_origin.single": "只能由%s施放",
+ "merlingsgrace.entry.merlingsgrace": "人鱼族的恩惠",
+ "merlingsgrace.page.merlingsgrace": "给予$(thing)海豚的恩惠/$。每 3 秒消耗 1 个$(l:items/amethyst)$(item)紫水晶粉/$。只能由人鱼族施放。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/oneironaut/oneironaut/README.md b/projects/1.20-fabric/assets/oneironaut/oneironaut/README.md
new file mode 100644
index 000000000000..dc96bb82d960
--- /dev/null
+++ b/projects/1.20-fabric/assets/oneironaut/oneironaut/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/oneironaut/oneironaut)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
new file mode 100644
index 000000000000..3757b38851b8
--- /dev/null
+++ b/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
@@ -0,0 +1,323 @@
+{
+ "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
+ "hexcasting.action.oneironaut:getdim1": "Spatial Reflection",
+ "hexcasting.action.oneironaut:getdim2": "Spatial Reflection II",
+ "hexcasting.action.oneironaut:getdim/overworld": "Homeland Reflection",
+ "hexcasting.action.oneironaut:getdim/nether": "Inferno Reflection",
+ "hexcasting.action.oneironaut:getdimheight": "Atlas' Decomposition",
+ "hexcasting.action.oneironaut:getdimscale": "Ratio Purification",
+ "hexcasting.action.oneironaut:dimteleport": "Noetic Gateway",
+ "hexcasting.action.oneironaut:infusemedia": "Media Infusion",
+ "hexcasting.action.oneironaut:swapspace": "Spatial Interchange",
+ "hexcasting.action.oneironaut:craftrod": "Conduct Rod",
+ "hexcasting.action.oneironaut:getrodlook": "Baton Reflection",
+ "hexcasting.action.oneironaut:getrodpos": "Baton Reflection II",
+ "hexcasting.action.oneironaut:getrodstamp": "Metronome Reflection",
+ "hexcasting.action.oneironaut:delayrod": "Metronome Gambit",
+ "hexcasting.action.oneironaut:haltrod": "Finale",
+ "hexcasting.action.oneironaut:resetrod": "Encore",
+ "hexcasting.action.oneironaut:readrodram": "Williams' Reflection",
+ "hexcasting.action.oneironaut:writerodram": "Williams' Gambit",
+ "hexcasting.action.oneironaut:readrodramremote": "Williams' Reflection II",
+ "hexcasting.action.oneironaut:writerodramremote": "Williams' Gambit II",
+ "hexcasting.action.oneironaut:queryrod": "Conductor's Reflection",
+ "hexcasting.action.oneironaut:rodloopactive": "Conductor's Reflection II",
+ "hexcasting.action.oneironaut:craftbottomlesstrinket": "Craft Bottomless Trinket",
+ "hexcasting.action.oneironaut:writeidea": "Inscribe Idea",
+ "hexcasting.action.oneironaut:readidea": "Retrieve Idea",
+ "hexcasting.action.oneironaut:readideatime": "Metadata Purification",
+ "hexcasting.action.oneironaut:readideawriter": "Metadata Distillation",
+ "hexcasting.action.oneironaut:readsentinel": "Scrutinize Sentinel",
+ "hexcasting.action.oneironaut:resistdetection": "Stealth Shroud",
+ "hexcasting.action.oneironaut:detectshroud": "Discern Shroud",
+ "hexcasting.action.oneironaut:circle": "Circle",
+ "hexcasting.action.oneironaut:applymindrender": "Empower Mind Render",
+ "hexcasting.action.oneironaut:reviveflayed": "Instill Psyche",
+ "hexcasting.action.oneironaut:advanceautomaton": "Cellular Generation",
+ "hexcasting.action.oneironaut:applynotmissing": "Uplifting Resonance",
+ "hexcasting.action.oneironaut:getsoulprint": "Soulprint Reflection",
+ "hexcasting.action.oneironaut:signitem": "Sign Item",
+ "hexcasting.action.oneironaut:checksignature": "Signature Purification",
+
+ "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
+ "item.oneironaut.pseudoamethyst_shard": "Pseudoamethyst Shard",
+ "item.oneironaut.shifting_pseudoamethyst": "Shifting Pseudoamethyst",
+ "item.oneironaut.thought_slurry_bucket": "Thought Slurry Bucket",
+ "item.oneironaut.reverberation_rod": "Reverberation Rod",
+ "item.oneironaut.endless_phial": "Inexhaustible Phial",
+ "item.oneironaut.bottomless_trinket": "Bottomless Trinket",
+ "item.oneironaut.echo_staff": "Echo Staff",
+ "item.oneironaut.beacon_staff": "Magitech Staff",
+ "item.oneironaut.spoon_staff": "Spoon",
+ "item.oneironaut.pigment_flame": "Flame Pigment",
+ "item.oneironaut.pigment_echo": "Echo Pigment",
+ "item.oneironaut.pigment_noosphere": "Noetic Pigment",
+ "item.oneironaut.pigment_frenzyflame": "Frenzy Pigment",
+ "item.oneironaut.memory_fragment": "Memory Fragment",
+ "item.oneironaut.memory_fragment.all": "It seems I've consumed all the memories that this crystal can offer me...",
+ "item.oneironaut.wisp_capture_device": "Wisp Wrangler",
+ "item.oneironaut.mind_scalpel": "Synaptic Scalpel",
+ "item.oneironaut.monkfruit": "Monkfruit",
+ "item.oneironaut.rending_thorns": "Rending Thorns",
+
+ "block.oneironaut.noosphere_gate": "Inscrutable Rift",
+ "block.oneironaut.pseudoamethyst_block": "Pseudoamethyst Block",
+ "block.oneironaut.pseudoamethyst_cluster": "Pseudoamethyst Cluster",
+ "block.oneironaut.pseudoamethyst_bud_small": "Small Pseudoamethyst Bud",
+ "block.oneironaut.pseudoamethyst_bud_medium": "Medium Pseudoamethyst Bud",
+ "block.oneironaut.pseudoamethyst_bud_large": "Large Pseudoamethyst Bud",
+ "block.oneironaut.thought_slurry": "Thought Slurry",
+ "block.oneironaut.thought_slurry_flowing": "Flowing Thought Slurry",
+ "block.oneironaut.noosphere_basalt": "Noosphere Basalt",
+ "block.oneironaut.wisp_lantern": "Wisp Lantern",
+ "block.oneironaut.wisp_lantern_tinted": "Tinted Wisp Lantern",
+ "block.oneironaut.super_budding": "Budding Pseudoamethyst",
+ "block.oneironaut.sentinel_sensor": "Sentinel Sensor",
+ "block.oneironaut.raycast_blocker": "Anti-Raycast Slate",
+ "block.oneironaut.raycast_blocker_glass": "Anti-Raycast Glass",
+ "block.oneironaut.sentinel_trap": "Seer Impetus",
+ "block.oneironaut.circle": "§0§oCircle",
+ "block.oneironaut.hex_resistant_block": "Hex-Warded Obsidian",
+ "block.oneironaut.media_ice": "Sagely Ice",
+ "block.oneironaut.media_ice_frosted": "Transient Sagely Ice",
+ "block.oneironaut.media_gel": "Plasmodial Psyche",
+ "block.oneironaut.cell": "Dissonant Psyche",
+ "block.oneironaut.wisp_battery": "Wisp Weaver",
+ "block.oneironaut.decorative_wisp_battery": "Lesser Wisp Weaver",
+ "block.oneironaut.hover_elevator": "Hexcaster's Hoverlift",
+ "block.oneironaut.hover_repeater": "Hoverlift Repeater",
+ "block.oneironaut.monkfruit_bush": "Monkfruit Bush",
+ "block.oneironaut.spacebomb": "Slipcharge",
+
+ "fluid.oneironaut.thought_slurry": "Thought Slurry",
+
+ "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
+ "oneironaut.entry.dim_iotas": "Dimension Iotas",
+ "oneironaut.entry.status_iotas": "Status Iotas",
+ "oneironaut.entry.noosphere_main": "A Strange Realm",
+ "oneironaut.entry.noosphere_materials": "Thoughtful Materials",
+ "oneironaut.entry.wisp_lanterns": "Wisp Devices",
+ "oneironaut.entry.slipway_hint": "A Reflection on Slipways",
+ "oneironaut.entry.miscpatterns": "Misc. Oneironaut Patterns",
+ "oneironaut.entry.super_budding": "Better Media Farming",
+ "oneironaut.entry.idea_inscription": "Idea Inscription",
+ "oneironaut.entry.sentinel_detection": "Sentinel Detection",
+ "oneironaut.entry.detection_shielding": "Nondetection",
+ "oneironaut.entry.raycast_assailant": "Anti-Hex Blocks",
+ "oneironaut.entry.mindrender": "Mind Render",
+ "oneironaut.entry.soulprints": "Soulprints",
+ "oneironaut.entry.hover_elevator": "Hoverlifts",
+ "oneironaut.entry.flayrevival": "Artificial Minds",
+
+ "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
+ "oneironaut.page.spaceswap.1": "Accepts two lists of two vectors, to define two cuboids, and a Spatial Imprint. These cuboids must have the exact same dimensions and rotation.",
+ "oneironaut.page.spaceswap.2": "I'm not quite sure what this one is supposed to do, it's always yelling at me about special dimensions. Perhaps it needs to use this special dimension as an intermediary?",
+ "oneironaut.page.spaceswap.3": "Exchanges the blocks within the first cuboid in your current dimension (which must be within ambit) for the blocks within the second cuboid in the dimension corresponding to the Spatial Imprint. $(l:https://www.desmos.com/calculator/ydbg8zhmyp)Cost (in amethyst dust) is logarithmic for the first 1001 blocks, after which it increases linearly$(/l).$(br)Will not exchange any unbreakable blocks.$(br)One or both of the endpoint dimensions must be the noosphere.",
+ "oneironaut.page.spaceswap.4": "One or both of the endpoint dimensions must be the noosphere.",
+ "hexcasting.spell.oneironaut:dimteleport.samedim": "The spell does not do anything, similar to if I told someone to go home, when they were already at home.",
+ "oneironaut.page.dim_iotas.1": "I've descovered a kind of iota which seems to represent a layer of reality itself. In lieu of better understanding, I've decided to call these Spatial Imprints.",
+ "oneironaut.page.dim_iotas.2": "Returns a Spatial Imprint representing the dimension I am currently in. Costs a negligible amount of media.",
+ "oneironaut.page.dim_iotas.3": "Returns a Spatial Imprint representing the dimension my sentinel is currently in. Costs one-tenth of an amethyst dust.",
+ "oneironaut.page.dim_iotas.4": "Returns a Spatial Imprint representing the overworld. Costs one-tenth of an amethyst dust.",
+ "oneironaut.page.dim_iotas.5": "Returns a Spatial Imprint representing the nether. Costs one-tenth of an amethyst dust.$(br)There seems to be some resistance when I cast this. Perhaps I'll be able to overcome it with $(#54398a)greater skill$()...",
+ "oneironaut.page.dim_iotas.6": "Accepts a Spatial Imprint, and returns the lowest and highest altitudes at which blocks can exist in the corresponding dimension.",
+ "oneironaut.page.dim_iotas.7": "Accepts a Spatial Imprint, and returns how many blocks you'd have to travel in the overworld to travel the equivalent of one block in the input dimension.",
+ "oneironaut.page.dimteleport.1": "Accepts an entity and a Spatial Imprint and teleports the entity to its position in the proper dimension. Generally costs 20 Charged Amethyst.$(br)Will fail if supplied a player other than myself.",
+ "oneironaut.page.dimteleport.2": "If I use this to return to a dimension that I previously left within the same instant, the cost drops to five amethyst dust, as the spell can take advantage of a lingering strand of media leading back to my original position. Otherwise, it will attempt to find a safe spot to deposit me, potentially conjuring a block to prevent me from falling to my doom.$(br2)Strangely, I feel an odd sense of acceleration when transporting myself this way, along some incomprehensible axis.",
+ "oneironaut.page.infusemedia.1": "Accepts a vector and infuses media into the corresponding block in order to transmute it. Cost and exact effect vary depending on target.",
+ "oneironaut.page.infusemedia.2": "Conceptually, this spell is quite similar to $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l).$(br)However, the media that the target block receives is far more finely-tuned, and can thus achieve far more interesting results.",
+ "oneironaut.page.wisp_lanterns.1": "I've found that by using materials unique to the Noosphere, I can create a special jar capable of producing and containing a tiny wisp. While this wisp cannot cast anything, it emits quite a bit of light, and will mimic pigments shown to it.$(br)I can also craft a version with tinted glass, in case the wisp's light would disrupt my study's aesthetic.",
+ "oneironaut.page.wisp_lanterns.2": "Additionally, by feeding this illumination wisp significant amounts of media, I can cause it to undergo mitosis, with the newly-created wisp being seemingly-identical to the wandering wisps produced by slipways.$(br2)The device to split the wisp in this way can be fed media-bearing items via hoppers or similar, and is capable of storing 640 charged amethyst worth of media.",
+ "oneironaut.page.wisp_lanterns.3": "Simply apply a redstone signal to activate. Produces a wisp every four seconds, and consumes two charged amethyst to do so.$(br)The capacity and fill level of the phial used make no difference.",
+ "oneironaut.page.wisp_lanterns.4": "Alternatively, I can create a version which does not consume (or accept) any media, but produces wisps which yield only net-zero media when consumed.$(br2)All the sparkly shiny orbs, none of the prohibitive cost!",
+ "oneironaut.page.wisp_lanterns.5.originaltoolong": "Using similar principles, I've designed a device which can capture (and contain) wisps for their eventual release, though it does not work on wandering wisps due to their instability.$(br)Capturing one of my own wisps always consumes one amethyst shard worth of its (rechargable) 64-charged capacity, and capturing someone else's costs half again as much media as it contains. To capture a wisp, I must simply use the item on a wisp, and it will be sucked into the housing(assuming it has sufficient media and does not already contain a wisp).",
+ "oneironaut.page.wisp_lanterns.5": "Using similar principles, I've designed a device which captures, stores, and releases wisps, though it does not work on unstable wandering wisps. Capturing one of my own wisps consumes one amethyst shard from its battery. Capturing someone else's wisp costs half again the media it contains. To capture a wisp, I must simply use the device on it, assuming it has enough media and isn't already occupied.",
+ "oneironaut.page.wisp_lanterns.6": "When releasing a cyclic wisp, it is placed on the side of the block I use the item on. Projectile wisps are launched from my face, retaining their previous speed (but not direction). To discard a contained wisp, I need only use the item while crouching.",
+ "oneironaut.page.wisp_lanterns.7": "To initalize the device's media battery, I must use it on one of my own wisps, which will irretrievably consume it and set the battery's capacity to the wisp's stored media value, rounded up to the nearest dust. Should I wish to reset this (along with everything else about the device), I can simply place it in a crafting grid on its own.",
+
+ "oneironaut.page.noosphere_materials.1": "A strange fluid which agitates media entering it, preventing amethyst crystal formation. Stimulates my mind in pleasing ways when I immerse myself in it.",
+ "oneironaut.page.noosphere_materials.2": "A rock which is primarily composed of media, somehow. Can be used to craft spell circle blocks.",
+ "oneironaut.page.noosphere_materials.3.title": "Pseudoamethyst",
+ "oneironaut.page.noosphere_materials.3": "A large crystal of media much like amethyst, but not quite the same. Produces a buzzing sensation under my fingers when I touch it, as if its media is stimulating the nerves. Breaking it without special care causes it to shatter into 1-4 pieces.",
+ "oneironaut.page.noosphere_materials.4": "The shards can be used to fuel spells, and yield slightly more energy than a normal amethyst shard. Can also be used to craft several interesting things.",
+ "oneironaut.page.noosphere_materials.5": "A solid form of media which is created when Thought Slurry freezes in a media-rich environment, or is caused to freeze by a hex.$(br)Its surface seems to have negative friction, causing anything sliding on it to accelerate indefinitely (albeit slowly).",
+ "oneironaut.page.noosphere_materials.6": "An extremely viscous mass of media, capable of very basic cognition, analagous to a slime mold. While it is normally quite lethargic, it uses a spell-like ability to attempt to ensnare anything that touches it.",
+ "oneironaut.page.slipway_hint.1": "The slipways, they must lead $(o)somewhere$(). Wisps do not simply manifest from nothing. No matter what I try, I cannot insert so much as a finger through that chaotic rift.$(br2)I'm going about this wrong. Perhaps rather than attempting to force my way through, I should be attempting to calm the storm.",
+ "oneironaut.page.slipway_hint.2": "A large amount of harmonious media may just do it...",
+ "oneironaut.page.slipway_hint.2.title": "Hmm...",
+ "oneironaut.page.noosphere_main.1": "I've made it.$(br)The realm beyond the slipways. The ambient media is overwhelming. My mind is screaming at me, telling me I shouldn't be here. But I must press on. This is the next step in the journey.",
+ "oneironaut.page.noosphere_main.2": "Every single thing I've examined here seems to be composed largely of media, similar to conjured matter, but orders of magnitude denser.$(br)$(o)Even the air is media. How am I breathing?$(br2)$(l)How can I even exist here?",
+ "oneironaut.page.rod.1": "I've discovered that I can craft a peculiar sort of casting item, using the strange shards found in ancient cities.$(br)This item is unusual in that it casts its imbued hex twenty times per second while I concentrate on it, until it either mishaps or I cast Finale or Encore. This initiates a cooldown period, usually about one second.",
+ "oneironaut.page.rod.2": "The echo shards seem to bear some bizarre form of media, with a tendency to loop back on itself while retaining a bit of the previous cast.",
+ "oneironaut.page.rod.3": "Acts just like $(l:patterns/spells/hexcasting)the spells used to program conventional casting items$(). Costs 10 Charged Amethyst.",
+ "oneironaut.page.rod.4": "When cast with a Reverberation Rod, returns my look vector from when I started the current cast loop.",
+ "oneironaut.page.rod.5": "When cast with a Reverberation Rod, returns my eye position from when I started the current cast loop.",
+ "oneironaut.page.rod.6": "When cast with a Reverberation Rod, returns the timestamp from when I started the current cast loop.",
+ "oneironaut.page.rod.7": "Accepts a positive integer. When cast with a Reverberation Rod, delays the current cast loop's next cast until that many twentieths of a second have passed.",
+ "oneironaut.page.rod.8": "When cast with a Reverberation Rod, forcibly halts the current cast loop.",
+ "oneironaut.page.rod.9": "Accepts a positive integer. Halts the current cast loop but also reduces the cooldown period from 1 second to ((1/20) * number) seconds. Cooldown due to mishap is unaffected.",
+ "oneironaut.page.rod.10": "Accepts a non-list iota, and stores it inside the current cast loop. It will be lost when the cast loop ends.",
+ "oneironaut.page.rod.11": "Returns the iota stored in the current cast loop. Defaults to NULL.",
+ "oneironaut.page.rod.12": "Returns a boolean corresponding to whether the current cast is making use of a rod.",
+ "oneironaut.page.rod.13": "As Williams' Gambit, but can be cast from non-rod sources while a rod is in use.",
+ "oneironaut.page.rod.14": "As Williams' Reflection, but can be cast from non-rod sources while a rod is in use.",
+ "oneironaut.page.rod.15": "Returns whether the caster is currently using a rod, regardless of the current cast is from that rod.",
+ "oneironaut.page.rod.16": "Echo shards can also be used in the construction of a staff, though it seems the only special property of such a staff is making sculk sounds.",
+ "oneironaut.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
+ "oneironaut.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
+ "oneironaut.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
+ "oneironaut.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
+ "oneironaut.page.miscpatterns.5": "Returns a random number between 0 and 1, with a gaussian distribution.",
+ "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
+ "oneironaut.page.super_budding.1": "I've found that the amethyst-like material native to the noosphere can be imbued with a villager's mind, much like normal amethyst. What's more, the block that results from this process produces significantly more media than normal Budding Amethyst, and it can be picked up and moved if one takes special care.",
+ "oneironaut.page.super_budding.2": "Pseudoamethyst requires a stronger mind than normal amethyst, but the cost is well worth it.",
+ "oneironaut.page.super_budding.3": "Additionally, when cultivated in the Noosphere, budding pseudoamethyst will produce pseudoamethyst clusters rather than conventional amethyst. These clusters will of course yield pseudoamethyst shards, as well as an unstable form of pseudoamethyst containing about four times as much media as the regular shards. Unfortunately, due to this instability, it cannot be directly converted into usable media. However, it can be converted into many other forms of media crystal by simply bringing the two items together.",
+ "oneironaut.page.super_budding.4": "It seems to react to my gaze, as if endowed with some form of perception.",
+ "oneironaut.page.super_budding.5": "The media generation rate of budding pseudoamethyst is such that even when immersed in thought slurry to inhibit crystal formation, it will still yield usable amounts of media. While the overall supply is nigh-endless, the amount accessible to any given action is quite small, like an inch-deep ocean a million miles across. However, due to this minimal depth, the media will dissipate rapidly before reaching my staff when accessed from afar, such as when recharging an item.",
+ "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I certainly $(o)can$() hold several of these in order to gain access to more easy media, this results in rapidly-diminishing returns.",
+ "oneironaut.page.super_budding.7": "I can also jam one into a trinket in order to replace its media supply with an inexhaustible phial, giving it access to the endless media within. However, it cannot use any media other than that provided by the phial.",
+ "oneironaut.page.super_budding.8": "Writes a hex to the bottomless trinket in my other hand. Costs ten charged amethyst.",
+ "oneironaut.page.idea_inscription.1": "As the noosphere is a realm of thought, it stands to reason that it could be used for information storage. These patterns do just that, inscribing an iota into the noosphere and reading it back (regardless of my current dimension). They can also store iotas inside the minds of other beings, assuming their thoughts are as... $(o)unfettered$() as my own. In the notation for these patterns, \"key\" refers to any vector or compatible entity.",
+ "oneironaut.page.idea_inscription.2": "While this is quite versatile, the noosphere's ambient media is constantly in motion, and as such any iota stored in it will eventually be lost, similar to if I poured hot water into the ocean. It seems to take about an hour before such information decays into unusable garbage.$(br2)It seems that $(l:greatwork/akashiclib)Akashic Libraries$(/l) work based on similar principles, where the shelves serve as insulation to prevent decay.",
+ "oneironaut.page.idea_inscription.3": "Accepts a valid key and any iota, and stores it in the corresponding location. Costs a quarter of an amethyst dust.",
+ "oneironaut.page.idea_inscription.4": "Accepts a valid key, and returns the corresponding iota. Costs one-eigth of an amethyst dust.",
+ "oneironaut.page.idea_inscription.5": "Accepts a valid key, and returns when the corresponding iota was inscribed, or -1. Costs no media.",
+ "oneironaut.page.idea_inscription.6": "Accepts a valid key and a player, and returns whether the corresponding iota was inscribed by that player. Costs no media.",
+ "oneironaut.page.sentinel_detection.1": "By combining the noosphere's pseudoamethyst with the organic sensory apparatus native to the deep dark, I've discovered a way to detect fluctuations in ambient media. This new form of sensor detects the presence of $(l:patterns/spells/sentinels)Sentinels$(/l) within approximately 16 meters, and outputs a redstone signal based on its proximity to the closest one. Comparators attached to it will output a signal if the sentinel in question is particularly powerful.",
+ "oneironaut.page.sentinel_detection.2": "$(o)I'm sure the warden won't mind.$()",
+ "oneironaut.page.sentinel_detection.3": "Additionally, this sensor can be incorporated into a Cleric Impetus, allowing it to activate when a sentinel is placed in the area (albeit with a lower range than the plain sensor). I've dubbed this contraption a Seer Impetus. Though it no longer responds to redstone, the circle's hex will start with a reference to the owner of the triggering sentinel on the stack.$(br)Due to the media interference produced by the cast, the impetus cannot detect sentinels it places itself.",
+ "oneironaut.page.sentinel_detection.4": "As the sensor does not care whose sentinel it sees, I should take care to avoid allowing my trap circles to target me.",
+ "oneironaut.page.sentinel_detection.5": "Accepts a vector and a player, and returns either the distance from the vector to the target player's sentinel or NULL. Costs a negligible amount of media.",
+ "oneironaut.page.sentinel_detection.6": "Conjures a fleeting sensor at the target coordinates, which \"listens\" to the patterns in the ambient media to seek out the telltale signature of a sentinel.",
+ "oneironaut.page.detection_shielding.1": "While conventional invisibility potions work just fine for fooling human senses, they are useless against hexes, so I've yet to find any method of making oneself completely undetectable. However, this spell I've discovered allows me to get closer to that goal, scattering media around a creature like chaff, in order to interfere with hex-based detection methods.",
+ "oneironaut.page.detection_shielding.2": "Accepts a living entity and a number ($(o)n$()), and shields the entity from hex-based detection for $(o)n$() seconds. Costs two amethyst dust per second.",
+ "oneironaut.page.detection_shielding.3": "Also drains media from the entity at a rate of 1/10 of a dust per second, as the shielding effect collects it to produce the chaff.$(br2)I should be careful with what I apply this to, as creatures with no loose media of their own will have their very minds fractured in order to provide this media.",
+ "oneironaut.page.detection_shielding.4": "While this is very effective at blocking effects such as $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l) and the various forms of $(l:patterns/entities#hexcasting:zone_entity/animal)Zone Distillation$(/l), it has no effect on $(l:patterns/entities#hexcasting:get_entity)Entity Purification$(/l) variants, as those already have a fairly precise idea of where you are. What's more, the chaff itself produces an energy signautre, which, while dim, is detectable by a specialized pattern.",
+ "oneironaut.page.detection_shielding.5": "Accepts a vector and a number, and returns a list of unit vectors pointing from the initial vector to shrouded entities within a radius defined by the number.",
+ "oneironaut.page.detection_shielding.6": "I've also discovered a spell which applies normal Invisibility. Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), and costs one amethyst dust per three seconds.",
+ "oneironaut.page.raycast_assailant.1": "By \"threading\" pseudoamethyst through a block, I can create something which causes any raycast (including entity raycasts) that hits or passes through it to return null, as if it didn't hit anything.",
+ "oneironaut.page.raycast_assailant.3": "Strangely, combining pseudoamethyst with obsidian in the same way does not confer anti-raycast properties, instead making it nigh-indestructible to hexes. However, the resultant block loses much of its durability, being no stronger than common stone (though it retains its blast resistance).",
+ "oneironaut.page.mindrender.1": "I've read legends of a particularly macabre form of weapon known as a Mind Render. This weapon, sometimes used by ancient hexcasters, is capable of severing a creature's very thoughts, dealing damage that bypasses all known forms of protection. What's more, if this damage leaves the target just on the brink of true death, it will fall into a vegetative state, never to recover. I shudder to think of what the ancients may have used this property for...",
+ "oneironaut.page.mindrender.2": "Accepts an item or item frame bearing the Sharpness enchantment, and converts it into Mind Render of the same level. Cost is based on enchantment level, and increases by 50%% if the item is a book.",
+ "oneironaut.page.lore.treatise1.1": "While it is possible to produce most iotas on the fly, there are cases where one finds it impractical, or simply cannot (such as very large and precise numbers, or entity references), and as such must obtain the desired iota in another way. Reading it from a Focus or a similar item works just fine, but in many cases this would require a third hand, which I do not have. Other methods of fetching iotas from external locations have their own limitations as well.",
+ "oneironaut.page.lore.treatise1.2": "In cases where no external reference method would work well, one must insert the desired iota into the hex itself. This may seem counterintuive to some, what with the conventional wisdom being that a hex is a list of patterns, but one must remember that patterns are just another type of iota, which $(l:patterns/meta#hexcasting:eval)Hermes' Gambit$(/l) (and similar patterns) works particularly well with.",
+ "oneironaut.page.lore.treatise1.3": "While you can't just shove a number into the list and expect it to be pushed to the stack as if it was a $(l:patterns/numbers)Numerical Reflection$(/l) pattern, there are ways around this.$(br2)The simplest (and least reliable) is the $(l:patterns/patterns_as_iotas#hexcasting:escape)Consideration$(/l) pattern. Similar to its use when casting freehand, anything that comes immediately after it in a list will be escaped and pushed to the stack when it might otherwise be executed, preventing mishaps due to execution of non-patterns.",
+ "oneironaut.page.lore.treatise1.4": "However, when you're more than one exeuction deep in a hex (such as with nested conditional logic, or loops), the number of Considerations required to properly escape an iota increases exponentially, making it unreliable when used in anything that could conceivably be executed by another hex.",
+ "oneironaut.page.lore.treatise1.4.link": "relevant xkcd",
+ "oneironaut.page.lore.treatise1.5": "A far more reliable method of escaping iotas is to use $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(/l) and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)Retrospection$(/l). When a pattern list is being evaluated and an Introspection is encountered, everything up to (but not including) its paired Retrospection is escaped and pushed to the stack in a list, regardless of iota type. You can then work with this list as you see fit, such as using $(l:patterns/lists#hexcasting:splat)Flock's Disintegration$(/l) to push all of its contents to the stack on their own.",
+ "oneironaut.page.lore.treatise1.6": "If the contents of your list looks like this:$(br2)Introspection$(br)Any iota(s)$(br)Retrospection$(br)Flock's Disintegration$(br2)the state of the stack after all that is executed will simply be all the iotas that were contained within Introspection and Retrospection.",
+ "oneironaut.page.lore.treatise2.1": "When one wishes to impart motion upon something, the standard method is to use $(l:patterns/spells/basic#hexcasting:add_motion)Impulse$(/l). However, this can get prohibitively expensive when one wishes to make something move extremely quickly, as the cost increases exponentially with the length of the vector. This can be mitigated by simply using a magnitude-1 Impulse many times over on a single target, turning the overall cost from n^2 to 2n-1, where n is the magnitude of the vector.",
+ "oneironaut.page.lore.treatise2.2": "The easiest way to accomplish this is with $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l), by giving it a list containing many instances of the same entity reference. There are other (and often better) methods, of course, but aside from simply drawing the patterns over and over, they generally fall under the broader topic of loops, which is outside the scope of this document.",
+ "oneironaut.page.lore.treatise3.1": "While $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) is perfectly-suited for casting something on many targets at once, using to it cast something on one target many times can get awkward, and short of completely halting the hex, it is not possible to add or remove targets once Thoth has begun executing.$(br)To get around these limitations, one simply needs to use a different sort of loop.",
+ "oneironaut.page.lore.treatise3.2.header": "While Loop",
+ "oneironaut.page.lore.treatise3.2": "A While loop is a loop that continues executing until some condition is fulfilled, such as an entity's target velocity having been reached. The most common way to accomplish this is creating a pattern list which duplicates and executes the top iota on the stack, duplicating it, then executing it. On its own this simply produces an infinite loop which does nothing but mishap.",
+ "oneironaut.page.lore.treatise3.3": "However, by adding actual functionality and a bit of boolean logic, you can create a proper while loop. The code for the aforementioned infinite loop is as follows:$(br)Introspection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br)Retrospection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br2)By adding logic that changes whether the inner Hermes' Gambit gets evaluated based on a condition, you can make it stop once that condition is fulfilled.",
+ "oneironaut.page.lore.treatise3.4.header": "Loop Unrolling",
+ "oneironaut.page.lore.treatise3.4": "A more complex form of loop is an unrolled loop. Like Thoth's Gambit, it's created with a fixed number of iterations which can't easily be added to, but Charon's Gambit can be used to halt it early if need be. It also has the advantage that when done competently, it only ever produces one or two levels of recursion depth (not counting anything executed in the body of the loop). Loop unrolling is accomplished by creating a pattern list you want to repeat, duplicating it many times, and then combining all those lists into one.",
+ "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:concat)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
+ "oneironaut.page.lore.treatise4.1": "Some of my, erm, \"colleagues\" have trouble transcribing long hexes.$(br)\"This is too long!\"$(br)\"The grid doesn't have enough space!\"$(br)$(bold)Skill issue$(), I say. It's not like a hex is immutable once you've drawn the last Retrospection. All you need to do is save the work-in-progress hex to a focus (though you should make sure to conserve enough grid space to actually do this).",
+ "oneironaut.page.lore.treatise4.2": "Then you just use the $(l:patterns/lists)list manipulation$(/l) patterns to combine it with the other parts once you're done.$(br2)You don't even need to use multiple foci, you can just append one part to the last one as you finish them, and then save that to one focus. The multiple-focus method makes it easier to debug your finished hex, but as far as I know that's its only benefit compared to the one-focus method.",
+ "oneironaut.page.lore.science1.1": "$(o)\"What is this and how do I get rid of it?\"$()$(br)A question asked by many people upon their first encounter with a slipway. I don't have a good answer for the second part of the question, but I believe I can provide a satisfactory response to the first.$(br)From what I can tell, a slipway is a tiny hole in space, the other side of which is the media realm known as the Noosphere.",
+ "oneironaut.page.lore.science1.2": "The wisp-like phenomena that emerge from it are formed when the vast ambient media of the Noosphere attempts to rush through the hole (much like gas leaking into a near-vacuum) and gets tangled in a manner similar to how wisp-summoning spells weave the media which they consume.",
+ "oneironaut.page.lore.science1.3": "Additionally, it seems that slipways have a sort of barrier over the entrance, preventing any matter from passing through. If this barrier could be pierced, and the hole expanded, the slipway would become capable of absorbing matter into the noosphere. It would also cease producing wisps, as the media coming through would do so far more slowly, and thus not be agitated and tangled. If one were to attempt this, they would have to be careful not to widen it too greatly, or they would risk the surrounding area being absorbed into the noosphere.",
+
+ "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
+
+ "oneironaut.page.lore.science2.1": "What a strange place. The liquid that comprises the ocean here is not much denser than water, but small islands float in it despite being comprised of a rock similar in density to ordinary basalt. What's more, everything seems strangely ephemeral, like a dream. But how could this be a dream, when I am more lucid than I've ever been before?",
+ "oneironaut.page.lore.science2.2": "It seems this great lucidity is a product of the ambient media present here, lubricating my thoughts. These media levels even exceed those present at the cores of wisps, reducing their innate decay to infinitesimal levels. Interestingly, this has no effect on wisps which bear an imprint of someone else's soul, preventing me from using wisps as indefinite truename storage.$(br)This ambient media even leaks through sufficiently-large dimensional rifts, preserving wisps on the other side as long as they remain within a certain range of the rift.",
+ "oneironaut.page.lore.science3.1": "This crystal is quite fascinating. An object formed from pure media, orders of magnitude denser than conventional conjured blocks, or even the condensed media crystals that some of my colleagues at the library have been studying. It doesn't even contain the trace amounts of silicon dioxide found in amethyst of similar media density. And when I leave it unattended for a while, dust collects in fractalline patterns, as if the crystal bears a passive spell-like effect.",
+ "oneironaut.page.lore.science3.2": "Examining it more thoroughly under a microscope, it seems that these fractals extend beneath the surface of the crystal, and are constantly shifting in a consistent pattern. Could this be a time crystal?",
+ "oneironaut.page.glow_ambit.1": "Despite diligent research, the source of the special properties of other hexcasters' entity references has eluded me. However, I've discovered a way to bestow one such property upon other beings, at least temporarily (and flashily).$(br)This spell allows casters to affect creatures from great distances just like the infinite-range aspect of a player reference. However, one must still be close to the target in order to perform the initial application.",
+ "oneironaut.page.glow_ambit.2": "Accepts a living entity, and allows it to be accessed from anywhere for one minute. Has a base cost of one amethyst shard, plus one additional shard per application before allowing it to expire.",
+ "oneironaut.page.glow_ambit.3": "It seems that this effect functions by causing the target to emit some sort of psionic resonance, strong enough to cause its outline to be \"visible\" through all manner of barriers (perhaps hexcasters naturally produce this same resonance, but much subtler?). However, this glow is distinct from that induced by spectral arrows and similar, so don't bet on things to detect that working for this.",
+ "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:oneironaut:patterns/idea_inscription)Idea Inscription$(/l).",
+ "oneironaut.page.soulprints.2": "Returns my soulprint, mishapping if cast using anything other than a staff. Costs a negligible amount of media.",
+ "oneironaut.page.soulprints.3": "Invisibly engraves my soulprint onto the item in my other hand, or erases it if it is already there. Costs 1 amethyst dust.$(br)I should be careful to seal any focuses or similar that I sign, as acquiring an unsealed signed focus may allow someone to impersonate me, and Erase Item gets rid of the signature.",
+ "oneironaut.page.soulprints.4": "Accepts a soulprint, and checks if the item in my other hand is engraved with it. Returns true if so, false otherwise. Costs a negligible amount of media.",
+ "oneironaut.page.hover_elevator.1": "By combining materials native to the noosphere with certain ingredients associated with levitation, I can create a device which produces streams of propulsive energy capable of carrying me along them, with minimal risk of falling. To use it, it must be placed facing directly towards another one (which must be facing it in turn). Once I've done this, both ends must be activated with a",
+ "oneironaut.page.hover_elevator.2": "redstone signal, and the energy stream will form between the paired emitters, assuming they are within range of each other (64 meters horizontally, or 128 vertically). By stepping into the stream, I will be held in place until I look towards either end of the stream, at which point I will be accelerated in that direction until I hit a maximum speed proportional to how closely my vision parallels the stream. Crouching causes the stream to hold me in place regardless of my gaze.",
+ "oneironaut.page.hover_elevator.3": "$(o)Best to don some long fall boots the first time I try these.",
+ "oneironaut.page.hover_elevator.meme":"$(o)Bad and naughty hexcasters get sent to the hover cube.",
+ "oneironaut.page.hover_elevator.4": "Additionally, I can create a repeater capable of extending the range of the emitters when placed between them, such that the stream can continue on as if it had just left the emitter. Of course, such an extension requires more powerful components, and even then the stream can only be extended by three repeaters before it becomes too unstable to form.",
+ "oneironaut.page.hover_elevator.5": "Fortunately, this device seems to be rather immaterial for some reason, and I can pass straight through it without having to carefully twist around it in the stream.$(br)$(o)No, it does not make the stream pause for a moment before continuing.",
+ "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:oneironaut:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
+ "oneironaut.page.flayrevival.2": "Accepts a flayed mob, and creates an artifical pseudo-mind to inhabit its body. Costs 16 charged amethyst when used on a villager or allay, or 10 amethyst shards for anything else.",
+ "oneironaut.page.flayrevival.3": "While these pseudo-minds are capable of moving their bodies around as if they were their original inhabitants, they are too simple to be called truly sapient, even with the rather loose definition of the term that must be used when applying it to villagers. As such, any villager \"restored\" in this manner loses any professional experience it had before, and cannot gain such experience ever again.",
+ "oneironaut.page.flayrevival.4": "They do, however, regain their ability to reproduce, with any children they produce being untainted by my craft.$(br2)I'm not sure why the restored villagers suddenly gain an affinity for green clothing, but at least it serves as a good indicator of which villagers will be of little further use.",
+ "oneironaut.page.monkfruit.1": "I've discovered that using the $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l) spell on a Sweet Berry Bush produces a rather interesting plant. It is much like the shrub it mutates from, however its thorns are imbued with a media field which siphons the minds of pricked creatures into the plant in order to grow. It can grow without this (albeit slowly), though it still requires minds nearby to provide small amounts of media.",
+ "oneironaut.page.monkfruit.2": "The fruit that this bush produces is quite sweet, and can be processed into sugar. Additionally, it releases bits of media during digestion, which seek out rechargeable items on my person. I should be wary of the thorns while picking the fruit.",
+ "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:oneironaut:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
+ "oneironaut.page.monkfruit.4": "$(o)It's not rocket science.$()",
+
+ "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
+ "oneironaut.advancements.noosphere.enter": "A Realm of Thought and Dream",
+ "oneironaut.advancements.noosphere.enter.description": "Enter the Noosphere",
+ "oneironaut.advancements.noosphere.find_tower": "A Timeless Classic",
+ "oneironaut.advancements.noosphere.find_tower.description": "Discover the tower of an unknown hexcaster",
+ "oneironaut.advancements.noosphere.find_media_lab": "Crystallized",
+ "oneironaut.advancements.noosphere.find_media_lab.description": "Discover a grim experiment",
+ "oneironaut.advancements.noosphere.find_garden": "Stranded",
+ "oneironaut.advancements.noosphere.find_garden.description": "Discover an unfortunate soul's last reminder of home",
+ "oneironaut.advancements.lore.root": "Oneironaut Lore",
+ "oneironaut.advancements.lore.root.description": "Memories lost to time",
+ "oneironaut.advancements.lore.treatise1": "Hexcaster's Memory #1",
+ "oneironaut.advancements.lore.treatise1.description": "Reflections on iota embedding",
+ "oneironaut.advancements.lore.treatise2": "Hexcaster's Memory #2",
+ "oneironaut.advancements.lore.treatise2.description": "Reflections on efficient use of Impulse",
+ "oneironaut.advancements.lore.treatise3": "Hexcaster's Memory #3",
+ "oneironaut.advancements.lore.treatise3.description": "Reflections on repeated patterns",
+ "oneironaut.advancements.lore.treatise4": "Hexcaster's Memory #4",
+ "oneironaut.advancements.lore.treatise4.description": "Reflections on long hexes",
+ "oneironaut.advancements.lore.science1": "Scientist's Memory #1",
+ "oneironaut.advancements.lore.science1.description": "Research into the nature of slipways",
+ "oneironaut.advancements.lore.science2": "Scientist's Memory #2",
+ "oneironaut.advancements.lore.science2.description": "Research into the properties of the Noosphere",
+ "oneironaut.advancements.lore.science3": "Scientist's Memory #3",
+ "oneironaut.advancements.lore.science3.description": "Research into the structure of pseudoamethyst",
+ "oneironaut.advancements.unflay": "Recycling!",
+ "oneironaut.advancements.unflay.description": "Surely you weren't going to just throw that away!",
+ "oneironaut.advancements.ouchie": "Ouch!",
+ "oneironaut.advancements.ouchie.description": "What did you expect?",
+
+ "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
+ "hexcasting.mishap.oneironaut:badcuboid.mismatch": "Supplied cuboids are dissimilar.",
+ "hexcasting.mishap.oneironaut:badcuboid.toobig": "Supplied cuboids are too big.",
+ "hexcasting.mishap.oneironaut:uninfusable": "Expected an infusable block at %s, but got %s.",
+ "hexcasting.mishap.oneironaut:nonoosphere": "Expected one end of the transfer to be a special dimension.",
+ "hexcasting.mishap.oneironaut:norod": "Expected to be cast from a Reverberation Rod.",
+ "hexcasting.mishap.oneironaut:norodremote": "Expected an active Reverberation Rod in hand.",
+ "hexcasting.mishap.oneironaut:missingenchant": "Expected %s to be enchanted with %s, but it is not.",
+ "hexcasting.mishap.oneironaut:unhappyslime": "The slime says \"%s\"",
+ "hexcasting.mishap.oneironaut:norequirediota": "The slime demands %s",
+ "hexcasting.mishap.oneironaut:requiresdifferententities": "an entity different from the target",
+ "hexcasting.mishap.oneironaut:nostaff": "%s expected to be cast using a staff.",
+ "oneironaut.mishap.noitemframe": "an item frame",
+ "oneironaut.mishap.invalidideakey": "a vector, player, or soulprint",
+ "oneironaut.mishap.unenlightenedtarget": "an enlightened player",
+ "oneironaut.mishap.notbrainswept": "a flayed villager",
+ "oneironaut.mishap.badentitykey": "an enlightened player or a flayed villager",
+ "oneironaut.mishap.nolistsallowed": "a non-list iota",
+ "oneironaut.mishap.entitytypelistplease": "a list of entity types",
+ "oneironaut.mishap.wrongsizelist": "List is improperly sized.",
+ "oneironaut.mishap.twovectorsplease": "List does not contain two vectors.",
+ "oneironaut.mishap.requiresflayedmob": "%s expected a flayed mob, but got %s.",
+ "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "a spatial imprint",
+ "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "a soulprint",
+
+ "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
+ "hexcasting.iota.oneironaut:dim": "Dimension",
+ "hexcasting.iota.oneironaut:uuid": "Soulprint",
+ "hexcasting.iota.oneironaut:uuid.label": "Soulprint of %s",
+ "biome.oneironaut.noosphere_sea": "Noosphere Sea",
+ "text.oneironaut.clearIdeasResponse": "Cleared iota storage map.",
+ "effect.oneironaut.detection_resistance": "Media Shroud",
+ "effect.oneironaut.not_missing": "Uplifting Resonance",
+ "effect.oneironaut.rumination": "Rumination",
+ "enchantment.oneironaut.overcast_damage": "Mind Render",
+ "itemGroup.oneironaut.oneironaut": "Oneironaut",
+ "oneironaut.tooltip.wispcapturedevice.haswisp": "Contains a wisp with %s dust and hex signature %s.",
+ "oneironaut.tooltip.wispcapturedevice.nowisp": "No wisp.",
+ "oneironaut.tooltip.wispcapturedevice.uninitialized": "Media reservoir has not been initialized.",
+ "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "oneironaut.tooltip.lich_media_amount": "Reservoir contains: %s/%s (%s)"
+}
diff --git a/projects/1.20-fabric/assets/oneironaut/oneironaut/packer-policy.json b/projects/1.20-fabric/assets/oneironaut/oneironaut/packer-policy.json
new file mode 100644
index 000000000000..8108a20a6cca
--- /dev/null
+++ b/projects/1.20-fabric/assets/oneironaut/oneironaut/packer-policy.json
@@ -0,0 +1,6 @@
+[
+ {
+ "type": "indirect",
+ "source": "projects/1.20/assets/oneironaut/oneironaut"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
new file mode 100644
index 000000000000..3757b38851b8
--- /dev/null
+++ b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
@@ -0,0 +1,323 @@
+{
+ "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
+ "hexcasting.action.oneironaut:getdim1": "Spatial Reflection",
+ "hexcasting.action.oneironaut:getdim2": "Spatial Reflection II",
+ "hexcasting.action.oneironaut:getdim/overworld": "Homeland Reflection",
+ "hexcasting.action.oneironaut:getdim/nether": "Inferno Reflection",
+ "hexcasting.action.oneironaut:getdimheight": "Atlas' Decomposition",
+ "hexcasting.action.oneironaut:getdimscale": "Ratio Purification",
+ "hexcasting.action.oneironaut:dimteleport": "Noetic Gateway",
+ "hexcasting.action.oneironaut:infusemedia": "Media Infusion",
+ "hexcasting.action.oneironaut:swapspace": "Spatial Interchange",
+ "hexcasting.action.oneironaut:craftrod": "Conduct Rod",
+ "hexcasting.action.oneironaut:getrodlook": "Baton Reflection",
+ "hexcasting.action.oneironaut:getrodpos": "Baton Reflection II",
+ "hexcasting.action.oneironaut:getrodstamp": "Metronome Reflection",
+ "hexcasting.action.oneironaut:delayrod": "Metronome Gambit",
+ "hexcasting.action.oneironaut:haltrod": "Finale",
+ "hexcasting.action.oneironaut:resetrod": "Encore",
+ "hexcasting.action.oneironaut:readrodram": "Williams' Reflection",
+ "hexcasting.action.oneironaut:writerodram": "Williams' Gambit",
+ "hexcasting.action.oneironaut:readrodramremote": "Williams' Reflection II",
+ "hexcasting.action.oneironaut:writerodramremote": "Williams' Gambit II",
+ "hexcasting.action.oneironaut:queryrod": "Conductor's Reflection",
+ "hexcasting.action.oneironaut:rodloopactive": "Conductor's Reflection II",
+ "hexcasting.action.oneironaut:craftbottomlesstrinket": "Craft Bottomless Trinket",
+ "hexcasting.action.oneironaut:writeidea": "Inscribe Idea",
+ "hexcasting.action.oneironaut:readidea": "Retrieve Idea",
+ "hexcasting.action.oneironaut:readideatime": "Metadata Purification",
+ "hexcasting.action.oneironaut:readideawriter": "Metadata Distillation",
+ "hexcasting.action.oneironaut:readsentinel": "Scrutinize Sentinel",
+ "hexcasting.action.oneironaut:resistdetection": "Stealth Shroud",
+ "hexcasting.action.oneironaut:detectshroud": "Discern Shroud",
+ "hexcasting.action.oneironaut:circle": "Circle",
+ "hexcasting.action.oneironaut:applymindrender": "Empower Mind Render",
+ "hexcasting.action.oneironaut:reviveflayed": "Instill Psyche",
+ "hexcasting.action.oneironaut:advanceautomaton": "Cellular Generation",
+ "hexcasting.action.oneironaut:applynotmissing": "Uplifting Resonance",
+ "hexcasting.action.oneironaut:getsoulprint": "Soulprint Reflection",
+ "hexcasting.action.oneironaut:signitem": "Sign Item",
+ "hexcasting.action.oneironaut:checksignature": "Signature Purification",
+
+ "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
+ "item.oneironaut.pseudoamethyst_shard": "Pseudoamethyst Shard",
+ "item.oneironaut.shifting_pseudoamethyst": "Shifting Pseudoamethyst",
+ "item.oneironaut.thought_slurry_bucket": "Thought Slurry Bucket",
+ "item.oneironaut.reverberation_rod": "Reverberation Rod",
+ "item.oneironaut.endless_phial": "Inexhaustible Phial",
+ "item.oneironaut.bottomless_trinket": "Bottomless Trinket",
+ "item.oneironaut.echo_staff": "Echo Staff",
+ "item.oneironaut.beacon_staff": "Magitech Staff",
+ "item.oneironaut.spoon_staff": "Spoon",
+ "item.oneironaut.pigment_flame": "Flame Pigment",
+ "item.oneironaut.pigment_echo": "Echo Pigment",
+ "item.oneironaut.pigment_noosphere": "Noetic Pigment",
+ "item.oneironaut.pigment_frenzyflame": "Frenzy Pigment",
+ "item.oneironaut.memory_fragment": "Memory Fragment",
+ "item.oneironaut.memory_fragment.all": "It seems I've consumed all the memories that this crystal can offer me...",
+ "item.oneironaut.wisp_capture_device": "Wisp Wrangler",
+ "item.oneironaut.mind_scalpel": "Synaptic Scalpel",
+ "item.oneironaut.monkfruit": "Monkfruit",
+ "item.oneironaut.rending_thorns": "Rending Thorns",
+
+ "block.oneironaut.noosphere_gate": "Inscrutable Rift",
+ "block.oneironaut.pseudoamethyst_block": "Pseudoamethyst Block",
+ "block.oneironaut.pseudoamethyst_cluster": "Pseudoamethyst Cluster",
+ "block.oneironaut.pseudoamethyst_bud_small": "Small Pseudoamethyst Bud",
+ "block.oneironaut.pseudoamethyst_bud_medium": "Medium Pseudoamethyst Bud",
+ "block.oneironaut.pseudoamethyst_bud_large": "Large Pseudoamethyst Bud",
+ "block.oneironaut.thought_slurry": "Thought Slurry",
+ "block.oneironaut.thought_slurry_flowing": "Flowing Thought Slurry",
+ "block.oneironaut.noosphere_basalt": "Noosphere Basalt",
+ "block.oneironaut.wisp_lantern": "Wisp Lantern",
+ "block.oneironaut.wisp_lantern_tinted": "Tinted Wisp Lantern",
+ "block.oneironaut.super_budding": "Budding Pseudoamethyst",
+ "block.oneironaut.sentinel_sensor": "Sentinel Sensor",
+ "block.oneironaut.raycast_blocker": "Anti-Raycast Slate",
+ "block.oneironaut.raycast_blocker_glass": "Anti-Raycast Glass",
+ "block.oneironaut.sentinel_trap": "Seer Impetus",
+ "block.oneironaut.circle": "§0§oCircle",
+ "block.oneironaut.hex_resistant_block": "Hex-Warded Obsidian",
+ "block.oneironaut.media_ice": "Sagely Ice",
+ "block.oneironaut.media_ice_frosted": "Transient Sagely Ice",
+ "block.oneironaut.media_gel": "Plasmodial Psyche",
+ "block.oneironaut.cell": "Dissonant Psyche",
+ "block.oneironaut.wisp_battery": "Wisp Weaver",
+ "block.oneironaut.decorative_wisp_battery": "Lesser Wisp Weaver",
+ "block.oneironaut.hover_elevator": "Hexcaster's Hoverlift",
+ "block.oneironaut.hover_repeater": "Hoverlift Repeater",
+ "block.oneironaut.monkfruit_bush": "Monkfruit Bush",
+ "block.oneironaut.spacebomb": "Slipcharge",
+
+ "fluid.oneironaut.thought_slurry": "Thought Slurry",
+
+ "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
+ "oneironaut.entry.dim_iotas": "Dimension Iotas",
+ "oneironaut.entry.status_iotas": "Status Iotas",
+ "oneironaut.entry.noosphere_main": "A Strange Realm",
+ "oneironaut.entry.noosphere_materials": "Thoughtful Materials",
+ "oneironaut.entry.wisp_lanterns": "Wisp Devices",
+ "oneironaut.entry.slipway_hint": "A Reflection on Slipways",
+ "oneironaut.entry.miscpatterns": "Misc. Oneironaut Patterns",
+ "oneironaut.entry.super_budding": "Better Media Farming",
+ "oneironaut.entry.idea_inscription": "Idea Inscription",
+ "oneironaut.entry.sentinel_detection": "Sentinel Detection",
+ "oneironaut.entry.detection_shielding": "Nondetection",
+ "oneironaut.entry.raycast_assailant": "Anti-Hex Blocks",
+ "oneironaut.entry.mindrender": "Mind Render",
+ "oneironaut.entry.soulprints": "Soulprints",
+ "oneironaut.entry.hover_elevator": "Hoverlifts",
+ "oneironaut.entry.flayrevival": "Artificial Minds",
+
+ "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
+ "oneironaut.page.spaceswap.1": "Accepts two lists of two vectors, to define two cuboids, and a Spatial Imprint. These cuboids must have the exact same dimensions and rotation.",
+ "oneironaut.page.spaceswap.2": "I'm not quite sure what this one is supposed to do, it's always yelling at me about special dimensions. Perhaps it needs to use this special dimension as an intermediary?",
+ "oneironaut.page.spaceswap.3": "Exchanges the blocks within the first cuboid in your current dimension (which must be within ambit) for the blocks within the second cuboid in the dimension corresponding to the Spatial Imprint. $(l:https://www.desmos.com/calculator/ydbg8zhmyp)Cost (in amethyst dust) is logarithmic for the first 1001 blocks, after which it increases linearly$(/l).$(br)Will not exchange any unbreakable blocks.$(br)One or both of the endpoint dimensions must be the noosphere.",
+ "oneironaut.page.spaceswap.4": "One or both of the endpoint dimensions must be the noosphere.",
+ "hexcasting.spell.oneironaut:dimteleport.samedim": "The spell does not do anything, similar to if I told someone to go home, when they were already at home.",
+ "oneironaut.page.dim_iotas.1": "I've descovered a kind of iota which seems to represent a layer of reality itself. In lieu of better understanding, I've decided to call these Spatial Imprints.",
+ "oneironaut.page.dim_iotas.2": "Returns a Spatial Imprint representing the dimension I am currently in. Costs a negligible amount of media.",
+ "oneironaut.page.dim_iotas.3": "Returns a Spatial Imprint representing the dimension my sentinel is currently in. Costs one-tenth of an amethyst dust.",
+ "oneironaut.page.dim_iotas.4": "Returns a Spatial Imprint representing the overworld. Costs one-tenth of an amethyst dust.",
+ "oneironaut.page.dim_iotas.5": "Returns a Spatial Imprint representing the nether. Costs one-tenth of an amethyst dust.$(br)There seems to be some resistance when I cast this. Perhaps I'll be able to overcome it with $(#54398a)greater skill$()...",
+ "oneironaut.page.dim_iotas.6": "Accepts a Spatial Imprint, and returns the lowest and highest altitudes at which blocks can exist in the corresponding dimension.",
+ "oneironaut.page.dim_iotas.7": "Accepts a Spatial Imprint, and returns how many blocks you'd have to travel in the overworld to travel the equivalent of one block in the input dimension.",
+ "oneironaut.page.dimteleport.1": "Accepts an entity and a Spatial Imprint and teleports the entity to its position in the proper dimension. Generally costs 20 Charged Amethyst.$(br)Will fail if supplied a player other than myself.",
+ "oneironaut.page.dimteleport.2": "If I use this to return to a dimension that I previously left within the same instant, the cost drops to five amethyst dust, as the spell can take advantage of a lingering strand of media leading back to my original position. Otherwise, it will attempt to find a safe spot to deposit me, potentially conjuring a block to prevent me from falling to my doom.$(br2)Strangely, I feel an odd sense of acceleration when transporting myself this way, along some incomprehensible axis.",
+ "oneironaut.page.infusemedia.1": "Accepts a vector and infuses media into the corresponding block in order to transmute it. Cost and exact effect vary depending on target.",
+ "oneironaut.page.infusemedia.2": "Conceptually, this spell is quite similar to $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l).$(br)However, the media that the target block receives is far more finely-tuned, and can thus achieve far more interesting results.",
+ "oneironaut.page.wisp_lanterns.1": "I've found that by using materials unique to the Noosphere, I can create a special jar capable of producing and containing a tiny wisp. While this wisp cannot cast anything, it emits quite a bit of light, and will mimic pigments shown to it.$(br)I can also craft a version with tinted glass, in case the wisp's light would disrupt my study's aesthetic.",
+ "oneironaut.page.wisp_lanterns.2": "Additionally, by feeding this illumination wisp significant amounts of media, I can cause it to undergo mitosis, with the newly-created wisp being seemingly-identical to the wandering wisps produced by slipways.$(br2)The device to split the wisp in this way can be fed media-bearing items via hoppers or similar, and is capable of storing 640 charged amethyst worth of media.",
+ "oneironaut.page.wisp_lanterns.3": "Simply apply a redstone signal to activate. Produces a wisp every four seconds, and consumes two charged amethyst to do so.$(br)The capacity and fill level of the phial used make no difference.",
+ "oneironaut.page.wisp_lanterns.4": "Alternatively, I can create a version which does not consume (or accept) any media, but produces wisps which yield only net-zero media when consumed.$(br2)All the sparkly shiny orbs, none of the prohibitive cost!",
+ "oneironaut.page.wisp_lanterns.5.originaltoolong": "Using similar principles, I've designed a device which can capture (and contain) wisps for their eventual release, though it does not work on wandering wisps due to their instability.$(br)Capturing one of my own wisps always consumes one amethyst shard worth of its (rechargable) 64-charged capacity, and capturing someone else's costs half again as much media as it contains. To capture a wisp, I must simply use the item on a wisp, and it will be sucked into the housing(assuming it has sufficient media and does not already contain a wisp).",
+ "oneironaut.page.wisp_lanterns.5": "Using similar principles, I've designed a device which captures, stores, and releases wisps, though it does not work on unstable wandering wisps. Capturing one of my own wisps consumes one amethyst shard from its battery. Capturing someone else's wisp costs half again the media it contains. To capture a wisp, I must simply use the device on it, assuming it has enough media and isn't already occupied.",
+ "oneironaut.page.wisp_lanterns.6": "When releasing a cyclic wisp, it is placed on the side of the block I use the item on. Projectile wisps are launched from my face, retaining their previous speed (but not direction). To discard a contained wisp, I need only use the item while crouching.",
+ "oneironaut.page.wisp_lanterns.7": "To initalize the device's media battery, I must use it on one of my own wisps, which will irretrievably consume it and set the battery's capacity to the wisp's stored media value, rounded up to the nearest dust. Should I wish to reset this (along with everything else about the device), I can simply place it in a crafting grid on its own.",
+
+ "oneironaut.page.noosphere_materials.1": "A strange fluid which agitates media entering it, preventing amethyst crystal formation. Stimulates my mind in pleasing ways when I immerse myself in it.",
+ "oneironaut.page.noosphere_materials.2": "A rock which is primarily composed of media, somehow. Can be used to craft spell circle blocks.",
+ "oneironaut.page.noosphere_materials.3.title": "Pseudoamethyst",
+ "oneironaut.page.noosphere_materials.3": "A large crystal of media much like amethyst, but not quite the same. Produces a buzzing sensation under my fingers when I touch it, as if its media is stimulating the nerves. Breaking it without special care causes it to shatter into 1-4 pieces.",
+ "oneironaut.page.noosphere_materials.4": "The shards can be used to fuel spells, and yield slightly more energy than a normal amethyst shard. Can also be used to craft several interesting things.",
+ "oneironaut.page.noosphere_materials.5": "A solid form of media which is created when Thought Slurry freezes in a media-rich environment, or is caused to freeze by a hex.$(br)Its surface seems to have negative friction, causing anything sliding on it to accelerate indefinitely (albeit slowly).",
+ "oneironaut.page.noosphere_materials.6": "An extremely viscous mass of media, capable of very basic cognition, analagous to a slime mold. While it is normally quite lethargic, it uses a spell-like ability to attempt to ensnare anything that touches it.",
+ "oneironaut.page.slipway_hint.1": "The slipways, they must lead $(o)somewhere$(). Wisps do not simply manifest from nothing. No matter what I try, I cannot insert so much as a finger through that chaotic rift.$(br2)I'm going about this wrong. Perhaps rather than attempting to force my way through, I should be attempting to calm the storm.",
+ "oneironaut.page.slipway_hint.2": "A large amount of harmonious media may just do it...",
+ "oneironaut.page.slipway_hint.2.title": "Hmm...",
+ "oneironaut.page.noosphere_main.1": "I've made it.$(br)The realm beyond the slipways. The ambient media is overwhelming. My mind is screaming at me, telling me I shouldn't be here. But I must press on. This is the next step in the journey.",
+ "oneironaut.page.noosphere_main.2": "Every single thing I've examined here seems to be composed largely of media, similar to conjured matter, but orders of magnitude denser.$(br)$(o)Even the air is media. How am I breathing?$(br2)$(l)How can I even exist here?",
+ "oneironaut.page.rod.1": "I've discovered that I can craft a peculiar sort of casting item, using the strange shards found in ancient cities.$(br)This item is unusual in that it casts its imbued hex twenty times per second while I concentrate on it, until it either mishaps or I cast Finale or Encore. This initiates a cooldown period, usually about one second.",
+ "oneironaut.page.rod.2": "The echo shards seem to bear some bizarre form of media, with a tendency to loop back on itself while retaining a bit of the previous cast.",
+ "oneironaut.page.rod.3": "Acts just like $(l:patterns/spells/hexcasting)the spells used to program conventional casting items$(). Costs 10 Charged Amethyst.",
+ "oneironaut.page.rod.4": "When cast with a Reverberation Rod, returns my look vector from when I started the current cast loop.",
+ "oneironaut.page.rod.5": "When cast with a Reverberation Rod, returns my eye position from when I started the current cast loop.",
+ "oneironaut.page.rod.6": "When cast with a Reverberation Rod, returns the timestamp from when I started the current cast loop.",
+ "oneironaut.page.rod.7": "Accepts a positive integer. When cast with a Reverberation Rod, delays the current cast loop's next cast until that many twentieths of a second have passed.",
+ "oneironaut.page.rod.8": "When cast with a Reverberation Rod, forcibly halts the current cast loop.",
+ "oneironaut.page.rod.9": "Accepts a positive integer. Halts the current cast loop but also reduces the cooldown period from 1 second to ((1/20) * number) seconds. Cooldown due to mishap is unaffected.",
+ "oneironaut.page.rod.10": "Accepts a non-list iota, and stores it inside the current cast loop. It will be lost when the cast loop ends.",
+ "oneironaut.page.rod.11": "Returns the iota stored in the current cast loop. Defaults to NULL.",
+ "oneironaut.page.rod.12": "Returns a boolean corresponding to whether the current cast is making use of a rod.",
+ "oneironaut.page.rod.13": "As Williams' Gambit, but can be cast from non-rod sources while a rod is in use.",
+ "oneironaut.page.rod.14": "As Williams' Reflection, but can be cast from non-rod sources while a rod is in use.",
+ "oneironaut.page.rod.15": "Returns whether the caster is currently using a rod, regardless of the current cast is from that rod.",
+ "oneironaut.page.rod.16": "Echo shards can also be used in the construction of a staff, though it seems the only special property of such a staff is making sculk sounds.",
+ "oneironaut.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
+ "oneironaut.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
+ "oneironaut.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
+ "oneironaut.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
+ "oneironaut.page.miscpatterns.5": "Returns a random number between 0 and 1, with a gaussian distribution.",
+ "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
+ "oneironaut.page.super_budding.1": "I've found that the amethyst-like material native to the noosphere can be imbued with a villager's mind, much like normal amethyst. What's more, the block that results from this process produces significantly more media than normal Budding Amethyst, and it can be picked up and moved if one takes special care.",
+ "oneironaut.page.super_budding.2": "Pseudoamethyst requires a stronger mind than normal amethyst, but the cost is well worth it.",
+ "oneironaut.page.super_budding.3": "Additionally, when cultivated in the Noosphere, budding pseudoamethyst will produce pseudoamethyst clusters rather than conventional amethyst. These clusters will of course yield pseudoamethyst shards, as well as an unstable form of pseudoamethyst containing about four times as much media as the regular shards. Unfortunately, due to this instability, it cannot be directly converted into usable media. However, it can be converted into many other forms of media crystal by simply bringing the two items together.",
+ "oneironaut.page.super_budding.4": "It seems to react to my gaze, as if endowed with some form of perception.",
+ "oneironaut.page.super_budding.5": "The media generation rate of budding pseudoamethyst is such that even when immersed in thought slurry to inhibit crystal formation, it will still yield usable amounts of media. While the overall supply is nigh-endless, the amount accessible to any given action is quite small, like an inch-deep ocean a million miles across. However, due to this minimal depth, the media will dissipate rapidly before reaching my staff when accessed from afar, such as when recharging an item.",
+ "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I certainly $(o)can$() hold several of these in order to gain access to more easy media, this results in rapidly-diminishing returns.",
+ "oneironaut.page.super_budding.7": "I can also jam one into a trinket in order to replace its media supply with an inexhaustible phial, giving it access to the endless media within. However, it cannot use any media other than that provided by the phial.",
+ "oneironaut.page.super_budding.8": "Writes a hex to the bottomless trinket in my other hand. Costs ten charged amethyst.",
+ "oneironaut.page.idea_inscription.1": "As the noosphere is a realm of thought, it stands to reason that it could be used for information storage. These patterns do just that, inscribing an iota into the noosphere and reading it back (regardless of my current dimension). They can also store iotas inside the minds of other beings, assuming their thoughts are as... $(o)unfettered$() as my own. In the notation for these patterns, \"key\" refers to any vector or compatible entity.",
+ "oneironaut.page.idea_inscription.2": "While this is quite versatile, the noosphere's ambient media is constantly in motion, and as such any iota stored in it will eventually be lost, similar to if I poured hot water into the ocean. It seems to take about an hour before such information decays into unusable garbage.$(br2)It seems that $(l:greatwork/akashiclib)Akashic Libraries$(/l) work based on similar principles, where the shelves serve as insulation to prevent decay.",
+ "oneironaut.page.idea_inscription.3": "Accepts a valid key and any iota, and stores it in the corresponding location. Costs a quarter of an amethyst dust.",
+ "oneironaut.page.idea_inscription.4": "Accepts a valid key, and returns the corresponding iota. Costs one-eigth of an amethyst dust.",
+ "oneironaut.page.idea_inscription.5": "Accepts a valid key, and returns when the corresponding iota was inscribed, or -1. Costs no media.",
+ "oneironaut.page.idea_inscription.6": "Accepts a valid key and a player, and returns whether the corresponding iota was inscribed by that player. Costs no media.",
+ "oneironaut.page.sentinel_detection.1": "By combining the noosphere's pseudoamethyst with the organic sensory apparatus native to the deep dark, I've discovered a way to detect fluctuations in ambient media. This new form of sensor detects the presence of $(l:patterns/spells/sentinels)Sentinels$(/l) within approximately 16 meters, and outputs a redstone signal based on its proximity to the closest one. Comparators attached to it will output a signal if the sentinel in question is particularly powerful.",
+ "oneironaut.page.sentinel_detection.2": "$(o)I'm sure the warden won't mind.$()",
+ "oneironaut.page.sentinel_detection.3": "Additionally, this sensor can be incorporated into a Cleric Impetus, allowing it to activate when a sentinel is placed in the area (albeit with a lower range than the plain sensor). I've dubbed this contraption a Seer Impetus. Though it no longer responds to redstone, the circle's hex will start with a reference to the owner of the triggering sentinel on the stack.$(br)Due to the media interference produced by the cast, the impetus cannot detect sentinels it places itself.",
+ "oneironaut.page.sentinel_detection.4": "As the sensor does not care whose sentinel it sees, I should take care to avoid allowing my trap circles to target me.",
+ "oneironaut.page.sentinel_detection.5": "Accepts a vector and a player, and returns either the distance from the vector to the target player's sentinel or NULL. Costs a negligible amount of media.",
+ "oneironaut.page.sentinel_detection.6": "Conjures a fleeting sensor at the target coordinates, which \"listens\" to the patterns in the ambient media to seek out the telltale signature of a sentinel.",
+ "oneironaut.page.detection_shielding.1": "While conventional invisibility potions work just fine for fooling human senses, they are useless against hexes, so I've yet to find any method of making oneself completely undetectable. However, this spell I've discovered allows me to get closer to that goal, scattering media around a creature like chaff, in order to interfere with hex-based detection methods.",
+ "oneironaut.page.detection_shielding.2": "Accepts a living entity and a number ($(o)n$()), and shields the entity from hex-based detection for $(o)n$() seconds. Costs two amethyst dust per second.",
+ "oneironaut.page.detection_shielding.3": "Also drains media from the entity at a rate of 1/10 of a dust per second, as the shielding effect collects it to produce the chaff.$(br2)I should be careful with what I apply this to, as creatures with no loose media of their own will have their very minds fractured in order to provide this media.",
+ "oneironaut.page.detection_shielding.4": "While this is very effective at blocking effects such as $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l) and the various forms of $(l:patterns/entities#hexcasting:zone_entity/animal)Zone Distillation$(/l), it has no effect on $(l:patterns/entities#hexcasting:get_entity)Entity Purification$(/l) variants, as those already have a fairly precise idea of where you are. What's more, the chaff itself produces an energy signautre, which, while dim, is detectable by a specialized pattern.",
+ "oneironaut.page.detection_shielding.5": "Accepts a vector and a number, and returns a list of unit vectors pointing from the initial vector to shrouded entities within a radius defined by the number.",
+ "oneironaut.page.detection_shielding.6": "I've also discovered a spell which applies normal Invisibility. Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), and costs one amethyst dust per three seconds.",
+ "oneironaut.page.raycast_assailant.1": "By \"threading\" pseudoamethyst through a block, I can create something which causes any raycast (including entity raycasts) that hits or passes through it to return null, as if it didn't hit anything.",
+ "oneironaut.page.raycast_assailant.3": "Strangely, combining pseudoamethyst with obsidian in the same way does not confer anti-raycast properties, instead making it nigh-indestructible to hexes. However, the resultant block loses much of its durability, being no stronger than common stone (though it retains its blast resistance).",
+ "oneironaut.page.mindrender.1": "I've read legends of a particularly macabre form of weapon known as a Mind Render. This weapon, sometimes used by ancient hexcasters, is capable of severing a creature's very thoughts, dealing damage that bypasses all known forms of protection. What's more, if this damage leaves the target just on the brink of true death, it will fall into a vegetative state, never to recover. I shudder to think of what the ancients may have used this property for...",
+ "oneironaut.page.mindrender.2": "Accepts an item or item frame bearing the Sharpness enchantment, and converts it into Mind Render of the same level. Cost is based on enchantment level, and increases by 50%% if the item is a book.",
+ "oneironaut.page.lore.treatise1.1": "While it is possible to produce most iotas on the fly, there are cases where one finds it impractical, or simply cannot (such as very large and precise numbers, or entity references), and as such must obtain the desired iota in another way. Reading it from a Focus or a similar item works just fine, but in many cases this would require a third hand, which I do not have. Other methods of fetching iotas from external locations have their own limitations as well.",
+ "oneironaut.page.lore.treatise1.2": "In cases where no external reference method would work well, one must insert the desired iota into the hex itself. This may seem counterintuive to some, what with the conventional wisdom being that a hex is a list of patterns, but one must remember that patterns are just another type of iota, which $(l:patterns/meta#hexcasting:eval)Hermes' Gambit$(/l) (and similar patterns) works particularly well with.",
+ "oneironaut.page.lore.treatise1.3": "While you can't just shove a number into the list and expect it to be pushed to the stack as if it was a $(l:patterns/numbers)Numerical Reflection$(/l) pattern, there are ways around this.$(br2)The simplest (and least reliable) is the $(l:patterns/patterns_as_iotas#hexcasting:escape)Consideration$(/l) pattern. Similar to its use when casting freehand, anything that comes immediately after it in a list will be escaped and pushed to the stack when it might otherwise be executed, preventing mishaps due to execution of non-patterns.",
+ "oneironaut.page.lore.treatise1.4": "However, when you're more than one exeuction deep in a hex (such as with nested conditional logic, or loops), the number of Considerations required to properly escape an iota increases exponentially, making it unreliable when used in anything that could conceivably be executed by another hex.",
+ "oneironaut.page.lore.treatise1.4.link": "relevant xkcd",
+ "oneironaut.page.lore.treatise1.5": "A far more reliable method of escaping iotas is to use $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(/l) and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)Retrospection$(/l). When a pattern list is being evaluated and an Introspection is encountered, everything up to (but not including) its paired Retrospection is escaped and pushed to the stack in a list, regardless of iota type. You can then work with this list as you see fit, such as using $(l:patterns/lists#hexcasting:splat)Flock's Disintegration$(/l) to push all of its contents to the stack on their own.",
+ "oneironaut.page.lore.treatise1.6": "If the contents of your list looks like this:$(br2)Introspection$(br)Any iota(s)$(br)Retrospection$(br)Flock's Disintegration$(br2)the state of the stack after all that is executed will simply be all the iotas that were contained within Introspection and Retrospection.",
+ "oneironaut.page.lore.treatise2.1": "When one wishes to impart motion upon something, the standard method is to use $(l:patterns/spells/basic#hexcasting:add_motion)Impulse$(/l). However, this can get prohibitively expensive when one wishes to make something move extremely quickly, as the cost increases exponentially with the length of the vector. This can be mitigated by simply using a magnitude-1 Impulse many times over on a single target, turning the overall cost from n^2 to 2n-1, where n is the magnitude of the vector.",
+ "oneironaut.page.lore.treatise2.2": "The easiest way to accomplish this is with $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l), by giving it a list containing many instances of the same entity reference. There are other (and often better) methods, of course, but aside from simply drawing the patterns over and over, they generally fall under the broader topic of loops, which is outside the scope of this document.",
+ "oneironaut.page.lore.treatise3.1": "While $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) is perfectly-suited for casting something on many targets at once, using to it cast something on one target many times can get awkward, and short of completely halting the hex, it is not possible to add or remove targets once Thoth has begun executing.$(br)To get around these limitations, one simply needs to use a different sort of loop.",
+ "oneironaut.page.lore.treatise3.2.header": "While Loop",
+ "oneironaut.page.lore.treatise3.2": "A While loop is a loop that continues executing until some condition is fulfilled, such as an entity's target velocity having been reached. The most common way to accomplish this is creating a pattern list which duplicates and executes the top iota on the stack, duplicating it, then executing it. On its own this simply produces an infinite loop which does nothing but mishap.",
+ "oneironaut.page.lore.treatise3.3": "However, by adding actual functionality and a bit of boolean logic, you can create a proper while loop. The code for the aforementioned infinite loop is as follows:$(br)Introspection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br)Retrospection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br2)By adding logic that changes whether the inner Hermes' Gambit gets evaluated based on a condition, you can make it stop once that condition is fulfilled.",
+ "oneironaut.page.lore.treatise3.4.header": "Loop Unrolling",
+ "oneironaut.page.lore.treatise3.4": "A more complex form of loop is an unrolled loop. Like Thoth's Gambit, it's created with a fixed number of iterations which can't easily be added to, but Charon's Gambit can be used to halt it early if need be. It also has the advantage that when done competently, it only ever produces one or two levels of recursion depth (not counting anything executed in the body of the loop). Loop unrolling is accomplished by creating a pattern list you want to repeat, duplicating it many times, and then combining all those lists into one.",
+ "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:concat)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
+ "oneironaut.page.lore.treatise4.1": "Some of my, erm, \"colleagues\" have trouble transcribing long hexes.$(br)\"This is too long!\"$(br)\"The grid doesn't have enough space!\"$(br)$(bold)Skill issue$(), I say. It's not like a hex is immutable once you've drawn the last Retrospection. All you need to do is save the work-in-progress hex to a focus (though you should make sure to conserve enough grid space to actually do this).",
+ "oneironaut.page.lore.treatise4.2": "Then you just use the $(l:patterns/lists)list manipulation$(/l) patterns to combine it with the other parts once you're done.$(br2)You don't even need to use multiple foci, you can just append one part to the last one as you finish them, and then save that to one focus. The multiple-focus method makes it easier to debug your finished hex, but as far as I know that's its only benefit compared to the one-focus method.",
+ "oneironaut.page.lore.science1.1": "$(o)\"What is this and how do I get rid of it?\"$()$(br)A question asked by many people upon their first encounter with a slipway. I don't have a good answer for the second part of the question, but I believe I can provide a satisfactory response to the first.$(br)From what I can tell, a slipway is a tiny hole in space, the other side of which is the media realm known as the Noosphere.",
+ "oneironaut.page.lore.science1.2": "The wisp-like phenomena that emerge from it are formed when the vast ambient media of the Noosphere attempts to rush through the hole (much like gas leaking into a near-vacuum) and gets tangled in a manner similar to how wisp-summoning spells weave the media which they consume.",
+ "oneironaut.page.lore.science1.3": "Additionally, it seems that slipways have a sort of barrier over the entrance, preventing any matter from passing through. If this barrier could be pierced, and the hole expanded, the slipway would become capable of absorbing matter into the noosphere. It would also cease producing wisps, as the media coming through would do so far more slowly, and thus not be agitated and tangled. If one were to attempt this, they would have to be careful not to widen it too greatly, or they would risk the surrounding area being absorbed into the noosphere.",
+
+ "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
+
+ "oneironaut.page.lore.science2.1": "What a strange place. The liquid that comprises the ocean here is not much denser than water, but small islands float in it despite being comprised of a rock similar in density to ordinary basalt. What's more, everything seems strangely ephemeral, like a dream. But how could this be a dream, when I am more lucid than I've ever been before?",
+ "oneironaut.page.lore.science2.2": "It seems this great lucidity is a product of the ambient media present here, lubricating my thoughts. These media levels even exceed those present at the cores of wisps, reducing their innate decay to infinitesimal levels. Interestingly, this has no effect on wisps which bear an imprint of someone else's soul, preventing me from using wisps as indefinite truename storage.$(br)This ambient media even leaks through sufficiently-large dimensional rifts, preserving wisps on the other side as long as they remain within a certain range of the rift.",
+ "oneironaut.page.lore.science3.1": "This crystal is quite fascinating. An object formed from pure media, orders of magnitude denser than conventional conjured blocks, or even the condensed media crystals that some of my colleagues at the library have been studying. It doesn't even contain the trace amounts of silicon dioxide found in amethyst of similar media density. And when I leave it unattended for a while, dust collects in fractalline patterns, as if the crystal bears a passive spell-like effect.",
+ "oneironaut.page.lore.science3.2": "Examining it more thoroughly under a microscope, it seems that these fractals extend beneath the surface of the crystal, and are constantly shifting in a consistent pattern. Could this be a time crystal?",
+ "oneironaut.page.glow_ambit.1": "Despite diligent research, the source of the special properties of other hexcasters' entity references has eluded me. However, I've discovered a way to bestow one such property upon other beings, at least temporarily (and flashily).$(br)This spell allows casters to affect creatures from great distances just like the infinite-range aspect of a player reference. However, one must still be close to the target in order to perform the initial application.",
+ "oneironaut.page.glow_ambit.2": "Accepts a living entity, and allows it to be accessed from anywhere for one minute. Has a base cost of one amethyst shard, plus one additional shard per application before allowing it to expire.",
+ "oneironaut.page.glow_ambit.3": "It seems that this effect functions by causing the target to emit some sort of psionic resonance, strong enough to cause its outline to be \"visible\" through all manner of barriers (perhaps hexcasters naturally produce this same resonance, but much subtler?). However, this glow is distinct from that induced by spectral arrows and similar, so don't bet on things to detect that working for this.",
+ "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:oneironaut:patterns/idea_inscription)Idea Inscription$(/l).",
+ "oneironaut.page.soulprints.2": "Returns my soulprint, mishapping if cast using anything other than a staff. Costs a negligible amount of media.",
+ "oneironaut.page.soulprints.3": "Invisibly engraves my soulprint onto the item in my other hand, or erases it if it is already there. Costs 1 amethyst dust.$(br)I should be careful to seal any focuses or similar that I sign, as acquiring an unsealed signed focus may allow someone to impersonate me, and Erase Item gets rid of the signature.",
+ "oneironaut.page.soulprints.4": "Accepts a soulprint, and checks if the item in my other hand is engraved with it. Returns true if so, false otherwise. Costs a negligible amount of media.",
+ "oneironaut.page.hover_elevator.1": "By combining materials native to the noosphere with certain ingredients associated with levitation, I can create a device which produces streams of propulsive energy capable of carrying me along them, with minimal risk of falling. To use it, it must be placed facing directly towards another one (which must be facing it in turn). Once I've done this, both ends must be activated with a",
+ "oneironaut.page.hover_elevator.2": "redstone signal, and the energy stream will form between the paired emitters, assuming they are within range of each other (64 meters horizontally, or 128 vertically). By stepping into the stream, I will be held in place until I look towards either end of the stream, at which point I will be accelerated in that direction until I hit a maximum speed proportional to how closely my vision parallels the stream. Crouching causes the stream to hold me in place regardless of my gaze.",
+ "oneironaut.page.hover_elevator.3": "$(o)Best to don some long fall boots the first time I try these.",
+ "oneironaut.page.hover_elevator.meme":"$(o)Bad and naughty hexcasters get sent to the hover cube.",
+ "oneironaut.page.hover_elevator.4": "Additionally, I can create a repeater capable of extending the range of the emitters when placed between them, such that the stream can continue on as if it had just left the emitter. Of course, such an extension requires more powerful components, and even then the stream can only be extended by three repeaters before it becomes too unstable to form.",
+ "oneironaut.page.hover_elevator.5": "Fortunately, this device seems to be rather immaterial for some reason, and I can pass straight through it without having to carefully twist around it in the stream.$(br)$(o)No, it does not make the stream pause for a moment before continuing.",
+ "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:oneironaut:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
+ "oneironaut.page.flayrevival.2": "Accepts a flayed mob, and creates an artifical pseudo-mind to inhabit its body. Costs 16 charged amethyst when used on a villager or allay, or 10 amethyst shards for anything else.",
+ "oneironaut.page.flayrevival.3": "While these pseudo-minds are capable of moving their bodies around as if they were their original inhabitants, they are too simple to be called truly sapient, even with the rather loose definition of the term that must be used when applying it to villagers. As such, any villager \"restored\" in this manner loses any professional experience it had before, and cannot gain such experience ever again.",
+ "oneironaut.page.flayrevival.4": "They do, however, regain their ability to reproduce, with any children they produce being untainted by my craft.$(br2)I'm not sure why the restored villagers suddenly gain an affinity for green clothing, but at least it serves as a good indicator of which villagers will be of little further use.",
+ "oneironaut.page.monkfruit.1": "I've discovered that using the $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l) spell on a Sweet Berry Bush produces a rather interesting plant. It is much like the shrub it mutates from, however its thorns are imbued with a media field which siphons the minds of pricked creatures into the plant in order to grow. It can grow without this (albeit slowly), though it still requires minds nearby to provide small amounts of media.",
+ "oneironaut.page.monkfruit.2": "The fruit that this bush produces is quite sweet, and can be processed into sugar. Additionally, it releases bits of media during digestion, which seek out rechargeable items on my person. I should be wary of the thorns while picking the fruit.",
+ "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:oneironaut:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
+ "oneironaut.page.monkfruit.4": "$(o)It's not rocket science.$()",
+
+ "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
+ "oneironaut.advancements.noosphere.enter": "A Realm of Thought and Dream",
+ "oneironaut.advancements.noosphere.enter.description": "Enter the Noosphere",
+ "oneironaut.advancements.noosphere.find_tower": "A Timeless Classic",
+ "oneironaut.advancements.noosphere.find_tower.description": "Discover the tower of an unknown hexcaster",
+ "oneironaut.advancements.noosphere.find_media_lab": "Crystallized",
+ "oneironaut.advancements.noosphere.find_media_lab.description": "Discover a grim experiment",
+ "oneironaut.advancements.noosphere.find_garden": "Stranded",
+ "oneironaut.advancements.noosphere.find_garden.description": "Discover an unfortunate soul's last reminder of home",
+ "oneironaut.advancements.lore.root": "Oneironaut Lore",
+ "oneironaut.advancements.lore.root.description": "Memories lost to time",
+ "oneironaut.advancements.lore.treatise1": "Hexcaster's Memory #1",
+ "oneironaut.advancements.lore.treatise1.description": "Reflections on iota embedding",
+ "oneironaut.advancements.lore.treatise2": "Hexcaster's Memory #2",
+ "oneironaut.advancements.lore.treatise2.description": "Reflections on efficient use of Impulse",
+ "oneironaut.advancements.lore.treatise3": "Hexcaster's Memory #3",
+ "oneironaut.advancements.lore.treatise3.description": "Reflections on repeated patterns",
+ "oneironaut.advancements.lore.treatise4": "Hexcaster's Memory #4",
+ "oneironaut.advancements.lore.treatise4.description": "Reflections on long hexes",
+ "oneironaut.advancements.lore.science1": "Scientist's Memory #1",
+ "oneironaut.advancements.lore.science1.description": "Research into the nature of slipways",
+ "oneironaut.advancements.lore.science2": "Scientist's Memory #2",
+ "oneironaut.advancements.lore.science2.description": "Research into the properties of the Noosphere",
+ "oneironaut.advancements.lore.science3": "Scientist's Memory #3",
+ "oneironaut.advancements.lore.science3.description": "Research into the structure of pseudoamethyst",
+ "oneironaut.advancements.unflay": "Recycling!",
+ "oneironaut.advancements.unflay.description": "Surely you weren't going to just throw that away!",
+ "oneironaut.advancements.ouchie": "Ouch!",
+ "oneironaut.advancements.ouchie.description": "What did you expect?",
+
+ "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
+ "hexcasting.mishap.oneironaut:badcuboid.mismatch": "Supplied cuboids are dissimilar.",
+ "hexcasting.mishap.oneironaut:badcuboid.toobig": "Supplied cuboids are too big.",
+ "hexcasting.mishap.oneironaut:uninfusable": "Expected an infusable block at %s, but got %s.",
+ "hexcasting.mishap.oneironaut:nonoosphere": "Expected one end of the transfer to be a special dimension.",
+ "hexcasting.mishap.oneironaut:norod": "Expected to be cast from a Reverberation Rod.",
+ "hexcasting.mishap.oneironaut:norodremote": "Expected an active Reverberation Rod in hand.",
+ "hexcasting.mishap.oneironaut:missingenchant": "Expected %s to be enchanted with %s, but it is not.",
+ "hexcasting.mishap.oneironaut:unhappyslime": "The slime says \"%s\"",
+ "hexcasting.mishap.oneironaut:norequirediota": "The slime demands %s",
+ "hexcasting.mishap.oneironaut:requiresdifferententities": "an entity different from the target",
+ "hexcasting.mishap.oneironaut:nostaff": "%s expected to be cast using a staff.",
+ "oneironaut.mishap.noitemframe": "an item frame",
+ "oneironaut.mishap.invalidideakey": "a vector, player, or soulprint",
+ "oneironaut.mishap.unenlightenedtarget": "an enlightened player",
+ "oneironaut.mishap.notbrainswept": "a flayed villager",
+ "oneironaut.mishap.badentitykey": "an enlightened player or a flayed villager",
+ "oneironaut.mishap.nolistsallowed": "a non-list iota",
+ "oneironaut.mishap.entitytypelistplease": "a list of entity types",
+ "oneironaut.mishap.wrongsizelist": "List is improperly sized.",
+ "oneironaut.mishap.twovectorsplease": "List does not contain two vectors.",
+ "oneironaut.mishap.requiresflayedmob": "%s expected a flayed mob, but got %s.",
+ "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "a spatial imprint",
+ "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "a soulprint",
+
+ "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
+ "hexcasting.iota.oneironaut:dim": "Dimension",
+ "hexcasting.iota.oneironaut:uuid": "Soulprint",
+ "hexcasting.iota.oneironaut:uuid.label": "Soulprint of %s",
+ "biome.oneironaut.noosphere_sea": "Noosphere Sea",
+ "text.oneironaut.clearIdeasResponse": "Cleared iota storage map.",
+ "effect.oneironaut.detection_resistance": "Media Shroud",
+ "effect.oneironaut.not_missing": "Uplifting Resonance",
+ "effect.oneironaut.rumination": "Rumination",
+ "enchantment.oneironaut.overcast_damage": "Mind Render",
+ "itemGroup.oneironaut.oneironaut": "Oneironaut",
+ "oneironaut.tooltip.wispcapturedevice.haswisp": "Contains a wisp with %s dust and hex signature %s.",
+ "oneironaut.tooltip.wispcapturedevice.nowisp": "No wisp.",
+ "oneironaut.tooltip.wispcapturedevice.uninitialized": "Media reservoir has not been initialized.",
+ "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "oneironaut.tooltip.lich_media_amount": "Reservoir contains: %s/%s (%s)"
+}
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
new file mode 100644
index 000000000000..cc6226bf4541
--- /dev/null
+++ b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
@@ -0,0 +1,323 @@
+{
+ "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
+ "hexcasting.action.oneironaut:getdim1": "空间之精思",
+ "hexcasting.action.oneironaut:getdim2": "空间之精思,第二型",
+ "hexcasting.action.oneironaut:getdim/overworld": "家园之精思",
+ "hexcasting.action.oneironaut:getdim/nether": "狱界之精思",
+ "hexcasting.action.oneironaut:getdimheight": "阿特拉斯之分解",
+ "hexcasting.action.oneironaut:getdimscale": "空程之纯化",
+ "hexcasting.action.oneironaut:dimteleport": "智识门径",
+ "hexcasting.action.oneironaut:infusemedia": "媒质灌注",
+ "hexcasting.action.oneironaut:swapspace": "空间互换",
+ "hexcasting.action.oneironaut:craftrod": "指挥法杖",
+ "hexcasting.action.oneironaut:getrodlook": "指挥棒之精思",
+ "hexcasting.action.oneironaut:getrodpos": "指挥棒之精思,第二型",
+ "hexcasting.action.oneironaut:getrodstamp": "节拍器之精思",
+ "hexcasting.action.oneironaut:delayrod": "节拍器之策略",
+ "hexcasting.action.oneironaut:haltrod": "终曲",
+ "hexcasting.action.oneironaut:resetrod": "安可",
+ "hexcasting.action.oneironaut:readrodram": "威廉姆斯之精思",
+ "hexcasting.action.oneironaut:writerodram": "威廉姆斯之策略",
+ "hexcasting.action.oneironaut:readrodramremote": "威廉姆斯之精思,第二型",
+ "hexcasting.action.oneironaut:writerodramremote": "威廉姆斯之策略,第二型",
+ "hexcasting.action.oneironaut:queryrod": "指挥家之精思",
+ "hexcasting.action.oneironaut:rodloopactive": "指挥家之精思,第二型",
+ "hexcasting.action.oneironaut:craftbottomlesstrinket": "制作无底缀品",
+ "hexcasting.action.oneironaut:writeidea": "刻印思绪",
+ "hexcasting.action.oneironaut:readidea": "收回思绪",
+ "hexcasting.action.oneironaut:readideatime": "元数据之纯化",
+ "hexcasting.action.oneironaut:readideawriter": "元数据之馏化",
+ "hexcasting.action.oneironaut:readsentinel": "检视哨卫",
+ "hexcasting.action.oneironaut:resistdetection": "隐匿遮罩",
+ "hexcasting.action.oneironaut:detectshroud": "辨察遮罩",
+ "hexcasting.action.oneironaut:circle": "圆",
+ "hexcasting.action.oneironaut:applymindrender": "赋能意识撕裂者",
+ "hexcasting.action.oneironaut:reviveflayed": "灌注精神",
+ "hexcasting.action.oneironaut:advanceautomaton": "质胞生成",
+ "hexcasting.action.oneironaut:applynotmissing": "扬升共振",
+ "hexcasting.action.oneironaut:getsoulprint": "灵魂印记之精思",
+ "hexcasting.action.oneironaut:signitem": "签印物品",
+ "hexcasting.action.oneironaut:checksignature": "签印之纯化",
+
+ "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
+ "item.oneironaut.pseudoamethyst_shard": "伪紫水晶碎片",
+ "item.oneironaut.shifting_pseudoamethyst": "易形伪紫水晶",
+ "item.oneironaut.thought_slurry_bucket": "思维浆液桶",
+ "item.oneironaut.reverberation_rod": "回响之杖",
+ "item.oneironaut.endless_phial": "无穷媒质之瓶",
+ "item.oneironaut.bottomless_trinket": "无底缀品",
+ "item.oneironaut.echo_staff": "回响法杖",
+ "item.oneironaut.beacon_staff": "科技法杖",
+ "item.oneironaut.spoon_staff": "勺子",
+ "item.oneironaut.pigment_flame": "火焰染色剂",
+ "item.oneironaut.pigment_echo": "回响染色剂",
+ "item.oneironaut.pigment_noosphere": "智识染色剂",
+ "item.oneironaut.pigment_frenzyflame": "狂热染色剂",
+ "item.oneironaut.memory_fragment": "记忆碎片",
+ "item.oneironaut.memory_fragment.all": "似乎我已经集齐了这些晶体中所有我能找到的记忆……",
+ "item.oneironaut.wisp_capture_device": "咒灵牧织器",
+ "item.oneironaut.mind_scalpel": "突触手术刀",
+ "item.oneironaut.monkfruit": "修道果",
+ "item.oneironaut.rending_thorns": "裂识荆棘",
+
+ "block.oneironaut.noosphere_gate": "神秘裂口",
+ "block.oneironaut.pseudoamethyst_block": "伪紫水晶块",
+ "block.oneironaut.pseudoamethyst_cluster": "伪紫水晶簇",
+ "block.oneironaut.pseudoamethyst_bud_small": "小型伪紫水晶芽",
+ "block.oneironaut.pseudoamethyst_bud_medium": "中型伪紫水晶芽",
+ "block.oneironaut.pseudoamethyst_bud_large": "大型伪紫水晶芽",
+ "block.oneironaut.thought_slurry": "思维浆液",
+ "block.oneironaut.thought_slurry_flowing": "流动的思维浆液",
+ "block.oneironaut.noosphere_basalt": "智识界玄武岩",
+ "block.oneironaut.wisp_lantern": "咒灵灯笼",
+ "block.oneironaut.wisp_lantern_tinted": "遮光咒灵灯笼",
+ "block.oneironaut.super_budding": "伪紫水晶母岩",
+ "block.oneironaut.sentinel_sensor": "哨卫探测器",
+ "block.oneironaut.raycast_blocker": "反射线追踪板岩",
+ "block.oneironaut.raycast_blocker_glass": "反射线追踪玻璃",
+ "block.oneironaut.sentinel_trap": "探察促动石",
+ "block.oneironaut.circle": "§0§o圆",
+ "block.oneironaut.hex_resistant_block": "咒术防护黑曜石",
+ "block.oneironaut.media_ice": "贤能智冰",
+ "block.oneironaut.media_ice_frosted": "暂态贤能智冰",
+ "block.oneironaut.media_gel": "精神原质团",
+ "block.oneironaut.cell": "失协精神",
+ "block.oneironaut.wisp_battery": "咒灵编织器",
+ "block.oneironaut.decorative_wisp_battery": "初等咒灵编织器",
+ "block.oneironaut.hover_elevator": "咒术师的悬浮桥链",
+ "block.oneironaut.hover_repeater": "悬浮桥链中继器",
+ "block.oneironaut.monkfruit_bush": "修道果丛",
+ "block.oneironaut.spacebomb": "质道蓄爆器",
+
+ "fluid.oneironaut.thought_slurry": "思维浆液",
+
+ "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
+ "oneironaut.entry.dim_iotas": "维度 Iota",
+ "oneironaut.entry.status_iotas": "状态 Iota",
+ "oneironaut.entry.noosphere_main": "奇怪的领域",
+ "oneironaut.entry.noosphere_materials": "富思维材料",
+ "oneironaut.entry.wisp_lanterns": "咒灵设备",
+ "oneironaut.entry.slipway_hint": "有关质道的精思",
+ "oneironaut.entry.miscpatterns": "航梦:杂项图案",
+ "oneironaut.entry.super_budding": "更好地量产媒质",
+ "oneironaut.entry.idea_inscription": "思绪刻印",
+ "oneironaut.entry.sentinel_detection": "哨卫侦测",
+ "oneironaut.entry.detection_shielding": "侦测回避",
+ "oneironaut.entry.raycast_assailant": "反咒术方块",
+ "oneironaut.entry.mindrender": "意识撕裂者",
+ "oneironaut.entry.soulprints": "灵魂印记",
+ "oneironaut.entry.hover_elevator": "悬浮桥链",
+ "oneironaut.entry.flayrevival": "人工意识",
+
+ "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
+ "oneironaut.page.spaceswap.1": "接受均由两个向量组成的两个列表,用于定义两个长方体,以及一个空间印记。所定义的长方体必须保证尺寸与朝向一致。",
+ "oneironaut.page.spaceswap.2": "我不太清楚这个图案具体能做什么,它总是对我喊着什么“特殊维度”。也许它需要这种特殊维度作为中介?",
+ "oneironaut.page.spaceswap.3": "将我所处维度中第一个长方体包含的方块(需在影响范围内)与空间印记对应维度中第二个长方体包含的方块互换。$(l:https://www.desmos.com/calculator/ydbg8zhmyp)消耗以紫水晶粉计,前 1001 个方块遵循对数消耗,之后则按照线性关系增加$(/l)。$(br)不会互换不可破坏的方块。$(br)两维度之一或两者均需为智识界。",
+ "oneironaut.page.spaceswap.4": "两维度之一或两者均需为智识界。",
+ "hexcasting.spell.oneironaut:dimteleport.samedim": "这个法术什么都不会做,类似让已经在家的人回家。",
+ "oneironaut.page.dim_iotas.1": "我发现了一种新 iota,它们似乎象征着现实本身的某一层面。为方便理解,我决定称其为“空间印记”。",
+ "oneironaut.page.dim_iotas.2": "返回象征着我所处维度的空间印记。消耗极少量媒质。",
+ "oneironaut.page.dim_iotas.3": "返回象征着我哨卫所处维度的空间印记。消耗 1/10 个紫水晶粉。",
+ "oneironaut.page.dim_iotas.4": "返回象征着主世界的空间印记。消耗 1/10 个紫水晶粉。",
+ "oneironaut.page.dim_iotas.5": "返回象征着下界的空间印记。消耗 1/10 个紫水晶粉。$(br)这个法术的施放总有些不够顺畅。也许我需要$(#54398a)再精进我的技术$()……",
+ "oneironaut.page.dim_iotas.6": "接受一个空间印记,返回对应维度中可存在方块的最低和最高海拔。",
+ "oneironaut.page.dim_iotas.7": "接受一个空间印记,返回对应维度中1格距离相当于主世界中的几格距离。",
+ "oneironaut.page.dimteleport.1": "接受一个实体和一个空间印记,将所给实体传送入对应维度的同一位置。消耗 20 个充能紫水晶。$(br2)传入其他玩家时会失效。",
+ "oneironaut.page.dimteleport.2": "如果在离开原先所处维度的同一时刻,用此法术返回该维度,则消耗会减少到 5 个紫水晶粉:法术会捕捉残存的媒质以将我传送回原来的位置。其他情况下,则会在目的地周围找个安全的位置作为目的地,甚至有可能构筑方块以防止坠落而亡。$(br2)我在用这个法术时总有种奇怪的加速感,但我无法理解加速度到底是朝着哪个轴的。",
+ "oneironaut.page.infusemedia.1": "接受一个向量,并向该位置方块中注入媒质,以嬗变该方块。消耗量与具体效果随目标变化而变。",
+ "oneironaut.page.infusemedia.2": "概念上来看,此法术与$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)类似。$(br)然而,这种方法灌注的媒质相较之下经过精细调校,因此能产生更为有意思的效果。",
+ "oneironaut.page.wisp_lanterns.1": "我发现,若是使用了独属于智识界的材料,便能制造出一种特殊的罐子,它能产生并容纳一只微型咒灵。这种咒灵尽管无法施法,但能发出相当的光,还会模拟它看见的染色剂。$(br)我还能用遮光玻璃制造同类物品,避免咒灵的光亮影响到我书房的美学设计。",
+ "oneironaut.page.wisp_lanterns.2": "此外,往这些照明用咒灵里注入大量的媒质,就可强令其分裂自身。新产生的咒灵与质道产生的游走咒灵几乎完全一致。$(br2)以此类方式分裂咒灵的设备接受任意存储媒质的物品,可通过漏斗一类的装置送入。它最多能存储相当于 640 个充能紫水晶的媒质。",
+ "oneironaut.page.wisp_lanterns.3": "给予红石信号即可激活。它每 4 秒产生 1 个咒灵,同时消耗 2 个充能紫水晶。$(br)合成时所用媒质之瓶的容量和媒质量对产物无影响。",
+ "oneironaut.page.wisp_lanterns.4": "还可制造一类完全不消耗(和接受)媒质的设备,它所生成的咒灵拆解后总媒质量为 0。$(br2)闪亮球珠仍在,不见代价惹忧!",
+ "oneironaut.page.wisp_lanterns.5.originaltoolong": "参照类似原理,我设计了一种能够捕获(并容纳)咒灵的设备,之后再释放出去。不过游走咒灵太过不稳定,无法捕获。$(br)此设备的媒质容量为 64 个充能紫水晶(可重充能)。捕获我自己的咒灵消耗 1 个紫水晶碎片,捕获他人的咒灵消耗咒灵中媒质量的 1.5 倍。直接对咒灵使用即可捕获它,吸入外壳中(需有足量媒质,且其中未存有咒灵)。",
+ "oneironaut.page.wisp_lanterns.5": "参照类似原理,我设计了一种能够捕获、存储、释放咒灵的设备,不过它对游走咒灵无效。捕获我自己的咒灵消耗 1 个紫水晶碎片,捕获他人的咒灵消耗相当于 1.5 倍咒灵中媒质量的媒质。直接对咒灵使用即可捕获它,设备自身需有足量媒质,且其中未存有咒灵。",
+ "oneironaut.page.wisp_lanterns.6": "释放循环型咒灵时,它会出现在所指方块的旁边。弹射式咒灵则会从我的脸前发射出去,保留捕获前速度(方向不保留)。潜行时使用物品,即可丢弃存储的咒灵。",
+ "oneironaut.page.wisp_lanterns.7": "初始化此装置的媒质储库时,需手持后对我自己的咒灵使用。该咒灵会消散且无法召回,装置的媒质容量会设为与该咒灵一致,按紫水晶粉向上取整。若需重设此数据(以及其他所有数据与配置),将其单独放在合成方格中合成即可。",
+
+ "oneironaut.page.noosphere_materials.1": "一种奇怪的流体,会搅混进入其中的媒质,并阻止紫水晶晶体的形成。浸在其中时,它会以愉悦的方式刺激我的意识。",
+ "oneironaut.page.noosphere_materials.2": "主要由媒质构成的岩石,原理不明。可合成法术环方块。",
+ "oneironaut.page.noosphere_materials.3.title": "伪紫水晶",
+ "oneironaut.page.noosphere_materials.3": "一大块媒质晶体,与紫水晶类似但不完全相同。触摸时会有种嗡鸣感,就好像媒质在刺激神经一般。不加以特殊措施直接破坏会将其破碎为 1 到 4 块碎片。",
+ "oneironaut.page.noosphere_materials.4": "这些碎片能驱动法术,且比普通紫水晶提供的能量稍多一些。也能用来制造些有趣的物件。",
+ "oneironaut.page.noosphere_materials.5": "一种固态的媒质,由思维浆液在富媒质环境中冻结而得。这种冻结也可由咒术造成。$(br)其表面的摩擦系数似乎为负,任何在其上滑动的事物会无限加速(虽然较慢)。",
+ "oneironaut.page.noosphere_materials.6": "一类极其黏稠的媒质,拥有极为基础的认知能力,与黏菌类似。它通常情况下表现出惰性,但会以类似法术的能力试图困住触碰到它的事物。",
+ "oneironaut.page.slipway_hint.1": "那些质道,它们一定能联通到$(o)某些地方$()。咒灵不会凭空出现。不管我怎么尝试,我最多只能让一根手指穿过那道混沌的裂口。$(br2)我大概是想错了。与其凭蛮力穿过裂口,也许还是尝试平息风暴更为有效。",
+ "oneironaut.page.slipway_hint.2": "大量的调谐媒质应该就能做到……",
+ "oneironaut.page.slipway_hint.2.title": "嗯……",
+ "oneironaut.page.noosphere_main.1": "我成功了。$(br)质道另一端的领域。环境中的媒质多到难以想象。我的意识正朝我尖啸,叫喊着我不应该在这里。但我必须前进。这里就是旅途的下一站。",
+ "oneironaut.page.noosphere_main.2": "我在此勘测的每一件事物似乎主要都由媒质构成,很像构筑物质,但浓度高出了几个数量级。$(br)$(o)就连空气都是媒质。我是怎么呼吸的?$(br2)$(l)我又是怎么能存在于此的?",
+ "oneironaut.page.rod.1": "我发现我能用远古城市中找到的奇怪碎片合成一种奇异的施法物品。$(br)这件物品的奇异之处,就在于集中思维时,它能以每秒 20 次的频率施放其中的咒术,直到产生事故或者我施放终曲和安可时才停止。如此会触发一段冷却时间,通常有大约 1 秒。",
+ "oneironaut.page.rod.2": "回响碎片似乎包含着某种怪异形态的媒质。因此它具有循环自身的倾向,同时会保留一部分上一次施法时的信息。",
+ "oneironaut.page.rod.3": "和$(l:patterns/spells/hexcasting)用于制造传统施法物品的法术$()类似。消耗 10 个充能紫水晶。",
+ "oneironaut.page.rod.4": "使用回响之杖施放时,返回当前循环开始时我的视线向量。",
+ "oneironaut.page.rod.5": "使用回响之杖施放时,返回当前循环开始时我的眼部位置。",
+ "oneironaut.page.rod.6": "使用回响之杖施放时,返回当前循环开始时的时间戳。",
+ "oneironaut.page.rod.7": "接受一个正整数。使用回响之杖施放时,将下一次施法延迟所给数个 1/20 秒。",
+ "oneironaut.page.rod.8": "使用回响之杖施放时,强制停止当前循环。",
+ "oneironaut.page.rod.9": "接受一个正整数。停止当前循环,并将冷却时间从 1 秒缩短至所给数个 1/20 秒。事故造成的冷却不受影响。",
+ "oneironaut.page.rod.10": "接受一个非列表 iota,并将其存入当前循环。该 iota 会在循环结束时丢失。",
+ "oneironaut.page.rod.11": "返回当前循环中存储的 iota。默认为 Null。",
+ "oneironaut.page.rod.12": "检查当前施法者是否正在使用回响之杖,返回一个布尔值。",
+ "oneironaut.page.rod.13": "与威廉姆斯之策略类似,但可在回响之杖被占用时,由其他施法方式施放。",
+ "oneironaut.page.rod.14": "与威廉姆斯之精思类似,但可在回响之杖被占用时,由其他施法方式施放。",
+ "oneironaut.page.rod.15": "检查施法者是否正在使用回响之杖,不要求是在使用当前杖。",
+ "oneironaut.page.rod.16": "回响碎片也可用于制造法杖,不过这种法杖唯一的特殊性质便是发出些幽匿的声音。",
+ "oneironaut.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
+ "oneironaut.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
+ "oneironaut.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
+ "oneironaut.page.miscpatterns.4": "与$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)类似,但能够接受一个实体类型 iota 列表。类型不在该列表内的实体会被忽略。消耗的媒质量略多于上文所提图案的“极少量”。",
+ "oneironaut.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布。",
+ "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
+ "oneironaut.page.super_budding.1": "我发现智识界出产的一种类紫水晶物质会接受村民的意识,这点和普通的紫水晶一样。不过,接受意识所得方块的媒质产量相当高,远超出普通紫水晶母岩的能力,而且只要足够小心就能捡起它搬走。",
+ "oneironaut.page.super_budding.2": "比起使用普通紫水晶来说,使用伪紫水晶需要更强大的意识,但得到的回报绝对值得。",
+ "oneironaut.page.super_budding.3": "此外,在智识界中培育时,伪紫水晶母岩会产生伪紫水晶簇,而不是普通的紫水晶。自然,这些晶簇掉落的是伪紫水晶碎片,但同时也会掉落一种不甚稳定的伪紫水晶,其媒质含量是普通碎片的四倍。正是由于这种不稳定性,此类伪紫水晶无法直接转换为媒质。但把它和其他形态的媒质水晶放在一起,即可令其转变为那种形态。",
+ "oneironaut.page.super_budding.4": "它似乎对我的凝视有了反应,就好像它有某种感知力一样。",
+ "oneironaut.page.super_budding.5": "就算让伪紫水晶母岩浸没在思维浆液中,抑制晶体的形成,它的媒质生成率依然足够平常使用。尽管总供给量近乎无穷,但单个操作能使用的媒质量相当少;就像一片几十万几百万千米宽,但只有几厘米深的海洋。而由于其深度极为有限,在远距获取使用(如为物品充能等)时,其中的媒质会在抵达法杖前迅速消散殆尽。",
+ "oneironaut.page.super_budding.6": "常态提供大约与 1/10 个紫水晶粉相当的媒质。虽然我$(o)可以$()同时持有好多个来轻松获取媒质,但每个媒质瓶带来的增量会快速减少。",
+ "oneironaut.page.super_budding.7": "还可以往缀品里塞一个,以让无穷媒质之瓶为其供应媒质。但是,如此操作后,缀品便不会再接受其他来源的媒质。",
+ "oneironaut.page.super_budding.8": "向另一只手中的无底缀品写入咒术。消耗 10 个充能紫水晶。",
+ "oneironaut.page.idea_inscription.1": "智识界是思维的领域,它能用来存储信息也就顺理成章。这些图案就能把 iota 刻印入智识界,并能读出它们(不论当前身处什么维度)。它们还能把 iota 存储到其他生物的意识中,当然它们的意识也需和我一样……$(o)无拘无束$()。在相关描述中,用于指代向量和有效实体的词是“键”/“key”。",
+ "oneironaut.page.idea_inscription.2": "这种操作用途不少,但智识界的环境媒质处于常态的运动中,任何存入其中的 iota 终会消解,和往海洋中倒热水没什么区别。似乎这种信息在变为无用的垃圾前能存在一小时。$(br2)$(l:greatwork/akashiclib)阿卡夏图书馆$(/l)的原理貌似与之类似,书架则相当于用来避免消解的阻隔层。",
+ "oneironaut.page.idea_inscription.3": "接受一个有效键以及任意 iota,并将所给 iota 存入相应位置。消耗大约 1/4 个紫水晶粉。",
+ "oneironaut.page.idea_inscription.4": "接受一个有效键,并返回相应 iota。消耗大约 1/4 个紫水晶粉。",
+ "oneironaut.page.idea_inscription.5": "接受一个有效键, 并返回刻印对应 iota 的时间,或是返回 -1。不消耗媒质。",
+ "oneironaut.page.idea_inscription.6": "接受一个有效键和一个代表玩家的 iota,并检验对应 iota 是否由所给玩家刻印。不消耗媒质。",
+ "oneironaut.page.sentinel_detection.1": "将智识界的伪紫水晶和深暗之域的有机感测体结合起来,就是一种检测环境媒质中扰动的方式。这种新探测器会检测大约 16 米内的$(l:patterns/spells/sentinels)哨卫$(/l),检测到则会根据最近哨卫的距离输出红石信号。如果最近的哨卫格外强大,则相邻的比较器会输出信号。",
+ "oneironaut.page.sentinel_detection.2": "$(o)我相信监守者不会在意的。$()",
+ "oneironaut.page.sentinel_detection.3": "除此之外,这种探测器还可整合到牧师促动石中,产物会在区域内存在哨卫时启动(不过探测半径较普通探测器较低)。我叫这种装置“探察促动石”。尽管它不再对红石信号产生反应,但会获取代表触发哨卫的所有者的 iota,并置入法术环咒术的初始栈。$(br)而由于施法时产生的媒质干扰,这种促动石无法侦测到自身放置的哨卫。",
+ "oneironaut.page.sentinel_detection.4": "这种探测器不论侦测到谁的哨卫都为产生反应,我应当避免让我铺设的陷阱法术环瞄准我自己。",
+ "oneironaut.page.sentinel_detection.5": "接受一个向量和一个玩家,并返回该位置到所给玩家哨卫的距离,或者返回 Null。消耗极少量媒质。",
+ "oneironaut.page.sentinel_detection.6": "在所给位置坐标构筑一个短时探测器,它会“监听”环境媒质中的存在形态,以此分辨出最为明显的哨卫标记。",
+ "oneironaut.page.detection_shielding.1": "传统的隐身药水足以迷惑常人的感官,但面对咒术则毫无作用,让事物完全无法侦测的方法还有待发现。然而,我找到的这个法术应当是向上述目标迈出的第一步。它能让媒质像糠皮一样盖在生物周围,以此干扰咒术的侦测手段。",
+ "oneironaut.page.detection_shielding.2": "接受一个生物和一个数,并给予该实体持续所给数秒的咒术侦测护盾。每秒持续时间消耗 2 个紫水晶粉。",
+ "oneironaut.page.detection_shielding.3": "同时每秒会消耗所影响实体 1/10 个紫水晶粉,护盾的构筑需要这些媒质。$(br2)我需要注意我把这种效果给予了什么事物,因为没有携带其他媒质来源的生物会消耗自身的意识来供给护盾。",
+ "oneironaut.page.detection_shielding.4": "这种护盾在阻挡$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)和各种$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$(/l)时效果良好,但它对$(l:patterns/entities#hexcasting:get_entity)实体之纯化$(/l)的变种没有作用,那些操作已经包含所处位置的精确概念。而且,这层糠皮自身也有能量特征,尽管暗淡,依然可用特种图案侦测。",
+ "oneironaut.page.detection_shielding.5": "接受一个向量和一个数,并返回以所给位置为起始,指向范围内带有遮罩的实体的单位向量列表,侦测半径为所给数。",
+ "oneironaut.page.detection_shielding.6": "我还发现了能给予普通隐身效果的法术。和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,每 3 秒持续时间消耗 1 个紫水晶粉。",
+ "oneironaut.page.raycast_assailant.1": "往方块中“织入”伪紫水晶,产物便能令抵达或穿过其的射线追踪(对实体的射线追踪也有效)返回 Null,就好像射线追踪没有检测到任何事物一样。",
+ "oneironaut.page.raycast_assailant.3": "奇怪的是,以同种方式加工伪紫水晶和黑曜石的产物不具备阻碍射线追踪的能力,而是变得近乎无法被咒术摧毁。不过,产物的硬度也因此大幅下降,变得和普通石头没什么两样(爆炸抗性不变)。",
+ "oneironaut.page.mindrender.1": "我曾读到过一种极其可怖的武器,“意识撕裂者”。古代的咒术师偶尔会用这种武器,它能将生物的思维直接斩断,造成的伤害无视所有已知保护手段。而且,如果造成的伤害令目标离真正的死亡仅一步之遥,则其会进入植物人状态,永远无法恢复如初。想到古代人使用这种物件的原因,我不由得寒透脊骨……",
+ "oneironaut.page.mindrender.2": "接受带有锋利魔咒的物品,或放有此类物品的物品展示框,并将锋利转换为同等级的意识撕裂。消耗由魔咒等级决定,目标为书时额外消耗 50%%。",
+ "oneironaut.page.lore.treatise1.1": "虽然施放咒术时能直接产生大多数 iota,但总会有不够便捷的情况,甚至于无法产生(例如庞大而精确的数和实体 iota)而不得不另辟蹊径。从核心之类的物品中读取 iota 也不错,但大多数情况下这么做需要第三只手,我很明显没有。从外部位置获取 iota 的其他方法也各有各的局限性。",
+ "oneironaut.page.lore.treatise1.2": "而在无外部引用手段可用的情况下,所需的 iota 必须直接插入咒术本身。对部分人而言,这么做会有些不合常理。这是因为传统上的咒术是一个图案列表,但图案自己也是一种 iota,一种与$(l:patterns/meta#hexcasting:eval)赫尔墨斯之策略$(/l)(以及同类图案)协同效果很好的 iota。",
+ "oneironaut.page.lore.treatise1.3": "尽管你没法直接把数放到列表里面,然后让它和使用$(l:patterns/numbers)数字之精思$(/l)一样压入栈顶,但有方法能做到。$(br2)最简单(也是最可靠)的方法是$(l:patterns/patterns_as_iotas#hexcasting:escape)考察$(/l)。和手动施法时一样,列表中其后方的任意事物会被转义并直接压入栈顶,而非和平时一样运行,如此就可避免运行非图案导致的事故。",
+ "oneironaut.page.lore.treatise1.4": "然而,当你位于咒术中超过一层运行深度处(比如循环和嵌套的条件逻辑),转义 iota 所需的考察数量会极速增长。在那些能够由另一咒术运行的事物中,这种方法便不再可靠。",
+ "oneironaut.page.lore.treatise1.4.link": "相关的 xkcd",
+ "oneironaut.page.lore.treatise1.5": "更为可靠的转义 iota 方法是$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(/l)和$(l:patterns/patterns_as_iotas#hexcasting:close_paren)反思$(/l)。运行图案列表时,内省后方直到相应反思之间(内省和反思不计)的事物会被转义,并以列表形式压入栈顶,不论 iota 的类型如何。然后就可以用合适方式操作此列表,比如用$(l:patterns/lists#hexcasting:splat)群体之拆解$(/l)把列表中各项分别压入栈顶。",
+ "oneironaut.page.lore.treatise1.6": "如果你的列表的结构与此类似:$(br2)内省$(br)任意 iota(s)$(br)反思$(br)群体之拆解$(br2)运行这些 iota 之后,栈中会压入内省与反思之间的所有 iota。",
+ "oneironaut.page.lore.treatise2.1": "推动事物的标准做法是$(l:patterns/spells/basic#hexcasting:add_motion)驱动$(/l)。但是,如果想要事物极为迅速地移动,这种方法可能会昂贵到无法使用。这是因为消耗会随向量模长增大而极速增长。对单个目标使用多次模长为 1 的驱动就能减少这种影响,总消耗会从 n^2 降到 2n-1,其中 n 是向量的模长。",
+ "oneironaut.page.lore.treatise2.2": "这种方法最简单的实现方式需要$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l),传入多个重复的实体 iota 组成的列表即可。当然也有其他(且通常更好的)方法存在。但除去重复绘制图案外,这些方法大多离不开循环这一命题,这就有点超出这篇文档的范畴了。",
+ "oneironaut.page.lore.treatise3.1": "虽然$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l)极其适合同时对多个目标施放同一法术,但对同一目标施放多次法术就有点麻烦了。它不仅容易导致咒术的停止,运行开始后还无法添加或移除作用目标。$(br)而绕过这些局限也很简单,换用另一种循环即可。",
+ "oneironaut.page.lore.treatise3.2.header": "While 循环",
+ "oneironaut.page.lore.treatise3.2": "While 循环是一种在既定条件达成之前一直运行的循环,条件可以是实体的速度达到了给定值等。一个仅会复制自身再运行栈顶 iota 的图案列表就是这种循环最简单的实现方式。如果单独运行它,那么咒术会进入无限循环,除非产生事故不然不会停止。",
+ "oneironaut.page.lore.treatise3.3": "向其中加入实际功能和一些布尔逻辑,就能创造出有用的 while 循环。前文所提无限循环的代码如下:$(br)内省$(br)双子之分解$(br)赫尔墨斯之策略$(br)反思$(br)双子之分解$(br)赫尔墨斯之策略$(br2)向其中加入根据条件是否运行列表内赫尔墨斯之策略的逻辑,达成相应条件后循环便会终止。",
+ "oneironaut.page.lore.treatise3.4.header": "循环展开",
+ "oneironaut.page.lore.treatise3.4": "“已展开循环”/“Unrolled loop”是一种更为复杂的循环。和托特之策略一样,构建时其迭代次数同样固定,难以增加修改。但如有需要,卡戎之策略可以令其提前停止。比较来看,这种循环仅产生一到两层递归深度(循环体运行所致深度不计),是其优势所在。先写定想要重复的图案列表,再多次复制,最后把所有列表合成一体,就实现了循环展开。",
+ "oneironaut.page.lore.treatise3.5": "这一目标最简单的达成方式是$(l:patterns/stackmanip#hexcasting:duplicate)双子之分解$(/l)接$(l:patterns/lists#hexcasting:concat)组合之馏化$(/l),运行后原列表会重复 2 次。可重复使用此方法以复制原列表 2 的幂次,所得的列表在运行时只会产生一层递归深度。更灵活的做法则是使用$(l:patterns/stackmanip#hexcasting:duplicate_n)双子之策略$(/l)产生 $(o)n$() 个副本,再将 $(o)n-1$() 个组合之馏化放入列表并运行,如此便能把所有原列表副本合为一体。",
+ "oneironaut.page.lore.treatise4.1": "我的一些呃,“同事”,在抄录长咒术时遇到了麻烦。$(br)“这东西好长!”$(br)“咒术网格都不够用了!”$(br)我认为这是$(bold)能力问题$()。这又不是那些绘制完最后一个反思后没法修改咒术的麻烦。只需把未完成的咒术存到核心中即可。(不过你应该注意为存储操作留出空间。)",
+ "oneironaut.page.lore.treatise4.2": "完成之后,再用$(l:patterns/lists)列表操作$(/l)图案把各部分合起来就行了。$(br2)甚至都不需要用多个核心,写完一部分后把它接到核心中列表的后方,再把所得列表存入核心即可。多核心会让调试咒术更轻松,但据我目前所知,这也是多核心相对单核心唯一的优势。",
+ "oneironaut.page.lore.science1.1": "$(o)“这是什么?我该怎么把它弄走?”$()$(br)大多数人在第一次遇见质道时都会产生这些疑问。我对第二个问题暂时没有答案,但回答第一个问题还是可以的。$(br)就我所知,质道是空间中的微小孔洞,其另一侧是称作“智识界”的媒质界。",
+ "oneironaut.page.lore.science1.2": "质道中逸散的类咒灵现象是智识界中巨量的环境媒质试图迅速通过孔洞的结果(就像是气体扩散入接近真空的空间),这些媒质的纠缠卷绕方式与召唤咒灵法术中编织供咒灵消耗的媒质的方式类似。",
+ "oneironaut.page.lore.science1.3": "此外,质道的入口处似乎存在某种屏障,任何物质都会被阻挡不得通过。如果这一屏障可被穿透,孔洞可被扩展,质道就可将物质吸收入智识界。这么做后质道不会再产生咒灵,是媒质的通过速度大大降低,不会再受扰动而缠绕的缘故。如果想要尝试,就需小心不要过度扩展,否则周围区域都有被吸收入智识界的危险。",
+
+ "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
+
+ "oneironaut.page.lore.science2.1": "真是个奇怪的地方。组成此处海洋的液体不比水致密多少,那些岛屿由密度类似玄武岩的岩石构成,却能浮在其中。而且,此处的所有事物都似乎瞬息万变,如梦似幻。但我比从前任何时候都要清醒,这又怎么会是梦境?",
+ "oneironaut.page.lore.science2.2": "这种清醒感应当是此处环境媒质的效果,它会润滑我的思维。这里的媒质浓度甚至超过了咒灵的核心,它们的天然消耗也因此缩减到无穷小。有趣的是,那些带有某人灵魂印记的咒灵不会受此效应影响,因此咒灵无法用于长时存储真名。$(br)这些环境媒质甚至会从足够大的维度裂缝中渗漏出去,正是它维持了裂隙另一侧距离足够近的咒灵的形态。",
+ "oneironaut.page.lore.science3.1": "这种晶体很是有趣。一件仅由媒质构成的物体,浓度超越了传统的构筑方块,甚至超越了我在图书馆中的同事们研究的那些致密媒质晶体。连媒质密度相近的紫水晶中的都有痕量二氧化硅,此晶体中却完全不存在杂质。而令其静置一段时间后,晶体粉末会以分形模式累积,就好像在持续不断地施法。",
+ "oneironaut.page.lore.science3.2": "我在显微镜下详细检验了这种晶体,可观察到这些分形状结构会向晶体内部延伸,且会以固定模式一直变化。这有无可能是一种时间晶体?",
+ "oneironaut.page.glow_ambit.1": "尽管经过了长久的研究,代表其他咒术师的 iota 中仍有些特殊性质的由来未能厘清。不过,我找到了一种赋予其他事物同样性质的方法,不敢说持久,但至少能暂时做到。(还很昂贵。)$(br)这种法术允许施法者跨越极远的距离影响生物,就和玩家 iota 的无限影响距离一样。但对目标施放这种法术时,依然需要离目标足够近。",
+ "oneironaut.page.glow_ambit.2": "接受一个活体,在 1 分钟内即可在世界各处访问所给活体。基础消耗 1 个紫水晶碎片,在效应消退前每施放一次额外消耗 1 个紫水晶碎片。",
+ "oneironaut.page.glow_ambit.3": "这种效果的原理似乎是让目标散发出某种超自然共振。这种共振相当强大,目标的轮廓隔着各种形式的障碍依然“可见”。(咒术师们也许就在持续产生这种共振,只不过是没有如此效果显著?)但是,这种辉光与光灵箭等造成的辉光不一样,不要指望监测那种辉光的仪器对这种也有效。",
+ "oneironaut.page.soulprints.1": "灵魂印记和代表我自己的 iota 类似,功能中也有“代表我”这一项,但使用的限制会多出许多。除了通过我本人之外,他人没有方式获得灵魂印记,不过这些灵魂印记不受写入限制,和普通的玩家 iota 不一样。$(br2)有意思的是,灵魂印记也是$(l:oneironaut:patterns/idea_inscription)思绪刻印$(/l)的有效键。",
+ "oneironaut.page.soulprints.2": "返回我自己的灵魂印记,使用除法杖之外的施法手段时会招致事故。消耗极少量媒质。",
+ "oneironaut.page.soulprints.3": "将我的灵魂印记隐写到另一只手中的物品上,若已有灵魂印记则清除。消耗 1 个紫水晶粉。$(br)签印物品前要注意先将核心一类的物品密封,经过签印的未密封核心有身份泄露的风险,清除物品会同时去除签印。",
+ "oneironaut.page.soulprints.4": "接受一个灵魂印记,并检查我另一只手中物品上是否有对应的隐写。若有,返回 True;否则返回 False。消耗极少量媒质。",
+ "oneironaut.page.hover_elevator.1": "使用原产于智识界的材料,再加上与飘浮有关的原材料,做出的设备能够产生具有推动力的能量流;我站在其中也会被推动,而且很难摔出来。使用时必须令其朝向另外一个此类设备,也即两个此类设备需面对面放置。放置妥当后,两端均需以",
+ "oneironaut.page.hover_elevator.2": "红石信号激活,若两者在各自范围内(水平方向 64 米,垂直方向 128 米),则其间会产生能量流。走入能量流后我会被固定在原地;往两端中的一端看时,会向该方向加速至最大速度。此最大速度与我的视线与能量流的平行程度成正比。潜行时会强制将我锁定在原地,无论往哪个方向看都是如此。",
+ "oneironaut.page.hover_elevator.3": "$(o)在真的用这东西之前,我最好还是穿双远距防摔靴当保险。",
+ "oneironaut.page.hover_elevator.meme":"$(o)淘气的咒术师会被送到飘浮方块里去喔。",
+ "oneironaut.page.hover_elevator.4": "此外,还可以制造一个中继器,用于延长端设备的范围。经过此中继器的能量流会恢复至其刚离开端设备的状态。如此强大的器具自然需要强大的组件,但就算如此,能量流在经过 3 个中继器后,也会因太过不稳定而无法维持。",
+ "oneironaut.page.hover_elevator.5": "好在由于某种原因,此设备并没有传统意义上的实体;也即在能量流中移动时可以直接穿过去,而不需要小心翼翼地绕过。$(br)$(o)不会的,它不会在延续能量流之前顿一下的。",
+ "oneironaut.page.flayrevival.1": "剥离完意识的村民、或是被$(l:oneironaut:items/mindrender)意识撕裂者$(/l)摧残到仅剩最后一丝气息的生物,它们都变成了毫无用途的空壳,我对此相当苦恼。尽管它们$(o)确实$()能自己完成少数几种任务;但除此之外的大多数任务就连无智慧可言的野兽都能做好,它们却无能为力了。好在我发现了一个法术,能让这些空壳具有某种程度的认知能力。",
+ "oneironaut.page.flayrevival.2": "接受一个已剥离意识的生物,并创造一个人工伪意识融入其中。对村民或悦灵使用时消耗 16 个充能紫水晶,其余情况消耗 10 个紫水晶碎片。",
+ "oneironaut.page.flayrevival.3": "这些伪意识确实能驱动躯体,一如身体的原主人,但它们离真正的所谓智慧还差得远,换成适用于村民的宽松定义也是一样。因此,以此方法“恢复正常”的村民会失去先前的职业经验,也无法再获取此类经验了。",
+ "oneironaut.page.flayrevival.4": "不过,他们依然保留了繁衍的能力。他们的后代不会受到我先前行为的影响。$(br2)我不太确定为什么村民恢复后都喜欢上了绿色的衣物,但这种性质确实方便我辨识哪些村民不堪大用。",
+ "oneironaut.page.monkfruit.1": "我发现对甜浆果丛使用$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)法术能变出一种相当有趣的植物。它和原来的灌木很像,但它的棘刺中融有媒质场,能吸走其刺中的生物的意识以让自己生长。它不刺人也能生长(虽然很慢),但仍需周围存在具有意识的生物才能结出少量媒质。",
+ "oneironaut.page.monkfruit.2": "它结出的果实相当甜,且能加工处理成糖。而且,这种果实在被消化的时候似乎能释放出些许媒质,又会进一步为我身上可以重新填充媒质的物品充入媒质。摘果子时务必要小心灌木中的刺。",
+ "oneironaut.page.monkfruit.3": "成熟植株上剪下的枝条依然具有这些危险的性质,可以用来合成一把不祥的刀。$(br2)这把刀和附有低等级$(l:oneironaut:items/mindrender)意识撕裂$(/l)魔咒的剑类似,但它更为精确:撕裂意识时能把对形体的附带损伤降到最低。如果我有这个想法,当然可以把它用作普通的冷兵器,但确实要承担杀死目标的风险。",
+ "oneironaut.page.monkfruit.4": "$(o)这又不是什么高端科技。$()",
+
+ "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
+ "oneironaut.advancements.noosphere.enter": "思维与梦的领域",
+ "oneironaut.advancements.noosphere.enter.description": "进入智识界",
+ "oneironaut.advancements.noosphere.find_tower": "永存经典",
+ "oneironaut.advancements.noosphere.find_tower.description": "发现一座属于身份不详的咒术师的高塔",
+ "oneironaut.advancements.noosphere.find_media_lab": "结晶",
+ "oneironaut.advancements.noosphere.find_media_lab.description": "发现一次结局惨淡的实验",
+ "oneironaut.advancements.noosphere.find_garden": "搁浅",
+ "oneironaut.advancements.noosphere.find_garden.description": "发现一个不幸灵魂最后停留之处的遗迹",
+ "oneironaut.advancements.lore.root": "航梦故事",
+ "oneironaut.advancements.lore.root.description": "失落于时间的记忆",
+ "oneironaut.advancements.lore.treatise1": "咒术师的记忆,#1",
+ "oneironaut.advancements.lore.treatise1.description": "有关iota嵌入的精思",
+ "oneironaut.advancements.lore.treatise2": "咒术师的记忆,#2",
+ "oneironaut.advancements.lore.treatise2.description": "有关有效利用驱动的精思",
+ "oneironaut.advancements.lore.treatise3": "咒术师的记忆,#3",
+ "oneironaut.advancements.lore.treatise3.description": "有关重复图案的精思",
+ "oneironaut.advancements.lore.treatise4": "咒术师的记忆,#4",
+ "oneironaut.advancements.lore.treatise4.description": "有关长咒术的精思",
+ "oneironaut.advancements.lore.science1": "科学家的记忆,#1",
+ "oneironaut.advancements.lore.science1.description": "有关质道本质的研究",
+ "oneironaut.advancements.lore.science2": "科学家的记忆,#2",
+ "oneironaut.advancements.lore.science2.description": "有关智识界性质的研究",
+ "oneironaut.advancements.lore.science3": "科学家的记忆,#3",
+ "oneironaut.advancements.lore.science3.description": "有关伪紫水晶结构的研究",
+ "oneironaut.advancements.unflay": "回收!",
+ "oneironaut.advancements.unflay.description": "你肯定不会直接丢掉的!",
+ "oneironaut.advancements.ouchie": "好痛!",
+ "oneironaut.advancements.ouchie.description": "难道觉得不会痛吗?",
+
+ "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
+ "hexcasting.mishap.oneironaut:badcuboid.mismatch": "提供的长方体尺寸不相同。",
+ "hexcasting.mishap.oneironaut:badcuboid.toobig": "提供的长方体尺寸过大。",
+ "hexcasting.mishap.oneironaut:uninfusable": "本应在%s处有一个可灌注方块,而实际为%s。",
+ "hexcasting.mishap.oneironaut:nonoosphere": "互换的其中一方需为一个特殊维度。",
+ "hexcasting.mishap.oneironaut:norod": "需要以回响之杖施放。",
+ "hexcasting.mishap.oneironaut:norodremote": "需要手持启动的回响之杖。",
+ "hexcasting.mishap.oneironaut:missingenchant": "%s本应带有%s魔咒,而实际没有。",
+ "hexcasting.mishap.oneironaut:unhappyslime": "黏液说道:“%s”",
+ "hexcasting.mishap.oneironaut:norequirediota": "黏液需要%s",
+ "hexcasting.mishap.oneironaut:requiresdifferententities": "一个与目标不同的实体",
+ "hexcasting.mishap.oneironaut:nostaff": "%s本应由法杖施放。",
+ "oneironaut.mishap.noitemframe": "一个物品展示框",
+ "oneironaut.mishap.invalidideakey": "一个向量、玩家或灵魂印记",
+ "oneironaut.mishap.unenlightenedtarget": "一个经过启迪的玩家",
+ "oneironaut.mishap.notbrainswept": "一个剥除意识的村民",
+ "oneironaut.mishap.badentitykey": "一个经过启迪的玩家或剥除意识的村民",
+ "oneironaut.mishap.nolistsallowed": "一个非列表iota",
+ "oneironaut.mishap.entitytypelistplease": "一个实体类型列表",
+ "oneironaut.mishap.wrongsizelist": "列表长度不合适。",
+ "oneironaut.mishap.twovectorsplease": "列表未包含两个向量。",
+ "oneironaut.mishap.requiresflayedmob": "%s本应获取一个已剥离意识的生物,而实际为%s。",
+ "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "一个空间印记",
+ "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "一个灵魂印记",
+
+ "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
+ "hexcasting.iota.oneironaut:dim": "维度",
+ "hexcasting.iota.oneironaut:uuid": "灵魂印记",
+ "hexcasting.iota.oneironaut:uuid.label": "%s的灵魂印记",
+ "biome.oneironaut.noosphere_sea": "智识之海",
+ "text.oneironaut.clearIdeasResponse": "已清除iota存储映射。",
+ "effect.oneironaut.detection_resistance": "媒质遮罩",
+ "effect.oneironaut.not_missing": "扬升共振",
+ "effect.oneironaut.rumination": "反刍",
+ "enchantment.oneironaut.overcast_damage": "意识撕裂",
+ "itemGroup.oneironaut.oneironaut": "航梦",
+ "oneironaut.tooltip.wispcapturedevice.haswisp": "包含具有%s个紫水晶粉、咒术印识为%s的咒灵。",
+ "oneironaut.tooltip.wispcapturedevice.nowisp": "没有咒灵。",
+ "oneironaut.tooltip.wispcapturedevice.uninitialized": "媒质储库未初始化。",
+ "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
+ "oneironaut.tooltip.lich_media_amount": "储库含有:%s/%s(%s)"
+}
From cdc41129c99f54cf495cc65623c9199ece1c229c Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 26 Mar 2025 00:00:17 +0800
Subject: [PATCH 17/78] Phlexiful create
---
.../phlexiful/lang/en_us.json | 42 +++++++++++++++++++
.../phlexiful/lang/zh_cn.json | 42 +++++++++++++++++++
2 files changed, 84 insertions(+)
create mode 100644 projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/en_us.json
new file mode 100644
index 000000000000..ed3bb103ffd9
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/en_us.json
@@ -0,0 +1,42 @@
+{
+ "category.phlexiful_tab": "Phlexiful",
+
+ "enchantment.phlexiful.battery_pants_pool_buff": "Weave Inundation",
+
+ "block.phlexiful.cobbled_bedrock": "Cobbled Bedrock",
+
+ "item.phlexiful.welding_mask": "Casting Hood",
+ "item.phlexiful.battery_pants": "Media Catcher",
+ "item.phlexiful.media_weave": "Media Weave",
+
+ "hexcasting.action.phlexiful:destroy_block": "Annihilate Block",
+ "hexcasting.action.phlexiful:set_pants_threshhold": "Write Catcher Threshold",
+ "hexcasting.action.phlexiful:get_pants_threshhold": "Read Catcher Threshold",
+ "hexcasting.action.phlexiful:read_pants_media": "Read Catcher Media",
+
+ "hexcasting.mishap.no_item.armor": "Requires %s in the %s slot, but got nothing",
+ "hexcasting.mishap.bad_item.armor": "Requires %s in the %s slot, but got %s instead",
+
+ "phlexiful.page.media_weave.title": "Media Weave",
+ "phlexiful.page.media_weave.1": "I have found that with great care, media can be directly integrated into cloth.",
+ "phlexiful.page.media_weave.2": "It seems to react to _media as iron does to magnetite. Garments made with this weave would have interesting properties... Perhaps it wouldn't hurt to expand my wardrobe?",
+
+ "phlexiful.page.battery_pants.title": "Media Catcher",
+ "phlexiful.page.battery_pants.1": "I've found that the small cost of some spells can build up to be quite a substantial sum of _media over time. With a little bit of elbow grease, and some bolts of $(l:items/media_weave)$(item)Media Weave/$, I have made something to keep these mounting sums at bay.",
+ "phlexiful.page.battery_pants.2": "The $(l:items/battery_pants)$(item)Media Catcher/$ Slowly accrues _media. It can't hold much, so I might find some use in $(l:patterns/battery_pants_patterns)$(action)tuning it/$ as to limit the release of _media.$(br2)I suppose it isn't unreasonable to assume there could be trace amounts of _media about, but even then, what this catches is far too much... Where is it coming from?/$",
+ "phlexiful.page.battery_pants.crafting.desc": "$(o)Oh, pants!",
+
+ "phlexiful.page.battery_pants_patterns.title": "Media Catcher Patterns",
+ "phlexiful.page.battery_pants_patterns.1": "Fight fire with fire, as they say! (Something something world burning. Never mind). There's no better way to manipulate my $(l:items/media_catcher)$(item)Media Catcher/$ than the very thing it fuels: $(hex)patterns/$.",
+ "phlexiful.page.battery_pants_patterns.get_threshhold": "Add the threshold of the $(item)media catcher/$ I'm wearing to the stack. Returns $(l:casting/influences)$(thing)Null/$ if I have not set a threshold.",
+ "phlexiful.page.battery_pants_patterns.set_threshhold": "Remove the number at the top of the stack, and save it as the threshold of the $(item)media catcher/$ I'm wearing.",
+ "phlexiful.page.battery_pants_patterns.read_pants_media": "Add the _media contained in the $(item)media catcher/$ I'm wearing to the stack.",
+
+ "phlexiful.page.welding_mask.title": "Casting Hood",
+ "phlexiful.page.welding_mask.1": "The light produced in my field of work is taxing on the eyes. The flashes of light are brief, but they linger in my vision.$(br)Taking some inspiration from friends in the trades, I've fashioned together a mask to protect my eyes from the harsh light of _Hexcasting.",
+ "phlexiful.page.welding_mask.crafting.desc": "$(l:items/welding_mask)$(item)Casting Hoods/$ block out the flashes of light emitted from spells that we call particles.",
+
+ "phlexiful.page.destroy_block.title": "Annihilate Block",
+ "phlexiful.page.destroy_block.1": "Complete destruction. Costs a negligible amount of _media for anything less sturdy than $(item)cobblestone/$.",
+ "phlexiful.page.destroy_block.2": "This spell makes me uncomfortable... I worry I'll accidentally cast it on something I'd rather not.$(br2)...I do wonder though, if this is an unstoppable force, what would be a suitable wall?$(br2)$(o)Go, do a crime."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/zh_cn.json
new file mode 100644
index 000000000000..324dfe468a72
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/zh_cn.json
@@ -0,0 +1,42 @@
+{
+ "category.phlexiful_tab": "Phlexiful",
+
+ "enchantment.phlexiful.battery_pants_pool_buff": "媒织泛滔",
+
+ "block.phlexiful.cobbled_bedrock": "基岩圆石",
+
+ "item.phlexiful.welding_mask": "施法面罩",
+ "item.phlexiful.battery_pants": "媒质捕手",
+ "item.phlexiful.media_weave": "媒质织物",
+
+ "hexcasting.action.phlexiful:destroy_block": "湮灭方块",
+ "hexcasting.action.phlexiful:set_pants_threshhold": "写入捕手阈值",
+ "hexcasting.action.phlexiful:get_pants_threshhold": "读取捕手阈值",
+ "hexcasting.action.phlexiful:read_pants_media": "读取捕手媒质",
+
+ "hexcasting.mishap.no_item.armor": "%2$s槽位中本应存在%1$s,而实际没有物品",
+ "hexcasting.mishap.bad_item.armor": "%2$s槽位中本应存在%1$s,而实际为%3$s",
+
+ "phlexiful.page.media_weave.title": "媒质织物",
+ "phlexiful.page.media_weave.1": "经过小心谨慎的实验,我发现媒质可以直接融入编织物。",
+ "phlexiful.page.media_weave.2": "这种布匹似乎会和$(media)媒质$()产生反应,和铁跟磁铁矿产生反应差不多。用它制作的衣物应该会很有趣……衣柜里多几件衣服或许也没问题吧?",
+
+ "phlexiful.page.battery_pants.title": "媒质捕手",
+ "phlexiful.page.battery_pants.1": "我发现,把$(media)媒质$()耗量极少的法术累积起来,总计的消耗也是一个不小的数目。拿上几卷$(l:items/media_weave)$(item)媒质织物/$稍加加工,做出的衣服便能止住前文所谓总消耗增长的势头。",
+ "phlexiful.page.battery_pants.2": "$(l:items/battery_pants)$(item)媒质捕手/$会缓慢积聚$(media)媒质$()。容量不是很大,也许$(l:patterns/battery_pants_patterns)$(action)调整之后/$可以用来限制$(media)媒质$()的逸散。$(br2)我本来认为它应该能收集到一些$(media)媒质$(),但就算这么说,实际收集到的还是多出太多了……到底是怎么收集到的?/$",
+ "phlexiful.page.battery_pants.crafting.desc": "$(o)我发誓我要用靴子狠狠地踢你的裤衩。",
+
+ "phlexiful.page.battery_pants_patterns.title": "媒质捕手图案",
+ "phlexiful.page.battery_pants_patterns.1": "古话说得好,要以火攻火!(因为所以科学道理,不必较真。)$(hex)图案/$——$(l:items/media_catcher)$(item)媒质捕手/$所助力的事物,也是操控它的最好手段。",
+ "phlexiful.page.battery_pants_patterns.get_threshhold": "返回我所穿$(item)媒质捕手/$的阈值。如未设置则返回 $(l:casting/influences)$(thing)Null/$。",
+ "phlexiful.page.battery_pants_patterns.set_threshhold": "移除栈顶数,并存作我所穿$(item)媒质捕手/$的阈值。",
+ "phlexiful.page.battery_pants_patterns.read_pants_media": "返回我所穿$(item)媒质捕手/$含有的$(media)媒质$()量。",
+
+ "phlexiful.page.welding_mask.title": "施法面罩",
+ "phlexiful.page.welding_mask.1": "我的工作领域会涉及到大量光照,常使得我用眼疲劳。强光出现的时间很短暂,但它们对视野造成的影响不会那么快消退。$(br)我从我各行各业的朋友身上得到了灵感,依此造出了一个面具,以抵挡$(hex)咒法学$()研究中出现的种种伤眼光线。",
+ "phlexiful.page.welding_mask.crafting.desc": "$(l:items/welding_mask)$(item)施法面罩/$会隔绝法术产生的闪光,又称“粒子”。",
+
+ "phlexiful.page.destroy_block.title": "湮灭方块",
+ "phlexiful.page.destroy_block.1": "不遗余力地摧毁。对硬度不及$(item)圆石/$的事物施放时,消耗极少量$(media)媒质$()。",
+ "phlexiful.page.destroy_block.2": "这个法术让我不太舒服……要是意外对不应当摧毁的事物施放了怎么办。$(br2)……不过我确实很好奇,它要是最锋利的矛,那最坚固的盾又会是什么呢?$(br2)$(o)去吧,去犯个罪。"
+}
\ No newline at end of file
From 88b3a391118e482d7345255378d67e9b72e03095 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 26 Mar 2025 00:52:24 +0800
Subject: [PATCH 18/78] =?UTF-8?q?Ephemera=20Oneironaut=20HexChanting=20fix?=
=?UTF-8?q?=EF=BC=9A=E4=BF=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../1UNKNOWN/hexchanting/lang/zh_cn.json | 10 +++----
.../assets/ephemera/ephemera/lang/en_us.json | 26 ++++++++++++++++---
.../assets/ephemera/ephemera/lang/zh_cn.json | 26 ++++++++++++++++---
.../oneironaut/oneironaut/lang/en_us.json | 20 ++++++++++----
.../oneironaut/oneironaut/lang/zh_cn.json | 20 ++++++++++----
5 files changed, 81 insertions(+), 21 deletions(-)
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
index fe77f3e25c3f..d5c3a8e82403 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
@@ -11,12 +11,12 @@
"item.hexchanting.amethyst_sword": "紫水晶剑",
"hexcasting.action.hexchanting:imbue_equipment": "装备融能",
"hexchanting.page.imbuing.title": "为装备融能",
- "hexchanting.page.imbuing.0": "在$(hex)咒术$()之外,我还发现了自然所赐许多资源的其他用途,就比如说可以制造工具和兵器。紫水晶也能做到这些,可谓顺理成章。要是能把其中的晶体结构也正确对齐,它们甚至还能介导媒质、施放咒术。",
- "hexchanting.page.imbuing.1": "实验表明,充能紫水晶在合成装备这一方面表现最好。把它放到原本属于铁和钻石等材料的位置里即可,所制成物品的性能与用钻石制成的相当,但前者不如后者耐用。这些装备真正的强大之处,在于它们与世界交互的方式。使用时,它们会与周围的媒质共振,从而为沿自身穿梭的咒术提供引导。",
+ "hexchanting.page.imbuing.0": "在$(hex)咒术$()之外,我还发现了自然所赐许多资源的其他用途,就比如说可以制造工具和兵器。紫水晶能做到这些可谓顺理成章。要是能把其中的晶体结构也正确对齐,它们甚至还能介导媒质、施放咒术。",
+ "hexchanting.page.imbuing.1": "实验表明,充能紫水晶在合成装备这一方面表现最好。把它放到原本属于铁和钻石等材料的位置即可,所制成物品的性能与用钻石制成的相当,但前者不如后者耐用。这些装备真正的强大之处,在于它们与世界交互的方式。使用时,它们会与周围的媒质共振,从而引导穿过自身的咒术。",
"hexchanting.page.imbuing.2": "取舍在这些工具的制造过程中不可避免。施法时,必须为其提供外源媒质,否则它们便会侵蚀构成自身的材料,甚至可能侵蚀到完全损毁。这一性质与$(l:items/hexcasting)$(item)杂件/$类似;不同之处在于,这些工具可以充能。",
"hexchanting.page.imbuing.3": "常规的使用也会缓慢消耗它们自身的媒质——我想应该是用来修复紫水晶结构中的损伤了。而因为已有的晶体和新基质难以整合,传统的修复流程对这些工具效果不佳。",
- "hexchanting.page.imbuing.4": "我尝试过用这种材料制弓,但失败了。紫水晶的刚度太高了。之后,我改为用紫水晶碎片代替燧石合成箭。这些箭可像其他紫水晶装备一样融能,但它们只能使用其自身的媒质:大约相当于 1 个紫水晶碎片。我确信我可以只用媒质就做出同样功能的东西,不过这些箭还是有着它们独特的长处的。",
+ "hexchanting.page.imbuing.4": "我尝试过用这种材料制弓,但失败了;紫水晶的刚度太高。之后,我改为用紫水晶碎片代替燧石合成箭。这些箭可像其他紫水晶装备一样融能,但它们只能使用其自身的媒质:大约相当于 1 个紫水晶碎片。我当然可以只用媒质就做出同样功能的东西,但这些箭确实有其独特的长处。",
"hexchanting.page.imbue_equipment.summary.0": "将所给咒术融注入另一只手中的物品,每次使用该物品时即会施放该咒术。",
- "hexchanting.page.imbue_equipment.summary.1": "对于工具(斧、锄、镐、锹)而言,咒术会在破坏方块后触发。此时栈以所破坏方块的位置起始。若是经由这些工具施放破坏方块法术,表现会与使用该工具破坏一致,魔咒也算在内。剑会在击中敌人时施法,起始栈为所击中的实体。",
- "hexchanting.page.imbue_equipment.summary.2": "盔甲的机制稍显复杂:它们会在穿戴者受到伤害时施法,并向起始栈中压入进行攻击的实体、来源实体、位置、伤害。除最后一个参数外,其他参数均可能为 Null。自然看待事物的眼光很奇特。箭会在命中实体时施法,并向其栈压入其自身和其目标。"
+ "hexchanting.page.imbue_equipment.summary.1": "对于工具(斧、锄、镐、锹)而言,咒术会在破坏方块后触发;此时栈以所破坏方块的位置起始。若是经由这些工具施放破坏方块法术,表现会与使用该工具破坏一致,魔咒也算在内。剑会在击中敌人时施法,起始栈为所击中的实体。",
+ "hexchanting.page.imbue_equipment.summary.2": "盔甲的机制稍显复杂:它们会在穿戴者受到伤害时施法,并向起始栈中压入进行攻击的实体、来源实体、位置、伤害量。除最后一个参数外,其他参数均可能为 Null。自然看待事物的眼光很奇特。箭会在命中实体时施法,并向其栈压入其自身和其目标。"
}
\ No newline at end of file
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/en_us.json b/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
index 265b702301c8..1bcedbed5034 100644
--- a/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
+++ b/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
@@ -57,9 +57,18 @@
"hexcasting.action.ephemera:collisionprobe": "Clearance Purification",
"hexcasting.action.book.ephemera:collisionprobe": "Clearance Prfn.",
"hexcasting.action.ephemera:getiotasize": "Flock's Purification",
- "hexcasting.action.ephemera:getstacksizedeep": "Flock's Reflection II",
"hexcasting.action.book.ephemera:getiotasize": "Flock's Prfn.",
+ "hexcasting.action.ephemera:getstacksizedeep": "Flock's Reflection II",
"hexcasting.action.book.ephemera:getstacksizedeep": "Flock's Rfln. II",
+ "hexcasting.action.ephemera:no": "No",
+ "hexcasting.action.ephemera:getproperties": "State Purification",
+ "hexcasting.action.ephemera:getpropertyvalue": "State Distillation",
+ "hexcasting.action.ephemera:ridewisp": "Ride Wisp",
+ "hexcasting.action.ephemera:dismount": "Dismount",
+ "hexcasting.action.ephemera:getrider": "Equestrian Purification",
+ "hexcasting.action.book.ephemera:getrider": "Equestrian Prfn.",
+ "hexcasting.action.ephemera:getmount": "Equestrian Purification II",
+ "hexcasting.action.book.ephemera:getmount": "Equestrian Prfn. II",
"hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
"hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
@@ -71,6 +80,7 @@
"ephemera.mishap.toolongiota": "an iota that displays as less than 256 characters",
"hexcasting.mishap.ephemera:blacklist": "This effect has been blacklisted via tag.",
"hexcasting.mishap.ephemera:instant": "How did you even get that iota?",
+ "hexcasting.mishap.ephemera:no": "no",
"item.ephemeral.media_armor.tooltip.1": "Bestows %s %s upon the wearer.",
@@ -95,6 +105,14 @@
"ephemera.page.miscpatterns.6": "Accepts a vector, and returns whether that vector is within (or just on the edge of) the block in that space. Seems to involve the boxes I see in my mind's eye.",
"ephemera.page.miscpatterns.7": "Returns the total size of all iotas on my stack, including the contents of lists and similar. If this number ever reaches 1024, my stack shall come crashing down into garbage.",
"ephemera.page.miscpatterns.8": "Accepts any iota, and returns its total size.",
+ "ephemera.page.miscpatterns.9": "Accepts a vector, and returns a list of strings corresponding to values contained in the state of the block at the corresponding position.",
+ "ephemera.page.miscpatterns.10": "Accepts a vector and a string, and uses the string as a key to retrieve the value it corresponds to in the target block's state, or null if there is no corresponding value.",
+ "ephemera.page.miscpatterns.11": "Accepts one of my wisps (or a wandering wisp), and places me atop it, similar to sitting in a minecart. I must be within the wisp's ambit, or four blocks for wandering wisps. Costs one amethyst shard.",
+ "ephemera.page.miscpatterns.12": "I should take care not to accelerate too quickly when riding a wisp, as unlike with Impulse, the acceleration is not applied evenly across my body, and can thus cause significant harm. The threshold for how quickly I can accelerate safely seems to be about 98 m/s over one second.$(br)I should take care when mounting fast wisps, as the instantaneous velocity involved can contribute to this damage if I am too far from my final seated position.",
+ "ephemera.page.miscpatterns.13": "Takes me off of whatever entity I may be riding when cast. Costs 1/100 of a dust.",
+ "ephemera.page.miscpatterns.14": "Accepts an entity, and returns a list of entities seated atop it.",
+ "ephemera.page.miscpatterns.15": "Accepts an entity, and returns the entity it is seated atop.",
+
"ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
"ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
"ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
@@ -109,7 +127,7 @@
"ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
"ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
"ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
- "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:ephemera:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
+ "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
"ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
"ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
"ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
@@ -151,5 +169,7 @@
"text.ephemera.revealIntroduction": "Transmission from %s: ",
"text.ephemera.nosender": "unknown",
- "enchantment.ephemera.shame": "Curse of Shame"
+ "enchantment.ephemera.shame": "Curse of Shame",
+
+ "death.attack.ephemera:acceleration": "%s was subjected to lethal acceleration."
}
\ No newline at end of file
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
index 7df1ceb3ead1..ac6fedb36e04 100644
--- a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
+++ b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
@@ -57,9 +57,18 @@
"hexcasting.action.ephemera:collisionprobe": "空域之纯化",
"hexcasting.action.book.ephemera:collisionprobe": "空域之纯化",
"hexcasting.action.ephemera:getiotasize": "群体之纯化",
- "hexcasting.action.ephemera:getstacksizedeep": "群体之精思,第二型",
"hexcasting.action.book.ephemera:getiotasize": "群体之纯化",
+ "hexcasting.action.ephemera:getstacksizedeep": "群体之精思,第二型",
"hexcasting.action.book.ephemera:getstacksizedeep": "群体之精思,第二型",
+ "hexcasting.action.ephemera:no": "不",
+ "hexcasting.action.ephemera:getproperties": "状态之纯化",
+ "hexcasting.action.ephemera:getpropertyvalue": "状态之馏化",
+ "hexcasting.action.ephemera:ridewisp": "骑乘咒灵",
+ "hexcasting.action.ephemera:dismount": "离座",
+ "hexcasting.action.ephemera:getrider": "马术师之纯化",
+ "hexcasting.action.book.ephemera:getrider": "马术师之纯化",
+ "hexcasting.action.ephemera:getmount": "马术师之纯化,第二型",
+ "hexcasting.action.book.ephemera:getmount": "马术师之纯化,第二型",
"hexcasting.mishap.location_ephemera:inputrelaytprange": "目标实体距%s处的目标节点过远。",
"hexcasting.mishap.location_ephemera:outputrelaytprange": "无法在范围%s内找到已连接的节点。",
@@ -71,6 +80,7 @@
"ephemera.mishap.toolongiota": "一个可用少于256个字符显示的iota",
"hexcasting.mishap.ephemera:blacklist": "此效果已被标签禁用。",
"hexcasting.mishap.ephemera:instant": "是如何拿到这个iota的?",
+ "hexcasting.mishap.ephemera:no": "不",
"item.ephemeral.media_armor.tooltip.1": "给予穿戴者%s %s。",
@@ -95,6 +105,14 @@
"ephemera.page.miscpatterns.6": "接受一个向量,并检查该向量是否在该位置方块的内部或边缘。似乎与我在意识中见到的方框有所关联。",
"ephemera.page.miscpatterns.7": "返回我栈中所有 iota 的总大小,类列表 iota 中的各元素会拆出计算。若返回的数达到 1024,那么整个栈都将变为垃圾。",
"ephemera.page.miscpatterns.8": "接受任意 iota,返回其总大小。",
+ "ephemera.page.miscpatterns.9": "接受一个向量,以字符串列表形式返回该位置处方块各状态值。",
+ "ephemera.page.miscpatterns.10": "接受一个向量和一个字符串,以该字符串为键返回目标方块的对应状态值;若无对应值则返回 Null。",
+ "ephemera.page.miscpatterns.11": "接受一个属于我的咒灵或游走咒灵,并像乘坐矿车一样坐到其上。我必须处于咒灵的影响范围内,或距游走咒灵 4 格以内。消耗 1 个紫水晶碎片。",
+ "ephemera.page.miscpatterns.12": "骑乘咒灵时务必小心,千万不要加速加得太快;咒灵和驱动不同,前者带来的加速不会平均作用于我的全身,也因此可能会导致严重的损伤。安全阈值应该是约 98 m/s 每秒。$(br)落座时也应注意:如果距离目标咒灵过远,落座时的瞬时速度也可能导致伤害。",
+ "ephemera.page.miscpatterns.13": "让我从施法时骑乘的实体上离开。消耗 1/100 个紫水晶粉。",
+ "ephemera.page.miscpatterns.14": "接受一个实体,返回在该实体上方落座的实体列表。",
+ "ephemera.page.miscpatterns.15": "接受一个实体,返回其所骑乘的实体。",
+
"ephemera.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
"ephemera.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
"ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
@@ -109,7 +127,7 @@
"ephemera.page.status_iotas.9": "接受一个活体实体,并返回其在生命值受影响前能吸收的伤害量。",
"ephemera.page.status_iotas.10": "接受一个实体和一个状态效果,并移除该实体身上的所给状态效果。消耗由效果自身的伤害性、强度、剩余持续时间决定。",
"ephemera.page.status_iotas.11": "若是要移除非自身实体身上的正面效果,则消耗会增加。$(br2)所有需要检测实体身上有无所给状态效果的图案都有副作用。如果该实体当前没有这种效果,则图案会失效,并给予我反胃。",
- "ephemera.page.magearmor.1": "我发现了一种比较有趣的法术,它能够产生防御性的媒质屏障,防护力媲美甚至超过许多种传统盔甲。此类屏障甚至还能给予穿戴者许多$(l:ephemera:patterns/spells/status_iotas)持久效果$(/l),堪称泛用。",
+ "ephemera.page.magearmor.1": "我发现了一种比较有趣的法术,它能够产生防御性的媒质屏障,防护力媲美甚至超过许多种传统盔甲。此类屏障甚至还能给予穿戴者许多$(l:patterns/spells/status_iotas)持久效果$(/l),堪称泛用。",
"ephemera.page.magearmor.2": "接受作为盔甲接收方的玩家,盔甲的耐久度,盔甲的护甲值(最多为 10),施加的状态效果,状态效果的等级。最后两个参数可用其他类型的 iota 代替,此时这两个参数会被忽略。",
"ephemera.page.magearmor.3": "当然,这种屏障并非无法破坏。除去受击致损外,其耐久度还会持续减少。这种减少效应的基础速率看作每秒 1 “点”,则还需附加上其中效果等级平方个“点”。此外,穿戴者脱下后它们会立刻消失。换言之,除非重新施法覆写其状态,否则没有方法修复它们。",
"ephemera.page.magearmor.4": "此法术的媒质消耗比较复杂:每 60 点耐久度基础消耗 1 个紫水晶粉,乘以护甲值的 1.5 次幂,再乘以任意状态效果的等级 + 1。因此,不提供状态效果、护甲值为 10、耐久度够支持 1 分钟的盔甲需消耗大约 31.5 个紫水晶粉。再令其给予生命恢复 II,消耗就来到了大约 94.5 个紫水晶粉,并且在消失前也只能坚持 36 秒。",
@@ -151,5 +169,7 @@
"text.ephemera.revealIntroduction": "来自%s的信息:",
"text.ephemera.nosender": "未知",
- "enchantment.ephemera.shame": "无耻诅咒"
+ "enchantment.ephemera.shame": "无耻诅咒",
+
+ "death.attack.ephemera:acceleration": "%s因加速过快而亡"
}
\ No newline at end of file
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
index 3757b38851b8..bece575d5814 100644
--- a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
+++ b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
@@ -38,6 +38,8 @@
"hexcasting.action.oneironaut:getsoulprint": "Soulprint Reflection",
"hexcasting.action.oneironaut:signitem": "Sign Item",
"hexcasting.action.oneironaut:checksignature": "Signature Purification",
+ "hexcasting.action.oneironaut:extradimensionaleval": "Heimdall's Gambit",
+ "hexcasting.action.oneironaut:shiftsentinel": "Shift Sentinel",
"this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
"item.oneironaut.pseudoamethyst_shard": "Pseudoamethyst Shard",
@@ -59,6 +61,7 @@
"item.oneironaut.mind_scalpel": "Synaptic Scalpel",
"item.oneironaut.monkfruit": "Monkfruit",
"item.oneironaut.rending_thorns": "Rending Thorns",
+ "item.oneironaut.library_card": "Akashic Library Card",
"block.oneironaut.noosphere_gate": "Inscrutable Rift",
"block.oneironaut.pseudoamethyst_block": "Pseudoamethyst Block",
@@ -108,6 +111,7 @@
"oneironaut.entry.soulprints": "Soulprints",
"oneironaut.entry.hover_elevator": "Hoverlifts",
"oneironaut.entry.flayrevival": "Artificial Minds",
+ "oneironaut.entry.heimdall": "Transdimensional Casting",
"this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
"oneironaut.page.spaceswap.1": "Accepts two lists of two vectors, to define two cuboids, and a Spatial Imprint. These cuboids must have the exact same dimensions and rotation.",
@@ -174,7 +178,7 @@
"oneironaut.page.super_budding.3": "Additionally, when cultivated in the Noosphere, budding pseudoamethyst will produce pseudoamethyst clusters rather than conventional amethyst. These clusters will of course yield pseudoamethyst shards, as well as an unstable form of pseudoamethyst containing about four times as much media as the regular shards. Unfortunately, due to this instability, it cannot be directly converted into usable media. However, it can be converted into many other forms of media crystal by simply bringing the two items together.",
"oneironaut.page.super_budding.4": "It seems to react to my gaze, as if endowed with some form of perception.",
"oneironaut.page.super_budding.5": "The media generation rate of budding pseudoamethyst is such that even when immersed in thought slurry to inhibit crystal formation, it will still yield usable amounts of media. While the overall supply is nigh-endless, the amount accessible to any given action is quite small, like an inch-deep ocean a million miles across. However, due to this minimal depth, the media will dissipate rapidly before reaching my staff when accessed from afar, such as when recharging an item.",
- "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I certainly $(o)can$() hold several of these in order to gain access to more easy media, this results in rapidly-diminishing returns.",
+ "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I $(o)can$() hold several of these in order to gain access to more media, this results in rapidly-diminishing returns. $(br)I should be careful not to craft with the wrong phial.",
"oneironaut.page.super_budding.7": "I can also jam one into a trinket in order to replace its media supply with an inexhaustible phial, giving it access to the endless media within. However, it cannot use any media other than that provided by the phial.",
"oneironaut.page.super_budding.8": "Writes a hex to the bottomless trinket in my other hand. Costs ten charged amethyst.",
"oneironaut.page.idea_inscription.1": "As the noosphere is a realm of thought, it stands to reason that it could be used for information storage. These patterns do just that, inscribing an iota into the noosphere and reading it back (regardless of my current dimension). They can also store iotas inside the minds of other beings, assuming their thoughts are as... $(o)unfettered$() as my own. In the notation for these patterns, \"key\" refers to any vector or compatible entity.",
@@ -214,7 +218,7 @@
"oneironaut.page.lore.treatise3.3": "However, by adding actual functionality and a bit of boolean logic, you can create a proper while loop. The code for the aforementioned infinite loop is as follows:$(br)Introspection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br)Retrospection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br2)By adding logic that changes whether the inner Hermes' Gambit gets evaluated based on a condition, you can make it stop once that condition is fulfilled.",
"oneironaut.page.lore.treatise3.4.header": "Loop Unrolling",
"oneironaut.page.lore.treatise3.4": "A more complex form of loop is an unrolled loop. Like Thoth's Gambit, it's created with a fixed number of iterations which can't easily be added to, but Charon's Gambit can be used to halt it early if need be. It also has the advantage that when done competently, it only ever produces one or two levels of recursion depth (not counting anything executed in the body of the loop). Loop unrolling is accomplished by creating a pattern list you want to repeat, duplicating it many times, and then combining all those lists into one.",
- "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:concat)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
+ "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:add)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
"oneironaut.page.lore.treatise4.1": "Some of my, erm, \"colleagues\" have trouble transcribing long hexes.$(br)\"This is too long!\"$(br)\"The grid doesn't have enough space!\"$(br)$(bold)Skill issue$(), I say. It's not like a hex is immutable once you've drawn the last Retrospection. All you need to do is save the work-in-progress hex to a focus (though you should make sure to conserve enough grid space to actually do this).",
"oneironaut.page.lore.treatise4.2": "Then you just use the $(l:patterns/lists)list manipulation$(/l) patterns to combine it with the other parts once you're done.$(br2)You don't even need to use multiple foci, you can just append one part to the last one as you finish them, and then save that to one focus. The multiple-focus method makes it easier to debug your finished hex, but as far as I know that's its only benefit compared to the one-focus method.",
"oneironaut.page.lore.science1.1": "$(o)\"What is this and how do I get rid of it?\"$()$(br)A question asked by many people upon their first encounter with a slipway. I don't have a good answer for the second part of the question, but I believe I can provide a satisfactory response to the first.$(br)From what I can tell, a slipway is a tiny hole in space, the other side of which is the media realm known as the Noosphere.",
@@ -230,7 +234,7 @@
"oneironaut.page.glow_ambit.1": "Despite diligent research, the source of the special properties of other hexcasters' entity references has eluded me. However, I've discovered a way to bestow one such property upon other beings, at least temporarily (and flashily).$(br)This spell allows casters to affect creatures from great distances just like the infinite-range aspect of a player reference. However, one must still be close to the target in order to perform the initial application.",
"oneironaut.page.glow_ambit.2": "Accepts a living entity, and allows it to be accessed from anywhere for one minute. Has a base cost of one amethyst shard, plus one additional shard per application before allowing it to expire.",
"oneironaut.page.glow_ambit.3": "It seems that this effect functions by causing the target to emit some sort of psionic resonance, strong enough to cause its outline to be \"visible\" through all manner of barriers (perhaps hexcasters naturally produce this same resonance, but much subtler?). However, this glow is distinct from that induced by spectral arrows and similar, so don't bet on things to detect that working for this.",
- "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:oneironaut:patterns/idea_inscription)Idea Inscription$(/l).",
+ "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:patterns/idea_inscription)Idea Inscription$(/l).",
"oneironaut.page.soulprints.2": "Returns my soulprint, mishapping if cast using anything other than a staff. Costs a negligible amount of media.",
"oneironaut.page.soulprints.3": "Invisibly engraves my soulprint onto the item in my other hand, or erases it if it is already there. Costs 1 amethyst dust.$(br)I should be careful to seal any focuses or similar that I sign, as acquiring an unsealed signed focus may allow someone to impersonate me, and Erase Item gets rid of the signature.",
"oneironaut.page.soulprints.4": "Accepts a soulprint, and checks if the item in my other hand is engraved with it. Returns true if so, false otherwise. Costs a negligible amount of media.",
@@ -240,14 +244,19 @@
"oneironaut.page.hover_elevator.meme":"$(o)Bad and naughty hexcasters get sent to the hover cube.",
"oneironaut.page.hover_elevator.4": "Additionally, I can create a repeater capable of extending the range of the emitters when placed between them, such that the stream can continue on as if it had just left the emitter. Of course, such an extension requires more powerful components, and even then the stream can only be extended by three repeaters before it becomes too unstable to form.",
"oneironaut.page.hover_elevator.5": "Fortunately, this device seems to be rather immaterial for some reason, and I can pass straight through it without having to carefully twist around it in the stream.$(br)$(o)No, it does not make the stream pause for a moment before continuing.",
- "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:oneironaut:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
+ "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
"oneironaut.page.flayrevival.2": "Accepts a flayed mob, and creates an artifical pseudo-mind to inhabit its body. Costs 16 charged amethyst when used on a villager or allay, or 10 amethyst shards for anything else.",
"oneironaut.page.flayrevival.3": "While these pseudo-minds are capable of moving their bodies around as if they were their original inhabitants, they are too simple to be called truly sapient, even with the rather loose definition of the term that must be used when applying it to villagers. As such, any villager \"restored\" in this manner loses any professional experience it had before, and cannot gain such experience ever again.",
"oneironaut.page.flayrevival.4": "They do, however, regain their ability to reproduce, with any children they produce being untainted by my craft.$(br2)I'm not sure why the restored villagers suddenly gain an affinity for green clothing, but at least it serves as a good indicator of which villagers will be of little further use.",
"oneironaut.page.monkfruit.1": "I've discovered that using the $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l) spell on a Sweet Berry Bush produces a rather interesting plant. It is much like the shrub it mutates from, however its thorns are imbued with a media field which siphons the minds of pricked creatures into the plant in order to grow. It can grow without this (albeit slowly), though it still requires minds nearby to provide small amounts of media.",
"oneironaut.page.monkfruit.2": "The fruit that this bush produces is quite sweet, and can be processed into sugar. Additionally, it releases bits of media during digestion, which seek out rechargeable items on my person. I should be wary of the thorns while picking the fruit.",
- "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:oneironaut:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
+ "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
"oneironaut.page.monkfruit.4": "$(o)It's not rocket science.$()",
+ "oneironaut.page.library_card.1": "In my search for a truly universal data storage method, I have designed a small device which allows me to read from Akashic Records in other dimensions while on my person. I need only write a spatial imprint to the item, and any future akashic read operations will be redirected to the stored dimension.$(br)Unfortunately, it does not allow me to $(o)write to$() them, but this is certainly better than nothing.",
+ "oneironaut.page.library_card.2": "$(o)It seems to exude some kind of sticky gloop.$()",
+ "oneironaut.page.heimdall.1": "A strange pattern that appears to be a variant of Hermes' Gambit. Accepts a spatial imprint and an executable iota, and attempts to cast the iota in the corresponding dimension.",
+ "oneironaut.page.heimdall.2": "While it does allow me to cast across dimensions, it is not the perfect solution that I have been searching for. For one thing, it seems to work only when cast directly by me, rather than via a spell circle or wisp. Additionally, media-consuming patterns cast in this way have their cost increased by 25%%. Finally, since I am not physically present in the target dimension, I need to use my Greater Sentinel (or other ambit-boosting effects) in order to affect anything in there.",
+ "oneironaut.page.heimdall.3": "Accepts a spatial imprint, and moves my sentinel to the corresponding dimension, with its coordinates scaled appropriately. Costs one amethyst shard. Mishaps if I do not currently have a sentinel.",
"this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
"oneironaut.advancements.noosphere.enter": "A Realm of Thought and Dream",
@@ -291,6 +300,7 @@
"hexcasting.mishap.oneironaut:norequirediota": "The slime demands %s",
"hexcasting.mishap.oneironaut:requiresdifferententities": "an entity different from the target",
"hexcasting.mishap.oneironaut:nostaff": "%s expected to be cast using a staff.",
+ "hexcasting.mishap.oneironaut:nosentinel": "Could not find a sentinel to move.",
"oneironaut.mishap.noitemframe": "an item frame",
"oneironaut.mishap.invalidideakey": "a vector, player, or soulprint",
"oneironaut.mishap.unenlightenedtarget": "an enlightened player",
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
index cc6226bf4541..f291c504597f 100644
--- a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
+++ b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
@@ -38,6 +38,8 @@
"hexcasting.action.oneironaut:getsoulprint": "灵魂印记之精思",
"hexcasting.action.oneironaut:signitem": "签印物品",
"hexcasting.action.oneironaut:checksignature": "签印之纯化",
+ "hexcasting.action.oneironaut:extradimensionaleval": "海姆达尔之策略",
+ "hexcasting.action.oneironaut:shiftsentinel": "挪移哨卫",
"this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
"item.oneironaut.pseudoamethyst_shard": "伪紫水晶碎片",
@@ -59,6 +61,7 @@
"item.oneironaut.mind_scalpel": "突触手术刀",
"item.oneironaut.monkfruit": "修道果",
"item.oneironaut.rending_thorns": "裂识荆棘",
+ "item.oneironaut.library_card": "阿卡夏借书证",
"block.oneironaut.noosphere_gate": "神秘裂口",
"block.oneironaut.pseudoamethyst_block": "伪紫水晶块",
@@ -108,6 +111,7 @@
"oneironaut.entry.soulprints": "灵魂印记",
"oneironaut.entry.hover_elevator": "悬浮桥链",
"oneironaut.entry.flayrevival": "人工意识",
+ "oneironaut.entry.heimdall": "跨维度施法",
"this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
"oneironaut.page.spaceswap.1": "接受均由两个向量组成的两个列表,用于定义两个长方体,以及一个空间印记。所定义的长方体必须保证尺寸与朝向一致。",
@@ -174,7 +178,7 @@
"oneironaut.page.super_budding.3": "此外,在智识界中培育时,伪紫水晶母岩会产生伪紫水晶簇,而不是普通的紫水晶。自然,这些晶簇掉落的是伪紫水晶碎片,但同时也会掉落一种不甚稳定的伪紫水晶,其媒质含量是普通碎片的四倍。正是由于这种不稳定性,此类伪紫水晶无法直接转换为媒质。但把它和其他形态的媒质水晶放在一起,即可令其转变为那种形态。",
"oneironaut.page.super_budding.4": "它似乎对我的凝视有了反应,就好像它有某种感知力一样。",
"oneironaut.page.super_budding.5": "就算让伪紫水晶母岩浸没在思维浆液中,抑制晶体的形成,它的媒质生成率依然足够平常使用。尽管总供给量近乎无穷,但单个操作能使用的媒质量相当少;就像一片几十万几百万千米宽,但只有几厘米深的海洋。而由于其深度极为有限,在远距获取使用(如为物品充能等)时,其中的媒质会在抵达法杖前迅速消散殆尽。",
- "oneironaut.page.super_budding.6": "常态提供大约与 1/10 个紫水晶粉相当的媒质。虽然我$(o)可以$()同时持有好多个来轻松获取媒质,但每个媒质瓶带来的增量会快速减少。",
+ "oneironaut.page.super_budding.6": "常态提供大约与 1/10 个紫水晶粉相当的媒质。虽然我$(o)可以$()同时持有好多个来获取媒质,但每个媒质瓶带来的增量会快速减少。$(br)合成时注意别用错试剂瓶了。",
"oneironaut.page.super_budding.7": "还可以往缀品里塞一个,以让无穷媒质之瓶为其供应媒质。但是,如此操作后,缀品便不会再接受其他来源的媒质。",
"oneironaut.page.super_budding.8": "向另一只手中的无底缀品写入咒术。消耗 10 个充能紫水晶。",
"oneironaut.page.idea_inscription.1": "智识界是思维的领域,它能用来存储信息也就顺理成章。这些图案就能把 iota 刻印入智识界,并能读出它们(不论当前身处什么维度)。它们还能把 iota 存储到其他生物的意识中,当然它们的意识也需和我一样……$(o)无拘无束$()。在相关描述中,用于指代向量和有效实体的词是“键”/“key”。",
@@ -214,7 +218,7 @@
"oneironaut.page.lore.treatise3.3": "向其中加入实际功能和一些布尔逻辑,就能创造出有用的 while 循环。前文所提无限循环的代码如下:$(br)内省$(br)双子之分解$(br)赫尔墨斯之策略$(br)反思$(br)双子之分解$(br)赫尔墨斯之策略$(br2)向其中加入根据条件是否运行列表内赫尔墨斯之策略的逻辑,达成相应条件后循环便会终止。",
"oneironaut.page.lore.treatise3.4.header": "循环展开",
"oneironaut.page.lore.treatise3.4": "“已展开循环”/“Unrolled loop”是一种更为复杂的循环。和托特之策略一样,构建时其迭代次数同样固定,难以增加修改。但如有需要,卡戎之策略可以令其提前停止。比较来看,这种循环仅产生一到两层递归深度(循环体运行所致深度不计),是其优势所在。先写定想要重复的图案列表,再多次复制,最后把所有列表合成一体,就实现了循环展开。",
- "oneironaut.page.lore.treatise3.5": "这一目标最简单的达成方式是$(l:patterns/stackmanip#hexcasting:duplicate)双子之分解$(/l)接$(l:patterns/lists#hexcasting:concat)组合之馏化$(/l),运行后原列表会重复 2 次。可重复使用此方法以复制原列表 2 的幂次,所得的列表在运行时只会产生一层递归深度。更灵活的做法则是使用$(l:patterns/stackmanip#hexcasting:duplicate_n)双子之策略$(/l)产生 $(o)n$() 个副本,再将 $(o)n-1$() 个组合之馏化放入列表并运行,如此便能把所有原列表副本合为一体。",
+ "oneironaut.page.lore.treatise3.5": "这一目标最简单的达成方式是$(l:patterns/stackmanip#hexcasting:duplicate)双子之分解$(/l)接$(l:patterns/lists#hexcasting:add)组合之馏化$(/l),运行后原列表会重复 2 次。可重复使用此方法以复制原列表 2 的幂次,所得的列表在运行时只会产生一层递归深度。更灵活的做法则是使用$(l:patterns/stackmanip#hexcasting:duplicate_n)双子之策略$(/l)产生 $(o)n$() 个副本,再将 $(o)n-1$() 个组合之馏化放入列表并运行,如此便能把所有原列表副本合为一体。",
"oneironaut.page.lore.treatise4.1": "我的一些呃,“同事”,在抄录长咒术时遇到了麻烦。$(br)“这东西好长!”$(br)“咒术网格都不够用了!”$(br)我认为这是$(bold)能力问题$()。这又不是那些绘制完最后一个反思后没法修改咒术的麻烦。只需把未完成的咒术存到核心中即可。(不过你应该注意为存储操作留出空间。)",
"oneironaut.page.lore.treatise4.2": "完成之后,再用$(l:patterns/lists)列表操作$(/l)图案把各部分合起来就行了。$(br2)甚至都不需要用多个核心,写完一部分后把它接到核心中列表的后方,再把所得列表存入核心即可。多核心会让调试咒术更轻松,但据我目前所知,这也是多核心相对单核心唯一的优势。",
"oneironaut.page.lore.science1.1": "$(o)“这是什么?我该怎么把它弄走?”$()$(br)大多数人在第一次遇见质道时都会产生这些疑问。我对第二个问题暂时没有答案,但回答第一个问题还是可以的。$(br)就我所知,质道是空间中的微小孔洞,其另一侧是称作“智识界”的媒质界。",
@@ -230,7 +234,7 @@
"oneironaut.page.glow_ambit.1": "尽管经过了长久的研究,代表其他咒术师的 iota 中仍有些特殊性质的由来未能厘清。不过,我找到了一种赋予其他事物同样性质的方法,不敢说持久,但至少能暂时做到。(还很昂贵。)$(br)这种法术允许施法者跨越极远的距离影响生物,就和玩家 iota 的无限影响距离一样。但对目标施放这种法术时,依然需要离目标足够近。",
"oneironaut.page.glow_ambit.2": "接受一个活体,在 1 分钟内即可在世界各处访问所给活体。基础消耗 1 个紫水晶碎片,在效应消退前每施放一次额外消耗 1 个紫水晶碎片。",
"oneironaut.page.glow_ambit.3": "这种效果的原理似乎是让目标散发出某种超自然共振。这种共振相当强大,目标的轮廓隔着各种形式的障碍依然“可见”。(咒术师们也许就在持续产生这种共振,只不过是没有如此效果显著?)但是,这种辉光与光灵箭等造成的辉光不一样,不要指望监测那种辉光的仪器对这种也有效。",
- "oneironaut.page.soulprints.1": "灵魂印记和代表我自己的 iota 类似,功能中也有“代表我”这一项,但使用的限制会多出许多。除了通过我本人之外,他人没有方式获得灵魂印记,不过这些灵魂印记不受写入限制,和普通的玩家 iota 不一样。$(br2)有意思的是,灵魂印记也是$(l:oneironaut:patterns/idea_inscription)思绪刻印$(/l)的有效键。",
+ "oneironaut.page.soulprints.1": "灵魂印记和代表我自己的 iota 类似,功能中也有“代表我”这一项,但使用的限制会多出许多。除了通过我本人之外,他人没有方式获得灵魂印记,不过这些灵魂印记不受写入限制,和普通的玩家 iota 不一样。$(br2)有意思的是,灵魂印记也是$(l:patterns/idea_inscription)思绪刻印$(/l)的有效键。",
"oneironaut.page.soulprints.2": "返回我自己的灵魂印记,使用除法杖之外的施法手段时会招致事故。消耗极少量媒质。",
"oneironaut.page.soulprints.3": "将我的灵魂印记隐写到另一只手中的物品上,若已有灵魂印记则清除。消耗 1 个紫水晶粉。$(br)签印物品前要注意先将核心一类的物品密封,经过签印的未密封核心有身份泄露的风险,清除物品会同时去除签印。",
"oneironaut.page.soulprints.4": "接受一个灵魂印记,并检查我另一只手中物品上是否有对应的隐写。若有,返回 True;否则返回 False。消耗极少量媒质。",
@@ -240,14 +244,19 @@
"oneironaut.page.hover_elevator.meme":"$(o)淘气的咒术师会被送到飘浮方块里去喔。",
"oneironaut.page.hover_elevator.4": "此外,还可以制造一个中继器,用于延长端设备的范围。经过此中继器的能量流会恢复至其刚离开端设备的状态。如此强大的器具自然需要强大的组件,但就算如此,能量流在经过 3 个中继器后,也会因太过不稳定而无法维持。",
"oneironaut.page.hover_elevator.5": "好在由于某种原因,此设备并没有传统意义上的实体;也即在能量流中移动时可以直接穿过去,而不需要小心翼翼地绕过。$(br)$(o)不会的,它不会在延续能量流之前顿一下的。",
- "oneironaut.page.flayrevival.1": "剥离完意识的村民、或是被$(l:oneironaut:items/mindrender)意识撕裂者$(/l)摧残到仅剩最后一丝气息的生物,它们都变成了毫无用途的空壳,我对此相当苦恼。尽管它们$(o)确实$()能自己完成少数几种任务;但除此之外的大多数任务就连无智慧可言的野兽都能做好,它们却无能为力了。好在我发现了一个法术,能让这些空壳具有某种程度的认知能力。",
+ "oneironaut.page.flayrevival.1": "剥离完意识的村民、或是被$(l:items/mindrender)意识撕裂者$(/l)摧残到仅剩最后一丝气息的生物,它们都变成了毫无用途的空壳,我对此相当苦恼。尽管它们$(o)确实$()能自己完成少数几种任务;但除此之外的大多数任务就连无智慧可言的野兽都能做好,它们却无能为力了。好在我发现了一个法术,能让这些空壳具有某种程度的认知能力。",
"oneironaut.page.flayrevival.2": "接受一个已剥离意识的生物,并创造一个人工伪意识融入其中。对村民或悦灵使用时消耗 16 个充能紫水晶,其余情况消耗 10 个紫水晶碎片。",
"oneironaut.page.flayrevival.3": "这些伪意识确实能驱动躯体,一如身体的原主人,但它们离真正的所谓智慧还差得远,换成适用于村民的宽松定义也是一样。因此,以此方法“恢复正常”的村民会失去先前的职业经验,也无法再获取此类经验了。",
"oneironaut.page.flayrevival.4": "不过,他们依然保留了繁衍的能力。他们的后代不会受到我先前行为的影响。$(br2)我不太确定为什么村民恢复后都喜欢上了绿色的衣物,但这种性质确实方便我辨识哪些村民不堪大用。",
"oneironaut.page.monkfruit.1": "我发现对甜浆果丛使用$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)法术能变出一种相当有趣的植物。它和原来的灌木很像,但它的棘刺中融有媒质场,能吸走其刺中的生物的意识以让自己生长。它不刺人也能生长(虽然很慢),但仍需周围存在具有意识的生物才能结出少量媒质。",
"oneironaut.page.monkfruit.2": "它结出的果实相当甜,且能加工处理成糖。而且,这种果实在被消化的时候似乎能释放出些许媒质,又会进一步为我身上可以重新填充媒质的物品充入媒质。摘果子时务必要小心灌木中的刺。",
- "oneironaut.page.monkfruit.3": "成熟植株上剪下的枝条依然具有这些危险的性质,可以用来合成一把不祥的刀。$(br2)这把刀和附有低等级$(l:oneironaut:items/mindrender)意识撕裂$(/l)魔咒的剑类似,但它更为精确:撕裂意识时能把对形体的附带损伤降到最低。如果我有这个想法,当然可以把它用作普通的冷兵器,但确实要承担杀死目标的风险。",
+ "oneironaut.page.monkfruit.3": "成熟植株上剪下的枝条依然具有这些危险的性质,可以用来合成一把不祥的刀。$(br2)这把刀和附有低等级$(l:items/mindrender)意识撕裂$(/l)魔咒的剑类似,但它更为精确:撕裂意识时能把对形体的附带损伤降到最低。如果我有这个想法,当然可以把它用作普通的冷兵器,但确实要承担杀死目标的风险。",
"oneironaut.page.monkfruit.4": "$(o)这又不是什么高端科技。$()",
+ "oneironaut.page.library_card.1": "在研究真正通用的数据存储方式时,我设计出了一个小设备,随身携带即可读取其他维度的阿卡夏记录。只需向该物品写入一个空间印记,便能将未来所有阿卡夏读取操作导向至对应维度。$(br)可惜的是,它不能用来$(o)写入$(),但有总比没有好。",
+ "oneironaut.page.library_card.2": "$(o)它似乎会渗出某种黏答答的凝浆。$()",
+ "oneironaut.page.heimdall.1": "奇怪的图案,似乎是赫尔墨斯之策略的变种。接受一个空间印记和一个可执行的 iota,并尝试在所给维度内施放所给 iota。",
+ "oneironaut.page.heimdall.2": "它确实能帮我跨维度施法,但还不够完美。首先,它似乎只会在我直接施法时起效,法术环和咒灵都行不通。其次,有消耗的图案会额外消耗 25%% 的媒质。最后,正因为我没有真的身处目标维度,所以需要借助卓越哨卫(或其他增大影响范围的手段)才能影响那一侧的事物。",
+ "oneironaut.page.heimdall.3": "接受一个空间印记,并将我的哨卫移动到对应维度,坐标相应缩放。消耗 1 个紫水晶碎片。如果我当前没有哨卫则招致事故。",
"this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
"oneironaut.advancements.noosphere.enter": "思维与梦的领域",
@@ -291,6 +300,7 @@
"hexcasting.mishap.oneironaut:norequirediota": "黏液需要%s",
"hexcasting.mishap.oneironaut:requiresdifferententities": "一个与目标不同的实体",
"hexcasting.mishap.oneironaut:nostaff": "%s本应由法杖施放。",
+ "hexcasting.mishap.oneironaut:nosentinel": "无法找到可挪移的哨卫。",
"oneironaut.mishap.noitemframe": "一个物品展示框",
"oneironaut.mishap.invalidideakey": "一个向量、玩家或灵魂印记",
"oneironaut.mishap.unenlightenedtarget": "一个经过启迪的玩家",
From a47291d8204dc91418b203dbe8b519c2bf94b060 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 26 Mar 2025 01:04:29 +0800
Subject: [PATCH 19/78] =?UTF-8?q?README=EF=BC=9A=E8=A1=A5=E4=B8=80?=
=?UTF-8?q?=E9=83=A8=E5=88=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
projects/1.18/assets/hexal/hexal/README.md | 16 ++++++++++++++++
.../lanishextendedstaves/README.md | 1 +
.../hextended-staves/hextended/README.md | 1 +
.../1.20/assets/1UNKNOWN/hexcasted/README.md | 16 ++++++++++++++++
.../1.20/assets/hexgender/hexgender/README.md | 16 ++++++++++++++++
.../assets/hexmapping/hexmapping/README.md | 16 ++++++++++++++++
.../hextended-staves/hextended/README.md | 19 +++++++++++++++++++
projects/1.20/assets/hexvr/hex_vr/README.md | 19 +++++++++++++++++++
projects/1.20/assets/hexweb/hexweb/README.md | 16 ++++++++++++++++
.../assets/modrinth-hexsky/hexsky/README.md | 16 ++++++++++++++++
.../modrinth-hextweaks/hextweaks/README.md | 16 ++++++++++++++++
.../hexxyattributes/README.md | 16 ++++++++++++++++
.../assets/oneironaut/oneironaut/README.md | 16 ++++++++++++++++
13 files changed, 184 insertions(+)
create mode 100644 projects/1.18/assets/hexal/hexal/README.md
create mode 100644 projects/1.19/assets/hextended-staves/lanishextendedstaves/README.md
create mode 100644 projects/1.20/assets/1UNKNOWN/hexcasted/README.md
create mode 100644 projects/1.20/assets/hexgender/hexgender/README.md
create mode 100644 projects/1.20/assets/hexmapping/hexmapping/README.md
create mode 100644 projects/1.20/assets/hextended-staves/hextended/README.md
create mode 100644 projects/1.20/assets/hexvr/hex_vr/README.md
create mode 100644 projects/1.20/assets/hexweb/hexweb/README.md
create mode 100644 projects/1.20/assets/modrinth-hexsky/hexsky/README.md
create mode 100644 projects/1.20/assets/modrinth-hextweaks/hextweaks/README.md
create mode 100644 projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md
create mode 100644 projects/1.20/assets/oneironaut/oneironaut/README.md
diff --git a/projects/1.18/assets/hexal/hexal/README.md b/projects/1.18/assets/hexal/hexal/README.md
new file mode 100644
index 000000000000..31884981f3c4
--- /dev/null
+++ b/projects/1.18/assets/hexal/hexal/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.18.2 -->|indirect| 1.18.2-fabric
+```
+
+```
+1.18.2
+ └── 1.18.2-fabric
+```
+
+### 链接区域
+
+- [1.18.2](/projects/1.18/assets/hexal/hexal)
+- [1.18.2-fabric](/projects/1.18-fabric/assets/hexal/hexal)
\ No newline at end of file
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.20-fabric/assets/hextended-staves/hextended/README.md b/projects/1.20-fabric/assets/hextended-staves/hextended/README.md
index e69de29bb2d1..531f3c5d70c8 100644
--- a/projects/1.20-fabric/assets/hextended-staves/hextended/README.md
+++ 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/assets/1UNKNOWN/hexcasted/README.md b/projects/1.20/assets/1UNKNOWN/hexcasted/README.md
new file mode 100644
index 000000000000..39efe2a4d39a
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexcasted/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/1UNKNOWN/hexcasted)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/1UNKNOWN/hexcasted)
\ No newline at end of file
diff --git a/projects/1.20/assets/hexgender/hexgender/README.md b/projects/1.20/assets/hexgender/hexgender/README.md
new file mode 100644
index 000000000000..91bd3ddaa9fa
--- /dev/null
+++ b/projects/1.20/assets/hexgender/hexgender/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/hexgender/hexgender)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/hexgender/hexgender)
\ No newline at end of file
diff --git a/projects/1.20/assets/hexmapping/hexmapping/README.md b/projects/1.20/assets/hexmapping/hexmapping/README.md
new file mode 100644
index 000000000000..def00c3f3848
--- /dev/null
+++ b/projects/1.20/assets/hexmapping/hexmapping/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/hexmapping/hexmapping)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/hexmapping/hexmapping)
\ 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/hexvr/hex_vr/README.md b/projects/1.20/assets/hexvr/hex_vr/README.md
new file mode 100644
index 000000000000..245268f711de
--- /dev/null
+++ b/projects/1.20/assets/hexvr/hex_vr/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/hexvr/hex_vr)
+- [1.20.1](/projects/1.20/assets/hexvr/hex_vr)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/hexvr/hex_vr)
\ No newline at end of file
diff --git a/projects/1.20/assets/hexweb/hexweb/README.md b/projects/1.20/assets/hexweb/hexweb/README.md
new file mode 100644
index 000000000000..ab13d93f928f
--- /dev/null
+++ b/projects/1.20/assets/hexweb/hexweb/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/hexweb/hexweb)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/hexweb/hexweb)
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexsky/hexsky/README.md b/projects/1.20/assets/modrinth-hexsky/hexsky/README.md
new file mode 100644
index 000000000000..efe359d30069
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hexsky/hexsky/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/modrinth-hexsky/hexsky)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/modrinth-hexsky/hexsky)
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hextweaks/hextweaks/README.md b/projects/1.20/assets/modrinth-hextweaks/hextweaks/README.md
new file mode 100644
index 000000000000..20d46fff1e9e
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hextweaks/hextweaks/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/modrinth-hextweaks/hextweaks)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks)
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md
new file mode 100644
index 000000000000..91ff55cecbbe
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes)
\ No newline at end of file
diff --git a/projects/1.20/assets/oneironaut/oneironaut/README.md b/projects/1.20/assets/oneironaut/oneironaut/README.md
new file mode 100644
index 000000000000..55d484fa1b48
--- /dev/null
+++ b/projects/1.20/assets/oneironaut/oneironaut/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/oneironaut/oneironaut)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/oneironaut/oneironaut)
\ No newline at end of file
From 608a7ebf40a20bf613ab43c39cae8b71c02ea7f3 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 26 Mar 2025 01:10:13 +0800
Subject: [PATCH 20/78] Overevaluate create
---
.../1UNKNOWN/overevaluate/lang/en_us.json | 71 +++++++++++++++++++
.../1UNKNOWN/overevaluate/lang/zh_cn.json | 71 +++++++++++++++++++
2 files changed, 142 insertions(+)
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
new file mode 100644
index 000000000000..ea3497eef6e1
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
@@ -0,0 +1,71 @@
+{
+ "hexcasting.mishap.overevaluate:assert": "Assertion failed: %s.",
+ "hexcasting.mishap.overevaluate:needs_skippable": "Expected to be run inside of a skippable context.",
+ "hexcasting.mishap.overevaluate:needs_thoth": "Expected to be run inside of Thoth's Gambit.",
+ "hexcasting.mishap.overevaluate:themis": "Expected a number at the top of the Themis pseudo-stack.",
+
+ "overevaluate.page.extra_stack.title": "Extra Stack Manipulation",
+ "special.overevaluate.sekhmet": "Sekhmet's Gambit: %s",
+ "hexcasting.action.overevaluate:sekhmet": "Sekhmet' Gambit",
+ "hexcasting.special.overevaluate:sekhmet": "Sekhmet' Gambit: %s",
+ "overevaluate.page.sekhmet.0": "Voids the entire stack except for the top n iota, determined by tail length. In the examples above, zero, one, and two iota are left untouched respectively.",
+ "overevaluate.page.sekhmet.1": "This simple gambit serves as a convenient wrapper around a specific combination of $(l:patterns/stackmanip#hexcasting:stack_len)$(action)Flock's Reflection$(), $(l:patterns/lists#hexcasting:last_n_list)$(action)Flock's Gambit$(), $(l:patterns/lists#hexcasting:slice)$(action)Selection Exaltation$(), and $(l:patterns/lists#hexcasting:splat)$(action)Flock's Disintegration$(). It also pairs extremely well with $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$() to leave only the iotas I am interested in on the pseudo-stack.$(br2)$(o)Everything is possible, but not everything is necessary.$()",
+ "special.overevaluate.geb": "Geb's Gambit: %s",
+ "hexcasting.action.overevaluate:geb": "Geb's Gambit",
+ "hexcasting.special.overevaluate:geb": "Geb's Gambit: %s",
+ "overevaluate.page.geb": "Yanks the iota n from the top up to the top, determined by tail length. In the examples above, the iota second, third, and fourth from the top are yanked respectively.",
+ "special.overevaluate.nut": "Nut's Gambit: %s",
+ "hexcasting.action.overevaluate:nut": "Nut's Gambit",
+ "hexcasting.special.overevaluate:nut": "Nut's Gambit: %s",
+ "overevaluate.page.nut": "Sinks the top iota n from the top, determined by tail length. In the examples above, the iota is moved to the second, third, and fourth place from the top respectively.",
+ "hexcasting.action.overevaluate:swap_one_three": "Reflecting Gambit",
+ "overevaluate.page.swap_one_three.summary": "Reflects the order of the top three iota, turning A, B, C into C, B, A. Essentially swaps the top and the third-from-the-top iota.",
+ "hexcasting.action.overevaluate:swap_two_three": "Bubbling Gambit",
+ "overevaluate.page.swap_two_three.summary": "Causes the third-from-the-top iota to bubble up over the second-from-the-top iota, essentially swapping them.",
+ "hexcasting.action.overevaluate:dup_many": "Dioscuri Gambit II",
+ "overevaluate.page.dup_many.summary": "Takes a number and duplicates that many elements of the stack while preserving order.",
+
+ "overevaluate.page.soroban.title": "Soroban",
+ "overevaluate.page.soroban.0": "These patterns perform simple integer operations on an imaginary counter called the soroban. They may be useful when $(l:patterns/readwrite#hexcasting:local)Ravenmind$() is occupied or unnecessarily complicated, for example to count iterations in a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() loop.",
+ "hexcasting.action.overevaluate:soroban_increment": "Soroban Reflection",
+ "overevaluate.page.soroban_increment.summary": "Pushes soroban's current value and then increases it. Starts at 0.",
+ "hexcasting.action.overevaluate:soroban_decrement": "Soroban Reflection II",
+ "overevaluate.page.soroban_decrement.summary": "Pushes soroban's current value and then decreases it.",
+ "hexcasting.action.overevaluate:soroban_reset": "Soroban Gambit",
+ "overevaluate.page.soroban_reset.summary": "Resets the soroban to 0.",
+
+ "overevaluate.page.metas.title": "Advanced Metaevaluation",
+ "hexcasting.action.overevaluate:athena": "Athena's Gambit",
+ "overevaluate.page.athena.0": "Like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() but mishaps simply stop the execution and continue the _Hex without incurring the effects of the mishap. Pushes whether it mishapped.",
+ "hexcasting.action.overevaluate:athena_print": "Athena's Revelation",
+ "overevaluate.page.athena_print.0": "Prints the last mishap that was caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$().$(br2)$(o)Keep moving forward.$()",
+ "hexcasting.action.overevaluate:tutu": "Tutu's Gambit",
+ "overevaluate.page.tutu.0": "Does nothing.",
+ "overevaluate.page.tutu.1": "This pattern seems useless but is helpful in conjunction with Charon's Gambit or Janus' Gambit as the \"other branch\". Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.$(br2)$(o)The only winning move is not to play.$()",
+ "hexcasting.action.overevaluate:janus": "Janus' Gambit",
+ "overevaluate.page.janus.0": "Instantly terminates the _Hex regardless of current circumstances, breaking even through $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() and $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().",
+ "overevaluate.page.janus.1": "It's useful to end a _Hex early once it has reached some desired state, without the difficulty of using $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() because $(l:metaevals#overevaluate:janus)$(action)Janus'$() can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes'$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$().$(br2)$(o)It is always important to know when something has reached its end.$()",
+ "hexcasting.action.overevaluate:maat": "Ma'at's Gambit",
+ "overevaluate.page.maat.0": "Takes a boolean and any iota. If the boolean is false, mishaps and prints the iota.",
+ "overevaluate.page.maat.1": "This pattern is useful in order to break out of _Hexes if certain programmed conditions are not met.$(br2)$(o)Order in the court.$()",
+ "special.overevaluate.nephthys": "Nephthys' Gambit: %s",
+ "hexcasting.action.overevaluate:nephthys": "Nephthys' Gambit",
+ "hexcasting.special.overevaluate:nephthys": "Nephthys' Gambit: %s",
+ "overevaluate.page.nephthys.0": "Pops a pattern or pattern list and dives down an amount corresponding to the tail length to cast the pattern list. Useful for surgery-like operations.",
+ "overevaluate.page.nephthys.1": "It's extremely versatile and I can mend almost any error in my stack using $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit$(), pushing iota after a dive, and transforming surfaced iota. It was named after a goddess of mourning and rivers, lending to how it buries/dives down into the stack.$(br2)$(o)... the unknowns of time travel... is akin to descending blindly into the depths of the freezing water and reappearing as an acorn.$()",
+ "hexcasting.action.overevaluate:atalanta": "Atalanta's Gambit",
+ "overevaluate.page.atalanta.0": "Should only be run inside $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() or $(l:metaevals#overevaluate:sisyphus)$(action)Sisyphus' Gambit$(). Acts similarly to $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() except does not end the iterator, only skips the rest of the current iteration.",
+ "overevaluate.page.atalanta.1": "This pattern can be useful to implement \"guard clauses\" for multiconditional loops. For example, after getting a list of entities, I may want to only target entities based on some large list of conditions. Rather than a mess of deeply nested conditionals, I can simply $(o)continue$() to the next iteration if any of the conditions fail, skipping the action.$(br2)$(o)You shall not pass!$()",
+ "hexcasting.action.overevaluate:castor": "Castor's Gambit",
+ "overevaluate.page.castor.0": "Should only be run within a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$(). Details on the next page. Beware of triggering the Delve Too Deep mishap.",
+ "overevaluate.page.castor.1": "This pattern pops an iota and schedules a new iteration of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to come right after the current one, with the popped iota being the top of the stack. It may be helpful to imagine it as the iota being added to the front of the list that I provided for $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to iterate over.$(br2)$(o)Do not go where the path may lead, go instead where there is no path... and leave a trail.$()",
+ "hexcasting.action.overevaluate:pollux": "Pollux's Gambit",
+ "overevaluate.page.pollux.0": "Sibling pattern to $(l:metaevals#overevaluate:castor)$(action)Castor's Gambit$(), this pattern schedules the additional iteration for the end instead. Carries the same risk of encountering the Delve Too Deep mishap.",
+ "overevaluate.page.pollux.1": "Acts almost identically to its sibling pattern, but places the iteration at the end. I have read scrolls detailing techniques using these twin patterns called $(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)depth-first search$() and $(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)breadth-first search$().$(br2)$(o)Explore the surface before diving deep.$()",
+ "hexcasting.action.overevaluate:sisyphus": "Sisyphus' Gambit",
+ "overevaluate.page.sisyphus.0": "Takes a pattern list and casts it over and over forever until it encounters either a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() or a $(l:metaevals#overevaluate:janus)$(action)Janus' Gambit$().",
+ "overevaluate.page.sisyphus.1": "While I have heard of self-producing _Hexes called $(o)quines$() used to make infinite loops, they can be slightly unwieldy to work with. This gambit simplifies that process by just repeatedly casting a list until it runs out of evaluations or encounters a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(). The $(l:patterns/readwrite#hexcasting:local)Ravenmind$() and stack are carried across iterations.$(br2)$(o)One always finds one's burden again... One must imagine Sisyphus happy.$()",
+ "hexcasting.action.overevaluate:themis": "Themis' Gambit",
+ "overevaluate.page.themis.0": "Takes a list and a pattern or pattern list which is used to sort the list by casting over every iota similar to $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$().",
+ "overevaluate.page.themis.1": "After each iteration, it demands a number at the top of the stack which will correspond to that iota. At the end of the gambit, a list is pushed with the iota sorted by that number in increasing order. The order of identically numbered iota are kept. If it encounters $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(), it will create a sorted list with only the iota it has come across.$(br2)$(o)Shuffling is the only thing which Nature cannot undo.$()"
+}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
new file mode 100644
index 000000000000..bf9ebdfa8310
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
@@ -0,0 +1,71 @@
+{
+ "hexcasting.mishap.overevaluate:assert": "断言失败:%s。",
+ "hexcasting.mishap.overevaluate:needs_skippable": "本应在可跳过的上下文内运行。",
+ "hexcasting.mishap.overevaluate:needs_thoth": "本应在托特之策略内运行。",
+ "hexcasting.mishap.overevaluate:themis": "忒弥斯之策略的伪栈栈顶本应存在一个数。",
+
+ "overevaluate.page.extra_stack.title": "栈操作附加",
+ "special.overevaluate.sekhmet": "塞赫麦特之策略:%s",
+ "hexcasting.action.overevaluate:sekhmet": "塞赫麦特之策略",
+ "hexcasting.special.overevaluate:sekhmet": "塞赫麦特之策略:%s",
+ "overevaluate.page.sekhmet.0": "清除栈,栈顶 n 个元素除外,具体由图案的尾部长度决定。上方的示例分别会保留 0 个、1 个、2 个 iota。",
+ "overevaluate.page.sekhmet.1": "此策略的效果可通过$(l:patterns/stackmanip#hexcasting:stack_len)$(action)群体之精思$()、$(l:patterns/lists#hexcasting:last_n_list)$(action)群体之策略$()、$(l:patterns/lists#hexcasting:slice)$(action)选择之提整$()、$(l:patterns/lists#hexcasting:splat)$(action)群体之拆解$()序列简单达成,但它用起来很方便。它和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()相性极佳,适合对付那些只需返回栈顶若干元素的伪栈。$(br2)$(o)凡事都可能,但不都有必要。$()",
+ "special.overevaluate.geb": "盖布之策略:%s",
+ "hexcasting.action.overevaluate:geb": "盖布之策略",
+ "hexcasting.special.overevaluate:geb": "盖布之策略:%s",
+ "overevaluate.page.geb": "剔除栈顶往下第 n 个元素,具体由图案的尾部长度决定。上方的示例分别会剔除第 2 个、第 3 个、第 4 个 iota。",
+ "special.overevaluate.nut": "努特之策略:%s",
+ "hexcasting.action.overevaluate:nut": "努特之策略",
+ "hexcasting.special.overevaluate:nut": "努特之策略:%s",
+ "overevaluate.page.nut": "将栈顶元素沉至栈顶往下第 n 个元素处,具体由图案的尾部长度决定。上方的示例分别会沉至第 2 个、第 3 个、第 4 个 iota 处。",
+ "hexcasting.action.overevaluate:swap_one_three": "反照之策略",
+ "overevaluate.page.swap_one_three.summary": "反照栈顶三个 iota 的顺序,将 A, B, C 变为 C, B, A。相当于交换栈顶元素和栈顶往下第三元素。",
+ "hexcasting.action.overevaluate:swap_two_three": "泡浮之策略",
+ "overevaluate.page.swap_two_three.summary": "使得栈顶往下第三元素上浮过栈顶往下第二元素,相当于交换它们。",
+ "hexcasting.action.overevaluate:dup_many": "狄俄斯库里之策略,第二型",
+ "overevaluate.page.dup_many.summary": "接受一个数,并复制栈顶开始所给数个元素,保留顺序。",
+
+ "overevaluate.page.soroban.title": "珠算",
+ "overevaluate.page.soroban.0": "这些图案能操纵一个虚计数器,称作“珠算计数器”。在$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()被占用或使用起来太麻烦时,这些图案就能派上用场,比如维护$(l:patterns/meta#hexcasting:for_each)$(action)托特$()循环的迭代次数。",
+ "hexcasting.action.overevaluate:soroban_increment": "珠算之精思",
+ "overevaluate.page.soroban_increment.summary": "压入珠算计数器的当前值,而后令其增加 1。计数器自 0 起始。",
+ "hexcasting.action.overevaluate:soroban_decrement": "珠算之精思,第二型",
+ "overevaluate.page.soroban_decrement.summary": "压入珠算计数器的当前值,而后令其减少 1。",
+ "hexcasting.action.overevaluate:soroban_reset": "珠算之策略",
+ "overevaluate.page.soroban_reset.summary": "将珠算计数器重置为 0。",
+
+ "overevaluate.page.metas.title": "高阶元运行",
+ "hexcasting.action.overevaluate:athena": "雅典娜之策略",
+ "overevaluate.page.athena.0": "运行方式类似$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$(),但会在遇到事故时继续施放$(hex)咒术$(),而不会带来事故本来的后果。返回其是否招致了事故。",
+ "hexcasting.action.overevaluate:athena_print": "雅典娜之揭示",
+ "overevaluate.page.athena_print.0": "打印$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。$(br2)$(o)勇往直前。$()",
+ "hexcasting.action.overevaluate:tutu": "图图之策略",
+ "overevaluate.page.tutu.0": "什么都不会做。",
+ "overevaluate.page.tutu.1": "此图案看上去可能没什么用,但它很适合作为卡戎之策略和雅努斯之策略的“另一分支”。运行此图案不会消耗执行深度和媒质,不会产生粒子,也不会对世界产生任何影响。$(br2)$(o)唯一的取胜之道就是不要参与。$()",
+ "hexcasting.action.overevaluate:janus": "雅努斯之策略",
+ "overevaluate.page.janus.0": "立即终止当前$(hex)咒术$(),无视所有限制。不同于$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),它甚至能跳出$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()和$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()。",
+ "overevaluate.page.janus.1": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限;$(l:patterns/metaevals#overevaluate:janus)$(action)雅努斯之策略$()不受$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()影响。$(br2)$(o)It is always important to know when something has reached its end.$()",
+ "hexcasting.action.overevaluate:maat": "玛阿特之策略",
+ "overevaluate.page.maat.0": "接受一个布尔值和任意 iota。若布尔值为 False,则产生事故并打印 iota。",
+ "overevaluate.page.maat.1": "此图案很适合在某些条件未满足时跳出$(hex)咒术$()。$(br2)$(o)法庭内保持肃静。$()",
+ "special.overevaluate.nephthys": "奈芙蒂斯之策略:%s",
+ "hexcasting.action.overevaluate:nephthys": "奈芙蒂斯之策略",
+ "hexcasting.special.overevaluate:nephthys": "奈芙蒂斯之策略:%s",
+ "overevaluate.page.nephthys.0": "弹出一个图案或图案列表,在栈顶往下一定位置处施放所给图案或列表,向下的元素数即是图案尾部的长度。达成的效果与外科医师之提整类似。",
+ "overevaluate.page.nephthys.1": "这个图案非常好用,与$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()配合几乎能处理栈中的所有问题,潜入栈中后压入 iota,再处理“栈顶”的 iota。这一操作的名字来源于哀悼和河流的女神,意指其“深埋”或“潜入”栈中的操作。$(br2)$(o)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()",
+ "hexcasting.action.overevaluate:atalanta": "阿塔兰忒之策略",
+ "overevaluate.page.atalanta.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()或$(l:metaevals#overevaluate:sisyphus)$(action)西西弗斯之策略$()内部使用。效果与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()类似,但不会完全停止迭代,而只是会跳过当前迭代剩余的部分。",
+ "overevaluate.page.atalanta.1": "此图案常用作多重条件循环的“卫语句”。比如,在获取到实体列表后,可能只需根据一长串条件挑出一部分作为目标。使用此图案,即可避免造出层层嵌套的条件判断,而是在判断不通过时直接“$(o)continue$()”/“$(o)继续$()”到下一迭代,如此就无需执行本迭代内后续的语句了。$(br2)$(o)You shall not pass!$()",
+ "hexcasting.action.overevaluate:castor": "卡斯托耳之策略",
+ "overevaluate.page.castor.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()内部使用。详情见下一页。小心“钻研过深”事故。",
+ "overevaluate.page.castor.1": "此图案会出栈一个 iota,并将其作为$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()的一个新迭代项,在当前迭代结束后立即开始。该迭代的栈顶元素即为所出栈的元素。想成把 iota 放到$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()所接受的迭代列表的开头,可能会更好理解。$(br2)$(o)不要永远沿着路走,而要走无路之处……并留下你的足迹。$()",
+ "hexcasting.action.overevaluate:pollux": "波吕克斯之策略",
+ "overevaluate.page.pollux.0": "$(l:metaevals#overevaluate:castor)$(action)卡斯托耳之策略$()的兄弟图案,此图案会将新迭代置于所有迭代的末尾。同样有风险招致“钻研过深”事故。",
+ "overevaluate.page.pollux.1": "效果与其兄弟图案基本一致,但新的迭代置于末尾。我曾阅读过详细记载使用这对图案的技术的卷轴,技术的名字是$(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)深度优先搜索$()和$(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)广度优先搜索$()。$(br2)$(o)深入之前应先探索表面。$()",
+ "hexcasting.action.overevaluate:sisyphus": "西西弗斯之策略",
+ "overevaluate.page.sisyphus.0": "接受一个图案列表,并持续不断运行,直至遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()或$(l:metaevals#overevaluate:janus)$(action)雅努斯之策略$()。",
+ "overevaluate.page.sisyphus.1": "我曾听过有些能够自我复制的$(hex)咒术$(),叫做“$(o)自产生程序$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()和栈会在迭代间保留。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()",
+ "hexcasting.action.overevaluate:themis": "忒弥斯之策略",
+ "overevaluate.page.themis.0": "接受一个列表和一个图案列表,或一个列表与单个图案;在第一参数处运行第二参数,并排序结果,运行的过程与$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()类似。",
+ "overevaluate.page.themis.1": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()"
+}
From 5d43f0a4e7764275b3eca7767d61389ca8111a87 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 26 Mar 2025 01:18:50 +0800
Subject: [PATCH 21/78] DynamicTreesHexcasting create
---
.../dthexcasting/lang/en_us.json | 30 +++++++++++++++++++
.../dthexcasting/lang/zh_cn.json | 30 +++++++++++++++++++
2 files changed, 60 insertions(+)
create mode 100644 projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/en_us.json
create mode 100644 projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/zh_cn.json
diff --git a/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/en_us.json b/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/en_us.json
new file mode 100644
index 000000000000..6a6779aecd28
--- /dev/null
+++ b/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/en_us.json
@@ -0,0 +1,30 @@
+{
+ "block.dthexcasting.edified_branch":"Edified Tree",
+ "block.dthexcasting.edified_amethyst_branch":"Amethyst Edified Tree",
+ "block.dthexcasting.edified_aventurine_branch":"Aventurine Edified Tree",
+ "block.dthexcasting.edified_citrine_branch":"Citrine Edified Tree",
+ "block.dthexcasting.edified_root":"Edified Roots",
+
+ "species.dthexcasting.edified_amethyst": "Amethyst Edified Tree",
+ "species.dthexcasting.edified_aventurine": "Aventurine Edified Tree",
+ "species.dthexcasting.edified_citrine": "Citrine Edified Tree",
+
+ "dthexcasting.iota.species": "Species[%s]",
+
+ "hexcasting.mishap.invalid_value.class.species": "a species",
+ "dthexcasting.mishap.species.null": "This tree has a null species! You should never see this honestly...",
+ "dthexcasting.mishap.species.same": "%s and %s are the same species!",
+ "dthexcasting.mishap.species.transformable": "%s is not a transformable species!",
+
+ "dthexcasting.entry.tree_patterns": "Arboriculture",
+ "dthexcasting.page.tree_patterns.entry": "After years of study, I have finally crafted a few patterns to make Nature speak of its' ever-growing pillars of brown and green.$(br2)It seems to describe the structure of the trees as a $(thing)Base64 string$() and describes the type as a $(thing)Species$(). I wonder what I can do with this knowledge...",
+ "hexcasting.action.dthexcasting:get_species": "Arborist Purification",
+ "dthexcasting.page.tree_patterns.get_species": "Provided a tree's position, I can extract the $(thing)Species$() of the tree.",
+ "hexcasting.action.dthexcasting:get_jocode": "Arborist Purification II",
+ "dthexcasting.page.tree_patterns.get_jocode": "Provided a tree's position, I can extract the structure of the tree as a $(thing)Base64 string$().",
+
+ "dthexcasting.entry.tree_spells": "Arborist's Desires",
+ "dthexcasting.page.tree_spells.entry": "As I suspected, the knowledge I have pried from Nature's hands can indeed be used to influence and even restructure any tree to my hearts desire...",
+ "hexcasting.action.dthexcasting:transform": "Transform",
+ "dthexcasting.page.tree_spells.transform": "Provided a tree's position, I can command Nature to change the very $(thing)Species$() of the tree till my heart's content, provided I have the media equivalent of a Shard per character in the string which defines its' structure."
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/zh_cn.json b/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/zh_cn.json
new file mode 100644
index 000000000000..e7f40b06eef7
--- /dev/null
+++ b/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/zh_cn.json
@@ -0,0 +1,30 @@
+{
+ "block.dthexcasting.edified_branch":"启迪树",
+ "block.dthexcasting.edified_amethyst_branch":"晶紫启迪树",
+ "block.dthexcasting.edified_aventurine_branch":"砂蓝启迪树",
+ "block.dthexcasting.edified_citrine_branch":"晶黄启迪树",
+ "block.dthexcasting.edified_root":"启迪树根",
+
+ "species.dthexcasting.edified_amethyst": "晶紫启迪树",
+ "species.dthexcasting.edified_aventurine": "砂蓝启迪树",
+ "species.dthexcasting.edified_citrine": "晶黄启迪树",
+
+ "dthexcasting.iota.species": "树种[%s]",
+
+ "hexcasting.mishap.invalid_value.class.species": "一个树种",
+ "dthexcasting.mishap.species.null": "这棵树没有树种!你其实不应该看到这个的……",
+ "dthexcasting.mishap.species.same": "%s和%s是同一树种!",
+ "dthexcasting.mishap.species.transformable": "%s是不可转换的树种!",
+
+ "dthexcasting.entry.tree_patterns": "育树",
+ "dthexcasting.page.tree_patterns.entry": "在多年的研究后,我终于造出了些许图案,能让自然论及它创造的永恒生长的棕绿混色高大巨人。$(br2)自然似乎会将树木的结构描述为 $(thing)Base64 字符串$(),并将树木的品种描述为$(thing)树种$()。不知道这具体有什么用途……",
+ "hexcasting.action.dthexcasting:get_species": "树木学家之纯化",
+ "dthexcasting.page.tree_patterns.get_species": "给定树木位置,从中提取出其$(thing)树种$()。",
+ "hexcasting.action.dthexcasting:get_jocode": "树木学家之纯化,第二型",
+ "dthexcasting.page.tree_patterns.get_jocode": "给定树木位置,从中将树木的结构提取为 $(thing)Base64 字符串$()。",
+
+ "dthexcasting.entry.tree_spells": "树木学家之愿",
+ "dthexcasting.page.tree_spells.entry": "如我所推测的,我从自然那里窃来的知识确实能影响,甚至能随心重构树木……",
+ "hexcasting.action.dthexcasting:transform": "转换树木",
+ "dthexcasting.page.tree_spells.transform": "给定树木位置,命令自然改换其$(thing)树种$(),直至我满意。代表其结构的字符串中每有一个字符,均需持有相当于 1 个紫水晶碎片的媒质。"
+}
\ No newline at end of file
From dfb764fbcec03fef7b9a919f6131e349dc116711 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 26 Mar 2025 11:15:23 +0800
Subject: [PATCH 22/78] HexKeys HexKinetics Hexlink Ephemera ComplexHex Hexical
HexCassettes fix
---
.../assets/hex-keys/hexkeys/lang/en_us.json | 2 +-
.../assets/hex-keys/hexkeys/lang/zh_cn.json | 2 +-
.../hexkinetics/hexkinetics/lang/zh_cn.json | 4 +-
.../assets/hexlink/hexlink/lang/zh_cn.json | 2 +-
.../assets/ephemera/ephemera/lang/en_us.json | 26 +-
.../complexhex/lang/zh_cn.json | 6 +-
.../hexcassettes/lang/zh_cn.json | 2 +-
.../modrinth-hexical/hexical/lang/en_us.json | 1450 +++++++++--------
.../modrinth-hexical/hexical/lang/zh_cn.json | 38 +-
9 files changed, 819 insertions(+), 713 deletions(-)
diff --git a/projects/1.19/assets/hex-keys/hexkeys/lang/en_us.json b/projects/1.19/assets/hex-keys/hexkeys/lang/en_us.json
index 164ee804a8ca..2d56d76d3f4f 100644
--- a/projects/1.19/assets/hex-keys/hexkeys/lang/en_us.json
+++ b/projects/1.19/assets/hex-keys/hexkeys/lang/en_us.json
@@ -7,7 +7,7 @@
"hexkeys.entry.klein_storage": "Klein Storage",
"hexkeys.entry.visit_mindscape": "Mindscape Visitation",
"hexkeys.entry.mindscape": "Mindscape Library",
- "container.klein_storage": "Klein's Chest",
+ "container.kleins_chest": "Klein's Chest",
"hexkeys.page.kleins.1": "I seem to have found a way to convert matter into pure media while keeping its inherent properties. Sadly, it appears there is a limit to the number of items I can store in my own mind as there's only so much room up there. I call this unique form of storage the Klein chest as it's a space within my own mind that seems to empty just as much as it fills.",
"hexkeys.page.kleins.open": "The cost of using this mental storage is an amethyst shard plus a quarter of an amethyst dust per slot filled. It takes a surprisingly large amount of mental energy to recall things that shouldn't be there in the first place.",
"hexkeys.page.kleins.2": "I can feel it itching at the front of my mind... always itching... I know this discovery may lead to great convenience, but I wonder if I could use it to sooth my strained and broken mind... I'll have to decide later, I have an itch to scratch.",
diff --git a/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json b/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
index 50ae43e4be89..d800087ced3f 100644
--- a/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
+++ b/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
@@ -7,7 +7,7 @@
"hexkeys.entry.klein_storage": "克莱因存储",
"hexkeys.entry.visit_mindscape": "进入意识界",
"hexkeys.entry.mindscape": "意识界图书馆",
- "container.klein_storage": "克莱因箱",
+ "container.kleins_chest": "克莱因箱",
"hexkeys.page.kleins.1": "我似乎找到了将物质完全转换为媒质的方式,还能保留其原本的属性。但可惜,我也只能在意识中存储有限个物品,意识里只有那么多空间。我称这种独特的存储方式为“克莱因箱”,它是我意识中的空间,且腾出的空位和要存入的事物似乎完全对应。",
"hexkeys.page.kleins.open": "使用这种意识存储方式需消耗 1 个紫水晶碎片,每在一个槽位中放入物品额外消耗 1/4 个紫水晶粉。回忆出原本不存在的事物所需的意识能量相当之多。",
"hexkeys.page.kleins.2": "我的额头有点发痒……一直在痒……我懂这发现非常便捷,但我能不能用它放松放松我难堪重负的残破意识……之后再决定吧,该挠痒了。",
diff --git a/projects/1.19/assets/hexkinetics/hexkinetics/lang/zh_cn.json b/projects/1.19/assets/hexkinetics/hexkinetics/lang/zh_cn.json
index 32f950be32d5..fa24a22f5515 100644
--- a/projects/1.19/assets/hexkinetics/hexkinetics/lang/zh_cn.json
+++ b/projects/1.19/assets/hexkinetics/hexkinetics/lang/zh_cn.json
@@ -71,8 +71,8 @@
"hexkinetics.page.hexkinetics_spells.projectile/spell": "移除栈顶位置向量,选择一个弹射物物品并弹射至所给位置。目前支持如下物品:箭、药箭、光灵箭、雪球、蛋、三叉戟、末影珍珠、末影之眼、火焰弹。消耗 1 个紫水晶碎片。",
"hexkinetics.entry.rotate_spells": "转向法术",
- "hexkinetics.page.hexkinetics_spells.rotate/spell": "移除栈顶实体和向量,并将实体旋转至面向所给向量。消耗 1/8 个紫水晶粉。若对另一玩家施放则消耗 1 个紫水晶碎片。",
- "hexkinetics.page.hexkinetics_spells.rotate_two/spell": "移除栈顶实体和向量,并将实体的运动方向旋转至面向所给向量。若旋转至 [0, 0, 0] 则会使实体的速度归零。消耗 3/4 个紫水晶粉。",
+ "hexkinetics.page.rotate_spells.rotate/spell": "移除栈顶实体和向量,并将实体旋转至面向所给向量。消耗 1/8 个紫水晶粉。若对另一玩家施放则消耗 1 个紫水晶碎片。",
+ "hexkinetics.page.rotate_spells.rotate_two/spell": "移除栈顶实体和向量,并将实体的运动方向旋转至面向所给向量。若旋转至 [0, 0, 0] 则会使实体的速度归零。消耗 3/4 个紫水晶粉。",
"hexkinetics.page.rotate_spells.rotate_block/spell": "移除栈顶位置向量和方向向量,并旋转所给位置处的方块。尽管表现上和爆炸类似,但对爆炸抗性较高的方块没有效果。消耗 1/8 个紫水晶粉。",
"hexkinetics.entry.great_kinetics": "动力学",
diff --git a/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json b/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
index e6ea758a6649..3d2b5db5af75 100644
--- a/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
+++ b/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
@@ -1,7 +1,7 @@
{
"hexlink.mishap.empty_collar": "核心项圈为空",
"hexlink.mishap.no_collar_item": "未佩戴核心项圈",
- "hexlink.mishap.extractable_to": "提取水晶之类的有效提取催化物",
+ "hexlink.mishap.extractor_item": "提取水晶之类的有效提取催化物",
"hexlink.mishap.spell_holder": "可存有咒术的物品",
"hexlink.mishap.not_extractable": "该%s灵体无法被%s提取",
"hexlink.mishap.not_enough_soul": "缺少%d个灵体",
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json b/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
index 265b702301c8..1bcedbed5034 100644
--- a/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
+++ b/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
@@ -57,9 +57,18 @@
"hexcasting.action.ephemera:collisionprobe": "Clearance Purification",
"hexcasting.action.book.ephemera:collisionprobe": "Clearance Prfn.",
"hexcasting.action.ephemera:getiotasize": "Flock's Purification",
- "hexcasting.action.ephemera:getstacksizedeep": "Flock's Reflection II",
"hexcasting.action.book.ephemera:getiotasize": "Flock's Prfn.",
+ "hexcasting.action.ephemera:getstacksizedeep": "Flock's Reflection II",
"hexcasting.action.book.ephemera:getstacksizedeep": "Flock's Rfln. II",
+ "hexcasting.action.ephemera:no": "No",
+ "hexcasting.action.ephemera:getproperties": "State Purification",
+ "hexcasting.action.ephemera:getpropertyvalue": "State Distillation",
+ "hexcasting.action.ephemera:ridewisp": "Ride Wisp",
+ "hexcasting.action.ephemera:dismount": "Dismount",
+ "hexcasting.action.ephemera:getrider": "Equestrian Purification",
+ "hexcasting.action.book.ephemera:getrider": "Equestrian Prfn.",
+ "hexcasting.action.ephemera:getmount": "Equestrian Purification II",
+ "hexcasting.action.book.ephemera:getmount": "Equestrian Prfn. II",
"hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
"hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
@@ -71,6 +80,7 @@
"ephemera.mishap.toolongiota": "an iota that displays as less than 256 characters",
"hexcasting.mishap.ephemera:blacklist": "This effect has been blacklisted via tag.",
"hexcasting.mishap.ephemera:instant": "How did you even get that iota?",
+ "hexcasting.mishap.ephemera:no": "no",
"item.ephemeral.media_armor.tooltip.1": "Bestows %s %s upon the wearer.",
@@ -95,6 +105,14 @@
"ephemera.page.miscpatterns.6": "Accepts a vector, and returns whether that vector is within (or just on the edge of) the block in that space. Seems to involve the boxes I see in my mind's eye.",
"ephemera.page.miscpatterns.7": "Returns the total size of all iotas on my stack, including the contents of lists and similar. If this number ever reaches 1024, my stack shall come crashing down into garbage.",
"ephemera.page.miscpatterns.8": "Accepts any iota, and returns its total size.",
+ "ephemera.page.miscpatterns.9": "Accepts a vector, and returns a list of strings corresponding to values contained in the state of the block at the corresponding position.",
+ "ephemera.page.miscpatterns.10": "Accepts a vector and a string, and uses the string as a key to retrieve the value it corresponds to in the target block's state, or null if there is no corresponding value.",
+ "ephemera.page.miscpatterns.11": "Accepts one of my wisps (or a wandering wisp), and places me atop it, similar to sitting in a minecart. I must be within the wisp's ambit, or four blocks for wandering wisps. Costs one amethyst shard.",
+ "ephemera.page.miscpatterns.12": "I should take care not to accelerate too quickly when riding a wisp, as unlike with Impulse, the acceleration is not applied evenly across my body, and can thus cause significant harm. The threshold for how quickly I can accelerate safely seems to be about 98 m/s over one second.$(br)I should take care when mounting fast wisps, as the instantaneous velocity involved can contribute to this damage if I am too far from my final seated position.",
+ "ephemera.page.miscpatterns.13": "Takes me off of whatever entity I may be riding when cast. Costs 1/100 of a dust.",
+ "ephemera.page.miscpatterns.14": "Accepts an entity, and returns a list of entities seated atop it.",
+ "ephemera.page.miscpatterns.15": "Accepts an entity, and returns the entity it is seated atop.",
+
"ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
"ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
"ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
@@ -109,7 +127,7 @@
"ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
"ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
"ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
- "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:ephemera:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
+ "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
"ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
"ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
"ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
@@ -151,5 +169,7 @@
"text.ephemera.revealIntroduction": "Transmission from %s: ",
"text.ephemera.nosender": "unknown",
- "enchantment.ephemera.shame": "Curse of Shame"
+ "enchantment.ephemera.shame": "Curse of Shame",
+
+ "death.attack.ephemera:acceleration": "%s was subjected to lethal acceleration."
}
\ No newline at end of file
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 a9db65aef1bc..b48d5a9aa191 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
@@ -92,7 +92,7 @@
"hexcasting.mishap.invalid_value.char_or_num": "一个字符或数",
"hexcasting.mishap.bad_item.bit": "一个BIT",
- "complexhex.category.maths": "Complex Hex:数学",
+ "complexhex.category.maths": "Complex Hex 数学",
"complexhex.category.maths.desc": "这里收录了来自“数学军团”(现已解散)的文件记录。我不太清楚它们的具体用途,不过我确实$(o)想$()知道研究者们写下它们时究竟在研究什么。",
"complexhex.entry.longs": "长整型",
@@ -119,8 +119,8 @@
"hexcasting.action.complexhex:shift/right/arithmetic": "算术右移之馏化",
"complexhex.page.longs.rshift.arithmetic": "将所有位右移 num 次,且保留符号。",
- "complexhex.entry.misc": "Complex Hex:杂项",
+ "complexhex.entry.misc": "Complex Hex 杂项",
- "hexcasting.action.complexhex:ascii": "UTF之纯化",
+ "hexcasting.action.complexhex:ascii": "UTF 之纯化",
"complexhex.page.misc.ascii": "将串中的$(italics)字符$()转换为代表该字符的数,也可反方向转换。$(br)使用$(thing)UTF-16$()字符编码表。"
}
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
index bf0b4c4e76fc..03dee1e20d95 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
@@ -22,7 +22,7 @@
"hexcassettes.page.async.0": "$(hex)咒术$()会在单个时间片段内完全施放,这是它们的本性。而为延迟$(hex)咒术$(),自然设计了一套有些奇怪的方案:$(item)一盒磁带$(),需要“食用”的磁带。我最多可同时持有六盒磁带。每盒磁带都可容纳单个需延迟执行的$(hex)咒术$(),直至可以施放时再施放。此后,该$(thing)磁带$()会空出,供其他$(hex)咒术$()使用。",
"hexcassettes.page.async.craft": "为促使$(item)音乐唱片$()与$(media)媒质$()$(o)融合$(),我为其镀上了相当多的$(item)$(l:items/amethyst)充能紫水晶$()。所得的智慧结晶需要$(o)食用$(),魔法、意志、持之以恒地咀嚼,三者缺一不可;这一过程后,即可将其收作己用。",
"hexcasting.action.hexcassettes:enqueue": "入队列",
- "hexcassettes.page.enqueue.summary": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。$(hex)咒术$()会进入第一个空闲的$(thing)磁带$(),或进入当前$(thing)磁带$(),同时返回该$(thing)磁带$()的索引。",
+ "hexcassettes.page.enqueue.summary.0": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。$(hex)咒术$()会进入第一个空闲的$(thing)磁带$(),或进入当前$(thing)磁带$(),同时返回该$(thing)磁带$()的索引。",
"hexcassettes.page.async.1": "$(thing)磁带$()间使用索引数区分。索引自 0 起始,至目前意识中$(thing)磁带$()的总数之前为止。如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故:终止所有活跃中的$(thing)磁带$()。$(br2)这似乎表明我所处现实的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
"hexcassettes.page.async.2": "按下$(thing)$(k:hexcassettes.view_cassettes)$()键可以思索$(thing)磁带$(),使用方向键可循环切换。已入队列的$(hex)咒术$()会显现为插入的$(thing)磁带$(),同时在侧面显示其标签。按压$(thing)磁带$()可以取消对应$(hex)咒术$()。$(br2)死亡也会强制将所有$(thing)磁带$()清出队列。如此就无需担心了——我不会陷入无穷无尽的死亡循环了。",
"hexcassettes.page.async.3": "若$(thing)磁带$()将其自身的副本稍加改动后入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()中$(hex)咒术$()只会消耗物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 3549ce937018..22368f7a7961 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -1,679 +1,779 @@
{
- "advancements.hexical.arch_lamp.title": "守护进程",
- "advancements.hexical.arch_lamp.description": "获得大精灵神灯。",
-
- "advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
- "advancements.hexical.reload_lamp.description": "为神灯重新充能。",
- "advancements.hexical.educate_genie.title": "新秩序",
- "advancements.hexical.educate_genie.description": "向精灵传授新的指示。",
- "advancements.hexical.lamp.title": "可造之材",
- "advancements.hexical.lamp.description": "获得精灵神灯。",
- "advancements.hexical.augmented_reality.title": "增强现实",
- "advancements.hexical.augmented_reality.description": "构筑一个视斑。",
- "advancements.hexical.diy_conjuring.title": "构筑DIY!",
- "advancements.hexical.diy_conjuring.description": "为术士方块附加改进。",
- "advancements.hexical.conjure_hexxy.title": "构筑Hexxy",
- "advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态。",
- "advancements.hexical.hallucinate.title": "只在我的脑海里",
- "advancements.hexical.hallucinate.description": "播放一段只有你能听见的声音!",
- "advancements.hexical.media_slurp.title": "迷幻",
- "advancements.hexical.media_slurp.description": "“你觉得有些东西不太对劲。”",
-
- "block.hexical.hex_candle": "咒术蜡烛",
- "block.hexical.mage_block": "术师方块",
- "block.hexical.media_jar": "媒质罐",
- "death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
- "death.attack.magic_missile.item": "%1$s的魔法存在被%2$s用%3$s刺穿了",
- "death.attack.spike": "%1$s被%2$s刺穿了",
- "death.attack.spike.item": "%1$s被%2$s用%3$s刺穿了",
- "entity.hexical.living_scroll": "活线卷轴",
- "entity.hexical.magic_missile": "魔法飞弹",
- "entity.hexical.mesh": "网斑",
- "entity.hexical.speck": "视斑",
- "entity.hexical.spike": "紫水晶尖刺",
+ "advancements.hexical.arch_lamp.title": "Daemon",
+ "advancements.hexical.arch_lamp.description": "Acquire an archgenie lamp.",
+ "advancements.hexical.reload_lamp.title": "Phenomenal Cosmic Powers!",
+ "advancements.hexical.reload_lamp.description": "Reload the lamp.",
+ "advancements.hexical.educate_genie.title": "New Order",
+ "advancements.hexical.educate_genie.description": "Educate the genie with new instructions.",
+ "advancements.hexical.lamp.title": "Diamond in the Rough",
+ "advancements.hexical.lamp.description": "Acquire a genie lamp.",
+ "advancements.hexical.augmented_reality.title": "Augmented Reality",
+ "advancements.hexical.augmented_reality.description": "Conjure a speck.",
+ "advancements.hexical.diy_conjuring.title": "DIY Conjuring!",
+ "advancements.hexical.diy_conjuring.description": "Add a custom modifier to a mage block.",
+ "advancements.hexical.conjure_hexxy.title": "Conjure Hexxy",
+ "advancements.hexical.conjure_hexxy.description": "Give Hexxy a physical form in your world.",
+ "advancements.hexical.hallucinate.title": "Only In My Head",
+ "advancements.hexical.hallucinate.description": "Play a sound only you can hear!",
+ "advancements.hexical.media_slurp.title": "Tripping",
+ "advancements.hexical.media_slurp.description": "\"You sense that something is off.\"",
+
+ "block.hexical.hex_candle": "Hex Candle",
+ "block.hexical.mage_block": "Mage Block",
+ "block.hexical.media_jar": "Media Jar",
+ "block.hexical.sentinel_bed": "Sentinel Bed",
+ "death.attack.magic_missile": "%1$s was struck with arcane force by %2$s",
+ "death.attack.magic_missile.item": "%1$s was struck with arcane force by %2$s using %3$s",
+ "death.attack.spike": "%1$s was punctured by %2$s",
+ "death.attack.spike.item": "%1$s was punctured by %2$s using %3$s",
+ "effect.hexical.wooleyed": "Wooleyed",
+ "effect.hexical.wooleyed.description": "Blurs the line between my material body and the media.",
+ "entity.hexical.animated_scroll": "Animated Scroll",
+ "entity.hexical.magic_missile": "Magic Missile",
+ "entity.hexical.mesh": "Mesh",
+ "entity.hexical.speck": "Speck",
+ "entity.hexical.spike": "Amethyst Spike",
"key.categories.hexical": "Hexical",
- "key.hexical.evoke": "唤咒",
- "key.hexical.telepathy": "心灵感应",
- "item.hexical.arch_lamp": "大精灵神灯",
- "item.hexical.conjured_compass": "构筑的指南针",
- "item.hexical.conjured_staff": "构筑的法杖",
- "item.hexical.grimoire": "咒典",
- "item.hexical.hexburst": "咒术星爆糖",
- "item.hexical.hextito": "咒力多滋",
- "item.hexical.lamp": "手持式精灵神灯",
- "item.hexical.gauntlet_staff": "护手法杖",
- "item.hexical.lightning_rod_staff": "避雷针法杖",
- "item.hexical.living_scroll_small": "小型活线卷轴",
- "item.hexical.living_scroll_medium": "中型活线卷轴",
- "item.hexical.living_scroll_large": "大型活线卷轴",
+ "key.hexical.evoke": "Evoke",
+ "key.hexical.open_hexbook": "Open Hex Notebook",
+ "key.hexical.telepathy": "Call Telepathy",
+ "item.hexical.animated_scroll_small": "Small Animated Scroll",
+ "item.hexical.animated_scroll_medium": "Medium Animated Scroll",
+ "item.hexical.animated_scroll_large": "Large Animated Scroll",
+ "item.hexical.arch_lamp": "Archgenie Lamp",
+ "item.hexical.conjured_compass": "Conjured Compass",
+ "item.hexical.grimoire": "Grimoire",
+ "item.hexical.hand_lamp": "Hand Genie Lamp",
+ "item.hexical.hexburst": "Hexburst",
+ "item.hexical.hextito": "Hextito",
+ "item.hexical.gauntlet_staff": "Gauntlet Staff",
+ "item.hexical.ledger": "Ledger",
+ "item.hexical.lightning_rod_staff": "Lightning Rod Staff",
+ "item.hexical.scarab_beetle": "Scarab Beetle",
+ "item.hexical.tchotchke": "Tchotchke",
+ "item.minecraft.potion.effect.wooleyed": "Potion of Wooleyeing",
+ "item.minecraft.splash_potion.effect.wooleyed": "Splash Potion of Wooleyeing",
+ "item.minecraft.lingering_potion.effect.wooleyed": "Lingering Potion of Wooleyeing",
+ "item.minecraft.tipped_arrow.effect.wooleyed": "Arrow of Wooleyeing",
"itemGroup.hexical.general": "Hexical",
- "subtitles.hexical.evoking_murmur": "玩家:吟唱",
- "subtitles.hexical.evoking_casts": "玩家:施法",
- "subtitles.hexical.lamp_activate": "神灯:启动",
- "subtitles.hexical.lamp_deactivate": "神灯:终止",
- "subtitles.hexical.sudden_realization": "点子:出现",
- "subtitles.hexical.player_slurp": "玩家:啜饮",
- "subtitles.hexical.candle_flares": "蜡烛:噼啪作响",
- "subtitles.hexical.replenish_air": "空气:出现",
- "tooltip.hexical.scroll_aged": "陈化",
- "tooltip.hexical.scroll_glow": "发光",
- "tooltip.hexical.scroll_vanished": "隐消",
- "particle.minecraft.soul_7": "",
- "misc.hexical.media_vision": "",
-
- "hexical.autograph.header": "由以下人士亲笔签名:",
-
- "hexical.fortune.0": "必然如此。",
- "hexical.fortune.1": "绝对可以。",
- "hexical.fortune.2": "毫无疑问。",
- "hexical.fortune.3": "当然。",
- "hexical.fortune.4": "大可放心。",
- "hexical.fortune.5": "我想是的。",
- "hexical.fortune.6": "很有可能。",
- "hexical.fortune.7": "前景很好。",
- "hexical.fortune.8": "是。",
- "hexical.fortune.9": "如你所想。",
- "hexical.fortune.10": "回应不太清晰,再试一次吧。",
- "hexical.fortune.11": "请稍后再问。",
- "hexical.fortune.12": "天机不可泄露。",
- "hexical.fortune.13": "无法预测。",
- "hexical.fortune.14": "集中注意力,再问一遍。",
- "hexical.fortune.15": "想得美。",
- "hexical.fortune.16": "我看不行。",
- "hexical.fortune.17": "资料表明不行。",
- "hexical.fortune.18": "前景不太好。",
- "hexical.fortune.19": "很悬。",
-
- "hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
- "hexcasting.mishap.bad_block.mage_block": "一个术师方块",
- "hexcasting.mishap.bad_block.prestidigitation": "一个对戏法敏感的方块",
- "hexcasting.mishap.bad_item.grimoire": "一个咒典",
- "hexcasting.mishap.bad_item.firework_star": "一个烟火之星",
- "hexcasting.mishap.bad_item.has_brain": "一个能够思考的村民",
- "hexcasting.mishap.bad_item.smart_villager": "一个老手或更高等级的村民",
- "hexcasting.mishap.bad_item.lamp_full": "一个带有媒质的神灯",
- "hexcasting.mishap.bad_item.lamp": "一个空神灯",
- "hexcasting.mishap.bad_item.living_scroll": "一个活线卷轴",
- "hexcasting.mishap.bad_item.prestidigitation": "一个对戏法敏感的实体",
- "hexcasting.mishap.bad_item.mesh": "一个网斑",
- "hexcasting.mishap.bad_item.speck": "一个视斑",
- "hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
- "hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
- "hexcasting.mishap.invalid_value.solid_block": "一个非空气方块",
- "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
- "hexcasting.mishap.invalid_value.pattern_list": "一个仅由图案组成的列表",
- "hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
- "hexcasting.mishap.invalid_value.class.dye": "一个染料",
- "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
- "hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
- "hexcasting.mishap.invalid_value.true_dye": "一个有色染料",
- "hexcasting.mishap.invalid_value.to_pigment": "一个有色染料、一个代表染色剂物品的标识、一个含有染色剂的物品实体,或一个玩家",
- "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
- "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
- "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
- "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
- "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
- "hexcasting.mishap.invalid_value.potion_holding": "一个食物、药水、或药箭物品实体",
- "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
- "hexcasting.mishap.invalid_value.integer_natural": "一个大于0的整数",
- "hexcasting.mishap.invalid_value.recognizable": "一个带有额外信息的目标",
- "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
- "hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
- "hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
- "hexcasting.mishap.hexical:active_arch_lamp": "物品栏中本应有一个启动的大精灵神灯。",
- "hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
- "hexcasting.mishap.hexical:inedible": "魔袋中的物品无法食用。",
- "hexcasting.mishap.hexical:needs_chorus_fruit": "物品栏中需有紫颂果。",
- "hexcasting.mishap.hexical:needs_conjured_staff": "本应由构筑的法杖施放。",
- "hexcasting.mishap.hexical:needs_lamp": "本应由精灵神灯施放。",
- "hexcasting.mishap.hexical:needs_hand_lamp": "本应由手持式精灵神灯施放。",
- "hexcasting.mishap.hexical:needs_arch_lamp": "本应由大精灵神灯施放。",
- "hexcasting.mishap.hexical:needs_skippable": "本应使用于西西弗斯之策略或托特之策略中。",
- "hexcasting.mishap.hexical:needs_thoth": "本应使用于托特之策略中。",
- "hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
- "hexcasting.mishap.hexical:themis": "伪栈栈顶本应存在一个数。",
-
- "hexcasting.spell.book.hexical:theodolite": "经纬仪之纯化",
- "hexcasting.spell.book.hexical:damage_stack": "损耗之纯化",
- "hexcasting.spell.book.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
- "hexcasting.spell.book.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
- "hexcasting.spell.book.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
- "hexcasting.spell.book.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
- "hexcasting.spell.book.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
- "hexcasting.spell.book.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
- "hexcasting.spell.book.hexical:get_effect_amplifier": "浓度之馏化",
- "hexcasting.spell.book.hexical:get_effects_item": "处方之纯化",
- "hexcasting.spell.book.hexical:get_enchantments": "奇术师之纯化",
- "hexcasting.spell.book.hexical:breedable": "繁衍之纯化",
- "hexcasting.spell.book.hexical:get_hand_lamp_position": "精灵之精思:空间型",
- "hexcasting.spell.book.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
- "hexcasting.spell.book.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
- "hexcasting.spell.book.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
- "hexcasting.spell.book.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
- "hexcasting.spell.book.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
- "hexcasting.spell.book.hexical:get_biome": "地理之纯化",
- "hexcasting.spell.book.hexical:get_weather": "天气学家之精思",
- "hexcasting.spell.book.hexical:recognize": "识别器之纯化",
- "hexcasting.spell.book.hexical:shuffle_pattern": "图案制作师之馏化",
- "hexcasting.spell.book.hexical:zone_specklike": "区域之馏化:类视斑",
- "hexcasting.spell.book.hexical:modify_block_bouncy": "弹性",
- "hexcasting.spell.book.hexical:modify_block_energized": "激能",
- "hexcasting.spell.book.hexical:modify_block_ephemeral": "消逝",
- "hexcasting.spell.book.hexical:modify_block_invisible": "隐形",
- "hexcasting.spell.book.hexical:modify_block_replaceable": "可替",
- "hexcasting.spell.book.hexical:modify_block_semipermeable": "半透",
- "hexcasting.spell.book.hexical:modify_block_volatile": "失稳",
- "hexcasting.spell.book.hexical:read_shelf": "图书管理员之纯化,第二型",
-
- "hexical.page.hexical_changes.title": "Hexical 中的改动",
- "hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()……甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()本身也变得更可塑、更$(o)可操纵$(),产生更为精确精细的媒质效果已不是难事。",
- "hexical.page.hexical_changes.1": "我的工具也更顺手了。我注意到,使用$(l:items/staff)$(item)法杖$()时耗费的注意力减少了,我也能在使用时四处走动;之后射线追踪的时候目标就再也跑不出我的视线范围了。不过我也不能太过放松,自然对我失误的惩罚力度依然如旧。我现在还可以用$(l:patterns/readwrite#hexcasting:write)书吏之策略$()直接向$(l:items/abacus)$(item)算盘$()写入。",
- "hexical.page.lightning_rod_staff.0": "我往一支避雷针的末端嵌了一整块紫水晶,就得到了这种造型令人印象深刻的$(l:items/staff)$(item)法杖$()。它拿起来有些沉重,但用起来仿佛在$(o)号令闪电$()。",
- "hexical.page.lightning_rod_staff.1": "$(o)我知道世上有困难$(br)而且不止一种。$(br)有些自前路而来$(br)有些从身后接近。$(br2)但我买了根球棍。$(br)你看,我已经准备完毕。$(br)现在我的那些麻烦事$(br)马上就要有$(l)麻烦$()了!",
- "hexical.page.gauntlet_staff.0": "法杖很重,拿着也不趁手。如果对其失去了兴趣,可以换成这个护手一样的“$(l:items/staff)$(item)法杖$()”,以此亲手感知、亲手操控媒质。",
- "hexical.page.gauntlet_staff.1": "$(o)等等,手指是什么东西?$()",
-
- "hexical.page.grimoire.title": "咒典",
- "hexical.page.grimoire.0": "以充能紫水晶和$(l:items/edified)$(item)启迪木$()$()给$(item)附魔书$()装面,$(item)附魔书$()便能将$(media)媒质$()困在书页内部,就像一间回音室。之后可向其中引入图案至图案列表的绑定关系,以让$(item)咒典$()内部的$(media)媒质$()无限反弹。",
- "hexical.page.grimoire.1": "在物品栏中放有$(item)咒典$(),再通过$(l:items/staff)$(item)法杖$()绘制其中与图案列表关联的$(l:patterns/patterns_as_iotas)图案$(),该图案会$(o)扩展$()成对应列表,同时发出一阵微弱的$(hex)咒术$()施放声。如此就为繁重的咒术(比如射线追踪曼怛罗和大型图案)创建了捷径。$(item)咒典$()甚至能截获自然提供的图案,可以完全覆写,也可加入额外功能。$(br2)$(o)要是想读一本还没写出来的书,那就亲自去写。$()",
- "hexcasting.spell.hexical:write_grimoire": "写入咒典",
- "hexical.page.write_grimoire.summary": "向副手$(item)咒典$()写入一个图案至图案列表的绑定关系。",
- "hexcasting.spell.hexical:erase_grimoire": "擦除咒典",
- "hexical.page.erase_grimoire.summary": "若副手持有$(item)咒典$(),擦除其中相应的图案列表绑定。",
- "hexcasting.spell.hexical:index_grimoire": "档案员之精思",
- "hexical.page.index_grimoire.summary": "获取$(item)咒典$()中所有图案的列表。",
-
- "hexical.page.hex_candle.title": "咒术蜡烛",
- "hexical.page.hex_candle.0": "首次以$(l:hexical:patterns/spells/prestidigitation)魔法$()或$(item)打火石$()点燃后,这些漂亮的小蜡烛上会燃起苍白色的火焰。若有人与其交互,它会复制该人的染色剂。也可以手持染色剂物品右击直接改变它的颜色。熄灭则需潜行右击。",
-
- "hexical.page.living_scroll.title": "活线卷轴",
- "hexical.page.living_scroll.0": "活线卷轴中混有一小份紫水晶,其上墨迹会像$(l:items/staff)$(item)法杖$()绘制出的图案那样颤动。活线卷轴的神奇之处还不止于此,它还能展示图案列表。$(br2)$(o)不带点疯劲,怎么能叫作家呢?$()",
- "hexical.page.living_scroll.1": "卷轴上的图案可随意重绘,也可从卷轴中读出图案。这类卷轴只接受图案列表,单个图案 iota 会自动置入列表之中。写有图案列表时,活线卷轴会依次展示单个图案。图案每秒切换一次,所有活线卷轴都会同步切换。就算是在不同时间点向两份卷轴写入同一图案列表,最后两者也会建立同步。",
- "hexical.page.living_scroll.2": "后页记录了一些用来操纵活线卷轴的法术。再次施放法术就能消除大部分此类法术产生的效果。它们都无需消耗媒质。",
- "hexcasting.spell.hexical:age_scroll": "陈化卷轴",
- "hexical.page.age_scroll.summary": "令卷轴的纸页泛黄,产物和我找到的一些远古卷轴极为相似。",
- "hexcasting.spell.hexical:glow_scroll": "点亮墨迹",
- "hexical.page.glow_scroll.summary": "使得活线卷轴的墨迹在暗处发光。",
- "hexcasting.spell.hexical:color_scroll": "色染墨迹",
- "hexical.page.color_scroll.summary": "改变活线卷轴墨迹的颜色,具体由所给向量决定;各分量对应红、绿、蓝,取值范围为 0 到 1。",
- "hexcasting.spell.hexical:vanish_scroll": "隐消卷轴",
- "hexical.page.vanish_scroll.summary": "使得卷轴的纸张隐形,图案保留不变,看上去就像图案被蚀刻在方块表面一样。",
-
- "hexical.page.media_jar.title": "媒质罐",
- "hexical.page.media_jar.0": "我制作了这个能盛液态$(media)媒质$()的小装饰件,它会闪闪发光。但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,从而造出了瓶装的液态$(media)媒质$()。",
- "hexical.page.media_jar.1": "之前的$(hex)咒术师们$()还制造了一种类似的物品,他们通常会饮用其中液体,以此预知未来。瓶中装着的可是浸润于万事万物的思维能量,它给出的答案也许值得一听。$(br2)$(o)如你所想。$()",
-
- "hexical.category.lamp": "精灵神灯",
- "hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。传说中有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,因此我分出了这一章,用于记录我对它的研究。",
-
- "hexcasting.spell.hexical:lamp_finale": "终局之精思",
- "hexical.page.lamp_finale.hand": "放下神灯的那一刹那,神灯会额外施法一次。这个图案能判断精灵的施法是否是最后一次,并据此做出反应。",
- "hexical.page.lamp_finale.arch": "停止大精灵神灯时,它会额外施法一次。我可以使用这个图案来判断某一次施法是否是最后的残响。",
-
- "hexical.page.mysterious_lamp.title": "神秘的灯壶",
- "hexical.page.mysterious_lamp.0": "我终于找到了上千年传言中说的东西了!如此强大的物件居然是在一位流浪商人的手里。这件神灯仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。神灯里还有一个实体,它的施法能力与我相当。",
- "hexcasting.spell.hexical:educate_genie": "教导精灵",
- "hexical.page.educate_genie.summary": "将我的想法教给实体。而因为我是在$(o)教导$()实体,而非$(o)蚀刻$()$(l:items/hexcasting)$(item)施法物品$(),交予精灵的$(hex)咒术$()可在后续任意时刻任意修改,而不会因此损失$(media)媒质$()。",
-
- "hexical.page.new_possibilities.title": "全新的可能性",
- "hexical.page.new_possibilities.0": "$(o)$(l)每一时刻$()它都在施法。往里写入法术后,迎面而来的是一束精确而又永不停歇的$(media)媒质$()流。我估计施法速度大概是在每秒二十次。神灯中的存在会以极高的效率施法,并且不会像其他施法手段那样产生大量声音和粒子。",
- "hexical.page.new_possibilities.1": "我设计了一些配合神灯的有用图案,见后续页。这些图案只应该由神灯中的精灵运行,否则招致的便是“冒充精灵”事故,施法物品会脱手,并产生红色火花。$(br2)$(o)是的,但你的$(l)$(o)咒术师$()$(o)总是关注能不能做到,而不想想应不应该这么做。$()",
- "hexcasting.spell.hexical:get_hand_lamp_position": "精灵之精思:空间型",
- "hexical.page.get_hand_lamp_position.summary": "将我开始使用神灯时的位置压入栈顶。",
- "hexcasting.spell.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
- "hexical.page.get_hand_lamp_rotation.summary": "将我开始使用神灯时的朝向压入栈顶。",
- "hexcasting.spell.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
- "hexical.page.get_hand_lamp_velocity.summary": "将我开始使用神灯时的速度压入栈顶。",
- "hexcasting.spell.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
- "hexical.page.get_hand_lamp_use_time.summary": "将神灯使用的时间压入栈顶。该数除以 20 后即为开始使用神灯后经过的秒数。",
- "hexcasting.spell.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
- "hexical.page.get_hand_lamp_media.summary": "将神灯中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
- "hexcasting.spell.hexical:with_hand_lamp": "精灵之精思",
- "hexical.page.with_hand_lamp.summary": "检验当前$(hex)咒术$()是否由手持式精灵神灯施放。",
- "hexcasting.spell.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
- "hexical.page.set_hand_lamp_storage.summary": "将神灯的内部存储设为任意 iota。奇特的是,这个图案不会招致“违犯他人”事故,也许是因为使用神灯时需要我维持注意力集中吧。",
- "hexcasting.spell.hexical:set_hand_lamp_storage": "精灵之策略",
- "hexical.page.get_hand_lamp_storage.summary": "取出手持式神灯内部存储的 iota,默认返回 Null。",
-
- "hexical.page.offerings.title": "仪献意识",
- "hexical.page.offerings.0": "施放咒术会使得意识失去思考的能量,镇定知觉,麻痹神经元……真是叫人欲罢不能。对于$(l:items/staff)$(item)法杖$()、$(l:items/hexcasting)$(item)施法物品$()、法术环来说,施法的速度足够缓慢,能给意识喘息的时间;促动石则一经校准无需再次更换。不过论及神灯的施法速度,那就算是最高效的意识也难以为继。",
- "hexical.page.offerings.1": "神灯会困住精灵,向里面重新充能就会将其释放出来。因此,为精灵神灯重新充能的唯一手段,便是同时替换$(media)媒质$()$(o)和$()精灵,强令一个全新的意识代替原有的工作。用一个村民就可以了。这也是我所制造的法术的用途。$(br2)$(o)我的名字?我的名字是……哦天哪,我为什么记不起我的名字了?$()",
- "hexcasting.spell.hexical:offer_mind": "制造精灵",
- "hexical.page.offer_mind.summary": "可由我施放,能从村民那里$(o)借来$()经验和记忆,交给我副手中的神灯。图案本身需要消耗 1 个充能紫水晶,同时消耗我给予精灵的$(media)媒质$()。",
- "hexical.page.offerings.2": "值得留意的是,这个法术$(o)不会$()杀死村民,而是会从其意识中分出一部分用作精灵的替代品。村民的主意识则只会失去一部分记忆。我听过传言称,古代的$(hex)咒术师们$()会以此像种庄稼一样$(o)培育$()村民的意识,再消耗育成的意识给神灯充能,并留出时间供村民重新学习他们失去的意识。",
- "hexical.page.offerings.3": "不是所有村民都能变成精灵。我推测,那些不及老手等级的村民不具有值得使用的媒质,对他们施放的法术也会直接失效。而在将村民的大部分知识$(o)优化$()到施法方向后,专家大概不会比老手强出多少。不过,某些技能应该还是会影响到施法的质量。笔记见下页。",
- "hexical.page.offerings.4": "根深蒂固的意识和生来具有的能力似乎不受优化流程的影响。大师村民们的技艺已臻完美,知识也已烂熟于心,因此他们的施法能力有了质的飞跃。一生都在周游世界的流浪商人则极其熟稔于探索,由他们制成的神灯也会反应出这一特质。",
-
- "hexical.page.arch_lamps.title": "大精灵神灯",
- "hexical.page.arch_lamps.0": "大师级村民的意识不只是丢失意识,而是会离开身体,完全取代原本的精灵。而因为施放法术的是独立的实体,神灯应该能在我没手持的时候施法。这些大精灵神灯对应的操作是“启动”和“停止”,而非“使用”。而当其处于我物品栏中时,就算没有我的输入,它们也会每时每刻施法。",
- "hexical.page.arch_lamps.1": "大精灵神灯的输出太过庞大,甚至能令我周围的空气进入$(media)媒质$()饱和状态……不可思议。不幸的是,若在我物品栏中有两个神灯同时处于启动状态,它们的回响会相互碰撞,致使其停止,并使得物品栏中所有大精灵神灯几秒内无法使用。同一时刻应当只有一个大精灵神灯启动,但此时还可以使用一个普通神灯。",
- "hexical.page.arch_lamps.2": "$(o)我是一大团肉乎乎的东西,体表圆滑,没有嘴。原来曾经是眼睛的地方如今是两个冒着白烟的洞,两根橡胶棒似的东西曾经是我的双臂。肉向四周摊开变成一堆没有腿的肉团,柔软滑腻。$(br2)我没有嘴,但我必须呐喊。$()",
- "hexcasting.spell.hexical:activate_arch_lamp": "启动大精灵",
- "hexical.page.activate_arch_lamp.summary": "此图案可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。停止所有大精灵神灯,并启动一个先前未启动的。",
- "hexcasting.spell.hexical:terminate_arch_lamp": "终止大精灵",
- "hexical.page.terminate_arch_lamp.summary": "此图案可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。停止当前启动的大精灵神灯。",
- "hexcasting.spell.hexical:has_arch_lamp": "大精灵之纯化",
- "hexical.page.has_arch_lamp.summary": "判断玩家当前是否已启动大精灵神灯。",
- "hexcasting.spell.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
- "hexical.page.get_arch_lamp_position.summary": "将我开始使用大精灵神灯时的位置压入栈顶。",
- "hexcasting.spell.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
- "hexical.page.get_arch_lamp_rotation.summary": "将我开始使用大精灵神灯时的朝向压入栈顶。",
- "hexcasting.spell.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
- "hexical.page.get_arch_lamp_velocity.summary": "将我开始使用大精灵神灯时的速度压入栈顶。",
- "hexcasting.spell.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
- "hexical.page.get_arch_lamp_use_time.summary": "将神灯使用的时间压入栈顶。该数除以 20 后即为开始使用神灯后经过的秒数。",
- "hexcasting.spell.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
- "hexical.page.get_arch_lamp_media.summary": "将神灯中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
- "hexcasting.spell.hexical:with_arch_lamp": "大精灵之精思",
- "hexical.page.with_arch_lamp.summary": "检验当前$(hex)咒术$()是否由大精灵神灯施放。",
- "hexcasting.spell.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
- "hexical.page.get_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。获取神灯的 iota 存储。",
- "hexcasting.spell.hexical:set_arch_lamp_storage": "大精灵之策略",
- "hexical.page.set_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。设定神灯的 iota 存储。可能招致“违犯他人”事故。",
-
- "hexical.page.enlightened_patterns.title": "启迪后图案",
- "hexical.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。",
- "hexcasting.spell.hexical:am_enlightened": "显圣之纯化",
- "hexical.page.am_enlightened.summary": "检验所给玩家是否和我一样经过启迪。",
- "hexcasting.spell.hexical:is_brainswept": "感知之纯化",
- "hexical.page.is_brainswept.summary": "检验实体“是否经由魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
-
- "hexical.page.simple_patterns.title": "Hexical 图案",
- "hexcasting.spell.hexical:entity_width": "卡尺之纯化",
- "hexical.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
- "hexcasting.spell.hexical:theodolite": "经纬仪之纯化",
- "hexical.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
- "hexcasting.spell.hexical:swap_one_three": "反照之策略",
- "hexical.page.swap_one_three.summary": "反照栈顶三个 iota 的顺序,将 A, B, C 变为 C, B, A。相当于交换栈顶元素和栈顶往下第三元素。",
- "hexcasting.spell.hexical:swap_two_three": "泡浮之策略",
- "hexical.page.swap_two_three.summary": "使得栈顶往下第三元素上浮过栈顶往下第二元素,相当于交换它们。",
- "hexcasting.spell.hexical:similar": "相似之馏化",
- "hexical.page.similar.summary": "检验两个 iota 是否类型相同。",
- "hexcasting.spell.hexical:congruent": "全等之馏化",
- "hexical.page.congruent.summary": "检验两个图案是否外形相同且方向相同。",
- "hexcasting.spell.hexical:dup_many": "狄俄斯库里之策略,第二型",
- "hexical.page.dup_many.summary": "接受一个数,并复制栈顶开始所给数个元素,保留顺序。",
- "hexcasting.spell.hexical:shuffle_pattern": "图案制作师之馏化",
- "hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代咒术师会把这些图案用在某种$(o)庞大的图书馆$()中。",
-
- "hexical.page.perlin.title": "准随机",
- "hexical.page.perlin.0": "某些地点的环境$(media)媒质$()密度比其他位置高。这种密度可以测量;甚至能在时间上回溯或前进,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
- "hexcasting.spell.hexical:perlin": "柏林之馏化",
- "hexical.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
-
- "hexical.page.special_raycasts.title": "特殊射线追踪",
- "hexcasting.spell.hexical:fluid_raycast": "海军之馏化",
- "hexical.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.spell.hexical:fluid_surface_raycast": "睡莲之馏化",
- "hexical.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.spell.hexical:piercing_raycast": "轨道炮之提整",
- "hexical.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
- "hexcasting.spell.hexical:piercing_surface_raycast": "激光之提整",
- "hexical.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
-
- "hexical.page.telepathy.title": "心灵感应",
- "hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于玩家的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取或向其写入思维。",
- "hexcasting.spell.hexical:get_telepathy": "心灵感应之精思",
- "hexical.page.get_telepathy.summary": "对某种影像保持注意力,就可通过此图案探测到注意力的强度。压入我按下“心灵感应”键的时间,如果未按下则返回 -1。",
- "hexcasting.spell.hexical:send_telepathy": "传递思维",
- "hexical.page.send_telepathy.summary": "将 iota 暂时显示在快捷栏上方。如果持续施放,则每次施放都会立刻覆盖上一次的结果。",
- "hexcasting.spell.hexical:shout_telepathy": "喊出思维",
- "hexical.page.shout_telepathy.summary": "在屏幕中央显示 iota。这么做会阻碍视野,消散也要时间,因此不应经常使用。",
- "hexcasting.spell.hexical:pling": "幻听扣弦",
- "hexical.page.pling.summary": "使我听到一段扣弦声,其他玩家无法听见。",
- "hexcasting.spell.hexical:click": "幻听咔哒",
- "hexical.page.click.summary": "使我听到一段咔哒声,其他玩家无法听见。",
- "hexcasting.spell.hexical:moving_up": "突进之精思",
- "hexical.page.moving_up.summary": "压入我试图向前移动的时间,未按下“向前移动”则返回 -1。",
- "hexcasting.spell.hexical:moving_down": "后撤之精思",
- "hexical.page.moving_down.summary": "压入我试图向后移动的时间,未按下“向后移动”则返回 -1。",
- "hexcasting.spell.hexical:moving_left": "左躲之精思",
- "hexical.page.moving_left.summary": "压入我试图向左移动的时间,或返回 -1。很容易和右避之精思区分,因为左躲之精思名字里有个“左”。",
- "hexcasting.spell.hexical:moving_right": "右避之精思",
- "hexical.page.moving_right.summary": "压入我试图向右移动的时间,或返回 -1。很容易和左躲之精思区分,因为右避之精思名字里有个“右”。",
- "hexcasting.spell.hexical:jumping": "腾跃之精思",
- "hexical.page.jumping.summary": "压入我试图跳跃的时间,未按下“跳跃”则返回 -1。",
-
- "hexical.page.soroban.title": "珠算图案",
- "hexical.page.soroban.0": "这些图案能操纵一个虚计数器。在$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()被占用或用得太多时,这些图案就能派上用场,比如维护$(l:patterns/meta#hexcasting:for_each)$(action)托特$()循环的迭代次数。一些远古时代的残本推荐将其用于某种$(o)递归深度$()的统计。$(br2)需注意,它们直接用法杖绘制时无法正常工作。似乎这些存储量只会存在一瞬。",
- "hexcasting.spell.hexical:soroban_increment": "珠算之精思",
- "hexical.page.soroban_increment.summary": "压入珠算计数器当前值,而后令计数器增加 1。",
- "hexcasting.spell.hexical:soroban_decrement": "珠算之精思,第二型",
- "hexical.page.soroban_decrement.summary": "压入珠算计数器当前值,而后令计数器减少 1。",
- "hexcasting.spell.hexical:soroban_reset": "珠算之策略",
- "hexical.page.soroban_reset.summary": "重置珠算计数器。",
-
- "hexical.page.metas.title": "Hexical 元运行",
- "hexcasting.spell.hexical:janus": "雅努斯之策略",
- "hexical.page.janus.0": "立即终止当前$(hex)咒术$(),无视所有限制。不同于$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),它甚至能跳出$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()和$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()。",
- "hexical.page.janus.1": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限;$(l:hexical:patterns/metaevals#hexical:janus)$(action)雅努斯之策略$()不受$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()影响。$(br2)$(o)理解事物已然终结非常重要。$()",
- "hexcasting.spell.hexical:nephthys": "奈芙蒂斯之策略",
- "hexical.page.nephthys.0": "弹出一个图案或图案列表,在栈顶往下一定位置处施放所给图案或列表,向下的元素数即是图案尾部的长度。达成的效果与外科医师之提整类似。",
- "hexical.page.nephthys.1": "这个图案非常好用,与$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()配合几乎能处理栈中的所有问题,潜入栈中后压入 iota,再处理“栈顶”的 iota。这一操作的名字来源于哀悼和河流的女神,意指其“深埋”或“潜入”栈中的操作。$(br2)$(o)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()",
- "hexcasting.spell.hexical:sekhmet": "塞赫麦特之策略",
- "hexical.page.sekhmet.0": "清除栈,栈顶若干元素除外,具体数量由图案的尾部长度决定。上方的示例分别会保留 0 个、1 个、2 个 iota。直接绘制时$(o)不是$()元运行。",
- "hexical.page.sekhmet.1": "此策略的效果可通过$(l:patterns/stackmanip#hexcasting:stack_len)$(action)群体之精思$()、$(l:patterns/lists#hexcasting:last_n_list)$(action)群体之策略$()、$(l:patterns/lists#hexcasting:slice)$(action)选择之提整$()、$(l:patterns/lists#hexcasting:splat)$(action)群体之拆解$()序列简单达成,但这个策略使用起来相当方便。它和托特之策略相性极佳,适合对付那些只需返回栈顶若干元素、其余 iota 仅参与施放的伪栈。$(br2)$(o)凡事都可能,但不都有必要。$()",
- "hexcasting.spell.hexical:atalanta": "阿塔兰忒之策略",
- "hexical.page.atalanta.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()或$(l:hexical:patterns/metaevals#hexical:sisyphus)$(action)西西弗斯之策略$()内部使用。效果与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()类似,但不会完全停止迭代,而只是会跳过当前迭代剩余的部分。",
- "hexical.page.atalanta.1": "此图案常用作多重条件循环的“卫语句”。比如,在获取到实体列表后,可能只需根据一长串条件挑出一部分作为目标。使用此图案,即可避免造出层层嵌套的条件判断,而是在判断不通过时直接“$(o)continue$()”/“$(o)继续$()”到下一迭代,如此就无需执行本迭代内后续的语句了。$(br2)$(o)You shall not pass!$()",
- "hexcasting.spell.hexical:castor": "卡斯托耳之策略",
- "hexical.page.castor.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()内部使用。详情见下一页。小心“钻研过深”事故。",
- "hexical.page.castor.1": "此图案会出栈一个 iota,并将其作为$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()的一个新迭代项,在当前迭代结束后立即开始。该迭代的栈顶元素即为所出栈的元素。想成把 iota 放到$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()所接受的迭代列表的开头,可能会更好理解。$(br2)$(o)不要永远沿着路走,而要走无路之处……并留下你的足迹。$()",
- "hexcasting.spell.hexical:pollux": "波吕克斯之策略",
- "hexical.page.pollux.0": "$(l:hexical:patterns/metaevals#hexical:castor)$(action)卡斯托耳之策略$()的兄弟图案,此图案会将新迭代置于所有迭代的末尾。同样有风险招致“钻研过深”事故。",
- "hexical.page.pollux.1": "效果与其兄弟图案基本一致,但新的迭代置于末尾。我曾阅读过详细记载使用这对图案的技术的卷轴,技术的名字是$(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)深度优先搜索$()和$(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)广度优先搜索$()。$(br2)$(o)深入之前应先探索表面。$()",
- "hexcasting.spell.hexical:sisyphus": "西西弗斯之策略",
- "hexical.page.sisyphus.0": "接受一个图案列表,并持续不断运行,直至遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()或$(l:hexical:patterns/metaevals#hexical:janus)$(action)雅努斯之策略$()。",
- "hexical.page.sisyphus.1": "我曾听过有些能够自我复制的$(hex)咒术$(),叫做“$(o)自产生程序$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()会在迭代间保留,且每次施放均以基础栈起始。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()",
- "hexcasting.spell.hexical:themis": "忒弥斯之策略",
- "hexical.page.themis.0": "接受一个列表和一个图案列表,或一个列表与单个图案;在第一参数处运行第二参数,并排序结果,运行的过程与$(l:patterns/meta#hexcasting:for_each)托特之策略$()类似。",
- "hexical.page.themis.1": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()",
-
- "hexical.page.akashic_utils.title": "阿卡夏实用法术",
- "hexical.page.akashic_utils.0": "我发现了阿卡夏图书馆的便捷操作!右击或是$(l:hexical:patterns/spells/prestidigitation)以魔法方式$()与有内容物的阿卡夏书架交互,即可将其 iota 压入我的法杖栈。以卷轴右击可以把对应的图案复制到卷轴上。最后,我还发现了两个图案,可以直接向施法范围内的书架读写,无需消耗媒质。",
- "hexcasting.spell.hexical:key_shelf": "图书管理员之纯化",
- "hexical.page.key_shelf.summary": "读取施法范围内阿卡夏书架的键。无需消耗媒质。",
- "hexcasting.spell.hexical:read_shelf": "图书管理员之纯化,第二型",
- "hexical.page.read_shelf.summary": "读取施法范围内阿卡夏书架的 iota。无需消耗媒质。",
- "hexcasting.spell.hexical:write_shelf": "图书管理员之策略",
- "hexical.page.write_shelf.summary": "向施法范围内的阿卡夏书架写入 iota。无需消耗媒质。",
- "hexcasting.spell.hexical:clear_shelf": "图书管理员之策略,第二型",
- "hexical.page.clear_shelf.summary": "清除施法范围内给定的阿卡夏书架。无需消耗媒质。",
-
- "hexical.page.mage_block.title": "术师方块",
- "hexical.page.mage_block": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
- "hexcasting.spell.hexical:conjure_mage_block": "构筑术师方块",
- "hexical.page.conjure_mage_block.summary": "在所给位置构筑一个术师方块。消耗 3 个紫水晶粉。$(br2)$(o)我可以凭空造出一座城市,也可令其沉没于火山熔岩之中。$()",
- "hexcasting.spell.hexical:modify_block_bouncy": "改进方块:弹性",
- "hexical.page.modify_block_bouncy.summary": "此改进使得方块弹性十足!如此制成的方块的弹性比黏液块更好。同时我注意到,潜行时它也会把我弹起来。",
- "hexcasting.spell.hexical:modify_block_energized": "改进方块:激能",
- "hexical.page.modify_block_energized.summary": "带有此改进的术士方块能发出红石信号,信号强度即为所给数。",
- "hexcasting.spell.hexical:modify_block_ephemeral": "改进方块:消逝",
- "hexical.page.modify_block_ephemeral.summary": "此改进需要一个数和一个位置向量,在所给数个二十分之一秒后打碎所给位置处的方块。后续再次施法可延长或缩短等待时间。",
- "hexcasting.spell.hexical:modify_block_invisible": "改进方块:隐形",
- "hexical.page.modify_block_invisible.summary": "此改进阻止方块散发出类似施法时产生的粒子,就算站在上面也一样。",
- "hexcasting.spell.hexical:modify_block_replaceable": "改进方块:可替",
- "hexical.page.modify_block_replaceable.summary": "此改进非常适合建筑!其他方块可以直接放置在带有此改进的术师方块处。",
- "hexcasting.spell.hexical:modify_block_semipermeable": "改进方块:半透",
- "hexical.page.modify_block_semipermeable.summary": "此改进令方块变得半透,也即只会允许最后一个与其交互的施法者通过,所有其他实体则不行。",
- "hexcasting.spell.hexical:modify_block_volatile": "改进方块:失稳",
- "hexical.page.modify_block_volatile.summary": "此改进促使方块破坏与之相邻的术师方块。而当其破坏另一个失稳方块时,与其相连的所有失稳方块都会消失。",
-
- "hexical.page.dyes.title": "染料",
- "hexical.page.dyes.0": "染色法术和专用的 iota 可以用来改变方块和实体的颜色。染料 iota 代表一种颜色,也似乎同时象征着染色的$(o)可能性$()。例如,尝试获取草丛的染料会返回 Null,但获取未染色陶瓦的染料会返回$(thing)uncolored$()/$(thing)无色$(),这种染料能够“漂白”可染色方块。",
- "hexcasting.spell.hexical:get_dye": "色彩之纯化",
- "hexical.page.get_dye.summary": "获取方块、实体、标识的染料。",
- "hexcasting.spell.hexical:dye": "染色",
- "hexical.page.dye.summary": "为可染色的方块或实体染色。消耗 1/8 个紫水晶粉。",
- "hexical.page.dyes.1": "此法术的有效目标如下:床、蜡烛、插上蜡烛的蛋糕、地毯、混凝土、混凝土粉末、带釉陶瓦、沙和红沙互换、砂岩类和红砂岩类方块互换、潜影盒、染色玻璃、染色玻璃板、陶瓦、郁金香、羊毛。实体有:猫的项圈、狗的项圈、类视斑实体、潜影贝、前述方块的物品实体。",
- "hexcasting.spell.hexical:translate_dye": "视色之纯化",
- "hexical.page.translate_dye.summary": "将染料的颜色转换为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
-
- "hexical.page.pigments.title": "染色剂操纵",
- "hexical.page.pigments.0": "和通过图案操纵染料一样,染色剂也可操纵。比如说,我甚至能存储多个染色剂,再让咒术随机挑选一个给我。",
- "hexcasting.spell.hexical:to_pigment": "染色剂之纯化",
- "hexical.page.to_pigment.summary": "接受一个有色染料 iota,并转换为染色剂;接受一个玩家并返回其染色剂;或是接受一个内含染色剂的物品,并返回其染色剂。",
- "hexcasting.spell.hexical:sample_pigment": "染色剂之提整",
- "hexical.page.sample_pigment.summary": "在给定位置和时间获取染色剂颜色,返回为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
- "hexcasting.spell.hexical:take_on_pigment": "内化染色剂,第二型",
- "hexical.page.take_on_pigment.summary": "接受一个染色剂 iota 并内化它,消耗 1/8 个紫水晶粉。",
-
- "hexcasting.spell.hexical:magic_missile": "魔法飞弹",
- "hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时产生较强的击退。消耗 1 个紫水晶粉。",
- "hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
- "hexical.page.magic_missile.1": "构筑的位置本身也相当奇妙:怪不得大多数使用者都只选择在面前构筑它们。这一参数是向量,以我的头部位置为原点,我面朝的方向是 X 轴正向,头顶向上的方向是 Y 轴正向,头部向右的方向是 Z 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
-
- "hexcasting.spell.hexical:prestidigitation": "戏法",
- "hexical.page.prestidigitation.summary": "通过魔法令方块或实体产生一定回应,这种回应不会偏离方块或实体本身的性质和功能太远。消耗 1/10 个紫水晶粉。",
- "hexical.page.prestidigitation.0": "此类法术和我之前遇到过的那些很不一样。它们的效果并不单一固定,而是类似于将许多不同的简单效果综合在单个法术中。它们的有效目标涵盖了许多方块和实体,我也在积极寻找它们的用途。具体内容记在后页。",
- "hexcasting.spell.hexical:can_prestidigitate": "改易之纯化",
- "hexical.page.can_prestidigitate.summary": "检验所给实体或位置是否可受戏法操纵。",
- "hexical.page.prestidigitation.1": "我在此整理了一份经验证适用于此类法术的对象列表:打开或关闭各种材质的栅栏门、活板门、门;拨动拉杆,按压按钮;压下或松开压力板;熄灭火和灵魂火;点燃或熄灭蜡烛和营火;敲钟;为原木等去皮;雕刻南瓜;使音符盒发出声音;触发发射器和投掷器;将泥巴烤干为黏土;将大部分土壤方块变为土径,将土径变为耕地……",
- "hexical.page.prestidigitation.2": "打开或关闭红石灯;消耗炼药锅的内容物;更改红石中继器、红石比较器、阳光探测器的状态;触发或解除 TNT 和苦力怕的爆炸;为绵羊剪毛;装上或卸下盔甲架的手臂部分;使得鱿鱼喷墨;使得熊猫打喷嚏;去除雪傀儡的头套;令河豚立刻膨胀到最大;从蜂巢和蜂箱中取出蜜脾;以及触发某种“宏伟之作”,不太清楚这是在说什么。",
-
- "hexical.page.wristpocket.title": "魔袋",
- "hexical.page.wristpocket.0": "让物品消失,再让物品回来的普通魔术把戏现在已易如反掌。这些物品藏在了$(o)魔袋$()之中,可用$(media)媒质$()操控。藏入魔袋的物品在我死后依然保留,拿到$(l:items/staff)$(item)法杖$()就能取回。$(br2)$(o)因为就让事物消失是不够的;你还要把它变回来。$()",
- "hexcasting.spell.hexical:wristpocket": "藏入魔袋",
- "hexical.page.wristpocket.summary": "此法术会令另一只手中的物品组消失;也可重新让其出现,如果手中已经持有物品则会交换。消耗 1/8 个紫水晶粉。",
- "hexcasting.spell.hexical:wristpocket_item": "魔袋之精思",
- "hexical.page.wristpocket_item.summary": "返回魔袋中物品的标识,如果魔袋为空则返回 Null。",
- "hexcasting.spell.hexical:wristpocket_count": "魔袋之精思,第二型",
- "hexical.page.wristpocket_count.summary": "返回魔袋中的物品数,如果魔袋为空则返回 0。",
- "hexcasting.spell.hexical:sleight": "花招",
- "hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗 1/4 个紫水晶粉。",
- "hexical.page.sleight.0": "- 传入向量:将魔袋中的物品投放到对应位置。$(br)- 传入物品实体:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
- "hexcasting.spell.hexical:mage_hand": "法师之手",
- "hexical.page.mage_hand.summary": "构筑一只魔法手,以在世界中使用魔袋中的物品交互。如果魔袋为空,则表现为我自己与世界交互。",
- "hexical.page.mage_hand.0": "- 传入实体:使用物品与该实体交互。$(br)- 传入向量:使用物品与该处方块交互。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
- "hexcasting.spell.hexical:ingest": "同化食物",
- "hexical.page.ingest.summary": "此法术能让我吃下魔袋中的物品,填饱我的肚子,或是给予我药水效果。无论我是否吃饱,也不管食物本身要花多久才能吃下,此法术都会瞬间完成食用。",
-
- "hexical.page.specks.title": "视斑",
- "hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受施法范围限制。",
- "hexcasting.spell.hexical:conjure_speck": "构筑视斑",
- "hexical.page.conjure_speck.summary": "按照所给 iota、位置、朝向构筑视斑。消耗 1/100 个紫水晶粉。压入视斑 iota。",
- "hexcasting.spell.hexical:move_specklike": "移动视斑",
- "hexical.page.move_specklike.summary": "将视斑实体移动至所给位置。",
- "hexcasting.spell.hexical:rotate_specklike": "旋转视斑",
- "hexical.page.rotate_specklike.summary": "令视斑实体的朝向变为所给向量。",
- "hexcasting.spell.hexical:roll_specklike": "滚转视斑",
- "hexical.page.roll_specklike.summary": "接受一个 0 与 1 之间的数,用作旋转圈数,并依此旋转视斑。",
- "hexcasting.spell.hexical:iota_speck": "更改视斑",
- "hexical.page.iota_speck.summary": "更改视斑对应的 iota。",
- "hexcasting.spell.hexical:lifetime_specklike": "计时视斑",
- "hexical.page.lifetime_specklike.summary": "令视斑在所给数个二十分之一秒后消失。",
- "hexcasting.spell.hexical:size_specklike": "缩放视斑",
- "hexical.page.size_specklike.summary": "更改视斑的大小,接受 0 与 10 之间的数。此数表示以格计的大小,默认为 0。",
- "hexcasting.spell.hexical:thickness_specklike": "增粗视斑",
- "hexical.page.thickness_specklike.summary": "更改图案视斑笔触的粗细,接受 0 与 10 之间的数。此数表示以 1/20 格计的大小,默认为 0。",
- "hexcasting.spell.hexical:pigment_specklike": "染色视斑",
- "hexical.page.pigment_specklike.summary": "将染色剂施加于视斑,可在构筑后更改其颜色。",
- "hexcasting.spell.hexical:kill_specklike": "驱散视斑",
- "hexical.page.kill_specklike.summary": "强令视斑实体消失。",
- "hexcasting.spell.hexical:zone_specklike": "区域之馏化:类视斑",
- "hexical.page.zone_specklike.summary": "返回视斑实体,效果与其他$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$()类似。",
-
- "hexical.page.simple_spells.title": "Hexical 法术",
- "hexcasting.spell.hexical:autograph": "签名",
- "hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的染色剂为颜色。无需消耗媒质。",
- "hexical.page.autograph.description": "所有对物品施放过此法术的人,其名字会依次保留在物品上,且保留对应的染色剂。签过名的物品无法与未签名的物品堆叠,同种的物品也不能。同一人能给同一物品多次签名。可以当作某人认可某物的实证。$(br2)$(o)何谓成功?成功就是你的签名变成了名人签名。$()",
- "hexcasting.spell.hexical:conjure_hexburst": "构筑咒术星爆糖",
- "hexical.page.conjure_hexburst.summary": "使用所给 iota 在给定位置构筑一枚咒术星爆糖。消耗 1 个紫水晶粉。可能招致“违犯他人”事故。",
- "hexical.page.conjure_hexburst.description": "取出一个 iota,再在周围包裹$(media)媒质$(),直至它具备物理形态,就得到了可食用的咒术星爆糖。食用时,这种糖会将其中的 iota 压入食用者的栈。如果我想要交易代表我的 iota,咒术星爆糖应该会很有用。",
- "hexcasting.spell.hexical:conjure_hextito": "构筑咒力多滋",
- "hexical.page.conjure_hextito.summary": "在给定位置构筑一片咒力多滋。消耗 2 个紫水晶粉。可能招致“违犯他人”事故。",
- "hexical.page.conjure_hextito.description": "咒力多滋是一种三角形的酥脆零食。食用时,我会突然生出施放其中$(hex)咒术$()的想法,使用的是我的施法栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合简单的操作集合,比如射线追踪,和咒术星爆糖配合进行构筑更是如此。如果食用者的栈存在未闭合的内省,其中咒术便不会施放,以此保障他人使用的安全。",
- "hexcasting.spell.hexical:ghast_fireball": "构筑火球",
- "hexical.page.ghast_fireball.summary": "构筑一个易爆火球,敲击发射后能够摧毁方块。消耗 3 个紫水晶粉。",
- "hexical.page.ghast_fireball.description": "构筑出的火球只会停在空中,必须敲击或通过$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()发射出去。当然也可用同种手段更改其飞行方向。$(br2)$(o)要是不能炸坏什么东西的话,掌控宇宙平衡和知晓命运之秘又有什么好处呢?$()",
- "hexcasting.spell.hexical:gasp": "喘息",
- "hexical.page.gasp.summary": "立即填满生物的氧气条,消耗 1 个紫水晶粉。",
- "hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个紫水晶粉,因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
- "hexcasting.spell.hexical:chorus_blink": "紫颂闪现",
- "hexical.page.chorus_blink.summary": "$(l:patterns/spells/basic#hexcasting:blink)$(action)闪现$()、$(l:patterns/great_spells/teleport)$(action)卓越传送$()、$(item)末影珍珠$()、$(item)紫颂果$(),这一法术处于上述几种传送方式的中间,平衡而和谐,以其安全、精确、低消耗的传送著称。",
- "hexical.page.chorus_blink.description": "此图案需消耗物品栏中的一个$(item)紫颂果$(),并根据偏移向量传送最多 16 格。无论传送满 16 格还是不到 16 格,消耗均为 1 个紫水晶粉,且单个咒术中使用多次不会有惩罚。神奇的是,重复施放此法术不会因为超出施法范围而终止咒术,这是因为每次$(o)闪现$()都会将施法范围移至新位置。$(br2)$(o)我一眨眼就能到了。$()",
-
- "hexical.page.conjure_compass.title": "构筑指南针",
- "hexcasting.spell.hexical:conjure_compass": "构筑指南针",
- "hexical.page.conjure_compass.summary": "在给定位置构筑一个指南针,它指向第二向量处。消耗 3 个紫水晶粉。",
- "hexical.page.conjure_compass.description": "指南针并不会记忆它构筑时所处的维度,也即在所有维度中,它都指向同一位置。以书吏之精思读取,会获得指向目标位置的单位向量。$(br2)$(o)对头,指北针不指北方。但我们根本没在找北方啊!$()",
-
- "hexical.page.spike.title": "构筑尖刺",
- "hexical.page.spike.0": "我曾听过有一位灾厄村民术士能在地上构筑尖牙。要相信“村民能操控$(media)媒质$()”这种说法很难,但从其中获取灵感还是可行的。我依此制造出了这条法术,能够从地下升起尖刺刺穿目标。",
- "hexcasting.spell.hexical:spike": "构筑尖刺",
- "hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗 1 个紫水晶碎片。",
- "hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会造成高达三颗心的伤害。在已经触发尖刺的位置试图重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
-
- "hexical.page.conjure_staff.title": "构筑法杖",
- "hexical.page.conjure_staff.0": "构筑的法杖和$(l:items/hexcasting)$(item)杂件$()比较相像。它们都有施法用的媒质储库,该储库耗尽后也不会消耗我的生命值和物品栏中的$(media)媒质$()物品。它们都无法重新充能,无法重新写入,对其使用$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()也都会将其毁灭。这种法杖的真正力量在于$(o)输入拦截$()。",
- "hexcasting.spell.hexical:conjure_staff": "构筑法杖",
- "hexical.page.conjure_staff.summary": "在所给位置处使用给定$(media)媒质$()量、位阶、$(hex)咒术$()构筑$(item)法杖$()。$(br2)$(o)这是我的$(l)法杖$()$(o)。虽有很多相似的,但这一把是我的。$()",
- "hexical.page.conjure_staff.1": "手持构筑法杖时,它会拦截按下首选或次选“使用”按键的事件,阻止我与世界交互。拦截次数达到构筑时给定的位阶后,它便会施放给定的$(hex)咒术$(),同时根据按下左键或右键分别以 False 或 True 作为起始栈。如果按键之间间隔过久,当次“施法”便会直接取消。",
- "hexical.page.conjure_staff.2": "此法术并不昂贵,仅需消耗 1 个紫水晶碎片,同时消耗媒质储库所需的$(media)媒质$()量。所得产物操作便捷、反应迅速,具有多种用途,变化的可能性无穷无尽,且不像其他$(l:items/hexcasting)$(item)施法物品$()那样需要冷却时间。$(br2)这种法杖的能力还不止于此,它们还拥有一个仅对法杖自身开放的 iota 存储位置。",
- "hexcasting.spell.hexical:read_staff": "法杖之精思",
- "hexical.page.read_staff.summary": "从$(item)构筑的法杖$()的内部存储读出 iota。",
- "hexcasting.spell.hexical:write_staff": "法杖之策略",
- "hexical.page.write_staff.summary": "向$(item)构筑的法杖$()的内部存储写入 iota,不接受代表玩家的 iota。",
- "hexcasting.spell.hexical:with_conjured_staff": "魔杖之精思",
- "hexical.page.with_conjured_staff.summary": "检验当前$(hex)咒术$()是否由构筑的法杖施放。",
- "hexical.page.conjure_staff.3": "副手持有特定物品时构筑$(item)法杖$(),则所得$(item)法杖$()的外形会与该物品靠拢。目前我发现的物品与外形对应关系为:小麦(四叶草),鹦鹉螺壳(螺壳),钟(手摇铃),绊线钩(钥匙),玻璃(镜子)。",
-
- "hexical.page.pyrotechnics.title": "烟花工艺",
- "hexical.page.pyrotechnics.0": "我发现了一些构筑烟花的法术。$(media)媒质$()在这些图案周围欢欣地嗡鸣着,就好像它们曾用于庆典一样;它们用作武器的威力也可谓令人震悚。$(br2)$(o)什么都别说了。先欣赏烟花吧。$()",
- "hexcasting.spell.hexical:simulate_firework": "模拟烟花",
- "hexical.page.simulate_firework.summary": "分析另一只手中的烟火之星,并构筑一道烟花,位置、速度、与火药量有关的飞行时间均由烟火之星决定。消耗 1 个紫水晶碎片,每份火药额外消耗 1 个紫水晶粉。",
- "hexcasting.spell.hexical:conjure_firework": "构筑烟花",
- "hexical.page.conjure_firework.summary": "$(br)根据我给定的参数构筑一道烟花。这是我迄今为止发现的最复杂的法术之一。消耗量与其他烟花法术一致。",
- "hexical.page.conjure_firework.0": "$(o)基础理论$()$(br2)前两个参数分别是位置和速度。第三个参数决定其飞行时间,需是 1 与 3 之间的数。可以认为是加入烟花火箭的火药份数。$(br2)剩余的参数可看作虚拟烟火之星的各特征。",
- "hexical.page.conjure_firework.1": "$(o)形状效果$()$(br2)第四个参数控制烟花的形状,需是 0 与 3 之间的数。$(br)- 0 对应简单的小型球状效果。$(br)- 1 对应大型球状效果。$(br)- 2 对应星形效果。$(br)- 3 对应大型苦力怕状效果。",
- "hexical.page.conjure_firework.2": "$(o)颜色$()$(br2)第五和第六个参数是$(l:hexical:patterns/spells/dyes)染料$()列表。第一个列表控制烟花的“初始”颜色,第二个列表控制烟花消散时的“渐变”颜色。第一列表中需至少含有一个染料;若不需“渐变”,第二个列表可以留空。",
- "hexical.page.conjure_firework.3": "$(o)附加效果$()$(br2)第七个参数控制烟花粒子是否闪烁,相当于加入荧石与否。$(br2)第八个参数控制烟花粒子是否留下踪迹,相当于加入钻石与否。",
-
- "hexical.page.circle_spells.title": "法术环法术",
- "hexical.page.circle_spells.0": "媒质流穿梭于法术环中,法术环囊括的区域因而充盈着$(media)媒质$(),灵活控制其中事物也就不再是难事。我将我所遇到或创造的法术记在后页,它们只可由$(l:greatwork/spellcircles)法术环$()施放。",
- "hexcasting.spell.hexical:displace": "转移",
- "hexical.page.displace.summary": "无需任何媒质,就可将实体传送至环中任意一处。与$(l:patterns/great_spells/teleport)$(action)卓越传送$()不同在于,此法术接受的是绝对坐标。",
-
- "hexical.page.evocation.title": "唤咒",
- "hexical.page.evocation.0": "媒质是思维的能量,则逻辑推理可得,我应当能够直接把$(o)脑海中$()的魔法变为现实,而不需要挥舞法杖,毕竟我在最优状态下相当于 2 个充能紫水晶,是$(l:items/staff)$(item)法杖$()的两倍。我的意识目前还不够强大,无法随意将想法化作现实,不过已蚀刻入意识的$(hex)咒术$()还是可以的。这么做会消耗我物品栏中的$(media)媒质$()。",
- "hexcasting.spell.hexical:internalize_hex": "内化咒术",
- "hexical.page.internalize_hex.summary": "内化一份$(hex)咒术$(),此后按住“R”键 1 秒即可唤咒施放,不需持有法杖。内化过程消耗 1 个充能紫水晶。",
- "hexcasting.spell.hexical:is_evoking": "唤魔者之精思",
- "hexical.page.is_evoking.summary": "压入玩家唤咒的时间,未在唤咒则为 -1。",
- "hexcasting.spell.hexical:with_evocation": "唤咒之精思",
- "hexical.page.with_evocation.summary": "检验当前咒术是否使用唤咒施放。",
- "hexical.page.evocation.1": "记载有这项技术的古代文本还写有其他琐事。曾经的$(hex)咒术师们$()唤咒时无需施放$(hex)咒术$(),而是会在某种集会或集体仪式中合唱。也有人曾试验过,是否有法术能将$(hex)咒术$()蚀刻入$(o)村民$(),以给予他们操控$(media)媒质$()的手段。但这些试验的结果从未见诸文献,抑或是已经散佚殆尽。",
-
- "hexcasting.spell.hexical:greater_blink": "卓越闪现",
- "hexical.page.greater_blink.0": "卓越闪现比卓越传送要便宜许多。它不具有抵达时全身物品散落的风险。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
- "hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗 2 个紫水晶粉。",
- "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往我面朝的方向传送 1 格。向量 (0, 1, 0) 会往我头顶的法向传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。",
- "hexical.page.greater_blink.2": "奇特的是,这一闪现会将我的足部移动至该位置,也许能够少去射线追踪后传送到方块内部的麻烦。如果我需要进行多次闪现,则这一特性必须纳入考量范围。$(br2)$(o)长跳特!比你想的还要久——$()",
-
- "hexical.page.meshes.title": "网斑",
- "hexical.page.meshes.0": "网斑是$(l:hexical:patterns/spells/specks)视斑$()的进化形态。不会再受 iota 和图案的限制,也无需屈居于二维平面,网斑接受三维空间中的向量列表,由此带来的创意无穷无尽。网斑也会对大多数操纵视斑的图案有反应。",
- "hexcasting.spell.hexical:conjure_mesh": "构筑网斑",
- "hexical.page.conjure_mesh.summary": "在所给位置构筑一个网斑,并压入一个网斑实体。消耗 1 个紫水晶粉。",
- "hexical.page.meshes.1": "网斑只在编织后才有外形。用以构筑网斑的向量列表无需遵守太多规则:列表的长度不能超出 32 个向量,向量的模长也必须小于 10。网斑会将各向量识别为相对向量,而后依次连接它们。",
- "hexcasting.spell.hexical:weave_mesh": "编织网斑",
- "hexical.page.weave_mesh.summary": "接受一个向量列表,需遵守前页指定的规则,并将网斑编织成所给形状,无需消耗媒质。",
- "hexcasting.spell.hexical:read_mesh": "纠缠之纯化",
- "hexical.page.read_mesh.summary": "读取网斑的外形,返回相对向量列表。可用于复制网斑。",
-
- "hexical.category.scrying": "探知",
- "hexical.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。这些图案可用来卜取一系列信息,方块和实体的类型、药水效果、天气、食物的营养、我在疾跑与否、$(o)方块的爆炸抗性$()等都在其列。虽然这些操作可能不如其他大多数$(hex)咒术$()用处大,但有它们在也不错,我将来也许会用到。",
-
- "hexical.page.blocks.title": "方块",
- "hexcasting.spell.hexical:block_hardness": "矿工之纯化",
- "hexical.page.block_hardness.summary": "压入挖掘给定方块的难易程度。",
- "hexcasting.spell.hexical:block_blast_resistance": "爆破兵之纯化",
- "hexical.page.block_blast_resistance.summary": "压入方块对爆炸的抗性。",
- "hexcasting.spell.hexical:blockstate_waterlogged": "管道工之纯化",
- "hexical.page.blockstate_waterlogged.summary": "检验方块是否含水。若方块无法含水,则返回 Null。",
- "hexcasting.spell.hexical:blockstate_rotation": "方向之纯化",
- "hexical.page.blockstate_rotation.summary": "压入方块的朝向向量。若方块无朝向向量,则返回 Null。",
- "hexcasting.spell.hexical:blockstate_crop": "农夫之纯化",
- "hexical.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的成熟程度,对蜂巢、堆肥桶、炼药锅同样有效。奇怪的是,对蛋糕也有效。",
- "hexcasting.spell.hexical:blockstate_glow": "发光之纯化",
- "hexical.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有熔炉、红石火把、灯笼、营火等。",
- "hexcasting.spell.hexical:blockstate_lock": "锁之纯化",
- "hexical.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有门、活板门、栅栏门、木桶等。",
- "hexcasting.spell.hexical:blockstate_turn": "角度之纯化",
- "hexical.page.blockstate_turn.summary": "压入一个数,对应告示牌、头颅、旗帜的旋转方向。",
- "hexcasting.spell.hexical:blockstate_bunch": "叠放之纯化",
- "hexical.page.blockstate_bunch.summary": "返回方块的叠放数,无法叠放则返回 Null。仅对蜡烛、海泡菜、海龟蛋有效。",
- "hexcasting.spell.hexical:blockstate_book": "书之纯化",
- "hexical.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。有传言称对某种奇妙的书架也有效。",
-
- "hexical.page.enchantments.title": "魔咒",
- "hexcasting.spell.hexical:get_enchantments": "奇术师之纯化",
- "hexical.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
- "hexcasting.spell.hexical:get_enchantment_strength": "咒能之馏化",
- "hexical.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
-
- "hexical.page.entities.title": "实体",
- "hexcasting.spell.hexical:get_health": "生命力之纯化",
- "hexical.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
- "hexcasting.spell.hexical:get_max_health": "健康之纯化",
- "hexical.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
- "hexcasting.spell.hexical:get_air": "窒息之纯化",
- "hexical.page.get_air.summary": "压入实体距离窒息剩余的秒数。对脱水的鱼和溺水的陆地生物均有效。",
- "hexcasting.spell.hexical:get_max_air": "双肺之纯化",
- "hexical.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少秒开始窒息。",
- "hexcasting.spell.hexical:get_player_hunger": "饥饿之纯化",
- "hexical.page.get_player_hunger.summary": "返回玩家实体的饥饿值。",
- "hexcasting.spell.hexical:get_player_saturation": "耐力之纯化",
- "hexical.page.get_player_saturation.summary": "返回我的饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.spell.hexical:is_burning": "炼狱之纯化",
- "hexical.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
- "hexcasting.spell.hexical:burning_time": "炼狱之纯化,第二型",
- "hexical.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余的时间。",
- "hexcasting.spell.hexical:is_wet": "末影人之纯化",
- "hexical.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
- "hexcasting.spell.hexical:is_baby": "青春之纯化",
- "hexical.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对盔甲架也有效。",
- "hexcasting.spell.hexical:breedable": "繁衍之纯化",
- "hexical.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 Null。",
- "hexcasting.spell.hexical:is_sleeping": "树懒之纯化",
- "hexical.page.is_sleeping.summary": "检验实体是否在睡眠状态。对玩家、猫、狐狸、以及一系列其他生物有效。",
- "hexcasting.spell.hexical:is_sprinting": "赛车手之纯化",
- "hexical.page.is_sprinting.summary": "检验实体是否在疾跑。速泳和疾跑后离地均算作疾跑,对猫、狐狸等也有效。",
-
- "hexical.page.food.title": "食物",
- "hexcasting.spell.hexical:edible": "可食性之纯化",
- "hexical.page.edible.summary": "接受一个物品标识,检验它是否可食用。",
- "hexcasting.spell.hexical:get_hunger": "卡路里之纯化",
- "hexical.page.get_hunger.summary": "接受一个物品标识,返回它带来的饱腹感的量。",
- "hexcasting.spell.hexical:get_saturation": "饱和之纯化",
- "hexical.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.spell.hexical:is_meat": "肉类之纯化",
- "hexical.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类(狼能否食用)。",
- "hexcasting.spell.hexical:is_snack": "甜点之纯化",
- "hexical.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食(可以迅速食用)。",
-
- "hexical.page.identifiers.title": "标识",
- "hexical.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
- "hexcasting.spell.hexical:identify": "侦探之纯化",
- "hexical.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
- "hexical.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
- "hexcasting.spell.hexical:recognize": "识别器之纯化",
- "hexical.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
- "hexcasting.spell.hexical:get_mainhand_stack": "工具之纯化",
- "hexical.page.get_mainhand_stack.summary": "返回主手物品的类型。",
- "hexcasting.spell.hexical:get_offhand_stack": "配饰之纯化",
- "hexical.page.get_offhand_stack.summary": "返回副手物品的类型。",
-
- "hexical.page.item.title": "物品",
- "hexcasting.spell.hexical:count_stack": "仓储之纯化",
- "hexical.page.count_stack.summary": "接受一个物品实体,返回其中物品数量。",
- "hexcasting.spell.hexical:count_max_stack": "库房之纯化",
- "hexical.page.count_max_stack.summary": "接受一个物品实体,返回其中最多可堆叠多少物品。",
- "hexcasting.spell.hexical:damage_stack": "损耗之纯化",
- "hexical.page.damage_stack.summary": "接受一个物品实体,返回物品剩余的耐久度。",
- "hexcasting.spell.hexical:damage_max_stack": "脆弱性之纯化",
- "hexical.page.damage_max_stack.summary": "接受一个物品实体,返回物品的耐久度上限。",
-
- "hexical.page.status_effects.title": "状态效果",
- "hexcasting.spell.hexical:get_effects_entity": "诊断之纯化",
- "hexical.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
- "hexcasting.spell.hexical:get_effects_item": "处方之纯化",
- "hexical.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
- "hexcasting.spell.hexical:get_effect_category": "药性之纯化",
- "hexical.page.get_effect_category.summary": "获取某效果对承受者造成效应“良性”与否。-1 为负面,0 为中性,1 为正面。",
- "hexcasting.spell.hexical:get_effect_amplifier": "浓度之馏化",
- "hexical.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 Null。",
- "hexcasting.spell.hexical:get_effect_duration": "效除之馏化",
- "hexical.page.get_effect_duration.summary": "获取效果的持续时间,以秒计,无给定效果则返回 Null。",
-
- "hexical.page.world.title": "世界",
- "hexcasting.spell.hexical:get_light": "光照之纯化",
- "hexical.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
- "hexcasting.spell.hexical:get_weather": "天气学家之精思",
- "hexical.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
- "hexcasting.spell.hexical:get_time": "时间之精思",
- "hexical.page.get_time.summary": "压入世界经过的时间,以秒计。",
- "hexcasting.spell.hexical:get_biome": "地理之纯化",
- "hexical.page.get_biome.summary": "返回给定位置向量处生物群系的标识。",
- "hexcasting.spell.hexical:get_dimension": "位面之精思",
- "hexical.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。"
+ "stat.hexical.evocation": "Times Wololoed",
+ "subtitles.hexical.amethyst_melt": "Amethyst melts",
+ "subtitles.hexical.item_dunks": "Item submerges",
+ "subtitles.hexical.evoking_murmur": "Player chants",
+ "subtitles.hexical.evoking_casts": "Player casts",
+ "subtitles.hexical.lamp_activate": "Lamp activates",
+ "subtitles.hexical.lamp_deactivate": "Lamp deactivates",
+ "subtitles.hexical.player_slurp": "Player slurps",
+ "subtitles.hexical.replenish_air": "Air appears",
+ "subtitles.hexical.scarab_chirps": "Scarab chirps",
+ "subtitles.hexical.sudden_realization": "Idea pops",
+ "tooltip.hexical.scroll_aged": "Aged",
+ "tooltip.hexical.scroll_glow": "Glowing",
+ "tooltip.hexical.scroll_vanished": "Vanished",
+
+ "hexical.autograph.header": "Autographed by:",
+ "hexical.cracked.cracked": "Cracked",
+ "hexical.cracked.program": "Hex: ",
+ "hexical.grimoire.contains": "Contains bindings for ",
+ "hexical.scarab.program": "Contains %s",
+ "hexical.recipe.transmute.media_free": "Free",
+ "hexical.recipe.transmute.media_cost": "Costs %s dust",
+ "hexical.recipe.transmute.media_yield": "Yields %s dust",
+ "hexical.ledger.stack": "Last Stack Before Mishap:",
+ "hexical.ledger.mishap": "Last Mishap Message:",
+
+ "hexcasting.mishap.bad_block.akashic_bookshelf": "an akashic bookshelf",
+ "hexcasting.mishap.bad_block.mage_block": "a mage block",
+ "hexcasting.mishap.bad_block.prestidigitation": "a prestidigitation-sensitive block",
+ "hexcasting.mishap.bad_block.slate": "a slate block",
+ "hexcasting.mishap.bad_block.flower_spawnable": "air or a flower pot",
+ "hexcasting.mishap.bad_block.solid_platform": "a solid platform",
+ "hexcasting.mishap.bad_item.animated_scroll": "an animated scroll",
+ "hexcasting.mishap.bad_item.anything": "any item",
+ "hexcasting.mishap.bad_item.casting_device": "a device capable of casting Hexes",
+ "hexcasting.mishap.bad_item.firework_star": "a firework star",
+ "hexcasting.mishap.bad_item.grimoire": "a grimoire",
+ "hexcasting.mishap.bad_item.has_brain": "a villager capable of thought",
+ "hexcasting.mishap.bad_item.autographed": "an autographed item",
+ "hexcasting.mishap.bad_item.hand_lamp": "a Hand Genie Lamp",
+ "hexcasting.mishap.bad_item.lamp": "a lamp",
+ "hexcasting.mishap.bad_item.mesh": "a mesh",
+ "hexcasting.mishap.bad_item.prestidigitation": "a prestidigitation-sensitive entity",
+ "hexcasting.mishap.bad_item.scarab_beetle": "a scarab beetle",
+ "hexcasting.mishap.bad_item.smart_villager": "a Journeyman or greater level villager",
+ "hexcasting.mishap.bad_item.speck": "a speck",
+ "hexcasting.mishap.bad_item.specklike": "a specklike entity",
+ "hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
+ "hexcasting.mishap.invalid_value.horizontal_axis_vector": "a horizontal axis vector",
+ "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
+ "hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
+ "hexcasting.mishap.invalid_value.class.dye": "a dye",
+ "hexcasting.mishap.invalid_value.class.identifier": "an identifier",
+ "hexcasting.mishap.invalid_value.class.pigment": "a pigment",
+ "hexcasting.mishap.invalid_value.conjurable_flower_id": "an identifier of a conjurable flower type",
+ "hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
+ "hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
+ "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
+ "hexcasting.mishap.invalid_value.integer_natural": "an integer greater than 0",
+ "hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
+ "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
+ "hexcasting.mishap.invalid_value.mesh_design": "a list of up to 32 vectors with magnitudes less than 10",
+ "hexcasting.mishap.invalid_value.nonempty_list": "a non-empty list",
+ "hexcasting.mishap.invalid_value.number_list": "a non-empty list of numbers",
+ "hexcasting.mishap.invalid_value.null_or_pattern": "null or a pattern",
+ "hexcasting.mishap.invalid_value.number_or_vector": "a number or a vector",
+ "hexcasting.mishap.invalid_value.potion_holding": "a food, potion, or tipped arrow item entity",
+ "hexcasting.mishap.invalid_value.recognizable": "a target with extra information",
+ "hexcasting.mishap.invalid_value.small_vector": "a vector of length 2 or less",
+ "hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
+ "hexcasting.mishap.invalid_value.to_pigment": "a colored dye, identifier of a pigment item, an item entity containing a pigment, or a player",
+ "hexcasting.mishap.invalid_value.true_dye": "a colored dye",
+ "hexcasting.mishap.invalid_value.true_dye_list": "a list of colored dyes",
+ "hexcasting.mishap.hexical:active_arch_lamp": "Expected to be cast by an Archgenie Lamp or an Archgenie Lamp in the caster's inventory.",
+ "hexcasting.mishap.hexical:can_not_dye": "Expected a dyeable target",
+ "hexcasting.mishap.hexical:inedible": "Wristpocketed item is not edible.",
+ "hexcasting.mishap.hexical:magic_missile_coordinates": "Could not identify any form of spatial axis.",
+ "hexcasting.mishap.hexical:needs_staff": "Expected to be cast by a staff.",
+ "hexcasting.mishap.hexical:needs_lamp": "Expected to be cast by a genie.",
+ "hexcasting.mishap.hexical:needs_hand_lamp": "Expected to be cast by a hand genie.",
+ "hexcasting.mishap.hexical:outside_circle": "Spell exceeds the domain of the spell circle.",
+ "hexcasting.mishap.hexical:illegal_jailbreak": "Attempted to crack a casting device with a Hex in it.",
+
+ "hexcasting.action.book.hexical:get_arch_lamp_position": "Arch. Refl.: Spatial",
+ "hexcasting.action.book.hexical:get_arch_lamp_rotation": "Arch. Refl.: Rotational",
+ "hexcasting.action.book.hexical:get_arch_lamp_velocity": "Arch. Refl.: Kinetic",
+ "hexcasting.action.book.hexical:get_arch_lamp_use_time": "Arch. Refl.: Temporal",
+ "hexcasting.action.book.hexical:get_arch_lamp_media": "Arch. Refl.: Media",
+ "hexcasting.action.book.hexical:get_arch_lamp_storage": "Arch. Refl.: Memory",
+ "hexcasting.action.book.hexical:get_effect_amplifier": "Concentration Dstl.",
+ "hexcasting.action.book.hexical:get_effects_item": "Prescription Purif.",
+ "hexcasting.action.book.hexical:get_enchantments": "Thaumaturgist's Purif.",
+ "hexcasting.action.book.hexical:breedable": "Reproduction Purif.",
+ "hexcasting.action.book.hexical:get_hand_lamp_position": "Genie Refl.: Spatial",
+ "hexcasting.action.book.hexical:get_hand_lamp_rotation": "Genie Refl.: Rotational",
+ "hexcasting.action.book.hexical:get_hand_lamp_velocity": "Genie Refl.: Kinetic",
+ "hexcasting.action.book.hexical:get_hand_lamp_use_time": "Genie Refl.: Temporal",
+ "hexcasting.action.book.hexical:get_hand_lamp_media": "Genie Refl.: Media",
+ "hexcasting.action.book.hexical:get_hand_lamp_storage": "Genie Refl.: Memory",
+ "hexcasting.action.book.hexical:nephthys": "Nephthys's Gambit",
+ "hexcasting.action.book.hexical:sekhmet": "Sekhmet's Gambit",
+ "hexcasting.action.book.hexical:serialize_pattern": "Chirographer's Purif.",
+ "hexcasting.action.book.hexical:deserialize_pattern": "Calligrapher's Purif.",
+ "hexcasting.action.book.hexical:shuffle_pattern": "Glyphmaker's Dstl.",
+ "hexcasting.action.book.hexical:read_shelf": "Librarian's Purif. II",
+ "hexcasting.action.book.hexical:zone_specklike": "Zone Dstl.: Specklike",
+ "hexcasting.action.book.hexical:modify_block_bouncy": "Bouncy",
+ "hexcasting.action.book.hexical:modify_block_energized": "Energized",
+ "hexcasting.action.book.hexical:modify_block_ephemeral": "Ephemeral",
+ "hexcasting.action.book.hexical:modify_block_invisible": "Invisible",
+ "hexcasting.action.book.hexical:modify_block_replaceable": "Replaceable",
+ "hexcasting.action.book.hexical:modify_block_volatile": "Volatile",
+ "hexcasting.action.book.hexical:theodolite": "Theodolite Purif.",
+ "hexcasting.action.book.hexical:identify": "Detective's Purif.",
+ "hexcasting.action.book.hexical:recognize": "Recognizer's Purif.",
+ "hexcasting.action.book.hexical:damage_stack": "Deterioration Purif.",
+ "hexcasting.action.book.hexical:classify": "Modicum Purif.",
+ "hexcasting.action.book.hexical:get_biome": "Geographical Purif.",
+ "hexcasting.action.book.hexical:get_weather": "Meterologist's Refl.",
+
+ "hexical.page.hexical_changes.title": "Hexical Changes",
+ "hexical.page.hexical_changes.0": "I feel strangely more in tune with the ambient _media around me. It feels $(o)friendlier$() somehow. I can even feel it rippling around me, responding to my actions, as if engaging with me. The _media also feels more malleable, more $(o)workable$(); I sense I am able to manipulate it into more precise and specific specialized effects. I can also bring up my $(item)Hex Notebook$() by pressing $(thing)$(k:hexical.open_hexbook).",
+ "hexical.page.hexical_changes.1": "I also find my tools more familiar. I don't require the same level of caution with my $(l:items/staff)$(item)Staff$() and can move around during casting, handy for chasing down targets that get out of my line of sight before I can finish my raycast. I shouldn't become too inattentive though, Nature has not become more forgiving of my miscalculations. I can also write directly into my $(l:items/abacus)$(item)Abacus$() with $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$().",
+ "hexical.page.lightning_rod_staff.0": "By fixing a $(item)Block of Amethyst$() to some $(item)Lightning Rods$(), I can make quite the impressive $(l:items/staff)$(item)Staff$(). It is quite weighty to wield but feels absolutely $(o)electrifying$() to use.",
+ "hexical.page.lightning_rod_staff.1": "$(o)I learned there are troubles$(br)Of more than one kind.$(br)Some come from ahead$(br)And some come from behind.$(br2)But I've bought a big bat.$(br)I'm all ready, you see.$(br)Now my troubles are going$(br)To have troubles with $(l)me!$()",
+ "hexical.page.gauntlet_staff.0": "$(l:items/staff)$(item)Staves$() are quite heavy to wield and finnicky to hold. Should I tire of them, I can construct a gauntlet-like device that will allow me to grasp and warp the _media to my will with my own hands.",
+ "hexical.page.gauntlet_staff.1": "$(o)Even the wand itself seems impractical to me. If you need something to grasp and shape the aura, it should be something appropriate. Something like a glove.$()$(br2)- Strange notes I have recovered from an odd book. Clearly this \"aura\" they speak of is _media.",
+
+ "hexical.page.grimoire.title": "Grimoires",
+ "hexical.page.grimoire.0": "By encrusting an $(item)Enchanted Book$() with $(l:items/amethyst)$(item)Charged Amethyst$() and $(l:items/edified)$(item)Edified Wood$()$(), it traps _media within the pages like an echo chamber. I can then introduce pattern-to-pattern-list bindings for the $(item)Grimoire$() to keep bouncing endlessly inside.",
+ "hexical.page.grimoire.1": "When I then cast the $(l:patterns/patterns_as_iotas)pattern$() associated with a pattern list with my $(l:items/staff)$(item)Staff$() and the $(item)Grimoire$() in my inventory, the pattern $(o)expands$() with a faint sound of a _Hex being cast. I create shortcuts for tedious tasks with this, like the raycast mantra or large patterns. The $(item)Grimoire$() can even hijack Nature's patterns, to overwrite or add extra functionality.$(br2)$(o)If there's a book that you want to read, but it hasn't been written yet, then you must write it.$()",
+ "hexcasting.action.hexical:write_grimoire": "Write Grimoire",
+ "hexical.page.write_grimoire.summary": "Associates a pattern to a list of patterns in the $(item)Grimoire$() in my offhand.",
+ "hexcasting.action.hexical:erase_grimoire": "Erase Grimoire",
+ "hexical.page.erase_grimoire.summary": "Erases any associations for a pattern that may exist in the $(item)Grimoire$() in my offhand.",
+ "hexcasting.action.hexical:index_grimoire": "Archivist Reflection",
+ "hexical.page.index_grimoire.summary": "Gets a list of all patterns modified by the $(item)Grimoire$() in my offhand.",
+
+ "hexical.page.scarab.title": "Scarab Beetle",
+ "hexical.page.scarab.0": "$(item)Scarab Beetles$() are adorable little amulets I can make. Once activated, their sensitivity to _media allows them to target and replace patterns that Nature has ignored. Specifically, patterns that have no meaning to Nature will be pushed to the stack for the $(item)Scarab$()'s judgement.$(br2)$(o)Whatever. Go my scarab.$()",
+ "hexical.page.scarab.1": "I can teach my $(item)Scarab$() to process patterns in a way useful to me. For example, I can instruct it to execute a series of patterns when it encounter a given pattern to make $(o)new$() patterns that work seamlessly for only me, even in $(l:items/hexcasting)$(item)casting devices$().",
+ "hexical.page.scarab.2": "$(item)Scarab Beetles$() can be taught a list of patterns using $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$(). They can not be read with the opposite $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(); they are sentient enough to resist mind reading but they do proudly display their _Hex. Their instructions can also not be overwritten; they must be $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)erased$() in order to give new directives.",
+ "hexical.page.scarab.3": "I shall find these $(l:patterns/pattern_manipulation)patterns concerning the meta-manipulation of patterns$() useful should I want to implement more advanced processing. I could theoretically create entire families of patterns, similar to $(l:patterns/numbers)number literals$() and $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambits$() and have them work seamlessly in any $(l:items/staff)Staff$() or $(l:items/hexcasting)$(item)casting device$().",
+
+ "hexical.page.animated_scroll.title": "Animated Scrolls",
+ "hexical.page.animated_scroll.0": "$(item)Animated Scrolls$() are mixed with a pinch of $(l:items/amethyst)$(item)Amethyst Dust$(), enchanting the ink to move and wiggle like the patterns I draw with my $(l:items/staff)$(item)Staff$(). Not only that, they can display lists of patterns.$(br2)$(o)You can't be a proper writer without a touch of madness, can you?$()",
+ "hexical.page.animated_scroll.1": "I can freely write and rewrite the scroll's patterns at any time, along with reading it back out. The scroll accepts only a list of $(l:patterns/patterns_as_iotas)pattern iotas$() or a lone $(l:patterns/patterns_as_iotas)pattern iota$(), which is automatically wrapped in a list. The $(item)Animated Scroll$() shows one pattern at a time which cycles to the next one once per second. Even when I write the same list to two of them at different moments of their cycle, they display in sync.",
+ "hexical.page.animated_scroll.2": "The next few pages detail some free spells I've found for the manipulation of $(item)Animated Scrolls$(). The changes caused by these spells can usually be reverted by casting the spell on the scroll again.",
+ "hexcasting.action.hexical:age_scroll": "Age Scroll",
+ "hexical.page.age_scroll.summary": "Yellows the parchment of an $(item)Animated Scroll$(), making it bear striking semblance to some ancient scrolls I've been finding.",
+ "hexcasting.action.hexical:color_scroll": "Dye Ink",
+ "hexical.page.color_scroll.summary": "Changes the color of an $(item)Animated Scroll's$() ink to the color specified by the vector, with the components being 0 to 1 values of red, green, and blue respectively.",
+ "hexcasting.action.hexical:glow_scroll": "Illuminate Ink",
+ "hexical.page.glow_scroll.summary": "Causes the ink of an $(item)Animated Scroll$() to brightly glow, regardless of lighting conditions.",
+ "hexcasting.action.hexical:vanish_scroll": "Vanish Scroll",
+ "hexical.page.vanish_scroll.summary": "Causes the $(item)Animated Scroll$() to become invisible leaving only the pattern, making it appear as though the pattern were magically etched into the surface the scroll is on.",
+
+ "hexical.page.hex_candle.title": "Hex Candles",
+ "hexical.page.hex_candle.0": "When ignited for the first time, either $(l:patterns/spells/prestidigitation)magically$() or with a $(item)Flint and Steel$(), these delightful little candles have pale white flames. They also seem to not extinguish when flooded. When someone interacts with it though, it copies their pigment. I can also give it with a pigment item to change its color directly. To extinguish, $(thing)$(k:sneak) $(k:use)$().",
+ "hexical.page.hex_candle.1": "$(o)The doctor found himself in an immense cave lined with countless quivering candles, each representing the duration of a life.$()",
+
+ "hexical.page.media_jar.title": "Media Jar",
+ "hexical.page.media_jar.0": "I can melt down all my $(l:items/amethyst)$(item)Amethyst$() in this little jar! Unfortunately, the glass is too thick for me to draw _media through it, although I have read tales that ancient _Hexcasters were able to solve this issue and were able to bottle up liquid _media in some kind of flask to use in their _Hexes. However, this $(item)Media Jar$() also has some fascinating properties for recycling media.",
+ "hexical.page.media_jar.description": "$(o)There, sure enough, she saw the faint translucent outline of something aboout the size of a hen's egg. There was just a touch of color in it, a pale sea-green, soft and shimmering and very beautiful.",
+ "hexical.page.media_jar.1": "I can dunk items into the liquid in order to imbue the item with pure _media. The _media seeps into the item and $(o)alters$() it in a variety of surprising and unpredictable ways.$(br2)I can only imagine what would happen if I were to ingest such a concentrated form of media.",
+ "hexical.recipe.alchemists_take_this.header": "Make Gold",
+ "hexical.recipe.alchemists_take_this.text": "Transforms copper ingots to gold.",
+ "hexical.recipe.thoughtknot.header": "Weave Thought-Knot",
+ "hexical.recipe.thoughtknot.text": "Crafts $(l:items/thought_knot)$(item)Thought-Knots$() by submerging $(item)String$() in a large volume of _media rather than brushing an $(l:items/amethyst)$(item)Amethyst Dust$() on it. A slightly more efficient recipe.",
+ "hexical.recipe.unthoughtknot.header": "Release Memory",
+ "hexical.recipe.unthoughtknot.text": "Sucks the _media out of a $(l:items/thought_knot)$(item)Thought-Knot$(). Loses _media compared to the crafting recipe, but useful for recycling the little bit of _media.",
+ "hexical.recipe.cry_obsidian.header": "Sadden Obsidian",
+ "hexical.recipe.cry_obsidian.text": "Infuses $(item)Obsidian$() with _media which leaks out of it, giving it a distinctive crying appearance.",
+ "hexical.recipe.uncry_obsidian.header": "Calm Obsidian",
+ "hexical.recipe.uncry_obsidian.text": "Returns the _media from $(item)Crying Obsidian$().$(br2)$(o)Therapy! :D$()",
+
+ "hexical.page.ledger.title": "Ledgers",
+ "hexical.page.ledger.0": "$(l:patterns/meta)When _Hexes cast _Hexes$(), it is easy to lose track of my _Hex and Nature is all too happy to be punish such carelessness. Luckily, a $(item)Ledger$() can record the last 32 patterns I casted, the last mishap I have cast, and the state of the stack right before mishap. The true power of $(item)Ledgers$() is the ability for it to record patterns cast $(o)even by $(l:patterns/meta)meta-evaluations$().",
+ "hexical.page.ledger.1": "I can click the patterns to clear my $(item)Ledger$() before a new _Hex to avoid contamination.$(br2)$(o)Now you may only see a pile of receipts, but I see a story. I can see where this story is going. It does not look good.$()",
+
+ "hexical.page.sentinel_bed.title": "Sentinel Beds",
+ "hexical.page.sentinel_bed.0": "The $(item)Lodestone$() inside seems to make this block $(o)and the entities shoved in it$() always within my _Hexes' ambit, although I prefer to believe the $(item)Wool$() invites my $(l:patterns/spells/sentinels)$(thing)Sentinel$(). Cats seem to find it cozy too, like a lit furnace or a bed.$(br2)I hear rumors of ancient _Hexcasters using this as some kind of iota storage from any range but I struggle to imagine how.",
+ "hexical.page.sentinel_bed.1": "$(o)A comfy bed for my sentinel, it always seems eager to return to it.$()",
+
+ "hexical.page.wooleyed_potion.title": "Potions of Wooleyeing",
+ "hexical.page.wooleyed_potion.0": "These $(item)Potions$() seem to blur the line between physical matter and the _media. A single dose lasts about ten minutes and under its influence, I find myself capable of far greater miracles than I am used to.$(br2)The most notable of these changes is my greater ability to trade my life for _media. I estimate that each one of my hearts is worth a full $(l:items/amethyst)Amethyst Shard$().",
+ "hexical.page.wooleyed_potion.header": "Potions of Wooleyeing",
+ "hexical.page.wooleyed_potion.1": "I can brew one by boiling a $(l:items/hexcasting)$(item)Cypher$() into a simple $(item)Awkward Potion$().",
+
+ "hexical.category.lamp": "Genie Lamp",
+ "hexical.category.lamp.desc": "I have heard some tales from the villagers about a magical artifact. The villagers say it contains a spirit that grants wishes, but I suspect that is just grand embellishment evolved over centuries of storytelling. However, legends must arise from something and this item must be exceptionally powerful, and so I dedicate this section to my pursuit and research of it.",
+
+ "hexcasting.action.hexical:lamp_finale": "Finale Reflection",
+ "hexical.page.lamp_finale.hand": "The instant I let go of my $(item)Hand Lamp$(), it casts an additional time. I can use this pattern to recognize whether a cast is that finale, and react accordingly.",
+ "hexical.page.lamp_finale.arch": "When an $(item)Archgenie Lamp$() is turned off, it casts an additional time. I can use $(l:lamp/hand_lamps#hexical:lamp_finale)$(action)Finale Reflection$() to recognize whether a cast is that last burst of energy.",
+
+ "hexical.page.hand_lamps.title": "Hand Lamps",
+ "hexical.page.hand_lamps.0": "So this is the subject of a thousand years of rumor! To think a mere wandering trader could be in possession of such a strong artifact. The $(item)Hand Lamp$() emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow media structure$() of a $(l:items/focus)$(item)Focus$() that enables it to store iota. I can also sense a presence inside the $(item)Lamp$() with similar magical capabilities to my own.",
+ "hexical.page.hand_lamps.1": "The signs are unmistakable; within the $(item)Lamp$() is a $(o)living, sentient$() mind, kept alive and trapped via magic not yet known to me. The $(item)Lamp$()'s design is simply ingenious, if its use weren't so horrible. When I hold down the trigger, my patterns are revealed to the \"genie\" as I will be calling it, and it, out of desperation and boredom, casts.",
+ "hexcasting.action.hexical:wish": "Wish",
+ "hexical.page.wish.summary": "Wish the genie to cast a _Hex for me. Because I am $(o)teaching$() a mind rather than $(o)etching$() a $(l:items/hexcasting)$(item)casting device$(), I can freely reteach the genie a new _Hex any time without losing _media.",
+ "hexical.page.hand_lamps.2": "To say it casts is an understatement. It casts $(o)$(l)EVERY INSTANT$(). When holding the switch after wishing, I am treated to a splendid unceasing gush of _media. I can only estimate it must be around twenty times every second. The genie performs the casting with incredible efficiency, producing little of the sounds and particles that accompany other casting methods.",
+ "hexical.page.hand_lamps.3": "I have developed some useful patterns to communicate with the genie for information, documented on the next few pages. These patterns must only be cast by the genie within the $(item)Lamp$(), lest I succumb to the Impersonate Genie mishap.$(br2)$(o)I am not a tool for your convenience.$()$(br)Strange murmuring occasionally emitted from the $(item)Lamp$(). Likely disregardable.",
+ "hexcasting.action.hexical:get_hand_lamp_position": "Genie Reflection: Spatial",
+ "hexical.page.get_hand_lamp_position.summary": "Pushes my original position when I began using the $(item)Hand Lamp$().",
+ "hexcasting.action.hexical:get_hand_lamp_rotation": "Genie Reflection: Rotational",
+ "hexical.page.get_hand_lamp_rotation.summary": "Pushes my original rotation when I began using the $(item)Hand Lamp$().",
+ "hexcasting.action.hexical:get_hand_lamp_velocity": "Genie Reflection: Kinetic",
+ "hexical.page.get_hand_lamp_velocity.summary": "Pushes my original velocity when I began using the $(item)Hand Lamp$().",
+ "hexcasting.action.hexical:get_hand_lamp_use_time": "Genie Reflection: Temporal",
+ "hexical.page.get_hand_lamp_use_time.summary": "Pushes how many times the $(item)Hand Lamp$() has cast since I began using the $(item)Hand Lamp$(). I can divide by by 20 to convert to seconds.",
+ "hexcasting.action.hexical:get_hand_lamp_media": "Genie Reflection: Media",
+ "hexical.page.get_hand_lamp_media.summary": "Pushes the remaining _media of the $(item)Hand Lamp$(), in units of dust.",
+ "hexcasting.action.hexical:set_hand_lamp_storage": "Genie Gambit",
+ "hexical.page.set_hand_lamp_storage.summary": "Asks the genie to remember an iota for me. Strangely, the genie seems able to bypass the Transgress Others mishap, perhaps because it requires my active concentration to use this $(item)Hand Lamp$().",
+ "hexcasting.action.hexical:get_hand_lamp_storage": "Genie Reflection: Memory",
+ "hexical.page.get_hand_lamp_storage.summary": "Requests the iota I had saved to the genie to be pushed to the top of the stack. If I had not previously saved anything, the genie pushes $(l:casting/influences)$(thing)Null$().",
+
+ "hexical.page.genie_lore.title": "On Genies",
+ "hexical.page.genie_lore.0": "_Hexcasting burns out the mind from the energy of thought, flooding the consciousness, inundating every neuron... it's euphoric. For $(l:items/staff)$(item)Staves$(), $(l:items/hexcasting)$(item)casting devices$(), and $(l:greatwork/spellcircles)grand constructs$(), the rate of casting is slow enough that a mind can recuperate; I will never hurt myself just by casting too many patterns. With the speeds that $(item)Lamps$() operate at, though, even a mind perfected for _Hexcasting can feel strain.",
+ "hexical.page.genie_lore.1": "Fortunately, the $(item)Lamp$() captures the _media that a lesser $(l:items/hexcasting)$(item)casting device$() would have wasted creating noises and particles, and uses that to repair the genie's mind. Almost zero _media is wasted; truly incredible. My only concern is when the $(item)Lamp$() runs dry. Fortunately, I can refill them with _media.",
+ "hexcasting.action.hexical:recharge_lamp": "Refuel Lamp",
+ "hexical.page.recharge_lamp.summary": "Refuels the $(item)Lamp$() in my offhand. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$(), plus the _media I'm giving the $(item)Lamp$().",
+ "hexical.page.genie_lore.2": "The $(item)Lamp$() seems capable of holding a near endless amount of _media. When I fuel it further when it already contains _media, it simply grows its storage reservior to accommodate. This is truly a marvel of _Hexcasting technology.",
+ "hexical.page.genie_lore.3": "Upon closer inspiration, the genie within the $(item)Lamp$() seems to just be an extremely minimal, almost artificial network of thought and _media. I hesitate to call it a creature, more of a $(o)wisp$(). Perhaps if I replaced it with a more complex, $(o)sentient$() mind, I can induce some great change. The mind must be of upmost quality to survive the process and still retain a shred of talent; a villager that has spent its life honing a craft to perfection will do quite nicely.",
+ "hexcasting.action.hexical:promote_lamp": "Promote Lamp",
+ "hexical.page.promote_lamp.summary": "Hold the lamp in my other hand and cast. Costs about ten $(l:items/amethyst)$(item)Charged Amethyst$().",
+
+ "hexical.page.arch_lamps.title": "Archgenie Lamps",
+ "hexical.page.arch_lamps.0": "The $(item)Hand Lamp$() was yanked out of my hands and towards the villager, sucking it in completely and transforming it. The greater mind within these $(item)Archgenie Lamps$() should enable them to be activated and deactivated rather than used and while active in my inventory, they will cast every instant. Picking one up automatically deactivates them though, possibly for safety reasons.",
+ "hexical.page.arch_lamps.1": "The output of an $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() is so grand that it saturates the air around me with _media... it's incredible. Unfortunately, if two such lamps are active at once within my inventory, their resonances clash and all lamps in my inventory are rendered useless for a few seconds. I should only have one $(item)Archgenie Lamp$() active at one time, although I can still simultaneously use a $(item)Hand Lamp$().",
+ "hexical.page.arch_lamps.2": "$(o)I am a great soft jelly thing. Smoothly rounded, with no mouth, with pulsing white holes filled by fog where my eyes used to be. Rubbery appendages that were once my arms; bulks rounding down into legless humps of soft slippery matter.$(br2)I have no mouth. And I must scream.$()",
+ "hexcasting.action.hexical:has_arch_lamp": "Archgenie Purification",
+ "hexical.page.has_arch_lamp.summary": "Pushes whether a player currently has an active $(l:lamp/arch_lamps)$(item)Archgenie Lamp$().",
+ "hexcasting.action.hexical:get_arch_lamp_position": "Archgenie Reflection: Spatial",
+ "hexical.page.get_arch_lamp_position.summary": "Pushes my original position when the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() started casting.",
+ "hexcasting.action.hexical:get_arch_lamp_rotation": "Archgenie Reflection: Rotational",
+ "hexical.page.get_arch_lamp_rotation.summary": "Pushes my original rotation when the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() started casting.",
+ "hexcasting.action.hexical:get_arch_lamp_velocity": "Archgenie Reflection: Kinetic",
+ "hexical.page.get_arch_lamp_velocity.summary": "Pushes my original velocity when the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() started casting.",
+ "hexcasting.action.hexical:get_arch_lamp_use_time": "Archgenie Reflection: Temporal",
+ "hexical.page.get_arch_lamp_use_time.summary": "Pushes how many times the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() has cast since its activation. I can divide by by 20 to convert to seconds.",
+ "hexcasting.action.hexical:get_arch_lamp_media": "Archgenie Reflection: Media",
+ "hexical.page.get_arch_lamp_media.summary": "Pushes the remaining amount of _media left in the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$(), in units of dust.",
+ "hexcasting.action.hexical:set_arch_lamp_storage": "Archgenie Gambit",
+ "hexical.page.set_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)Staff$(), or within the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() to remember an iota. Unlike $(item)Hand Lamp$(), this is subject to Transgress Others mishap.",
+ "hexcasting.action.hexical:get_arch_lamp_storage": "Archgenie Reflection: Memory",
+ "hexical.page.get_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)Staff$(), or within the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() to push the stored iota.",
+
+ "hexical.page.lamp_pillows.title": "The Pillow",
+ "hexical.page.lamp_pillows.0": "It seems that $(l:lamp/arch_lamps)$(item)Archgenie Lamps$() inhibit the genie's ability to cast unless someone is actively grasping it, possibly to prevent the genie from applying _media as a form of attrition to wear down its prison. However I have never noted any behavior of the sort; perhaps it is just the paranoia that comes with the brilliance it takes to design such a marvellous device.",
+
+ "hexical.page.enlightened_patterns.title": "Enlightened Patterns",
+ "hexical.page.enlightened_patterns.0": "After my enlightenment, I find myself acutely aware of certain patterns that seem to aid with my newfound abilities to perceive and manipulate _media. These patterns don't seem to require anything new from me, perhaps I've always been able to cast them but was unaware of their existence. That property means I can give an unenlightened player $(l:items/hexcasting)$(item)casting devices$() with these patterns and they will be able to cast it.",
+ "hexcasting.action.hexical:am_enlightened": "Epiphany Purification",
+ "hexical.page.am_enlightened.summary": "Pushes whether the given player has achieved enlightenment like I have.",
+ "hexcasting.action.hexical:is_brainswept": "Sentience Purification",
+ "hexical.page.is_brainswept.summary": "Pushes whether an entity \"has been magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
+
+ "hexical.page.simple_patterns.title": "Hexical Patterns",
+ "hexcasting.action.hexical:garbage": "Garbage Reflection",
+ "hexical.page.garbage.summary": "Pushes $(l:casting/influences)$(action)Garbage$() to my stack. I am unsure why I would ever want this pattern but it exists.",
+ "hexcasting.action.hexical:get_media": "Media Purification",
+ "hexical.page.get_media.summary": "Pushes the amount of media inside an item, that a creature contains or holds, or that a specialized media-holding block contains.",
+
+ "hexical.page.patterns.title": "Pattern Manipulation",
+ "hexical.page.patterns.0": "I have discovered a set of patterns that concern the construction and manipulation of other $(l:patterns/patterns_as_iotas)patterns$(). Strangely, they can be used to construct patterns that are $(o)impossible$() to draw with a $(l:items/staff)$(item)Staff$(), although fortunately I don't believe Nature has associated an effect with any of these \"illegal\" patterns. They can be considered free to use with my $(l:items/scarab)$(item)Scarab Beetle$().",
+ "hexcasting.action.hexical:congruent": "Congruence Distillation",
+ "hexical.page.congruent.summary": "Pushes whether two patterns have the same shape and orientation.",
+ "hexcasting.action.hexical:serialize_pattern": "Chirographer's Purification",
+ "hexical.page.serialize_pattern.summary": "Turns a pattern into a list of numbers for my splitting, analysis, and dissection. The inverse of $(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)Calligrapher's Purification$().",
+ "hexcasting.action.hexical:deserialize_pattern": "Calligrapher's Purification",
+ "hexical.page.deserialize_pattern.summary": "Turns a list of numbers into a pattern for my viewing and execution. The inverse of $(l:patterns/pattern_manipulation#hexical:serialize_pattern)$(action)Chirographer's Purification$().",
+ "hexical.page.patterns.1": "The numbers returned by $(l:patterns/pattern_manipulation#hexical:serialize_pattern)$(action)Chirographer's Purification$() correspond to individual strokes in the pattern. The diagonal stroke that travels upwards and rightwards is labeled 0 and all the other strokes are labelled incrementally in a clockwise manner.$(br2)If I pass in a list of numbers outside the 0-5 range into $(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)Calligrapher's Purification$(), it will apply a $(l:patterns/math#hexcasting:modulo)modulo$() to coerce numbers into the 0-5 range.",
+ "hexical.page.patterns.2": "These lists have multiple fascinating properties. By adding or subtracting constant values, I can rotate the pattern. I can splice off the beginning and ends to check for pattern prefixes and suffixes. In cyclical patterns, I can rotate the list by moving the first element to the end or vice versa to cycle the starting position. By carefully altering numbers with list manipulation, I can also make some kind of $(o)backwards stroke$().",
+ "hexcasting.action.hexical:draw_pattern": "Handwriting Distillation",
+ "hexical.page.draw_pattern.summary": "Takes a pattern and produces a normalized list of vectors. The z-component of these vectors is zero. I feel this may be useful for artistic _Hexes.",
+ "hexcasting.action.hexical:shuffle_pattern": "Glyphmaker's Distillation",
+ "hexical.page.shuffle_pattern.summary": "Uses the number to shuffle the pattern into one of the same shape, but different stroke order. My notes reveal that ancient _Hexcasters used this for some $(o)grand library$().",
+
+ "hexical.page.perlin.title": "Quasirandomness",
+ "hexical.page.perlin.0": "In certain regions of the world, ambient _media is more concentrated. I can measure that concentration and even extrapolate backwards and forwards in time to get a quasi-random number between 0 and 1, corresponding to that location at that time. Points in time and space that are close to each other often have similar values.",
+ "hexcasting.action.hexical:perlin": "Perlin Distillation",
+ "hexical.page.perlin.summary": "Measures the concentration of ambient at that point in space and time, normalized between 0 and 1.",
+
+ "hexical.page.special_raycasts.title": "Special Raycasts",
+ "hexcasting.action.hexical:fluid_raycast": "Naval Distillation",
+ "hexical.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
+ "hexcasting.action.hexical:fluid_surface_raycast": "Lilypad Distillation",
+ "hexical.page.fluid_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but targets only liquids, piercing through all other blocks.",
+ "hexcasting.action.hexical:piercing_raycast": "Railgun Exaltation",
+ "hexical.page.piercing_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
+ "hexcasting.action.hexical:piercing_surface_raycast": "Laser Exaltation",
+ "hexical.page.piercing_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
+
+ "hexical.page.telepathy.title": "Telepathy",
+ "hexical.page.telepathy": "_Media is the energy of thought and consequently, it can interact with thoughts as well. Unfortunately or perhaps fortunately for me, the minds of players are too resistant to be swayed by _Hexes and even the minds of villagers resist tampering. There is a notable exception though: my own mind is open to my own _media, allowing me to read my own intentions and write thoughts to myself.",
+ "hexcasting.action.hexical:get_telepathy": "Telepathic Reflection",
+ "hexical.page.get_telepathy.summary": "By focusing on a particular image, I can detect that concentration via this pattern. Pushes how many twentieths of a second I've been intending to $(thing)$(k:hexical.telepathy)$(), or -1 if I am not.",
+ "hexcasting.action.hexical:send_telepathy": "Send Thought",
+ "hexical.page.send_telepathy.summary": "Momentarily displays an iota above my hotbar. If cast repeatedly, each cast overwrites the previous instantly.",
+ "hexcasting.action.hexical:shout_telepathy": "Shout Thought",
+ "hexical.page.shout_telepathy.summary": "Grandly flahes an iota across my vision. It obstructs my vision and takes some time to fade in, so I shall only use it sparingly.",
+ "hexcasting.action.hexical:pling": "Hallucinate Pling",
+ "hexical.page.pling.summary": "Causes me to hear a pling that is inaudible to other players.",
+ "hexcasting.action.hexical:click": "Hallucinate Click",
+ "hexical.page.click.summary": "Causes me to hear a click that is inaudible to other players.",
+ "hexcasting.action.hexical:left_click": "Offensive Reflection",
+ "hexical.page.left_click.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:attack)$(), or -1 if I am not.",
+ "hexcasting.action.hexical:right_click": "Manipulative Reflection",
+ "hexical.page.right_click.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:use)$(), or -1 if I am not.",
+ "hexcasting.action.hexical:moving_up": "Charge Reflection",
+ "hexical.page.moving_up.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:forward)$(), or -1 if I am not.",
+ "hexcasting.action.hexical:moving_down": "Retreat Reflection",
+ "hexical.page.moving_down.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:back)$(), or -1 if I am not.",
+ "hexcasting.action.hexical:moving_left": "Dodge Reflection",
+ "hexical.page.moving_left.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:left)$(), or -1 if I am not. Can be differentiated from Evade Reflection because d comes to the left of e.",
+ "hexcasting.action.hexical:moving_right": "Evade Reflection",
+ "hexical.page.moving_right.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:right)$(), or -1 if I am not. Can be differentiated from Dodge Reflection because e comes to the right of d.",
+ "hexcasting.action.hexical:jumping": "Leaping Reflection",
+ "hexical.page.jumping.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:jump)$(), or -1 if I am not.",
+ "hexcasting.action.hexical:sneaking": "Stealthy Reflection",
+ "hexical.page.sneaking.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:sneak)$(), or -1 if I am not.",
+
+ "hexical.page.akashic_conveniences.title": "Akashic Utilities",
+ "hexical.page.akashic_conveniences.0": "Being designed to be receptive to _media and store information, it should not surprise me that there are more conveniences than meets the eye. I can $(thing)$(k:use)$() or $(l:patterns/spells/prestidigitation)magically interact$() with a filled $(l:greatwork/akashiclib)$(item)Bookshelf$() to copy its iota onto my stack. I can also $(thing)$(k:use)$() with a $(l:items/scroll)$(item)Scroll$() to copy the pattern key onto it. There are also a set of patterns to read and write directly to a $(l:greatwork/akashiclib)$(item)Bookshelf$() within ambit for free.",
+ "hexcasting.action.hexical:key_shelf": "Librarian's Purification",
+ "hexical.page.key_shelf.summary": "Reads the pattern key of an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
+ "hexcasting.action.hexical:read_shelf": "Librarian's Purification II",
+ "hexical.page.read_shelf.summary": "Reads the iota from an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
+ "hexcasting.action.hexical:write_shelf": "Librarian's Gambit",
+ "hexical.page.write_shelf.summary": "Writes an iota under a pattern key to an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
+ "hexcasting.action.hexical:clear_shelf": "Librarian's Gambit II",
+ "hexical.page.clear_shelf.summary": "Clears an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
+
+ "hexical.page.mage_block.title": "Mage Blocks",
+ "hexical.page.mage_block": "The blocks from $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjure Block$() last forever, are consequently a pain to clean up, and are not too versatile. Luckily, Nature offers an elegant and flexible alternative. These mage blocks come with a suite of $(o)modifiers$(). I could even stack multiple modifiers on one block or reapply a modifier to toggle it off.",
+ "hexcasting.action.hexical:conjure_mage_block": "Conjure Mage Block",
+ "hexical.page.conjure_mage_block.summary": "Conjures a mage block at the location. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().$(br2)$(o)I can create a city out of nothing, or I can cover it in volcanic rock.$()",
+ "hexcasting.action.hexical:modify_block_bouncy": "Modify Block: Bouncy",
+ "hexical.page.modify_block_bouncy.summary": "This modifier makes the block delightfully fun to bounce on! It returns more force to me than regular slime blocks and I notice even if I sneak, the block bounces me regardless.",
+ "hexcasting.action.hexical:modify_block_energized": "Modify Block: Energized",
+ "hexical.page.modify_block_energized.summary": "This modifier makes the block emit a Redstone signal, with the number corresponding to the power level of the output.",
+ "hexcasting.action.hexical:modify_block_ephemeral": "Modify Block: Ephemeral",
+ "hexical.page.modify_block_ephemeral.summary": "This modifier takes in a number in addition to a position and shatters the block after many twentieths of a second. Subsequent casts can lengthen or shorten the duration.",
+ "hexcasting.action.hexical:modify_block_invisible": "Modify Block: Invisible",
+ "hexical.page.modify_block_invisible.summary": "This modifier prevents the block from emitting the telltale particles that accompany my casting, even when being stood on.",
+ "hexcasting.action.hexical:modify_block_replaceable": "Modify Block: Replaceable",
+ "hexical.page.modify_block_replaceable.summary": "This modifier is useful for construction! With this modifier applied, I find I can easily place another block in the place of the mage block.",
+ "hexcasting.action.hexical:modify_block_volatile": "Modify Block: Volatile",
+ "hexical.page.modify_block_volatile.summary": "This modifier makes the block break other mage blocks it's touching. Notably, if it breaks another volatile block, that block breaks and so on until every volatile block shatters.",
+
+ "hexical.page.dyes.title": "Dyes",
+ "hexical.page.dyes.0": "The dye spell and its specialized iota allows me to alter the color of blocks and entities. The dye iota represents a color, but also seems to represent the $(o)potential$() to be colored. For example, attempting to get the dye of grass returns $(l:casting/influences)$(thing)Null$() but getting the dye of undyed terracotta returns $(thing)uncolored$(), which I can use to \"bleach\" dyeable blocks.",
+ "hexcasting.action.hexical:get_dye": "Chromatic Purification",
+ "hexical.page.get_dye.summary": "Gets the dye of a block, entity, or block/item identifier.",
+ "hexcasting.action.hexical:dye": "Dye",
+ "hexical.page.dye.summary": "Dyes a dyeable block or entity. Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.dyes.1": "The valid block targets for this spell include beds, candles, cakes with candles, carpets, concrete, concrete powder, glazed terracotta, sand into red sand and vice versa, sandstone and all blocks derived from it into its red variant and vice versa, shulker boxes, stained glass, stained glass panes, terracotta, tulips into their multiple colors, and wool blocks. As for entities, cat collars, dog collars, specklikes, shulkers, and item entities of all of the above blocks are valid.",
+ "hexcasting.action.hexical:translate_dye": "Vision Purification",
+ "hexical.page.translate_dye.summary": "Translates a dye color into a vector, where each component is from 0 to 1 and represents the red, green, and blueness of the dye respectively.",
+
+ "hexical.page.pigments.title": "Pigment Manipulation",
+ "hexical.page.pigments.0": "Like how I can manipulate dyes with patterns, I can also manipulate pigments. I can even store multiple of them and have my hexes randomly choose one to give me for example.",
+ "hexcasting.action.hexical:to_pigment": "Pigment Purification",
+ "hexical.page.to_pigment.summary": "Takes a colored dye iota and transforms it into a pigment, takes a player and returns their pigment, or takes an item containing a pigment and returns its pigment.",
+ "hexcasting.action.hexical:sample_pigment": "Pigment Exaltation",
+ "hexical.page.sample_pigment.summary": "Samples the pigment at a certain place and time as a vector, where each component is from 0 to 1 and represents the red, green, and blueness respectively.",
+ "hexcasting.action.hexical:take_on_pigment": "Internalize Pigment II",
+ "hexical.page.take_on_pigment.summary": "Internalizes a pigment iota.",
+
+ "hexcasting.action.hexical:magic_missile": "Magic Missile",
+ "hexical.page.magic_missile.summary": "Conjures a small silver of amethyst that always deals a full heart of damage and forces the target backwards. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.magic_missile.0": "The projectile has a few interesting properties. It automatically disappears after roughly ten seconds or shatters upon hitting an entity or block. It pierces all forms of armor and protection. It is also unaffected by gravity and water drag.$(br2)$(o)A weak but enchanting sparkling projectile.$()",
+ "hexical.page.magic_missile.1": "The first vector is conjuration location and is quite esoteric: no wonder most _Hexcasters conjure it in front of them. The basic gist is a vector, where my head's position is the origin, $(l:patterns/basics#hexcasting:get_entity_look)$(action)my facing$() is the Z+ axis, $(l:patterns/scrying/entities#hexical:theodolite)$(action)the vector pointing up from my head$() is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
+ "hexical.page.magic_missile.2": "The second vector is velocity and thankfully much less complicated. It is a simple offset vector, similar to the one that $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() takes in. Unlike $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() though, this vector can be of arbitrary magnitude without incurring additional costs.$(br2)Unlike $(item)Arrows$() though, $(item)Magic Missiles$() will not increase in damage simply by travelling faster. They also apply an odd knockback effect that ignores the entity's mass or the projectile's speed.",
+
+ "hexcasting.action.hexical:prestidigitation": "Prestidigitation",
+ "hexical.page.prestidigitation.summary": "Causes a small magical effect on the block or entity, usually not too distinct from the original nature or function of the block or entity. Costs about a tenth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.prestidigitation.0": "This spell differs from all others I've seen. Rather than a single specific effect, this spell seems to combine dozens of small effects into a single spell. It targets a vast array of blocks and entities, and I am constantly finding uses for it. I have documented them on the following pages. I can think of it as general basic magic tricks.",
+ "hexcasting.action.hexical:can_prestidigitate": "Alteration Purification",
+ "hexical.page.can_prestidigitate.summary": "Pushes whether an entity or location is able to be manipulated with Prestidigitation.",
+ "hexical.page.prestidigitation.1": "I've compiled all of its recorded uses from my notes: opens and close fence gates, trapdoors, and doors of all materials; flicks levers and presses buttons; holds down and releases pressure plates; extinguishes fire and soul fire; lights and extinguishes candles and campfires; rings bells; strips wood; carves pumpkins; makes a note block play its sound; triggers dispensers and droppers; dries mud into clay; turns most soil blocks into path blocks and path blocks into tilled soil...",
+ "hexical.page.prestidigitation.2": "toggles Redstone lamps; drain cauldrons; modifies the state of Redstone repeaters, comparators, and daylight sensors, ignites and deprimes TNT and creepers; shear sheep; give and take arms from armor stands; makes squid squirt ink; makes pandas sneeze; removes the helmet of a snow golem; make pufferfish instantly swell up; take honeycomb from beehives and nests, and activates some kind of \"great work\" whatever that is.",
+
+ "hexical.page.wristpocket.title": "Wristpocket",
+ "hexical.page.wristpocket.0": "I can perform the standard magic trick of vanishing an item and bringing it back. The item hides in the $(o)wristpocket$(), where I can use _media to manipulate it. The wristpocketed item stays with me even after death and I can recall it once I can cast again.$(br2)$(o)Because making something disappear isn't enough; you have to bring it back.$()",
+ "hexcasting.action.hexical:wristpocket": "Wristpocket",
+ "hexical.page.wristpocket.summary": "This spell vanishes the stack of items in my other hand, or conjures it back, swapping if my other hand is holding something. Costs about a eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexcasting.action.hexical:wristpocket_item": "Pocket Reflection",
+ "hexical.page.wristpocket_item.summary": "Returns the identifier of the item in my wristpocket, or $(l:casting/influences)$(thing)Null$() if it is empty.",
+ "hexcasting.action.hexical:wristpocket_count": "Pocket Reflection II",
+ "hexical.page.wristpocket_count.summary": "Returns how many items I have in my wristpocket, or 0 if it is empty.",
+ "hexcasting.action.hexical:sleight": "Sleight",
+ "hexical.page.sleight.summary": "Performs an act of magical sleight of hand to steal items into my wristpocket or expel my wristpocket back into the world. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.sleight.0": "If given a vector, it conjures my wristpocketed item at that vector. If given an item entity, my wristpocket either pulls in or swaps with the item, depending on whether it is empty.$(br2)$(o)If your sleight of hand causes you to break eye contact with your audience, it is too advanced for your skill level.$()",
+ "hexcasting.action.hexical:mage_hand": "Mage Hand",
+ "hexical.page.mage_hand.summary": "Projects my mind's hand forward to use my wristpocketed item and interact with the world. If my wristpocket is empty, acts as though a plain hand had reached out. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.mage_hand.0": "If given an entity, it interacts with the entity using the wristpocketed item. If given a vector, it interacts with the block or $(o)space$() with the item. Because it's my mind's hand, it will not work for casting methods not attached to a player.$(br2)$(o)A spectral, floating hand appears at a point you choose within range.$()",
+ "hexcasting.action.hexical:mage_mouth": "Mage Mouth",
+ "hexical.page.mage_mouth.summary": "Makes me eat my wristpocketed item, nourishing me or applying potions to me. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() and mishaps if the item is not edible.",
+ "hexical.page.mage_mouth.0": "Regardless of the time required to usually eat the item, its special effects, my own dietary restrictions, cooldowns on eating the item, or if I'm full, this spell makes me consume it instantly.$(br2)$(o)Let food be thy medicine and medicine be thy food.$()",
+
+ "hexical.page.specks.title": "Specks",
+ "hexical.page.specks.0": "I can conjure an image of an iota into the world, called a $(thing)speck$(). Nature allows me to customize them quite extensively, altering their size, thickness of stroke, and more. They also take on my pigment color. Once they are in the world, I can move, rotate, and otherwise alter them for free, regardless of range.",
+ "hexcasting.action.hexical:conjure_speck": "Conjure Speck",
+ "hexical.page.conjure_speck.summary": "Conjures a speck with the iota, position, and rotation. Costs a negligible amount of _media. Pushes the speck iota to the stack.",
+ "hexcasting.action.hexical:move_specklike": "Move Speck",
+ "hexical.page.move_specklike.summary": "Moves a speck entity to the position.",
+ "hexcasting.action.hexical:rotate_specklike": "Rotate Speck",
+ "hexical.page.rotate_specklike.summary": "Rotates a speck entity to face the vector.",
+ "hexcasting.action.hexical:roll_specklike": "Roll Speck",
+ "hexical.page.roll_specklike.summary": "Accepts a number between 0 and 1, representing a fraction of a full rotation, and rotates the speck's image by that amount.",
+ "hexcasting.action.hexical:iota_speck": "Alter Speck",
+ "hexical.page.iota_speck.summary": "Changes the speck's iota.",
+ "hexcasting.action.hexical:lifetime_specklike": "Time Speck",
+ "hexical.page.lifetime_specklike.summary": "Commands the speck to disappear after that many twentieths of a second.",
+ "hexcasting.action.hexical:size_specklike": "Resize Speck",
+ "hexical.page.size_specklike.summary": "Scales the speck, can range from 0 to 10. Represents size in blocks and is zero by default.",
+ "hexcasting.action.hexical:thickness_specklike": "Thicken Speck",
+ "hexical.page.thickness_specklike.summary": "Changes the stroke thickness of a pattern speck, can range from 0 to 10. Represents twentieths of a block, and is zero by default.",
+ "hexcasting.action.hexical:pigment_specklike": "Paint Speck",
+ "hexical.page.pigment_specklike.summary": "Splashes a pigment iota onto the speck, changing its color after creation.",
+ "hexcasting.action.hexical:kill_specklike": "Dismiss Speck",
+ "hexical.page.kill_specklike.summary": "Forces a speck to disappear.",
+ "hexcasting.action.hexical:zone_specklike": "Zone Distillation: Speck",
+ "hexical.page.zone_specklike.summary": "Returns specks similarly to other $(l:patterns/entities#hexcasting:zone_entity/animal)zone distillation$() patterns.",
+
+ "hexical.page.simple_spells.title": "Hexical Spells",
+ "hexcasting.action.hexical:confetti": "Confetti",
+ "hexical.page.confetti.summary": "Creates a loud bang similar to that of $(l:patterns/spells/pyrotechnics)Fireworks$() and a burst of colorful particles, either in a direction or in a radial blast. Costs about half of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.confetti.description": "The particles are harmless and flutter through the air for quite long until they reach the ground. The first vector is a position and the second controls direction. If it is a number, it indicates speed to explode in in all directions; a vector makes the particles tend towards the given direction. Both the number and the vector's magnitude may not exceed 2.$(br2)$(o)The rest is confetti.$()",
+ "hexcasting.action.hexical:sparkle": "Sparkle",
+ "hexical.page.sparkle.summary": "Produces a small sparkling particle of my desired position, color, and lifespan. Costs a negligible amount of _media.",
+ "hexical.page.sparkle.description": "The first vector controls position and the second vector controls color. Each component should range from 0 to 1 and corresponds to red, green, and blueness respectively. The final number dictates how long the sparkle should remain in twentieths of a second, up to five seconds.$(br2)$(o)All that glitters is not gold.$()",
+ "hexcasting.action.hexical:block_ping": "Ping Block",
+ "hexical.page.block_ping.summary": "Concentrates a little cube of _media to be visible to the naked eye, useful for highlighting things to me and those around me. Costs a negligible amount of _media.",
+ "hexical.page.block_ping.description": "The first vector controls position and the second vector controls color. Each component should range from 0 to 1 and corresponds to red, green, and blueness respectively. The final number dictates how long the ping should remain in twentieths of a second, up to ten seconds.$(br2)$(o)LOOK AT THIS$()",
+ "hexcasting.action.hexical:crack_device": "Crack Device",
+ "hexical.page.crack_device.summary": "When casted on a $(l:items/hexcasting)$(item)casting device$() without a _Hex, $(o)cracks it$(). Cracked casting devices proudly display their _Hexes. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$().",
+ "hexical.page.crack_device.description": "This spell will blind me for a quite a duration if I attempt to expose the innerworkings of an already-written device. For a moment though, I believe I had glimpsed the _Hex before my eyes and brain filled with _media.$(br2)$(o)Nowadays time runs by electricity and vibrating crystals of quarts and goodness know what else.$().$(br)- clearly a reference to $(l:items/amethyst)$(item)Amethyst$().",
+ "hexcasting.action.hexical:place_block_type": "Construct",
+ "hexical.page.place_block_type.summary": "Places a specific type of block from my inventory at a position, orientation, and horizontal orientation. Costs about one-fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.place_block_type.description": "The identifier can be found in the $(l:patterns/scrying/identifiers)$(action)identifier scrying chapter$(). The orientation is an axis vector representing the direction I would face when placing the block. For blocks like doors and stairs, orientation should be either up or down and horizontal orientation determines direction.$(br2)$(o)In the psychology of the modern civilized human being, it is difficult to overstate the significance of the house.$()",
+ "hexcasting.action.hexical:autograph": "Autograph",
+ "hexical.page.autograph.summary": "Autographs the item in my offhand with my name and $(l:items/pigments)$(item)Pigment$(). Free and can only be done with my $(item)$(l:items/staff)Staff$(), as a proof of care.",
+ "hexical.page.autograph.description": "An autographed item holds a list of the names people who have casted this spell on it, in order and in shimmering $(l:items/pigments)$(item)pigmented$() text. It becomes unstackable with other items of the same type and uneraseable by $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)normal means$(). If the same person signs it multiple times, their name shifts to the bottom. It may be used as a secure method of ensuring an item was approved of by a person.$(br2)$(o)I disagree strongly with whatever work this quote is attached to.$()",
+ "hexcasting.action.hexical:unautograph": "Unautograph",
+ "hexical.page.unautograph.summary": "A more specialized form of $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$(), capable of scrubbing off autographs. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() similar to $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().",
+ "hexical.page.unautograph.description": "While autographs are quite strongly burned into the item's _media, this spell is still capable of $(o)shaving$() off the engraving. However, the effort of it will also destroy a $(l:items/focus)$(item)Focus$()'s contents or a $(l:items/hexcasting)$(item)casting device$()'s _Hex and _media. Perhaps that is for the better; my autographed _Hexcasting gifts can be uniquely assured to be untampered by the presence of an autograph.",
+ "hexcasting.action.hexical:conjure_hexburst": "Conjure Hexburst",
+ "hexical.page.conjure_hexburst.summary": "Conjures a $(item)Hexburst$() at the location with the given iota. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
+ "hexical.page.conjure_hexburst.description": "$(item)Hexbursts$() are edible items created by taking an iota and wrapping _media around it, over and over until it gains size. When eaten, a $(item)Hexburst$() instantly adds its iota to the consumer's stack. I shall find this property considerably useful if I ever want to trade my entity reference. Should my stack have an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it pushes it into the forming list.",
+ "hexcasting.action.hexical:conjure_hextito": "Conjure Hextito",
+ "hexical.page.conjure_hextito.summary": "Conjures a $(item)Hextito$() at the location with the given _Hex. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
+ "hexical.page.conjure_hextito.description": "$(item)Hextitos$() are triangular crunchy snacks I can conjure. When consumed, the consumer immediately casts its _Hex, using their $(item)$(l:items/staff)Staff$()'s stack unlike a regular $(l:items/hexcasting)$(item)casting device$(). I shall find them useful to make simple actions like raycasts or to give out limited uses of a _Hex I have designed. If a consumer's stack has an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it will not cast, making it quite safe to hand out.",
+ "hexcasting.action.hexical:flower": "Conjure Flower",
+ "hexical.page.flower.summary": "Conjures a flower of my choosing at a location. I must have $(l:patterns/scrying/identifiers)$(action)identified$() this flower at some point before. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.flower.description": "The block that it is conjured on must have a flat surface at the top to enable growing. This block does not necessarily need to be able to support the flower naturally, although if it is incapable, any little movement may cause the flower to break. Alternatively, I can give it a flower pot and the spell will attempt to fill it if possible.$(br2)$(o)A weed is but an unloved flower.$()",
+ "hexcasting.action.hexical:light": "Illuminate",
+ "hexical.page.light.summary": "Conjures a completely invisible light with illumination strength of my choosing at a location. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.light.description": "The block that it is into must be empty or extremely weak. The illumination strength can be a number between 1 and 15, inclusive. If I target a space where a light already exists, the spell is free and particleless.$(br2)$(o)The light blinds us. It is only in the dark that we see clearly.$()",
+ "hexcasting.action.hexical:snowball": "Conjure Snowball",
+ "hexical.page.snowball.summary": "Conjures a harmless snowball and leaves an entity reference at the top of the stack. Costs about half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.snowball.description": "The conjured snowball will simply fall down if not modified by _Hexes so I must use $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() to aim it.$(br2)$(o)The older I get, the greater power I seem to have to help the world; I am like a snowball - the further I am rolled the more I gain.$()",
+ "hexcasting.action.hexical:ghast_fireball": "Conjure Fireball",
+ "hexical.page.ghast_fireball.summary": "Conjures an explosive fireball that can be punched and damages blocks and leaves an entity reference at the top of the stack. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.ghast_fireball.description": "The conjured fireball simply hangs in the air. It must be propelled via punching it or $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$(). It can also be deflected via similar methods.$(br2)$(o)A fiery, explosive projectile.$()",
+ "hexcasting.action.hexical:llama_spit": "Spit",
+ "hexical.page.llama_spit.summary": "Conjures a sticky low-damaging projectile. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.llama_spit.description": "The projectile does not have any velocity of its own when conjured and moves only due to gravity unless affected by $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$(). Its damage is negligible and likely unsuited for any combat but it is cheap...$(br2)$(o)A projectile that explodes into a sticky mess.$()",
+ "hexcasting.action.hexical:gasp": "Gasp",
+ "hexical.page.gasp.summary": "Instantly replenishes a creature's air bubbles. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.gasp.description": "Regardless of amount of breath restored, this spell costs exactly one dust so I should ideally wait as long as I safely can before casting this spell. I will find it useful while diving, being teleported into a block, or even keeping sea creatures alive on land.$(br2)$(o)The best way to observe a fish is to become a fish.$()",
+ "hexcasting.action.hexical:parrot": "Squawk",
+ "hexical.page.parrot.summary": "Emits a sound associated with a mob near a location, as though a parrot had imitated that mob. Costs about a half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.parrot.description": "This spell does nothing but still consumes my _media if a parrot can not replicate the sound.$(br2)I can already imagine this spell's use for playing practical jokes on my friends and enemies. Perhaps Nature does permit me to have fun occasionally with my _Hexes, creating such a cheap spell begging to be used for jokes.$(br2)$(o)Hisss...$()",
+ "hexcasting.action.hexical:myodesopsia": "Myodesopsia",
+ "hexical.page.myodesopsia.summary": "Conjures a swirl of patterns around me that I and nearby players can see, using the patterns from the list. Free.",
+ "hexical.page.myodesopsia.description": "These patterns are similar to the \"floaters\" that appear when I cast using other methods. I can imagine this spell as conjuring what would have appeared had I casted the list. Interestingly, each pattern shows up exactly once no matter how many times it appears in the list.",
+
+ "hexical.page.conjure_compass.title": "Conjure Compasses",
+ "hexcasting.action.hexical:conjure_compass": "Conjure Compass",
+ "hexical.page.conjure_compass.summary": "Conjures a $(item)Conjured Compass$() at the location pointing towards the second vector, linked to the current dimension. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.conjure_compass.description": "If read with $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(), it returns a unit vector pointing towards the location inside it. In other dimensions, the $(item)Compass$() spins erratically and reading it yields only $(l:casting/influences)$(thing)Null$(). Once I am done with a $(item)Compass$(), I can eat it as a light snack.$(br2)$(o)Aye, the compass doesn't point North. But we're not trying to find North, are we?$()",
+
+ "hexical.page.spike.title": "Conjure Spike",
+ "hexical.page.spike.0": "I hear rumors of a sorcerer illager that can summon fangs from the ground. While I find it hard to believe that villagers can shift _media, I have taken inspiration from those myths and created this spell that brings forth spikes from the ground to skewer targets.",
+ "hexcasting.action.hexical:spike": "Conjure Spike",
+ "hexical.page.spike.summary": "Takes a non-air position, an axis vector, and a delay in seconds up to ten seconds long and conjures a spike at that location. Costs about one $(l:items/amethyst)$(item)Amethyst Shard$().",
+ "hexical.page.spike.1": "Each spike takes about a half second to strike and deal a hefty three full hearts of damage before slowly sinking back into the ground. If I cast this spell where a spike has not yet disappeared, it will do nothing. Spikes will also throw back targets in the direction they were conjured.",
+
+ "hexical.page.tchotchke.title": "Tchotchkes",
+ "hexical.page.tchotchke.0": "$(item)Tchotchkes$() are not unlike $(l:items/hexcasting)$(item)Cyphers$(). They have an internal media reservior and break when they run out, unable to take from my inventory. They can not be recharged or reprogrammed, and $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() simply destroys it. Its advantages lay in its conjurability and $(o)input interception$().",
+ "hexical.page.tchotchke.1": "When I $(thing)$(k:attack)$() or $(thing)$(k:use)$() while holding a $(item)Tchotchke$(), it intercepts my input, preventing me from interacting with the world. After a number of inputs corresponding to the \"rank\" I assigned at conjuration, it casts the _Hex I gave it, starting the stack with a list of false and true iotas, corresponding to $(thing)$(k:attack)$() or $(thing)$(k:use)$() respectively. If I pause for too long, the current \"cast\" fizzles out.",
+ "hexcasting.action.hexical:conjure_tchotchke": "Conjure Tchotchke",
+ "hexical.page.conjure_tchotchke.summary": "Conjures a $(item)Tchotchke$() at the location with the amount of _media, rank, and _Hex. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$() and the _media used for the battery.",
+ "hexical.page.tchotchke.2": "I find ancient _Hexcasters to be quite fond of these due to their versatility and the ability to conjure them as needed. Tchotchkes also feature an iota storage that can only be edited from the tchotchke itself, allowing each tchotchke to essentially act as a fully-contained magical trinket.$(br2)$(o)Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.$()",
+ "hexcasting.action.hexical:write_tchotchke": "Tchotchke Gambit",
+ "hexical.page.write_tchotchke.summary": "Writes an iota to the $(item)Tchotchke's$() inner iota storage, which can be read back on future casts. Subject to the Transgress Others mishap and unreadable from any external source.",
+ "hexcasting.action.hexical:read_tchotchke": "Tchotchke Reflection",
+ "hexical.page.read_tchotchke.summary": "Pushes the iota from the $(item)Tchotchke's$() inner iota storage.",
+
+ "hexical.page.circle_spells.title": "Circle Spells",
+ "hexical.page.circle_spells.0": "When the _media courses through the boundaries of a $(l:greatwork/spellcircles)circle$(), it saturates the domain inside with _media, allowing far greater magical effects and flexibility of _media manipulation than I am used to. The following are some spells which rely on that increased density of media and are to only be cast by an $(l:greatwork/impetus)impetus$().",
+ "hexcasting.action.hexical:displace": "Displace",
+ "hexical.page.displace.summary": "Teleports an entity within the $(l:greatwork/spellcircles)circle$() to any other point inside within the same $(l:greatwork/spellcircles)circle$(). Unlike $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), this spell takes in world coordinates rather than an offset. Free.",
+
+ "hexical.page.evocation.title": "Evocation",
+ "hexical.page.evocation.0": "_Media is the energy of thought, so it stands to reason that I should be able to simply $(o)think$() magic into existence rather than waving around a $(item)$(l:items/staff)Staff$(). After all, I have roughly two chunks' worth of $(l:items/amethyst)$(item)Charged Amethyst$() in me at my prime, double that of my $(l:items/staff)$(item)Staff$(). While I can not yet shift arbitrary effects into reality, I can bring it forth a prepared _Hex with a mere gesture, taking _media from my inventory.",
+ "hexcasting.action.hexical:set_evocation": "Inculcate",
+ "hexical.page.set_evocation.summary": "Etches a _Hex, allowing me to cast it by holding $(thing)$(k:hexical.evoke)$() for one second. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$().$(br2)$(o)Anthony thought at it, and it turned a flip-flop on the grass, and lay trembling, its eyes gleaming in small black terror.$()",
+ "hexcasting.action.hexical:get_evocation": "Evocation Reflection",
+ "hexical.page.get_evocation.summary": "Pushes the _Hex etched into my mind.",
+ "hexcasting.action.hexical:is_evoking": "Evoker Reflection",
+ "hexical.page.is_evoking.summary": "Pushes how long since a player has been evoking. Is -1 if they are not currently evoking.",
+ "hexical.page.evocation.1": "The ancient texts I have learned this technique from reveals many other interesting trifles: _Hexcasters used to perform evocation without any a _Hex, as a greeting or group ritual by waving their arms and chanting in unison. Experiments have also been done to see if a villager could be granted the ability to shift _media but the results of those experiments were either never documented or have been lost to time.",
+
+ "hexical.page.pyrotechnics.title": "Pyrotechnics",
+ "hexical.page.pyrotechnics.0": "I have stumbled across some spells related to pyrotechnics. The _media hums quite festively around the patterns, as if they were once used for grand celebrations, although I shudder to imagine how effective they'd be as a weaponized projectile.$(br2)$(o)You don’t need to say anything. Just watch the fireworks.$()",
+ "hexcasting.action.hexical:simulate_firework": "Simulate Firework",
+ "hexical.page.simulate_firework.summary": "Analyzes the $(item)Firework Star$() in my other hand and conjures a firework of that star, with the position, velocity, and gunpowder amount specified. Costs about one $(l:items/amethyst)$(item)Amethyst Shard$().",
+ "hexcasting.action.hexical:conjure_firework": "Conjure Firework",
+ "hexical.page.conjure_firework.summary": "$(br)Conjures a firework of my $(o)exact$() specifications. It may be one of the most complex spells in existence. Costs equivalently to the other firework spell.",
+ "hexical.page.conjure_firework.0": "$(o)Basic Theory$()$(br2)The first two parameters of the spell are simple position and velocity. The third parameter dictates flight duration as a number from 1 to 3. I can imagine it as being the amount of $(item)Gunpowder$() I would add to a firework rocket.$(br2)The remaining parameters can be imagined as specifications for a $(thing)virtual firework star.$()",
+ "hexical.page.conjure_firework.1": "$(o)Shape$()$(br2)The fourth parameter controls the shape of the explosion, based off a number 0 to 3.$(br)- 0 is a simple, small ball-shaped explosion.$(br)- 1 is a large ball-shaped explosion.$(br)- 2 is a star-shaped explosion.$(br)- 3 is a large creeper face-shaped explosion.",
+ "hexical.page.conjure_firework.2": "$(o)Colors$()$(br2)The fifth and sixth parameters are lists of $(l:patterns/spells/dyes)dyes$(). The first list controls the colors of the firework's initial burst, while the second controls the colors that the first particles fade into. There must be at least one dye specified for the first list, but the second list can be empty if I do not want any colors to fade into.",
+ "hexical.page.conjure_firework.3": "$(o)Special Effects$()$(br2)The seventh parameter controls whether the particles of the firework flicker, as if adding glowstone to the $(item)virtual Firework Star$().$(br2)The eighth parameter controls whether the particles of the firework leave trails, as if adding a diamond to the $(item)virtual Firework Star$().",
+
+ "hexical.page.shaders.title": "Shaders",
+ "hexical.page.shaders.0": "These spells revolve around manipulating my light receptors, allowing me to alter my vision for utility and fun. These spells break upon death or me leaving this world and returning at a later date.$(br2)$(o)You sense that something is off. You feel in harmony with the magic. Maan, that color smells interesting. Usual concepts don't apply.$()",
+ "hexcasting.action.hexical:shader_clear": "Clear Vision",
+ "hexical.page.shader_clear.summary": "Breaks any shader spell currently applied to me. Useful for \"bleaching\" my eyes after too much experimentation.",
+ "hexcasting.action.hexical:shader_owl": "Pierce Darkness",
+ "hexical.page.shader_owl.summary": "Greatly augments my ability to see in the dark, although the light resultingly becomes extremely blinding.",
+ "hexcasting.action.hexical:shader_lines": "Visualize Forms",
+ "hexical.page.shader_lines.summary": "Transforms the world into a thin outline of black and white. Possibly useful for identifying subtle contrasts.",
+ "hexcasting.action.hexical:shader_tv": "Broadcast Vision",
+ "hexical.page.shader_tv.summary": "Alters my vision to contain strange lines and make objects towards the center of my vision bulge \"towards\" me. Seems to be in reference to something...",
+ "hexcasting.action.hexical:shader_media": "Identify Importance",
+ "hexical.page.shader_media.summary": "Transforms my vision to perceive only the most important things...",
+ "hexcasting.action.hexical:shader_spider": "Split Vision",
+ "hexical.page.shader_spider.summary": "Splits my vision into multiple sections, similar to what a spider might see. I am unsure whether it actually grants me more vision...",
+
+ "hexical.category.scrying": "Scrying",
+ "hexical.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world. These patterns can divine a surprising amount of information like types of blocks, status effects, the weather, the nutritional value of food, whether I am sprinting, $(o)block explosion resistance$(), and more. While likely not useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
+
+ "hexical.page.blocks.title": "Blocks",
+ "hexcasting.action.hexical:block_hardness": "Miner's Purification",
+ "hexical.page.block_hardness.summary": "Pushes how difficult blocks of that block type are to mine.",
+ "hexcasting.action.hexical:block_blast_resistance": "Demoman's Purification",
+ "hexical.page.block_blast_resistance.summary": "Pushes how resistant blocks of that block type are to explosions.",
+ "hexcasting.action.hexical:blockstate_waterlogged": "Plumber's Purification",
+ "hexical.page.blockstate_waterlogged.summary": "Pushes whether the block is waterlogged, or $(l:casting/influences)$(thing)Null$() if the block can not be waterlogged.",
+ "hexcasting.action.hexical:blockstate_rotation": "Orientation Purification",
+ "hexical.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or $(l:casting/influences)$(thing)Null$() if the block does not have a facing direction.",
+ "hexcasting.action.hexical:blockstate_crop": "Farmer's Purification",
+ "hexical.page.blockstate_crop.summary": "Pushes a number 0 to 1, corresponding to how grown that crop is, as well as beehives, composters, and cauldrons. Strangely works on cakes too.",
+ "hexcasting.action.hexical:blockstate_glow": "Glowing Purification",
+ "hexical.page.blockstate_glow.summary": "Pushes a boolean for whether the block is in a \"lit\" state, for example furnaces, Redstone torches, lamps, and campfires.",
+ "hexcasting.action.hexical:blockstate_lock": "Lock Purification",
+ "hexical.page.blockstate_lock.summary": "Pushes a boolean for whether the block is currently in a \"open\" state, for example doors, trapdoors, fence gates, and open barrels.",
+ "hexcasting.action.hexical:blockstate_turn": "Angle Purification",
+ "hexical.page.blockstate_turn.summary": "Pushes a number corresponding to the rotation of signs, skulls, and banners.",
+ "hexcasting.action.hexical:blockstate_bunch": "Bunching Purification",
+ "hexical.page.blockstate_bunch.summary": "Pushes how many are in a bunch block, or $(l:casting/influences)$(thing)Null$() otherwise. Useful only for candles, sea pickles, and turtle eggs.",
+ "hexcasting.action.hexical:blockstate_book": "Book Purification",
+ "hexical.page.blockstate_book.summary": "Pushes a boolean for whether lecterns or jukeboxes have a book/music disc in them respectively. I read that it may work for some kind of bookshelf involved in a great work too.",
+
+ "hexical.page.enchantments.title": "Enchantments",
+ "hexcasting.action.hexical:get_enchantments": "Thaumaturgist's Purification",
+ "hexical.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
+ "hexcasting.action.hexical:get_enchantment_strength": "Charm Distillation",
+ "hexical.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
+
+ "hexical.page.entities.title": "Entities",
+ "hexcasting.action.hexical:entity_width": "Caliper's Purification",
+ "hexical.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
+ "hexcasting.action.hexical:theodolite": "Theodolite's Purification",
+ "hexical.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
+ "hexcasting.action.hexical:get_health": "Vitality Purification",
+ "hexical.page.get_health.summary": "Pushes how close an entity is to death. I can think of these in terms of half-hearts.",
+ "hexcasting.action.hexical:get_max_health": "Fitness Purification",
+ "hexical.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
+ "hexcasting.action.hexical:get_air": "Suffocation Purification",
+ "hexical.page.get_air.summary": "Pushes the number of seconds before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
+ "hexcasting.action.hexical:get_max_air": "Lung Purification",
+ "hexical.page.get_max_air.summary": "Pushes the number of seconds an entity can last outside their normal breathing environment before they start suffocating.",
+ "hexcasting.action.hexical:get_player_hunger": "Hunger Purification",
+ "hexical.page.get_player_hunger.summary": "Pushes how full a player is. I can imagine this as half-hunger-hunches.",
+ "hexcasting.action.hexical:get_player_saturation": "Stamina Purification",
+ "hexical.page.get_player_saturation.summary": "Pushes my saturation, which roughly correlates to how long the player will remain full.",
+ "hexcasting.action.hexical:is_burning": "Inferno Purification",
+ "hexical.page.is_burning.summary": "Pushes whether the entity is burning. Also applies to entities that are visually on fire, even if they are immune to fire, such as blazes attacking.",
+ "hexcasting.action.hexical:burning_time": "Inferno Purification II",
+ "hexical.page.burning_time.summary": "Pushes how long in seconds the entity will continue burning if not put out.",
+ "hexcasting.action.hexical:is_wet": "Enderman's Purification",
+ "hexical.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
+ "hexcasting.action.hexical:is_baby": "Youth Purification",
+ "hexical.page.is_baby.summary": "Pushes whether a living creature is in its baby form. Also works on armor stands oddly.",
+ "hexcasting.action.hexical:breedable": "Reproduction Purification",
+ "hexical.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or $(l:casting/influences)$(thing)Null$() if that creature is not capable of that type of reproduction.",
+ "hexcasting.action.hexical:is_sleeping": "Sloth's Purification",
+ "hexical.page.is_sleeping.summary": "Pushes whether the entity is sleeping. Applies to players, cats, foxes, and a variety of other creatures.",
+ "hexcasting.action.hexical:is_sprinting": "Racer's Purification",
+ "hexical.page.is_sprinting.summary": "Pushes whether the entity is sprinting. Includes if I am swimming or if I have left the ground since sprinting and extends to cats, foxes, and more.",
+
+ "hexical.page.environment.title": "Environment",
+ "hexical.page.environment.0": "This section of patterns is quite meta: they push properties of the magical environment they are running in. Certain environments are unable to cast certain patterns so this section may be useful in avoiding mishaps.",
+ "hexcasting.action.hexical:env_ambit": "Ambit Purification",
+ "hexical.page.env_ambit.summary": "Pushes whether a location or entity is in ambit.",
+ "hexcasting.action.hexical:env_staff": "Staff Reflection",
+ "hexical.page.env_staff.summary": "Pushes whether a $(l:items/staff)$(item)Staff$() is being used to cast this pattern.",
+ "hexcasting.action.hexical:env_offhand": "Dexterity Reflection",
+ "hexical.page.env_offhand.summary": "Pushes whether the most dominant hand of the caster is being used to cast this pattern. May work strangely for casters without hands...",
+ "hexcasting.action.hexical:env_media": "Media Reflection",
+ "hexical.page.env_media.summary": "Pushes the _media available to this current cast.",
+ "hexcasting.action.hexical:env_packaged_hex": "Device Reflection",
+ "hexical.page.env_packaged_hex.summary": "Pushes whether any form of $(l:items/hexcasting)$(item)casting device$() is being used to cast this pattern.",
+ "hexcasting.action.hexical:env_hand_lamp": "Wish Reflection",
+ "hexical.page.env_hand_lamp.summary": "Pushes whether a $(l:lamp/hand_lamps)$(item)Hand Genie Lamp$() is being used to cast this pattern.",
+ "hexcasting.action.hexical:env_arch_lamp": "Grand Wish Reflection",
+ "hexical.page.env_arch_lamp.summary": "Pushes whether an $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() is being used to cast this pattern.",
+ "hexcasting.action.hexical:env_turret": "Turret Reflection",
+ "hexical.page.env_turret.summary": "Pushes whether an automated $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() is being used to cast this pattern.",
+ "hexcasting.action.hexical:env_circle": "Constructed Reflection",
+ "hexical.page.env_circle.summary": "Pushes whether some form of $(l:greatwork/spellcircles)$(thing)$(o)grand work$() is being used to cast this pattern.",
+ "hexcasting.action.hexical:env_evocation": "Psychic Reflection",
+ "hexical.page.env_evocation.summary": "Pushes whether $(l:patterns/spells/evocation)$(item)pure mental effort$() is being used to cast this pattern.",
+ "hexcasting.action.hexical:env_tchotchke": "Bibelot Reflection",
+ "hexical.page.env_tchotchke.summary": "Pushes whether a $(l:patterns/spells/tchotchke)$(item)Tchotchke$() is being used to cast this pattern.",
+
+ "hexical.page.food.title": "Food",
+ "hexcasting.action.hexical:edible": "Edibility Purification",
+ "hexical.page.edible.summary": "Takes in an item identifier and pushes whether I can eat it.",
+ "hexcasting.action.hexical:get_hunger": "Calorie Purification",
+ "hexical.page.get_hunger.summary": "Takes in an item identifier and pushes the amount it will fill me.",
+ "hexcasting.action.hexical:get_saturation": "Satiation Purification",
+ "hexical.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill me.",
+ "hexcasting.action.hexical:is_meat": "Flesh Purification",
+ "hexical.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat, meaning wolves can eat it.",
+ "hexcasting.action.hexical:is_snack": "Dessert Purification",
+ "hexical.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack, meaning I can eat it really quickly.",
+
+ "hexical.page.identifiers.title": "Identifiers",
+ "hexical.page.identifiers.0": "My _Hexes has so far been quite blind to the world. I can get a creature's height, velocity, and more but I can't directly identify that entity. Nature's solution to the problem is the $(o)identifier iota$(). Every entity, block, status effect, enchantment, sound, etc... has a unique identifier that my _Hexes can identify. Once I have two identifiers, I can compare them with each other.",
+ "hexcasting.action.hexical:identify": "Detective's Purification",
+ "hexical.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
+ "hexical.page.identifiers.1": "I notice that if I were to use Detective's Purification on an item, it returns that it's an item entity, but if I were to use Recognizer's Purification on that same entity, it would return the type of item. This type of item matches with a block identifier returned by Detective's Purification. I can imagine Recognizer's as returning $(o)additional$() information if possible.",
+ "hexcasting.action.hexical:recognize": "Recognizer's Purification",
+ "hexical.page.recognize.summary": "Pushes extra identifier information of an entity, mainly the item type of an item entity or the item type inside an item frame entity.",
+ "hexcasting.action.hexical:classify": "Modicum Purification",
+ "hexical.page.classify.summary": "Pushes the identifier of an iota's type. Can be used to determine whether two iota are the same type.",
+ "hexcasting.action.hexical:get_mainhand_stack": "Tool Purification",
+ "hexical.page.get_mainhand_stack.summary": "Returns the type of item in the player's mainhand.",
+ "hexcasting.action.hexical:get_offhand_stack": "Accessory Purification",
+ "hexical.page.get_offhand_stack.summary": "Returns the type of item in the player's offhand.",
+
+ "hexical.page.item.title": "Items",
+ "hexcasting.action.hexical:count_stack": "Storage Purification",
+ "hexical.page.count_stack.summary": "Takes in an item entity and pushes how many items are in it.",
+ "hexcasting.action.hexical:count_max_stack": "Warehouse Purification",
+ "hexical.page.count_max_stack.summary": "Takes in an item entity and pushes how many items that can stack in it.",
+ "hexcasting.action.hexical:damage_stack": "Deterioration Purification",
+ "hexical.page.damage_stack.summary": "Takes in an item entity and pushes how much damage the item has sustained.",
+ "hexcasting.action.hexical:damage_max_stack": "Fragility Purification",
+ "hexical.page.damage_max_stack.summary": "Takes in an item entity and pushes how much durability the item can have at its peak.",
+ "hexcasting.action.hexical:media_max_stack": "Potential Purification",
+ "hexical.page.media_max_stack.summary": "Takes in an item entity and pushes either $(l:casting/influences)$(thing)Null$() if the item does not have any media-holding potential, or the amount of _media it is capable of holding at its peak.",
+
+ "hexical.page.status_effects.title": "Status Effects",
+ "hexcasting.action.hexical:get_effects_entity": "Diagnosis Purification",
+ "hexical.page.get_effects_entity.summary": "Pushes a list of status effects the entity is afflicted with.",
+ "hexcasting.action.hexical:get_effects_item": "Prescription Purification",
+ "hexical.page.get_effects_item.summary": "Pushes a list of status effects the food or potion will bestow.",
+ "hexcasting.action.hexical:get_effect_category": "Condition Purification",
+ "hexical.page.get_effect_category.summary": "Pushes the general \"goodness\" of the effect towards the afflicted. -1 for harmful, 0 for neutral, and 1 for beneficial.",
+ "hexcasting.action.hexical:get_effect_amplifier": "Concentration Distillation",
+ "hexical.page.get_effect_amplifier.summary": "Pushes the potency of the specific effect acting on the entity or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
+ "hexcasting.action.hexical:get_effect_duration": "Clearance Distillation",
+ "hexical.page.get_effect_duration.summary": "Pushes how long the effect will last in seconds or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
+
+ "hexical.page.world.title": "World",
+ "hexcasting.action.hexical:get_light": "Luminance Purification",
+ "hexical.page.get_light.summary": "Pushes the light level at the position as a number 0 to 15. If inside a nontransparent block, it returns zero.",
+ "hexcasting.action.hexical:get_weather": "Meterologist's Reflection",
+ "hexical.page.get_weather.summary": "Pushes a number corresponding to the weather. 0 for clear, 1 for rain, and 2 for thundering.",
+ "hexcasting.action.hexical:get_power": "Battery Purification",
+ "hexical.page.get_power.summary": "Pushes the Redstone power that a position receives.",
+ "hexcasting.action.hexical:get_comparator": "Peripheral Purification",
+ "hexical.page.get_comparator.summary": "Pushes the power level a comparator would output if pressed against a position.",
+ "hexcasting.action.hexical:get_day": "Circadian Reflection",
+ "hexical.page.get_day.summary": "Pushes the progress of the day as a number between 0 (start) and 1 (end) of the day.",
+ "hexcasting.action.hexical:get_time": "Temporal Reflection",
+ "hexical.page.get_time.summary": "Pushes the age of the world for timekeeping, unaffected by events such as sleeping. Divided by 20, it returns seconds.",
+ "hexcasting.action.hexical:get_biome": "Geographical Purification",
+ "hexical.page.get_biome.summary": "Pushes the identifier of the biome type that the vector is within.",
+ "hexcasting.action.hexical:get_dimension": "Plane Reflection",
+ "hexical.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in.",
+ "hexcasting.action.hexical:get_moon": "Lunar Reflection",
+ "hexical.page.get_moon.summary": "Pushes the current phase of the moon as a fraction of its size.",
+ "hexcasting.action.hexical:get_einstein": "Distortion Reflection",
+ "hexical.page.get_einstein.summary": "Pushes whether this dimension is bounded by standard rules of space and time: compasses and clocks will work here.",
+
+ "hexcasting.action.hexical:greater_blink": "Greater Blink",
+ "hexical.page.greater_blink.0": "Greater Blink is a significantly cheaper alternative to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(). It also does not carry the risk of splattering my items upon arrival. However, it only has pitiful range compared to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$() and its destination calculations are... esoteric. Its target is also exclusively myself.",
+ "hexical.page.greater_blink.summary": "Teleports me up to 128 blocks away, relative to my position and rotation. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in the direction I'm facing. A vector of (0, 1, 0) would teleport me one block \"up\" in the direction of the top of my head. A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head. A vector of (1, 0, 0) teleports me one block to my right.",
+ "hexical.page.greater_blink.2": "$(o)Long Jaunt! Longer than you think-$()",
+
+ "hexical.page.meshes.title": "Meshes",
+ "hexical.page.meshes.0": "Meshes are the natural evolution of $(l:patterns/spells/specks)specks$(). Rather than being restricted to iotas and patterns on a two-dimensional plane, meshes accept a list of vectors in three-dimensional space and connect them with lines, allowing for infinite creative constructions. It's also responsive to most patterns used for manipulation of specks.",
+ "hexcasting.action.hexical:conjure_mesh": "Conjure Mesh",
+ "hexical.page.conjure_mesh.summary": "Conjures a mesh with the location and leaves a mesh entity on the stack. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.meshes.1": "When initally conjured, the mesh is invisible and must be woven to gain form. The constraints for the list of vectors provided to a mesh are quite minimal. The list must be no more than 32 vectors long, and those vectors must have magnitudes less than 10. The mesh will then connect each of those points.",
+ "hexcasting.action.hexical:weave_mesh": "Weave Mesh",
+ "hexical.page.weave_mesh.summary": "Takes a list of vectors, with constraints defined on the prior page, and weaves the mesh into that shape. Free.",
+ "hexcasting.action.hexical:read_mesh": "Tangle Purification",
+ "hexical.page.read_mesh.summary": "Pushes the shape of a mesh as a list of vectors."
}
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index c275b1d04ef6..9e5207de9a0e 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -21,7 +21,6 @@
"block.hexical.hex_candle": "咒术蜡烛",
"block.hexical.mage_block": "术师方块",
"block.hexical.media_jar": "媒质罐",
- "block.hexical.pedestal": "支座",
"block.hexical.sentinel_bed": "哨卫床",
"death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
"death.attack.magic_missile.item": "%1$s的魔法存在被%2$s用%3$s刺穿了",
@@ -135,11 +134,9 @@
"hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
"hexcasting.mishap.hexical:inedible": "魔袋中的物品无法食用。",
"hexcasting.mishap.hexical:magic_missile_coordinates": "无法辨识出空间轴。",
- "hexcasting.mishap.hexical:needs_wristpocket": "本应由玩家或顶部放有支座的法术环施放。",
"hexcasting.mishap.hexical:needs_staff": "本应由法杖施放。",
"hexcasting.mishap.hexical:needs_lamp": "本应由精灵施放。",
"hexcasting.mishap.hexical:needs_hand_lamp": "本应由手持式精灵神灯施放。",
- "hexcasting.mishap.hexical:needs_turret": "本应由支座上的精灵施放。",
"hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
"hexcasting.mishap.hexical:illegal_jailbreak": "试图破解内含咒术的施法物品。",
@@ -176,7 +173,7 @@
"hexcasting.action.book.hexical:identify": "侦探之纯化",
"hexcasting.action.book.hexical:recognize": "识别器之纯化",
"hexcasting.action.book.hexical:damage_stack": "损耗之纯化",
- "hexcasting.action.book.hexical:classify": "分类器之纯化",
+ "hexcasting.action.book.hexical:classify": "抵量之纯化",
"hexcasting.action.book.hexical:get_biome": "地理之纯化",
"hexcasting.action.book.hexical:get_weather": "天气学家之精思",
@@ -247,18 +244,14 @@
"hexical.page.wooleyed_potion.title": "毡障药水",
"hexical.page.wooleyed_potion.0": "这些$(item)药水$()似乎会模糊物质与$(media)媒质$()的界限。一剂的药效持续 10 分钟。在它的作用下,我感觉我能实现愈加卓伟的奇迹。$(br2)最重要的变化,是生命力兑换$(media)媒质$()效率的增加。我估计每 1 颗红心可抵 1 整个$(l:items/amethyst)紫水晶碎片$()。",
"hexical.page.wooleyed_potion.header": "毡障药水",
- "hexical.page.wooleyed_potion.1": "向$(item)尴尬的药水$()里酿入一枚$(l:items/hexcasting)$(item)杂件$(),即可制成毡障药水。",
-
- "hexical.page.pedestal.title": "支座",
- "hexical.page.pedestal.0": "支座可以让物品悬浮在其上。和物品展示框和箱子不一样的是,我的$(hex)咒术$()仍可以和其上物品交互,就像和掉在地上的物品交互一样。空支座可吸引周围的物品,其与漏斗的交互也和我想的契合。就算物品被换走,它也能正常运作。",
- "hexical.page.pedestal.1": "$(o)展示用的支座和任何狭小封闭的空间没什么两样——都和监狱差不多。$()",
+ "hexical.page.wooleyed_potion.1": "向$(item)粗制的药水$()里酿入一枚$(l:items/hexcasting)$(item)杂件$(),即可制成毡障药水。",
"hexical.category.lamp": "精灵神灯",
"hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。村民说有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,这件物品必然有强大之处;因此我分出了这一章,用于记录我对它的研究。",
"hexcasting.action.hexical:lamp_finale": "终局之精思",
"hexical.page.lamp_finale.hand": "放下$(item)神灯$()的那一刹那,它会额外施法一次。这个图案能判断精灵的施法是否是最后一次,并据此做出反应。",
- "hexical.page.lamp_finale.arch": "停止$(item)大精灵神灯$()时,它会额外施法一次。我可以使用这个图案来判断某一次施法是否是最后的残响。",
+ "hexical.page.lamp_finale.arch": "停止$(item)大精灵神灯$()时,它会额外施法一次。我可以使用$(l:lamp/hand_lamps#hexical:lamp_finale)$(action)终局之精思$()来判断某一次施法是否是最后的残响。",
"hexical.page.hand_lamps.title": "手持式灯壶",
"hexical.page.hand_lamps.0": "我终于找到了上千年传言中说的东西了!如此强大的物件居然是在一位流浪商人的手里。这件$(item)手持式神灯$()仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。我还感受到$(item)神灯$()里有一个存在,它的施法能力与我相当。",
@@ -316,9 +309,6 @@
"hexical.page.lamp_pillows.title": "枕座",
"hexical.page.lamp_pillows.0": "似乎$(l:lamp/arch_lamps)$(item)大精灵神灯$()会在无人持有时抑制精灵的施法能力,也许是为阻止精灵用$(media)媒质$()削弱神灯的禁锢。我从未见到过这种表现;大概能设计如此精妙的仪器的意识总是才智与偏执并存吧。",
- "hexical.page.pedestal_circles.title": "法术环中的支座",
- "hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)支座$()也具有魔法功用!其中若放有$(l:patterns/readwrite#hexcasting:write)$(item)带着信息的物品$(),同时有$(l:greatwork/spellcircles)$(thing)法术环$()的媒质波穿过它,则它会将物品中的 iota 压入栈顶。如果该 iota 刚好处于未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$()中,则其会进入所构造的列表。",
-
"hexical.page.enlightened_patterns.title": "启迪后图案",
"hexical.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经启迪的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
"hexcasting.action.hexical:am_enlightened": "显圣之纯化",
@@ -391,20 +381,16 @@
"hexcasting.action.hexical:sneaking": "潜行之精思",
"hexical.page.sneaking.summary": "压入我按下$(thing)$(k:sneak)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
- "hexical.page.greatwork_utils.title": "卓伟之作实用图案",
- "hexical.page.greatwork_utils.0": "我发现了$(l:greatwork/akashiclib)阿卡夏书架$()和$(l:items/slate)$(item)石板$()的几个便捷特性!我可以对经过写入的书架按下$(thing)$(k:use)$()或使用$(l:patterns/spells/prestidigitation)魔法交互$(),以将其中 iota 复制到栈中。我还发现了能向影响范围内的$(l:greatwork/akashiclib)$(item)书架$()和$(l:items/slate)$(item)石板$()写入与读取的图案。",
+ "hexical.page.akashic_conveniences.title": "阿卡夏实用图案",
+ "hexical.page.akashic_conveniences.0": "阿卡夏图书馆正是为用$(media)媒质$()存储信息而建,深入研究后能发现更多便捷操作也就不足为奇。我可以对经过写入的$(l:greatwork/akashiclib)$(item)书架$()按下$(thing)$(k:use)$()或使用$(l:patterns/spells/prestidigitation)魔法交互$(),以将其中 iota 复制到栈中。也可手持$(l:items/scroll)$(item)卷轴$()按下$(thing)$(k:use)$(),以将其图案键复制到其上。还有一系列图案能向影响范围内的$(l:greatwork/akashiclib)$(item)书架$()和$(l:items/slate)$(item)石板$()写入与读取,无需消耗$(media)媒质$()。",
"hexcasting.action.hexical:key_shelf": "图书管理员之纯化",
- "hexical.page.key_shelf.summary": "读取$(l:greatwork/akashiclib)阿卡夏书架$()的键。无需消耗$(media)媒质$()。",
+ "hexical.page.key_shelf.summary": "读取$(l:greatwork/akashiclib)$(item)阿卡夏书架$()的键。",
"hexcasting.action.hexical:read_shelf": "图书管理员之纯化,第二型",
- "hexical.page.read_shelf.summary": "读取$(l:greatwork/akashiclib)阿卡夏书架$()的 iota。无需消耗$(media)媒质$()。",
+ "hexical.page.read_shelf.summary": "读取$(l:greatwork/akashiclib)$(item)阿卡夏书架$()的 iota。",
"hexcasting.action.hexical:write_shelf": "图书管理员之策略",
- "hexical.page.write_shelf.summary": "以图案键向$(l:greatwork/akashiclib)阿卡夏书架$()写入 iota。无需消耗$(media)媒质$()。",
+ "hexical.page.write_shelf.summary": "以图案键向$(l:greatwork/akashiclib)$(item)阿卡夏书架$()写入 iota。",
"hexcasting.action.hexical:clear_shelf": "图书管理员之策略,第二型",
- "hexical.page.clear_shelf.summary": "清除给定的$(l:greatwork/akashiclib)阿卡夏书架$()。无需消耗$(media)媒质$()。",
- "hexcasting.action.hexical:read_slate": "仪式学家之纯化",
- "hexical.page.read_slate.summary": "读取$(l:items/slate)$(item)石板$()上的图案,若无则返回 $(l:casting/influences)$(thing)Null$()。无需消耗$(media)媒质$()。",
- "hexcasting.action.hexical:write_slate": "仪式学家之策略",
- "hexical.page.write_slate.summary": "向$(l:items/slate)$(item)石板$()写入图案,若传入 $(l:casting/influences)$(thing)Null$() 则将其清除。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.clear_shelf.summary": "清除给定的$(l:greatwork/akashiclib)$(item)阿卡夏书架$()。",
"hexical.page.mage_block.title": "术师方块",
"hexical.page.mage_block": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
@@ -466,7 +452,7 @@
"hexical.page.wristpocket_count.summary": "返回魔袋中的物品数,如果魔袋为空则返回 0。",
"hexcasting.action.hexical:sleight": "花招",
"hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.sleight.0": "传入向量时:将魔袋中的物品投放到对应位置。传入物品实体时:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(l:greatwork/spellcircles)$(thing)法术环$()也可以施放此法术,以操纵促动石上方支座中的物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
+ "hexical.page.sleight.0": "传入向量时:将魔袋中的物品投放到对应位置。传入物品实体时:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
"hexcasting.action.hexical:mage_hand": "法师之手",
"hexical.page.mage_hand.summary": "将我意识中的魔法手投射出来,以在世界中使用魔袋中的物品交互。如果魔袋为空,则表现为空手交互。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.mage_hand.0": "传入实体时:使用魔袋中物品与该实体交互。传入向量时:使用物品与该处方块或$(o)空间$()交互。而因为这只手仅是意识的投射,它无法使用仅限玩家的施法方式。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
@@ -695,7 +681,7 @@
"hexcasting.action.hexical:env_arch_lamp": "大愿之精思",
"hexical.page.env_arch_lamp.summary": "检验该图案是否由$(l:lamp/arch_lamps)$(item)大精灵神灯$()施放。",
"hexcasting.action.hexical:env_turret": "炮塔之精思",
- "hexical.page.env_turret.summary": "检验该图案是否由处于$(l:items/pedestals)$(thing)支座$()中的$(l:lamp/arch_lamps)$(item)大精灵神灯$()施放。",
+ "hexical.page.env_turret.summary": "检验该图案是否由自动运行的$(l:lamp/arch_lamps)$(item)大精灵神灯$()施放。",
"hexcasting.action.hexical:env_circle": "建构之精思",
"hexical.page.env_circle.summary": "检验该图案是否由某种$(l:greatwork/spellcircles)$(thing)$(o)卓伟之作$()施放。",
"hexcasting.action.hexical:env_evocation": "灵能之精思",
@@ -722,7 +708,7 @@
"hexical.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
"hexcasting.action.hexical:recognize": "识别器之纯化",
"hexical.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
- "hexcasting.action.hexical:classify": "分类器之纯化",
+ "hexcasting.action.hexical:classify": "抵量之纯化",
"hexical.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
"hexcasting.action.hexical:get_mainhand_stack": "工具之纯化",
"hexical.page.get_mainhand_stack.summary": "返回玩家主手物品的类型。",
From 8cbfbd3f3821f3af509f0108dea5a5f2857c574f Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 26 Mar 2025 23:00:18 +0800
Subject: [PATCH 23/78] HexMapping path
---
.../1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json b/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
index f07413f407ed..1bdac1500d2f 100644
--- a/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
+++ b/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
@@ -1,6 +1,6 @@
[
{
"type": "indirect",
- "source": "projects/1.20/assets/hexmapping/hexmapping/lang"
+ "source": "projects/1.20/assets/hexmapping/hexmapping"
}
]
\ No newline at end of file
From bda30be93586793fef72c8797770a8a718cefe00 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Thu, 27 Mar 2025 14:11:14 +0800
Subject: [PATCH 24/78] HexMachina path
---
.../hex_machina/lang/en_us.json | 0
.../hex_machina/lang/zh_cn.json | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename projects/1.20-fabric/assets/{1UNKNOWN => modrinth-hex-machina}/hex_machina/lang/en_us.json (100%)
rename projects/1.20-fabric/assets/{1UNKNOWN => modrinth-hex-machina}/hex_machina/lang/zh_cn.json (100%)
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json
similarity index 100%
rename from projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/en_us.json
rename to projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json
similarity index 100%
rename from projects/1.20-fabric/assets/1UNKNOWN/hex_machina/lang/zh_cn.json
rename to projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json
From 250269d8039d3fbd88a664145380c40a93de8566 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 30 Mar 2025 12:40:24 +0800
Subject: [PATCH 25/78] =?UTF-8?q?Overevaluate=20Hexical=20Hextrogen=20Hexp?=
=?UTF-8?q?osition=20Hexchanting=20update=EF=BC=9A=E5=AE=98=E5=BA=93?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../1UNKNOWN/hexchanting/lang/en_us.json | 20 +-
.../1UNKNOWN/hexchanting/lang/zh_cn.json | 18 +-
.../1UNKNOWN/hexposition/lang/en_us.json | 174 +++++++++++++++
.../1UNKNOWN/hexposition/lang/zh_cn.json | 174 +++++++++++++++
.../1UNKNOWN/overevaluate/lang/en_us.json | 8 +-
.../1UNKNOWN/overevaluate/lang/zh_cn.json | 8 +-
.../modrinth-hexical/hexical/lang/en_us.json | 211 +-----------------
.../modrinth-hexical/hexical/lang/zh_cn.json | 211 +-----------------
.../hextrogen/lang/en_us.json | 8 +-
.../hextrogen/lang/zh_cn.json | 2 -
10 files changed, 404 insertions(+), 430 deletions(-)
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json
index ebb601287179..18cdb0933cdb 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json
@@ -10,13 +10,19 @@
"item.hexchanting.amethyst_shovel": "Amethyst Shovel",
"item.hexchanting.amethyst_sword": "Amethyst Sword",
"hexcasting.action.hexchanting:imbue_equipment": "Imbue Equipment",
+
"hexchanting.page.imbuing.title": "Imbuing Equipment",
"hexchanting.page.imbuing.0": "I have found uses for many of Nature's resources outside of my work with _Hexes, such as the construction of tools and armaments. It follows that I am able to do the same with amethyst. If I can align the crystalline structure correctly they can even channel media to cast Hexes.",
- "hexchanting.page.imbuing.1": "After experimentation I have found that charged amethyst works best when crafting equipment. By substituting it for a material like iron or diamond I can craft items with comparable performance to their diamond equivalents, though less durable. Their true strength is how they interact with the world. When used they resonate with the surrounding media, providing a guide for hexes channeled through them.",
+ "hexchanting.page.imbuing.1": "After experimentation I have found that charged amethyst works best when crafting equipment. By substituting it for a material like iron or diamond I can craft items with comparable performance to their diamond equivalents, though they are less durable. Their true strength is how they interact with the world. When used they resonate with the latent media in the surrounding environment, providing a guide for hexes channeled through them.",
"hexchanting.page.imbuing.2": "Compromises have had to be made in the creation of these tools. They must be fed with external media when casting else they will cannibalize their own materials, possibly to the point of destruction. This is similar to a $(l:items/hexcasting)$(item)Cypher/$, though these tools can be recharged.",
- "hexchanting.page.imbuing.3": "Regular use also slowly drains this reservoir - I believe the media is being expended healing damage to the structure of the amethyst. Conventional means of equipment repair have proved ineffective due to difficulties in integrating a new matrix into the existing crystal.",
- "hexchanting.page.imbuing.4": "My attempts to craft a bow on similar principles have failed. Amethyst simply doesn't have the flexibility required. I have instead resorted to crafting arrows with amethyst shards, in place of flint. These can be imbued like my other amethyst equipment but they can only draw on their internal media, which is comparable to an amethyst shard. I am sure I could craft an equivalent out of media alone, but there are niches where I may find this useful.",
- "hexchanting.page.imbue_equipment.summary.0": "Imbues the supplied hexes into the item in my other hand, so that they will be cast whenever the item is used.",
- "hexchanting.page.imbue_equipment.summary.1": "For tools (axes, hoes, pickaxes and shovels) this triggers after breaking a block. The stack is initialized with the location of the broken block. Break block spells cast through this tool behave as if broken by the tool, which includes any enchantment effects. Swords cast on hit and push the targeted entity to the stack.",
- "hexchanting.page.imbue_equipment.summary.2": "Armour is more complicated: it casts when the wearer takes damage and pushes the attacking entity, source entity, position and amount to the stack. All but the last may be null, as Nature perceives things in strange ways. Arrows cast when they hit an entity, pushing themself and their target to the stack."
-}
\ No newline at end of file
+ "hexchanting.page.imbuing.3": "Regular use also slowly drains this reservoir - I believe the media is being expended to heal damage to the structure of the amethyst. Conventional means of equipment repair have proved ineffective due to difficulties in integrating a new matrix into the existing crystal.",
+ "hexchanting.page.imbuing.tools.0": "Axes, hoes, pickaxes and shovels cast after breaking a block. The stack is initialized with the location of the broken block. Break block spells cast through these tools behave as if broken by the tool, which includes any enchantment effects.",
+ "hexchanting.page.imbuing.weapons.sword": "Swords cast on hit and push the targeted entity to the stack.",
+ "hexchanting.page.imbuing.weapons.arrow.1": "My attempts to craft a bow on similar principles have failed. Amethyst simply doesn't have the flexibility required. I have instead resorted to crafting arrows with amethyst shards, in place of flint. These can be imbued like my other amethyst equipment but they can only draw on their internal media and affect a limited area. I am sure I could craft an equivalent out of media alone, but there are niches where I may find this useful.",
+ "hexchanting.page.imbuing.weapons.arrow": "Arrows cast when striking an entity or a block. In the first case the entity is pushed to the stack, in the latter a null iota. Arrows have an amethyst shard's worth of media and a 4 block ambit radius.",
+ "hexchanting.page.imbuing.armour.helmet": "Helmets casts when a mob, hostile or otherwise, begins to target me. The identity of the mob is pushed to the stack.",
+ "hexchanting.page.imbuing.armour.chestplate": "Chestplates cast when I take damage. Two nullable entities and the amount of damage are pushed to the stack. The first entity is the direct source of the damage, such as an arrow, and the second is the indirect source, such as whoever fired the arrow.",
+ "hexchanting.page.imbuing.armour.leggings": "Leggings cast in the unfortunate event of my death. The source of my demise is pushed to the stack, in the same form as the chestplate. Because I am no longer alive to serve as a conduit this will always use the legging's internal media.",
+ "hexchanting.page.imbuing.armour.boots": "Boots cast whenever I fall about 1.5 blocks, pushing the precise distance to the stack. This trigger is sensitive and can be fooled into resetting by going up.",
+ "hexchanting.page.imbue_equipment.summary.0": "Imbues the supplied hexes into the amethyst equipment in my other hand, so that they will be cast whenever the item is used. Costs 9 charged amethyst except on arrows, which cost 5 shards."
+}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
index d5c3a8e82403..6dbd7698d9da 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
@@ -10,13 +10,19 @@
"item.hexchanting.amethyst_shovel": "紫水晶锹",
"item.hexchanting.amethyst_sword": "紫水晶剑",
"hexcasting.action.hexchanting:imbue_equipment": "装备融能",
+
"hexchanting.page.imbuing.title": "为装备融能",
"hexchanting.page.imbuing.0": "在$(hex)咒术$()之外,我还发现了自然所赐许多资源的其他用途,就比如说可以制造工具和兵器。紫水晶能做到这些可谓顺理成章。要是能把其中的晶体结构也正确对齐,它们甚至还能介导媒质、施放咒术。",
- "hexchanting.page.imbuing.1": "实验表明,充能紫水晶在合成装备这一方面表现最好。把它放到原本属于铁和钻石等材料的位置即可,所制成物品的性能与用钻石制成的相当,但前者不如后者耐用。这些装备真正的强大之处,在于它们与世界交互的方式。使用时,它们会与周围的媒质共振,从而引导穿过自身的咒术。",
+ "hexchanting.page.imbuing.1": "实验表明,充能紫水晶在合成装备这一方面表现最好。把它放到原本属于铁和钻石等材料的位置即可,所制成物品的性能与用钻石制成的相当,但前者不如后者耐用。这些装备真正的强大之处,在于它们与世界交互的方式。使用时,它们会与周围环境的潜在媒质共振,从而引导穿过自身的咒术。",
"hexchanting.page.imbuing.2": "取舍在这些工具的制造过程中不可避免。施法时,必须为其提供外源媒质,否则它们便会侵蚀构成自身的材料,甚至可能侵蚀到完全损毁。这一性质与$(l:items/hexcasting)$(item)杂件/$类似;不同之处在于,这些工具可以充能。",
"hexchanting.page.imbuing.3": "常规的使用也会缓慢消耗它们自身的媒质——我想应该是用来修复紫水晶结构中的损伤了。而因为已有的晶体和新基质难以整合,传统的修复流程对这些工具效果不佳。",
- "hexchanting.page.imbuing.4": "我尝试过用这种材料制弓,但失败了;紫水晶的刚度太高。之后,我改为用紫水晶碎片代替燧石合成箭。这些箭可像其他紫水晶装备一样融能,但它们只能使用其自身的媒质:大约相当于 1 个紫水晶碎片。我当然可以只用媒质就做出同样功能的东西,但这些箭确实有其独特的长处。",
- "hexchanting.page.imbue_equipment.summary.0": "将所给咒术融注入另一只手中的物品,每次使用该物品时即会施放该咒术。",
- "hexchanting.page.imbue_equipment.summary.1": "对于工具(斧、锄、镐、锹)而言,咒术会在破坏方块后触发;此时栈以所破坏方块的位置起始。若是经由这些工具施放破坏方块法术,表现会与使用该工具破坏一致,魔咒也算在内。剑会在击中敌人时施法,起始栈为所击中的实体。",
- "hexchanting.page.imbue_equipment.summary.2": "盔甲的机制稍显复杂:它们会在穿戴者受到伤害时施法,并向起始栈中压入进行攻击的实体、来源实体、位置、伤害量。除最后一个参数外,其他参数均可能为 Null。自然看待事物的眼光很奇特。箭会在命中实体时施法,并向其栈压入其自身和其目标。"
-}
\ No newline at end of file
+ "hexchanting.page.imbuing.tools.0": "斧、锄、镐、锹等会在破坏方块后施法,其栈以所破坏方块的位置起始。这些工具施放的破坏方块法术表现为使用工具自身进行破坏,其上魔咒也会起效。",
+ "hexchanting.page.imbuing.weapons.sword": "剑会在击中实体时施法,其栈以目标实体起始。",
+ "hexchanting.page.imbuing.weapons.arrow.1": "我尝试过用这种材料制弓,但失败了;紫水晶的刚度太高。之后,我改为用紫水晶碎片代替燧石合成箭。这些箭可像其他紫水晶装备一样融能,但它们只能使用其自身的媒质,影响范围也有限。我当然可以只用媒质就做出同样功能的东西,但这些箭确实有其独特的长处。",
+ "hexchanting.page.imbuing.weapons.arrow": "箭会在击中实体或方块时施放。前者栈以命中实体起始,后者以 Null 起始。此类箭具有相当于 1 个紫水晶碎片的媒质,影响范围半径为 4 格。",
+ "hexchanting.page.imbuing.armour.helmet": "头盔会在生物(无论敌对与否)等以我为攻击目标时施法。栈以代表该实体的 iota 起始。",
+ "hexchanting.page.imbuing.armour.chestplate": "胸甲会在我受到伤害时施法。栈以两个可为 Null 的实体和伤害量起始。第一实体是伤害的直接来源,如箭;第二实体是间接来源,如发射箭的实体。",
+ "hexchanting.page.imbuing.armour.leggings": "护腿会在我不幸死亡时施法。栈以致死原因起始,形式与胸甲一致。而由于我已死,无法再引导媒质,护腿只会使用其自身的媒质施法。",
+ "hexchanting.page.imbuing.armour.boots": "靴子会在我摔落过大约 1.5 格时施法。栈以精确摔落距离起始。这一触发条件比较敏感,同时还可通过向上爬升来重置。",
+ "hexchanting.page.imbue_equipment.summary.0": "将所给媒质融注入另一只手中的紫水晶装备,后续使用装备时即会施法。消耗 9 个充能紫水晶;箭除外,消耗 5 个紫水晶碎片。"
+}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
new file mode 100644
index 000000000000..ef4aad1f0d75
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
@@ -0,0 +1,174 @@
+{
+ "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
+ "hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
+ "hexcasting.mishap.invalid_value.class.identifier": "an identifier",
+ "hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
+ "hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
+ "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
+ "hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
+ "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
+ "hexcasting.mishap.invalid_value.potion_holding": "a food, potion, or tipped arrow item entity",
+ "hexcasting.mishap.invalid_value.recognizable": "a target with extra information",
+ "hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
+
+ "hexposition.page.enlightened_patterns.title": "Enlightened Patterns",
+ "hexposition.page.enlightened_patterns.0": "After enlightenment, I find myself acutely aware of certain patterns to aid with my newfound abilities. These patterns don't seem to require anything from me that I didn't have before, perhaps I've always been able to cast them but was unaware of their existence. An unenlightened player will be able to use $(l:items/hexcasting)$(item)casting devices$() with these patterns.",
+ "hexcasting.action.hexposition:am_enlightened": "Epiphany Purification",
+ "hexposition.page.am_enlightened.summary": "Pushes whether the given player has achieved enlightenment like I have.",
+ "hexcasting.action.hexposition:is_brainswept": "Sentience Purification",
+ "hexposition.page.is_brainswept.summary": "Pushes whether an entity \"has been magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
+
+ "hexposition.page.perlin.title": "Quasirandomness",
+ "hexposition.page.perlin.0": "In certain regions of the world, ambient _media is more concentrated. I can measure that concentration and even extrapolate backwards and forwards in time to get a quasi-random number between 0 and 1, corresponding to that location at that time. Points in time and space that are close to each other often have similar values.",
+ "hexcasting.action.hexposition:perlin": "Perlin Distillation",
+ "hexposition.page.perlin.summary": "Measures the concentration of ambient at that point in space and time, normalized between 0 and 1.",
+
+ "hexposition.category.scrying": "Scrying",
+ "hexposition.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world. While likely not useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
+
+ "hexposition.page.blocks.title": "Blocks",
+ "hexcasting.action.hexposition:block_hardness": "Miner's Purification",
+ "hexposition.page.block_hardness.summary": "Pushes how difficult blocks of that block type are to mine.",
+ "hexcasting.action.hexposition:block_blast_resistance": "Demoman's Purification",
+ "hexposition.page.block_blast_resistance.summary": "Pushes how resistant blocks of that block type are to explosions.",
+ "hexcasting.action.hexposition:blockstate_waterlogged": "Plumber's Purification",
+ "hexposition.page.blockstate_waterlogged.summary": "Pushes whether the block is waterlogged, or $(l:casting/influences)$(thing)Null$() if the block can not be waterlogged.",
+ "hexcasting.action.hexposition:blockstate_rotation": "Orientation Purification",
+ "hexposition.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or $(l:casting/influences)$(thing)Null$() if the block does not have a facing direction.",
+ "hexcasting.action.hexposition:blockstate_crop": "Farmer's Purification",
+ "hexposition.page.blockstate_crop.summary": "Pushes a number 0 to 1, corresponding to how grown that crop is, as well as beehives, composters, and cauldrons. Strangely works on cakes too.",
+ "hexcasting.action.hexposition:blockstate_glow": "Glowing Purification",
+ "hexposition.page.blockstate_glow.summary": "Pushes a boolean for whether the block is in a \"lit\" state, for example furnaces, Redstone torches, lamps, and campfires.",
+ "hexcasting.action.hexposition:blockstate_lock": "Lock Purification",
+ "hexposition.page.blockstate_lock.summary": "Pushes a boolean for whether the block is currently in a \"open\" state, for example doors, trapdoors, fence gates, and open barrels.",
+ "hexcasting.action.hexposition:blockstate_turn": "Angle Purification",
+ "hexposition.page.blockstate_turn.summary": "Pushes a number corresponding to the rotation of signs, skulls, and banners.",
+ "hexcasting.action.hexposition:blockstate_bunch": "Bunching Purification",
+ "hexposition.page.blockstate_bunch.summary": "Pushes how many are in a bunch block, or $(l:casting/influences)$(thing)Null$() otherwise. Useful only for candles, sea pickles, and turtle eggs.",
+ "hexcasting.action.hexposition:blockstate_book": "Book Purification",
+ "hexposition.page.blockstate_book.summary": "Pushes a boolean for whether lecterns or jukeboxes have a book/music disc in them respectively. I read that it may work for some kind of bookshelf involved in a great work too.",
+
+ "hexposition.page.enchantments.title": "Enchantments",
+ "hexcasting.action.hexposition:get_enchantments": "Thaumaturgist's Purification",
+ "hexposition.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
+ "hexcasting.action.hexposition:get_enchantment_strength": "Charm Distillation",
+ "hexposition.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
+
+ "hexposition.page.entities.title": "Entities",
+ "hexcasting.action.hexposition:entity_width": "Caliper's Purification",
+ "hexposition.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
+ "hexcasting.action.hexposition:theodolite": "Theodolite's Purification",
+ "hexposition.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
+ "hexcasting.action.hexposition:get_health": "Vitality Purification",
+ "hexposition.page.get_health.summary": "Pushes how close an entity is to death. I can think of these in terms of half-hearts.",
+ "hexcasting.action.hexposition:get_max_health": "Fitness Purification",
+ "hexposition.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
+ "hexcasting.action.hexposition:get_air": "Suffocation Purification",
+ "hexposition.page.get_air.summary": "Pushes the number of seconds before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
+ "hexcasting.action.hexposition:get_max_air": "Lung Purification",
+ "hexposition.page.get_max_air.summary": "Pushes the number of seconds an entity can last outside their normal breathing environment before they start suffocating.",
+ "hexcasting.action.hexposition:get_player_hunger": "Hunger Purification",
+ "hexposition.page.get_player_hunger.summary": "Pushes how full a player is. I can imagine this as half-hunger-hunches.",
+ "hexcasting.action.hexposition:get_player_saturation": "Stamina Purification",
+ "hexposition.page.get_player_saturation.summary": "Pushes my saturation, which roughly correlates to how long the player will remain full.",
+ "hexcasting.action.hexposition:is_burning": "Inferno Purification",
+ "hexposition.page.is_burning.summary": "Pushes whether the entity is burning. Also applies to entities that are visually on fire, even if they are immune to fire, such as blazes attacking.",
+ "hexcasting.action.hexposition:burning_time": "Inferno Purification II",
+ "hexposition.page.burning_time.summary": "Pushes how long in seconds the entity will continue burning if not put out.",
+ "hexcasting.action.hexposition:is_wet": "Enderman's Purification",
+ "hexposition.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
+ "hexcasting.action.hexposition:is_baby": "Youth Purification",
+ "hexposition.page.is_baby.summary": "Pushes whether a living creature is in its baby form. Also works on armor stands oddly.",
+ "hexcasting.action.hexposition:breedable": "Reproduction Purification",
+ "hexposition.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or $(l:casting/influences)$(thing)Null$() if that creature is not capable of that type of reproduction.",
+ "hexcasting.action.hexposition:is_sleeping": "Sloth's Purification",
+ "hexposition.page.is_sleeping.summary": "Pushes whether the entity is sleeping. Applies to players, cats, foxes, and a variety of other creatures.",
+ "hexcasting.action.hexposition:is_sprinting": "Racer's Purification",
+ "hexposition.page.is_sprinting.summary": "Pushes whether the entity is sprinting. Includes if I am swimming or if I have left the ground since sprinting and extends to cats, foxes, and more.",
+
+ "hexposition.page.environment.title": "Environment",
+ "hexposition.page.environment.0": "This section of patterns is quite meta: they push properties of the magical environment they are running in. Certain environments are unable to cast certain patterns so this section may be useful in avoiding mishaps.",
+ "hexcasting.action.hexposition:env_ambit": "Ambit Purification",
+ "hexposition.page.env_ambit.summary": "Pushes whether a location or entity is in ambit.",
+ "hexcasting.action.hexposition:env_staff": "Staff Reflection",
+ "hexposition.page.env_staff.summary": "Pushes whether a $(l:items/staff)$(item)Staff$() is being used to cast this pattern.",
+ "hexcasting.action.hexposition:env_offhand": "Dexterity Reflection",
+ "hexposition.page.env_offhand.summary": "Pushes whether the most dominant hand of the caster is being used to cast this pattern. May work strangely for casters without hands...",
+ "hexcasting.action.hexposition:env_media": "Media Reflection",
+ "hexposition.page.env_media.summary": "Pushes the _media available to this current cast.",
+ "hexcasting.action.hexposition:env_packaged_hex": "Device Reflection",
+ "hexposition.page.env_packaged_hex.summary": "Pushes whether any form of $(l:items/hexcasting)$(item)casting device$() is being used to cast this pattern.",
+
+ "hexposition.page.food.title": "Food",
+ "hexcasting.action.hexposition:edible": "Edibility Purification",
+ "hexposition.page.edible.summary": "Takes in an item identifier and pushes whether I can eat it.",
+ "hexcasting.action.hexposition:get_hunger": "Calorie Purification",
+ "hexposition.page.get_hunger.summary": "Takes in an item identifier and pushes the amount it will fill me.",
+ "hexcasting.action.hexposition:get_saturation": "Satiation Purification",
+ "hexposition.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill me.",
+ "hexcasting.action.hexposition:is_meat": "Flesh Purification",
+ "hexposition.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat, meaning wolves can eat it.",
+ "hexcasting.action.hexposition:is_snack": "Dessert Purification",
+ "hexposition.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack, meaning I can eat it really quickly.",
+
+ "hexposition.page.identifiers.title": "Identifiers",
+ "hexposition.page.identifiers.0": "My _Hexes has so far been quite blind to the world. I can get a creature's height, velocity, and more but I can't directly identify that entity. Nature's solution to the problem is the $(o)identifier iota$(). Every entity, block, status effect, enchantment, sound, etc... has a unique identifier that my _Hexes can identify. Once I have two identifiers, I can compare them with each other.",
+ "hexcasting.action.hexposition:identify": "Detective's Purification",
+ "hexposition.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
+ "hexposition.page.identifiers.1": "I notice that if I were to use Detective's Purification on an item, it returns that it's an item entity, but if I were to use Recognizer's Purification on that same entity, it would return the type of item. This type of item matches with a block identifier returned by Detective's Purification. I can imagine Recognizer's as returning $(o)additional$() information if possible.",
+ "hexcasting.action.hexposition:recognize": "Recognizer's Purification",
+ "hexposition.page.recognize.summary": "Pushes extra identifier information of an entity, mainly the item type of an item entity or the item type inside an item frame entity.",
+ "hexcasting.action.hexposition:classify": "Modicum Purification",
+ "hexposition.page.classify.summary": "Pushes the identifier of an iota's type. Can be used to determine whether two iota are the same type.",
+ "hexcasting.action.hexposition:get_mainhand_stack": "Tool Purification",
+ "hexposition.page.get_mainhand_stack.summary": "Returns the type of item in the player's mainhand.",
+ "hexcasting.action.hexposition:get_offhand_stack": "Accessory Purification",
+ "hexposition.page.get_offhand_stack.summary": "Returns the type of item in the player's offhand.",
+
+ "hexposition.page.item.title": "Items",
+ "hexcasting.action.hexposition:count_stack": "Storage Purification",
+ "hexposition.page.count_stack.summary": "Takes in an item entity and pushes how many items are in it.",
+ "hexcasting.action.hexposition:count_max_stack": "Warehouse Purification",
+ "hexposition.page.count_max_stack.summary": "Takes in an item entity and pushes how many items that can stack in it.",
+ "hexcasting.action.hexposition:damage_stack": "Deterioration Purification",
+ "hexposition.page.damage_stack.summary": "Takes in an item entity and pushes how much damage the item has sustained.",
+ "hexcasting.action.hexposition:damage_max_stack": "Fragility Purification",
+ "hexposition.page.damage_max_stack.summary": "Takes in an item entity and pushes how much durability the item can have at its peak.",
+ "hexcasting.action.hexposition:media_max_stack": "Potential Purification",
+ "hexposition.page.media_max_stack.summary": "Takes in an item entity and pushes either $(l:casting/influences)$(thing)Null$() if the item does not have any media-holding potential, or the amount of _media it is capable of holding at its peak.",
+
+ "hexposition.page.status_effects.title": "Status Effects",
+ "hexcasting.action.hexposition:get_effects_entity": "Diagnosis Purification",
+ "hexposition.page.get_effects_entity.summary": "Pushes a list of status effects the entity is afflicted with.",
+ "hexcasting.action.hexposition:get_effects_item": "Prescription Purification",
+ "hexposition.page.get_effects_item.summary": "Pushes a list of status effects the food or potion will bestow.",
+ "hexcasting.action.hexposition:get_effect_category": "Condition Purification",
+ "hexposition.page.get_effect_category.summary": "Pushes the general \"goodness\" of the effect towards the afflicted. -1 for harmful, 0 for neutral, and 1 for beneficial.",
+ "hexcasting.action.hexposition:get_effect_amplifier": "Concentration Distillation",
+ "hexposition.page.get_effect_amplifier.summary": "Pushes the potency of the specific effect acting on the entity or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
+ "hexcasting.action.hexposition:get_effect_duration": "Clearance Distillation",
+ "hexposition.page.get_effect_duration.summary": "Pushes how long the effect will last in seconds or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
+
+ "hexposition.page.world.title": "World",
+ "hexcasting.action.hexposition:get_light": "Luminance Purification",
+ "hexposition.page.get_light.summary": "Pushes the light level at the position as a number 0 to 15. If inside a nontransparent block, it returns zero.",
+ "hexcasting.action.hexposition:get_weather": "Meterologist's Reflection",
+ "hexposition.page.get_weather.summary": "Pushes a number corresponding to the weather. 0 for clear, 1 for rain, and 2 for thundering.",
+ "hexcasting.action.hexposition:get_power": "Battery Purification",
+ "hexposition.page.get_power.summary": "Pushes the Redstone power that a position receives.",
+ "hexcasting.action.hexposition:get_comparator": "Peripheral Purification",
+ "hexposition.page.get_comparator.summary": "Pushes the power level a comparator would output if pressed against a position.",
+ "hexcasting.action.hexposition:get_day": "Circadian Reflection",
+ "hexposition.page.get_day.summary": "Pushes the progress of the day as a number between 0 (start) and 1 (end) of the day.",
+ "hexcasting.action.hexposition:get_time": "Temporal Reflection",
+ "hexposition.page.get_time.summary": "Pushes the age of the world for timekeeping, unaffected by events such as sleeping. Divided by 20, it returns seconds.",
+ "hexcasting.action.hexposition:get_biome": "Geographical Purification",
+ "hexposition.page.get_biome.summary": "Pushes the identifier of the biome type that the vector is within.",
+ "hexcasting.action.hexposition:get_dimension": "Plane Reflection",
+ "hexposition.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in.",
+ "hexcasting.action.hexposition:get_moon": "Lunar Reflection",
+ "hexposition.page.get_moon.summary": "Pushes the current phase of the moon as a fraction of its size.",
+ "hexcasting.action.hexposition:get_einstein": "Distortion Reflection",
+ "hexposition.page.get_einstein.summary": "Pushes whether this dimension is bounded by standard rules of space and time: compasses and clocks will work here."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
new file mode 100644
index 000000000000..078fa127c130
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
@@ -0,0 +1,174 @@
+{
+ "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
+ "hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识",
+ "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
+ "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
+ "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
+ "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
+ "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
+ "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
+ "hexcasting.mishap.invalid_value.potion_holding": "一个食物、药水、或药箭物品实体",
+ "hexcasting.mishap.invalid_value.recognizable": "一个带有额外信息的目标",
+ "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
+
+ "hexposition.page.enlightened_patterns.title": "启迪后图案",
+ "hexposition.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经启迪的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
+ "hexcasting.action.hexposition:am_enlightened": "显圣之纯化",
+ "hexposition.page.am_enlightened.summary": "检验所给玩家是否和我一样经过启迪。",
+ "hexcasting.action.hexposition:is_brainswept": "感知之纯化",
+ "hexposition.page.is_brainswept.summary": "检验实体“是否经由魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
+
+ "hexposition.page.perlin.title": "准随机",
+ "hexposition.page.perlin.0": "某些地点的环境$(media)媒质$()密度比其他位置高。这种密度可以测量;甚至能在时间上回溯或前进,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
+ "hexcasting.action.hexposition:perlin": "柏林之馏化",
+ "hexposition.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
+
+ "hexposition.category.scrying": "探知",
+ "hexposition.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。虽然这些操作在大多数$(hex)咒术$()中没什么大用处,但有它们在也不错,我将来也许会用到。",
+
+ "hexposition.page.blocks.title": "方块",
+ "hexcasting.action.hexposition:block_hardness": "矿工之纯化",
+ "hexposition.page.block_hardness.summary": "压入挖掘给定方块的难易程度。",
+ "hexcasting.action.hexposition:block_blast_resistance": "爆破兵之纯化",
+ "hexposition.page.block_blast_resistance.summary": "压入给定方块对爆炸的抗性。",
+ "hexcasting.action.hexposition:blockstate_waterlogged": "管道工之纯化",
+ "hexposition.page.blockstate_waterlogged.summary": "检验方块是否含水。若方块无法含水,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexposition:blockstate_rotation": "方向之纯化",
+ "hexposition.page.blockstate_rotation.summary": "压入方块的朝向向量。若方块无朝向向量,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexposition:blockstate_crop": "农夫之纯化",
+ "hexposition.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的成熟程度,对蜂巢、堆肥桶、炼药锅同样有效。奇怪的是,对蛋糕也有效。",
+ "hexcasting.action.hexposition:blockstate_glow": "发光之纯化",
+ "hexposition.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有熔炉、红石火把、灯笼、营火等。",
+ "hexcasting.action.hexposition:blockstate_lock": "锁之纯化",
+ "hexposition.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有门、活板门、栅栏门、木桶等。",
+ "hexcasting.action.hexposition:blockstate_turn": "角度之纯化",
+ "hexposition.page.blockstate_turn.summary": "压入一个数,对应告示牌、头颅、旗帜的旋转方向。",
+ "hexcasting.action.hexposition:blockstate_bunch": "叠放之纯化",
+ "hexposition.page.blockstate_bunch.summary": "返回方块的叠放数,无法叠放则返回 $(l:casting/influences)$(thing)Null$()。仅对蜡烛、海泡菜、海龟蛋有效。",
+ "hexcasting.action.hexposition:blockstate_book": "书之纯化",
+ "hexposition.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。我读到过它可能对所谓“卓伟大作”中的某种奇妙书架也有效。",
+
+ "hexposition.page.enchantments.title": "魔咒",
+ "hexcasting.action.hexposition:get_enchantments": "奇术师之纯化",
+ "hexposition.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
+ "hexcasting.action.hexposition:get_enchantment_strength": "咒能之馏化",
+ "hexposition.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
+
+ "hexposition.page.entities.title": "实体",
+ "hexcasting.action.hexposition:entity_width": "卡尺之纯化",
+ "hexposition.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
+ "hexcasting.action.hexposition:theodolite": "经纬仪之纯化",
+ "hexposition.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
+ "hexcasting.action.hexposition:get_health": "生命力之纯化",
+ "hexposition.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
+ "hexcasting.action.hexposition:get_max_health": "健康之纯化",
+ "hexposition.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
+ "hexcasting.action.hexposition:get_air": "窒息之纯化",
+ "hexposition.page.get_air.summary": "压入实体距离窒息剩余的秒数。对脱水的海洋生物和溺水的陆地生物均有效。",
+ "hexcasting.action.hexposition:get_max_air": "双肺之纯化",
+ "hexposition.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少秒开始窒息。",
+ "hexcasting.action.hexposition:get_player_hunger": "饥饿之纯化",
+ "hexposition.page.get_player_hunger.summary": "返回玩家实体的饥饿值。使用半个饥饿值火腿作为单位。",
+ "hexcasting.action.hexposition:get_player_saturation": "耐力之纯化",
+ "hexposition.page.get_player_saturation.summary": "返回我的饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.action.hexposition:is_burning": "炼狱之纯化",
+ "hexposition.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
+ "hexcasting.action.hexposition:burning_time": "炼狱之纯化,第二型",
+ "hexposition.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余的时间。",
+ "hexcasting.action.hexposition:is_wet": "末影人之纯化",
+ "hexposition.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
+ "hexcasting.action.hexposition:is_baby": "青春之纯化",
+ "hexposition.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对盔甲架也有效。",
+ "hexcasting.action.hexposition:breedable": "繁衍之纯化",
+ "hexposition.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexposition:is_sleeping": "树懒之纯化",
+ "hexposition.page.is_sleeping.summary": "检验实体是否在睡眠状态。对玩家、猫、狐狸、以及一系列其他生物有效。",
+ "hexcasting.action.hexposition:is_sprinting": "赛车手之纯化",
+ "hexposition.page.is_sprinting.summary": "检验实体是否在疾跑。速泳和疾跑后离地均算作疾跑,对猫、狐狸等也有效。",
+
+ "hexposition.page.environment.title": "环境",
+ "hexposition.page.environment.0": "本节的图案比较“元”:它们会返回其所处的魔法环境。特定的环境中某些图案无法施放,所以本节图案也许适合用来规避事故。",
+ "hexcasting.action.hexposition:env_ambit": "影响范围之纯化",
+ "hexposition.page.env_ambit.summary": "检验所给位置或实体是否处于影响范围中。",
+ "hexcasting.action.hexposition:env_staff": "法杖之精思",
+ "hexposition.page.env_staff.summary": "检验该图案是否由$(l:items/staff)$(item)法杖$()施放。",
+ "hexcasting.action.hexposition:env_offhand": "敏捷之精思",
+ "hexposition.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果……",
+ "hexcasting.action.hexposition:env_media": "媒质之精思",
+ "hexposition.page.env_media.summary": "返回此次施放时可用的$(media)媒质$()的量。",
+ "hexcasting.action.hexposition:env_packaged_hex": "设备之精思",
+ "hexposition.page.env_packaged_hex.summary": "检验该图案是否由任意$(l:items/hexcasting)$(item)施法物品$()施放。",
+
+ "hexposition.page.food.title": "食物",
+ "hexcasting.action.hexposition:edible": "可食性之纯化",
+ "hexposition.page.edible.summary": "接受一个物品标识,检验它是否可被我食用。",
+ "hexcasting.action.hexposition:get_hunger": "卡路里之纯化",
+ "hexposition.page.get_hunger.summary": "接受一个物品标识,返回它为我带来的饱腹感的量。",
+ "hexcasting.action.hexposition:get_saturation": "饱和之纯化",
+ "hexposition.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.action.hexposition:is_meat": "肉类之纯化",
+ "hexposition.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类,也即狼能否食用。",
+ "hexcasting.action.hexposition:is_snack": "甜点之纯化",
+ "hexposition.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食,也即可否迅速食用。",
+
+ "hexposition.page.identifiers.title": "标识",
+ "hexposition.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
+ "hexcasting.action.hexposition:identify": "侦探之纯化",
+ "hexposition.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
+ "hexposition.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
+ "hexcasting.action.hexposition:recognize": "识别器之纯化",
+ "hexposition.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
+ "hexcasting.action.hexposition:classify": "抵量之纯化",
+ "hexposition.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
+ "hexcasting.action.hexposition:get_mainhand_stack": "工具之纯化",
+ "hexposition.page.get_mainhand_stack.summary": "返回玩家主手物品的类型。",
+ "hexcasting.action.hexposition:get_offhand_stack": "配饰之纯化",
+ "hexposition.page.get_offhand_stack.summary": "返回玩家副手物品的类型。",
+
+ "hexposition.page.item.title": "物品",
+ "hexcasting.action.hexposition:count_stack": "仓储之纯化",
+ "hexposition.page.count_stack.summary": "接受一个物品实体,返回其中物品数量。",
+ "hexcasting.action.hexposition:count_max_stack": "库房之纯化",
+ "hexposition.page.count_max_stack.summary": "接受一个物品实体,返回其中最多可堆叠多少物品。",
+ "hexcasting.action.hexposition:damage_stack": "损耗之纯化",
+ "hexposition.page.damage_stack.summary": "接受一个物品实体,返回物品剩余的耐久度。",
+ "hexcasting.action.hexposition:damage_max_stack": "脆弱性之纯化",
+ "hexposition.page.damage_max_stack.summary": "接受一个物品实体,返回物品的耐久度上限。",
+ "hexcasting.action.hexposition:media_max_stack": "潜能之纯化",
+ "hexposition.page.media_max_stack.summary": "接受一个物品实体,若其无法存储媒质,返回 $(l:casting/influences)$(thing)Null$();否则返回其$(media)媒质$()存储上限。",
+
+ "hexposition.page.status_effects.title": "状态效果",
+ "hexcasting.action.hexposition:get_effects_entity": "诊断之纯化",
+ "hexposition.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
+ "hexcasting.action.hexposition:get_effects_item": "处方之纯化",
+ "hexposition.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
+ "hexcasting.action.hexposition:get_effect_category": "药性之纯化",
+ "hexposition.page.get_effect_category.summary": "获取某效果对承受者造成效应“良性”与否。-1 为负面,0 为中性,1 为正面。",
+ "hexcasting.action.hexposition:get_effect_amplifier": "浓度之馏化",
+ "hexposition.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexposition:get_effect_duration": "效除之馏化",
+ "hexposition.page.get_effect_duration.summary": "获取效果的持续时间,以秒计,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
+
+ "hexposition.page.world.title": "世界",
+ "hexcasting.action.hexposition:get_light": "光照之纯化",
+ "hexposition.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
+ "hexcasting.action.hexposition:get_weather": "天气学家之精思",
+ "hexposition.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
+ "hexcasting.action.hexposition:get_power": "电池之纯化",
+ "hexposition.page.get_power.summary": "返回给定位置的红石信号强度。",
+ "hexcasting.action.hexposition:get_comparator": "外设之纯化",
+ "hexposition.page.get_comparator.summary": "返回比较器对准给定位置时会输出的红石信号强度。",
+ "hexcasting.action.hexposition:get_day": "昼夜之精思",
+ "hexposition.page.get_day.summary": "返回当天时间的进程,返回值在 0(一天刚开始)到 1(一天要结束)之间。",
+ "hexcasting.action.hexposition:get_time": "时间之精思",
+ "hexposition.page.get_time.summary": "压入世界经过的时间,主要用来计时,不受睡觉等事件的影响。除以 20 后即为秒数。",
+ "hexcasting.action.hexposition:get_biome": "地理之纯化",
+ "hexposition.page.get_biome.summary": "返回给定位置向量处生物群系的标识。",
+ "hexcasting.action.hexposition:get_dimension": "位面之精思",
+ "hexposition.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。",
+ "hexcasting.action.hexposition:get_moon": "月相之精思",
+ "hexposition.page.get_moon.summary": "返回当前的月相,返回值为可见的月亮照亮区域的占比。",
+ "hexcasting.action.hexposition:get_einstein": "扭曲之精思",
+ "hexposition.page.get_einstein.summary": "检验该维度是否遵守时间与空间的标准规则:指南针和钟能在其中运作。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
index ea3497eef6e1..dc3c6a24036e 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
@@ -2,6 +2,7 @@
"hexcasting.mishap.overevaluate:assert": "Assertion failed: %s.",
"hexcasting.mishap.overevaluate:needs_skippable": "Expected to be run inside of a skippable context.",
"hexcasting.mishap.overevaluate:needs_thoth": "Expected to be run inside of Thoth's Gambit.",
+ "hexcasting.mishap.overevaluate:apep": "Expected an iota at the top of the Apep pseudo-stack.",
"hexcasting.mishap.overevaluate:themis": "Expected a number at the top of the Themis pseudo-stack.",
"overevaluate.page.extra_stack.title": "Extra Stack Manipulation",
@@ -35,6 +36,9 @@
"overevaluate.page.soroban_reset.summary": "Resets the soroban to 0.",
"overevaluate.page.metas.title": "Advanced Metaevaluation",
+ "hexcasting.action.overevaluate:apep": "Apep's Gambit",
+ "overevaluate.page.apep.0": "Scans across the first list using the _Hex in the second list.",
+ "overevaluate.page.apep.1": "The first cast applies the _Hex on first and second iota. The top iota left after the cast (mishaps if none exist) is memorized. The next cast applies the _Hex on the last memorized iota and the third iota. Again, the top is memorized, and the process repeats with the fourth, fifth, sixth, etc... iota until the end of the first list. Finally, pushes all memorized iota to the stack in a list.$(br2)$(o)Euler did music too, you know$()",
"hexcasting.action.overevaluate:athena": "Athena's Gambit",
"overevaluate.page.athena.0": "Like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() but mishaps simply stop the execution and continue the _Hex without incurring the effects of the mishap. Pushes whether it mishapped.",
"hexcasting.action.overevaluate:athena_print": "Athena's Revelation",
@@ -43,8 +47,8 @@
"overevaluate.page.tutu.0": "Does nothing.",
"overevaluate.page.tutu.1": "This pattern seems useless but is helpful in conjunction with Charon's Gambit or Janus' Gambit as the \"other branch\". Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.$(br2)$(o)The only winning move is not to play.$()",
"hexcasting.action.overevaluate:janus": "Janus' Gambit",
- "overevaluate.page.janus.0": "Instantly terminates the _Hex regardless of current circumstances, breaking even through $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() and $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().",
- "overevaluate.page.janus.1": "It's useful to end a _Hex early once it has reached some desired state, without the difficulty of using $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() because $(l:metaevals#overevaluate:janus)$(action)Janus'$() can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes'$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$().$(br2)$(o)It is always important to know when something has reached its end.$()",
+ "overevaluate.page.janus.0": "Instantly terminates the _Hex regardless of current circumstances.",
+ "overevaluate.page.janus.1": "It's useful to end a _Hex early once it has reached some desired state because it can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().$(br2)$(o)It is always important to know when something has reached its end.$()",
"hexcasting.action.overevaluate:maat": "Ma'at's Gambit",
"overevaluate.page.maat.0": "Takes a boolean and any iota. If the boolean is false, mishaps and prints the iota.",
"overevaluate.page.maat.1": "This pattern is useful in order to break out of _Hexes if certain programmed conditions are not met.$(br2)$(o)Order in the court.$()",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
index bf9ebdfa8310..bfc99361ead7 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
@@ -2,6 +2,7 @@
"hexcasting.mishap.overevaluate:assert": "断言失败:%s。",
"hexcasting.mishap.overevaluate:needs_skippable": "本应在可跳过的上下文内运行。",
"hexcasting.mishap.overevaluate:needs_thoth": "本应在托特之策略内运行。",
+ "hexcasting.mishap.overevaluate:apep": "阿佩普之策略的伪栈栈顶本应存在一个iota。",
"hexcasting.mishap.overevaluate:themis": "忒弥斯之策略的伪栈栈顶本应存在一个数。",
"overevaluate.page.extra_stack.title": "栈操作附加",
@@ -35,6 +36,9 @@
"overevaluate.page.soroban_reset.summary": "将珠算计数器重置为 0。",
"overevaluate.page.metas.title": "高阶元运行",
+ "hexcasting.action.overevaluate:apep": "阿佩普之策略",
+ "overevaluate.page.apep.0": "用第二列表指定的$(hex)咒术$()扫描第一列表。",
+ "overevaluate.page.apep.1": "第一次施放会将$(hex)咒术$()作用于第一和第二个 iota,并暂存施放后留在栈顶的 iota(如招致事故则无)。下一次施放作用于上一个暂存的 iota 和第三个 iota,同样暂存栈顶元素。此过程会依次序运行下去,直至穷尽第一列表。最后,将所有暂存的 iota 组为列表返回。$(br2)$(o)欧拉也玩过音乐。$()",
"hexcasting.action.overevaluate:athena": "雅典娜之策略",
"overevaluate.page.athena.0": "运行方式类似$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$(),但会在遇到事故时继续施放$(hex)咒术$(),而不会带来事故本来的后果。返回其是否招致了事故。",
"hexcasting.action.overevaluate:athena_print": "雅典娜之揭示",
@@ -43,8 +47,8 @@
"overevaluate.page.tutu.0": "什么都不会做。",
"overevaluate.page.tutu.1": "此图案看上去可能没什么用,但它很适合作为卡戎之策略和雅努斯之策略的“另一分支”。运行此图案不会消耗执行深度和媒质,不会产生粒子,也不会对世界产生任何影响。$(br2)$(o)唯一的取胜之道就是不要参与。$()",
"hexcasting.action.overevaluate:janus": "雅努斯之策略",
- "overevaluate.page.janus.0": "立即终止当前$(hex)咒术$(),无视所有限制。不同于$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),它甚至能跳出$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()和$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()。",
- "overevaluate.page.janus.1": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限;$(l:patterns/metaevals#overevaluate:janus)$(action)雅努斯之策略$()不受$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()影响。$(br2)$(o)It is always important to know when something has reached its end.$()",
+ "overevaluate.page.janus.0": "立即终止当前$(hex)咒术$(),无视所有限制。",
+ "overevaluate.page.janus.1": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()、$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()、$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限。$(br2)$(o)咒术之将亡,其媒质也善。$()",
"hexcasting.action.overevaluate:maat": "玛阿特之策略",
"overevaluate.page.maat.0": "接受一个布尔值和任意 iota。若布尔值为 False,则产生事故并打印 iota。",
"overevaluate.page.maat.1": "此图案很适合在某些条件未满足时跳出$(hex)咒术$()。$(br2)$(o)法庭内保持肃静。$()",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 22368f7a7961..2946a69682bd 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -85,7 +85,6 @@
"hexcasting.mishap.bad_block.akashic_bookshelf": "an akashic bookshelf",
"hexcasting.mishap.bad_block.mage_block": "a mage block",
"hexcasting.mishap.bad_block.prestidigitation": "a prestidigitation-sensitive block",
- "hexcasting.mishap.bad_block.slate": "a slate block",
"hexcasting.mishap.bad_block.flower_spawnable": "air or a flower pot",
"hexcasting.mishap.bad_block.solid_platform": "a solid platform",
"hexcasting.mishap.bad_item.animated_scroll": "an animated scroll",
@@ -105,28 +104,16 @@
"hexcasting.mishap.bad_item.specklike": "a specklike entity",
"hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
"hexcasting.mishap.invalid_value.horizontal_axis_vector": "a horizontal axis vector",
- "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
- "hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
"hexcasting.mishap.invalid_value.class.dye": "a dye",
- "hexcasting.mishap.invalid_value.class.identifier": "an identifier",
"hexcasting.mishap.invalid_value.class.pigment": "a pigment",
"hexcasting.mishap.invalid_value.conjurable_flower_id": "an identifier of a conjurable flower type",
- "hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
"hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
- "hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
- "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
"hexcasting.mishap.invalid_value.integer_natural": "an integer greater than 0",
- "hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
- "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
"hexcasting.mishap.invalid_value.mesh_design": "a list of up to 32 vectors with magnitudes less than 10",
"hexcasting.mishap.invalid_value.nonempty_list": "a non-empty list",
"hexcasting.mishap.invalid_value.number_list": "a non-empty list of numbers",
- "hexcasting.mishap.invalid_value.null_or_pattern": "null or a pattern",
"hexcasting.mishap.invalid_value.number_or_vector": "a number or a vector",
- "hexcasting.mishap.invalid_value.potion_holding": "a food, potion, or tipped arrow item entity",
- "hexcasting.mishap.invalid_value.recognizable": "a target with extra information",
"hexcasting.mishap.invalid_value.small_vector": "a vector of length 2 or less",
- "hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
"hexcasting.mishap.invalid_value.to_pigment": "a colored dye, identifier of a pigment item, an item entity containing a pigment, or a player",
"hexcasting.mishap.invalid_value.true_dye": "a colored dye",
"hexcasting.mishap.invalid_value.true_dye_list": "a list of colored dyes",
@@ -146,18 +133,12 @@
"hexcasting.action.book.hexical:get_arch_lamp_use_time": "Arch. Refl.: Temporal",
"hexcasting.action.book.hexical:get_arch_lamp_media": "Arch. Refl.: Media",
"hexcasting.action.book.hexical:get_arch_lamp_storage": "Arch. Refl.: Memory",
- "hexcasting.action.book.hexical:get_effect_amplifier": "Concentration Dstl.",
- "hexcasting.action.book.hexical:get_effects_item": "Prescription Purif.",
- "hexcasting.action.book.hexical:get_enchantments": "Thaumaturgist's Purif.",
- "hexcasting.action.book.hexical:breedable": "Reproduction Purif.",
"hexcasting.action.book.hexical:get_hand_lamp_position": "Genie Refl.: Spatial",
"hexcasting.action.book.hexical:get_hand_lamp_rotation": "Genie Refl.: Rotational",
"hexcasting.action.book.hexical:get_hand_lamp_velocity": "Genie Refl.: Kinetic",
"hexcasting.action.book.hexical:get_hand_lamp_use_time": "Genie Refl.: Temporal",
"hexcasting.action.book.hexical:get_hand_lamp_media": "Genie Refl.: Media",
"hexcasting.action.book.hexical:get_hand_lamp_storage": "Genie Refl.: Memory",
- "hexcasting.action.book.hexical:nephthys": "Nephthys's Gambit",
- "hexcasting.action.book.hexical:sekhmet": "Sekhmet's Gambit",
"hexcasting.action.book.hexical:serialize_pattern": "Chirographer's Purif.",
"hexcasting.action.book.hexical:deserialize_pattern": "Calligrapher's Purif.",
"hexcasting.action.book.hexical:shuffle_pattern": "Glyphmaker's Dstl.",
@@ -169,13 +150,6 @@
"hexcasting.action.book.hexical:modify_block_invisible": "Invisible",
"hexcasting.action.book.hexical:modify_block_replaceable": "Replaceable",
"hexcasting.action.book.hexical:modify_block_volatile": "Volatile",
- "hexcasting.action.book.hexical:theodolite": "Theodolite Purif.",
- "hexcasting.action.book.hexical:identify": "Detective's Purif.",
- "hexcasting.action.book.hexical:recognize": "Recognizer's Purif.",
- "hexcasting.action.book.hexical:damage_stack": "Deterioration Purif.",
- "hexcasting.action.book.hexical:classify": "Modicum Purif.",
- "hexcasting.action.book.hexical:get_biome": "Geographical Purif.",
- "hexcasting.action.book.hexical:get_weather": "Meterologist's Refl.",
"hexical.page.hexical_changes.title": "Hexical Changes",
"hexical.page.hexical_changes.0": "I feel strangely more in tune with the ambient _media around me. It feels $(o)friendlier$() somehow. I can even feel it rippling around me, responding to my actions, as if engaging with me. The _media also feels more malleable, more $(o)workable$(); I sense I am able to manipulate it into more precise and specific specialized effects. I can also bring up my $(item)Hex Notebook$() by pressing $(thing)$(k:hexical.open_hexbook).",
@@ -309,18 +283,9 @@
"hexical.page.lamp_pillows.title": "The Pillow",
"hexical.page.lamp_pillows.0": "It seems that $(l:lamp/arch_lamps)$(item)Archgenie Lamps$() inhibit the genie's ability to cast unless someone is actively grasping it, possibly to prevent the genie from applying _media as a form of attrition to wear down its prison. However I have never noted any behavior of the sort; perhaps it is just the paranoia that comes with the brilliance it takes to design such a marvellous device.",
- "hexical.page.enlightened_patterns.title": "Enlightened Patterns",
- "hexical.page.enlightened_patterns.0": "After my enlightenment, I find myself acutely aware of certain patterns that seem to aid with my newfound abilities to perceive and manipulate _media. These patterns don't seem to require anything new from me, perhaps I've always been able to cast them but was unaware of their existence. That property means I can give an unenlightened player $(l:items/hexcasting)$(item)casting devices$() with these patterns and they will be able to cast it.",
- "hexcasting.action.hexical:am_enlightened": "Epiphany Purification",
- "hexical.page.am_enlightened.summary": "Pushes whether the given player has achieved enlightenment like I have.",
- "hexcasting.action.hexical:is_brainswept": "Sentience Purification",
- "hexical.page.is_brainswept.summary": "Pushes whether an entity \"has been magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
-
"hexical.page.simple_patterns.title": "Hexical Patterns",
"hexcasting.action.hexical:garbage": "Garbage Reflection",
"hexical.page.garbage.summary": "Pushes $(l:casting/influences)$(action)Garbage$() to my stack. I am unsure why I would ever want this pattern but it exists.",
- "hexcasting.action.hexical:get_media": "Media Purification",
- "hexical.page.get_media.summary": "Pushes the amount of media inside an item, that a creature contains or holds, or that a specialized media-holding block contains.",
"hexical.page.patterns.title": "Pattern Manipulation",
"hexical.page.patterns.0": "I have discovered a set of patterns that concern the construction and manipulation of other $(l:patterns/patterns_as_iotas)patterns$(). Strangely, they can be used to construct patterns that are $(o)impossible$() to draw with a $(l:items/staff)$(item)Staff$(), although fortunately I don't believe Nature has associated an effect with any of these \"illegal\" patterns. They can be considered free to use with my $(l:items/scarab)$(item)Scarab Beetle$().",
@@ -337,11 +302,6 @@
"hexcasting.action.hexical:shuffle_pattern": "Glyphmaker's Distillation",
"hexical.page.shuffle_pattern.summary": "Uses the number to shuffle the pattern into one of the same shape, but different stroke order. My notes reveal that ancient _Hexcasters used this for some $(o)grand library$().",
- "hexical.page.perlin.title": "Quasirandomness",
- "hexical.page.perlin.0": "In certain regions of the world, ambient _media is more concentrated. I can measure that concentration and even extrapolate backwards and forwards in time to get a quasi-random number between 0 and 1, corresponding to that location at that time. Points in time and space that are close to each other often have similar values.",
- "hexcasting.action.hexical:perlin": "Perlin Distillation",
- "hexical.page.perlin.summary": "Measures the concentration of ambient at that point in space and time, normalized between 0 and 1.",
-
"hexical.page.special_raycasts.title": "Special Raycasts",
"hexcasting.action.hexical:fluid_raycast": "Naval Distillation",
"hexical.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
@@ -431,7 +391,7 @@
"hexcasting.action.hexical:magic_missile": "Magic Missile",
"hexical.page.magic_missile.summary": "Conjures a small silver of amethyst that always deals a full heart of damage and forces the target backwards. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.magic_missile.0": "The projectile has a few interesting properties. It automatically disappears after roughly ten seconds or shatters upon hitting an entity or block. It pierces all forms of armor and protection. It is also unaffected by gravity and water drag.$(br2)$(o)A weak but enchanting sparkling projectile.$()",
- "hexical.page.magic_missile.1": "The first vector is conjuration location and is quite esoteric: no wonder most _Hexcasters conjure it in front of them. The basic gist is a vector, where my head's position is the origin, $(l:patterns/basics#hexcasting:get_entity_look)$(action)my facing$() is the Z+ axis, $(l:patterns/scrying/entities#hexical:theodolite)$(action)the vector pointing up from my head$() is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
+ "hexical.page.magic_missile.1": "The first vector is conjuration location and is quite esoteric: no wonder most _Hexcasters conjure it in front of them. The basic gist is a vector, where my head's position is the origin, $(l:patterns/basics#hexcasting:get_entity_look)$(action)my facing$() is the Z+ axis, $(l:patterns/great_spells/greater_blink#hexical:theodolite)$(action)the vector pointing up from my head$() is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
"hexical.page.magic_missile.2": "The second vector is velocity and thankfully much less complicated. It is a simple offset vector, similar to the one that $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() takes in. Unlike $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() though, this vector can be of arbitrary magnitude without incurring additional costs.$(br2)Unlike $(item)Arrows$() though, $(item)Magic Missiles$() will not increase in damage simply by travelling faster. They also apply an odd knockback effect that ignores the entity's mass or the projectile's speed.",
"hexcasting.action.hexical:prestidigitation": "Prestidigitation",
@@ -495,12 +455,15 @@
"hexcasting.action.hexical:block_ping": "Ping Block",
"hexical.page.block_ping.summary": "Concentrates a little cube of _media to be visible to the naked eye, useful for highlighting things to me and those around me. Costs a negligible amount of _media.",
"hexical.page.block_ping.description": "The first vector controls position and the second vector controls color. Each component should range from 0 to 1 and corresponds to red, green, and blueness respectively. The final number dictates how long the ping should remain in twentieths of a second, up to ten seconds.$(br2)$(o)LOOK AT THIS$()",
+ "hexcasting.action.hexical:stonecut": "Cut Stone",
+ "hexical.page.stonecut.summary": "Takes an item entity and a target item identifier, and cuts the item into the shape of the target. Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.stonecut.description": "The target item must be one that is possible to make from the item entity in a stone-cutter.$(br2)$(o)I saw the angel in the marble and carved until I set him free.$()",
"hexcasting.action.hexical:crack_device": "Crack Device",
"hexical.page.crack_device.summary": "When casted on a $(l:items/hexcasting)$(item)casting device$() without a _Hex, $(o)cracks it$(). Cracked casting devices proudly display their _Hexes. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$().",
"hexical.page.crack_device.description": "This spell will blind me for a quite a duration if I attempt to expose the innerworkings of an already-written device. For a moment though, I believe I had glimpsed the _Hex before my eyes and brain filled with _media.$(br2)$(o)Nowadays time runs by electricity and vibrating crystals of quarts and goodness know what else.$().$(br)- clearly a reference to $(l:items/amethyst)$(item)Amethyst$().",
"hexcasting.action.hexical:place_block_type": "Construct",
"hexical.page.place_block_type.summary": "Places a specific type of block from my inventory at a position, orientation, and horizontal orientation. Costs about one-fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.place_block_type.description": "The identifier can be found in the $(l:patterns/scrying/identifiers)$(action)identifier scrying chapter$(). The orientation is an axis vector representing the direction I would face when placing the block. For blocks like doors and stairs, orientation should be either up or down and horizontal orientation determines direction.$(br2)$(o)In the psychology of the modern civilized human being, it is difficult to overstate the significance of the house.$()",
+ "hexical.page.place_block_type.description": "The orientation is an axis vector representing the direction I would face when placing the block. For blocks like doors and stairs, orientation should be either up or down and horizontal orientation determines direction.$(br2)$(o)In the psychology of the modern civilized human being, it is difficult to overstate the significance of the house.$()",
"hexcasting.action.hexical:autograph": "Autograph",
"hexical.page.autograph.summary": "Autographs the item in my offhand with my name and $(l:items/pigments)$(item)Pigment$(). Free and can only be done with my $(item)$(l:items/staff)Staff$(), as a proof of care.",
"hexical.page.autograph.description": "An autographed item holds a list of the names people who have casted this spell on it, in order and in shimmering $(l:items/pigments)$(item)pigmented$() text. It becomes unstackable with other items of the same type and uneraseable by $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)normal means$(). If the same person signs it multiple times, their name shifts to the bottom. It may be used as a secure method of ensuring an item was approved of by a person.$(br2)$(o)I disagree strongly with whatever work this quote is attached to.$()",
@@ -514,7 +477,7 @@
"hexical.page.conjure_hextito.summary": "Conjures a $(item)Hextito$() at the location with the given _Hex. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
"hexical.page.conjure_hextito.description": "$(item)Hextitos$() are triangular crunchy snacks I can conjure. When consumed, the consumer immediately casts its _Hex, using their $(item)$(l:items/staff)Staff$()'s stack unlike a regular $(l:items/hexcasting)$(item)casting device$(). I shall find them useful to make simple actions like raycasts or to give out limited uses of a _Hex I have designed. If a consumer's stack has an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it will not cast, making it quite safe to hand out.",
"hexcasting.action.hexical:flower": "Conjure Flower",
- "hexical.page.flower.summary": "Conjures a flower of my choosing at a location. I must have $(l:patterns/scrying/identifiers)$(action)identified$() this flower at some point before. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.flower.summary": "Conjures a flower of my choosing at a location. I must have identified this flower at some point before. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.flower.description": "The block that it is conjured on must have a flat surface at the top to enable growing. This block does not necessarily need to be able to support the flower naturally, although if it is incapable, any little movement may cause the flower to break. Alternatively, I can give it a flower pot and the spell will attempt to fill it if possible.$(br2)$(o)A weed is but an unloved flower.$()",
"hexcasting.action.hexical:light": "Illuminate",
"hexical.page.light.summary": "Conjures a completely invisible light with illumination strength of my choosing at a location. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
@@ -601,171 +564,13 @@
"hexcasting.action.hexical:shader_spider": "Split Vision",
"hexical.page.shader_spider.summary": "Splits my vision into multiple sections, similar to what a spider might see. I am unsure whether it actually grants me more vision...",
- "hexical.category.scrying": "Scrying",
- "hexical.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world. These patterns can divine a surprising amount of information like types of blocks, status effects, the weather, the nutritional value of food, whether I am sprinting, $(o)block explosion resistance$(), and more. While likely not useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
-
- "hexical.page.blocks.title": "Blocks",
- "hexcasting.action.hexical:block_hardness": "Miner's Purification",
- "hexical.page.block_hardness.summary": "Pushes how difficult blocks of that block type are to mine.",
- "hexcasting.action.hexical:block_blast_resistance": "Demoman's Purification",
- "hexical.page.block_blast_resistance.summary": "Pushes how resistant blocks of that block type are to explosions.",
- "hexcasting.action.hexical:blockstate_waterlogged": "Plumber's Purification",
- "hexical.page.blockstate_waterlogged.summary": "Pushes whether the block is waterlogged, or $(l:casting/influences)$(thing)Null$() if the block can not be waterlogged.",
- "hexcasting.action.hexical:blockstate_rotation": "Orientation Purification",
- "hexical.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or $(l:casting/influences)$(thing)Null$() if the block does not have a facing direction.",
- "hexcasting.action.hexical:blockstate_crop": "Farmer's Purification",
- "hexical.page.blockstate_crop.summary": "Pushes a number 0 to 1, corresponding to how grown that crop is, as well as beehives, composters, and cauldrons. Strangely works on cakes too.",
- "hexcasting.action.hexical:blockstate_glow": "Glowing Purification",
- "hexical.page.blockstate_glow.summary": "Pushes a boolean for whether the block is in a \"lit\" state, for example furnaces, Redstone torches, lamps, and campfires.",
- "hexcasting.action.hexical:blockstate_lock": "Lock Purification",
- "hexical.page.blockstate_lock.summary": "Pushes a boolean for whether the block is currently in a \"open\" state, for example doors, trapdoors, fence gates, and open barrels.",
- "hexcasting.action.hexical:blockstate_turn": "Angle Purification",
- "hexical.page.blockstate_turn.summary": "Pushes a number corresponding to the rotation of signs, skulls, and banners.",
- "hexcasting.action.hexical:blockstate_bunch": "Bunching Purification",
- "hexical.page.blockstate_bunch.summary": "Pushes how many are in a bunch block, or $(l:casting/influences)$(thing)Null$() otherwise. Useful only for candles, sea pickles, and turtle eggs.",
- "hexcasting.action.hexical:blockstate_book": "Book Purification",
- "hexical.page.blockstate_book.summary": "Pushes a boolean for whether lecterns or jukeboxes have a book/music disc in them respectively. I read that it may work for some kind of bookshelf involved in a great work too.",
-
- "hexical.page.enchantments.title": "Enchantments",
- "hexcasting.action.hexical:get_enchantments": "Thaumaturgist's Purification",
- "hexical.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
- "hexcasting.action.hexical:get_enchantment_strength": "Charm Distillation",
- "hexical.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
-
- "hexical.page.entities.title": "Entities",
- "hexcasting.action.hexical:entity_width": "Caliper's Purification",
- "hexical.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
- "hexcasting.action.hexical:theodolite": "Theodolite's Purification",
- "hexical.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
- "hexcasting.action.hexical:get_health": "Vitality Purification",
- "hexical.page.get_health.summary": "Pushes how close an entity is to death. I can think of these in terms of half-hearts.",
- "hexcasting.action.hexical:get_max_health": "Fitness Purification",
- "hexical.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
- "hexcasting.action.hexical:get_air": "Suffocation Purification",
- "hexical.page.get_air.summary": "Pushes the number of seconds before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
- "hexcasting.action.hexical:get_max_air": "Lung Purification",
- "hexical.page.get_max_air.summary": "Pushes the number of seconds an entity can last outside their normal breathing environment before they start suffocating.",
- "hexcasting.action.hexical:get_player_hunger": "Hunger Purification",
- "hexical.page.get_player_hunger.summary": "Pushes how full a player is. I can imagine this as half-hunger-hunches.",
- "hexcasting.action.hexical:get_player_saturation": "Stamina Purification",
- "hexical.page.get_player_saturation.summary": "Pushes my saturation, which roughly correlates to how long the player will remain full.",
- "hexcasting.action.hexical:is_burning": "Inferno Purification",
- "hexical.page.is_burning.summary": "Pushes whether the entity is burning. Also applies to entities that are visually on fire, even if they are immune to fire, such as blazes attacking.",
- "hexcasting.action.hexical:burning_time": "Inferno Purification II",
- "hexical.page.burning_time.summary": "Pushes how long in seconds the entity will continue burning if not put out.",
- "hexcasting.action.hexical:is_wet": "Enderman's Purification",
- "hexical.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
- "hexcasting.action.hexical:is_baby": "Youth Purification",
- "hexical.page.is_baby.summary": "Pushes whether a living creature is in its baby form. Also works on armor stands oddly.",
- "hexcasting.action.hexical:breedable": "Reproduction Purification",
- "hexical.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or $(l:casting/influences)$(thing)Null$() if that creature is not capable of that type of reproduction.",
- "hexcasting.action.hexical:is_sleeping": "Sloth's Purification",
- "hexical.page.is_sleeping.summary": "Pushes whether the entity is sleeping. Applies to players, cats, foxes, and a variety of other creatures.",
- "hexcasting.action.hexical:is_sprinting": "Racer's Purification",
- "hexical.page.is_sprinting.summary": "Pushes whether the entity is sprinting. Includes if I am swimming or if I have left the ground since sprinting and extends to cats, foxes, and more.",
-
- "hexical.page.environment.title": "Environment",
- "hexical.page.environment.0": "This section of patterns is quite meta: they push properties of the magical environment they are running in. Certain environments are unable to cast certain patterns so this section may be useful in avoiding mishaps.",
- "hexcasting.action.hexical:env_ambit": "Ambit Purification",
- "hexical.page.env_ambit.summary": "Pushes whether a location or entity is in ambit.",
- "hexcasting.action.hexical:env_staff": "Staff Reflection",
- "hexical.page.env_staff.summary": "Pushes whether a $(l:items/staff)$(item)Staff$() is being used to cast this pattern.",
- "hexcasting.action.hexical:env_offhand": "Dexterity Reflection",
- "hexical.page.env_offhand.summary": "Pushes whether the most dominant hand of the caster is being used to cast this pattern. May work strangely for casters without hands...",
- "hexcasting.action.hexical:env_media": "Media Reflection",
- "hexical.page.env_media.summary": "Pushes the _media available to this current cast.",
- "hexcasting.action.hexical:env_packaged_hex": "Device Reflection",
- "hexical.page.env_packaged_hex.summary": "Pushes whether any form of $(l:items/hexcasting)$(item)casting device$() is being used to cast this pattern.",
- "hexcasting.action.hexical:env_hand_lamp": "Wish Reflection",
- "hexical.page.env_hand_lamp.summary": "Pushes whether a $(l:lamp/hand_lamps)$(item)Hand Genie Lamp$() is being used to cast this pattern.",
- "hexcasting.action.hexical:env_arch_lamp": "Grand Wish Reflection",
- "hexical.page.env_arch_lamp.summary": "Pushes whether an $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() is being used to cast this pattern.",
- "hexcasting.action.hexical:env_turret": "Turret Reflection",
- "hexical.page.env_turret.summary": "Pushes whether an automated $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() is being used to cast this pattern.",
- "hexcasting.action.hexical:env_circle": "Constructed Reflection",
- "hexical.page.env_circle.summary": "Pushes whether some form of $(l:greatwork/spellcircles)$(thing)$(o)grand work$() is being used to cast this pattern.",
- "hexcasting.action.hexical:env_evocation": "Psychic Reflection",
- "hexical.page.env_evocation.summary": "Pushes whether $(l:patterns/spells/evocation)$(item)pure mental effort$() is being used to cast this pattern.",
- "hexcasting.action.hexical:env_tchotchke": "Bibelot Reflection",
- "hexical.page.env_tchotchke.summary": "Pushes whether a $(l:patterns/spells/tchotchke)$(item)Tchotchke$() is being used to cast this pattern.",
-
- "hexical.page.food.title": "Food",
- "hexcasting.action.hexical:edible": "Edibility Purification",
- "hexical.page.edible.summary": "Takes in an item identifier and pushes whether I can eat it.",
- "hexcasting.action.hexical:get_hunger": "Calorie Purification",
- "hexical.page.get_hunger.summary": "Takes in an item identifier and pushes the amount it will fill me.",
- "hexcasting.action.hexical:get_saturation": "Satiation Purification",
- "hexical.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill me.",
- "hexcasting.action.hexical:is_meat": "Flesh Purification",
- "hexical.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat, meaning wolves can eat it.",
- "hexcasting.action.hexical:is_snack": "Dessert Purification",
- "hexical.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack, meaning I can eat it really quickly.",
-
- "hexical.page.identifiers.title": "Identifiers",
- "hexical.page.identifiers.0": "My _Hexes has so far been quite blind to the world. I can get a creature's height, velocity, and more but I can't directly identify that entity. Nature's solution to the problem is the $(o)identifier iota$(). Every entity, block, status effect, enchantment, sound, etc... has a unique identifier that my _Hexes can identify. Once I have two identifiers, I can compare them with each other.",
- "hexcasting.action.hexical:identify": "Detective's Purification",
- "hexical.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
- "hexical.page.identifiers.1": "I notice that if I were to use Detective's Purification on an item, it returns that it's an item entity, but if I were to use Recognizer's Purification on that same entity, it would return the type of item. This type of item matches with a block identifier returned by Detective's Purification. I can imagine Recognizer's as returning $(o)additional$() information if possible.",
- "hexcasting.action.hexical:recognize": "Recognizer's Purification",
- "hexical.page.recognize.summary": "Pushes extra identifier information of an entity, mainly the item type of an item entity or the item type inside an item frame entity.",
- "hexcasting.action.hexical:classify": "Modicum Purification",
- "hexical.page.classify.summary": "Pushes the identifier of an iota's type. Can be used to determine whether two iota are the same type.",
- "hexcasting.action.hexical:get_mainhand_stack": "Tool Purification",
- "hexical.page.get_mainhand_stack.summary": "Returns the type of item in the player's mainhand.",
- "hexcasting.action.hexical:get_offhand_stack": "Accessory Purification",
- "hexical.page.get_offhand_stack.summary": "Returns the type of item in the player's offhand.",
-
- "hexical.page.item.title": "Items",
- "hexcasting.action.hexical:count_stack": "Storage Purification",
- "hexical.page.count_stack.summary": "Takes in an item entity and pushes how many items are in it.",
- "hexcasting.action.hexical:count_max_stack": "Warehouse Purification",
- "hexical.page.count_max_stack.summary": "Takes in an item entity and pushes how many items that can stack in it.",
- "hexcasting.action.hexical:damage_stack": "Deterioration Purification",
- "hexical.page.damage_stack.summary": "Takes in an item entity and pushes how much damage the item has sustained.",
- "hexcasting.action.hexical:damage_max_stack": "Fragility Purification",
- "hexical.page.damage_max_stack.summary": "Takes in an item entity and pushes how much durability the item can have at its peak.",
- "hexcasting.action.hexical:media_max_stack": "Potential Purification",
- "hexical.page.media_max_stack.summary": "Takes in an item entity and pushes either $(l:casting/influences)$(thing)Null$() if the item does not have any media-holding potential, or the amount of _media it is capable of holding at its peak.",
-
- "hexical.page.status_effects.title": "Status Effects",
- "hexcasting.action.hexical:get_effects_entity": "Diagnosis Purification",
- "hexical.page.get_effects_entity.summary": "Pushes a list of status effects the entity is afflicted with.",
- "hexcasting.action.hexical:get_effects_item": "Prescription Purification",
- "hexical.page.get_effects_item.summary": "Pushes a list of status effects the food or potion will bestow.",
- "hexcasting.action.hexical:get_effect_category": "Condition Purification",
- "hexical.page.get_effect_category.summary": "Pushes the general \"goodness\" of the effect towards the afflicted. -1 for harmful, 0 for neutral, and 1 for beneficial.",
- "hexcasting.action.hexical:get_effect_amplifier": "Concentration Distillation",
- "hexical.page.get_effect_amplifier.summary": "Pushes the potency of the specific effect acting on the entity or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
- "hexcasting.action.hexical:get_effect_duration": "Clearance Distillation",
- "hexical.page.get_effect_duration.summary": "Pushes how long the effect will last in seconds or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
-
- "hexical.page.world.title": "World",
- "hexcasting.action.hexical:get_light": "Luminance Purification",
- "hexical.page.get_light.summary": "Pushes the light level at the position as a number 0 to 15. If inside a nontransparent block, it returns zero.",
- "hexcasting.action.hexical:get_weather": "Meterologist's Reflection",
- "hexical.page.get_weather.summary": "Pushes a number corresponding to the weather. 0 for clear, 1 for rain, and 2 for thundering.",
- "hexcasting.action.hexical:get_power": "Battery Purification",
- "hexical.page.get_power.summary": "Pushes the Redstone power that a position receives.",
- "hexcasting.action.hexical:get_comparator": "Peripheral Purification",
- "hexical.page.get_comparator.summary": "Pushes the power level a comparator would output if pressed against a position.",
- "hexcasting.action.hexical:get_day": "Circadian Reflection",
- "hexical.page.get_day.summary": "Pushes the progress of the day as a number between 0 (start) and 1 (end) of the day.",
- "hexcasting.action.hexical:get_time": "Temporal Reflection",
- "hexical.page.get_time.summary": "Pushes the age of the world for timekeeping, unaffected by events such as sleeping. Divided by 20, it returns seconds.",
- "hexcasting.action.hexical:get_biome": "Geographical Purification",
- "hexical.page.get_biome.summary": "Pushes the identifier of the biome type that the vector is within.",
- "hexcasting.action.hexical:get_dimension": "Plane Reflection",
- "hexical.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in.",
- "hexcasting.action.hexical:get_moon": "Lunar Reflection",
- "hexical.page.get_moon.summary": "Pushes the current phase of the moon as a fraction of its size.",
- "hexcasting.action.hexical:get_einstein": "Distortion Reflection",
- "hexical.page.get_einstein.summary": "Pushes whether this dimension is bounded by standard rules of space and time: compasses and clocks will work here.",
-
"hexcasting.action.hexical:greater_blink": "Greater Blink",
"hexical.page.greater_blink.0": "Greater Blink is a significantly cheaper alternative to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(). It also does not carry the risk of splattering my items upon arrival. However, it only has pitiful range compared to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$() and its destination calculations are... esoteric. Its target is also exclusively myself.",
"hexical.page.greater_blink.summary": "Teleports me up to 128 blocks away, relative to my position and rotation. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in the direction I'm facing. A vector of (0, 1, 0) would teleport me one block \"up\" in the direction of the top of my head. A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head. A vector of (1, 0, 0) teleports me one block to my right.",
"hexical.page.greater_blink.2": "$(o)Long Jaunt! Longer than you think-$()",
+ "hexcasting.action.hexical:theodolite": "Theodolite's Purification",
+ "hexical.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
"hexical.page.meshes.title": "Meshes",
"hexical.page.meshes.0": "Meshes are the natural evolution of $(l:patterns/spells/specks)specks$(). Rather than being restricted to iotas and patterns on a two-dimensional plane, meshes accept a list of vectors in three-dimensional space and connect them with lines, allowing for infinite creative constructions. It's also responsive to most patterns used for manipulation of specks.",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index 9e5207de9a0e..fc5710063691 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -85,7 +85,6 @@
"hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
"hexcasting.mishap.bad_block.mage_block": "一个术师方块",
"hexcasting.mishap.bad_block.prestidigitation": "一个对戏法敏感的方块",
- "hexcasting.mishap.bad_block.slate": "一个石板方块",
"hexcasting.mishap.bad_block.flower_spawnable": "空气或一个花盆",
"hexcasting.mishap.bad_block.solid_platform": "一个固体平台",
"hexcasting.mishap.bad_item.animated_scroll": "一个活线卷轴",
@@ -105,28 +104,16 @@
"hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
"hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
"hexcasting.mishap.invalid_value.horizontal_axis_vector": "一个水平轴向向量",
- "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
- "hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识",
"hexcasting.mishap.invalid_value.class.dye": "一个染料",
- "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
"hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
"hexcasting.mishap.invalid_value.conjurable_flower_id": "一个代表可构筑花卉的标识",
- "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
"hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
- "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
- "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
"hexcasting.mishap.invalid_value.integer_natural": "一个大于0的整数",
- "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
- "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
"hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
"hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
"hexcasting.mishap.invalid_value.number_list": "一个由数组成的非空列表",
- "hexcasting.mishap.invalid_value.null_or_pattern": "Null或一个图案",
"hexcasting.mishap.invalid_value.number_or_vector": "一个数或向量",
- "hexcasting.mishap.invalid_value.potion_holding": "一个食物、药水、或药箭物品实体",
- "hexcasting.mishap.invalid_value.recognizable": "一个带有额外信息的目标",
"hexcasting.mishap.invalid_value.small_vector": "一个长度小于等于2的向量",
- "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
"hexcasting.mishap.invalid_value.to_pigment": "一个有色染料、一个代表染色剂物品的标识、一个含有染色剂的物品实体,或一个玩家",
"hexcasting.mishap.invalid_value.true_dye": "一个有色染料",
"hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
@@ -146,18 +133,12 @@
"hexcasting.action.book.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
"hexcasting.action.book.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
"hexcasting.action.book.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
- "hexcasting.action.book.hexical:get_effect_amplifier": "浓度之馏化",
- "hexcasting.action.book.hexical:get_effects_item": "处方之纯化",
- "hexcasting.action.book.hexical:get_enchantments": "奇术师之纯化",
- "hexcasting.action.book.hexical:breedable": "繁衍之纯化",
"hexcasting.action.book.hexical:get_hand_lamp_position": "精灵之精思:空间型",
"hexcasting.action.book.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
"hexcasting.action.book.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
"hexcasting.action.book.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
"hexcasting.action.book.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
"hexcasting.action.book.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
- "hexcasting.action.book.hexical:nephthys": "奈芙蒂斯之策略",
- "hexcasting.action.book.hexical:sekhmet": "塞赫麦特之策略",
"hexcasting.action.book.hexical:serialize_pattern": "笔迹师之纯化",
"hexcasting.action.book.hexical:deserialize_pattern": "书法师之纯化",
"hexcasting.action.book.hexical:shuffle_pattern": "图案制作师之馏化",
@@ -169,13 +150,6 @@
"hexcasting.action.book.hexical:modify_block_invisible": "隐形",
"hexcasting.action.book.hexical:modify_block_replaceable": "可替",
"hexcasting.action.book.hexical:modify_block_volatile": "失稳",
- "hexcasting.action.book.hexical:theodolite": "经纬仪之纯化",
- "hexcasting.action.book.hexical:identify": "侦探之纯化",
- "hexcasting.action.book.hexical:recognize": "识别器之纯化",
- "hexcasting.action.book.hexical:damage_stack": "损耗之纯化",
- "hexcasting.action.book.hexical:classify": "抵量之纯化",
- "hexcasting.action.book.hexical:get_biome": "地理之纯化",
- "hexcasting.action.book.hexical:get_weather": "天气学家之精思",
"hexical.page.hexical_changes.title": "Hexical 中的改动",
"hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()。我甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()也变得更可塑、更$(o)可操纵$(),令媒质产生更精确精细的效果已不是难事。我还可以按下$(thing)$(k:hexical.open_hexbook)$()就打开$(item)咒术笔记$()。",
@@ -309,18 +283,9 @@
"hexical.page.lamp_pillows.title": "枕座",
"hexical.page.lamp_pillows.0": "似乎$(l:lamp/arch_lamps)$(item)大精灵神灯$()会在无人持有时抑制精灵的施法能力,也许是为阻止精灵用$(media)媒质$()削弱神灯的禁锢。我从未见到过这种表现;大概能设计如此精妙的仪器的意识总是才智与偏执并存吧。",
- "hexical.page.enlightened_patterns.title": "启迪后图案",
- "hexical.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经启迪的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
- "hexcasting.action.hexical:am_enlightened": "显圣之纯化",
- "hexical.page.am_enlightened.summary": "检验所给玩家是否和我一样经过启迪。",
- "hexcasting.action.hexical:is_brainswept": "感知之纯化",
- "hexical.page.is_brainswept.summary": "检验实体“是否经由魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
-
"hexical.page.simple_patterns.title": "Hexical 图案",
"hexcasting.action.hexical:garbage": "垃圾之精思",
"hexical.page.garbage.summary": "返回$(l:casting/influences)$(action)垃圾$()。不懂这个图案有什么作用,但它确实是个图案。",
- "hexcasting.action.hexical:get_media": "媒质之纯化",
- "hexical.page.get_media.summary": "返回物品中的、生物含有的、生物持有的,即特种媒质存储方块含有的媒质。",
"hexical.page.patterns.title": "图案操作",
"hexical.page.patterns.0": "我发现了一系列图案,主要用于操纵及构造$(l:patterns/patterns_as_iotas)图案$()。奇怪的是,这些图案也能构造出$(l:items/staff)$(item)法杖$()$(o)无法$()绘制的图案,好在自然应该不会为这些“非法”图案分配实际作用。可以认为$(l:items/scarab)$(item)圣甲虫$()能随意使用它们。",
@@ -337,11 +302,6 @@
"hexcasting.action.hexical:shuffle_pattern": "图案制作师之馏化",
"hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代的$(hex)咒术师们$()会把这些图案用在某种$(o)庞大的图书馆$()中。",
- "hexical.page.perlin.title": "准随机",
- "hexical.page.perlin.0": "某些地点的环境$(media)媒质$()密度比其他位置高。这种密度可以测量;甚至能在时间上回溯或前进,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
- "hexcasting.action.hexical:perlin": "柏林之馏化",
- "hexical.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
-
"hexical.page.special_raycasts.title": "特殊射线追踪",
"hexcasting.action.hexical:fluid_raycast": "海军之馏化",
"hexical.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
@@ -431,7 +391,7 @@
"hexcasting.action.hexical:magic_missile": "魔法飞弹",
"hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时强令目标退后。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
- "hexical.page.magic_missile.1": "第一个向量是构筑的位置,其性质相当奇妙:怪不得大多数$(hex)咒术师$()都只选择在面前构筑它们。这一参数以我的头部位置为原点,我$(l:patterns/basics#hexcasting:get_entity_look)$(action)面朝的方向$()是 Z 轴正向,$(l:patterns/scrying/entities#hexical:theodolite)$(action)头顶向上的方向$()是 Y 轴正向,头部向右的方向是 X 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
+ "hexical.page.magic_missile.1": "第一个向量是构筑的位置,其性质相当奇妙:怪不得大多数$(hex)咒术师$()都只选择在面前构筑它们。这一参数以我的头部位置为原点,我$(l:patterns/basics#hexcasting:get_entity_look)$(action)面朝的方向$()是 Z 轴正向,$(l:patterns/great_spells/greater_blink#hexical:theodolite)$(action)头顶向上的方向$()是 Y 轴正向,头部向右的方向是 X 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
"hexical.page.magic_missile.2": "第二个向量是速率,好在比第一参数简单不少。它就是简单的偏移向量,与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()接受的向量类似。而与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()不同的是,本法术的向量没有模长限制,也不会因模长增加而增大消耗。$(br2)$(item)魔法飞弹$()与$(item)箭$()的不同之处在于,前者不会因为飞行速度快而造成更多伤害。飞弹还会产生一种奇怪的击退效果,无视实体的质量和弹射物的速度。",
"hexcasting.action.hexical:prestidigitation": "戏法",
@@ -495,12 +455,15 @@
"hexcasting.action.hexical:block_ping": "标记方块",
"hexical.page.block_ping.summary": "将$(media)媒质$()聚焦成裸眼可见的小立方体,很适合用来高亮标记各种物体。消耗极少量$(media)媒质$()。",
"hexical.page.block_ping.description": "第一个向量控制位置,第二个控制颜色。第二向量各分量应为 0 到 1 的数,分别对应红、绿、蓝三色。最后的数代表标记应存在多少个 1/20 秒,最多可存在 10 秒。$(br2)$(o)给我瞅瞅!$()",
+ "hexcasting.action.hexical:stonecut": "切石",
+ "hexical.page.stonecut.summary": "接受一个物品实体和一个目标物品标识,将所给物品实体切制为目标的形状。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.stonecut.description": "目标物品必须可由所给物品在切石机中加工而成。$(br2)$(o)我在大理石中看见天使,于是我不停地雕刻,直至使他自由。$()",
"hexcasting.action.hexical:crack_device": "破解设备",
"hexical.page.crack_device.summary": "对不包含$(hex)咒术$()的$(l:items/hexcasting)$(item)施法物品$()使用时,$(o)将其破解$()。经破解的施法物品会自豪地展现它们的$(hex)咒术$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
"hexical.page.crack_device.description": "如果试图破解已经写入过的设备的内部结构,法术便会让我眼盲一段时间。不过,我认为好像有一瞬,我看到了$(hex)咒术$()显现在我的眼前,$(media)媒质$()填满了我的大脑。$(br2)$(o)现在时间都要靠电啦、振荡的石英晶体啦,鬼知道什么东西来走。$()$(br)——明显是在说$(l:items/amethyst)$(item)紫水晶$()。",
"hexcasting.action.hexical:place_block_type": "构筑",
"hexical.page.place_block_type.summary": "在给定位置以给定朝向和水平朝向放置我物品栏中给定类型的方块。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.place_block_type.description": "标识参见$(l:patterns/scrying/identifiers)$(action)标识探知章节$()。“朝向”指一个轴向向量,代表我在放置方块时面朝的方向。对门、楼梯等方块来说,朝向应为上或下,而“水平朝向”则决定了方块的朝向。$(br2)$(o)在现代文明人类的心理中,房子的重要性怎么强调都不为过。$()",
+ "hexical.page.place_block_type.description": "“朝向”指一个轴向向量,代表我在放置方块时面朝的方向。对门、楼梯等方块来说,朝向应为上或下,而“水平朝向”则决定了方块的朝向。$(br2)$(o)在现代文明人类的心理中,房子的重要性怎么强调都不为过。$()",
"hexcasting.action.hexical:autograph": "签名",
"hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的$(l:items/pigments)$(item)染色剂$()为颜色。无需消耗$(media)媒质$();且作为亲笔的证明,只能由我的$(item)$(l:items/staff)法杖$()施放。",
"hexical.page.autograph.description": "所有对物品施放过此法术的人,其名字会依次保留在物品上,且保留对应的$(l:items/pigments)$(item)染色剂$()。签过名的物品无法与未签名的物品堆叠,同种的物品也不能。签名无法通过$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)常规手段$()去除。同一人能给同一物品多次签名,如此那人的名字便会移至最下方。$(br2)$(o)我强烈反对引用这句话的所有作品。$()",
@@ -514,7 +477,7 @@
"hexical.page.conjure_hextito.summary": "在给定位置构筑一片$(hex)咒力多滋$()。消耗 2 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
"hexical.page.conjure_hextito.description": "$(hex)咒力多滋$()是一种三角形的酥脆零食。食用者会立即施放其中$(hex)咒术$();使用的是$(item)$(l:items/staff)法杖$()栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合简单的操作集合,也方便我与他人分享我设计的$(hex)咒术$()。如果食用者的栈存在未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),其中咒术便不会施放,以此保障他人使用的安全。",
"hexcasting.action.hexical:flower": "构筑花卉",
- "hexical.page.flower.summary": "在给定位置构筑一株花,品种任选。所需的花卉必须先经过$(l:patterns/scrying/identifiers)$(action)标识$()。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.flower.summary": "在给定位置构筑一株花,品种任选。所需的花卉必须先经过标识。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.flower.description": "构筑处四周必须存在足够支撑植物的平坦表面。不要求它可以种植花卉;但如果不可种植,那么任何轻微的动作都会让花朵掉落。还可以在花盆处使用:法术会先尝试在其中构筑。$(br2)$(o)杂草不过是还未得人青睐的鲜花。$()",
"hexcasting.action.hexical:light": "荧亮",
"hexical.page.light.summary": "在给定位置构筑一个给定光照强度的隐形光源。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
@@ -601,171 +564,13 @@
"hexcasting.action.hexical:shader_spider": "分裂视野",
"hexical.page.shader_spider.summary": "将我的视野分裂为多个小块,和蜘蛛的视野大概差不多。不太清楚为什么这么做能让我看得更清晰……",
- "hexical.category.scrying": "探知",
- "hexical.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。这些图案可用来卜取一系列信息,方块和实体的类型、药水效果、天气、食物的营养、我在疾跑与否、$(o)方块的爆炸抗性$()等都在其列。虽然这些操作在大多数$(hex)咒术$()中没什么大用处,但有它们在也不错,我将来也许会用到。",
-
- "hexical.page.blocks.title": "方块",
- "hexcasting.action.hexical:block_hardness": "矿工之纯化",
- "hexical.page.block_hardness.summary": "压入挖掘给定方块的难易程度。",
- "hexcasting.action.hexical:block_blast_resistance": "爆破兵之纯化",
- "hexical.page.block_blast_resistance.summary": "压入方块对爆炸的抗性。",
- "hexcasting.action.hexical:blockstate_waterlogged": "管道工之纯化",
- "hexical.page.blockstate_waterlogged.summary": "检验方块是否含水。若方块无法含水,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexical:blockstate_rotation": "方向之纯化",
- "hexical.page.blockstate_rotation.summary": "压入方块的朝向向量。若方块无朝向向量,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexical:blockstate_crop": "农夫之纯化",
- "hexical.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的成熟程度,对蜂巢、堆肥桶、炼药锅同样有效。奇怪的是,对蛋糕也有效。",
- "hexcasting.action.hexical:blockstate_glow": "发光之纯化",
- "hexical.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有熔炉、红石火把、灯笼、营火等。",
- "hexcasting.action.hexical:blockstate_lock": "锁之纯化",
- "hexical.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有门、活板门、栅栏门、木桶等。",
- "hexcasting.action.hexical:blockstate_turn": "角度之纯化",
- "hexical.page.blockstate_turn.summary": "压入一个数,对应告示牌、头颅、旗帜的旋转方向。",
- "hexcasting.action.hexical:blockstate_bunch": "叠放之纯化",
- "hexical.page.blockstate_bunch.summary": "返回方块的叠放数,无法叠放则返回 $(l:casting/influences)$(thing)Null$()。仅对蜡烛、海泡菜、海龟蛋有效。",
- "hexcasting.action.hexical:blockstate_book": "书之纯化",
- "hexical.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。我读到过它可能对所谓“卓伟大作”中的某种奇妙书架也有效。",
-
- "hexical.page.enchantments.title": "魔咒",
- "hexcasting.action.hexical:get_enchantments": "奇术师之纯化",
- "hexical.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
- "hexcasting.action.hexical:get_enchantment_strength": "咒能之馏化",
- "hexical.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
-
- "hexical.page.entities.title": "实体",
- "hexcasting.action.hexical:entity_width": "卡尺之纯化",
- "hexical.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
- "hexcasting.action.hexical:theodolite": "经纬仪之纯化",
- "hexical.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
- "hexcasting.action.hexical:get_health": "生命力之纯化",
- "hexical.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
- "hexcasting.action.hexical:get_max_health": "健康之纯化",
- "hexical.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
- "hexcasting.action.hexical:get_air": "窒息之纯化",
- "hexical.page.get_air.summary": "压入实体距离窒息剩余的秒数。对脱水的鱼和溺水的陆地生物均有效。",
- "hexcasting.action.hexical:get_max_air": "双肺之纯化",
- "hexical.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少秒开始窒息。",
- "hexcasting.action.hexical:get_player_hunger": "饥饿之纯化",
- "hexical.page.get_player_hunger.summary": "返回玩家实体的饥饿值。使用半个饥饿值火腿作为单位。",
- "hexcasting.action.hexical:get_player_saturation": "耐力之纯化",
- "hexical.page.get_player_saturation.summary": "返回我的饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.action.hexical:is_burning": "炼狱之纯化",
- "hexical.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
- "hexcasting.action.hexical:burning_time": "炼狱之纯化,第二型",
- "hexical.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余的时间。",
- "hexcasting.action.hexical:is_wet": "末影人之纯化",
- "hexical.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
- "hexcasting.action.hexical:is_baby": "青春之纯化",
- "hexical.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对盔甲架也有效。",
- "hexcasting.action.hexical:breedable": "繁衍之纯化",
- "hexical.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexical:is_sleeping": "树懒之纯化",
- "hexical.page.is_sleeping.summary": "检验实体是否在睡眠状态。对玩家、猫、狐狸、以及一系列其他生物有效。",
- "hexcasting.action.hexical:is_sprinting": "赛车手之纯化",
- "hexical.page.is_sprinting.summary": "检验实体是否在疾跑。速泳和疾跑后离地均算作疾跑,对猫、狐狸等也有效。",
-
- "hexical.page.environment.title": "环境",
- "hexical.page.environment.0": "本节的图案比较“元”:它们会返回其所处的魔法环境。特定的环境中某些图案无法施放,所以本节图案也许适合用来规避事故。",
- "hexcasting.action.hexical:env_ambit": "影响范围之纯化",
- "hexical.page.env_ambit.summary": "检验所给位置或实体是否处于影响范围中。",
- "hexcasting.action.hexical:env_staff": "法杖之精思",
- "hexical.page.env_staff.summary": "检验该图案是否由$(l:items/staff)$(item)法杖$()施放。",
- "hexcasting.action.hexical:env_offhand": "敏捷之精思",
- "hexical.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果……",
- "hexcasting.action.hexical:env_media": "媒质之精思",
- "hexical.page.env_media.summary": "返回此次施放时可用的$(media)媒质$()的量。",
- "hexcasting.action.hexical:env_packaged_hex": "设备之精思",
- "hexical.page.env_packaged_hex.summary": "检验该图案是否由任意$(l:items/hexcasting)$(item)施法物品$()施放。",
- "hexcasting.action.hexical:env_hand_lamp": "许愿之精思",
- "hexical.page.env_hand_lamp.summary": "检验该图案是否由$(l:lamp/hand_lamps)$(item)手持式精灵神灯$()施放。",
- "hexcasting.action.hexical:env_arch_lamp": "大愿之精思",
- "hexical.page.env_arch_lamp.summary": "检验该图案是否由$(l:lamp/arch_lamps)$(item)大精灵神灯$()施放。",
- "hexcasting.action.hexical:env_turret": "炮塔之精思",
- "hexical.page.env_turret.summary": "检验该图案是否由自动运行的$(l:lamp/arch_lamps)$(item)大精灵神灯$()施放。",
- "hexcasting.action.hexical:env_circle": "建构之精思",
- "hexical.page.env_circle.summary": "检验该图案是否由某种$(l:greatwork/spellcircles)$(thing)$(o)卓伟之作$()施放。",
- "hexcasting.action.hexical:env_evocation": "灵能之精思",
- "hexical.page.env_evocation.summary": "检验该图案是否$(l:patterns/spells/evocation)$(item)只通过思维$()施放。",
- "hexcasting.action.hexical:env_tchotchke": "饰件之精思",
- "hexical.page.env_tchotchke.summary": "检验该图案是否由$(l:patterns/spells/tchotchke)$(item)杂饰$()施放。",
-
- "hexical.page.food.title": "食物",
- "hexcasting.action.hexical:edible": "可食性之纯化",
- "hexical.page.edible.summary": "接受一个物品标识,检验它是否可被我食用。",
- "hexcasting.action.hexical:get_hunger": "卡路里之纯化",
- "hexical.page.get_hunger.summary": "接受一个物品标识,返回它为我带来的饱腹感的量。",
- "hexcasting.action.hexical:get_saturation": "饱和之纯化",
- "hexical.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.action.hexical:is_meat": "肉类之纯化",
- "hexical.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类,也即狼能否食用。",
- "hexcasting.action.hexical:is_snack": "甜点之纯化",
- "hexical.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食,也即可否迅速食用。",
-
- "hexical.page.identifiers.title": "标识",
- "hexical.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
- "hexcasting.action.hexical:identify": "侦探之纯化",
- "hexical.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
- "hexical.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
- "hexcasting.action.hexical:recognize": "识别器之纯化",
- "hexical.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
- "hexcasting.action.hexical:classify": "抵量之纯化",
- "hexical.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
- "hexcasting.action.hexical:get_mainhand_stack": "工具之纯化",
- "hexical.page.get_mainhand_stack.summary": "返回玩家主手物品的类型。",
- "hexcasting.action.hexical:get_offhand_stack": "配饰之纯化",
- "hexical.page.get_offhand_stack.summary": "返回玩家副手物品的类型。",
-
- "hexical.page.item.title": "物品",
- "hexcasting.action.hexical:count_stack": "仓储之纯化",
- "hexical.page.count_stack.summary": "接受一个物品实体,返回其中物品数量。",
- "hexcasting.action.hexical:count_max_stack": "库房之纯化",
- "hexical.page.count_max_stack.summary": "接受一个物品实体,返回其中最多可堆叠多少物品。",
- "hexcasting.action.hexical:damage_stack": "损耗之纯化",
- "hexical.page.damage_stack.summary": "接受一个物品实体,返回物品剩余的耐久度。",
- "hexcasting.action.hexical:damage_max_stack": "脆弱性之纯化",
- "hexical.page.damage_max_stack.summary": "接受一个物品实体,返回物品的耐久度上限。",
- "hexcasting.action.hexical:media_max_stack": "潜能之纯化",
- "hexical.page.media_max_stack.summary": "接受一个物品实体,若其无法存储媒质,返回 $(l:casting/influences)$(thing)Null$();否则返回其$(media)媒质$()存储上限。",
-
- "hexical.page.status_effects.title": "状态效果",
- "hexcasting.action.hexical:get_effects_entity": "诊断之纯化",
- "hexical.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
- "hexcasting.action.hexical:get_effects_item": "处方之纯化",
- "hexical.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
- "hexcasting.action.hexical:get_effect_category": "药性之纯化",
- "hexical.page.get_effect_category.summary": "获取某效果对承受者造成效应“良性”与否。-1 为负面,0 为中性,1 为正面。",
- "hexcasting.action.hexical:get_effect_amplifier": "浓度之馏化",
- "hexical.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexical:get_effect_duration": "效除之馏化",
- "hexical.page.get_effect_duration.summary": "获取效果的持续时间,以秒计,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
-
- "hexical.page.world.title": "世界",
- "hexcasting.action.hexical:get_light": "光照之纯化",
- "hexical.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
- "hexcasting.action.hexical:get_weather": "天气学家之精思",
- "hexical.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
- "hexcasting.action.hexical:get_power": "电池之纯化",
- "hexical.page.get_power.summary": "返回给定位置的红石信号强度。",
- "hexcasting.action.hexical:get_comparator": "外设之纯化",
- "hexical.page.get_comparator.summary": "返回比较器对准给定位置时会输出的红石信号强度。",
- "hexcasting.action.hexical:get_day": "昼夜之精思",
- "hexical.page.get_day.summary": "返回当天时间的进程,返回值在 0(一天刚开始)到 1(一天要结束)之间。",
- "hexcasting.action.hexical:get_time": "时间之精思",
- "hexical.page.get_time.summary": "压入世界经过的时间,主要用来计时,不受睡觉等事件的影响。除以 20 后即为秒数。",
- "hexcasting.action.hexical:get_biome": "地理之纯化",
- "hexical.page.get_biome.summary": "返回给定位置向量处生物群系的标识。",
- "hexcasting.action.hexical:get_dimension": "位面之精思",
- "hexical.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。",
- "hexcasting.action.hexical:get_moon": "月相之精思",
- "hexical.page.get_moon.summary": "返回当前的月相,返回值为可见的月亮照亮区域的占比。",
- "hexcasting.action.hexical:get_einstein": "扭曲之精思",
- "hexical.page.get_einstein.summary": "检验该维度是否遵守时间与空间的标准规则:指南针和钟能在其中运作。",
-
"hexcasting.action.hexical:greater_blink": "卓越闪现",
"hexical.page.greater_blink.0": "卓越闪现比$(l:patterns/great_spells/teleport)$(action)卓越传送$()要便宜许多。它不会在抵达时让我全身的物品散落。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
"hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往我面朝的方向传送 1 格。向量 (0, 1, 0) 会往我头顶的法向传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。向量 (1, 0, 0) 会往我的右侧传送 1 格。",
"hexical.page.greater_blink.2": "$(o)长跳特!比你想的还要久——$()",
+ "hexcasting.action.hexical:theodolite": "经纬仪之纯化",
+ "hexical.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
"hexical.page.meshes.title": "网斑",
"hexical.page.meshes.0": "网斑是$(l:patterns/spells/specks)视斑$()的进化形态。不会再受 iota 和图案的限制,也无需屈居于二维平面,网斑接受三维空间中的向量列表并在其间连线,由此带来的创意无穷无尽。网斑也会对大多数操纵视斑的图案有反应。",
diff --git a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
index b91979c515d9..478473bd534c 100644
--- a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
@@ -1,12 +1,10 @@
{
- "advancement.hextrogen.dash.title": "Breaking Inertia",
- "advancement.hextrogen.dash.description": "Dash using the power of estrogen!",
"hexcasting.mishap.hextrogen:no_estrogen": "Expected estrogen.",
"hextrogen.page.estrogen.title": "Dashing",
- "hextrogen.page.estrogen.0": "After $(item)Estrogen$(), I seem to have unlocked a peculiar ability to $(#ac3232)Dash$() by tapping $(thing)$(k:estrogen.dash)$().$(br2)$(#ac3232)Dashing$() grants me a sudden burst of momentum for a few moments, during which my velocity can not be altered. _Media being the energy of thought, I can use _Hexcasting to stimulate the area of my brain responsible for this ability, with a surprising amount of directional control.",
+ "hextrogen.page.estrogen.0": "$(item)Estrogen$() seems to unlock in me a peculiar ability to $(#ac3232)Dash$() by tapping $(thing)$(k:estrogen.dash)$().$(br2)$(#ac3232)Dashing$() grants me a sudden burst of momentum for a few moments, during which my velocity can not be altered. _Media being the energy of thought, I can use _Hexcasting to stimulate the area of my brain responsible for this ability, with a surprising amount of directional control.",
"hexcasting.action.hextrogen:dash": "Dash",
- "hextrogen.page.dash.summary": "Accepts a vector, normalizes it, and compels my mind to $(#ac3232)Dash$() in that direction. Cancels my velocity if given the zero vector. Free. If I am out of $(#ac3232)Dashes$(), does nothing. Requires $(item)Estrogen$().",
+ "hextrogen.page.dash.summary": "Compels my mind to $(#ac3232)Dash$() according to the normalized vector. Cancels my velocity if given the zero vector. Free. If I am out of $(#ac3232)Dashes$(), does nothing. Requires $(item)Estrogen$().",
"hextrogen.page.estrogen.1": "I must touch the ground again in order to \"refresh\" my $(#ac3232)Dash$(). However, I believe more potent forms of $(item)Estrogen$() can potentially unlock several consecutive $(#ac3232)Dashes$() before I require footing. Alternatively, I can utilize _Hexcasting to instantly renew my $(#ac3232)Dashes$().$(br2)I have discovered records of certain precise $(#ac3232)Dashes$() that can massively boost my mobility, but that art seems to have been lost to time.",
"hexcasting.action.hextrogen:refresh_dashes": "Overdrive",
- "hextrogen.page.refresh_dashes.summary": "Instantly replenishes all of my $(#ac3232)Dashes$(). Costs about one $(l:items/amethyst)$(item)Charged Amethyst$(). Nature $(o)really$() doesn't want me to dash infinitely, it seems. Requires $(item)Estrogen$()."
+ "hextrogen.page.refresh_dashes.summary": "Instantly replenishes all of the player's $(#ac3232)Dashes$(). Costs about one $(l:items/amethyst)$(item)Charged Amethyst$(). Nature $(o)really$() doesn't want me to dash infinitely, it seems. Requires $(item)Estrogen$()."
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
index 78fa31eba6f8..9ac474850c28 100644
--- a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
@@ -1,6 +1,4 @@
{
- "advancement.hextrogen.dash.title": "打破惯性",
- "advancement.hextrogen.dash.description": "用雌激素的力量冲刺!",
"hexcasting.mishap.hextrogen:no_estrogen": "本应存在雌激素。",
"hextrogen.page.estrogen.title": "冲刺",
"hextrogen.page.estrogen.0": "借助$(item)雌激素$(),我似乎学会了一项新能力——按下$(thing)$(k:estrogen.dash)$()就可$(#ac3232)冲刺$()。$(br2)$(#ac3232)冲刺$()会给予持续一段时间的动量爆发,期间我无法调整速度。$(media)媒质$()是思维的能量,因此可借助$(hex)咒法学$()刺激大脑中掌管此能力的区域,还保留了相当程度的方向控制。",
From c9d7ae855f8d80ebe9ba2a7b433d9df71a8fcb8a Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Fri, 4 Apr 2025 12:04:26 +0800
Subject: [PATCH 26/78] Hexchanting path
---
.../hexchanting/lang/en_us.json | 0
.../hexchanting/lang/zh_cn.json | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename projects/1.20-fabric/assets/{1UNKNOWN => modrinth-hexchanting}/hexchanting/lang/en_us.json (100%)
rename projects/1.20-fabric/assets/{1UNKNOWN => modrinth-hexchanting}/hexchanting/lang/zh_cn.json (100%)
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json
similarity index 100%
rename from projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/en_us.json
rename to projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json
similarity index 100%
rename from projects/1.20-fabric/assets/1UNKNOWN/hexchanting/lang/zh_cn.json
rename to projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json
From e69b4775e811df9d52ae4fdfd98351c0f8047314 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Fri, 4 Apr 2025 23:18:23 +0800
Subject: [PATCH 27/78] =?UTF-8?q?Hexposition=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
---
.../1UNKNOWN/hexposition/lang/en_us.json | 97 ++++++++++++-------
.../1UNKNOWN/hexposition/lang/zh_cn.json | 93 ++++++++++++------
2 files changed, 126 insertions(+), 64 deletions(-)
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
index ef4aad1f0d75..aea636db37e5 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
@@ -1,16 +1,30 @@
{
- "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
- "hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
+ "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
"hexcasting.mishap.invalid_value.class.identifier": "an identifier",
+ "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
+ "hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
"hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
- "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
"hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
- "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
"hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
- "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
- "hexcasting.mishap.invalid_value.potion_holding": "a food, potion, or tipped arrow item entity",
- "hexcasting.mishap.invalid_value.recognizable": "a target with extra information",
"hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
+ "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
+ "hexcasting.mishap.invalid_value.media_holding": "a media holding item or entity",
+ "hexcasting.mishap.invalid_value.potion_holding": "a potion holding item or entity",
+
+ "hexposition.item_stack.format": " | %s (%d)",
+ "hexposition.item_stack.null": "Null Item",
+
+ "hexcasting.action.book.hexposition:get_effect_amplifier": "Concentration Dstl.",
+ "hexcasting.action.book.hexposition:get_effects_item": "Prescription Purif.",
+ "hexcasting.action.book.hexposition:get_enchantments": "Thaumaturgist's Purif.",
+ "hexcasting.action.book.hexposition:breedable": "Reproduction Purif.",
+ "hexcasting.action.book.hexposition:theodolite": "Theodolite Purif.",
+ "hexcasting.action.book.hexposition:identify": "Detective's Purif.",
+ "hexcasting.action.book.hexposition:damage_stack": "Deterioration Purif.",
+ "hexcasting.action.book.hexposition:classify": "Modicum Purif.",
+ "hexcasting.action.book.hexposition:get_biome": "Geographical Purif.",
+ "hexcasting.action.book.hexposition:get_weather": "Meterologist's Refl.",
"hexposition.page.enlightened_patterns.title": "Enlightened Patterns",
"hexposition.page.enlightened_patterns.0": "After enlightenment, I find myself acutely aware of certain patterns to aid with my newfound abilities. These patterns don't seem to require anything from me that I didn't have before, perhaps I've always been able to cast them but was unaware of their existence. An unenlightened player will be able to use $(l:items/hexcasting)$(item)casting devices$() with these patterns.",
@@ -49,12 +63,6 @@
"hexcasting.action.hexposition:blockstate_book": "Book Purification",
"hexposition.page.blockstate_book.summary": "Pushes a boolean for whether lecterns or jukeboxes have a book/music disc in them respectively. I read that it may work for some kind of bookshelf involved in a great work too.",
- "hexposition.page.enchantments.title": "Enchantments",
- "hexcasting.action.hexposition:get_enchantments": "Thaumaturgist's Purification",
- "hexposition.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
- "hexcasting.action.hexposition:get_enchantment_strength": "Charm Distillation",
- "hexposition.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
-
"hexposition.page.entities.title": "Entities",
"hexcasting.action.hexposition:entity_width": "Caliper's Purification",
"hexposition.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
@@ -65,9 +73,9 @@
"hexcasting.action.hexposition:get_max_health": "Fitness Purification",
"hexposition.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
"hexcasting.action.hexposition:get_air": "Suffocation Purification",
- "hexposition.page.get_air.summary": "Pushes the number of seconds before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
+ "hexposition.page.get_air.summary": "Pushes the twentieths of a second before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
"hexcasting.action.hexposition:get_max_air": "Lung Purification",
- "hexposition.page.get_max_air.summary": "Pushes the number of seconds an entity can last outside their normal breathing environment before they start suffocating.",
+ "hexposition.page.get_max_air.summary": "Pushes the twentieths of a second an entity can last outside their normal breathing environment before they start suffocating.",
"hexcasting.action.hexposition:get_player_hunger": "Hunger Purification",
"hexposition.page.get_player_hunger.summary": "Pushes how full a player is. I can imagine this as half-hunger-hunches.",
"hexcasting.action.hexposition:get_player_saturation": "Stamina Purification",
@@ -75,7 +83,7 @@
"hexcasting.action.hexposition:is_burning": "Inferno Purification",
"hexposition.page.is_burning.summary": "Pushes whether the entity is burning. Also applies to entities that are visually on fire, even if they are immune to fire, such as blazes attacking.",
"hexcasting.action.hexposition:burning_time": "Inferno Purification II",
- "hexposition.page.burning_time.summary": "Pushes how long in seconds the entity will continue burning if not put out.",
+ "hexposition.page.burning_time.summary": "Pushes how long in twentieths of a second the entity will continue burning if not put out.",
"hexcasting.action.hexposition:is_wet": "Enderman's Purification",
"hexposition.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
"hexcasting.action.hexposition:is_baby": "Youth Purification",
@@ -95,10 +103,10 @@
"hexposition.page.env_staff.summary": "Pushes whether a $(l:items/staff)$(item)Staff$() is being used to cast this pattern.",
"hexcasting.action.hexposition:env_offhand": "Dexterity Reflection",
"hexposition.page.env_offhand.summary": "Pushes whether the most dominant hand of the caster is being used to cast this pattern. May work strangely for casters without hands...",
- "hexcasting.action.hexposition:env_media": "Media Reflection",
- "hexposition.page.env_media.summary": "Pushes the _media available to this current cast.",
"hexcasting.action.hexposition:env_packaged_hex": "Device Reflection",
"hexposition.page.env_packaged_hex.summary": "Pushes whether any form of $(l:items/hexcasting)$(item)casting device$() is being used to cast this pattern.",
+ "hexcasting.action.hexposition:env_circle": "Constructed Reflection",
+ "hexposition.page.env_circle.summary": "Pushes whether some form of $(l:greatwork/spellcircles)$(thing)$(o)grand work$() is being used to cast this pattern.",
"hexposition.page.food.title": "Food",
"hexcasting.action.hexposition:edible": "Edibility Purification",
@@ -116,27 +124,50 @@
"hexposition.page.identifiers.0": "My _Hexes has so far been quite blind to the world. I can get a creature's height, velocity, and more but I can't directly identify that entity. Nature's solution to the problem is the $(o)identifier iota$(). Every entity, block, status effect, enchantment, sound, etc... has a unique identifier that my _Hexes can identify. Once I have two identifiers, I can compare them with each other.",
"hexcasting.action.hexposition:identify": "Detective's Purification",
"hexposition.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
- "hexposition.page.identifiers.1": "I notice that if I were to use Detective's Purification on an item, it returns that it's an item entity, but if I were to use Recognizer's Purification on that same entity, it would return the type of item. This type of item matches with a block identifier returned by Detective's Purification. I can imagine Recognizer's as returning $(o)additional$() information if possible.",
- "hexcasting.action.hexposition:recognize": "Recognizer's Purification",
- "hexposition.page.recognize.summary": "Pushes extra identifier information of an entity, mainly the item type of an item entity or the item type inside an item frame entity.",
"hexcasting.action.hexposition:classify": "Modicum Purification",
"hexposition.page.classify.summary": "Pushes the identifier of an iota's type. Can be used to determine whether two iota are the same type.",
- "hexcasting.action.hexposition:get_mainhand_stack": "Tool Purification",
- "hexposition.page.get_mainhand_stack.summary": "Returns the type of item in the player's mainhand.",
- "hexcasting.action.hexposition:get_offhand_stack": "Accessory Purification",
- "hexposition.page.get_offhand_stack.summary": "Returns the type of item in the player's offhand.",
"hexposition.page.item.title": "Items",
+ "hexposition.page.item.0": "An item iota encodes all information that distinguish a stack of items (even an absence of items strangely enough). There is one exception however; an item iota of an item that holds an item iota does not retain the contained iota. The already intricate patterns of _media that form item iota simply unravel when nested within even more layers of abstraction.",
+ "hexposition.page.item.1": "Players seem to manipulate _media idly just as a byproduct of being sentient. This field of _media strikes back, often violently at attempts of in-depth scrying. Simple items such as armor and held items can be spied on, but deep in-depth analysis of their inventory's contents will fail.",
+ "hexcasting.action.hexposition:get_stack": "Item Purification",
+ "hexposition.page.get_stack.summary": "Pushes the item that an item entity is.",
+ "hexcasting.action.hexposition:create_stack": "Offer Purification",
+ "hexposition.page.create_stack.summary": "Creates an item iota from an item identifier and a count of items.",
+ "hexcasting.action.hexposition:get_mainhand": "Tool Purification",
+ "hexposition.page.get_mainhand.summary": "Returns the item in the entity's mainhand.",
+ "hexcasting.action.hexposition:get_offhand": "Accessory Purification",
+ "hexposition.page.get_offhand.summary": "Returns the item in the entity's offhand.",
+ "hexcasting.action.hexposition:get_inventory": "Cart Purification",
+ "hexposition.page.get_inventory.summary": "Returns a list of all items the entity is carrying, or $(l:casting/influences)$(thing)Null$() if the entity can not hold items. Trying to access another player's inventory will incur a mishap.",
+ "hexcasting.action.hexposition:get_block_inventory": "Chest Purification",
+ "hexposition.page.get_block_inventory.summary": "Returns a list of all items in the container, or $(l:casting/influences)$(thing)Null$() if the block can not contain items.",
+ "hexcasting.action.hexposition:get_armor": "Aegis Purification",
+ "hexposition.page.get_armor.summary": "Returns a list of all items the entity is wearing, from feet up.",
+ "hexcasting.action.hexposition:get_ender_chest": "Pocket Reflection",
+ "hexposition.page.get_ender_chest.summary": "Returns a list of all items in my ender chest.",
"hexcasting.action.hexposition:count_stack": "Storage Purification",
- "hexposition.page.count_stack.summary": "Takes in an item entity and pushes how many items are in it.",
+ "hexposition.page.count_stack.summary": "Takes in an item and pushes how many items are in it.",
"hexcasting.action.hexposition:count_max_stack": "Warehouse Purification",
- "hexposition.page.count_max_stack.summary": "Takes in an item entity and pushes how many items that can stack in it.",
+ "hexposition.page.count_max_stack.summary": "Takes in an item and pushes how many items that can stack in it.",
"hexcasting.action.hexposition:damage_stack": "Deterioration Purification",
- "hexposition.page.damage_stack.summary": "Takes in an item entity and pushes how much damage the item has sustained.",
+ "hexposition.page.damage_stack.summary": "Takes in an item and pushes how much damage the item has sustained.",
"hexcasting.action.hexposition:damage_max_stack": "Fragility Purification",
- "hexposition.page.damage_max_stack.summary": "Takes in an item entity and pushes how much durability the item can have at its peak.",
+ "hexposition.page.damage_max_stack.summary": "Takes in an item and pushes how much durability the item can have at its peak.",
+ "hexcasting.action.hexposition:get_enchantments": "Thaumaturgist's Purification",
+ "hexposition.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
+ "hexcasting.action.hexposition:get_enchantment_strength": "Charm Distillation",
+ "hexposition.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
+ "hexcasting.action.hexposition:rarity": "Collector Purification",
+ "hexposition.page.rarity.summary": "Gauges the rarity of an item as a number, with greater values corresponding to a rarer item. Certain aspects such as enchantments can also elevate an item's rarity.",
+
+ "hexposition.page.media.title": "Media",
+ "hexcasting.action.hexposition:env_media": "Media Reflection",
+ "hexposition.page.env_media.summary": "Pushes the _media available to this current cast.",
+ "hexcasting.action.hexposition:get_media": "Media Purification",
+ "hexposition.page.get_media.summary": "Pushes the amount of _media inside an item, that a creature contains or holds, or that a specialized _media-holding block contains.",
"hexcasting.action.hexposition:media_max_stack": "Potential Purification",
- "hexposition.page.media_max_stack.summary": "Takes in an item entity and pushes either $(l:casting/influences)$(thing)Null$() if the item does not have any media-holding potential, or the amount of _media it is capable of holding at its peak.",
+ "hexposition.page.media_max_stack.summary": "Takes in an item and pushes either $(l:casting/influences)$(thing)Null$() if the item does not have any _media-holding potential, or the amount of _media it is capable of holding at its peak.",
"hexposition.page.status_effects.title": "Status Effects",
"hexcasting.action.hexposition:get_effects_entity": "Diagnosis Purification",
@@ -168,7 +199,7 @@
"hexcasting.action.hexposition:get_dimension": "Plane Reflection",
"hexposition.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in.",
"hexcasting.action.hexposition:get_moon": "Lunar Reflection",
- "hexposition.page.get_moon.summary": "Pushes the current phase of the moon as a fraction of its size.",
+ "hexposition.page.get_moon.summary": "Pushes the current phase of the Moon as a fraction of its size.",
"hexcasting.action.hexposition:get_einstein": "Distortion Reflection",
- "hexposition.page.get_einstein.summary": "Pushes whether this dimension is bounded by standard rules of space and time: compasses and clocks will work here."
-}
\ No newline at end of file
+ "hexposition.page.get_einstein.summary": "Pushes whether this dimension is bounded by standard rules of space and time: $(item)Compasses$() and $(item)Clocks$() will work here."
+}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
index 078fa127c130..ef7c01b72fcf 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
@@ -1,16 +1,30 @@
{
+ "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
+ "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
"hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
"hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识",
- "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
"hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
- "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
"hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
- "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
"hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
- "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
- "hexcasting.mishap.invalid_value.potion_holding": "一个食物、药水、或药箭物品实体",
- "hexcasting.mishap.invalid_value.recognizable": "一个带有额外信息的目标",
"hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
+ "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
+ "hexcasting.mishap.invalid_value.media_holding": "一个装有媒质的物品或实体",
+ "hexcasting.mishap.invalid_value.potion_holding": "一个装有药水的物品或实体",
+
+ "hexposition.item_stack.format": " | %s(%d)",
+ "hexposition.item_stack.null": "Null物品",
+
+ "hexcasting.action.book.hexposition:get_effect_amplifier": "浓度之馏化",
+ "hexcasting.action.book.hexposition:get_effects_item": "处方之纯化",
+ "hexcasting.action.book.hexposition:get_enchantments": "奇术师之纯化",
+ "hexcasting.action.book.hexposition:breedable": "繁衍之纯化",
+ "hexcasting.action.book.hexposition:theodolite": "经纬仪之纯化",
+ "hexcasting.action.book.hexposition:identify": "侦探之纯化",
+ "hexcasting.action.book.hexposition:damage_stack": "损耗之纯化",
+ "hexcasting.action.book.hexposition:classify": "抵量之纯化",
+ "hexcasting.action.book.hexposition:get_biome": "地理之纯化",
+ "hexcasting.action.book.hexposition:get_weather": "天气学家之精思",
"hexposition.page.enlightened_patterns.title": "启迪后图案",
"hexposition.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经启迪的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
@@ -49,12 +63,6 @@
"hexcasting.action.hexposition:blockstate_book": "书之纯化",
"hexposition.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。我读到过它可能对所谓“卓伟大作”中的某种奇妙书架也有效。",
- "hexposition.page.enchantments.title": "魔咒",
- "hexcasting.action.hexposition:get_enchantments": "奇术师之纯化",
- "hexposition.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
- "hexcasting.action.hexposition:get_enchantment_strength": "咒能之馏化",
- "hexposition.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
-
"hexposition.page.entities.title": "实体",
"hexcasting.action.hexposition:entity_width": "卡尺之纯化",
"hexposition.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
@@ -65,9 +73,9 @@
"hexcasting.action.hexposition:get_max_health": "健康之纯化",
"hexposition.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
"hexcasting.action.hexposition:get_air": "窒息之纯化",
- "hexposition.page.get_air.summary": "压入实体距离窒息剩余的秒数。对脱水的海洋生物和溺水的陆地生物均有效。",
+ "hexposition.page.get_air.summary": "压入实体距离窒息剩余多少个 1/20 秒。对脱水的海洋生物和溺水的陆地生物均有效。",
"hexcasting.action.hexposition:get_max_air": "双肺之纯化",
- "hexposition.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少秒开始窒息。",
+ "hexposition.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少个 1/20 秒开始窒息。",
"hexcasting.action.hexposition:get_player_hunger": "饥饿之纯化",
"hexposition.page.get_player_hunger.summary": "返回玩家实体的饥饿值。使用半个饥饿值火腿作为单位。",
"hexcasting.action.hexposition:get_player_saturation": "耐力之纯化",
@@ -75,7 +83,7 @@
"hexcasting.action.hexposition:is_burning": "炼狱之纯化",
"hexposition.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
"hexcasting.action.hexposition:burning_time": "炼狱之纯化,第二型",
- "hexposition.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余的时间。",
+ "hexposition.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余多少个 1/20 秒。",
"hexcasting.action.hexposition:is_wet": "末影人之纯化",
"hexposition.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
"hexcasting.action.hexposition:is_baby": "青春之纯化",
@@ -95,10 +103,10 @@
"hexposition.page.env_staff.summary": "检验该图案是否由$(l:items/staff)$(item)法杖$()施放。",
"hexcasting.action.hexposition:env_offhand": "敏捷之精思",
"hexposition.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果……",
- "hexcasting.action.hexposition:env_media": "媒质之精思",
- "hexposition.page.env_media.summary": "返回此次施放时可用的$(media)媒质$()的量。",
"hexcasting.action.hexposition:env_packaged_hex": "设备之精思",
"hexposition.page.env_packaged_hex.summary": "检验该图案是否由任意$(l:items/hexcasting)$(item)施法物品$()施放。",
+ "hexcasting.action.hexposition:env_circle": "建构之精思",
+ "hexposition.page.env_circle.summary": "检验该图案是否由某种$(l:greatwork/spellcircles)$(thing)$(o)卓伟之作$()施放。",
"hexposition.page.food.title": "食物",
"hexcasting.action.hexposition:edible": "可食性之纯化",
@@ -116,27 +124,50 @@
"hexposition.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
"hexcasting.action.hexposition:identify": "侦探之纯化",
"hexposition.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
- "hexposition.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
- "hexcasting.action.hexposition:recognize": "识别器之纯化",
- "hexposition.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
"hexcasting.action.hexposition:classify": "抵量之纯化",
"hexposition.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
- "hexcasting.action.hexposition:get_mainhand_stack": "工具之纯化",
- "hexposition.page.get_mainhand_stack.summary": "返回玩家主手物品的类型。",
- "hexcasting.action.hexposition:get_offhand_stack": "配饰之纯化",
- "hexposition.page.get_offhand_stack.summary": "返回玩家副手物品的类型。",
"hexposition.page.item.title": "物品",
+ "hexposition.page.item.0": "物品 iota 中含有的信息足以唯一确定一个物品组(奇怪的是,甚至还能表示物品的缺失)。不过此类 iota 有一个例外:代表某个包含物品 iota 的物品的物品 iota 中不会保留其所存有的 iota。物品 iota 的精细$(media)媒质$()结构在经多次抽象后即会消散殆尽。",
+ "hexposition.page.item.1": "玩家具有智能,也似乎因此在常态操控$(media)媒质$()。这种$(media)媒质$()场会对外部的操作产生反应;在深入探知的情况下,这一反应通常相当剧烈。盔甲和手持物品等简单的物品可被探知,但对玩家物品栏内容物的深入分析不会起效。",
+ "hexcasting.action.hexposition:get_stack": "物品之纯化",
+ "hexposition.page.get_stack.summary": "返回所给物品实体对应的物品。",
+ "hexcasting.action.hexposition:create_stack": "献物之纯化",
+ "hexposition.page.create_stack.summary": "由物品标识和物品数制造物品。",
+ "hexcasting.action.hexposition:get_mainhand": "工具之纯化",
+ "hexposition.page.get_mainhand.summary": "返回实体主手的物品。",
+ "hexcasting.action.hexposition:get_offhand": "配件之纯化",
+ "hexposition.page.get_offhand.summary": "返回实体副手的物品。",
+ "hexcasting.action.hexposition:get_inventory": "矿车之纯化",
+ "hexposition.page.get_inventory.summary": "返回实体装有的全部物品组成的列表;若实体无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。试图访问其他玩家的物品栏会招致事故。",
+ "hexcasting.action.hexposition:get_block_inventory": "箱子之纯化",
+ "hexposition.page.get_block_inventory.summary": "返回容器装有的全部物品组成的列表;若方块无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexposition:get_armor": "埃癸斯之纯化",
+ "hexposition.page.get_armor.summary": "返回实体穿着的全部物品组成的列表,顺序自下向上。",
+ "hexcasting.action.hexposition:get_ender_chest": "口袋之精思",
+ "hexposition.page.get_ender_chest.summary": "返回我末影箱中全部物品组成的列表。",
"hexcasting.action.hexposition:count_stack": "仓储之纯化",
- "hexposition.page.count_stack.summary": "接受一个物品实体,返回其中物品数量。",
+ "hexposition.page.count_stack.summary": "接受一个物品,返回其中物品数量。",
"hexcasting.action.hexposition:count_max_stack": "库房之纯化",
- "hexposition.page.count_max_stack.summary": "接受一个物品实体,返回其中最多可堆叠多少物品。",
+ "hexposition.page.count_max_stack.summary": "接受一个物品,返回其中最多可堆叠多少物品。",
"hexcasting.action.hexposition:damage_stack": "损耗之纯化",
- "hexposition.page.damage_stack.summary": "接受一个物品实体,返回物品剩余的耐久度。",
+ "hexposition.page.damage_stack.summary": "接受一个物品,返回物品剩余的耐久度。",
"hexcasting.action.hexposition:damage_max_stack": "脆弱性之纯化",
- "hexposition.page.damage_max_stack.summary": "接受一个物品实体,返回物品的耐久度上限。",
+ "hexposition.page.damage_max_stack.summary": "接受一个物品,返回物品的耐久度上限。",
+ "hexcasting.action.hexposition:get_enchantments": "奇术师之纯化",
+ "hexposition.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
+ "hexcasting.action.hexposition:get_enchantment_strength": "咒能之馏化",
+ "hexposition.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
+ "hexcasting.action.hexposition:rarity": "收藏家之纯化",
+ "hexposition.page.rarity.summary": "测量物品的稀有度,返回为数,值越大越稀有。魔咒等特殊性质可能会提升物品的稀有度。",
+
+ "hexposition.page.media.title": "媒质",
+ "hexcasting.action.hexposition:env_media": "媒质之精思",
+ "hexposition.page.env_media.summary": "返回此次施放时可用的$(media)媒质$()的量。",
+ "hexcasting.action.hexposition:get_media": "媒质之纯化",
+ "hexposition.page.get_media.summary": "返回物品中的,或生物含有的,或生物持有的,或特种$(media)媒质$()存储方块含有的$(media)媒质$()。",
"hexcasting.action.hexposition:media_max_stack": "潜能之纯化",
- "hexposition.page.media_max_stack.summary": "接受一个物品实体,若其无法存储媒质,返回 $(l:casting/influences)$(thing)Null$();否则返回其$(media)媒质$()存储上限。",
+ "hexposition.page.media_max_stack.summary": "接受一个物品实体,若其无法存储$(media)媒质$(),返回 $(l:casting/influences)$(thing)Null$();否则返回其$(media)媒质$()存储上限。",
"hexposition.page.status_effects.title": "状态效果",
"hexcasting.action.hexposition:get_effects_entity": "诊断之纯化",
@@ -170,5 +201,5 @@
"hexcasting.action.hexposition:get_moon": "月相之精思",
"hexposition.page.get_moon.summary": "返回当前的月相,返回值为可见的月亮照亮区域的占比。",
"hexcasting.action.hexposition:get_einstein": "扭曲之精思",
- "hexposition.page.get_einstein.summary": "检验该维度是否遵守时间与空间的标准规则:指南针和钟能在其中运作。"
-}
\ No newline at end of file
+ "hexposition.page.get_einstein.summary": "检验该维度是否遵守时间与空间的标准规则:$(item)指南针$()和$(item)钟$()能在其中运作。"
+}
From 947d1697f3ad2aee2be099ab1263591973cd39b6 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Fri, 18 Apr 2025 06:41:13 +0800
Subject: [PATCH 28/78] =?UTF-8?q?Hexical=20HexCassettes=20update=EF=BC=9A?=
=?UTF-8?q?=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
---
.../hexcassettes/lang/en_us.json | 8 +-
.../hexcassettes/lang/zh_cn.json | 8 +-
.../modrinth-hexical/hexical/lang/en_us.json | 86 +++++++++++++++----
.../modrinth-hexical/hexical/lang/zh_cn.json | 79 +++++++++++++----
4 files changed, 137 insertions(+), 44 deletions(-)
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
index 7869aad176df..71e0abe6c3c4 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
@@ -7,7 +7,7 @@
"advancements.hexcassettes.full_arsenal.description": "Acquire a full arsenal of cassettes.",
"key.categories.hexcassettes": "Hexcassettes",
"key.hexcassettes.view_cassettes": "Ponder Cassettes",
- "hexcasting.mishap.invalid_value.hex_or_index": "a Hex or an index for the cassette",
+ "hexcasting.mishap.invalid_value.hex_or_key": "a Hex or a pattern for the cassette key",
"item.hexcassettes.cassette": "Cassette",
"screen.hexical.cassette": "Cassettes",
"subtitles.hexcassettes.cassette_eject": "Cassette ejects",
@@ -23,7 +23,7 @@
"hexcassettes.page.async.craft": "After plating a $(item)Music Disc$() with a hefty amount of $(item)$(l:items/amethyst)Charged Amethyst$() to enable the $(o)abstraction$(), I can $(o)consume$() my glorious creation using a combination of magic, willpower, and a lot of chewing to add it to my mind's collection.",
"hexcasting.action.hexcassettes:enqueue": "Enqueue",
"hexcassettes.page.enqueue.summary.0": "Enqueues a _Hex to cast after that many twentieths of a second. Queues it into the first free $(thing)Cassette$() or the current $(thing)Cassette$() and pushes the index of that $(thing)Cassette$().",
- "hexcassettes.page.async.1": "The index number is used to distinguish $(thing)Cassettes$() from each other. It ranges from 0 to one less than the number of $(thing)Cassettes$() I have in my mind's collection. If $(l:async#hexcassettes:enqueue)$(action)Enqueue$() can not find a free $(thing)Cassette$(), incurs the Parallel Processing mishap, killing all my active $(thing)Cassettes$().$(br2)Seems to hint that my reality has a disturbingly low $(o)temporal resolution$().. best not to dwell on that.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.1": "The index number is used to distinguish $(thing)Cassettes$() from each other. It ranges from 0 to one less than the number of $(thing)Cassettes$() I have in my mind's collection. If $(l:async#hexcassettes:enqueue)$(action)Enqueue$() can not find a free $(thing)Cassette$(), incurs the Parallel Processing mishap.$(br2)Seems to hint that the world I live in has a disturbingly low $(o)temporal resolution$().. best not to dwell on that.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
"hexcassettes.page.async.2": "I can ponder my $(thing)Cassettes$() by pressing $(thing)$(k:hexcassettes.view_cassettes)$() and cycle through them with the arrow keys. Queued _Hexes are represented as inserted $(thing)Cassettes$() with their label rendered to the side, and by pressing an $(thing)Cassette$(), I can cancel the corresponding _Hex.$(br2)Dying also forcibly disqueues all of my $(thing)Cassettes$(). I can rest easy that I will not trap myself in an endless death cycle.",
"hexcassettes.page.async.3": "If a $(thing)Cassette$() enqueues a near-identical copy of itself, a phenomenon emerges that ancient _Hexcasters call a daemon: passive, constant _Hexcasting. Study into this branch of _Hexcasting seems limited due to the great danger of manipulating time: $(thing)Cassette$() _Hexes exclusively use the _media from my inventory. If left unchecked, it can easily drain my _media and then my life.",
"hexcasting.action.hexcassettes:dequeue": "Dequeue",
@@ -32,8 +32,8 @@
"hexcassettes.page.killall.summary": "Dequeues all $(thing)Cassettes$(). Useful for ouroboros-like _Hexes that bypass regular dequeuing via two mutually resurrecting $(thing)Cassettes$().",
"hexcasting.action.hexcassettes:specs": "Threading Reflection",
"hexcassettes.page.specs.summary": "Pushes the total number of $(thing)Cassettes$() that I have in my mind's collection.",
- "hexcasting.action.hexcassettes:free": "Idling Reflection",
- "hexcassettes.page.free.summary": "Pushes a list of the indices of my non-busy $(thing)Cassettes$().",
+ "hexcasting.action.hexcassettes:busy": "Operating Reflection",
+ "hexcassettes.page.busy.summary": "Pushes a list of all patterns that belong to busy $(thing)Cassettes$().",
"hexcasting.action.hexcassettes:inspect": "Program Purification",
"hexcassettes.page.inspect.summary": "Pushes $(l:casting/influences)$(thing)Null$() if I do not have an active $(thing)Cassette$() at that index, or the $(thing)Cassette$()'s _Hex if I do. I hear rumors of this being used for iota storage and passing information between _Hexes.",
"hexcasting.action.hexcassettes:foretell": "Oracle Purification",
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
index 03dee1e20d95..6d82b0e44f4c 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
@@ -7,7 +7,7 @@
"advancements.hexcassettes.full_arsenal.description": "填满磁带库。",
"key.categories.hexcassettes": "Hexcassettes",
"key.hexcassettes.view_cassettes": "思索磁带",
- "hexcasting.mishap.invalid_value.hex_or_index": "一个咒术或一个磁带索引",
+ "hexcasting.mishap.invalid_value.hex_or_key": "一个咒术或一个用作磁带键的图案",
"item.hexcassettes.cassette": "磁带",
"screen.hexical.cassette": "磁带",
"subtitles.hexcassettes.cassette_eject": "磁带:弹出",
@@ -23,7 +23,7 @@
"hexcassettes.page.async.craft": "为促使$(item)音乐唱片$()与$(media)媒质$()$(o)融合$(),我为其镀上了相当多的$(item)$(l:items/amethyst)充能紫水晶$()。所得的智慧结晶需要$(o)食用$(),魔法、意志、持之以恒地咀嚼,三者缺一不可;这一过程后,即可将其收作己用。",
"hexcasting.action.hexcassettes:enqueue": "入队列",
"hexcassettes.page.enqueue.summary.0": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。$(hex)咒术$()会进入第一个空闲的$(thing)磁带$(),或进入当前$(thing)磁带$(),同时返回该$(thing)磁带$()的索引。",
- "hexcassettes.page.async.1": "$(thing)磁带$()间使用索引数区分。索引自 0 起始,至目前意识中$(thing)磁带$()的总数之前为止。如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故:终止所有活跃中的$(thing)磁带$()。$(br2)这似乎表明我所处现实的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.1": "$(thing)磁带$()间使用索引数区分。索引自 0 起始,至目前意识中$(thing)磁带$()的总数之前为止。如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故。$(br2)这似乎表明我所处世界的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
"hexcassettes.page.async.2": "按下$(thing)$(k:hexcassettes.view_cassettes)$()键可以思索$(thing)磁带$(),使用方向键可循环切换。已入队列的$(hex)咒术$()会显现为插入的$(thing)磁带$(),同时在侧面显示其标签。按压$(thing)磁带$()可以取消对应$(hex)咒术$()。$(br2)死亡也会强制将所有$(thing)磁带$()清出队列。如此就无需担心了——我不会陷入无穷无尽的死亡循环了。",
"hexcassettes.page.async.3": "若$(thing)磁带$()将其自身的副本稍加改动后入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()中$(hex)咒术$()只会消耗物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。",
"hexcasting.action.hexcassettes:dequeue": "出队列",
@@ -32,8 +32,8 @@
"hexcassettes.page.killall.summary": "令所有$(thing)磁带$()出队列。很适合给那些和衔尾蛇一样的$(hex)咒术$()用:两个互相激活的$(thing)磁带$()无法以常规手段出队列。",
"hexcasting.action.hexcassettes:specs": "线程之精思",
"hexcassettes.page.specs.summary": "返回我意识中当前的$(thing)磁带$()总数。",
- "hexcasting.action.hexcassettes:free": "空闲之精思",
- "hexcassettes.page.free.summary": "返回我意识中当前的空闲$(thing)磁带$()索引列表。",
+ "hexcasting.action.hexcassettes:busy": "运作之精思",
+ "hexcassettes.page.busy.summary": "返回所有忙状态$(thing)磁带$()的图案组成的列表。",
"hexcasting.action.hexcassettes:inspect": "程序之纯化",
"hexcassettes.page.inspect.summary": "若所给索引处$(thing)磁带$()不处于活跃状态,返回 $(l:casting/influences)$(thing)Null$();否则返回其中$(hex)咒术$()。我听过一些传言,说这个图案可以用来存储 iota,也可以用来在$(hex)咒术$()间传递信息。",
"hexcasting.action.hexcassettes:foretell": "先知之纯化",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 2946a69682bd..73a53e7f4818 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -18,16 +18,18 @@
"advancements.hexical.media_slurp.title": "Tripping",
"advancements.hexical.media_slurp.description": "\"You sense that something is off.\"",
+ "block.hexical.casting_carpet": "Casting Carpet",
"block.hexical.hex_candle": "Hex Candle",
"block.hexical.mage_block": "Mage Block",
"block.hexical.media_jar": "Media Jar",
+ "block.hexical.periwinkle": "Periwinkle",
"block.hexical.sentinel_bed": "Sentinel Bed",
"death.attack.magic_missile": "%1$s was struck with arcane force by %2$s",
"death.attack.magic_missile.item": "%1$s was struck with arcane force by %2$s using %3$s",
"death.attack.spike": "%1$s was punctured by %2$s",
"death.attack.spike.item": "%1$s was punctured by %2$s using %3$s",
"effect.hexical.wooleyed": "Wooleyed",
- "effect.hexical.wooleyed.description": "Blurs the line between my material body and the media.",
+ "effect.hexical.wooleyed.description": "Helps me unsee some of the horrors I have seen.",
"entity.hexical.animated_scroll": "Animated Scroll",
"entity.hexical.magic_missile": "Magic Missile",
"entity.hexical.mesh": "Mesh",
@@ -44,10 +46,21 @@
"item.hexical.conjured_compass": "Conjured Compass",
"item.hexical.grimoire": "Grimoire",
"item.hexical.hand_lamp": "Hand Genie Lamp",
+ "item.hexical.hex_gummy": "Hex Gummy",
"item.hexical.hexburst": "Hexburst",
"item.hexical.hextito": "Hextito",
"item.hexical.gauntlet_staff": "Gauntlet Staff",
- "item.hexical.ledger": "Ledger",
+ "item.hexical.media_log.0": "Media Log",
+ "item.hexical.media_log.1": "Eedia Log",
+ "item.hexical.media_log.2": "Erdia Log",
+ "item.hexical.media_log.3": "Erria Log",
+ "item.hexical.media_log.4": "Erroa Log",
+ "item.hexical.media_log.5": "Error Log",
+ "item.hexical.media_log.6": "Mrror Log",
+ "item.hexical.media_log.7": "Meror Log",
+ "item.hexical.media_log.8": "Medor Log",
+ "item.hexical.media_log.9": "Medir Log",
+ "item.hexical.lei": "Lei",
"item.hexical.lightning_rod_staff": "Lightning Rod Staff",
"item.hexical.scarab_beetle": "Scarab Beetle",
"item.hexical.tchotchke": "Tchotchke",
@@ -55,6 +68,14 @@
"item.minecraft.splash_potion.effect.wooleyed": "Splash Potion of Wooleyeing",
"item.minecraft.lingering_potion.effect.wooleyed": "Lingering Potion of Wooleyeing",
"item.minecraft.tipped_arrow.effect.wooleyed": "Arrow of Wooleyeing",
+ "item.minecraft.potion.effect.long_wooleyed": "Potion of Wooleyeing",
+ "item.minecraft.splash_potion.effect.long_wooleyed": "Splash Potion of Wooleyeing",
+ "item.minecraft.lingering_potion.effect.long_wooleyed": "Lingering Potion of Wooleyeing",
+ "item.minecraft.tipped_arrow.effect.long_wooleyed": "Arrow of Wooleyeing",
+ "item.minecraft.potion.effect.strong_wooleyed": "Potion of Wooleyeing",
+ "item.minecraft.splash_potion.effect.strong_wooleyed": "Splash Potion of Wooleyeing",
+ "item.minecraft.lingering_potion.effect.strong_wooleyed": "Lingering Potion of Wooleyeing",
+ "item.minecraft.tipped_arrow.effect.strong_wooleyed": "Arrow of Wooleyeing",
"itemGroup.hexical.general": "Hexical",
"stat.hexical.evocation": "Times Wololoed",
"subtitles.hexical.amethyst_melt": "Amethyst melts",
@@ -108,7 +129,6 @@
"hexcasting.mishap.invalid_value.class.pigment": "a pigment",
"hexcasting.mishap.invalid_value.conjurable_flower_id": "an identifier of a conjurable flower type",
"hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
- "hexcasting.mishap.invalid_value.integer_natural": "an integer greater than 0",
"hexcasting.mishap.invalid_value.mesh_design": "a list of up to 32 vectors with magnitudes less than 10",
"hexcasting.mishap.invalid_value.nonempty_list": "a non-empty list",
"hexcasting.mishap.invalid_value.number_list": "a non-empty list of numbers",
@@ -151,6 +171,11 @@
"hexcasting.action.book.hexical:modify_block_replaceable": "Replaceable",
"hexcasting.action.book.hexical:modify_block_volatile": "Volatile",
+ "hexical.page.ungodly.title": "Horrible",
+ "hexical.page.ungodly.0": "Of all the spells I have recorded, I have never met one as strange as this. $(o)How does someone even begin to draw this?$()",
+ "hexcasting.action.hexical:ungodly": "Summon?",
+ "hexical.page.ungodly.summary": "Judging by the pattern signature, I can only imagine that it summons something.",
+
"hexical.page.hexical_changes.title": "Hexical Changes",
"hexical.page.hexical_changes.0": "I feel strangely more in tune with the ambient _media around me. It feels $(o)friendlier$() somehow. I can even feel it rippling around me, responding to my actions, as if engaging with me. The _media also feels more malleable, more $(o)workable$(); I sense I am able to manipulate it into more precise and specific specialized effects. I can also bring up my $(item)Hex Notebook$() by pressing $(thing)$(k:hexical.open_hexbook).",
"hexical.page.hexical_changes.1": "I also find my tools more familiar. I don't require the same level of caution with my $(l:items/staff)$(item)Staff$() and can move around during casting, handy for chasing down targets that get out of my line of sight before I can finish my raycast. I shouldn't become too inattentive though, Nature has not become more forgiving of my miscalculations. I can also write directly into my $(l:items/abacus)$(item)Abacus$() with $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$().",
@@ -207,18 +232,29 @@
"hexical.recipe.uncry_obsidian.header": "Calm Obsidian",
"hexical.recipe.uncry_obsidian.text": "Returns the _media from $(item)Crying Obsidian$().$(br2)$(o)Therapy! :D$()",
- "hexical.page.ledger.title": "Ledgers",
- "hexical.page.ledger.0": "$(l:patterns/meta)When _Hexes cast _Hexes$(), it is easy to lose track of my _Hex and Nature is all too happy to be punish such carelessness. Luckily, a $(item)Ledger$() can record the last 32 patterns I casted, the last mishap I have cast, and the state of the stack right before mishap. The true power of $(item)Ledgers$() is the ability for it to record patterns cast $(o)even by $(l:patterns/meta)meta-evaluations$().",
- "hexical.page.ledger.1": "I can click the patterns to clear my $(item)Ledger$() before a new _Hex to avoid contamination.$(br2)$(o)Now you may only see a pile of receipts, but I see a story. I can see where this story is going. It does not look good.$()",
+ "hexical.page.casting_carpet.title": "Casting Carpets",
+ "hexical.page.casting_carpet.0": "I can weave $(l:items/amethyst)$(item)Amethyst$() into any ordinary rug to create this wonderfully comfy rug. Stepping on the carpet, I can feel the _media coursing under my feet. It feels disorienting but surprisingly puts me at peace.$(br2)I feel very inspired, as if I were wearing a $(l:items/lens)$(item)Scrying Lens$() although weaker. My _Hexcasting vision seems to have been expanded.",
+ "hexical.page.casting_carpet.recipe": "$(o)Why is the red carpet red? It can be any color.$()",
+
+ "hexical.page.media_log.title": "Media Logs",
+ "hexical.page.media_log.0": "With _Hexes casting _Hexes, it is easy to lose track of my patterns and Nature is all too happy to punish my carelessness. _Hexcasters of old had a device they called an $(item)$(m)Error$() $(item)Media Log$() that recorded the last few patterns cast even by other $(l:patterns/meta)patterns$(), the last mishap, and the stack right before mishap in order to help them track down their errors. All $(item)Media Logs$() share the same memory.",
+ "hexical.page.media_log.1": "Sneak-$(k:use)ing clears the $(item)Media Log$() and starts recording until the next mishap.$(br2)$(o)Now you may only see a pile of receipts, but I see a story. I can see where this story is going. It does not look good.$()",
"hexical.page.sentinel_bed.title": "Sentinel Beds",
"hexical.page.sentinel_bed.0": "The $(item)Lodestone$() inside seems to make this block $(o)and the entities shoved in it$() always within my _Hexes' ambit, although I prefer to believe the $(item)Wool$() invites my $(l:patterns/spells/sentinels)$(thing)Sentinel$(). Cats seem to find it cozy too, like a lit furnace or a bed.$(br2)I hear rumors of ancient _Hexcasters using this as some kind of iota storage from any range but I struggle to imagine how.",
"hexical.page.sentinel_bed.1": "$(o)A comfy bed for my sentinel, it always seems eager to return to it.$()",
+ "hexical.page.periwinkle.title": "Periwinkle",
+ "hexical.page.periwinkle.0": "There is an long-extinct family of flowers called $(item)Periwinkles$(). In addition to looking pretty, they have great calming abilities; ancient _Hexcasters used them to cope with the great horrors that comes with the Art.$(br2)$(o)A special flower for a special person.$()",
+ "hexcasting.action.hexical:periwinkle": "Periwinkle Reflection",
+ "hexical.page.periwinkle.summary": "Fortunately all is not lost. I have found this identifier by a group of botanist _Hexcasters. I believe there may be a $(l:patterns/spells/simple_spells#hexical:flower)$(action)spell$() to allow me to bring back these flowers.",
+ "hexical.page.lei.summary": "Once I have recovered some, I can craft the flowers into a $(item)Lei$()! The $(item)Lei$() gives a small boost to my _Hexcasting reach, not unlike a $(l:items/lens)$(item)Scrying Lens$() although without the same ability to perceive extra information.",
+ "hexical.page.lei.description": "When worn, it prevents Nature from claiming my life as payment for _Hexes.$(br2)Unlike other armor, a $(item)Lei$() can be placed on other players if they are not currently wearing anything! Ancient _Hexcasters did this as a sign of endearment and affection due to the $(item)Lei$()'s protective and calming abilities, as well as the rarity of obtaining the flowers.",
+
"hexical.page.wooleyed_potion.title": "Potions of Wooleyeing",
- "hexical.page.wooleyed_potion.0": "These $(item)Potions$() seem to blur the line between physical matter and the _media. A single dose lasts about ten minutes and under its influence, I find myself capable of far greater miracles than I am used to.$(br2)The most notable of these changes is my greater ability to trade my life for _media. I estimate that each one of my hearts is worth a full $(l:items/amethyst)Amethyst Shard$().",
- "hexical.page.wooleyed_potion.header": "Potions of Wooleyeing",
- "hexical.page.wooleyed_potion.1": "I can brew one by boiling a $(l:items/hexcasting)$(item)Cypher$() into a simple $(item)Awkward Potion$().",
+ "hexical.page.wooleyed_potion.0": "These $(item)Potions$() let me forget some of the eldritch knowledge _Hexcasting provides. A base dose removes my ability to trade my own life for _media, useful if I do not want to be carried off from a mere miscalculation. Higher potencies remove the ability to cast great spells entirely, possibly useful as an offensive tool.$(br2)$(o)It is unseen.$()",
+ "hexical.page.wooleyed_potion.header": "Potion of Wooleyeing",
+ "hexical.page.wooleyed_potion.1": "I can brew one by boiling a $(l:items/periwinkle)$(item)Periwinkle$() into a simple $(item)Awkward Potion$(). $(item)Glowstone Dust$() and $(item)Redstone Dust$() have their standard amplifying and lengthening effects, as with most potions.",
"hexical.category.lamp": "Genie Lamp",
"hexical.category.lamp.desc": "I have heard some tales from the villagers about a magical artifact. The villagers say it contains a spirit that grants wishes, but I suspect that is just grand embellishment evolved over centuries of storytelling. However, legends must arise from something and this item must be exceptionally powerful, and so I dedicate this section to my pursuit and research of it.",
@@ -470,15 +506,9 @@
"hexcasting.action.hexical:unautograph": "Unautograph",
"hexical.page.unautograph.summary": "A more specialized form of $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$(), capable of scrubbing off autographs. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() similar to $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().",
"hexical.page.unautograph.description": "While autographs are quite strongly burned into the item's _media, this spell is still capable of $(o)shaving$() off the engraving. However, the effort of it will also destroy a $(l:items/focus)$(item)Focus$()'s contents or a $(l:items/hexcasting)$(item)casting device$()'s _Hex and _media. Perhaps that is for the better; my autographed _Hexcasting gifts can be uniquely assured to be untampered by the presence of an autograph.",
- "hexcasting.action.hexical:conjure_hexburst": "Conjure Hexburst",
- "hexical.page.conjure_hexburst.summary": "Conjures a $(item)Hexburst$() at the location with the given iota. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
- "hexical.page.conjure_hexburst.description": "$(item)Hexbursts$() are edible items created by taking an iota and wrapping _media around it, over and over until it gains size. When eaten, a $(item)Hexburst$() instantly adds its iota to the consumer's stack. I shall find this property considerably useful if I ever want to trade my entity reference. Should my stack have an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it pushes it into the forming list.",
- "hexcasting.action.hexical:conjure_hextito": "Conjure Hextito",
- "hexical.page.conjure_hextito.summary": "Conjures a $(item)Hextito$() at the location with the given _Hex. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
- "hexical.page.conjure_hextito.description": "$(item)Hextitos$() are triangular crunchy snacks I can conjure. When consumed, the consumer immediately casts its _Hex, using their $(item)$(l:items/staff)Staff$()'s stack unlike a regular $(l:items/hexcasting)$(item)casting device$(). I shall find them useful to make simple actions like raycasts or to give out limited uses of a _Hex I have designed. If a consumer's stack has an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it will not cast, making it quite safe to hand out.",
"hexcasting.action.hexical:flower": "Conjure Flower",
"hexical.page.flower.summary": "Conjures a flower of my choosing at a location. I must have identified this flower at some point before. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.flower.description": "The block that it is conjured on must have a flat surface at the top to enable growing. This block does not necessarily need to be able to support the flower naturally, although if it is incapable, any little movement may cause the flower to break. Alternatively, I can give it a flower pot and the spell will attempt to fill it if possible.$(br2)$(o)A weed is but an unloved flower.$()",
+ "hexical.page.flower.description": "The block under the target position must have a flat top surface to allow rooting. It does not necessarily need to be able to support the flower naturally, although any little movement may cause the flower to break if conjured on an incompatible block. Alternatively, the spell will fill a flower pot if possible.$(br2)$(o)There was a fool who praised me for the magic I acquired. That's all.$()",
"hexcasting.action.hexical:light": "Illuminate",
"hexical.page.light.summary": "Conjures a completely invisible light with illumination strength of my choosing at a location. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.light.description": "The block that it is into must be empty or extremely weak. The illumination strength can be a number between 1 and 15, inclusive. If I target a space where a light already exists, the spell is free and particleless.$(br2)$(o)The light blinds us. It is only in the dark that we see clearly.$()",
@@ -488,6 +518,9 @@
"hexcasting.action.hexical:ghast_fireball": "Conjure Fireball",
"hexical.page.ghast_fireball.summary": "Conjures an explosive fireball that can be punched and damages blocks and leaves an entity reference at the top of the stack. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.ghast_fireball.description": "The conjured fireball simply hangs in the air. It must be propelled via punching it or $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$(). It can also be deflected via similar methods.$(br2)$(o)A fiery, explosive projectile.$()",
+ "hexcasting.action.hexical:egg": "Egg",
+ "hexical.page.egg.summary": "Conjures an egg. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.egg.description": "The egg does not have any velocity of its own when conjured and moves only due to gravity unless affected by $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$().$(br2)$(o)I wonder if there's anything inside?$()",
"hexcasting.action.hexical:llama_spit": "Spit",
"hexical.page.llama_spit.summary": "Conjures a sticky low-damaging projectile. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.llama_spit.description": "The projectile does not have any velocity of its own when conjured and moves only due to gravity unless affected by $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$(). Its damage is negligible and likely unsuited for any combat but it is cheap...$(br2)$(o)A projectile that explodes into a sticky mess.$()",
@@ -501,7 +534,22 @@
"hexical.page.myodesopsia.summary": "Conjures a swirl of patterns around me that I and nearby players can see, using the patterns from the list. Free.",
"hexical.page.myodesopsia.description": "These patterns are similar to the \"floaters\" that appear when I cast using other methods. I can imagine this spell as conjuring what would have appeared had I casted the list. Interestingly, each pattern shows up exactly once no matter how many times it appears in the list.",
- "hexical.page.conjure_compass.title": "Conjure Compasses",
+ "hexical.page.meta_effects.title": "Hexcasting Effects",
+ "hexcasting.action.hexical:effect_clouding": "Foggy Sky's Nadir",
+ "hexical.page.effect_clouding.summary": "Bestows $(thing)clouding$(), an effect that impedes _Hexcasting vision. Base cost is about one $(l:items/amethyst)$(item)Amethyst Dust$() per three seconds. Follows $(l:patterns/spells/nadirs)nadir$() cost scaling.",
+ "hexcasting.action.hexical:effect_clarity": "Clear Sky's Zenith",
+ "hexical.page.effect_clarity.summary": "Bestows $(thing)clarity$(), an effect that extends _Hexcasting vision. Base cost is about one $(l:items/amethyst)$(item)Amethyst Dust$() per second. Follows $(l:patterns/great_spells/zeniths)zenith$() cost scaling.",
+
+ "hexical.page.conjurable_delights.title": "Conjurable Delights",
+ "hexical.page.conjurable_delights.0": "Ancient _Hexcasters seem to have devised spells to conjure a multitude of items, to both further their Art and to convenience their collaboration. I can only link these items together by their being $(o)vaguely$() edible.$(br2)$(o)What nicer thing can you do for somebody than make them breakfast?$()",
+ "hexcasting.action.hexical:conjure_gummy": "Hex Gummy",
+ "hexical.page.conjure_gummy.summary": "Conjures a $(item)Hex Gummy$(): a delightful light snack that also provides about a tenth of an $(l:items/amethyst)$(item)Amethyst Dust$()'s worth of _media. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexcasting.action.hexical:conjure_hexburst": "Conjure Hexburst",
+ "hexical.page.conjure_hexburst.summary": "Conjures a $(item)Hexburst$() of the given iota at the location. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
+ "hexical.page.conjure_hexburst.description": "$(item)Hexbursts$() are edible items created by taking an iota and wrapping _media around it, over and over until it gains size. When eaten, a $(item)Hexburst$() instantly adds its iota to the consumer's stack. I shall find this property considerably useful if I ever want to trade my entity reference. Should my stack have an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it pushes it into the forming list.",
+ "hexcasting.action.hexical:conjure_hextito": "Conjure Hextito",
+ "hexical.page.conjure_hextito.summary": "Conjures a $(item)Hextito$() of the given _Hex at the location. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
+ "hexical.page.conjure_hextito.description": "$(item)Hextitos$() are triangular crunchy snacks I can conjure. When consumed, the consumer immediately casts its _Hex, using their $(item)$(l:items/staff)Staff$()'s stack unlike a regular $(l:items/hexcasting)$(item)casting device$(). I shall find them useful to make simple actions like raycasts or to give out limited uses of a _Hex I have designed. If a consumer's stack has an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it will not cast, making it quite safe to hand out.",
"hexcasting.action.hexical:conjure_compass": "Conjure Compass",
"hexical.page.conjure_compass.summary": "Conjures a $(item)Conjured Compass$() at the location pointing towards the second vector, linked to the current dimension. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.conjure_compass.description": "If read with $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(), it returns a unit vector pointing towards the location inside it. In other dimensions, the $(item)Compass$() spins erratically and reading it yields only $(l:casting/influences)$(thing)Null$(). Once I am done with a $(item)Compass$(), I can eat it as a light snack.$(br2)$(o)Aye, the compass doesn't point North. But we're not trying to find North, are we?$()",
@@ -514,9 +562,9 @@
"hexical.page.tchotchke.title": "Tchotchkes",
"hexical.page.tchotchke.0": "$(item)Tchotchkes$() are not unlike $(l:items/hexcasting)$(item)Cyphers$(). They have an internal media reservior and break when they run out, unable to take from my inventory. They can not be recharged or reprogrammed, and $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() simply destroys it. Its advantages lay in its conjurability and $(o)input interception$().",
- "hexical.page.tchotchke.1": "When I $(thing)$(k:attack)$() or $(thing)$(k:use)$() while holding a $(item)Tchotchke$(), it intercepts my input, preventing me from interacting with the world. After a number of inputs corresponding to the \"rank\" I assigned at conjuration, it casts the _Hex I gave it, starting the stack with a list of false and true iotas, corresponding to $(thing)$(k:attack)$() or $(thing)$(k:use)$() respectively. If I pause for too long, the current \"cast\" fizzles out.",
+ "hexical.page.tchotchke.1": "When I $(thing)$(k:attack)$() or $(thing)$(k:use)$() while holding a $(item)Tchotchke$(), it intercepts my input, preventing me from interacting with the world. It then casts the _Hex I gave it, starting the stack with either false or true, corresponding to $(thing)$(k:attack)$() or $(thing)$(k:use)$() respectively.",
"hexcasting.action.hexical:conjure_tchotchke": "Conjure Tchotchke",
- "hexical.page.conjure_tchotchke.summary": "Conjures a $(item)Tchotchke$() at the location with the amount of _media, rank, and _Hex. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$() and the _media used for the battery.",
+ "hexical.page.conjure_tchotchke.summary": "Conjures a $(item)Tchotchke$() at the location with the amount of _media and _Hex. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$() and the _media used for the battery.",
"hexical.page.tchotchke.2": "I find ancient _Hexcasters to be quite fond of these due to their versatility and the ability to conjure them as needed. Tchotchkes also feature an iota storage that can only be edited from the tchotchke itself, allowing each tchotchke to essentially act as a fully-contained magical trinket.$(br2)$(o)Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.$()",
"hexcasting.action.hexical:write_tchotchke": "Tchotchke Gambit",
"hexical.page.write_tchotchke.summary": "Writes an iota to the $(item)Tchotchke's$() inner iota storage, which can be read back on future casts. Subject to the Transgress Others mishap and unreadable from any external source.",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index fc5710063691..3ffb66871c14 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -18,16 +18,18 @@
"advancements.hexical.media_slurp.title": "迷幻",
"advancements.hexical.media_slurp.description": "“你觉得有些东西不太对劲。”",
+ "block.hexical.casting_carpet": "施法地毯",
"block.hexical.hex_candle": "咒术蜡烛",
"block.hexical.mage_block": "术师方块",
"block.hexical.media_jar": "媒质罐",
+ "block.hexical.periwinkle": "长春花",
"block.hexical.sentinel_bed": "哨卫床",
"death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
"death.attack.magic_missile.item": "%1$s的魔法存在被%2$s用%3$s刺穿了",
"death.attack.spike": "%1$s被%2$s刺穿了",
"death.attack.spike.item": "%1$s被%2$s用%3$s刺穿了",
"effect.hexical.wooleyed": "毡障",
- "effect.hexical.wooleyed.description": "模糊物理形体与媒质的界限。",
+ "effect.hexical.wooleyed.description": "帮助我忘记先前看到的可怖景象。",
"entity.hexical.animated_scroll": "活线卷轴",
"entity.hexical.magic_missile": "魔法飞弹",
"entity.hexical.mesh": "网斑",
@@ -44,10 +46,21 @@
"item.hexical.conjured_compass": "构筑的指南针",
"item.hexical.grimoire": "咒典",
"item.hexical.hand_lamp": "手持式精灵神灯",
+ "item.hexical.hex_gummy": "咒术软糖",
"item.hexical.hexburst": "咒术星爆糖",
"item.hexical.hextito": "咒力多滋",
"item.hexical.gauntlet_staff": "护手法杖",
- "item.hexical.ledger": "账本",
+ "item.hexical.media_log.0": "媒质木志",
+ "item.hexical.media_log.1": "㛭质木志",
+ "item.hexical.media_log.2": "错质木志",
+ "item.hexical.media_log.3": "错虞木志",
+ "item.hexical.media_log.4": "错吴木志",
+ "item.hexical.media_log.5": "错误木志",
+ "item.hexical.media_log.6": "㛭误木志",
+ "item.hexical.media_log.7": "媒误木志",
+ "item.hexical.media_log.8": "媒吴木志",
+ "item.hexical.media_log.9": "媒虞木志",
+ "item.hexical.lei": "花冠",
"item.hexical.lightning_rod_staff": "避雷针法杖",
"item.hexical.scarab_beetle": "圣甲虫",
"item.hexical.tchotchke": "杂饰",
@@ -55,6 +68,14 @@
"item.minecraft.splash_potion.effect.wooleyed": "喷溅型毡障药水",
"item.minecraft.lingering_potion.effect.wooleyed": "滞留型毡障药水",
"item.minecraft.tipped_arrow.effect.wooleyed": "毡障之箭",
+ "item.minecraft.potion.effect.long_wooleyed": "毡障药水",
+ "item.minecraft.splash_potion.effect.long_wooleyed": "喷溅型毡障药水",
+ "item.minecraft.lingering_potion.effect.long_wooleyed": "滞留型毡障药水",
+ "item.minecraft.tipped_arrow.effect.long_wooleyed": "毡障之箭",
+ "item.minecraft.potion.effect.strong_wooleyed": "毡障药水",
+ "item.minecraft.splash_potion.effect.strong_wooleyed": "喷溅型毡障药水",
+ "item.minecraft.lingering_potion.effect.strong_wooleyed": "滞留型毡障药水",
+ "item.minecraft.tipped_arrow.effect.strong_wooleyed": "毡障之箭",
"itemGroup.hexical.general": "Hexical",
"stat.hexical.evocation": "受毡障次数",
"subtitles.hexical.amethyst_melt": "紫水晶:融化",
@@ -108,7 +129,6 @@
"hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
"hexcasting.mishap.invalid_value.conjurable_flower_id": "一个代表可构筑花卉的标识",
"hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
- "hexcasting.mishap.invalid_value.integer_natural": "一个大于0的整数",
"hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
"hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
"hexcasting.mishap.invalid_value.number_list": "一个由数组成的非空列表",
@@ -151,6 +171,11 @@
"hexcasting.action.book.hexical:modify_block_replaceable": "可替",
"hexcasting.action.book.hexical:modify_block_volatile": "失稳",
+ "hexical.page.ungodly.title": "可怖",
+ "hexical.page.ungodly.0": "就我已记录过的所有法术而言,我都还没遇见过这种奇怪的东西。$(o)连画都找不到好方法。$()",
+ "hexcasting.action.hexical:ungodly": "召唤?",
+ "hexical.page.ungodly.summary": "从图案的参数签名来看,我只能推测出它是会召唤个什么。",
+
"hexical.page.hexical_changes.title": "Hexical 中的改动",
"hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()。我甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()也变得更可塑、更$(o)可操纵$(),令媒质产生更精确精细的效果已不是难事。我还可以按下$(thing)$(k:hexical.open_hexbook)$()就打开$(item)咒术笔记$()。",
"hexical.page.hexical_changes.1": "我的工具也更顺手了。我无需再全神贯注地使用$(l:items/staff)$(item)法杖$(),而是可在使用时四处走动;之后射线追踪的时候目标就再也跑不出我的视线范围了。不过我也不能太过放松,自然对我失误的惩罚力度依然如旧。我现在还可以用$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()直接向$(l:items/abacus)$(item)算盘$()写入。",
@@ -207,18 +232,29 @@
"hexical.recipe.uncry_obsidian.header": "安慰黑曜石",
"hexical.recipe.uncry_obsidian.text": "返还$(item)哭泣的黑曜石$()中的$(media)媒质$()。$(br2)$(o)心理咨询!:D$()",
- "hexical.page.ledger.title": "账本",
- "hexical.page.ledger.0": "$(l:patterns/meta)当咒术施放咒术时$(),其中的$(hex)咒术$()便很难追踪,而自然对这种疏忽绝不手软。好在,$(item)账本$()能帮我记录最后施放的 32 个图案,最后招致的事故,以及栈在事故前的状态。$(item)账本$()的真正强大之处,在于其$(o)甚至$()能记录$(l:patterns/meta)元运行$()的图案。",
- "hexical.page.ledger.1": "施放新$(hex)咒术$()前,可以点击图案将其清出$(item)账本$(),避免造成数据污染。$(br2)$(o)你可能看到的只是一堆收据,我看到的却是一段故事。我能感觉出这故事的走向,不是什么好走向。$()",
+ "hexical.page.casting_carpet.title": "施法地毯",
+ "hexical.page.casting_carpet.0": "我可以将$(l:items/amethyst)$(item)紫水晶$()编织到普通的地毯里去,得到的就是这张柔软舒适的地毯。站在地毯上就能感受到$(media)媒质$()在我脚下流动。让人有些迷糊,但也能为人安神。$(br2)有种醍醐灌顶的感受,就好像带着一片$(l:items/lens)$(item)探知透镜$(),只是效果偏弱。我的$(hex)咒法学$()视野似乎得到了扩展。",
+ "hexical.page.casting_carpet.recipe": "$(o)红地毯为什么非要是红色?它可以是任何颜色的。$()",
+
+ "hexical.page.media_log.title": "媒质木志",
+ "hexical.page.media_log.0": "让$(hex)咒术$()去施放$(hex)咒术$(),图案就变得很难追踪;自然则乐于惩罚我的粗心大意。古代的$(hex)咒术师$()有一件“$(item)$(m)错误$()$(item)媒质木志$()”:它能记录最后几个运行的图案,连$(l:patterns/meta)图案$()运行的图案都行;它还能显示最后一次事故,以及事故前的栈,方便追踪错误。所有$(item)媒质木志$()共享同一个存储空间。",
+ "hexical.page.media_log.1": "潜行按下$(k:use)可清空$(item)媒质木志$(),可让它继续记录至下一次事故。$(br2)$(o)你看到的可能只是一堆收据,我却看到的是一则故事。我看得出来这个故事的走向,而且这个走向不是很好。$()",
"hexical.page.sentinel_bed.title": "哨卫床",
"hexical.page.sentinel_bed.0": "这张床里的$(item)磁石$()似乎能让它自身和$(o)其上的实体$()一直处于我$(hex)咒术$()的影响范围内;不过我更倾向于认为,我的$(l:patterns/spells/sentinels)$(thing)哨卫$()是因为喜欢$(item)羊毛$()才这样的。猫也觉得这张床很舒服,就和燃烧中的熔炉和床一样。$(br2)我听过些传言,说古代的$(hex)咒术师们$()会把它当成无视距离的 iota 仓储方块,但我想不出来是怎么做到的。",
"hexical.page.sentinel_bed.1": "$(o)为我的哨卫准备的舒适床铺,它似乎总想趴回上面。$()",
+ "hexical.page.periwinkle.title": "长春花",
+ "hexical.page.periwinkle.0": "有一种灭绝已久的花朵,叫作$(item)长春花$()。它们很漂亮,还有安神的作用;古代的$(hex)咒术师$()会用它们来抚平$(hex)咒法学$()带来的莫大恐惧。$(br2)$(o)特别的花送给特别的人。$()",
+ "hexcasting.action.hexical:periwinkle": "长春花之精思",
+ "hexical.page.periwinkle.summary": "好在尘埃尚未完全落定。我找到了植物学$(hex)咒术师们$()留下的这个标识。我相信有$(l:patterns/spells/simple_spells#hexical:flower)$(action)图案$()能让这种花起死回生。",
+ "hexical.page.lei.summary": "成功复原几簇之后,即可用它们制作$(item)花冠$()了!$(item)花冠$()会小幅增强我的$(hex)咒法学$()视野,和$(l:items/lens)$(item)探知透镜$()比较像,只不过没有读取额外信息的功能。",
+ "hexical.page.lei.description": "佩戴后,它还能阻止自然为施放$(hex)咒术$()而抽走我的生命。$(br2)和其他盔甲不同的是,如果其他玩家没有穿戴任何东西,就可直接为他们戴上$(item)花冠$()!古代的$(hex)咒术师$()将这种行为视作表达亲昵和爱慕;这是因为$(item)花冠$()具有防御和安神功能,而且长春花本身也难以获得。",
+
"hexical.page.wooleyed_potion.title": "毡障药水",
- "hexical.page.wooleyed_potion.0": "这些$(item)药水$()似乎会模糊物质与$(media)媒质$()的界限。一剂的药效持续 10 分钟。在它的作用下,我感觉我能实现愈加卓伟的奇迹。$(br2)最重要的变化,是生命力兑换$(media)媒质$()效率的增加。我估计每 1 颗红心可抵 1 整个$(l:items/amethyst)紫水晶碎片$()。",
+ "hexical.page.wooleyed_potion.0": "这些$(item)药水$()能让我遗忘$(hex)咒法学$()的部分骇人知识。基础效力的药水能阻止我用生命交换$(media)媒质$(),很适合防止一个小小的计算失误造成严重后果。效力更强的药水会阻断所有卓越法术,大概可以用作攻击性武器。$(br2)$(o)未曾有人见过。$()",
"hexical.page.wooleyed_potion.header": "毡障药水",
- "hexical.page.wooleyed_potion.1": "向$(item)粗制的药水$()里酿入一枚$(l:items/hexcasting)$(item)杂件$(),即可制成毡障药水。",
+ "hexical.page.wooleyed_potion.1": "将$(l:items/periwinkle)$(item)长春花$()酿造入$(item)粗制的药水$()即可获得这种药水。$(item)荧石粉$()和$(item)红石粉$()依然具有强化和延时功效,和大多数药水一样。",
"hexical.category.lamp": "精灵神灯",
"hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。村民说有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,这件物品必然有强大之处;因此我分出了这一章,用于记录我对它的研究。",
@@ -470,12 +506,6 @@
"hexcasting.action.hexical:unautograph": "撤回签名",
"hexical.page.unautograph.summary": "特种化的$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$(),能够抹除签名。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$(),类似$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()。",
"hexical.page.unautograph.description": "即便签名与物品$(media)媒质$()之间的纽带相当强大,这个法术依然能将它$(o)撕开$()。不过,它同时还会清空$(l:items/focus)$(item)核心$()存有的 iota 以及$(l:items/hexcasting)$(item)施法物品$()的$(hex)咒术$()和$(media)媒质$()。大概也算是好事吧;我送出的$(hex)咒法学$()礼品上只要还留有我的签名,那就可确认无人从中作梗。",
- "hexcasting.action.hexical:conjure_hexburst": "构筑咒术星爆糖",
- "hexical.page.conjure_hexburst.summary": "使用所给 iota 在给定位置构筑一枚$(item)咒术星爆糖$()。消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
- "hexical.page.conjure_hexburst.description": "取出一个 iota,再在周围包裹$(media)媒质$(),直至它具备物理形态,就得到了可食用的$(item)咒术星爆糖$()。食用时,这种糖会将其中的 iota 压入食用者的栈。如果我想要交易代表我的 iota,它应该会很有用。如果栈中有未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),则其会进入所构造的列表。",
- "hexcasting.action.hexical:conjure_hextito": "构筑咒力多滋",
- "hexical.page.conjure_hextito.summary": "在给定位置构筑一片$(hex)咒力多滋$()。消耗 2 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
- "hexical.page.conjure_hextito.description": "$(hex)咒力多滋$()是一种三角形的酥脆零食。食用者会立即施放其中$(hex)咒术$();使用的是$(item)$(l:items/staff)法杖$()栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合简单的操作集合,也方便我与他人分享我设计的$(hex)咒术$()。如果食用者的栈存在未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),其中咒术便不会施放,以此保障他人使用的安全。",
"hexcasting.action.hexical:flower": "构筑花卉",
"hexical.page.flower.summary": "在给定位置构筑一株花,品种任选。所需的花卉必须先经过标识。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.flower.description": "构筑处四周必须存在足够支撑植物的平坦表面。不要求它可以种植花卉;但如果不可种植,那么任何轻微的动作都会让花朵掉落。还可以在花盆处使用:法术会先尝试在其中构筑。$(br2)$(o)杂草不过是还未得人青睐的鲜花。$()",
@@ -501,7 +531,22 @@
"hexical.page.myodesopsia.summary": "在我周围构筑所给列表中图案的投影,对我自己和附近玩家可见。无需消耗$(media)媒质$()。",
"hexical.page.myodesopsia.description": "这些图案投影和使用其他方法施法时出现的“浮游物”类似,也许它只是构筑了施放所给列表后会出现的东西。有趣的是,各个图案不管在列表中出现多少次,都只会投射一次。",
- "hexical.page.conjure_compass.title": "构筑指南针",
+ "hexical.page.meta_effects.title": "咒法学效果",
+ "hexcasting.action.hexical:effect_clouding": "雾濛西沉",
+ "hexical.page.effect_clouding.summary": "给予$(thing)蒙翳$()——会阻碍$(hex)咒法学$()视野的效果。每 3 秒持续时间的基础消耗为大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。消耗量按$(l:patterns/spells/nadirs)天底法术$()计算。",
+ "hexcasting.action.hexical:effect_clarity": "晴朗当空",
+ "hexical.page.effect_clarity.summary": "给予$(thing)明晰$()——会延展$(hex)咒法学$()视野的效果。每 1 秒持续时间的基础消耗为大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。消耗量按$(l:patterns/great_spells/zeniths)天顶法术$()计算。",
+
+ "hexical.page.conjurable_delights.title": "构筑小物件",
+ "hexical.page.conjurable_delights.0": "古代的$(hex)咒术师们$()似乎研究过多种构筑物品的法术,以精进自身的技艺,或是方便多人合作。所得的物品大多只能笼统归入$(o)也许$()可食用的范畴。$(br2)$(o)若要向其他人表善意,没有什么比为他们端上热腾腾的早餐更合适的了。$()",
+ "hexcasting.action.hexical:conjure_gummy": "构筑咒术软糖",
+ "hexical.page.conjure_gummy.summary": "构筑一个$(item)咒术软糖$():一种小零食,能提供大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()的$(media)媒质$()。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:conjure_hexburst": "构筑咒术星爆糖",
+ "hexical.page.conjure_hexburst.summary": "使用所给 iota 在给定位置构筑一枚$(item)咒术星爆糖$()。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
+ "hexical.page.conjure_hexburst.description": "取出一个 iota,再在周围包裹$(media)媒质$(),直至它具备物理形态,就得到了可食用的$(item)咒术星爆糖$()。食用时,这种糖会将其中的 iota 压入食用者的栈。如果我想要交易代表我的 iota,它应该会很有用。如果栈中有未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),则其会进入所构造的列表。",
+ "hexcasting.action.hexical:conjure_hextito": "构筑咒力多滋",
+ "hexical.page.conjure_hextito.summary": "在给定位置构筑一片$(hex)咒力多滋$()。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
+ "hexical.page.conjure_hextito.description": "$(hex)咒力多滋$()是一种三角形的酥脆零食。食用时会立即施放其中$(hex)咒术$();它使用的是$(item)$(l:items/staff)法杖$()栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合射线追踪之类的简单操作集合,也方便我与他人分享我设计的$(hex)咒术$()。如果食用者的栈存在未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),其中咒术便不会施放,以此保障他人使用的安全。",
"hexcasting.action.hexical:conjure_compass": "构筑指南针",
"hexical.page.conjure_compass.summary": "在给定位置构筑一个$(item)构筑的指南针$(),它指向当前维度的第二向量处。消耗大约 3 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.conjure_compass.description": "若使用$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()读取,则会返回指向所给位置的单位向量。身处其他维度时,$(item)指南针$()会剧烈旋转,读取的产物也变成了 $(l:casting/influences)$(thing)Null$()。$(item)指南针$()用完后,还可以当点心吃了它。$(br2)$(o)对头,指北针不指北方。但我们根本没在找北方啊!$()",
@@ -514,9 +559,9 @@
"hexical.page.tchotchke.title": "杂饰",
"hexical.page.tchotchke.0": "$(item)杂饰$()和$(l:items/hexcasting)$(item)杂件$()比较相像。它们都有施法用的媒质储库,该储库耗尽后也不会消耗我的生命值和物品栏中的$(media)媒质$()物品。它们都无法重新充能,无法重新写入,对其使用$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()也都会将其毁灭。这种法杖的真正力量在于$(o)输入拦截$()。",
- "hexical.page.tchotchke.1": "手持$(item)杂饰$()时按下$(thing)$(k:attack)$()或$(thing)$(k:use)$(),它便会拦截这一按键,阻止我与世界交互。拦截次数达到构筑时给定的“位阶”后,它便会施放给定的$(hex)咒术$(),同时根据按下$(thing)$(k:attack)$()或$(thing)$(k:use)$()压入一个 False 或 True 组成的列表。如果按键之间间隔过久,当次“施法”便会直接取消。",
+ "hexical.page.tchotchke.1": "手持$(item)杂饰$()时按下$(thing)$(k:attack)$()或$(thing)$(k:use)$(),它便会拦截这一按键,阻止我与世界交互。此时,它会施放给定的$(hex)咒术$(),按下$(thing)$(k:attack)$()时栈以 False 起始,$(thing)$(k:use)$()时则以 True。",
"hexcasting.action.hexical:conjure_tchotchke": "构筑杂饰",
- "hexical.page.conjure_tchotchke.summary": "在所给位置处使用给定$(media)媒质$()量、位阶、$(hex)咒术$()构筑$(item)杂饰$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$(),同时消耗存入储库的$(media)媒质$()。",
+ "hexical.page.conjure_tchotchke.summary": "在所给位置处使用给定$(media)媒质$()量和$(hex)咒术$()构筑$(item)杂饰$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$(),同时消耗存入储库的$(media)媒质$()。",
"hexical.page.tchotchke.2": "我发现古代的$(hex)咒术师们$()很喜欢用这些物件,主要是因为用途多种多样和构筑便捷。杂饰内部还有一个 iota 存储空间,只能由其自身编辑。因此,每个杂饰都可看作完全封闭的魔法饰品。$(br2)$(o)完美的状态,不是不再需要增加什么,而是无可删减。$()",
"hexcasting.action.hexical:write_tchotchke": "杂饰之策略",
"hexical.page.write_tchotchke.summary": "向$(item)杂饰$()的内部存储写入 iota,将来用其施法时可以读出。可能招致“违犯他人”事故,且无法被其他物品读取。",
From 84e9106bb867b54ee951147eb9d6e33b1c822aff Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 20 Apr 2025 01:01:41 +0800
Subject: [PATCH 29/78] Ephemera HexKeys
Co-authored-by: dovisutu <40313014+dovisutu@users.noreply.github.com>
---
projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json | 8 ++++----
projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json | 2 +-
projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
index 895cf863d70a..1c3ca91f9a75 100644
--- a/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
+++ b/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
@@ -44,7 +44,7 @@
"hexcasting.spell.ephemera:getabsorption": "销蚀之纯化",
"hexcasting.spell.ephemera:filteredentityraycast": "侦查员之提整",
"hexcasting.spell.ephemera:gaussianrand": "熵之精思,第二型",
- "hexcasting.spell.ephemera:plasmabeam": "等离子冲击",
+ "hexcasting.spell.ephemera:plasmabeam": "等离子束",
"hexcasting.spell.ephemera:hash": "哈希之纯化",
"hexcasting.spell.ephemera:hashbits": "未记录的哈希至数转换图案",
"hexcasting.spell.ephemera:revealtoother": "邮递员之策略",
@@ -58,11 +58,11 @@
"hexcasting.mishap.location_ephemera:inputrelaytprange": "目标实体距%s处的目标节点过远。",
"hexcasting.mishap.location_ephemera:outputrelaytprange": "无法在范围%s内找到已连接的节点。",
- "hexcasting.mishap.ephemera:nonconjured": "本应在%s处有一个构筑的方块,而实际为%s。",
+ "hexcasting.mishap.ephemera:nonconjured": "%s处本应为一个构筑的方块,而实际为%s。",
"hexcasting.mishap.ephemera:missingeffect": "%s本应拥有%s,而实际没有。",
"ephemera.mishap.noitemframe": "一个物品展示框",
"ephemera.mishap.entitytypelistplease": "一个实体类型列表",
- "ephemera.mishap.toolongiota": "一个可用少于256个字符显示的iota",
+ "ephemera.mishap.toolongiota": "一个显示所需字符数少于256的iota",
"hexcasting.mishap.ephemera:blacklist": "此效果已被标签禁用。",
"hexcasting.mishap.ephemera:instant": "是如何拿到这个iota的?",
@@ -104,7 +104,7 @@
"ephemera.page.magearmor.3": "当然,这种屏障并非无法破坏。除去受击致损外,其耐久度还会持续减少。这种减少效应的基础速率看作每秒 1 “点”,则还需附加上其中效果等级平方个“点”。此外,穿戴者脱下后它们会立刻消失。换言之,除非重新施法覆写其状态,否则没有方法修复它们。",
"ephemera.page.magearmor.4": "此法术的媒质消耗比较复杂:每 60 点耐久度基础消耗 1 个紫水晶粉,乘以护甲值的 1.5 次幂,再乘以任意状态效果的等级 + 1。因此,不提供状态效果、护甲值为 10、耐久度够支持 1 分钟的盔甲需消耗大约 31.5 个紫水晶粉。再令其给予生命恢复 II,消耗就来到了大约 94.5 个紫水晶粉,并且在消失前也只能坚持 36 秒。",
"ephemera.page.magearmor.5": "这一计算结果的前提是我没有穿戴其他盔甲,实际操作中消耗可以缩减到最低 25%%,出现在所有盔甲槽位中只有 1 格空出的情况中。",
- "ephemera.page.plasmabeam.1": "我所遇到的极具破坏性的法术之一,此法术会将构成咒灵的一部分媒质转换成一束类似等离子体的能量,它能够穿透并伤害途径的所有生物(包括我自己),也有可能破坏强度不算高的方块。",
+ "ephemera.page.plasmabeam.1": "在我见过的法术中,此法术算是极具破坏性了。此法术会将构成咒灵的一部分媒质转换成一束类似等离子体的能量,它能够穿透并伤害途径的所有生物(包括我自己),也有可能破坏强度不算高的方块。",
"ephemera.page.plasmabeam.2": "沿施法咒灵的运动向量发射冲击,未在移动则选取随机向量。消耗 2 个紫水晶粉。",
"ephemera.page.plasmabeam.3": "说实话,我不喜欢这个法术。我会删掉手册里的条目。模组更新到 1.20.1 后就不会有这个法术了。",
"ephemera.page.network.1": "我设计了一系列图案和若干方块,旨在赋予链接更多用途,除去已有数据传输和媒质共享之外。$(br2)需要注意,对于从网络中获取信息的图案,其返回的可链接事物不一定处在影响范围之内。",
diff --git a/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json b/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
index d800087ced3f..5057360d8009 100644
--- a/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
+++ b/projects/1.19/assets/hex-keys/hexkeys/lang/zh_cn.json
@@ -8,7 +8,7 @@
"hexkeys.entry.visit_mindscape": "进入意识界",
"hexkeys.entry.mindscape": "意识界图书馆",
"container.kleins_chest": "克莱因箱",
- "hexkeys.page.kleins.1": "我似乎找到了将物质完全转换为媒质的方式,还能保留其原本的属性。但可惜,我也只能在意识中存储有限个物品,意识里只有那么多空间。我称这种独特的存储方式为“克莱因箱”,它是我意识中的空间,且腾出的空位和要存入的事物似乎完全对应。",
+ "hexkeys.page.kleins.1": "我似乎找到了将物质完全转换为媒质的方式,还能保留其原本的属性。但可惜,我也只能在意识中存储有限个物品,毕竟意识里只有那么多空间。我称这种独特的存储方式为“克莱因箱”,因为它是我意识中的空间,且腾出的空位和要存入的事物似乎完全对应。",
"hexkeys.page.kleins.open": "使用这种意识存储方式需消耗 1 个紫水晶碎片,每在一个槽位中放入物品额外消耗 1/4 个紫水晶粉。回忆出原本不存在的事物所需的意识能量相当之多。",
"hexkeys.page.kleins.2": "我的额头有点发痒……一直在痒……我懂这发现非常便捷,但我能不能用它放松放松我难堪重负的残破意识……之后再决定吧,该挠痒了。",
"hexkeys.page.mindscape.1": "我成功了!任谁都不可能获得这么多能量,但我做到了。我向物理世界开放了我的意识,也因此,它有了物理形态。就像一座图书馆。我称之为“意识界”,可以在此增强意识与周遭世界之间的交互和联系。这片天地独属于我。意识界是我的造物,从任何角度来看,我都是它的神。我能在其中随心翱翔,随意修改。尽管我在自己的意识世界中拥有无可比拟的力量,但图书馆依然还需包裹在某种屏障中。我能感受到我的意识还没准备好面对这片天地外面的事物。也许将来我能去掉这层屏障,但目前最好还是留着吧。",
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
index ac6fedb36e04..5be07558256d 100644
--- a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
+++ b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
@@ -72,7 +72,7 @@
"hexcasting.mishap.location_ephemera:inputrelaytprange": "目标实体距%s处的目标节点过远。",
"hexcasting.mishap.location_ephemera:outputrelaytprange": "无法在范围%s内找到已连接的节点。",
- "hexcasting.mishap.ephemera:nonconjured": "本应在%s处有一个构筑的方块,而实际为%s。",
+ "hexcasting.mishap.ephemera:nonconjured": "%s处本应为一个构筑的方块,而实际为%s。",
"hexcasting.mishap.ephemera:missingeffect": "%s本应拥有%s,而实际没有。",
"hexcasting.mishap.ephemera:nothoth": "本应在托特之策略内部施放。",
"ephemera.mishap.noitemframe": "一个物品展示框",
From 05162fb792303ae853e24166bee022bca876815f Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 20 Apr 2025 03:13:52 +0800
Subject: [PATCH 30/78] =?UTF-8?q?HexMachina=20HexChanting=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
---
.../assets/modrinth-hex-machina/hex_machina/lang/en_us.json | 6 ++++--
.../assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json | 2 ++
.../assets/modrinth-hexchanting/hexchanting/lang/en_us.json | 2 +-
.../assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json | 2 +-
4 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json
index e245b42046c7..1b0abcc3517a 100644
--- a/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json
@@ -14,10 +14,12 @@
"mishap.hex_machina.not_gun": "Can't cast this pattern outside of a gun",
"mishap.hex_machina.entity_capsule.expect_empty": "Empty %s",
+ "mishap.hex_machina.entity_is_brainswept": "Can't capture a mind that is empty",
+ "mishap.hex_machina.not_golem": "Can't cast this pattern outside of a golem",
"hexcasting.action.hex_machina:current_bullet": "Gunslinger's Reflection",
- "hexcasting.action.hex_machina:previous_bullet": "Gunslinger's Regression",
- "hexcasting.action.hex_machina:next_bullet": "Gunslinger's Progression",
+ "hexcasting.action.hex_machina:previous_bullet": "Gunslinger's Regr.",
+ "hexcasting.action.hex_machina:next_bullet": "Gunslinger's Prog.",
"hexcasting.action.hex_machina:roulette": "Gunslinger's Roulette",
"hexcasting.action.hex_machina:get_bullet": "Colt's Reflection",
diff --git a/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json
index 5909693b82da..fb512c3e3ab2 100644
--- a/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json
@@ -14,6 +14,8 @@
"mishap.hex_machina.not_gun": "无法在咒术枪之外运行此图案。",
"mishap.hex_machina.entity_capsule.expect_empty": "空%s",
+ "mishap.hex_machina.entity_is_brainswept": "无法捕捉一片虚无的意识",
+ "mishap.hex_machina.not_golem": "无法在傀儡之外运行此图案",
"hexcasting.action.hex_machina:current_bullet": "快枪手之精思",
"hexcasting.action.hex_machina:previous_bullet": "快枪手之退转",
diff --git a/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json
index 18cdb0933cdb..9d6061fb3917 100644
--- a/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json
@@ -19,7 +19,7 @@
"hexchanting.page.imbuing.tools.0": "Axes, hoes, pickaxes and shovels cast after breaking a block. The stack is initialized with the location of the broken block. Break block spells cast through these tools behave as if broken by the tool, which includes any enchantment effects.",
"hexchanting.page.imbuing.weapons.sword": "Swords cast on hit and push the targeted entity to the stack.",
"hexchanting.page.imbuing.weapons.arrow.1": "My attempts to craft a bow on similar principles have failed. Amethyst simply doesn't have the flexibility required. I have instead resorted to crafting arrows with amethyst shards, in place of flint. These can be imbued like my other amethyst equipment but they can only draw on their internal media and affect a limited area. I am sure I could craft an equivalent out of media alone, but there are niches where I may find this useful.",
- "hexchanting.page.imbuing.weapons.arrow": "Arrows cast when striking an entity or a block. In the first case the entity is pushed to the stack, in the latter a null iota. Arrows have an amethyst shard's worth of media and a 4 block ambit radius.",
+ "hexchanting.page.imbuing.weapons.arrow": "Arrows cast when striking an entity or a block. In the first case the entity is pushed to the stack, in the latter the block position. Arrows have an amethyst shard's worth of media and a 4 block ambit radius.",
"hexchanting.page.imbuing.armour.helmet": "Helmets casts when a mob, hostile or otherwise, begins to target me. The identity of the mob is pushed to the stack.",
"hexchanting.page.imbuing.armour.chestplate": "Chestplates cast when I take damage. Two nullable entities and the amount of damage are pushed to the stack. The first entity is the direct source of the damage, such as an arrow, and the second is the indirect source, such as whoever fired the arrow.",
"hexchanting.page.imbuing.armour.leggings": "Leggings cast in the unfortunate event of my death. The source of my demise is pushed to the stack, in the same form as the chestplate. Because I am no longer alive to serve as a conduit this will always use the legging's internal media.",
diff --git a/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json
index 6dbd7698d9da..8e371b0b1f7f 100644
--- a/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json
@@ -19,7 +19,7 @@
"hexchanting.page.imbuing.tools.0": "斧、锄、镐、锹等会在破坏方块后施法,其栈以所破坏方块的位置起始。这些工具施放的破坏方块法术表现为使用工具自身进行破坏,其上魔咒也会起效。",
"hexchanting.page.imbuing.weapons.sword": "剑会在击中实体时施法,其栈以目标实体起始。",
"hexchanting.page.imbuing.weapons.arrow.1": "我尝试过用这种材料制弓,但失败了;紫水晶的刚度太高。之后,我改为用紫水晶碎片代替燧石合成箭。这些箭可像其他紫水晶装备一样融能,但它们只能使用其自身的媒质,影响范围也有限。我当然可以只用媒质就做出同样功能的东西,但这些箭确实有其独特的长处。",
- "hexchanting.page.imbuing.weapons.arrow": "箭会在击中实体或方块时施放。前者栈以命中实体起始,后者以 Null 起始。此类箭具有相当于 1 个紫水晶碎片的媒质,影响范围半径为 4 格。",
+ "hexchanting.page.imbuing.weapons.arrow": "箭会在击中实体或方块时施放。前者栈以命中实体起始,后者以方块位置向量起始。此类箭具有相当于 1 个紫水晶碎片的媒质,影响范围半径为 4 格。",
"hexchanting.page.imbuing.armour.helmet": "头盔会在生物(无论敌对与否)等以我为攻击目标时施法。栈以代表该实体的 iota 起始。",
"hexchanting.page.imbuing.armour.chestplate": "胸甲会在我受到伤害时施法。栈以两个可为 Null 的实体和伤害量起始。第一实体是伤害的直接来源,如箭;第二实体是间接来源,如发射箭的实体。",
"hexchanting.page.imbuing.armour.leggings": "护腿会在我不幸死亡时施法。栈以致死原因起始,形式与胸甲一致。而由于我已死,无法再引导媒质,护腿只会使用其自身的媒质施法。",
From 55d1c9998c1dfd93aac38af15a4ba5d13376aba9 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 20 Apr 2025 14:04:00 +0800
Subject: [PATCH 31/78] =?UTF-8?q?Hexal=20fix=EF=BC=9A=E5=AE=A1=E9=98=85?=
=?UTF-8?q?=E6=84=8F=E8=A7=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: dovisutu <40313014+dovisutu@users.noreply.github.com>
---
.../1.19/assets/hexal/hexal/lang/zh_cn.json | 22 +++++++++----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/projects/1.19/assets/hexal/hexal/lang/zh_cn.json b/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
index 064383ac662b..9b5f70c5bf64 100644
--- a/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
+++ b/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
@@ -234,7 +234,7 @@
"hexal.entry.links": "链接",
"hexal.page.links.0": "这些图案大致构建了一套能在$(l:hexal:patterns/spells/wisps)$(thing)咒灵/$间以及咒灵和其他事物间传递信息的系统。有若干图案与创建链接有关,也有些图案和通过链接发送和接收 iota 的方式相关。一个咒灵能同时维持任意数目的链接,每条每 1/20 秒常态消耗极少量媒质。",
- "hexal.page.links.1": "可链接事物会以创建顺序为这些链接编号,此编号可用作图案的参数。介绍中的“可链接事物”(Linkable)不是具体参数类型,而是指代所有可被转换为可链接事物的类型。(例如,Entity -> Linkable entities,Vec -> Linkable blocks等等。)链接仅会在两可链接事物影响范围之和的两倍内起效。若要跨更远的距离连接两者,应该转而使用$(l:hexal:items/relay)$(item)继链器/$。",
+ "hexal.page.links.1": "可链接事物会以创建顺序为这些链接编号,此编号可用作图案的参数。介绍中的“可链接事物”(Linkable)不是具体参数类型,而是指代所有可被转换为可链接事物的类型。(例如,Entity -> Linkable entity,Vec -> Linkable block 等等。)链接仅会在两可链接事物影响范围之和的两倍内起效。若要跨更远的距离连接两者,应该转而使用$(l:hexal:items/relay)$(item)继链器/$。",
"hexal.page.links.link": "将施法者链接至栈顶实体,且实体必须为可链接的。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
"hexal.page.links.link/others": "可在任意施法器件上运行。将两个实体链接,且两实体必须均为可链接的。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
"hexal.page.links.link/unlink": "断开施法者的编号为所给数的链接。消耗 2 个$(l:items/amethyst)$(item)紫水晶粉/$。",
@@ -291,7 +291,7 @@
"hexal.page.motes.mote/trade.0": "接受代表村民的 iota,由物元组成的列表(用于交易),和代表交易次序的整数(可选)。(上方的 int? 表示可传入 2 或 3 个参数,可选的第三个参数需为整数。)",
"hexal.page.motes.mote/trade.1": "若不输入次序数,则会依次寻找交易选项,直到找到接受所给物品的选项为止。若输入,则会直接跳转至该交易选项处。这之后便会一直进行交易,直到物品耗尽或是村民停用该项为止。交易结束后会返回由所获得的物品组成的物元。",
"hexal.page.motes.mote/trade.2": "村民会将这些交易视作直接与我进行,且会获得经验,并以此精进技艺并改进交易选项。消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.motes.mote/use_on": "接受一个物元和一个实体或位置向量和法向量。并对实体或所给位置处方块使用物元中物品。物元本身需只能含有一个物品,或其中物品极为简单(无 NBT 数据)。",
+ "hexal.page.motes.mote/use_on": "接受一个物元和一个实体或位置向量和法向量。并对实体或所给位置处方块使用物元中物品。物元本身需只能含有一个物品,除非其中物品极为简单(无 NBT 数据)。",
"hexal.entry.great_wisps": "卓越咒灵法术",
"hexal.page.great_wisps.wisp/consume.0": "移除栈顶咒灵实体,并拆解该咒灵。咒灵携带的图案不可追回,但是如果此法术是由其他咒灵施放的,那么被拆解咒灵所剩的媒质还可再加利用。",
@@ -302,7 +302,7 @@
"hexal.entry.types": "类型",
"hexal.page.types.type/iota": "移除栈顶元素,并返回该 iota 的类型。",
"hexal.page.types.type/entity": "移除栈顶实体,并返回该实体的类型。",
- "hexal.page.types.type/block_item": "移除栈顶位置向量,$(l:hexal:hexal.entry.motes)$(item)物元/$,物品实体或物品展示框。并返回该处方块的类型或对应物品类型。(如草方块、石头、木棍等。)",
+ "hexal.page.types.type/block_item": "移除栈顶位置向量,$(l:hexal:hexal.entry.motes)$(item)物元/$,物品实体或物品展示框,并返回该处方块的类型或对应物品类型。(如草方块、石头、木棍等。)",
"hexal.page.types.type/item_held": "若施法者副手中有物品,则将其类型压入栈顶;若无,则压入施法用手中物品的类型。",
"hexal.page.types.raycast/entity/type": "移除栈顶实体类型(或物品类型)、位置向量和方向向量,返回该位置朝向该方向处符合该类型的实体或物品实体(若有)。",
@@ -351,15 +351,15 @@
"text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispCost": "“召唤弹射式咒灵”每速度平方的媒质消耗",
"text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispMinCost": "“召唤循环式咒灵”媒质消耗下限",
- "text.autoconfig.hexal.option.server.wispUpkeep": "咒灵维护",
- "text.autoconfig.hexal.option.server.wispUpkeep.tickingWispUpkeepPerTick": "循环式咒灵每刻维护消耗",
- "text.autoconfig.hexal.option.server.wispUpkeep.projectileWispUpkeepPerTick": "弹射式咒灵每刻维护消耗",
- "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount": "不活跃咒灵维护消耗减免",
- "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[0]": "不活跃的循环式咒灵的维护媒质消耗会与此数乘算。",
+ "text.autoconfig.hexal.option.server.wispUpkeep": "咒灵维持",
+ "text.autoconfig.hexal.option.server.wispUpkeep.tickingWispUpkeepPerTick": "循环式咒灵每刻维持消耗",
+ "text.autoconfig.hexal.option.server.wispUpkeep.projectileWispUpkeepPerTick": "弹射式咒灵每刻维持消耗",
+ "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount": "不活跃咒灵维持消耗减免",
+ "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[0]": "不活跃的循环式咒灵的维持媒质消耗会与此数乘算。",
"text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[1]": "取值范围为0.0到1.0。",
- "text.autoconfig.hexal.option.server.wispUpkeep.linkUpkeepPerTick": "链接每刻维护消耗",
- "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor": "绑定咒灵维护消耗减免因数",
- "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[0]": "被绑定的咒灵的维护媒质消耗会除以此数。",
+ "text.autoconfig.hexal.option.server.wispUpkeep.linkUpkeepPerTick": "链接每刻维持消耗",
+ "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor": "绑定咒灵维持消耗减免因数",
+ "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[0]": "被绑定的咒灵的维持媒质消耗会除以此数。",
"text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[1]": "取值范围为2.0到200.0。",
"text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor": "存储玩家iota媒质消耗乘算因数",
"text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[0]": "存有代表其他玩家的iota的咒灵的媒质消耗会与此数乘算。",
From c409ddc9e40cde51aa7f89b61aaba08c98d0872d Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 23 Apr 2025 23:40:08 +0800
Subject: [PATCH 32/78] Hexpats create
---
.../assets/modrinth-hexpats/hexpats/lang/en_us.json | 10 ++++++++++
.../assets/modrinth-hexpats/hexpats/lang/zh_cn.json | 10 ++++++++++
2 files changed, 20 insertions(+)
create mode 100644 projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/en_us.json
new file mode 100644
index 000000000000..0ac0a414fd99
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/en_us.json
@@ -0,0 +1,10 @@
+{
+ "hexpats.entry.patterns.comfort": "Comfort Patterns",
+
+ "hexpats.page.comfort_desc": "I believe I have found some patterns relating to comforting another person? I have no need for such frivolous things.",
+ "hexpats.page.comfort.headpat": "This pattern appears to conjure a projection of the casters hand about the head of some entity. Costs nothing if the target isn't on fire, otherwise costs an Amethyst Dust.",
+ "hexpats.page.comfort.check_fire": "This pattern checks to see if an entity needs pats to stop burning.",
+
+ "hexcasting.action.hexpats:headpat": "Patter's Gambit",
+ "hexcasting.action.hexpats:check_fire": "Patter's Purification"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/zh_cn.json
new file mode 100644
index 000000000000..f2b32d75736e
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/zh_cn.json
@@ -0,0 +1,10 @@
+{
+ "hexpats.entry.patterns.comfort": "安抚图案",
+
+ "hexpats.page.comfort_desc": "我好像发现了可用来安抚他人的图案?但我没有使用这些图案的必要,它们的用处也不算大。",
+ "hexpats.page.comfort.headpat": "此图案会在某个实体头顶构筑出施法者的手的投影。如果目标未着火,则不消耗媒质;否则消耗 1 个紫水晶粉。",
+ "hexpats.page.comfort.check_fire": "此图案会检验所给实体是否需要拍灭身上的火焰。",
+
+ "hexcasting.action.hexpats:headpat": "拍拍之策略",
+ "hexcasting.action.hexpats:check_fire": "拍拍之纯化"
+}
\ No newline at end of file
From e9dd798c442dba74d4768967ca998aa3537a2e7c Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 4 May 2025 23:18:31 +0800
Subject: [PATCH 33/78] =?UTF-8?q?Hexgloop=20fix=EF=BC=9A=E5=AE=A1=E9=98=85?=
=?UTF-8?q?=E6=84=8F=E8=A7=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json b/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
index 9cb8474c6245..362d1c0e99fb 100644
--- a/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
+++ b/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
@@ -317,7 +317,7 @@
"hexgloop.page.minds_orchard.2": "从我的意识果园中摘出包含思维索引的列表。",
"hexgloop.entry.trinket_focus_patterns": "饰品型核心图案",
- "hexgloop.page.trinket_focus_patterns.0": "这些图案在有助于与$(l:hexgloop:items/trinket_focus)饰品型核心$(/l)交互。通常状况下它们和其他读写图案功能类似。",
+ "hexgloop.page.trinket_focus_patterns.0": "这些图案有助于与$(l:hexgloop:items/trinket_focus)饰品型核心$(/l)交互。通常状况下它们和其他读写图案功能类似。",
"hexgloop.page.trinket_focus_patterns.read_pendant": "复制我所佩戴的吊坠中的 iota,并将其压入栈顶。",
"hexgloop.page.trinket_focus_patterns.write_pendant": "移除栈顶 iota,并将其写入我所佩戴的吊坠。",
"hexgloop.page.trinket_focus_patterns.check_read_pendant": "如果我所佩戴的吊坠中存有可被读取的 iota,返回 True。否则返回 False。",
@@ -410,7 +410,7 @@
"hexgloop.page.chests.normal": "用石板加固的箱子。存储空间比普通箱子略大。",
"hexgloop.page.chests.gloopy": "用石板和凝浆加固的箱子。存储空间是普通箱子的两倍。$(br2)不知道是否还有其他用途静待发现?",
- "hexgloop.page.sentinel_bed": "适合我哨卫的舒适床铺,哨卫似乎总是会想回到床上。貌似猫也觉得这张床很舒服。",
+ "hexgloop.page.sentinel_bed": "适合我哨卫的舒适床铺;哨卫似乎总是会想回到床上。貌似猫也觉得这张床很舒服。",
"hexgloop.entry.reflection": "影像",
"hexgloop.page.reflection.0": "这种镜子由咒术玻璃和同步凝浆制成,似乎能让我的咒术直接作用于镜中映射的物品,就如同它们在我的另一只手中。可以用探知透镜查看映射了什么物品。",
From fe3ea410a2e058b12ce2c1b04409cb448dbb9ac0 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 10 May 2025 06:35:12 +0800
Subject: [PATCH 34/78] =?UTF-8?q?HexGloop=20HextendedStaves=20HexResearch?=
=?UTF-8?q?=20fix=EF=BC=9A=E5=AE=A1=E9=98=85=E6=84=8F=E8=A7=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: dovisutu <40313014+dovisutu@users.noreply.github.com>
---
projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json | 8 ++++----
.../hextended-staves/lanishextendedstaves/lang/zh_cn.json | 2 +-
.../modrinth-hex-research/hexresearch/lang/zh_cn.json | 4 ++--
.../assets/hextended-staves/hextended/lang/zh_cn.json | 2 +-
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json b/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
index 362d1c0e99fb..7504221d7963 100644
--- a/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
+++ b/projects/1.19/assets/hexgloop/hexgloop/lang/zh_cn.json
@@ -176,11 +176,11 @@
"hexcasting.spell.hexgloop:craft/inventorty": "教导物品栏小猫",
"hexcasting.spell.hexgloop:torty_transfer": "物品栏小猫传输",
- "hexcasting.spell.hexgloop:torty_count": "物品栏猫之纯化",
- "hexcasting.spell.hexgloop:torty_max_count": "物品栏猫至大之纯化",
+ "hexcasting.spell.hexgloop:torty_count": "物品栏小猫之纯化",
+ "hexcasting.spell.hexgloop:torty_max_count": "物品栏小猫至大之纯化",
"hexcasting.spell.hexgloop:torty_get_type": "好奇心之纯化",
- "hexcasting.spell.hexgloop:torty_inv_sizes": "物品栏猫之精思",
- "hexcasting.spell.hexgloop:torty_inv_names": "物品栏猫之精思,第二型",
+ "hexcasting.spell.hexgloop:torty_inv_sizes": "物品栏小猫之精思",
+ "hexcasting.spell.hexgloop:torty_inv_names": "物品栏小猫之精思,二型",
"hexcasting.spell.hexgloop:craft/casting_frog": "教导蛙仔",
"hexcasting.spell.hexgloop:frog_eat": "蛙仔就餐",
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 14693f5e1ff3..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.19/assets/modrinth-hex-research/hexresearch/lang/zh_cn.json b/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/zh_cn.json
index c522e48ad4b9..5fee168c8ee0 100644
--- a/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/zh_cn.json
+++ b/projects/1.19/assets/modrinth-hex-research/hexresearch/lang/zh_cn.json
@@ -27,7 +27,7 @@
"hexcasting.spell.hexresearch:thought_sieve": "思维筛滤",
"hexcasting.spell.hexresearch:imbue_mind": "灌注意识",
"hexcasting.spell.hexresearch:villager_rank": "职业之纯化",
- "hexcasting.spell.hexresearch:villager_popularity": "易影响性之纯化",
+ "hexcasting.spell.hexresearch:villager_popularity": "暗示度之纯化",
"hexresearch.entry.greatwork.on_thought_sifting": "关于思维的过滤",
"hexresearch.page.greatwork.on_thought_sifting.1": "我一直以为我是在向自然寻求法术。我一直以为我是在向某种实体寻求答案!我把他们的意识浸入那宏大的媒质回环。过滤思维通过突触通过想法通过……$(br2)他们能存活下来已是奇迹。我感受到那些过滤后的媒质时我绝对获得了一瞬的记忆思维想法颜色……$(br)马上。停下。吸气。呼气。",
@@ -35,7 +35,7 @@
"hexresearch.entry.villager_actions": "村民",
"hexcasting.spell.book.hexresearch:villager_rank": "职业之纯化",
- "hexcasting.spell.book.hexresearch:villager_popularity": "易影响性之纯化",
+ "hexcasting.spell.book.hexresearch:villager_popularity": "暗示度之纯化",
"hexresearch.page.villager_actions.intro.1": "这几页主要介绍能获取村民信息的操作。",
"hexresearch.page.villager_actions.villager_rank": "接受一个村民$(l:casting/101)实体/$,并返回其职业等级。",
"hexresearch.page.villager_actions.villager_popularity": "接受一个村民$(l:casting/101)实体/$,并返回代表施法者对其影响能力的数(施法者的声望)。",
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 a2a9260994cb..88d9a68969b0 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
@@ -67,7 +67,7 @@
"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.1": "此外,如果我钟情于这种法杖那不纯而有序,粗糙而优雅,尖酸而崇高,闪光而虚无而闪光而——$(br2)如果我想要继续使用它,就必须寻得阻止其碎裂的方法,将其密封以无限使用。不过当然,闪亮的紫色蛋糕和能吃的蛋糕就如同鱼与熊掌,而这正是因为贪婪的自然!",
"hextended.entry.crossmod_staves_1": "模组联动法杖",
"hextended.page.crossmod_staves_1.0": "在研究世界上除$(hex)咒法学/$之外的其他力量时,“使用他们所用的奥术材料制造法杖”这一有趣的想法频频造访我的脑海。$(br2)我们来想想看,往一种不是紫色的魔法木材上装上一枚紫色的晶石!真是倒反天罡!",
From f269022885fc1ccf7f25de363b8f27fbe7229e62 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 10 May 2025 14:00:35 +0800
Subject: [PATCH 35/78] =?UTF-8?q?HextendedStaves=20update=EF=BC=9A?=
=?UTF-8?q?=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/lang/en_us.json | 83 +++++++++---------
.../hextended/lang/zh_cn.json | 84 ++++++++++---------
2 files changed, 86 insertions(+), 81 deletions(-)
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 bb5154a5592c..4657e5e5208b 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
@@ -1,49 +1,50 @@
{
"itemGroup.hextended": "Hextended's Gear",
- "item.hextended.extended_staff_oak": "Extended Oak Staff",
- "item.hextended.extended_staff_spruce": "Extended Spruce Staff",
- "item.hextended.extended_staff_birch": "Extended Birch Staff",
- "item.hextended.extended_staff_jungle": "Extended Jungle Staff",
- "item.hextended.extended_staff_dark_oak": "Extended Dark Oak Staff",
- "item.hextended.extended_staff_acacia": "Extended Acacia Staff",
- "item.hextended.extended_staff_crimson": "Extended Crimson Staff",
- "item.hextended.extended_staff_warped": "Extended Warped Staff",
- "item.hextended.extended_staff_mangrove": "Extended Mangrove Staff",
- "item.hextended.extended_staff_edified": "Extended Edified Staff",
- "item.hextended.extended_staff_cherry": "Extended Cherry Staff",
- "item.hextended.extended_staff_bamboo": "Extended Bamboo Staff",
- "item.hextended.extended_staff_mindsplice": "Extended Mindsplice Staff",
- "item.hextended.extended_staff_quenched": "Extended Quenched Shard Staff",
+ "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.lesser_battery_staff": "Improvised Amethyst Staff",
- "item.hextended.lesser_battery_extended_staff": "Improvised Extended Amethyst Staff",
- "item.hextended.sealed_lesser_battery_extended_staff": "Sealed Improvised Extended Amethyst Staff",
- "item.hextended.sealed_lesser_battery_staff": "Sealed Improvised Amethyst 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.moss_staff": "Mossy Staff",
- "item.hextended.flowered_moss_staff": "Flowering Mossy Staff",
- "item.hextended.extended_moss_staff": "Extended Mossy Staff",
- "item.hextended.extended_flowered_moss_staff": "Extended Flowering Mossy Staff",
- "item.hextended.prismarine_staff": "Prismarine Staff",
- "item.hextended.dark_prismarine_staff": "Dark Prismarine Staff",
- "item.hextended.extended_prismarine_staff": "Extended Prismarine Staff",
- "item.hextended.extended_dark_prismarine_staff": "Extended Dark Prismarine Staff",
- "item.hextended.obsidian_staff": "Obsidian Staff",
- "item.hextended.purpur_staff": "Purpur Staff",
- "item.hextended.extended_obsidian_staff": "Extended Obsidian Staff",
- "item.hextended.extended_purpur_staff": "Extended Purpur Staff",
+ "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.extended_quartz_staff": "Extended Quartz Staff",
- "item.hextended.extended_blaze_staff": "Extended Blaze Staff",
- "item.hextended.extended_wither_staff": "Extended Wither Staff",
- "item.hextended.extended_owlbert_staff": "Extended Owl Staff",
- "item.hextended.extended_ghost_staff": "Extended Ghost Staff",
- "item.hextended.extended_celestial_staff": "Extended Celestial Staff",
- "item.hextended.extended_longinus_staff": "Extended Longinus Staff",
- "item.hextended.extended_ice_staff": "Extended Ice Staff",
- "item.hextended.extended_carrot_staff": "Extended Carrot Staff",
- "item.hextended.extended_bee_staff": "Extended Bee 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",
@@ -68,6 +69,8 @@
"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!",
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 88d9a68969b0..3307dfd8775e 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
@@ -1,49 +1,50 @@
{
"itemGroup.hextended": "咒法装备拓展",
- "item.hextended.extended_staff_oak": "橡木长法杖",
- "item.hextended.extended_staff_spruce": "云杉木长法杖",
- "item.hextended.extended_staff_birch": "白桦木长法杖",
- "item.hextended.extended_staff_jungle": "丛林木长法杖",
- "item.hextended.extended_staff_dark_oak": "深色橡木长法杖",
- "item.hextended.extended_staff_acacia": "金合欢木长法杖",
- "item.hextended.extended_staff_crimson": "绯红木长法杖",
- "item.hextended.extended_staff_warped": "诡异木长法杖",
- "item.hextended.extended_staff_mangrove": "红树木长法杖",
- "item.hextended.extended_staff_edified": "启迪木长法杖",
- "item.hextended.extended_staff_cherry": "樱花木长法杖",
- "item.hextended.extended_staff_bamboo": "竹长法杖",
- "item.hextended.extended_staff_mindsplice": "制念长法杖",
- "item.hextended.extended_staff_quenched": "淬灵晶长法杖",
+ "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.lesser_battery_staff": "临时紫水晶法杖",
- "item.hextended.lesser_battery_extended_staff": "临时紫水晶长法杖",
- "item.hextended.sealed_lesser_battery_extended_staff": "密封的临时紫水晶长法杖",
- "item.hextended.sealed_lesser_battery_staff": "密封的临时紫水晶法杖",
+ "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.moss_staff": "覆苔法杖",
- "item.hextended.flowered_moss_staff": "盛放的覆苔法杖",
- "item.hextended.extended_moss_staff": "覆苔长法杖",
- "item.hextended.extended_flowered_moss_staff": "盛放的覆苔长法杖",
- "item.hextended.prismarine_staff": "海晶石法杖",
- "item.hextended.dark_prismarine_staff": "暗海晶石法杖",
- "item.hextended.extended_prismarine_staff": "海晶石长法杖",
- "item.hextended.extended_dark_prismarine_staff": "暗海晶石长法杖",
- "item.hextended.obsidian_staff": "黑曜石法杖",
- "item.hextended.purpur_staff": "紫颂法杖",
- "item.hextended.extended_obsidian_staff": "黑曜石长法杖",
- "item.hextended.extended_purpur_staff": "紫颂长法杖",
+ "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.extended_quartz_staff": "石英长法杖",
- "item.hextended.extended_blaze_staff": "烈焰长法杖",
- "item.hextended.extended_wither_staff": "凋灵长法杖",
- "item.hextended.extended_owlbert_staff": "猫头鹰长法杖",
- "item.hextended.extended_ghost_staff": "幽灵长法杖",
- "item.hextended.extended_celestial_staff": "天体长法杖",
- "item.hextended.extended_longinus_staff": "朗基努斯长法杖",
- "item.hextended.extended_ice_staff": "寒冰长法杖",
- "item.hextended.extended_carrot_staff": "胡萝卜长法杖",
- "item.hextended.extended_bee_staff": "蜜蜂长法杖",
+ "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": "蜜蜂长法杖",
@@ -68,6 +69,8 @@
"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)我们来想想看,往一种不是紫色的魔法木材上装上一枚紫色的晶石!真是倒反天罡!",
@@ -85,5 +88,4 @@
"hextended.page.gloopstended_staves.crafting.desc.1": "“晚安了,姐姐!”$(br2)某些传说中提到过使用圆形图案的法杖。听起来和野魔法没什么两样!",
"hextended.page.gloopstended_staves.crafting.desc.2": "昵称“花园法杖”,它能让你更轻松地施放复活魔能技,而不需——呃,它……拿着就很健康?",
"hextended.page.gloopstended_staves.crafting.desc.3": "和花园法杖类似,你也可以将这支法杖称作蜂巢法杖。其中住着的,不仅有蜂鸣的媒质,$(o)还有/$蜂鸣的忙碌伙伴!"
-
}
\ No newline at end of file
From 17f2bb33e15fff68497e10b862b543339d3fbfb3 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Thu, 29 May 2025 03:29:31 +0800
Subject: [PATCH 36/78] =?UTF-8?q?Ephemera=20Oneironaut=20Hexical=20Hexposi?=
=?UTF-8?q?tion=20Overevaluate=20update=EF=BC=9A=E5=AE=98=E5=BA=93?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/ephemera/ephemera/lang/zh_cn.json | 2 +-
.../1UNKNOWN/hexposition/lang/en_us.json | 108 +++++----
.../1UNKNOWN/hexposition/lang/zh_cn.json | 106 ++++----
.../1UNKNOWN/overevaluate/lang/en_us.json | 49 ++--
.../1UNKNOWN/overevaluate/lang/zh_cn.json | 49 ++--
.../assets/ephemera/ephemera/lang/en_us.json | 14 ++
.../modrinth-hexical/hexical/lang/en_us.json | 226 +++++++++++-------
.../modrinth-hexical/hexical/lang/zh_cn.json | 221 ++++++++++-------
.../oneironaut/oneironaut/lang/en_us.json | 21 +-
.../assets/ephemera/ephemera/lang/en_us.json | 14 ++
.../assets/ephemera/ephemera/lang/zh_cn.json | 16 +-
.../oneironaut/oneironaut/lang/en_us.json | 1 +
.../oneironaut/oneironaut/lang/zh_cn.json | 1 +
13 files changed, 510 insertions(+), 318 deletions(-)
diff --git a/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
index 1c3ca91f9a75..610373dec492 100644
--- a/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
+++ b/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
@@ -87,7 +87,7 @@
"ephemera.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布。",
"ephemera.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
"ephemera.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
- "ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
+ "ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能类似,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
"ephemera.page.status_iotas.1": "这些图案主要操作代表生物身上长时效果的 iota,我可以用这些图案评估生物的状态,比只用护士之纯化更加深入彻底。$(br)虽然我的研究表明,代表瞬时效果的状态 iota 有存在的可能,但它们非常难以获取,而且我目前没想到它们有什么用途。",
"ephemera.page.status_iotas.2": "接受一个生物,并返回目标当前所有效果组成的列表 iota。",
"ephemera.page.status_iotas.3": "接受一个状态效果,并根据该效果对生物产生正面、负面,或中性影响返回一个数。",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
index aea636db37e5..673fca6365b7 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
@@ -20,6 +20,8 @@
"hexcasting.action.book.hexposition:get_enchantments": "Thaumaturgist's Purif.",
"hexcasting.action.book.hexposition:breedable": "Reproduction Purif.",
"hexcasting.action.book.hexposition:theodolite": "Theodolite Purif.",
+ "hexcasting.action.book.hexposition:get_air": "Suffocation Purif.",
+ "hexcasting.action.book.hexposition:is_wet": "Enderman's Purif.",
"hexcasting.action.book.hexposition:identify": "Detective's Purif.",
"hexcasting.action.book.hexposition:damage_stack": "Deterioration Purif.",
"hexcasting.action.book.hexposition:classify": "Modicum Purif.",
@@ -27,41 +29,51 @@
"hexcasting.action.book.hexposition:get_weather": "Meterologist's Refl.",
"hexposition.page.enlightened_patterns.title": "Enlightened Patterns",
- "hexposition.page.enlightened_patterns.0": "After enlightenment, I find myself acutely aware of certain patterns to aid with my newfound abilities. These patterns don't seem to require anything from me that I didn't have before, perhaps I've always been able to cast them but was unaware of their existence. An unenlightened player will be able to use $(l:items/hexcasting)$(item)casting devices$() with these patterns.",
+ "hexposition.page.enlightened_patterns.0": "After $(thing)Enlightenment$(), I find myself acutely aware of certain patterns that aid with my newfound abilities. These patterns don't seem to require anything from me that I didn't have before; perhaps I was always able to cast them but was simply unaware of their existence. An unenlightened player will be able to use $(l:items/hexcasting)$(item)casting devices$() with these patterns.",
"hexcasting.action.hexposition:am_enlightened": "Epiphany Purification",
- "hexposition.page.am_enlightened.summary": "Pushes whether the given player has achieved enlightenment like I have.",
+ "hexposition.page.am_enlightened.summary": "Pushes whether the given player has achieved $(thing)Enlightenment$().",
"hexcasting.action.hexposition:is_brainswept": "Sentience Purification",
- "hexposition.page.is_brainswept.summary": "Pushes whether an entity \"has been magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
+ "hexposition.page.is_brainswept.summary": "Pushes whether an entity has been \"magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
"hexposition.page.perlin.title": "Quasirandomness",
- "hexposition.page.perlin.0": "In certain regions of the world, ambient _media is more concentrated. I can measure that concentration and even extrapolate backwards and forwards in time to get a quasi-random number between 0 and 1, corresponding to that location at that time. Points in time and space that are close to each other often have similar values.",
+ "hexposition.page.perlin.0": "I have not found a way to harness it yet, but I notice ambient _media is not distributed evenly throughout reality. I can measure its concentration at a point in space and time to get a random number between 0 and 1, corresponding to media levels at that point in space and time. Points close together in space and time tend to have similar values.",
"hexcasting.action.hexposition:perlin": "Perlin Distillation",
- "hexposition.page.perlin.summary": "Measures the concentration of ambient at that point in space and time, normalized between 0 and 1.",
+ "hexposition.page.perlin.summary": "Measures the concentration of ambient _media at a point in space and time, normalized between 0 and 1.",
+
+ "hexposition.page.special_raycasts.title": "Special Raycasts",
+ "hexcasting.action.hexposition:fluid_raycast": "Naval Distillation",
+ "hexposition.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
+ "hexcasting.action.hexposition:fluid_surface_raycast": "Lilypad Distillation",
+ "hexposition.page.fluid_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but targets only liquids, piercing through all other blocks.",
+ "hexcasting.action.hexposition:piercing_raycast": "Railgun Exaltation",
+ "hexposition.page.piercing_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
+ "hexcasting.action.hexposition:piercing_surface_raycast": "Laser Exaltation",
+ "hexposition.page.piercing_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
"hexposition.category.scrying": "Scrying",
"hexposition.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world. While likely not useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
"hexposition.page.blocks.title": "Blocks",
"hexcasting.action.hexposition:block_hardness": "Miner's Purification",
- "hexposition.page.block_hardness.summary": "Pushes how difficult blocks of that block type are to mine.",
+ "hexposition.page.block_hardness.summary": "Pushes how difficult blocks of this type are to mine.",
"hexcasting.action.hexposition:block_blast_resistance": "Demoman's Purification",
- "hexposition.page.block_blast_resistance.summary": "Pushes how resistant blocks of that block type are to explosions.",
- "hexcasting.action.hexposition:blockstate_waterlogged": "Plumber's Purification",
- "hexposition.page.blockstate_waterlogged.summary": "Pushes whether the block is waterlogged, or $(l:casting/influences)$(thing)Null$() if the block can not be waterlogged.",
+ "hexposition.page.block_blast_resistance.summary": "Pushes how resistant blocks of this type are to explosions.",
"hexcasting.action.hexposition:blockstate_rotation": "Orientation Purification",
- "hexposition.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or $(l:casting/influences)$(thing)Null$() if the block does not have a facing direction.",
+ "hexposition.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or $(l:casting/influences)$(thing)Null$() if blocks of its type do not have an orientation.",
+ "hexcasting.action.hexposition:blockstate_turn": "Angle Purification",
+ "hexposition.page.blockstate_turn.summary": "Pushes a number corresponding to the rotation of $(item)Signs$(), $(item)Skulls$(), and $(item)Banners$().",
"hexcasting.action.hexposition:blockstate_crop": "Farmer's Purification",
- "hexposition.page.blockstate_crop.summary": "Pushes a number 0 to 1, corresponding to how grown that crop is, as well as beehives, composters, and cauldrons. Strangely works on cakes too.",
+ "hexposition.page.blockstate_crop.summary": "Pushes a number 0 to 1 corresponding to the growth progress of that block. Works for crops, $(item)Beehives$(), $(item)Composters$(), $(item)Cauldrons$(), and strangely $(item)Cakes$() too.",
+ "hexcasting.action.hexposition:blockstate_waterlogged": "Plumber's Purification",
+ "hexposition.page.blockstate_waterlogged.summary": "Pushes whether the block is waterlogged, or $(l:casting/influences)$(thing)Null$() if the blocks of its type can not be waterlogged.",
"hexcasting.action.hexposition:blockstate_glow": "Glowing Purification",
- "hexposition.page.blockstate_glow.summary": "Pushes a boolean for whether the block is in a \"lit\" state, for example furnaces, Redstone torches, lamps, and campfires.",
+ "hexposition.page.blockstate_glow.summary": "Pushes whether the block is in a \"lit\" state, for example $(item)Furnaces$(), $(item)Redstone Torches$(), $(item)Redstone Lamps$(), and $(item)Campfires$().",
"hexcasting.action.hexposition:blockstate_lock": "Lock Purification",
- "hexposition.page.blockstate_lock.summary": "Pushes a boolean for whether the block is currently in a \"open\" state, for example doors, trapdoors, fence gates, and open barrels.",
- "hexcasting.action.hexposition:blockstate_turn": "Angle Purification",
- "hexposition.page.blockstate_turn.summary": "Pushes a number corresponding to the rotation of signs, skulls, and banners.",
+ "hexposition.page.blockstate_lock.summary": "Pushes whether the block is currently in a \"open\" state, for example $(item)Doors$(), $(item)Trapdoors$(), $(item)Fence Gates$(), and $(item)Barrels$().",
"hexcasting.action.hexposition:blockstate_bunch": "Bunching Purification",
- "hexposition.page.blockstate_bunch.summary": "Pushes how many are in a bunch block, or $(l:casting/influences)$(thing)Null$() otherwise. Useful only for candles, sea pickles, and turtle eggs.",
+ "hexposition.page.blockstate_bunch.summary": "Pushes how many parts are in a block that contains a bunch, or $(l:casting/influences)$(thing)Null$() if it is not such a block. Useful only for $(item)Candles$(), $(item)Sea Pickles$(), and $(item)Turtle Eggs$().",
"hexcasting.action.hexposition:blockstate_book": "Book Purification",
- "hexposition.page.blockstate_book.summary": "Pushes a boolean for whether lecterns or jukeboxes have a book/music disc in them respectively. I read that it may work for some kind of bookshelf involved in a great work too.",
+ "hexposition.page.blockstate_book.summary": "Pushes whether the $(item)Lectern$() or $(item)Jukebox$() contains a $(item)Book$() or $(item)Music Disc$() respectively. It may also work for some kind of bookshelf involved in a great work too.",
"hexposition.page.entities.title": "Entities",
"hexcasting.action.hexposition:entity_width": "Caliper's Purification",
@@ -73,42 +85,46 @@
"hexcasting.action.hexposition:get_max_health": "Fitness Purification",
"hexposition.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
"hexcasting.action.hexposition:get_air": "Suffocation Purification",
- "hexposition.page.get_air.summary": "Pushes the twentieths of a second before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
+ "hexposition.page.get_air.summary": "Pushes the number of seconds before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
"hexcasting.action.hexposition:get_max_air": "Lung Purification",
- "hexposition.page.get_max_air.summary": "Pushes the twentieths of a second an entity can last outside their normal breathing environment before they start suffocating.",
- "hexcasting.action.hexposition:get_player_hunger": "Hunger Purification",
- "hexposition.page.get_player_hunger.summary": "Pushes how full a player is. I can imagine this as half-hunger-hunches.",
- "hexcasting.action.hexposition:get_player_saturation": "Stamina Purification",
- "hexposition.page.get_player_saturation.summary": "Pushes my saturation, which roughly correlates to how long the player will remain full.",
- "hexcasting.action.hexposition:is_burning": "Inferno Purification",
- "hexposition.page.is_burning.summary": "Pushes whether the entity is burning. Also applies to entities that are visually on fire, even if they are immune to fire, such as blazes attacking.",
- "hexcasting.action.hexposition:burning_time": "Inferno Purification II",
- "hexposition.page.burning_time.summary": "Pushes how long in twentieths of a second the entity will continue burning if not put out.",
+ "hexposition.page.get_max_air.summary": "Pushes the number of seconds a regular entity of that type can last outside their normal breathing environment before they start suffocating.",
+ "hexcasting.action.hexposition:burning": "Inferno Purification",
+ "hexposition.page.burning.summary": "Pushes the number of seconds the burning entity will continue burning if not put out. -1 if the entity is not burning currently.",
"hexcasting.action.hexposition:is_wet": "Enderman's Purification",
"hexposition.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
"hexcasting.action.hexposition:is_baby": "Youth Purification",
- "hexposition.page.is_baby.summary": "Pushes whether a living creature is in its baby form. Also works on armor stands oddly.",
+ "hexposition.page.is_baby.summary": "Pushes whether a living creature is a baby. Also works on $(item)Armor Stands$() oddly.",
"hexcasting.action.hexposition:breedable": "Reproduction Purification",
"hexposition.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or $(l:casting/influences)$(thing)Null$() if that creature is not capable of that type of reproduction.",
"hexcasting.action.hexposition:is_sleeping": "Sloth's Purification",
- "hexposition.page.is_sleeping.summary": "Pushes whether the entity is sleeping. Applies to players, cats, foxes, and a variety of other creatures.",
+ "hexposition.page.is_sleeping.summary": "Pushes whether the $(item)Player$(), $(item)Cat$(), $(item)Fox$(), or other entity is sleeping.",
"hexcasting.action.hexposition:is_sprinting": "Racer's Purification",
- "hexposition.page.is_sprinting.summary": "Pushes whether the entity is sprinting. Includes if I am swimming or if I have left the ground since sprinting and extends to cats, foxes, and more.",
+ "hexposition.page.is_sprinting.summary": "Pushes whether the $(item)Player$(), $(item)Cat$(), $(item)Fox$(), or other entity is sprinting. Swimming and leaving the ground after starting to sprint are still included.",
+ "hexcasting.action.hexposition:entity_vehicle": "Vehicle Purification",
+ "hexposition.page.entity_vehicle.summary": "Pushes the entity the given entity is riding or $(l:casting/influences)$(thing)Null$() if it is not riding in or on anything.",
+ "hexcasting.action.hexposition:entity_passengers": "Jockey Purification",
+ "hexposition.page.entity_passengers.summary": "Pushes a list of entities that are riding the given entity.",
+ "hexcasting.action.hexposition:shooter": "Shooter Purification",
+ "hexposition.page.shooter.summary": "Pushes the shooter of the given projectile entity or $(l:casting/influences)$(thing)Null$() if it has no shooter or isn't a projectile. It also pushes $(l:casting/influences)$(thing)Null$() if the shooter is outside my ambit.",
"hexposition.page.environment.title": "Environment",
- "hexposition.page.environment.0": "This section of patterns is quite meta: they push properties of the magical environment they are running in. Certain environments are unable to cast certain patterns so this section may be useful in avoiding mishaps.",
+ "hexposition.page.environment.0": "These patterns are meta: they concern properties of the magical environment they are cast in. Mostly useful in avoiding $(l:casting/mishaps)$(thing)mishaps$().",
"hexcasting.action.hexposition:env_ambit": "Ambit Purification",
"hexposition.page.env_ambit.summary": "Pushes whether a location or entity is in ambit.",
"hexcasting.action.hexposition:env_staff": "Staff Reflection",
"hexposition.page.env_staff.summary": "Pushes whether a $(l:items/staff)$(item)Staff$() is being used to cast this pattern.",
"hexcasting.action.hexposition:env_offhand": "Dexterity Reflection",
- "hexposition.page.env_offhand.summary": "Pushes whether the most dominant hand of the caster is being used to cast this pattern. May work strangely for casters without hands...",
+ "hexposition.page.env_offhand.summary": "Pushes whether the dominant hand of the caster is being used to cast this pattern. May return strange results for casters without hands.",
"hexcasting.action.hexposition:env_packaged_hex": "Device Reflection",
"hexposition.page.env_packaged_hex.summary": "Pushes whether any form of $(l:items/hexcasting)$(item)casting device$() is being used to cast this pattern.",
"hexcasting.action.hexposition:env_circle": "Constructed Reflection",
"hexposition.page.env_circle.summary": "Pushes whether some form of $(l:greatwork/spellcircles)$(thing)$(o)grand work$() is being used to cast this pattern.",
"hexposition.page.food.title": "Food",
+ "hexcasting.action.hexposition:get_player_hunger": "Hunger Purification",
+ "hexposition.page.get_player_hunger.summary": "Pushes how full a $(item)Player$() is. I can think of this in terms of half-hunger-hunches.",
+ "hexcasting.action.hexposition:get_player_saturation": "Stamina Purification",
+ "hexposition.page.get_player_saturation.summary": "Pushes a $(item)Player$()'s saturation, which roughly correlates to how long the $(item)Player$() will remain full.",
"hexcasting.action.hexposition:edible": "Edibility Purification",
"hexposition.page.edible.summary": "Takes in an item identifier and pushes whether I can eat it.",
"hexcasting.action.hexposition:get_hunger": "Calorie Purification",
@@ -116,30 +132,30 @@
"hexcasting.action.hexposition:get_saturation": "Satiation Purification",
"hexposition.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill me.",
"hexcasting.action.hexposition:is_meat": "Flesh Purification",
- "hexposition.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat, meaning wolves can eat it.",
+ "hexposition.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat. $(item)Wolves$() can eat meats.",
"hexcasting.action.hexposition:is_snack": "Dessert Purification",
- "hexposition.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack, meaning I can eat it really quickly.",
+ "hexposition.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack.",
"hexposition.page.identifiers.title": "Identifiers",
- "hexposition.page.identifiers.0": "My _Hexes has so far been quite blind to the world. I can get a creature's height, velocity, and more but I can't directly identify that entity. Nature's solution to the problem is the $(o)identifier iota$(). Every entity, block, status effect, enchantment, sound, etc... has a unique identifier that my _Hexes can identify. Once I have two identifiers, I can compare them with each other.",
+ "hexposition.page.identifiers.0": "The identifier iota is Nature's solution to allowing _Hexes to specifically identify types. Every type of entity, block, status effect, enchantment, sound, and more has a unique identifier attached which a _Hex can retrieve and compare.",
"hexcasting.action.hexposition:identify": "Detective's Purification",
"hexposition.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
"hexcasting.action.hexposition:classify": "Modicum Purification",
"hexposition.page.classify.summary": "Pushes the identifier of an iota's type. Can be used to determine whether two iota are the same type.",
"hexposition.page.item.title": "Items",
- "hexposition.page.item.0": "An item iota encodes all information that distinguish a stack of items (even an absence of items strangely enough). There is one exception however; an item iota of an item that holds an item iota does not retain the contained iota. The already intricate patterns of _media that form item iota simply unravel when nested within even more layers of abstraction.",
- "hexposition.page.item.1": "Players seem to manipulate _media idly just as a byproduct of being sentient. This field of _media strikes back, often violently at attempts of in-depth scrying. Simple items such as armor and held items can be spied on, but deep in-depth analysis of their inventory's contents will fail.",
+ "hexposition.page.item.0": "An item iota holds nearly all information that distinguish a stack of items from another and _Hexes can use them to query specifics. There is one exception: an item iota loses any item iota contained within the item. The already intricate folds of _media that form item iota simply unravel when nested within even more layers of abstraction.",
+ "hexposition.page.item.1": "$(item)Players$() manipulate _media idly just as a byproduct of being sentient. This aura of _media is mostly inert but strikes back, often violently at attempts of in-depth scrying. Externally exposed items such as armor and held items can be spied on, but attempts to deeply analyze their inventory will fail.$(br2)Nature respects boundaries.",
"hexcasting.action.hexposition:get_stack": "Item Purification",
- "hexposition.page.get_stack.summary": "Pushes the item that an item entity is.",
+ "hexposition.page.get_stack.summary": "Pushes the item that an $(item)Item$() in the world is.",
"hexcasting.action.hexposition:create_stack": "Offer Purification",
- "hexposition.page.create_stack.summary": "Creates an item iota from an item identifier and a count of items.",
+ "hexposition.page.create_stack.summary": "Creates an item iota from an item identifier and the number of items in the stack.",
"hexcasting.action.hexposition:get_mainhand": "Tool Purification",
"hexposition.page.get_mainhand.summary": "Returns the item in the entity's mainhand.",
"hexcasting.action.hexposition:get_offhand": "Accessory Purification",
"hexposition.page.get_offhand.summary": "Returns the item in the entity's offhand.",
"hexcasting.action.hexposition:get_inventory": "Cart Purification",
- "hexposition.page.get_inventory.summary": "Returns a list of all items the entity is carrying, or $(l:casting/influences)$(thing)Null$() if the entity can not hold items. Trying to access another player's inventory will incur a mishap.",
+ "hexposition.page.get_inventory.summary": "Returns a list of all items the entity is carrying, or $(l:casting/influences)$(thing)Null$() if the entity can not hold items. Trying to access another $(item)Player$()'s inventory will incur a mishap.",
"hexcasting.action.hexposition:get_block_inventory": "Chest Purification",
"hexposition.page.get_block_inventory.summary": "Returns a list of all items in the container, or $(l:casting/influences)$(thing)Null$() if the block can not contain items.",
"hexcasting.action.hexposition:get_armor": "Aegis Purification",
@@ -163,7 +179,7 @@
"hexposition.page.media.title": "Media",
"hexcasting.action.hexposition:env_media": "Media Reflection",
- "hexposition.page.env_media.summary": "Pushes the _media available to this current cast.",
+ "hexposition.page.env_media.summary": "Pushes the _media available to the current cast.",
"hexcasting.action.hexposition:get_media": "Media Purification",
"hexposition.page.get_media.summary": "Pushes the amount of _media inside an item, that a creature contains or holds, or that a specialized _media-holding block contains.",
"hexcasting.action.hexposition:media_max_stack": "Potential Purification",
@@ -189,17 +205,17 @@
"hexcasting.action.hexposition:get_power": "Battery Purification",
"hexposition.page.get_power.summary": "Pushes the Redstone power that a position receives.",
"hexcasting.action.hexposition:get_comparator": "Peripheral Purification",
- "hexposition.page.get_comparator.summary": "Pushes the power level a comparator would output if pressed against a position.",
+ "hexposition.page.get_comparator.summary": "Pushes the power level a $(item)Comparator$() would output if pressed against a position.",
"hexcasting.action.hexposition:get_day": "Circadian Reflection",
"hexposition.page.get_day.summary": "Pushes the progress of the day as a number between 0 (start) and 1 (end) of the day.",
"hexcasting.action.hexposition:get_time": "Temporal Reflection",
"hexposition.page.get_time.summary": "Pushes the age of the world for timekeeping, unaffected by events such as sleeping. Divided by 20, it returns seconds.",
"hexcasting.action.hexposition:get_biome": "Geographical Purification",
- "hexposition.page.get_biome.summary": "Pushes the identifier of the biome type that the vector is within.",
+ "hexposition.page.get_biome.summary": "Pushes the identifier of the type of biome the vector is within.",
"hexcasting.action.hexposition:get_dimension": "Plane Reflection",
"hexposition.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in.",
"hexcasting.action.hexposition:get_moon": "Lunar Reflection",
- "hexposition.page.get_moon.summary": "Pushes the current phase of the Moon as a fraction of its size.",
+ "hexposition.page.get_moon.summary": "Pushes the current phase of the $(thing)Moon$() as a fraction of its size.",
"hexcasting.action.hexposition:get_einstein": "Distortion Reflection",
- "hexposition.page.get_einstein.summary": "Pushes whether this dimension is bounded by standard rules of space and time: $(item)Compasses$() and $(item)Clocks$() will work here."
-}
+ "hexposition.page.get_einstein.summary": "Pushes whether $(item)Compasses$() and $(item)Clocks$() will work in this dimension."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
index ef7c01b72fcf..dd6df59d2670 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
@@ -20,6 +20,8 @@
"hexcasting.action.book.hexposition:get_enchantments": "奇术师之纯化",
"hexcasting.action.book.hexposition:breedable": "繁衍之纯化",
"hexcasting.action.book.hexposition:theodolite": "经纬仪之纯化",
+ "hexcasting.action.book.hexposition:get_air": "窒息之纯化",
+ "hexcasting.action.book.hexposition:is_wet": "末影人之纯化",
"hexcasting.action.book.hexposition:identify": "侦探之纯化",
"hexcasting.action.book.hexposition:damage_stack": "损耗之纯化",
"hexcasting.action.book.hexposition:classify": "抵量之纯化",
@@ -27,41 +29,51 @@
"hexcasting.action.book.hexposition:get_weather": "天气学家之精思",
"hexposition.page.enlightened_patterns.title": "启迪后图案",
- "hexposition.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经启迪的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
+ "hexposition.page.enlightened_patterns.0": "在经过$(thing)启迪$()之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经$(thing)启迪$()的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
"hexcasting.action.hexposition:am_enlightened": "显圣之纯化",
- "hexposition.page.am_enlightened.summary": "检验所给玩家是否和我一样经过启迪。",
+ "hexposition.page.am_enlightened.summary": "检验所给玩家是否和我一样经过$(thing)启迪$()。",
"hexcasting.action.hexposition:is_brainswept": "感知之纯化",
- "hexposition.page.is_brainswept.summary": "检验实体“是否经由魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
+ "hexposition.page.is_brainswept.summary": "检验实体是否“被魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
"hexposition.page.perlin.title": "准随机",
- "hexposition.page.perlin.0": "某些地点的环境$(media)媒质$()密度比其他位置高。这种密度可以测量;甚至能在时间上回溯或前进,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
+ "hexposition.page.perlin.0": "虽然我还没有找到利用的方法,但各地的环境$(media)媒质$()密度确实各不相同。可以测量时空中某一点的此密度,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
"hexcasting.action.hexposition:perlin": "柏林之馏化",
"hexposition.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
+ "hexposition.page.special_raycasts.title": "特殊射线追踪",
+ "hexcasting.action.hexposition:fluid_raycast": "海军之馏化",
+ "hexposition.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.action.hexposition:fluid_surface_raycast": "睡莲之馏化",
+ "hexposition.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.action.hexposition:piercing_raycast": "轨道炮之提整",
+ "hexposition.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+ "hexcasting.action.hexposition:piercing_surface_raycast": "激光之提整",
+ "hexposition.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+
"hexposition.category.scrying": "探知",
"hexposition.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。虽然这些操作在大多数$(hex)咒术$()中没什么大用处,但有它们在也不错,我将来也许会用到。",
"hexposition.page.blocks.title": "方块",
"hexcasting.action.hexposition:block_hardness": "矿工之纯化",
- "hexposition.page.block_hardness.summary": "压入挖掘给定方块的难易程度。",
+ "hexposition.page.block_hardness.summary": "压入挖掘给定类型方块的难易程度。",
"hexcasting.action.hexposition:block_blast_resistance": "爆破兵之纯化",
- "hexposition.page.block_blast_resistance.summary": "压入给定方块对爆炸的抗性。",
- "hexcasting.action.hexposition:blockstate_waterlogged": "管道工之纯化",
- "hexposition.page.blockstate_waterlogged.summary": "检验方块是否含水。若方块无法含水,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexposition.page.block_blast_resistance.summary": "压入给定类型方块对爆炸的抗性。",
"hexcasting.action.hexposition:blockstate_rotation": "方向之纯化",
- "hexposition.page.blockstate_rotation.summary": "压入方块的朝向向量。若方块无朝向向量,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexposition.page.blockstate_rotation.summary": "压入方块的朝向向量。若该类方块不区分朝向,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexposition:blockstate_turn": "角度之纯化",
+ "hexposition.page.blockstate_turn.summary": "压入一个数,对应$(item)告示牌$()、$(item)头颅$()、$(item)旗帜$()的旋转方向。",
"hexcasting.action.hexposition:blockstate_crop": "农夫之纯化",
- "hexposition.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的成熟程度,对蜂巢、堆肥桶、炼药锅同样有效。奇怪的是,对蛋糕也有效。",
+ "hexposition.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的生长进度,对$(item)蜂巢$()、$(item)堆肥桶$()、$(item)炼药锅$()同样有效。奇怪的是,对$(item)蛋糕$()也有效。",
+ "hexcasting.action.hexposition:blockstate_waterlogged": "管道工之纯化",
+ "hexposition.page.blockstate_waterlogged.summary": "检验方块是否含水。若该类方块无法含水,则返回 $(l:casting/influences)$(thing)Null$()。",
"hexcasting.action.hexposition:blockstate_glow": "发光之纯化",
- "hexposition.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有熔炉、红石火把、灯笼、营火等。",
+ "hexposition.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有$(item)熔炉$()、$(item)红石火把$()、$(item)灯笼$()、$(item)营火$()等。",
"hexcasting.action.hexposition:blockstate_lock": "锁之纯化",
- "hexposition.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有门、活板门、栅栏门、木桶等。",
- "hexcasting.action.hexposition:blockstate_turn": "角度之纯化",
- "hexposition.page.blockstate_turn.summary": "压入一个数,对应告示牌、头颅、旗帜的旋转方向。",
+ "hexposition.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有$(item)门$()、$(item)活板门$()、$(item)栅栏门$()、$(item)木桶$()等。",
"hexcasting.action.hexposition:blockstate_bunch": "叠放之纯化",
- "hexposition.page.blockstate_bunch.summary": "返回方块的叠放数,无法叠放则返回 $(l:casting/influences)$(thing)Null$()。仅对蜡烛、海泡菜、海龟蛋有效。",
+ "hexposition.page.blockstate_bunch.summary": "返回可叠放方块的叠放部件数,无法叠放则返回 $(l:casting/influences)$(thing)Null$()。仅对$(item)蜡烛$()、$(item)海泡菜$()、$(item)海龟蛋$()有效。",
"hexcasting.action.hexposition:blockstate_book": "书之纯化",
- "hexposition.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。我读到过它可能对所谓“卓伟大作”中的某种奇妙书架也有效。",
+ "hexposition.page.blockstate_book.summary": "检验$(item)讲台$()中是否有$(item)书$(),$(item)唱片机$()中是否有$(item)唱片$()。我读到过它可能对所谓“卓伟大作”中的某种奇妙书架也有效。",
"hexposition.page.entities.title": "实体",
"hexcasting.action.hexposition:entity_width": "卡尺之纯化",
@@ -73,42 +85,46 @@
"hexcasting.action.hexposition:get_max_health": "健康之纯化",
"hexposition.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
"hexcasting.action.hexposition:get_air": "窒息之纯化",
- "hexposition.page.get_air.summary": "压入实体距离窒息剩余多少个 1/20 秒。对脱水的海洋生物和溺水的陆地生物均有效。",
+ "hexposition.page.get_air.summary": "压入实体距离窒息剩余多少秒。对脱水的海洋生物和溺水的陆地生物均有效。",
"hexcasting.action.hexposition:get_max_air": "双肺之纯化",
- "hexposition.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少个 1/20 秒开始窒息。",
- "hexcasting.action.hexposition:get_player_hunger": "饥饿之纯化",
- "hexposition.page.get_player_hunger.summary": "返回玩家实体的饥饿值。使用半个饥饿值火腿作为单位。",
- "hexcasting.action.hexposition:get_player_saturation": "耐力之纯化",
- "hexposition.page.get_player_saturation.summary": "返回我的饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.action.hexposition:is_burning": "炼狱之纯化",
- "hexposition.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
- "hexcasting.action.hexposition:burning_time": "炼狱之纯化,第二型",
- "hexposition.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余多少个 1/20 秒。",
+ "hexposition.page.get_max_air.summary": "返回给定类型实体在离开其呼吸环境后需多少秒开始窒息。",
+ "hexcasting.action.hexposition:burning": "炼狱之纯化",
+ "hexposition.page.burning.summary": "返回实体身上的火焰距自然熄灭剩余多少秒,实体未在燃烧则返回 -1。",
"hexcasting.action.hexposition:is_wet": "末影人之纯化",
"hexposition.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
"hexcasting.action.hexposition:is_baby": "青春之纯化",
- "hexposition.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对盔甲架也有效。",
+ "hexposition.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对$(item)盔甲架$()也有效。",
"hexcasting.action.hexposition:breedable": "繁衍之纯化",
"hexposition.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 $(l:casting/influences)$(thing)Null$()。",
"hexcasting.action.hexposition:is_sleeping": "树懒之纯化",
- "hexposition.page.is_sleeping.summary": "检验实体是否在睡眠状态。对玩家、猫、狐狸、以及一系列其他生物有效。",
+ "hexposition.page.is_sleeping.summary": "检验$(item)玩家$()、$(item)猫$()、$(item)狐狸$()、以及其他实体是否处于睡眠状态。",
"hexcasting.action.hexposition:is_sprinting": "赛车手之纯化",
- "hexposition.page.is_sprinting.summary": "检验实体是否在疾跑。速泳和疾跑后离地均算作疾跑,对猫、狐狸等也有效。",
+ "hexposition.page.is_sprinting.summary": "检验$(item)玩家$()、$(item)猫$()、$(item)狐狸$()、以及其他实体是否在疾跑。速泳和疾跑后离地均算作疾跑。",
+ "hexcasting.action.hexposition:entity_vehicle": "载具之纯化",
+ "hexposition.page.entity_vehicle.summary": "检验所给实体是否处于骑乘状态,若未在骑乘或未乘坐载具,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexposition:entity_passengers": "骑士之纯化",
+ "hexposition.page.entity_passengers.summary": "返回骑乘所给实体的实体列表。",
+ "hexcasting.action.hexposition:shooter": "射手之纯化",
+ "hexposition.page.shooter.summary": "返回所给弹射物实体的发射者,若无发射者或不是弹射物,则返回 $(l:casting/influences)$(thing)Null$()。如果发射者在我影响范围之外,也会返回 $(l:casting/influences)$(thing)Null$()。",
"hexposition.page.environment.title": "环境",
- "hexposition.page.environment.0": "本节的图案比较“元”:它们会返回其所处的魔法环境。特定的环境中某些图案无法施放,所以本节图案也许适合用来规避事故。",
+ "hexposition.page.environment.0": "本节的图案比较“元”:它们会检验其所处的施法环境。主要适合用来规避$(l:casting/mishaps)$(thing)事故$()。",
"hexcasting.action.hexposition:env_ambit": "影响范围之纯化",
"hexposition.page.env_ambit.summary": "检验所给位置或实体是否处于影响范围中。",
"hexcasting.action.hexposition:env_staff": "法杖之精思",
"hexposition.page.env_staff.summary": "检验该图案是否由$(l:items/staff)$(item)法杖$()施放。",
"hexcasting.action.hexposition:env_offhand": "敏捷之精思",
- "hexposition.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果……",
+ "hexposition.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果。",
"hexcasting.action.hexposition:env_packaged_hex": "设备之精思",
"hexposition.page.env_packaged_hex.summary": "检验该图案是否由任意$(l:items/hexcasting)$(item)施法物品$()施放。",
"hexcasting.action.hexposition:env_circle": "建构之精思",
"hexposition.page.env_circle.summary": "检验该图案是否由某种$(l:greatwork/spellcircles)$(thing)$(o)卓伟之作$()施放。",
"hexposition.page.food.title": "食物",
+ "hexcasting.action.hexposition:get_player_hunger": "饥饿之纯化",
+ "hexposition.page.get_player_hunger.summary": "返回$(item)玩家$()的饥饿值。使用半个饥饿值火腿作为单位。",
+ "hexcasting.action.hexposition:get_player_saturation": "耐力之纯化",
+ "hexposition.page.get_player_saturation.summary": "返回$(item)玩家$()的饱和度。这一数据大致与饱腹感的持续时间对应。",
"hexcasting.action.hexposition:edible": "可食性之纯化",
"hexposition.page.edible.summary": "接受一个物品标识,检验它是否可被我食用。",
"hexcasting.action.hexposition:get_hunger": "卡路里之纯化",
@@ -116,30 +132,30 @@
"hexcasting.action.hexposition:get_saturation": "饱和之纯化",
"hexposition.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
"hexcasting.action.hexposition:is_meat": "肉类之纯化",
- "hexposition.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类,也即狼能否食用。",
+ "hexposition.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类,也即$(item)狼$()能否食用。",
"hexcasting.action.hexposition:is_snack": "甜点之纯化",
- "hexposition.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食,也即可否迅速食用。",
+ "hexposition.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食。",
"hexposition.page.identifiers.title": "标识",
- "hexposition.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
+ "hexposition.page.identifiers.0": "标识 iota是自然对“$(hex)咒术$()如何指定类型”的解决方案。每一个实体类型、方块类型、状态效果类型、魔咒类型、声音类型等都拥有可被$(hex)咒术$()识别的唯一标识,此标识可获取,也可比较。",
"hexcasting.action.hexposition:identify": "侦探之纯化",
"hexposition.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
"hexcasting.action.hexposition:classify": "抵量之纯化",
"hexposition.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
"hexposition.page.item.title": "物品",
- "hexposition.page.item.0": "物品 iota 中含有的信息足以唯一确定一个物品组(奇怪的是,甚至还能表示物品的缺失)。不过此类 iota 有一个例外:代表某个包含物品 iota 的物品的物品 iota 中不会保留其所存有的 iota。物品 iota 的精细$(media)媒质$()结构在经多次抽象后即会消散殆尽。",
- "hexposition.page.item.1": "玩家具有智能,也似乎因此在常态操控$(media)媒质$()。这种$(media)媒质$()场会对外部的操作产生反应;在深入探知的情况下,这一反应通常相当剧烈。盔甲和手持物品等简单的物品可被探知,但对玩家物品栏内容物的深入分析不会起效。",
+ "hexposition.page.item.0": "物品 iota 中含有的信息几乎足以唯一确定一个物品组,且$(hex)咒术$()可通过它们查询其状态。不过此类 iota 有一个例外:如果某个物品内部存有物品 iota,则它的物品 iota 中不会保留存储内容。物品 iota 的精细$(media)媒质$()结构在经多次抽象后即会消散殆尽。",
+ "hexposition.page.item.1": "$(item)玩家$()具有智能,也似乎因此在常态操控$(media)媒质$()。这种$(media)媒质$()气场在大部分情况下保持惰性,但并非不会产生反应;在深入探知的情况下,这一反应通常相当剧烈。盔甲和手持物品等暴露于外界的物品可被探知,但对其物品栏的深入分析不会起效。$(br2)自然尊重界限。",
"hexcasting.action.hexposition:get_stack": "物品之纯化",
- "hexposition.page.get_stack.summary": "返回所给物品实体对应的物品。",
+ "hexposition.page.get_stack.summary": "返回所给$(item)物品$()实体对应的物品。",
"hexcasting.action.hexposition:create_stack": "献物之纯化",
- "hexposition.page.create_stack.summary": "由物品标识和物品数制造物品。",
+ "hexposition.page.create_stack.summary": "由物品标识和组内物品数制造物品。",
"hexcasting.action.hexposition:get_mainhand": "工具之纯化",
"hexposition.page.get_mainhand.summary": "返回实体主手的物品。",
"hexcasting.action.hexposition:get_offhand": "配件之纯化",
"hexposition.page.get_offhand.summary": "返回实体副手的物品。",
"hexcasting.action.hexposition:get_inventory": "矿车之纯化",
- "hexposition.page.get_inventory.summary": "返回实体装有的全部物品组成的列表;若实体无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。试图访问其他玩家的物品栏会招致事故。",
+ "hexposition.page.get_inventory.summary": "返回实体装有的全部物品组成的列表;若实体无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。试图访问其他$(item)玩家$()的物品栏会招致事故。",
"hexcasting.action.hexposition:get_block_inventory": "箱子之纯化",
"hexposition.page.get_block_inventory.summary": "返回容器装有的全部物品组成的列表;若方块无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。",
"hexcasting.action.hexposition:get_armor": "埃癸斯之纯化",
@@ -163,7 +179,7 @@
"hexposition.page.media.title": "媒质",
"hexcasting.action.hexposition:env_media": "媒质之精思",
- "hexposition.page.env_media.summary": "返回此次施放时可用的$(media)媒质$()的量。",
+ "hexposition.page.env_media.summary": "返回当前施放可用的$(media)媒质$()的量。",
"hexcasting.action.hexposition:get_media": "媒质之纯化",
"hexposition.page.get_media.summary": "返回物品中的,或生物含有的,或生物持有的,或特种$(media)媒质$()存储方块含有的$(media)媒质$()。",
"hexcasting.action.hexposition:media_max_stack": "潜能之纯化",
@@ -175,7 +191,7 @@
"hexcasting.action.hexposition:get_effects_item": "处方之纯化",
"hexposition.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
"hexcasting.action.hexposition:get_effect_category": "药性之纯化",
- "hexposition.page.get_effect_category.summary": "获取某效果对承受者造成效应“良性”与否。-1 为负面,0 为中性,1 为正面。",
+ "hexposition.page.get_effect_category.summary": "获取某效果对承受者造成的效应是“良性”与否。-1 为负面,0 为中性,1 为正面。",
"hexcasting.action.hexposition:get_effect_amplifier": "浓度之馏化",
"hexposition.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
"hexcasting.action.hexposition:get_effect_duration": "效除之馏化",
@@ -189,17 +205,17 @@
"hexcasting.action.hexposition:get_power": "电池之纯化",
"hexposition.page.get_power.summary": "返回给定位置的红石信号强度。",
"hexcasting.action.hexposition:get_comparator": "外设之纯化",
- "hexposition.page.get_comparator.summary": "返回比较器对准给定位置时会输出的红石信号强度。",
+ "hexposition.page.get_comparator.summary": "返回$(item)比较器$()对准给定位置时会输出的红石信号强度。",
"hexcasting.action.hexposition:get_day": "昼夜之精思",
"hexposition.page.get_day.summary": "返回当天时间的进程,返回值在 0(一天刚开始)到 1(一天要结束)之间。",
"hexcasting.action.hexposition:get_time": "时间之精思",
"hexposition.page.get_time.summary": "压入世界经过的时间,主要用来计时,不受睡觉等事件的影响。除以 20 后即为秒数。",
"hexcasting.action.hexposition:get_biome": "地理之纯化",
- "hexposition.page.get_biome.summary": "返回给定位置向量处生物群系的标识。",
+ "hexposition.page.get_biome.summary": "返回给定位置向量处生物群系类别的标识。",
"hexcasting.action.hexposition:get_dimension": "位面之精思",
"hexposition.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。",
"hexcasting.action.hexposition:get_moon": "月相之精思",
- "hexposition.page.get_moon.summary": "返回当前的月相,返回值为可见的月亮照亮区域的占比。",
+ "hexposition.page.get_moon.summary": "返回当前的月相,返回值为可见的$(item)月亮$()照亮区域的占比。",
"hexcasting.action.hexposition:get_einstein": "扭曲之精思",
- "hexposition.page.get_einstein.summary": "检验该维度是否遵守时间与空间的标准规则:$(item)指南针$()和$(item)钟$()能在其中运作。"
+ "hexposition.page.get_einstein.summary": "检验$(item)指南针$()和$(item)钟$()可否在此维度运作。"
}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
index dc3c6a24036e..de64fddcb6e0 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
@@ -36,40 +36,43 @@
"overevaluate.page.soroban_reset.summary": "Resets the soroban to 0.",
"overevaluate.page.metas.title": "Advanced Metaevaluation",
- "hexcasting.action.overevaluate:apep": "Apep's Gambit",
- "overevaluate.page.apep.0": "Scans across the first list using the _Hex in the second list.",
- "overevaluate.page.apep.1": "The first cast applies the _Hex on first and second iota. The top iota left after the cast (mishaps if none exist) is memorized. The next cast applies the _Hex on the last memorized iota and the third iota. Again, the top is memorized, and the process repeats with the fourth, fifth, sixth, etc... iota until the end of the first list. Finally, pushes all memorized iota to the stack in a list.$(br2)$(o)Euler did music too, you know$()",
"hexcasting.action.overevaluate:athena": "Athena's Gambit",
- "overevaluate.page.athena.0": "Like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() but mishaps simply stop the execution and continue the _Hex without incurring the effects of the mishap. Pushes whether it mishapped.",
+ "overevaluate.page.athena.summary": "Casts a list of patterns similar to $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() but allows for handling of mishaps.",
+ "overevaluate.page.athena.description": "If the provided pattern list mishaps while being cast, the remainder of the list will be skipped and the main _Hex continues without incurring the effects of the mishap. Pushes whether the pattern list mishapped.$(br2)Patterns documented on the next pages can request further information on the specific mishap.$(br2)$(o)Keep moving forward.$()",
"hexcasting.action.overevaluate:athena_print": "Athena's Revelation",
- "overevaluate.page.athena_print.0": "Prints the last mishap that was caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$().$(br2)$(o)Keep moving forward.$()",
+ "overevaluate.page.athena_print.summary": "Reveals to me the last mishap caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$() within this _Hex.",
+ "hexcasting.action.overevaluate:athena_log": "Athena's Reflection",
+ "overevaluate.page.athena_log.summary": "Pushes the last mishap caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$() as $(o)text$(). It requires $(l:https://modrinth.com/mod/moreiotas)$(thing)certain powers$() to be at play or this pattern simply produces meaninglessness.",
+ "hexcasting.action.overevaluate:apep": "Apep's Gambit",
+ "overevaluate.page.apep.summary": "Folds across the first list using the _Hex in the second list.",
+ "overevaluate.page.apep.description": "Starts with the first two elements of the list and casts the _Hex on them. Then, the top iota remaining after casting and the next element in the list are placed on the stack and casted upon, repeating until the entire list has been exhausted. The top iota after all that is finally pushed onto the stack.$(br2)$(o)Euler did music too, you know$()",
"hexcasting.action.overevaluate:tutu": "Tutu's Gambit",
- "overevaluate.page.tutu.0": "Does nothing.",
- "overevaluate.page.tutu.1": "This pattern seems useless but is helpful in conjunction with Charon's Gambit or Janus' Gambit as the \"other branch\". Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.$(br2)$(o)The only winning move is not to play.$()",
+ "overevaluate.page.tutu.summary": "Does nothing.",
+ "overevaluate.page.tutu.description": "This pattern seems useless but is helpful in conjunction with Charon's Gambit or Janus' Gambit as the \"other branch\". Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.$(br2)$(o)The only winning move is not to play.$()",
"hexcasting.action.overevaluate:janus": "Janus' Gambit",
- "overevaluate.page.janus.0": "Instantly terminates the _Hex regardless of current circumstances.",
- "overevaluate.page.janus.1": "It's useful to end a _Hex early once it has reached some desired state because it can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().$(br2)$(o)It is always important to know when something has reached its end.$()",
+ "overevaluate.page.janus.summary": "Instantly terminates the _Hex regardless of current circumstances.",
+ "overevaluate.page.janus.description": "It's useful to end a _Hex early once it has reached some desired state because it can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().$(br2)$(o)It is always important to know when something has reached its end.$()",
"hexcasting.action.overevaluate:maat": "Ma'at's Gambit",
- "overevaluate.page.maat.0": "Takes a boolean and any iota. If the boolean is false, mishaps and prints the iota.",
- "overevaluate.page.maat.1": "This pattern is useful in order to break out of _Hexes if certain programmed conditions are not met.$(br2)$(o)Order in the court.$()",
+ "overevaluate.page.maat.summary": "Takes a boolean and any iota. If the boolean is false, mishaps and prints the iota.",
+ "overevaluate.page.maat.description": "This pattern is useful in order to break out of _Hexes if certain programmed conditions are not met.$(br2)$(o)Order in the court.$()",
"special.overevaluate.nephthys": "Nephthys' Gambit: %s",
"hexcasting.action.overevaluate:nephthys": "Nephthys' Gambit",
"hexcasting.special.overevaluate:nephthys": "Nephthys' Gambit: %s",
- "overevaluate.page.nephthys.0": "Pops a pattern or pattern list and dives down an amount corresponding to the tail length to cast the pattern list. Useful for surgery-like operations.",
- "overevaluate.page.nephthys.1": "It's extremely versatile and I can mend almost any error in my stack using $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit$(), pushing iota after a dive, and transforming surfaced iota. It was named after a goddess of mourning and rivers, lending to how it buries/dives down into the stack.$(br2)$(o)... the unknowns of time travel... is akin to descending blindly into the depths of the freezing water and reappearing as an acorn.$()",
+ "overevaluate.page.nephthys.summary": "Pops a pattern or pattern list and dives down an amount corresponding to the tail length to cast the pattern list. Useful for surgery-like operations.",
+ "overevaluate.page.nephthys.description": "It's extremely versatile and I can mend almost any error in my stack using $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit$(), pushing iota after a dive, and transforming surfaced iota. It was named after a goddess of mourning and rivers, lending to how it buries/dives down into the stack.$(br2)$(o)... the unknowns of time travel... is akin to descending blindly into the depths of the freezing water and reappearing as an acorn.$()",
"hexcasting.action.overevaluate:atalanta": "Atalanta's Gambit",
- "overevaluate.page.atalanta.0": "Should only be run inside $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() or $(l:metaevals#overevaluate:sisyphus)$(action)Sisyphus' Gambit$(). Acts similarly to $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() except does not end the iterator, only skips the rest of the current iteration.",
- "overevaluate.page.atalanta.1": "This pattern can be useful to implement \"guard clauses\" for multiconditional loops. For example, after getting a list of entities, I may want to only target entities based on some large list of conditions. Rather than a mess of deeply nested conditionals, I can simply $(o)continue$() to the next iteration if any of the conditions fail, skipping the action.$(br2)$(o)You shall not pass!$()",
+ "overevaluate.page.atalanta.summary": "Should only be run inside $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() or $(l:metaevals#overevaluate:sisyphus)$(action)Sisyphus' Gambit$(). Acts similarly to $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() except does not end the iterator, only skips the rest of the current iteration.",
+ "overevaluate.page.atalanta.description": "This pattern can be useful to implement \"guard clauses\" for multiconditional loops. For example, after getting a list of entities, I may want to only target entities based on some large list of conditions. Rather than a mess of deeply nested conditionals, I can simply $(o)continue$() to the next iteration if any of the conditions fail, skipping the action.$(br2)$(o)You shall not pass!$()",
"hexcasting.action.overevaluate:castor": "Castor's Gambit",
- "overevaluate.page.castor.0": "Should only be run within a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$(). Details on the next page. Beware of triggering the Delve Too Deep mishap.",
- "overevaluate.page.castor.1": "This pattern pops an iota and schedules a new iteration of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to come right after the current one, with the popped iota being the top of the stack. It may be helpful to imagine it as the iota being added to the front of the list that I provided for $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to iterate over.$(br2)$(o)Do not go where the path may lead, go instead where there is no path... and leave a trail.$()",
+ "overevaluate.page.castor.summary": "Should only be run within a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$(). Details on the next page. Beware of triggering the Delve Too Deep mishap.",
+ "overevaluate.page.castor.description": "This pattern pops an iota and schedules a new iteration of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to come right after the current one, with the popped iota being the top of the stack. It may be helpful to imagine it as the iota being added to the front of the list that I provided for $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to iterate over.$(br2)$(o)Do not go where the path may lead, go instead where there is no path... and leave a trail.$()",
"hexcasting.action.overevaluate:pollux": "Pollux's Gambit",
- "overevaluate.page.pollux.0": "Sibling pattern to $(l:metaevals#overevaluate:castor)$(action)Castor's Gambit$(), this pattern schedules the additional iteration for the end instead. Carries the same risk of encountering the Delve Too Deep mishap.",
- "overevaluate.page.pollux.1": "Acts almost identically to its sibling pattern, but places the iteration at the end. I have read scrolls detailing techniques using these twin patterns called $(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)depth-first search$() and $(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)breadth-first search$().$(br2)$(o)Explore the surface before diving deep.$()",
+ "overevaluate.page.pollux.summary": "Sibling pattern to $(l:metaevals#overevaluate:castor)$(action)Castor's Gambit$(), this pattern schedules the additional iteration for the end instead. Carries the same risk of encountering the Delve Too Deep mishap.",
+ "overevaluate.page.pollux.description": "Acts almost identically to its sibling pattern, but places the iteration at the end. I have read scrolls detailing techniques using these twin patterns called $(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)depth-first search$() and $(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)breadth-first search$().$(br2)$(o)Explore the surface before diving deep.$()",
"hexcasting.action.overevaluate:sisyphus": "Sisyphus' Gambit",
- "overevaluate.page.sisyphus.0": "Takes a pattern list and casts it over and over forever until it encounters either a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() or a $(l:metaevals#overevaluate:janus)$(action)Janus' Gambit$().",
- "overevaluate.page.sisyphus.1": "While I have heard of self-producing _Hexes called $(o)quines$() used to make infinite loops, they can be slightly unwieldy to work with. This gambit simplifies that process by just repeatedly casting a list until it runs out of evaluations or encounters a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(). The $(l:patterns/readwrite#hexcasting:local)Ravenmind$() and stack are carried across iterations.$(br2)$(o)One always finds one's burden again... One must imagine Sisyphus happy.$()",
+ "overevaluate.page.sisyphus.summary": "Takes a pattern list and casts it over and over forever until it encounters either a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() or a $(l:metaevals#overevaluate:janus)$(action)Janus' Gambit$().",
+ "overevaluate.page.sisyphus.description": "While I have heard of self-producing _Hexes called $(o)quines$() used to make infinite loops, they can be slightly unwieldy to work with. This gambit simplifies that process by just repeatedly casting a list until it runs out of evaluations or encounters a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(). The $(l:patterns/readwrite#hexcasting:local)Ravenmind$() and stack are carried across iterations.$(br2)$(o)One always finds one's burden again... One must imagine Sisyphus happy.$()",
"hexcasting.action.overevaluate:themis": "Themis' Gambit",
- "overevaluate.page.themis.0": "Takes a list and a pattern or pattern list which is used to sort the list by casting over every iota similar to $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$().",
- "overevaluate.page.themis.1": "After each iteration, it demands a number at the top of the stack which will correspond to that iota. At the end of the gambit, a list is pushed with the iota sorted by that number in increasing order. The order of identically numbered iota are kept. If it encounters $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(), it will create a sorted list with only the iota it has come across.$(br2)$(o)Shuffling is the only thing which Nature cannot undo.$()"
+ "overevaluate.page.themis.summary": "Takes a list and a pattern or pattern list which is used to sort the list by casting over every iota similar to $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$().",
+ "overevaluate.page.themis.description": "After each iteration, it demands a number at the top of the stack which will correspond to that iota. At the end of the gambit, a list is pushed with the iota sorted by that number in increasing order. The order of identically numbered iota are kept. If it encounters $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(), it will create a sorted list with only the iota it has come across.$(br2)$(o)Shuffling is the only thing which Nature cannot undo.$()"
}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
index bfc99361ead7..276b30335e0e 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
@@ -36,40 +36,43 @@
"overevaluate.page.soroban_reset.summary": "将珠算计数器重置为 0。",
"overevaluate.page.metas.title": "高阶元运行",
- "hexcasting.action.overevaluate:apep": "阿佩普之策略",
- "overevaluate.page.apep.0": "用第二列表指定的$(hex)咒术$()扫描第一列表。",
- "overevaluate.page.apep.1": "第一次施放会将$(hex)咒术$()作用于第一和第二个 iota,并暂存施放后留在栈顶的 iota(如招致事故则无)。下一次施放作用于上一个暂存的 iota 和第三个 iota,同样暂存栈顶元素。此过程会依次序运行下去,直至穷尽第一列表。最后,将所有暂存的 iota 组为列表返回。$(br2)$(o)欧拉也玩过音乐。$()",
"hexcasting.action.overevaluate:athena": "雅典娜之策略",
- "overevaluate.page.athena.0": "运行方式类似$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$(),但会在遇到事故时继续施放$(hex)咒术$(),而不会带来事故本来的后果。返回其是否招致了事故。",
+ "overevaluate.page.athena.summary": "运行一个图案列表,方式类似$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$(),但能够处理事故。",
+ "overevaluate.page.athena.description": "如果所给图案列表在运行时出现事故,则会跳过触发点后方的列表内容,继续$(hex)咒术$()的主循环,不产生事故的效果。会返回图案列表是否招致了事故。$(br2)后页图案可进一步查询事故的信息。$(br2)$(o)勇往直前。$()",
"hexcasting.action.overevaluate:athena_print": "雅典娜之揭示",
- "overevaluate.page.athena_print.0": "打印$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。$(br2)$(o)勇往直前。$()",
+ "overevaluate.page.athena_print.summary": "揭示所处$(hex)咒术$()内$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。",
+ "hexcasting.action.overevaluate:athena_log": "雅典娜之精思",
+ "overevaluate.page.athena_log.summary": "以$(o)文本$()形式返回$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。此法术需要借助$(l:https://modrinth.com/mod/moreiotas)$(thing)特殊力量$(),否则就只会产出一团乱麻。",
+ "hexcasting.action.overevaluate:apep": "阿佩普之策略",
+ "overevaluate.page.apep.summary": "用第二列表指定的$(hex)咒术$()“折叠”/“fold”第一列表。",
+ "overevaluate.page.apep.description": "第一次施放会将$(hex)咒术$()作用于第一和第二个 iota,结果暂存于栈顶。下一次施放作用于第一次暂存的 iota 和原本的第三个 iota,同样暂存于栈顶元素。重复此过程,直至穷尽第一列表。最后,返回最后一次暂存的 iota。$(br2)$(o)欧拉也玩过音乐。$()",
"hexcasting.action.overevaluate:tutu": "图图之策略",
- "overevaluate.page.tutu.0": "什么都不会做。",
- "overevaluate.page.tutu.1": "此图案看上去可能没什么用,但它很适合作为卡戎之策略和雅努斯之策略的“另一分支”。运行此图案不会消耗执行深度和媒质,不会产生粒子,也不会对世界产生任何影响。$(br2)$(o)唯一的取胜之道就是不要参与。$()",
+ "overevaluate.page.tutu.summary": "什么都不会做。",
+ "overevaluate.page.tutu.description": "此图案看上去可能没什么用,但它很适合作为卡戎之策略和雅努斯之策略的“另一分支”。运行此图案不会消耗执行深度和媒质,不会产生粒子,也不会对世界产生任何影响。$(br2)$(o)唯一的取胜之道就是不要参与。$()",
"hexcasting.action.overevaluate:janus": "雅努斯之策略",
- "overevaluate.page.janus.0": "立即终止当前$(hex)咒术$(),无视所有限制。",
- "overevaluate.page.janus.1": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()、$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()、$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限。$(br2)$(o)咒术之将亡,其媒质也善。$()",
+ "overevaluate.page.janus.summary": "立即终止当前$(hex)咒术$(),无视所有限制。",
+ "overevaluate.page.janus.description": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()、$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()、$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限。$(br2)$(o)咒术之将亡,其媒质也善。$()",
"hexcasting.action.overevaluate:maat": "玛阿特之策略",
- "overevaluate.page.maat.0": "接受一个布尔值和任意 iota。若布尔值为 False,则产生事故并打印 iota。",
- "overevaluate.page.maat.1": "此图案很适合在某些条件未满足时跳出$(hex)咒术$()。$(br2)$(o)法庭内保持肃静。$()",
+ "overevaluate.page.maat.summary": "接受一个布尔值和任意 iota。若布尔值为 False,则产生事故并打印 iota。",
+ "overevaluate.page.maat.description": "此图案很适合在某些条件未满足时跳出$(hex)咒术$()。$(br2)$(o)法庭内保持肃静。$()",
"special.overevaluate.nephthys": "奈芙蒂斯之策略:%s",
"hexcasting.action.overevaluate:nephthys": "奈芙蒂斯之策略",
"hexcasting.special.overevaluate:nephthys": "奈芙蒂斯之策略:%s",
- "overevaluate.page.nephthys.0": "弹出一个图案或图案列表,在栈顶往下一定位置处施放所给图案或列表,向下的元素数即是图案尾部的长度。达成的效果与外科医师之提整类似。",
- "overevaluate.page.nephthys.1": "这个图案非常好用,与$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()配合几乎能处理栈中的所有问题,潜入栈中后压入 iota,再处理“栈顶”的 iota。这一操作的名字来源于哀悼和河流的女神,意指其“深埋”或“潜入”栈中的操作。$(br2)$(o)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()",
+ "overevaluate.page.nephthys.summary": "弹出一个图案或图案列表,在栈顶往下一定位置处施放所给图案或列表,向下的元素数即是图案尾部的长度。达成的效果与外科医师之提整类似。",
+ "overevaluate.page.nephthys.description": "这个图案非常好用,与$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()配合几乎能处理栈中的所有问题,潜入栈中后压入 iota,再处理“栈顶”的 iota。这一操作的名字来源于哀悼和河流的女神,意指其“深埋”或“潜入”栈中的操作。$(br2)$(o)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()",
"hexcasting.action.overevaluate:atalanta": "阿塔兰忒之策略",
- "overevaluate.page.atalanta.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()或$(l:metaevals#overevaluate:sisyphus)$(action)西西弗斯之策略$()内部使用。效果与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()类似,但不会完全停止迭代,而只是会跳过当前迭代剩余的部分。",
- "overevaluate.page.atalanta.1": "此图案常用作多重条件循环的“卫语句”。比如,在获取到实体列表后,可能只需根据一长串条件挑出一部分作为目标。使用此图案,即可避免造出层层嵌套的条件判断,而是在判断不通过时直接“$(o)continue$()”/“$(o)继续$()”到下一迭代,如此就无需执行本迭代内后续的语句了。$(br2)$(o)You shall not pass!$()",
+ "overevaluate.page.atalanta.summary": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()或$(l:metaevals#overevaluate:sisyphus)$(action)西西弗斯之策略$()内部使用。效果与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()类似,但不会完全停止迭代,而只是会跳过当前迭代剩余的部分。",
+ "overevaluate.page.atalanta.description": "此图案常用作多重条件循环的“卫语句”。比如,在获取到实体列表后,可能只需根据一长串条件挑出一部分作为目标。使用此图案,即可避免造出层层嵌套的条件判断,而是在判断不通过时直接“$(o)continue$()”/“$(o)继续$()”到下一迭代,如此就无需执行本迭代内后续的语句了。$(br2)$(o)You shall not pass!$()",
"hexcasting.action.overevaluate:castor": "卡斯托耳之策略",
- "overevaluate.page.castor.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()内部使用。详情见下一页。小心“钻研过深”事故。",
- "overevaluate.page.castor.1": "此图案会出栈一个 iota,并将其作为$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()的一个新迭代项,在当前迭代结束后立即开始。该迭代的栈顶元素即为所出栈的元素。想成把 iota 放到$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()所接受的迭代列表的开头,可能会更好理解。$(br2)$(o)不要永远沿着路走,而要走无路之处……并留下你的足迹。$()",
+ "overevaluate.page.castor.summary": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()内部使用。详情见下一页。小心“钻研过深”事故。",
+ "overevaluate.page.castor.description": "此图案会出栈一个 iota,并将其作为$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()的一个新迭代项,在当前迭代结束后立即开始。该迭代的栈顶元素即为所出栈的元素。想成把 iota 放到$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()所接受的迭代列表的开头,可能会更好理解。$(br2)$(o)不要永远沿着路走,而要走无路之处……并留下你的足迹。$()",
"hexcasting.action.overevaluate:pollux": "波吕克斯之策略",
- "overevaluate.page.pollux.0": "$(l:metaevals#overevaluate:castor)$(action)卡斯托耳之策略$()的兄弟图案,此图案会将新迭代置于所有迭代的末尾。同样有风险招致“钻研过深”事故。",
- "overevaluate.page.pollux.1": "效果与其兄弟图案基本一致,但新的迭代置于末尾。我曾阅读过详细记载使用这对图案的技术的卷轴,技术的名字是$(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)深度优先搜索$()和$(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)广度优先搜索$()。$(br2)$(o)深入之前应先探索表面。$()",
+ "overevaluate.page.pollux.summary": "$(l:metaevals#overevaluate:castor)$(action)卡斯托耳之策略$()的兄弟图案,此图案会将新迭代置于所有迭代的末尾。同样有风险招致“钻研过深”事故。",
+ "overevaluate.page.pollux.description": "效果与其兄弟图案基本一致,但新的迭代置于末尾。我曾阅读过详细记载使用这对图案的技术的卷轴,技术的名字是$(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)深度优先搜索$()和$(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)广度优先搜索$()。$(br2)$(o)深入之前应先探索表面。$()",
"hexcasting.action.overevaluate:sisyphus": "西西弗斯之策略",
- "overevaluate.page.sisyphus.0": "接受一个图案列表,并持续不断运行,直至遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()或$(l:metaevals#overevaluate:janus)$(action)雅努斯之策略$()。",
- "overevaluate.page.sisyphus.1": "我曾听过有些能够自我复制的$(hex)咒术$(),叫做“$(o)自产生程序$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()和栈会在迭代间保留。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()",
+ "overevaluate.page.sisyphus.summary": "接受一个图案列表,并持续不断运行,直至遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()或$(l:metaevals#overevaluate:janus)$(action)雅努斯之策略$()。",
+ "overevaluate.page.sisyphus.description": "我曾听过有些能够自我复制的$(hex)咒术$(),叫做“$(o)自产生程序$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()和栈会在迭代间保留。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()",
"hexcasting.action.overevaluate:themis": "忒弥斯之策略",
- "overevaluate.page.themis.0": "接受一个列表和一个图案列表,或一个列表与单个图案;在第一参数处运行第二参数,并排序结果,运行的过程与$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()类似。",
- "overevaluate.page.themis.1": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()"
+ "overevaluate.page.themis.summary": "接受一个列表和一个图案列表,或一个列表与单个图案;在第一参数处运行第二参数,并排序结果,运行的过程与$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()类似。",
+ "overevaluate.page.themis.description": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()"
}
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json b/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
index 1bcedbed5034..8fbdf3c934eb 100644
--- a/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
+++ b/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
@@ -69,6 +69,9 @@
"hexcasting.action.book.ephemera:getrider": "Equestrian Prfn.",
"hexcasting.action.ephemera:getmount": "Equestrian Purification II",
"hexcasting.action.book.ephemera:getmount": "Equestrian Prfn. II",
+ "hexcasting.action.ephemera:cancelflight": "Terminate Flight",
+ "hexcasting.action.ephemera:getflight/type": "Aviator's Purification II",
+ "hexcasting.action.ephemera:getflight/remaining": "Aviator's Purification III",
"hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
"hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
@@ -93,10 +96,12 @@
"ephemera.entry.hashing": "Iota Hashing",
"ephemera.entry.specialslates": "Modified Slates",
"ephemera.entry.metathoth": "Accumulator Manipulation",
+ "ephemera.entry.flight": "Additional Flight Patterns",
"ephemera.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
"ephemera.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
"ephemera.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
+
"ephemera.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
"ephemera.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
"ephemera.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
@@ -113,9 +118,16 @@
"ephemera.page.miscpatterns.14": "Accepts an entity, and returns a list of entities seated atop it.",
"ephemera.page.miscpatterns.15": "Accepts an entity, and returns the entity it is seated atop.",
+ "ephemera.page.flight.1": "I've often found the preexisting suite of flight-related patterns to be a bit lackluster. They work perfectly well if all you want to do is cast the spell and go, but they are not well-suited to doing anything more complex. These patterns should help with that.",
+ "ephemera.page.flight.2": "Cancels my current flight ability, at a cost of one tenth of an Amethyst Dust. Casting a new flight spell in the same instant allows me to continue flying, potentially with different parameters.",
+ "ephemera.page.flight.3": "Returns true if the target is under the effects of Anchorite's Flight, false if Wayfarer's Flight, null if neither.",
+ "ephemera.page.flight.4": "Returns how close the target is to the end of their flight spell, represented as either their distance to the boundary or how many seconds remain.",
+
"ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
"ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
+
"ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
+
"ephemera.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
"ephemera.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
"ephemera.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
@@ -127,11 +139,13 @@
"ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
"ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
"ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
+
"ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
"ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
"ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
"ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
"ephemera.page.magearmor.5": "This explanation assumes I am wearing no other armor, in practice the cost can be reduced to as little as 25%% of that formula's output if all but one of my armor slots is already occupied by more conventional armor.",
+
"ephemera.page.network.1": "I've devised a suite of patterns (plus a couple of blocks) to make links a bit more useful for things other than data transmission and media sharing.$(br2)Note that the patterns which fetch information about the network make no promises regarding whether returned linkables are within ambit.",
"ephemera.page.network.2": "Scans the link network connected to the input linkable up to a recursion depth equal to the input number (max 32), and returns a list of all connected linkables. Costs a negligible amount of media.",
"ephemera.page.network.3": "Accepts an entity to teleport, a linkable to use for access to its network, and a destination. If the entity is within 8 blocks of the linkable, and there is a network node within 4 blocks of the destination, the entity will be teleported. Cost varies based on what entity is teleported.",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 73a53e7f4818..0e5cb80aa357 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -18,10 +18,12 @@
"advancements.hexical.media_slurp.title": "Tripping",
"advancements.hexical.media_slurp.description": "\"You sense that something is off.\"",
+ "block.hexical.hex_candle_cake": "Hex Candle Cake",
"block.hexical.casting_carpet": "Casting Carpet",
"block.hexical.hex_candle": "Hex Candle",
"block.hexical.mage_block": "Mage Block",
"block.hexical.media_jar": "Media Jar",
+ "block.hexical.pedestal": "Pedestal",
"block.hexical.periwinkle": "Periwinkle",
"block.hexical.sentinel_bed": "Sentinel Bed",
"death.attack.magic_missile": "%1$s was struck with arcane force by %2$s",
@@ -51,17 +53,15 @@
"item.hexical.hextito": "Hextito",
"item.hexical.gauntlet_staff": "Gauntlet Staff",
"item.hexical.media_log.0": "Media Log",
- "item.hexical.media_log.1": "Eedia Log",
- "item.hexical.media_log.2": "Erdia Log",
- "item.hexical.media_log.3": "Erria Log",
- "item.hexical.media_log.4": "Erroa Log",
- "item.hexical.media_log.5": "Error Log",
- "item.hexical.media_log.6": "Mrror Log",
- "item.hexical.media_log.7": "Meror Log",
- "item.hexical.media_log.8": "Medor Log",
- "item.hexical.media_log.9": "Medir Log",
+ "item.hexical.media_log.1": "Error Log",
"item.hexical.lei": "Lei",
"item.hexical.lightning_rod_staff": "Lightning Rod Staff",
+ "item.hexical.plush_hexxy": "Hexxy",
+ "item.hexical.plush_irissy": "Irissy",
+ "item.hexical.plush_pentxxy": "Pentxxy",
+ "item.hexical.plush_quadxxy": "Quadxxy",
+ "item.hexical.plush_thothy": "Thothy",
+ "item.hexical.plush_flexxy": "Flexxy",
"item.hexical.scarab_beetle": "Scarab Beetle",
"item.hexical.tchotchke": "Tchotchke",
"item.minecraft.potion.effect.wooleyed": "Potion of Wooleyeing",
@@ -93,6 +93,7 @@
"tooltip.hexical.scroll_vanished": "Vanished",
"hexical.autograph.header": "Autographed by:",
+ "hexical.charmed": "Charmed",
"hexical.cracked.cracked": "Cracked",
"hexical.cracked.program": "Hex: ",
"hexical.grimoire.contains": "Contains bindings for ",
@@ -105,8 +106,8 @@
"hexcasting.mishap.bad_block.akashic_bookshelf": "an akashic bookshelf",
"hexcasting.mishap.bad_block.mage_block": "a mage block",
- "hexcasting.mishap.bad_block.prestidigitation": "a prestidigitation-sensitive block",
"hexcasting.mishap.bad_block.flower_spawnable": "air or a flower pot",
+ "hexcasting.mishap.bad_block.rotatable": "a block with direction",
"hexcasting.mishap.bad_block.solid_platform": "a solid platform",
"hexcasting.mishap.bad_item.animated_scroll": "an animated scroll",
"hexcasting.mishap.bad_item.anything": "any item",
@@ -118,17 +119,22 @@
"hexcasting.mishap.bad_item.hand_lamp": "a Hand Genie Lamp",
"hexcasting.mishap.bad_item.lamp": "a lamp",
"hexcasting.mishap.bad_item.mesh": "a mesh",
- "hexcasting.mishap.bad_item.prestidigitation": "a prestidigitation-sensitive entity",
"hexcasting.mishap.bad_item.scarab_beetle": "a scarab beetle",
"hexcasting.mishap.bad_item.smart_villager": "a Journeyman or greater level villager",
"hexcasting.mishap.bad_item.speck": "a speck",
"hexcasting.mishap.bad_item.specklike": "a specklike entity",
+ "hexcasting.mishap.bad_item.target.smelting": "an item able to be smelted in a furnace",
+ "hexcasting.mishap.bad_item.target.roasting": "an item able to be smelted in a campfire",
+ "hexcasting.mishap.bad_item.target.smoking": "an item able to be smelted in a smoker",
+ "hexcasting.mishap.bad_item.target.blasting": "an item able to be smelted in a blast furnace",
+ "hexcasting.mishap.bad_item.target.stonecutting": "an item able to be cut in a stonecutter",
"hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
"hexcasting.mishap.invalid_value.horizontal_axis_vector": "a horizontal axis vector",
"hexcasting.mishap.invalid_value.class.dye": "a dye",
"hexcasting.mishap.invalid_value.class.pigment": "a pigment",
"hexcasting.mishap.invalid_value.conjurable_flower_id": "an identifier of a conjurable flower type",
"hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
+ "hexcasting.mishap.invalid_value.lesser_sentinel_list": "a list of vectors",
"hexcasting.mishap.invalid_value.mesh_design": "a list of up to 32 vectors with magnitudes less than 10",
"hexcasting.mishap.invalid_value.nonempty_list": "a non-empty list",
"hexcasting.mishap.invalid_value.number_list": "a non-empty list of numbers",
@@ -141,9 +147,10 @@
"hexcasting.mishap.hexical:can_not_dye": "Expected a dyeable target",
"hexcasting.mishap.hexical:inedible": "Wristpocketed item is not edible.",
"hexcasting.mishap.hexical:magic_missile_coordinates": "Could not identify any form of spatial axis.",
- "hexcasting.mishap.hexical:needs_staff": "Expected to be cast by a staff.",
+ "hexcasting.mishap.hexical:needs_charmed_item": "Expected to be cast by a charmed item.",
"hexcasting.mishap.hexical:needs_lamp": "Expected to be cast by a genie.",
"hexcasting.mishap.hexical:needs_hand_lamp": "Expected to be cast by a hand genie.",
+ "hexcasting.mishap.hexical:needs_staff": "Expected to be cast by a staff.",
"hexcasting.mishap.hexical:outside_circle": "Spell exceeds the domain of the spell circle.",
"hexcasting.mishap.hexical:illegal_jailbreak": "Attempted to crack a casting device with a Hex in it.",
@@ -159,6 +166,7 @@
"hexcasting.action.book.hexical:get_hand_lamp_use_time": "Genie Refl.: Temporal",
"hexcasting.action.book.hexical:get_hand_lamp_media": "Genie Refl.: Media",
"hexcasting.action.book.hexical:get_hand_lamp_storage": "Genie Refl.: Memory",
+ "hexcasting.action.book.hexical:has_autograph": "Authenticator's Dstl.",
"hexcasting.action.book.hexical:serialize_pattern": "Chirographer's Purif.",
"hexcasting.action.book.hexical:deserialize_pattern": "Calligrapher's Purif.",
"hexcasting.action.book.hexical:shuffle_pattern": "Glyphmaker's Dstl.",
@@ -171,11 +179,6 @@
"hexcasting.action.book.hexical:modify_block_replaceable": "Replaceable",
"hexcasting.action.book.hexical:modify_block_volatile": "Volatile",
- "hexical.page.ungodly.title": "Horrible",
- "hexical.page.ungodly.0": "Of all the spells I have recorded, I have never met one as strange as this. $(o)How does someone even begin to draw this?$()",
- "hexcasting.action.hexical:ungodly": "Summon?",
- "hexical.page.ungodly.summary": "Judging by the pattern signature, I can only imagine that it summons something.",
-
"hexical.page.hexical_changes.title": "Hexical Changes",
"hexical.page.hexical_changes.0": "I feel strangely more in tune with the ambient _media around me. It feels $(o)friendlier$() somehow. I can even feel it rippling around me, responding to my actions, as if engaging with me. The _media also feels more malleable, more $(o)workable$(); I sense I am able to manipulate it into more precise and specific specialized effects. I can also bring up my $(item)Hex Notebook$() by pressing $(thing)$(k:hexical.open_hexbook).",
"hexical.page.hexical_changes.1": "I also find my tools more familiar. I don't require the same level of caution with my $(l:items/staff)$(item)Staff$() and can move around during casting, handy for chasing down targets that get out of my line of sight before I can finish my raycast. I shouldn't become too inattentive though, Nature has not become more forgiving of my miscalculations. I can also write directly into my $(l:items/abacus)$(item)Abacus$() with $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$().",
@@ -195,10 +198,10 @@
"hexical.page.index_grimoire.summary": "Gets a list of all patterns modified by the $(item)Grimoire$() in my offhand.",
"hexical.page.scarab.title": "Scarab Beetle",
- "hexical.page.scarab.0": "$(item)Scarab Beetles$() are adorable little amulets I can make. Once activated, their sensitivity to _media allows them to target and replace patterns that Nature has ignored. Specifically, patterns that have no meaning to Nature will be pushed to the stack for the $(item)Scarab$()'s judgement.$(br2)$(o)Whatever. Go my scarab.$()",
- "hexical.page.scarab.1": "I can teach my $(item)Scarab$() to process patterns in a way useful to me. For example, I can instruct it to execute a series of patterns when it encounter a given pattern to make $(o)new$() patterns that work seamlessly for only me, even in $(l:items/hexcasting)$(item)casting devices$().",
- "hexical.page.scarab.2": "$(item)Scarab Beetles$() can be taught a list of patterns using $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$(). They can not be read with the opposite $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(); they are sentient enough to resist mind reading but they do proudly display their _Hex. Their instructions can also not be overwritten; they must be $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)erased$() in order to give new directives.",
- "hexical.page.scarab.3": "I shall find these $(l:patterns/pattern_manipulation)patterns concerning the meta-manipulation of patterns$() useful should I want to implement more advanced processing. I could theoretically create entire families of patterns, similar to $(l:patterns/numbers)number literals$() and $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambits$() and have them work seamlessly in any $(l:items/staff)Staff$() or $(l:items/hexcasting)$(item)casting device$().",
+ "hexical.page.scarab.0": "A $(item)Scarab Beetle$() is an adorable little amulet that is highly sensitive to _media. When activated, they can intercept patterns rejected by Nature.$(br2)Specifically anything connected to my person casts a pattern that has no meaning to Nature, the scarab steps in and prevents the mishap.$(br2)$(o)Whatever. Go my scarab.$()",
+ "hexical.page.scarab.1": "I can instruct my scarab how to judge these \"illegal\" patterns and how to replace it with a different set of patterns instead. This allows me to make $(o)new$() patterns that work seamlessly for only me, even in $(l:items/hexcasting)$(item)casting devices$().",
+ "hexical.page.scarab.2": "Teaching them involves $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$() to teach a _Hex to them. While scarabs proudly display their learned _Hex, they resist mind-reading from $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(). Teaching them new instructions requires asking them to $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)forget$() first.$(br2)When an illegal pattern is cast, an active scarab will push the rejected pattern to the stack rather than allowing a mishap. It will then cast its learned _Hex before allowing the remainder of the original _Hex to continue.",
+ "hexical.page.scarab.3": "The power scarabs allow is to create my own patterns that will work seamlessly in my $(l:items/staff)$(item)Staff$() or $(l:items/hexcasting)$(item)casting devices$() I wield.$(br2)I shall find these patterns concerning the $(l:patterns/pattern_manipulation)meta-manipulation of patterns$() useful if I want to implement advanced processing. I could theoretically create entire infinite families of patterns, similar to the $(l:patterns/numbers)number literals$() and $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambits$().",
"hexical.page.animated_scroll.title": "Animated Scrolls",
"hexical.page.animated_scroll.0": "$(item)Animated Scrolls$() are mixed with a pinch of $(l:items/amethyst)$(item)Amethyst Dust$(), enchanting the ink to move and wiggle like the patterns I draw with my $(l:items/staff)$(item)Staff$(). Not only that, they can display lists of patterns.$(br2)$(o)You can't be a proper writer without a touch of madness, can you?$()",
@@ -247,15 +250,28 @@
"hexical.page.periwinkle.title": "Periwinkle",
"hexical.page.periwinkle.0": "There is an long-extinct family of flowers called $(item)Periwinkles$(). In addition to looking pretty, they have great calming abilities; ancient _Hexcasters used them to cope with the great horrors that comes with the Art.$(br2)$(o)A special flower for a special person.$()",
"hexcasting.action.hexical:periwinkle": "Periwinkle Reflection",
- "hexical.page.periwinkle.summary": "Fortunately all is not lost. I have found this identifier by a group of botanist _Hexcasters. I believe there may be a $(l:patterns/spells/simple_spells#hexical:flower)$(action)spell$() to allow me to bring back these flowers.",
+ "hexical.page.periwinkle.summary": "Fortunately all is not lost. I have found this identifier by a group of botanist _Hexcasters. I believe there may be a $(l:patterns/spells/hexical_spells#hexical:flower)$(action)spell$() to allow me to bring back these flowers.",
"hexical.page.lei.summary": "Once I have recovered some, I can craft the flowers into a $(item)Lei$()! The $(item)Lei$() gives a small boost to my _Hexcasting reach, not unlike a $(l:items/lens)$(item)Scrying Lens$() although without the same ability to perceive extra information.",
"hexical.page.lei.description": "When worn, it prevents Nature from claiming my life as payment for _Hexes.$(br2)Unlike other armor, a $(item)Lei$() can be placed on other players if they are not currently wearing anything! Ancient _Hexcasters did this as a sign of endearment and affection due to the $(item)Lei$()'s protective and calming abilities, as well as the rarity of obtaining the flowers.",
+ "hexical.page.plushies.title": "Plushies",
+ "hexical.page.plushies.0": "The ancient _Hexcasters have created these delightful $(item)Plushies$()! They seem to be references to some of the patterns I use in _Hexcasting. I'm not sure if they do anything, but they are a lovely little collector's item.$(br2)The occasional wandering merchant might have picked up one or two during their travels.",
+ "hexical.page.plushies.hexxy": "This one looks slightly deranged. I feel slightly anxious having it in my inventory.",
+ "hexical.page.plushies.thothy": "This one seems to sleeping. I feel strangely assured with it on me, as if it were watching over me.",
+ "hexical.page.plushies.irissy": "This one seems to stare directly at me no matter where I put it. What have you seen, great Irissy?",
+ "hexical.page.plushies.quadxxy": "This one might have been made by a bad craftsman. It's not even on a hexagonal grid!",
+ "hexical.page.plushies.pentxxy": "... I'm starting to think these were made intentionally.",
+ "hexical.page.plushies.flexxy": "The $(o)detail$() on this plushie is unnaturally good. Flexxy must have been quite the idol for this much effort to be poured into its effigy.",
+
"hexical.page.wooleyed_potion.title": "Potions of Wooleyeing",
"hexical.page.wooleyed_potion.0": "These $(item)Potions$() let me forget some of the eldritch knowledge _Hexcasting provides. A base dose removes my ability to trade my own life for _media, useful if I do not want to be carried off from a mere miscalculation. Higher potencies remove the ability to cast great spells entirely, possibly useful as an offensive tool.$(br2)$(o)It is unseen.$()",
"hexical.page.wooleyed_potion.header": "Potion of Wooleyeing",
"hexical.page.wooleyed_potion.1": "I can brew one by boiling a $(l:items/periwinkle)$(item)Periwinkle$() into a simple $(item)Awkward Potion$(). $(item)Glowstone Dust$() and $(item)Redstone Dust$() have their standard amplifying and lengthening effects, as with most potions.",
+ "hexical.page.pedestal.title": "Pedestals",
+ "hexical.page.pedestal.0": "A pedestal can keep an item suspended safely for me. Unlike an item frame or a chest though, my _Hexes can still interact with the item as though it were just dropped on the floor. An empty pedestal can pull items near it and it interacts with hoppers about how I would expect. It works even if the item is swapped out.",
+ "hexical.page.pedestal.1": "$(o)A pedestal is as much a prison as any small, confined space.$()",
+
"hexical.category.lamp": "Genie Lamp",
"hexical.category.lamp.desc": "I have heard some tales from the villagers about a magical artifact. The villagers say it contains a spirit that grants wishes, but I suspect that is just grand embellishment evolved over centuries of storytelling. However, legends must arise from something and this item must be exceptionally powerful, and so I dedicate this section to my pursuit and research of it.",
@@ -319,14 +335,18 @@
"hexical.page.lamp_pillows.title": "The Pillow",
"hexical.page.lamp_pillows.0": "It seems that $(l:lamp/arch_lamps)$(item)Archgenie Lamps$() inhibit the genie's ability to cast unless someone is actively grasping it, possibly to prevent the genie from applying _media as a form of attrition to wear down its prison. However I have never noted any behavior of the sort; perhaps it is just the paranoia that comes with the brilliance it takes to design such a marvellous device.",
- "hexical.page.simple_patterns.title": "Hexical Patterns",
- "hexcasting.action.hexical:garbage": "Garbage Reflection",
- "hexical.page.garbage.summary": "Pushes $(l:casting/influences)$(action)Garbage$() to my stack. I am unsure why I would ever want this pattern but it exists.",
+ "hexical.page.pedestal_circles.title": "Pedestals in Circles",
+ "hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)Pedestals$() have magical abilities!$(br2)If they are holding $(l:patterns/readwrite#hexcasting:write)$(item)an item that contains information$() and the $(l:greatwork/spellcircles)$(thing)spell circle$()'s wave passes over them as if they were a $(l:items/slate)$(item)Slate$(), they push the iota onto the stack. If the $(l:items/pedestals)$(thing)Pedestal$() happens to processed inside an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), the iota appears inside the constructed list.",
+ "hexical.page.pedestal_circles.1": "If placed directly on top of an $(l:greatwork/spellcircles)$(item)Impetus$() instead, the $(l:items/pedestals)$(item)Pedestal$() acts as the circle's $(o)other hand$(), useful for spells such as the $(l:patterns/spells/hexcasting)casting device crafting spells$(), $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge Item$(), and $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().$(br2)This includes $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$() and $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$(), allowing me to create $(l:greatwork/spellcircles)$(thing)spell circles$() to automatically fill in my $(l:items/focus)$(item)Foci$().",
"hexical.page.patterns.title": "Pattern Manipulation",
"hexical.page.patterns.0": "I have discovered a set of patterns that concern the construction and manipulation of other $(l:patterns/patterns_as_iotas)patterns$(). Strangely, they can be used to construct patterns that are $(o)impossible$() to draw with a $(l:items/staff)$(item)Staff$(), although fortunately I don't believe Nature has associated an effect with any of these \"illegal\" patterns. They can be considered free to use with my $(l:items/scarab)$(item)Scarab Beetle$().",
+ "hexcasting.action.hexical:shuffle_pattern": "Glyphmaker's Distillation",
+ "hexical.page.shuffle_pattern.summary": "Uses the number to shuffle the pattern into one of the same shape, but different stroke order. My notes hint that ancient _Hexcasters used this for some $(o)grand library$().",
"hexcasting.action.hexical:congruent": "Congruence Distillation",
- "hexical.page.congruent.summary": "Pushes whether two patterns have the same shape and orientation.",
+ "hexical.page.congruent.summary": "Pushes whether two patterns have the same shape, stroke order, and orientation.",
+ "hexcasting.action.hexical:similar": "Similarity Distillation",
+ "hexical.page.similar.summary": "Pushes whether two patterns have same shape but not necessarily the same stroke order.",
"hexcasting.action.hexical:serialize_pattern": "Chirographer's Purification",
"hexical.page.serialize_pattern.summary": "Turns a pattern into a list of numbers for my splitting, analysis, and dissection. The inverse of $(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)Calligrapher's Purification$().",
"hexcasting.action.hexical:deserialize_pattern": "Calligrapher's Purification",
@@ -335,18 +355,6 @@
"hexical.page.patterns.2": "These lists have multiple fascinating properties. By adding or subtracting constant values, I can rotate the pattern. I can splice off the beginning and ends to check for pattern prefixes and suffixes. In cyclical patterns, I can rotate the list by moving the first element to the end or vice versa to cycle the starting position. By carefully altering numbers with list manipulation, I can also make some kind of $(o)backwards stroke$().",
"hexcasting.action.hexical:draw_pattern": "Handwriting Distillation",
"hexical.page.draw_pattern.summary": "Takes a pattern and produces a normalized list of vectors. The z-component of these vectors is zero. I feel this may be useful for artistic _Hexes.",
- "hexcasting.action.hexical:shuffle_pattern": "Glyphmaker's Distillation",
- "hexical.page.shuffle_pattern.summary": "Uses the number to shuffle the pattern into one of the same shape, but different stroke order. My notes reveal that ancient _Hexcasters used this for some $(o)grand library$().",
-
- "hexical.page.special_raycasts.title": "Special Raycasts",
- "hexcasting.action.hexical:fluid_raycast": "Naval Distillation",
- "hexical.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
- "hexcasting.action.hexical:fluid_surface_raycast": "Lilypad Distillation",
- "hexical.page.fluid_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but targets only liquids, piercing through all other blocks.",
- "hexcasting.action.hexical:piercing_raycast": "Railgun Exaltation",
- "hexical.page.piercing_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
- "hexcasting.action.hexical:piercing_surface_raycast": "Laser Exaltation",
- "hexical.page.piercing_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
"hexical.page.telepathy.title": "Telepathy",
"hexical.page.telepathy": "_Media is the energy of thought and consequently, it can interact with thoughts as well. Unfortunately or perhaps fortunately for me, the minds of players are too resistant to be swayed by _Hexes and even the minds of villagers resist tampering. There is a notable exception though: my own mind is open to my own _media, allowing me to read my own intentions and write thoughts to myself.",
@@ -377,6 +385,11 @@
"hexcasting.action.hexical:sneaking": "Stealthy Reflection",
"hexical.page.sneaking.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:sneak)$(), or -1 if I am not.",
+ "hexical.page.horrible.title": "Horrible",
+ "hexical.page.horrible.0": "Of all the spells I have recorded in my exploration of ancient _Hexcasting, I have never seen one even remotely like this one. $(o)How does someone even begin to draw this?$()",
+ "hexcasting.action.hexical:horrible": "Summon?",
+ "hexical.page.horrible.summary": "Judging by the pattern signature, I can only imagine that it summons something.",
+
"hexical.page.akashic_conveniences.title": "Akashic Utilities",
"hexical.page.akashic_conveniences.0": "Being designed to be receptive to _media and store information, it should not surprise me that there are more conveniences than meets the eye. I can $(thing)$(k:use)$() or $(l:patterns/spells/prestidigitation)magically interact$() with a filled $(l:greatwork/akashiclib)$(item)Bookshelf$() to copy its iota onto my stack. I can also $(thing)$(k:use)$() with a $(l:items/scroll)$(item)Scroll$() to copy the pattern key onto it. There are also a set of patterns to read and write directly to a $(l:greatwork/akashiclib)$(item)Bookshelf$() within ambit for free.",
"hexcasting.action.hexical:key_shelf": "Librarian's Purification",
@@ -388,8 +401,32 @@
"hexcasting.action.hexical:clear_shelf": "Librarian's Gambit II",
"hexical.page.clear_shelf.summary": "Clears an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
+ "hexical.page.block_mimicry.title": "Block Mimicry",
+ "hexical.page.block_mimicry.0": "The Art of _Hexcasting is a versatile craft; I can use _media to simulate a lot of the actions that I rely on blocks to perform without requiring any physical infrastructure. With just my staff, I can $(l:patterns/spells/block_mimicry#hexical:stonecut)cut stone into stairs$(), $(l:patterns/spells/block_mimicry#hexical:dispense)launch arrows$(), and automate the $(l:patterns/spells/block_mimicry#hexical:hopper_in)push$() and $(l:patterns/spells/block_mimicry#hexical:hopper_out)pull$() of items into inventories.",
+ "hexical.page.block_mimicry.1": "Tales speak of ancient _Hexcasters that have set up entire magical factories without placing a single block.$(br2)$(o)And I need a bigger office, I need a bigger chair$(br)A bigger desk, a bigger staff$(br)A bigger hat to wear",
+ "hexcasting.action.hexical:dispense": "Dispense",
+ "hexical.page.dispense.summary": "Takes an item entity, a position, and an axis vector and dispenses the item. For most applications, costs about half of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.dispense.description": "More specifically, this spell acts as though a dispenser suddenly appears with the item loaded and fires the dispenser.$(br2)If this spell is used for any type of $(item)Arrow$(), the price increases to a full $(l:items/amethyst)$(item)Charged Amethyst$(). I wonder why Nature would have such an adverse reaction to this specific application. Perhaps I would be too powerful?$(br2)$(o)Upon request, I can also perform a hug.$()",
+ "hexcasting.action.hexical:smelt": "Cook",
+ "hexical.page.smelt.summary": "Takes an item entity and cooks it as if in a $(item)Furnace$(). Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() for every ten seconds that the $(item)Furnace$() would need to have been active.",
+ "hexcasting.action.hexical:roast": "Roast",
+ "hexical.page.roast.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Campfire$() instead. This has a much more limited set of possibilities; I am unsure why I would ever use this.",
+ "hexcasting.action.hexical:smoke": "Smoke",
+ "hexical.page.smoke.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Smoker$() instead, making it unable to process anything but foods but at a faster rate, making the spell cheaper.",
+ "hexcasting.action.hexical:blast": "Blast",
+ "hexical.page.blast.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Blast Furnace$() instead, making it unable to process anything but ores but at a faster rate, making the spell cheaper.",
+ "hexcasting.action.hexical:stonecut": "Cut Stone",
+ "hexical.page.stonecut.summary": "Takes an item entity and cuts the item into the shape of an item identifier. Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.stonecut.description": "The target item must be possible to carve from the source item in a $(item)Stonecutter$(). For instance, $(item)Stone$() can be cut into all manners of stairs, slabs, and walls.$(br2)$(o)I saw the angel in the marble and carved until I set him free.$()",
+ "hexcasting.action.hexical:hopper_in": "Deposit",
+ "hexical.page.hopper_in.summary": "Takes an item entity, an inventory location, and an axis vector. Inserts the item through that side if possible. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.hopper_in.description": "If the block is not an inventory, the block is full, or the item can not be inserted for any other reason, nothing happens. Items that overflow the inventory are simply left in the original item entity.$(br2)$(o)Upon request, I can also perform a hug.$()",
+ "hexcasting.action.hexical:hopper_out": "Withdraw",
+ "hexical.page.hopper_out.summary": "Takes a spawning vector, an inventory location, and an axis vector. Extracts a single item from that side into the location and pushes it. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.hopper_out.description": "If no item could be extracted, the spell pushes $(l:casting/influences)$(thing)Null$(). Only one item will be extracted at a time similar to a hopper.$(br2)$(o)Upon request, I can also perform a hug.$()",
+
"hexical.page.mage_block.title": "Mage Blocks",
- "hexical.page.mage_block": "The blocks from $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjure Block$() last forever, are consequently a pain to clean up, and are not too versatile. Luckily, Nature offers an elegant and flexible alternative. These mage blocks come with a suite of $(o)modifiers$(). I could even stack multiple modifiers on one block or reapply a modifier to toggle it off.",
+ "hexical.page.mage_block.0": "The blocks from $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjure Block$() last forever, are consequently a pain to clean up, and are not too versatile. Luckily, Nature offers an elegant and flexible alternative. These mage blocks come with a suite of $(o)modifiers$(). I could even stack multiple modifiers on one block or reapply a modifier to toggle it off.",
"hexcasting.action.hexical:conjure_mage_block": "Conjure Mage Block",
"hexical.page.conjure_mage_block.summary": "Conjures a mage block at the location. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().$(br2)$(o)I can create a city out of nothing, or I can cover it in volcanic rock.$()",
"hexcasting.action.hexical:modify_block_bouncy": "Modify Block: Bouncy",
@@ -405,6 +442,24 @@
"hexcasting.action.hexical:modify_block_volatile": "Modify Block: Volatile",
"hexical.page.modify_block_volatile.summary": "This modifier makes the block break other mage blocks it's touching. Notably, if it breaks another volatile block, that block breaks and so on until every volatile block shatters.",
+ "hexical.page.rotation.title": "Rotation",
+ "hexical.page.rotation.0": "Rotation is done via with stationary teleportation at a different orientation. The sudden perspective change is already highly disorienting; the floor leaving your feet only to be shoved back onto it again is more so.$(br2)For this reason, Nature abhors entity rotation... or perhaps it trivializes Nature's carefully constructed schemes.",
+ "hexcasting.action.hexical:rotate_block": "Rotate Block",
+ "hexical.page.rotate_block.summary": "Rotates a block to face a certain vector direction. Requires a rotatable block. Costs about an eighth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexcasting.action.hexical:rotate_entity": "Rotate Entity",
+ "hexical.page.rotate_entity.summary": "Rotates an entity by a given change in pitch and yaw, expressed in units of full circles.",
+ "hexical.page.rotate_entity.description": "Nature seems to be against entity rotation. Rather than a straightforward vector, Nature demands measurements in fractions of full circles by which to turn horizontally and vertically.$(br2)The cost is strange and multilayered too. Free if cast on myself, about half of an $(l:items/amethyst)$(item)Amethyst Dust$() for other entities, and the natural aura of _media surrounding a player elevates the cost to about a whole $(l:items/amethyst)$(item)Charged Amethyst$().",
+
+ "hexical.page.autographs.title": "Autographs",
+ "hexical.page.autographs.0": "Using precise manipulation of _media, I can magically $(o)etch$() my signature onto any item! It must be done with my $(l:items/staff)$(item)Staff$() as proof of intentionality.$(br2)An autographed item proudly displays every autographer's name in shimmering $(l:items/pigments)$(item)Pigment$().$(br2)$(o)I disagree strongly with whatever work this quote is attached to.$()",
+ "hexcasting.action.hexical:autograph": "Autograph",
+ "hexical.page.autograph.summary": "Autographs the item in my offhand with my name and $(l:items/pigments)$(item)Pigment$(). Autographing an item with my name already on it moves my name to the top of the list.",
+ "hexical.page.autographs.1": "Because an autograph is strongly imprinted on an item, $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() is insufficient to remove it; a specialized spell is required to extripate autographs.$(br2)However, a spell capable of doing by its very nature will also destroy a $(l:items/focus)$(item)Focus$()'s contents or a $(l:items/hexcasting)$(item)casting device$()'s _Hex and _media. Perhaps that is for the better—my autographed _Hexcasting gifts can be uniquely assured to be untampered.",
+ "hexcasting.action.hexical:unautograph": "Unautograph",
+ "hexical.page.unautograph.summary": "A more destructive form of $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$(), capable of burning off autographs. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() similar to $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().",
+ "hexcasting.action.hexical:has_autograph": "Authenticator's Distillation",
+ "hexical.page.has_autograph.summary": "Pushes whether a given player has signed a given item stack.",
+
"hexical.page.dyes.title": "Dyes",
"hexical.page.dyes.0": "The dye spell and its specialized iota allows me to alter the color of blocks and entities. The dye iota represents a color, but also seems to represent the $(o)potential$() to be colored. For example, attempting to get the dye of grass returns $(l:casting/influences)$(thing)Null$() but getting the dye of undyed terracotta returns $(thing)uncolored$(), which I can use to \"bleach\" dyeable blocks.",
"hexcasting.action.hexical:get_dye": "Chromatic Purification",
@@ -416,7 +471,7 @@
"hexical.page.translate_dye.summary": "Translates a dye color into a vector, where each component is from 0 to 1 and represents the red, green, and blueness of the dye respectively.",
"hexical.page.pigments.title": "Pigment Manipulation",
- "hexical.page.pigments.0": "Like how I can manipulate dyes with patterns, I can also manipulate pigments. I can even store multiple of them and have my hexes randomly choose one to give me for example.",
+ "hexical.page.pigments.0": "Like how I can manipulate $(l:patterns/spells/dyes)dyes$() with _Hexcasting, I can also manipulate pigments. I can even store multiple of them and have my _Hexes randomly choose one to give me for example.",
"hexcasting.action.hexical:to_pigment": "Pigment Purification",
"hexical.page.to_pigment.summary": "Takes a colored dye iota and transforms it into a pigment, takes a player and returns their pigment, or takes an item containing a pigment and returns its pigment.",
"hexcasting.action.hexical:sample_pigment": "Pigment Exaltation",
@@ -427,25 +482,21 @@
"hexcasting.action.hexical:magic_missile": "Magic Missile",
"hexical.page.magic_missile.summary": "Conjures a small silver of amethyst that always deals a full heart of damage and forces the target backwards. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.magic_missile.0": "The projectile has a few interesting properties. It automatically disappears after roughly ten seconds or shatters upon hitting an entity or block. It pierces all forms of armor and protection. It is also unaffected by gravity and water drag.$(br2)$(o)A weak but enchanting sparkling projectile.$()",
- "hexical.page.magic_missile.1": "The first vector is conjuration location and is quite esoteric: no wonder most _Hexcasters conjure it in front of them. The basic gist is a vector, where my head's position is the origin, $(l:patterns/basics#hexcasting:get_entity_look)$(action)my facing$() is the Z+ axis, $(l:patterns/great_spells/greater_blink#hexical:theodolite)$(action)the vector pointing up from my head$() is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
+ "hexical.page.magic_missile.1": "The first vector is conjuration location and is quite esoteric: no wonder most _Hexcasters conjure it in front of them. The basic gist is a vector, where my head's position is the origin, $(l:patterns/basics#hexcasting:get_entity_look)$(action)my facing$() is the Z+ axis, $(l:patterns/scrying/entities#hexposition:theodolite)$(action)the vector pointing up from my head$() is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
"hexical.page.magic_missile.2": "The second vector is velocity and thankfully much less complicated. It is a simple offset vector, similar to the one that $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() takes in. Unlike $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() though, this vector can be of arbitrary magnitude without incurring additional costs.$(br2)Unlike $(item)Arrows$() though, $(item)Magic Missiles$() will not increase in damage simply by travelling faster. They also apply an odd knockback effect that ignores the entity's mass or the projectile's speed.",
"hexcasting.action.hexical:prestidigitation": "Prestidigitation",
- "hexical.page.prestidigitation.summary": "Causes a small magical effect on the block or entity, usually not too distinct from the original nature or function of the block or entity. Costs about a tenth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.prestidigitation.0": "This spell differs from all others I've seen. Rather than a single specific effect, this spell seems to combine dozens of small effects into a single spell. It targets a vast array of blocks and entities, and I am constantly finding uses for it. I have documented them on the following pages. I can think of it as general basic magic tricks.",
- "hexcasting.action.hexical:can_prestidigitate": "Alteration Purification",
- "hexical.page.can_prestidigitate.summary": "Pushes whether an entity or location is able to be manipulated with Prestidigitation.",
- "hexical.page.prestidigitation.1": "I've compiled all of its recorded uses from my notes: opens and close fence gates, trapdoors, and doors of all materials; flicks levers and presses buttons; holds down and releases pressure plates; extinguishes fire and soul fire; lights and extinguishes candles and campfires; rings bells; strips wood; carves pumpkins; makes a note block play its sound; triggers dispensers and droppers; dries mud into clay; turns most soil blocks into path blocks and path blocks into tilled soil...",
- "hexical.page.prestidigitation.2": "toggles Redstone lamps; drain cauldrons; modifies the state of Redstone repeaters, comparators, and daylight sensors, ignites and deprimes TNT and creepers; shear sheep; give and take arms from armor stands; makes squid squirt ink; makes pandas sneeze; removes the helmet of a snow golem; make pufferfish instantly swell up; take honeycomb from beehives and nests, and activates some kind of \"great work\" whatever that is.",
+ "hexical.page.prestidigitation.0": "Rather than a specific effect, this spell performs dozens of minor magical feats. It interacts with a vast array of blocks and entities, and I always discovering new applications for it.$(br2)Notes simply describes it as \"do magic\"; the general rule of thumb is any small effect a wizard can effortlessly will into existence, this spell can replicate.",
+ "hexical.page.prestidigitation.summary": "Causes a small magical effect, not too distinct from the original nature or function of the target. Costs about a tenth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.prestidigitation.1": "I've compiled all of its recorded uses but there is no guarantee all have been found: opens and closes fence gates, trapdoors, and doors of any materials; flicks levers and presses buttons; holds down and releases pressure plates; extinguishes fires of all kinds; lights and extinguishes candles, candle cakes, and campfires; ignites soul fire on blocks that support it; rings bells; strips wood; carves pumpkins; makes a note block play its sound; dries mud into clay; toggles Redstone lamps;",
+ "hexical.page.prestidigitation.2": "triggers dispensers and droppers; turns most soil blocks into path blocks and path blocks into tilled soil; drain cauldrons; modifies the state of Redstone repeaters, comparators, and daylight sensors; ignites and deprimes TNT and creepers; shears sheep; toggles armor stand arms; squirts squid; makes pandas sneeze; removes the helmet of a snow golem; inflates pufferfish; takes honeycomb from beehives and nests, and activates some grand _Hexcasting work.",
"hexical.page.wristpocket.title": "Wristpocket",
"hexical.page.wristpocket.0": "I can perform the standard magic trick of vanishing an item and bringing it back. The item hides in the $(o)wristpocket$(), where I can use _media to manipulate it. The wristpocketed item stays with me even after death and I can recall it once I can cast again.$(br2)$(o)Because making something disappear isn't enough; you have to bring it back.$()",
"hexcasting.action.hexical:wristpocket": "Wristpocket",
"hexical.page.wristpocket.summary": "This spell vanishes the stack of items in my other hand, or conjures it back, swapping if my other hand is holding something. Costs about a eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcasting.action.hexical:wristpocket_item": "Pocket Reflection",
- "hexical.page.wristpocket_item.summary": "Returns the identifier of the item in my wristpocket, or $(l:casting/influences)$(thing)Null$() if it is empty.",
- "hexcasting.action.hexical:wristpocket_count": "Pocket Reflection II",
- "hexical.page.wristpocket_count.summary": "Returns how many items I have in my wristpocket, or 0 if it is empty.",
+ "hexcasting.action.hexical:wristpocket_item": "Wristpocket Reflection",
+ "hexical.page.wristpocket_item.summary": "Returns the item in my wristpocket, or $(l:casting/influences)$(thing)Null$() if it is empty.",
"hexcasting.action.hexical:sleight": "Sleight",
"hexical.page.sleight.summary": "Performs an act of magical sleight of hand to steal items into my wristpocket or expel my wristpocket back into the world. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.sleight.0": "If given a vector, it conjures my wristpocketed item at that vector. If given an item entity, my wristpocket either pulls in or swaps with the item, depending on whether it is empty.$(br2)$(o)If your sleight of hand causes you to break eye contact with your audience, it is too advanced for your skill level.$()",
@@ -481,7 +532,19 @@
"hexcasting.action.hexical:zone_specklike": "Zone Distillation: Speck",
"hexical.page.zone_specklike.summary": "Returns specks similarly to other $(l:patterns/entities#hexcasting:zone_entity/animal)zone distillation$() patterns.",
- "hexical.page.simple_spells.title": "Hexical Spells",
+ "hexical.page.projectiles.title": "Projectiles",
+ "hexical.page.projectiles.0": "While conjuring projectiles from pure _media manipulation would be prohibitively expensive, Nature offers a set of cheaper spells for some projectiles.$(br2)These spells push the conjured entity to the stack, which I must manually $(l:patterns/spells/basic#hexcasting:add_motion)$(action)propel$() in my desired direction.$(br2)$(o)Can I offer you a nice egg in this trying time?$()",
+ "hexcasting.action.hexical:egg": "Conjure Egg",
+ "hexical.page.egg.summary": "Conjures an egg. May be fertile. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexcasting.action.hexical:llama_spit": "Conjure Spit",
+ "hexical.page.llama_spit.summary": "Conjures a sticky low-damaging projectile. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexcasting.action.hexical:snowball": "Conjure Snowball",
+ "hexical.page.snowball.summary": "Conjures a harmless snowball. Costs about half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexcasting.action.hexical:ghast_fireball": "Conjure Fireball",
+ "hexical.page.ghast_fireball.summary": "Conjures an explosive fireball that can be $(o)percussively propelled$(). Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.projectiles.1": "There exist other spells too complex to be given justice in this chapter—I have dedicated other chapters to them.$(br2)$(l:patterns/spells/magic_missile#hexical:magic_missile)$(action)Magic Missile$() is a standard quick and versatile spear of amethyst that can be produced and fired at arbitrary speed.$(br2)I can also utilize $(l:patterns/spells/pyrotechnics)fireworks$() for battle.$(br2)Finally, a $(l:patterns/spells/block_mimicry#hexical:dispense)$(action)certain spell$() allows the ability to fire potions and arrows.",
+
+ "hexical.page.hexical_spells.title": "Hexical Spells",
"hexcasting.action.hexical:confetti": "Confetti",
"hexical.page.confetti.summary": "Creates a loud bang similar to that of $(l:patterns/spells/pyrotechnics)Fireworks$() and a burst of colorful particles, either in a direction or in a radial blast. Costs about half of one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.confetti.description": "The particles are harmless and flutter through the air for quite long until they reach the ground. The first vector is a position and the second controls direction. If it is a number, it indicates speed to explode in in all directions; a vector makes the particles tend towards the given direction. Both the number and the vector's magnitude may not exceed 2.$(br2)$(o)The rest is confetti.$()",
@@ -491,48 +554,24 @@
"hexcasting.action.hexical:block_ping": "Ping Block",
"hexical.page.block_ping.summary": "Concentrates a little cube of _media to be visible to the naked eye, useful for highlighting things to me and those around me. Costs a negligible amount of _media.",
"hexical.page.block_ping.description": "The first vector controls position and the second vector controls color. Each component should range from 0 to 1 and corresponds to red, green, and blueness respectively. The final number dictates how long the ping should remain in twentieths of a second, up to ten seconds.$(br2)$(o)LOOK AT THIS$()",
- "hexcasting.action.hexical:stonecut": "Cut Stone",
- "hexical.page.stonecut.summary": "Takes an item entity and a target item identifier, and cuts the item into the shape of the target. Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.stonecut.description": "The target item must be one that is possible to make from the item entity in a stone-cutter.$(br2)$(o)I saw the angel in the marble and carved until I set him free.$()",
"hexcasting.action.hexical:crack_device": "Crack Device",
"hexical.page.crack_device.summary": "When casted on a $(l:items/hexcasting)$(item)casting device$() without a _Hex, $(o)cracks it$(). Cracked casting devices proudly display their _Hexes. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$().",
"hexical.page.crack_device.description": "This spell will blind me for a quite a duration if I attempt to expose the innerworkings of an already-written device. For a moment though, I believe I had glimpsed the _Hex before my eyes and brain filled with _media.$(br2)$(o)Nowadays time runs by electricity and vibrating crystals of quarts and goodness know what else.$().$(br)- clearly a reference to $(l:items/amethyst)$(item)Amethyst$().",
"hexcasting.action.hexical:place_block_type": "Construct",
"hexical.page.place_block_type.summary": "Places a specific type of block from my inventory at a position, orientation, and horizontal orientation. Costs about one-fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.place_block_type.description": "The orientation is an axis vector representing the direction I would face when placing the block. For blocks like doors and stairs, orientation should be either up or down and horizontal orientation determines direction.$(br2)$(o)In the psychology of the modern civilized human being, it is difficult to overstate the significance of the house.$()",
- "hexcasting.action.hexical:autograph": "Autograph",
- "hexical.page.autograph.summary": "Autographs the item in my offhand with my name and $(l:items/pigments)$(item)Pigment$(). Free and can only be done with my $(item)$(l:items/staff)Staff$(), as a proof of care.",
- "hexical.page.autograph.description": "An autographed item holds a list of the names people who have casted this spell on it, in order and in shimmering $(l:items/pigments)$(item)pigmented$() text. It becomes unstackable with other items of the same type and uneraseable by $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)normal means$(). If the same person signs it multiple times, their name shifts to the bottom. It may be used as a secure method of ensuring an item was approved of by a person.$(br2)$(o)I disagree strongly with whatever work this quote is attached to.$()",
- "hexcasting.action.hexical:unautograph": "Unautograph",
- "hexical.page.unautograph.summary": "A more specialized form of $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$(), capable of scrubbing off autographs. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() similar to $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().",
- "hexical.page.unautograph.description": "While autographs are quite strongly burned into the item's _media, this spell is still capable of $(o)shaving$() off the engraving. However, the effort of it will also destroy a $(l:items/focus)$(item)Focus$()'s contents or a $(l:items/hexcasting)$(item)casting device$()'s _Hex and _media. Perhaps that is for the better; my autographed _Hexcasting gifts can be uniquely assured to be untampered by the presence of an autograph.",
"hexcasting.action.hexical:flower": "Conjure Flower",
"hexical.page.flower.summary": "Conjures a flower of my choosing at a location. I must have identified this flower at some point before. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.flower.description": "The block under the target position must have a flat top surface to allow rooting. It does not necessarily need to be able to support the flower naturally, although any little movement may cause the flower to break if conjured on an incompatible block. Alternatively, the spell will fill a flower pot if possible.$(br2)$(o)There was a fool who praised me for the magic I acquired. That's all.$()",
"hexcasting.action.hexical:light": "Illuminate",
"hexical.page.light.summary": "Conjures a completely invisible light with illumination strength of my choosing at a location. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.light.description": "The block that it is into must be empty or extremely weak. The illumination strength can be a number between 1 and 15, inclusive. If I target a space where a light already exists, the spell is free and particleless.$(br2)$(o)The light blinds us. It is only in the dark that we see clearly.$()",
- "hexcasting.action.hexical:snowball": "Conjure Snowball",
- "hexical.page.snowball.summary": "Conjures a harmless snowball and leaves an entity reference at the top of the stack. Costs about half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.snowball.description": "The conjured snowball will simply fall down if not modified by _Hexes so I must use $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() to aim it.$(br2)$(o)The older I get, the greater power I seem to have to help the world; I am like a snowball - the further I am rolled the more I gain.$()",
- "hexcasting.action.hexical:ghast_fireball": "Conjure Fireball",
- "hexical.page.ghast_fireball.summary": "Conjures an explosive fireball that can be punched and damages blocks and leaves an entity reference at the top of the stack. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.ghast_fireball.description": "The conjured fireball simply hangs in the air. It must be propelled via punching it or $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$(). It can also be deflected via similar methods.$(br2)$(o)A fiery, explosive projectile.$()",
- "hexcasting.action.hexical:egg": "Egg",
- "hexical.page.egg.summary": "Conjures an egg. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.egg.description": "The egg does not have any velocity of its own when conjured and moves only due to gravity unless affected by $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$().$(br2)$(o)I wonder if there's anything inside?$()",
- "hexcasting.action.hexical:llama_spit": "Spit",
- "hexical.page.llama_spit.summary": "Conjures a sticky low-damaging projectile. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.llama_spit.description": "The projectile does not have any velocity of its own when conjured and moves only due to gravity unless affected by $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$(). Its damage is negligible and likely unsuited for any combat but it is cheap...$(br2)$(o)A projectile that explodes into a sticky mess.$()",
"hexcasting.action.hexical:gasp": "Gasp",
"hexical.page.gasp.summary": "Instantly replenishes a creature's air bubbles. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.gasp.description": "Regardless of amount of breath restored, this spell costs exactly one dust so I should ideally wait as long as I safely can before casting this spell. I will find it useful while diving, being teleported into a block, or even keeping sea creatures alive on land.$(br2)$(o)The best way to observe a fish is to become a fish.$()",
"hexcasting.action.hexical:parrot": "Squawk",
"hexical.page.parrot.summary": "Emits a sound associated with a mob near a location, as though a parrot had imitated that mob. Costs about a half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.parrot.description": "This spell does nothing but still consumes my _media if a parrot can not replicate the sound.$(br2)I can already imagine this spell's use for playing practical jokes on my friends and enemies. Perhaps Nature does permit me to have fun occasionally with my _Hexes, creating such a cheap spell begging to be used for jokes.$(br2)$(o)Hisss...$()",
- "hexcasting.action.hexical:myodesopsia": "Myodesopsia",
- "hexical.page.myodesopsia.summary": "Conjures a swirl of patterns around me that I and nearby players can see, using the patterns from the list. Free.",
- "hexical.page.myodesopsia.description": "These patterns are similar to the \"floaters\" that appear when I cast using other methods. I can imagine this spell as conjuring what would have appeared had I casted the list. Interestingly, each pattern shows up exactly once no matter how many times it appears in the list.",
+ "hexical.page.parrot.description": "This spell does nothing but still consumes my _media if a parrot can not replicate the sound.$(br2)I can already imagine this spell's use for playing practical jokes on my friends and enemies. Perhaps Nature does permit me to have fun occasionally with my _Hexes.$(br2)$(o)Hisss...$()",
"hexical.page.meta_effects.title": "Hexcasting Effects",
"hexcasting.action.hexical:effect_clouding": "Foggy Sky's Nadir",
@@ -561,15 +600,8 @@
"hexical.page.spike.1": "Each spike takes about a half second to strike and deal a hefty three full hearts of damage before slowly sinking back into the ground. If I cast this spell where a spike has not yet disappeared, it will do nothing. Spikes will also throw back targets in the direction they were conjured.",
"hexical.page.tchotchke.title": "Tchotchkes",
- "hexical.page.tchotchke.0": "$(item)Tchotchkes$() are not unlike $(l:items/hexcasting)$(item)Cyphers$(). They have an internal media reservior and break when they run out, unable to take from my inventory. They can not be recharged or reprogrammed, and $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() simply destroys it. Its advantages lay in its conjurability and $(o)input interception$().",
- "hexical.page.tchotchke.1": "When I $(thing)$(k:attack)$() or $(thing)$(k:use)$() while holding a $(item)Tchotchke$(), it intercepts my input, preventing me from interacting with the world. It then casts the _Hex I gave it, starting the stack with either false or true, corresponding to $(thing)$(k:attack)$() or $(thing)$(k:use)$() respectively.",
"hexcasting.action.hexical:conjure_tchotchke": "Conjure Tchotchke",
- "hexical.page.conjure_tchotchke.summary": "Conjures a $(item)Tchotchke$() at the location with the amount of _media and _Hex. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$() and the _media used for the battery.",
- "hexical.page.tchotchke.2": "I find ancient _Hexcasters to be quite fond of these due to their versatility and the ability to conjure them as needed. Tchotchkes also feature an iota storage that can only be edited from the tchotchke itself, allowing each tchotchke to essentially act as a fully-contained magical trinket.$(br2)$(o)Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.$()",
- "hexcasting.action.hexical:write_tchotchke": "Tchotchke Gambit",
- "hexical.page.write_tchotchke.summary": "Writes an iota to the $(item)Tchotchke's$() inner iota storage, which can be read back on future casts. Subject to the Transgress Others mishap and unreadable from any external source.",
- "hexcasting.action.hexical:read_tchotchke": "Tchotchke Reflection",
- "hexical.page.read_tchotchke.summary": "Pushes the iota from the $(item)Tchotchke's$() inner iota storage.",
+ "hexical.page.conjure_tchotchke.summary": "Conjures a $(item)Tchotchke$() at the location with the amount of _media. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$() and the _media used for the battery.",
"hexical.page.circle_spells.title": "Circle Spells",
"hexical.page.circle_spells.0": "When the _media courses through the boundaries of a $(l:greatwork/spellcircles)circle$(), it saturates the domain inside with _media, allowing far greater magical effects and flexibility of _media manipulation than I am used to. The following are some spells which rely on that increased density of media and are to only be cast by an $(l:greatwork/impetus)impetus$().",
@@ -612,13 +644,29 @@
"hexcasting.action.hexical:shader_spider": "Split Vision",
"hexical.page.shader_spider.summary": "Splits my vision into multiple sections, similar to what a spider might see. I am unsure whether it actually grants me more vision...",
+ "hexical.page.lesser_sentinels.title": "Lesser Sentinels",
+ "hexical.page.lesser_sentinels.0": "A bit of sentinel theory: a $(l:patterns/spells/sentinels)$(thing)Sentinel$() is metaphysically-detached shard of my $(thing)Self$(). I can banish, query, and summon it via link but each interaction requires a bit of _media to facilitate the \"handshake\". I can $(l:patterns/great_spells/greater_sentinel)$(action)give even more of my $(thing)Self$(), essentially creating a separate yet near-equally conscious fragment that can cast _Hexes beyond my regular reach and even \"walk\".",
+ "hexical.page.lesser_sentinels.1": "$(thing)Lesser Sentinels$() are a more diminutive construction: little more than a tagged pocket of _media blessed with a whisper of my $(thing)Self$(). They are just enough to hold their ground where deployed and to be visible to me.$(br2)Due to their lesser sentience, I can establish connections, reposition, banish, and bring forth more of them with ease. I can only have one $(l:patterns/spells/sentinels)$(thing)Sentinel$() out at once; I can have a virtually endless number of $(thing)Lesser Sentinels$().",
+ "hexcasting.action.hexical:set_lesser_sentinels": "Deploy Sentinels",
+ "hexical.page.set_lesser_sentinels.summary": "Dismisses any existing $(thing)Lesser Sentinels$() and deploys a $(thing)Lesser Sentinel$() at every position in the list.",
+ "hexcasting.action.hexical:get_lesser_sentinels": "Infiltration Reflection",
+ "hexical.page.get_lesser_sentinels.summary": "Returns a list of vectors corresponding to the positions of all my $(thing)Lesser Sentinels$().",
+
+ "hexcasting.action.hexical:charm": "Charm",
+ "hexical.page.charm.0": "The $(l:patterns/great_spells/charm)$(action)Charm$() spell transforms any item into a self-contained magical item, not unlike a $(l:items/hexcasting)$(item)Cypher$(). They have a battery of _media, disenchant when empty, and can't be recharged or reprogrammed. $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() removes the charm.$(br2)$(o)Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.$()",
+ "hexical.page.charm.1": "Charmed items also have a few special features that distinguish them from any other $(l:items/hexcasting)$(item)casting device$().$(br2)They have two patterns for interfacing with an internal iota storage within them. This storage can only be read from and written to within the charmed item.$(br2)They also have the power of input interception.",
+ "hexical.page.charm.summary": "Charms an item with a _Hex of your choice. Takes the _Hex and the amount of _media to bestow in $(l:items/amethyst)$(item)Amethyst Dust$(). Consumes a battery and three $(l:items/amethyst)$(item)Charged Amethyst$().",
+ "hexical.page.charm.description": "The final parameter of the spell is an integer 0 to 15, encoding $(thing)$(k:attack)$(), $(thing)$(k:sneak) $(k:attack)$(), $(thing)$(k:use)$(), and $(thing)$(k:sneak) $(k:use)$() respectively from most significant bit to least.$(br2)When you attempt to use the item in a way that corresponds to a true bit, the charm intercepts the original item's function and casts the _Hex instead. The stack starts with a number from zero to three corresponding to the input.",
+ "hexcasting.action.hexical:write_charmed": "Charmed Gambit",
+ "hexical.page.write_charmed.summary": "Writes an iota to the charmed item’s internal storage. Subject to the Transgress Others mishap.",
+ "hexcasting.action.hexical:read_charmed": "Charmed Reflection",
+ "hexical.page.read_charmed.summary": "Pushes the stored iota from the charmed item’s internal storage.",
+
"hexcasting.action.hexical:greater_blink": "Greater Blink",
"hexical.page.greater_blink.0": "Greater Blink is a significantly cheaper alternative to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(). It also does not carry the risk of splattering my items upon arrival. However, it only has pitiful range compared to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$() and its destination calculations are... esoteric. Its target is also exclusively myself.",
"hexical.page.greater_blink.summary": "Teleports me up to 128 blocks away, relative to my position and rotation. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in the direction I'm facing. A vector of (0, 1, 0) would teleport me one block \"up\" in the direction of the top of my head. A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head. A vector of (1, 0, 0) teleports me one block to my right.",
- "hexical.page.greater_blink.2": "$(o)Long Jaunt! Longer than you think-$()",
- "hexcasting.action.hexical:theodolite": "Theodolite's Purification",
- "hexical.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
+ "hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in $(l:patterns/basics#hexcasting:get_entity_look)$(thing)the direction I'm facing$(). A vector of (0, 1, 0) would teleport me one block $(l:patterns/scrying/entities#hexposition:theodolite)$(thing)\"up\" from the top of my head$(). A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head. A vector of (1, 0, 0) teleports me one block to my right.",
+ "hexical.page.greater_blink.2": "$(o)I felt three numerical axes perfectly pierce all six faces of my head. For a moment, I was skewered—suspended midair—and then at my specifications, I was violently dragged along the geometrical scaffolds at speeds indistinguishable from instantaneousness.$(br2)I must have been no longer a part of the world, for I was yanked through walls without causing even the smallest disturbance.$()",
"hexical.page.meshes.title": "Meshes",
"hexical.page.meshes.0": "Meshes are the natural evolution of $(l:patterns/spells/specks)specks$(). Rather than being restricted to iotas and patterns on a two-dimensional plane, meshes accept a list of vectors in three-dimensional space and connect them with lines, allowing for infinite creative constructions. It's also responsive to most patterns used for manipulation of specks.",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index 3ffb66871c14..d1f5a78be245 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -18,10 +18,12 @@
"advancements.hexical.media_slurp.title": "迷幻",
"advancements.hexical.media_slurp.description": "“你觉得有些东西不太对劲。”",
+ "block.hexical.hex_candle_cake": "插有咒术蜡烛的蛋糕",
"block.hexical.casting_carpet": "施法地毯",
"block.hexical.hex_candle": "咒术蜡烛",
"block.hexical.mage_block": "术师方块",
"block.hexical.media_jar": "媒质罐",
+ "block.hexical.pedestal": "支座",
"block.hexical.periwinkle": "长春花",
"block.hexical.sentinel_bed": "哨卫床",
"death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
@@ -51,17 +53,15 @@
"item.hexical.hextito": "咒力多滋",
"item.hexical.gauntlet_staff": "护手法杖",
"item.hexical.media_log.0": "媒质木志",
- "item.hexical.media_log.1": "㛭质木志",
- "item.hexical.media_log.2": "错质木志",
- "item.hexical.media_log.3": "错虞木志",
- "item.hexical.media_log.4": "错吴木志",
- "item.hexical.media_log.5": "错误木志",
- "item.hexical.media_log.6": "㛭误木志",
- "item.hexical.media_log.7": "媒误木志",
- "item.hexical.media_log.8": "媒吴木志",
- "item.hexical.media_log.9": "媒虞木志",
+ "item.hexical.media_log.1": "错误木志",
"item.hexical.lei": "花冠",
"item.hexical.lightning_rod_staff": "避雷针法杖",
+ "item.hexical.plush_hexxy": "Hexxy",
+ "item.hexical.plush_irissy": "Irissy",
+ "item.hexical.plush_pentxxy": "Pentxxy",
+ "item.hexical.plush_quadxxy": "Quadxxy",
+ "item.hexical.plush_thothy": "Thothy",
+ "item.hexical.plush_flexxy": "Flexxy",
"item.hexical.scarab_beetle": "圣甲虫",
"item.hexical.tchotchke": "杂饰",
"item.minecraft.potion.effect.wooleyed": "毡障药水",
@@ -93,6 +93,7 @@
"tooltip.hexical.scroll_vanished": "隐消",
"hexical.autograph.header": "由以下人士亲笔签名:",
+ "hexical.charmed": "咒符",
"hexical.cracked.cracked": "已破解",
"hexical.cracked.program": "咒术:",
"hexical.grimoire.contains": "含有以下图案的绑定:",
@@ -105,8 +106,8 @@
"hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
"hexcasting.mishap.bad_block.mage_block": "一个术师方块",
- "hexcasting.mishap.bad_block.prestidigitation": "一个对戏法敏感的方块",
"hexcasting.mishap.bad_block.flower_spawnable": "空气或一个花盆",
+ "hexcasting.mishap.bad_block.rotatable": "一个有朝向区分的方块",
"hexcasting.mishap.bad_block.solid_platform": "一个固体平台",
"hexcasting.mishap.bad_item.animated_scroll": "一个活线卷轴",
"hexcasting.mishap.bad_item.anything": "任意物品",
@@ -118,17 +119,22 @@
"hexcasting.mishap.bad_item.hand_lamp": "一个手持式精灵神灯",
"hexcasting.mishap.bad_item.lamp": "一个空神灯",
"hexcasting.mishap.bad_item.mesh": "一个网斑",
- "hexcasting.mishap.bad_item.prestidigitation": "一个对戏法敏感的实体",
"hexcasting.mishap.bad_item.scarab_beetle": "一个圣甲虫",
"hexcasting.mishap.bad_item.smart_villager": "一个老手或更高等级的村民",
"hexcasting.mishap.bad_item.speck": "一个视斑",
"hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
+ "hexcasting.mishap.bad_item.target.smelting": "一个可在熔炉中烧炼的物品",
+ "hexcasting.mishap.bad_item.target.roasting": "一个可在营火中烧炼的物品",
+ "hexcasting.mishap.bad_item.target.smoking": "一个可在烟熏炉中烧炼的物品",
+ "hexcasting.mishap.bad_item.target.blasting": "一个可在高炉中烧炼的物品",
+ "hexcasting.mishap.bad_item.target.stonecutting": "一个可在切石机中切制的物品",
"hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
"hexcasting.mishap.invalid_value.horizontal_axis_vector": "一个水平轴向向量",
"hexcasting.mishap.invalid_value.class.dye": "一个染料",
"hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
"hexcasting.mishap.invalid_value.conjurable_flower_id": "一个代表可构筑花卉的标识",
"hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
+ "hexcasting.mishap.invalid_value.lesser_sentinel_list": "一个向量列表",
"hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
"hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
"hexcasting.mishap.invalid_value.number_list": "一个由数组成的非空列表",
@@ -141,9 +147,10 @@
"hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
"hexcasting.mishap.hexical:inedible": "魔袋中的物品无法食用。",
"hexcasting.mishap.hexical:magic_missile_coordinates": "无法辨识出空间轴。",
- "hexcasting.mishap.hexical:needs_staff": "本应由法杖施放。",
+ "hexcasting.mishap.hexical:needs_charmed_item": "本应由咒符物品施放。",
"hexcasting.mishap.hexical:needs_lamp": "本应由精灵施放。",
"hexcasting.mishap.hexical:needs_hand_lamp": "本应由手持式精灵神灯施放。",
+ "hexcasting.mishap.hexical:needs_staff": "本应由法杖施放。",
"hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
"hexcasting.mishap.hexical:illegal_jailbreak": "试图破解内含咒术的施法物品。",
@@ -159,6 +166,7 @@
"hexcasting.action.book.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
"hexcasting.action.book.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
"hexcasting.action.book.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
+ "hexcasting.action.book.hexical:has_autograph": "验证器之馏化",
"hexcasting.action.book.hexical:serialize_pattern": "笔迹师之纯化",
"hexcasting.action.book.hexical:deserialize_pattern": "书法师之纯化",
"hexcasting.action.book.hexical:shuffle_pattern": "图案制作师之馏化",
@@ -171,11 +179,6 @@
"hexcasting.action.book.hexical:modify_block_replaceable": "可替",
"hexcasting.action.book.hexical:modify_block_volatile": "失稳",
- "hexical.page.ungodly.title": "可怖",
- "hexical.page.ungodly.0": "就我已记录过的所有法术而言,我都还没遇见过这种奇怪的东西。$(o)连画都找不到好方法。$()",
- "hexcasting.action.hexical:ungodly": "召唤?",
- "hexical.page.ungodly.summary": "从图案的参数签名来看,我只能推测出它是会召唤个什么。",
-
"hexical.page.hexical_changes.title": "Hexical 中的改动",
"hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()。我甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()也变得更可塑、更$(o)可操纵$(),令媒质产生更精确精细的效果已不是难事。我还可以按下$(thing)$(k:hexical.open_hexbook)$()就打开$(item)咒术笔记$()。",
"hexical.page.hexical_changes.1": "我的工具也更顺手了。我无需再全神贯注地使用$(l:items/staff)$(item)法杖$(),而是可在使用时四处走动;之后射线追踪的时候目标就再也跑不出我的视线范围了。不过我也不能太过放松,自然对我失误的惩罚力度依然如旧。我现在还可以用$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()直接向$(l:items/abacus)$(item)算盘$()写入。",
@@ -195,10 +198,10 @@
"hexical.page.index_grimoire.summary": "获取副手$(item)咒典$()中所有图案的列表。",
"hexical.page.scarab.title": "圣甲虫",
- "hexical.page.scarab.0": "$(item)圣甲虫$()是个可爱的护符。它们对$(media)媒质$()相当敏感;因此在启动后,它们能定位被自然忽略的图案,并加以替换。特别来说,对自然而言没有意义的图案会压入栈顶,供$(item)圣甲虫$()判别。$(br2)$(o)我不管了,上吧圣甲虫。$()",
- "hexical.page.scarab.1": "我可以教导$(item)圣甲虫$(),让它将图案处理成方便使用的形式。比如说,可以让它在碰到给定图案时执行一系列图案,以无缝衔接那些$(o)新$()图案,甚至连$(l:items/hexcasting)$(item)施法物品$()中的图案也行。",
- "hexical.page.scarab.2": "$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()可以教导$(item)圣甲虫$()图案列表。此列表后续不可通过$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()反向读出;它们的感知力足以抵抗读心,不过它们确实会自豪地展出$(hex)咒术$()。这些指示也不可覆盖;传达新指示前必须先$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除$()。",
- "hexical.page.scarab.3": "如果需要进一步处理图案,$(l:patterns/pattern_manipulation)能操纵图案的元操作图案$()会很有用。理论上来说,我可以创造出一整族的图案,类似$(l:patterns/numbers)数字面量$()和$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()等,而且所有$(l:items/staff)法杖$()或者$(l:items/hexcasting)$(item)施法物品$()都可以用。",
+ "hexical.page.scarab.0": "$(item)圣甲虫$()是个可爱的护符,对$(media)媒质$()相当敏感;在启动后,它们能拦截被自然排斥的图案。$(br2)特别来说,与我有关联的任何事物运行了对自然无意义的图案时,圣甲虫即会前来处理,规避事故。$(br2)$(o)我不管了,上吧圣甲虫。$()",
+ "hexical.page.scarab.1": "我可以向圣甲虫下达指令,告诉它该如何处理这些“无效”图案,以及如何将它们替换为另一套图案。我可借此制造$(o)新$()图案——它们甚至在$(l:items/hexcasting)$(item)施法物品$()里都能用。",
+ "hexical.page.scarab.2": "$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()可以教导圣甲虫一则$(hex)咒术$()。虽然它们会自豪地展示那则$(hex)咒术$(),但它们不受$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()等读心手段的影响。并且,在传达新指示前必须先让其$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)遗忘$()已有的指示。$(br2)运行无效图案时,激活的圣甲虫会将该图案压入栈顶,从而规避事故。然后,在继续执行之前,它会施放所学的$(hex)咒术$()。",
+ "hexical.page.scarab.3": "圣甲虫带来的新造图案能力对$(l:items/staff)$(item)法杖$()和$(l:items/hexcasting)$(item)施法物品$()等各类事物都有效。它很适合制造$(br2)$(l:patterns/pattern_manipulation)能操纵图案的元操作图案$(),可借此实现高阶的处理功能。理论上来说,我可以创造出一整族无限个图案,类似$(l:patterns/numbers)数字面量$()和$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()等。",
"hexical.page.animated_scroll.title": "活线卷轴",
"hexical.page.animated_scroll.0": "$(item)活线卷轴$()中混有一小份紫水晶,其上墨迹会像$(l:items/staff)$(item)法杖$()绘制出的图案那样颤动。$(item)活线卷轴$()的神奇之处还不止于此,它还能展示图案列表。$(br2)$(o)不带点疯劲,怎么能叫作家呢?$()",
@@ -247,15 +250,28 @@
"hexical.page.periwinkle.title": "长春花",
"hexical.page.periwinkle.0": "有一种灭绝已久的花朵,叫作$(item)长春花$()。它们很漂亮,还有安神的作用;古代的$(hex)咒术师$()会用它们来抚平$(hex)咒法学$()带来的莫大恐惧。$(br2)$(o)特别的花送给特别的人。$()",
"hexcasting.action.hexical:periwinkle": "长春花之精思",
- "hexical.page.periwinkle.summary": "好在尘埃尚未完全落定。我找到了植物学$(hex)咒术师们$()留下的这个标识。我相信有$(l:patterns/spells/simple_spells#hexical:flower)$(action)图案$()能让这种花起死回生。",
+ "hexical.page.periwinkle.summary": "好在尘埃尚未完全落定。我找到了植物学$(hex)咒术师们$()留下的这个标识。我相信有$(l:patterns/spells/hexical_spells#hexical:flower)$(action)图案$()能让这种花起死回生。",
"hexical.page.lei.summary": "成功复原几簇之后,即可用它们制作$(item)花冠$()了!$(item)花冠$()会小幅增强我的$(hex)咒法学$()视野,和$(l:items/lens)$(item)探知透镜$()比较像,只不过没有读取额外信息的功能。",
"hexical.page.lei.description": "佩戴后,它还能阻止自然为施放$(hex)咒术$()而抽走我的生命。$(br2)和其他盔甲不同的是,如果其他玩家没有穿戴任何东西,就可直接为他们戴上$(item)花冠$()!古代的$(hex)咒术师$()将这种行为视作表达亲昵和爱慕;这是因为$(item)花冠$()具有防御和安神功能,而且长春花本身也难以获得。",
+ "hexical.page.plushies.title": "玩偶",
+ "hexical.page.plushies.0": "古代的$(hex)咒术师们$()还制造了这些好看的$(item)玩偶$()!它们的外形和我在$(hex)咒法学$()中遇到的图案很相似。不太清楚它们有没有实际作用,但它们确实是不错的收藏品。$(br2)偶来拜访的流浪商人可能会在旅途中捡到一两个。",
+ "hexical.page.plushies.hexxy": "看着有些呆。放在物品栏里总给我种焦虑感。",
+ "hexical.page.plushies.thothy": "好像在睡觉。带着它的时候会有种不自觉的确定感,就好像它在守护我一样。",
+ "hexical.page.plushies.irissy": "不管放在哪里都像在盯着我。伟大的 Irissy 啊,你曾见过何物?",
+ "hexical.page.plushies.quadxxy": "可能是手不够巧的人做的。拼都拼不进六边形网格啊!",
+ "hexical.page.plushies.pentxxy": "……这些玩意会不会是故意做成这样的。",
+ "hexical.page.plushies.flexxy": "这个玩偶的$(o)细节$()处理好到吓人。Flexxy 肯定是很多人的偶像,不然怎么会有人花这么大力气做它的造像呢。",
+
"hexical.page.wooleyed_potion.title": "毡障药水",
"hexical.page.wooleyed_potion.0": "这些$(item)药水$()能让我遗忘$(hex)咒法学$()的部分骇人知识。基础效力的药水能阻止我用生命交换$(media)媒质$(),很适合防止一个小小的计算失误造成严重后果。效力更强的药水会阻断所有卓越法术,大概可以用作攻击性武器。$(br2)$(o)未曾有人见过。$()",
"hexical.page.wooleyed_potion.header": "毡障药水",
"hexical.page.wooleyed_potion.1": "将$(l:items/periwinkle)$(item)长春花$()酿造入$(item)粗制的药水$()即可获得这种药水。$(item)荧石粉$()和$(item)红石粉$()依然具有强化和延时功效,和大多数药水一样。",
+ "hexical.page.pedestal.title": "支座",
+ "hexical.page.pedestal.0": "支座可让物品安全地悬浮起来。它和物品展示框还有箱子不一样——我的$(hex)咒术$()仍可和物品交互,就好像物品还掉在地上一样。空支座会吸引物品,支座和漏斗的交互也基本如我预期。甚至替换物品也行。",
+ "hexical.page.pedestal.1": "$(o)支座和所有狭小局促的空间一样——都和监狱差不多。$()",
+
"hexical.category.lamp": "精灵神灯",
"hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。村民说有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,这件物品必然有强大之处;因此我分出了这一章,用于记录我对它的研究。",
@@ -319,14 +335,18 @@
"hexical.page.lamp_pillows.title": "枕座",
"hexical.page.lamp_pillows.0": "似乎$(l:lamp/arch_lamps)$(item)大精灵神灯$()会在无人持有时抑制精灵的施法能力,也许是为阻止精灵用$(media)媒质$()削弱神灯的禁锢。我从未见到过这种表现;大概能设计如此精妙的仪器的意识总是才智与偏执并存吧。",
- "hexical.page.simple_patterns.title": "Hexical 图案",
- "hexcasting.action.hexical:garbage": "垃圾之精思",
- "hexical.page.garbage.summary": "返回$(l:casting/influences)$(action)垃圾$()。不懂这个图案有什么作用,但它确实是个图案。",
+ "hexical.page.pedestal_circles.title": "法术环中的支座",
+ "hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)支座$()有魔力!$(br2)如果其中存在$(l:patterns/readwrite#hexcasting:write)$(item)带有信息的物品$(),同时还有$(l:greatwork/spellcircles)$(thing)法术环$()的媒质波如穿过$(l:items/slate)$(item)石板$()一样流过,那么它就会把物品中的 iota 压入栈顶。如果$(l:items/pedestals)$(thing)支座$()恰好处于未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$()中,该 iota 便会出现在所创建的列表内。",
+ "hexical.page.pedestal_circles.1": "如果直接把$(l:items/pedestals)$(item)支座$()放在$(l:greatwork/spellcircles)$(item)促动石$()上方,那么它就会变成法术环的$(o)另一只手$(),适用于$(l:patterns/spells/hexcasting)合成施法物品等法术$()、$(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)重新充能$(),以及$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()。$(br2)有关法术也包括$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()还有$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()。可借此让$(l:greatwork/spellcircles)$(thing)法术环$()自动向$(l:items/focus)$(item)核心$()写入。",
"hexical.page.patterns.title": "图案操作",
"hexical.page.patterns.0": "我发现了一系列图案,主要用于操纵及构造$(l:patterns/patterns_as_iotas)图案$()。奇怪的是,这些图案也能构造出$(l:items/staff)$(item)法杖$()$(o)无法$()绘制的图案,好在自然应该不会为这些“非法”图案分配实际作用。可以认为$(l:items/scarab)$(item)圣甲虫$()能随意使用它们。",
+ "hexcasting.action.hexical:shuffle_pattern": "图案制作师之馏化",
+ "hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代的$(hex)咒术师们$()会把这些图案用在某种$(o)庞大的图书馆$()中。",
"hexcasting.action.hexical:congruent": "全等之馏化",
- "hexical.page.congruent.summary": "检验两个图案是否外形相同且方向相同。",
+ "hexical.page.congruent.summary": "检验两个图案的外形、笔顺、方向是否相同。",
+ "hexcasting.action.hexical:similar": "相似之馏化",
+ "hexical.page.similar.summary": "检验两个图案的外形是否相同,笔顺不考虑。",
"hexcasting.action.hexical:serialize_pattern": "笔迹师之纯化",
"hexical.page.serialize_pattern.summary": "将图案转换为数列表,以供拆分与分析。是$(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)书法师之纯化$()的逆法术。",
"hexcasting.action.hexical:deserialize_pattern": "书法师之纯化",
@@ -335,18 +355,6 @@
"hexical.page.patterns.2": "这些列表有多种良好性质。加上或减去某个常量,即可旋转图案。为列表首部和尾部切片,可提取出图案的前后缀。对于旋转对称的图案而言,将首个元素移至末尾或将最末元素移至首部,即可旋转开始位置。而通过列表操作小心更改其中元素,还可制造出$(o)向后延伸的笔画$()。",
"hexcasting.action.hexical:draw_pattern": "手写之馏化",
"hexical.page.draw_pattern.summary": "接受一个图案,并将其转换为长度为 1 的向量列表。这些向量的 Z 分量为 0。也许对某些艺术性$(hex)咒术$()很有用。",
- "hexcasting.action.hexical:shuffle_pattern": "图案制作师之馏化",
- "hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代的$(hex)咒术师们$()会把这些图案用在某种$(o)庞大的图书馆$()中。",
-
- "hexical.page.special_raycasts.title": "特殊射线追踪",
- "hexcasting.action.hexical:fluid_raycast": "海军之馏化",
- "hexical.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.action.hexical:fluid_surface_raycast": "睡莲之馏化",
- "hexical.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.action.hexical:piercing_raycast": "轨道炮之提整",
- "hexical.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
- "hexcasting.action.hexical:piercing_surface_raycast": "激光之提整",
- "hexical.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
"hexical.page.telepathy.title": "心灵感应",
"hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于玩家的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取意图或向其写入思维。",
@@ -377,6 +385,11 @@
"hexcasting.action.hexical:sneaking": "潜行之精思",
"hexical.page.sneaking.summary": "压入我按下$(thing)$(k:sneak)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
+ "hexical.page.horrible.title": "可怕的东西",
+ "hexical.page.horrible.0": "就我在$(hex)咒法学$()中遇到的所有法术而言,我都还没遇见过这种东西。$(o)到底要怎么画啊?$()",
+ "hexcasting.action.hexical:horrible": "召唤?",
+ "hexical.page.horrible.summary": "从图案的参数签名来看,我只能推测出它是会召唤个什么。",
+
"hexical.page.akashic_conveniences.title": "阿卡夏实用图案",
"hexical.page.akashic_conveniences.0": "阿卡夏图书馆正是为用$(media)媒质$()存储信息而建,深入研究后能发现更多便捷操作也就不足为奇。我可以对经过写入的$(l:greatwork/akashiclib)$(item)书架$()按下$(thing)$(k:use)$()或使用$(l:patterns/spells/prestidigitation)魔法交互$(),以将其中 iota 复制到栈中。也可手持$(l:items/scroll)$(item)卷轴$()按下$(thing)$(k:use)$(),以将其图案键复制到其上。还有一系列图案能向影响范围内的$(l:greatwork/akashiclib)$(item)书架$()和$(l:items/slate)$(item)石板$()写入与读取,无需消耗$(media)媒质$()。",
"hexcasting.action.hexical:key_shelf": "图书管理员之纯化",
@@ -388,8 +401,32 @@
"hexcasting.action.hexical:clear_shelf": "图书管理员之策略,第二型",
"hexical.page.clear_shelf.summary": "清除给定的$(l:greatwork/akashiclib)$(item)阿卡夏书架$()。",
+ "hexical.page.block_mimicry.title": "方块模仿",
+ "hexical.page.block_mimicry.0": "$(hex)咒法学$()是项多用途的技艺。比如说,原本需要方块才能执行的操作,现在可以用$(media)媒质$()模拟,无需任何外物。仅用法杖,就可$(l:patterns/spells/block_mimicry#hexical:stonecut)把石头切成楼梯$(),$(l:patterns/spells/block_mimicry#hexical:dispense)发射箭矢$(),还可自动化向容器$(l:patterns/spells/block_mimicry#hexical:hopper_in)放入$()和从容器$(l:patterns/spells/block_mimicry#hexical:hopper_out)取出$()物品。",
+ "hexical.page.block_mimicry.1": "传说中古代的$(hex)咒术师们$()不费一方一块就建立起了一整座魔法工厂。$(br2)$(o)我要更大的办公室,要更大的椅子$(br)要更大的桌子,要更大的法杖$(br)还要顶更好的帽子",
+ "hexcasting.action.hexical:dispense": "发射",
+ "hexical.page.dispense.summary": "接受一个物品实体、一个位置、一个轴向向量,并依此发射物品。对大多数使用环境而言,消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.dispense.description": "具体而言,此法术相当于触发一个装有所给物品的发射器。$(br2)如果此法术涉及到任意种类的$(item)箭$(),消耗便涨至 1 个$(l:items/amethyst)$(item)充能紫水晶$()。不知道为什么自然对此类应用的反应如此剧烈。也许是不想让我变得太强?$(br2)$(o)如有要求,我也会执行拥抱。$()",
+ "hexcasting.action.hexical:smelt": "烧炼",
+ "hexical.page.smelt.summary": "接受一个物品实体,并像$(item)熔炉$()一样烧炼它。$(item)熔炉$()每需烧炼 10 秒消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:roast": "烤制",
+ "hexical.page.roast.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)营火$()。它的适用范围更窄;大概是永远都用不上了。",
+ "hexcasting.action.hexical:smoke": "烟熏",
+ "hexical.page.smoke.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)烟熏炉$()。它只能处理食物,但速度更快,变相降低消耗。",
+ "hexcasting.action.hexical:blast": "高炉烧炼",
+ "hexical.page.blast.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)高炉$()。它只能处理矿石,但速度更快,变相降低消耗。",
+ "hexcasting.action.hexical:stonecut": "切石",
+ "hexical.page.stonecut.summary": "接受一个物品实体,将所给物品实体切制为目标物品的形状。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.stonecut.description": "目标物品必须可由所给物品在$(item)切石机$()中加工而成。比如说,$(item)石头$()可切制为楼梯、台阶、墙。$(br2)$(o)我在大理石中看见天使,于是我不停地雕刻,直至使他自由。$()",
+ "hexcasting.action.hexical:hopper_in": "存放",
+ "hexical.page.hopper_in.summary": "接受一个物品实体,一个容器的位置,一个轴向向量。若可行,此法术会从给定面存放所给物品。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.hopper_in.description": "如果目标方块不是容器,或方块已满,或由于其他原因无法放入物品,则什么都不会发生。溢出容器的物品会留在原本的物品实体内。$(br2)$(o)如有要求,我也会执行拥抱。$()",
+ "hexcasting.action.hexical:hopper_out": "取回",
+ "hexical.page.hopper_out.summary": "接受一个投物位置向量,一个容器的位置,一个轴向向量。此法术会从给定方块的给定面取出单个物品,并压入栈顶。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.hopper_out.description": "如果无物可取,则法术会返回 $(l:casting/influences)$(thing)Null$()。同一时刻只会取出一个物品,与漏斗类似。$(br2)$(o)如有要求,我也会执行拥抱。$()",
+
"hexical.page.mage_block.title": "术师方块",
- "hexical.page.mage_block": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
+ "hexical.page.mage_block.0": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
"hexcasting.action.hexical:conjure_mage_block": "构筑术师方块",
"hexical.page.conjure_mage_block.summary": "在所给位置构筑一个术师方块。消耗 3 个$(l:items/amethyst)$(item)紫水晶粉$()。$(br2)$(o)我可以凭空造出一座城市,也可令其沉没于火山熔岩之中。$()",
"hexcasting.action.hexical:modify_block_bouncy": "改进方块:弹性",
@@ -405,6 +442,24 @@
"hexcasting.action.hexical:modify_block_volatile": "改进方块:失稳",
"hexical.page.modify_block_volatile.summary": "此改进促使方块破坏与之相邻的术师方块。而当其破坏另一个失稳方块时,与其相连的所有失稳方块都会消失。",
+ "hexical.page.rotation.title": "旋转",
+ "hexical.page.rotation.0": "旋转可由更改朝向的原地传送实现。视角的突然变化已经能造成强烈的晕眩感,再加上双脚离地后又着地,真是难以想象的晕。$(br2)正因此,自然厌恶实体旋转……或者说,只是因为实体旋转破坏了自然精心建构的某种图景。",
+ "hexcasting.action.hexical:rotate_block": "旋转方块",
+ "hexical.page.rotate_block.summary": "将方块旋转为朝向给定向量。需方块可旋转。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:rotate_entity": "旋转实体",
+ "hexical.page.rotate_entity.summary": "根据所给俯仰角和偏航角旋转实体,需以整圆为量度。",
+ "hexical.page.rotate_entity.description": "自然似乎不待见实体旋转。因此,相较于简单易懂的向量,自然要求你提供以整圆为量度的角度,再据此进行水平向和垂直向旋转。$(br2)此法术的消耗分了很多类别,而且也很奇怪。对自身施放时不消耗媒质,对其他实体则消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$(),而玩家周围的$(media)媒质$()气场则会把消耗抬到大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+
+ "hexical.page.autographs.title": "亲笔签名",
+ "hexical.page.autographs.0": "只要精细操纵$(media)媒质$(),就可将我的签名以魔法方式$(o)蚀刻$()到物品上去!此类法术必须通过$(l:items/staff)$(item)法杖$()施法,以作强烈意图之证明。$(br2)被签名的物品会用流光溢彩的$(l:items/pigments)$(item)染色剂$()显示各位署名人的名字。$(br2)$(o)“我没说过这句话。”——鲁迅$()",
+ "hexcasting.action.hexical:autograph": "签名",
+ "hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的$(l:items/pigments)$(item)染色剂$()为颜色。对我已签过名的物品再次签名,会将我的签名移至首位。",
+ "hexical.page.autographs.1": "因为签名的刻印极深,$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()无法去除签名,而是需要专用的法术来抹除。$(br2)不过,能完成这项任务的法术本身就可以清空$(l:items/focus)$(item)核心$()的内容物,以及$(l:items/hexcasting)$(item)施法物品$()的$(hex)咒术$()和$(media)媒质$()。也许这也算是长处:我的$(hex)咒法学$()赠礼若带有我的亲笔签名,就表明没人做过手脚。",
+ "hexcasting.action.hexical:unautograph": "撤回签名",
+ "hexical.page.unautograph.summary": "更暴力的$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$(),甚至能抹掉签名。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$(),与$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()类似。",
+ "hexcasting.action.hexical:has_autograph": "验证器之馏化",
+ "hexical.page.has_autograph.summary": "检验给定玩家是否为所给物品组签过名。",
+
"hexical.page.dyes.title": "染料",
"hexical.page.dyes.0": "染色法术和专用的 iota 可以用来改变方块和实体的颜色。染料 iota 代表一种颜色,也似乎同时象征着染色的$(o)可能性$()。例如,尝试获取草丛的染料会返回 $(l:casting/influences)$(thing)Null$(),但获取未染色陶瓦的染料会返回$(thing)uncolored$()/$(thing)无色$(),这种染料能够“漂白”可染色方块。",
"hexcasting.action.hexical:get_dye": "色彩之纯化",
@@ -416,7 +471,7 @@
"hexical.page.translate_dye.summary": "将染料的颜色转换为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
"hexical.page.pigments.title": "染色剂操纵",
- "hexical.page.pigments.0": "和通过图案操纵染料一样,染色剂也可操纵。比如说,我甚至能存储多个染色剂,再让咒术随机挑选一个给我。",
+ "hexical.page.pigments.0": "和通过$(hex)咒法学$()操纵$(l:patterns/spells/dyes)染料$()一样,染色剂也可操纵。比如说,我甚至能存储多个染色剂,再让$(hex)咒术$()随机挑选一个给我。",
"hexcasting.action.hexical:to_pigment": "染色剂之纯化",
"hexical.page.to_pigment.summary": "接受一个有色染料 iota,并转换为染色剂;接受一个玩家并返回其染色剂;或是接受一个内含染色剂的物品,并返回其染色剂。",
"hexcasting.action.hexical:sample_pigment": "染色剂之提整",
@@ -427,25 +482,21 @@
"hexcasting.action.hexical:magic_missile": "魔法飞弹",
"hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时强令目标退后。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
- "hexical.page.magic_missile.1": "第一个向量是构筑的位置,其性质相当奇妙:怪不得大多数$(hex)咒术师$()都只选择在面前构筑它们。这一参数以我的头部位置为原点,我$(l:patterns/basics#hexcasting:get_entity_look)$(action)面朝的方向$()是 Z 轴正向,$(l:patterns/great_spells/greater_blink#hexical:theodolite)$(action)头顶向上的方向$()是 Y 轴正向,头部向右的方向是 X 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
+ "hexical.page.magic_missile.1": "第一个向量是构筑的位置,其性质相当奇妙:怪不得大多数$(hex)咒术师$()都只选择在面前构筑它们。这一参数以我的头部位置为原点,我$(l:patterns/basics#hexcasting:get_entity_look)$(action)面朝的方向$()是 Z 轴正向,$(l:patterns/scrying/entities#hexposition:theodolite)$(action)头顶向上的方向$()是 Y 轴正向,头部向右的方向是 X 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
"hexical.page.magic_missile.2": "第二个向量是速率,好在比第一参数简单不少。它就是简单的偏移向量,与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()接受的向量类似。而与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()不同的是,本法术的向量没有模长限制,也不会因模长增加而增大消耗。$(br2)$(item)魔法飞弹$()与$(item)箭$()的不同之处在于,前者不会因为飞行速度快而造成更多伤害。飞弹还会产生一种奇怪的击退效果,无视实体的质量和弹射物的速度。",
"hexcasting.action.hexical:prestidigitation": "戏法",
- "hexical.page.prestidigitation.summary": "通过魔法令方块或实体产生一定回应,这种回应不会偏离方块或实体本身的性质和功能太远。消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.prestidigitation.0": "此类法术和我之前遇到过的那些很不一样。它们的效果并不单一固定,而是类似于将许多不同的简单效果综合在单个法术中。它们的有效目标涵盖了许多方块和实体,我也在积极寻找它们的用途。具体内容记在后页。它大概可以看作某种基础的魔术戏法。",
- "hexcasting.action.hexical:can_prestidigitate": "改易之纯化",
- "hexical.page.can_prestidigitate.summary": "检验所给实体或位置是否可受戏法操纵。",
- "hexical.page.prestidigitation.1": "我在此整理了一份经验证适用于此类法术的对象列表:打开或关闭各种材质的栅栏门、活板门、门;拨动拉杆,按压按钮;压下或松开压力板;熄灭火和灵魂火;点燃或熄灭蜡烛和营火;敲钟;为原木等去皮;雕刻南瓜;使音符盒发出声音;触发发射器和投掷器;将泥巴烤干为黏土;将大部分土壤方块变为土径,将土径变为耕地……",
- "hexical.page.prestidigitation.2": "打开或关闭红石灯;消耗炼药锅的内容物;更改红石中继器、红石比较器、阳光探测器的状态;触发或解除 TNT 和苦力怕的爆炸;为绵羊剪毛;装上或卸下盔甲架的手臂部分;使得鱿鱼喷墨;使得熊猫打喷嚏;去除雪傀儡的头套;令河豚立刻膨胀到最大;从蜂巢和蜂箱中取出蜜脾;以及触发某种“宏伟之作”,不太清楚这是在说什么。",
+ "hexical.page.prestidigitation.0": "此法术的效果并不单一固定,而是会执行许多不同的简单效果。它能与许多方块和实体交互,我也一直在发现它们的新用途。$(br2)文献中只将其简单描述为“施魔法”;按经验来看,只要是巫师能通过念力轻易实现的效果,这则法术都可复刻。",
+ "hexical.page.prestidigitation.summary": "产生一类小型魔法效果,这种效果与目标的性质和功能基本一致。消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.prestidigitation.1": "我在此整理了一份此法术的功效列表,不保证完备:打开或关闭各种材质的栅栏门、活板门、门;拨动拉杆,按压按钮;压下或松开压力板;熄灭各类火;点燃或熄灭蜡烛、蛋糕上的蜡烛、营火;在可引燃灵魂火的方块上点火;敲钟;为木材去皮;雕刻南瓜;使音符盒发出声音;将泥巴烤干为黏土;打开或关闭红石灯;",
+ "hexical.page.prestidigitation.2": "触发发射器和投掷器;将大部分土壤方块变为土径,将土径变为耕地;消耗炼药锅的内容物;更改红石中继器、红石比较器、阳光探测器的状态;触发或解除 TNT 和苦力怕的爆炸;为绵羊剪毛;装上或卸下盔甲架的手臂;使得鱿鱼喷墨;使得熊猫打喷嚏;去除雪傀儡的头套;令河豚膨胀;从蜂巢和蜂箱中取出蜜脾;以及触发某种$(hex)咒法学$()的“宏伟之作”。",
"hexical.page.wristpocket.title": "魔袋",
"hexical.page.wristpocket.0": "让物品消失,再让物品回来的普通魔术把戏现在已易如反掌。这些物品藏在了$(o)魔袋$()之中,可用$(media)媒质$()操控。藏入魔袋的物品在我死后依然保留,只要能施法就能取回。$(br2)$(o)因为就让事物消失是不够的;你还要把它变回来。$()",
"hexcasting.action.hexical:wristpocket": "藏入魔袋",
"hexical.page.wristpocket.summary": "此法术会令另一只手中的物品组消失;也可重新让其出现,如果手中已经持有物品则会交换。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexcasting.action.hexical:wristpocket_item": "魔袋之精思",
- "hexical.page.wristpocket_item.summary": "返回魔袋中物品的标识,如果魔袋为空则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexical:wristpocket_count": "魔袋之精思,第二型",
- "hexical.page.wristpocket_count.summary": "返回魔袋中的物品数,如果魔袋为空则返回 0。",
+ "hexical.page.wristpocket_item.summary": "返回魔袋中的物品,如果魔袋为空则返回 $(l:casting/influences)$(thing)Null$()。",
"hexcasting.action.hexical:sleight": "花招",
"hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.sleight.0": "传入向量时:将魔袋中的物品投放到对应位置。传入物品实体时:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
@@ -481,7 +532,19 @@
"hexcasting.action.hexical:zone_specklike": "区域之馏化:类视斑",
"hexical.page.zone_specklike.summary": "返回视斑实体,效果与其他$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$()类似。",
- "hexical.page.simple_spells.title": "Hexical 法术",
+ "hexical.page.projectiles.title": "弹射物",
+ "hexical.page.projectiles.0": "虽然直接用纯净的$(media)媒质$()构筑弹射物贵到发指,自然还是为部分弹射物提供了相较便宜些的法术。$(br2)这些法术会将构筑的实体压入栈顶,此后必须手动向某方向$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()它们。$(br2)$(o)值此困境,你想要枚上好的蛋吗?$()",
+ "hexcasting.action.hexical:egg": "构筑蛋",
+ "hexical.page.egg.summary": "构筑一枚蛋。可能可以孵出小鸡。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:llama_spit": "构筑唾沫",
+ "hexical.page.llama_spit.summary": "构筑一个能造成少量伤害的黏性弹射物。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:snowball": "构筑雪球",
+ "hexical.page.snowball.summary": "构筑一个不会造成伤害的雪球。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:ghast_fireball": "构筑火球",
+ "hexical.page.ghast_fireball.summary": "构筑一个易爆的火球,$(o)敲击可发射$()。消耗大约 3 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.projectiles.1": "还有其他法术也可以构筑弹射物;但它们太过复杂,超出了此章范畴。它们在对应的专论章节内。$(br2)$(l:patterns/spells/magic_missile#hexical:magic_missile)$(action)魔法飞弹$()是一类快捷多用的标准紫水晶矛,可使用任意速度发射。$(br2)还可在战斗中善用$(l:patterns/spells/pyrotechnics)烟花$()。$(br2)此外,还有$(l:patterns/spells/block_mimicry#hexical:dispense)$(action)一个法术$()能够发射药水和箭。",
+
+ "hexical.page.hexical_spells.title": "Hexical 法术",
"hexcasting.action.hexical:confetti": "彩花",
"hexical.page.confetti.summary": "在给定位置以给定方向、速率、速度制造一阵类似$(l:patterns/spells/pyrotechnics)烟花$()的响声及一簇色彩鲜艳的粒子。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.confetti.description": "这些粒子不会造成伤害,且在触地前会四处飘动。第一个向量控制位置。第二个参数控制方向;若传入数,则表示向所有方向爆炸的速度;若传入向量,则会令粒子偏向该方向。数的绝对值和向量的模长均不可超过 2。$(br2)$(o)剩下的不过是些彩花。$()",
@@ -491,45 +554,24 @@
"hexcasting.action.hexical:block_ping": "标记方块",
"hexical.page.block_ping.summary": "将$(media)媒质$()聚焦成裸眼可见的小立方体,很适合用来高亮标记各种物体。消耗极少量$(media)媒质$()。",
"hexical.page.block_ping.description": "第一个向量控制位置,第二个控制颜色。第二向量各分量应为 0 到 1 的数,分别对应红、绿、蓝三色。最后的数代表标记应存在多少个 1/20 秒,最多可存在 10 秒。$(br2)$(o)给我瞅瞅!$()",
- "hexcasting.action.hexical:stonecut": "切石",
- "hexical.page.stonecut.summary": "接受一个物品实体和一个目标物品标识,将所给物品实体切制为目标的形状。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.stonecut.description": "目标物品必须可由所给物品在切石机中加工而成。$(br2)$(o)我在大理石中看见天使,于是我不停地雕刻,直至使他自由。$()",
"hexcasting.action.hexical:crack_device": "破解设备",
"hexical.page.crack_device.summary": "对不包含$(hex)咒术$()的$(l:items/hexcasting)$(item)施法物品$()使用时,$(o)将其破解$()。经破解的施法物品会自豪地展现它们的$(hex)咒术$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
"hexical.page.crack_device.description": "如果试图破解已经写入过的设备的内部结构,法术便会让我眼盲一段时间。不过,我认为好像有一瞬,我看到了$(hex)咒术$()显现在我的眼前,$(media)媒质$()填满了我的大脑。$(br2)$(o)现在时间都要靠电啦、振荡的石英晶体啦,鬼知道什么东西来走。$()$(br)——明显是在说$(l:items/amethyst)$(item)紫水晶$()。",
"hexcasting.action.hexical:place_block_type": "构筑",
"hexical.page.place_block_type.summary": "在给定位置以给定朝向和水平朝向放置我物品栏中给定类型的方块。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.place_block_type.description": "“朝向”指一个轴向向量,代表我在放置方块时面朝的方向。对门、楼梯等方块来说,朝向应为上或下,而“水平朝向”则决定了方块的朝向。$(br2)$(o)在现代文明人类的心理中,房子的重要性怎么强调都不为过。$()",
- "hexcasting.action.hexical:autograph": "签名",
- "hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的$(l:items/pigments)$(item)染色剂$()为颜色。无需消耗$(media)媒质$();且作为亲笔的证明,只能由我的$(item)$(l:items/staff)法杖$()施放。",
- "hexical.page.autograph.description": "所有对物品施放过此法术的人,其名字会依次保留在物品上,且保留对应的$(l:items/pigments)$(item)染色剂$()。签过名的物品无法与未签名的物品堆叠,同种的物品也不能。签名无法通过$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)常规手段$()去除。同一人能给同一物品多次签名,如此那人的名字便会移至最下方。$(br2)$(o)我强烈反对引用这句话的所有作品。$()",
- "hexcasting.action.hexical:unautograph": "撤回签名",
- "hexical.page.unautograph.summary": "特种化的$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$(),能够抹除签名。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$(),类似$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()。",
- "hexical.page.unautograph.description": "即便签名与物品$(media)媒质$()之间的纽带相当强大,这个法术依然能将它$(o)撕开$()。不过,它同时还会清空$(l:items/focus)$(item)核心$()存有的 iota 以及$(l:items/hexcasting)$(item)施法物品$()的$(hex)咒术$()和$(media)媒质$()。大概也算是好事吧;我送出的$(hex)咒法学$()礼品上只要还留有我的签名,那就可确认无人从中作梗。",
"hexcasting.action.hexical:flower": "构筑花卉",
"hexical.page.flower.summary": "在给定位置构筑一株花,品种任选。所需的花卉必须先经过标识。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.flower.description": "构筑处四周必须存在足够支撑植物的平坦表面。不要求它可以种植花卉;但如果不可种植,那么任何轻微的动作都会让花朵掉落。还可以在花盆处使用:法术会先尝试在其中构筑。$(br2)$(o)杂草不过是还未得人青睐的鲜花。$()",
"hexcasting.action.hexical:light": "荧亮",
"hexical.page.light.summary": "在给定位置构筑一个给定光照强度的隐形光源。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.light.description": "构筑的位置必须腾空,或需该处方块极为脆弱。光照强度为 1 到 15 的数,两端闭。如果对应位置处已有光源,则法术变为无消耗,也不会产生粒子。$(br2)$(o)光明使人盲目。只有身处黑暗才能洞悉本质。$()",
- "hexcasting.action.hexical:snowball": "构筑雪球",
- "hexical.page.snowball.summary": "构筑一个不会造成伤害的雪球,并压入一个实体 iota。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.snowball.description": "若没有$(hex)咒术$()协助,构筑处的雪球便会向下坠落,也即必须使用$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()发射出去。$(br2)$(o)随着年岁的增长,我也愈有为世界做贡献的力量;我像是一个雪球——滚得越远,长得就越大。$()",
- "hexcasting.action.hexical:ghast_fireball": "构筑火球",
- "hexical.page.ghast_fireball.summary": "构筑一个易爆火球,并压入一个实体 iota。消耗大约 3 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.ghast_fireball.description": "构筑出的火球只会停在空中,必须敲击或通过$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()发射出去。当然也可用同种手段更改其飞行方向。$(br2)$(o)要是不能炸坏什么东西的话,掌控宇宙平衡和知晓命运之秘又有什么好处呢?$()",
- "hexcasting.action.hexical:llama_spit": "吐唾沫",
- "hexical.page.llama_spit.summary": "构筑一个能造成少量伤害的黏性弹射物。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.llama_spit.description": "构筑出的弹射物不带速度,不加$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()便只会因重力而下坠。它造成的伤害微不足道,大概不太适合战斗,但又很便宜……$(br2)$(o)会爆成一团黏答答乱麻的弹射物。$()",
"hexcasting.action.hexical:gasp": "喘息",
"hexical.page.gasp.summary": "立即填满生物的氧气条,消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$(),因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
"hexcasting.action.hexical:parrot": "啼鸣",
"hexical.page.parrot.summary": "在某位置附近发出一阵与某生物有关的声音,就好像鹦鹉模仿了那个生物的声音一样。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.parrot.description": "如果鹦鹉无法模仿声音,此法术便不会有功效,但仍会消耗$(media)媒质$()。$(br2)我觉得这大概只能用来给朋友和敌人开玩笑。也许自然真的允许我偶尔用$(hex)咒术$()找乐子,这个便宜法术好像就是为此而生的。$(br2)$(o)嘶嘶嘶嘶嘶……$()",
- "hexcasting.action.hexical:myodesopsia": "飞蚊症",
- "hexical.page.myodesopsia.summary": "在我周围构筑所给列表中图案的投影,对我自己和附近玩家可见。无需消耗$(media)媒质$()。",
- "hexical.page.myodesopsia.description": "这些图案投影和使用其他方法施法时出现的“浮游物”类似,也许它只是构筑了施放所给列表后会出现的东西。有趣的是,各个图案不管在列表中出现多少次,都只会投射一次。",
+ "hexical.page.parrot.description": "如果鹦鹉无法模仿声音,此法术便不会有功效,但仍会消耗$(media)媒质$()。$(br2)我觉得这大概只能用来给朋友和敌人开玩笑。也许自然真的允许我偶尔用$(hex)咒术$()找找乐子。$(br2)$(o)嘶嘶嘶嘶嘶……$()",
"hexical.page.meta_effects.title": "咒法学效果",
"hexcasting.action.hexical:effect_clouding": "雾濛西沉",
@@ -558,15 +600,8 @@
"hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会在缓慢缩回前造成高达三颗心的伤害。若在已经触发尖刺的位置重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
"hexical.page.tchotchke.title": "杂饰",
- "hexical.page.tchotchke.0": "$(item)杂饰$()和$(l:items/hexcasting)$(item)杂件$()比较相像。它们都有施法用的媒质储库,该储库耗尽后也不会消耗我的生命值和物品栏中的$(media)媒质$()物品。它们都无法重新充能,无法重新写入,对其使用$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()也都会将其毁灭。这种法杖的真正力量在于$(o)输入拦截$()。",
- "hexical.page.tchotchke.1": "手持$(item)杂饰$()时按下$(thing)$(k:attack)$()或$(thing)$(k:use)$(),它便会拦截这一按键,阻止我与世界交互。此时,它会施放给定的$(hex)咒术$(),按下$(thing)$(k:attack)$()时栈以 False 起始,$(thing)$(k:use)$()时则以 True。",
"hexcasting.action.hexical:conjure_tchotchke": "构筑杂饰",
- "hexical.page.conjure_tchotchke.summary": "在所给位置处使用给定$(media)媒质$()量和$(hex)咒术$()构筑$(item)杂饰$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$(),同时消耗存入储库的$(media)媒质$()。",
- "hexical.page.tchotchke.2": "我发现古代的$(hex)咒术师们$()很喜欢用这些物件,主要是因为用途多种多样和构筑便捷。杂饰内部还有一个 iota 存储空间,只能由其自身编辑。因此,每个杂饰都可看作完全封闭的魔法饰品。$(br2)$(o)完美的状态,不是不再需要增加什么,而是无可删减。$()",
- "hexcasting.action.hexical:write_tchotchke": "杂饰之策略",
- "hexical.page.write_tchotchke.summary": "向$(item)杂饰$()的内部存储写入 iota,将来用其施法时可以读出。可能招致“违犯他人”事故,且无法被其他物品读取。",
- "hexcasting.action.hexical:read_tchotchke": "杂饰之精思",
- "hexical.page.read_tchotchke.summary": "从$(item)杂饰$()的内部存储读出 iota。",
+ "hexical.page.conjure_tchotchke.summary": "在所给位置处使用给定$(media)媒质$()量构筑$(item)杂饰$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$(),同时消耗存入储库的$(media)媒质$()。",
"hexical.page.circle_spells.title": "法术环法术",
"hexical.page.circle_spells.0": "媒质流穿梭于$(l:greatwork/spellcircles)法术环$()中,其囊括的区域因而充盈着$(media)媒质$(),产生强大魔法效果和灵活控制其中$(media)媒质$()也就不再是难事。我将需要这种增浓媒质场的法术记载后页,它们只可由$(l:greatwork/impetus)促动石$()施放。",
@@ -609,13 +644,29 @@
"hexcasting.action.hexical:shader_spider": "分裂视野",
"hexical.page.shader_spider.summary": "将我的视野分裂为多个小块,和蜘蛛的视野大概差不多。不太清楚为什么这么做能让我看得更清晰……",
+ "hexical.page.lesser_sentinels.title": "初等哨卫",
+ "hexical.page.lesser_sentinels.0": "先插入一段哨卫理论:$(l:patterns/spells/sentinels)$(thing)哨卫$()是$(thing)自我$()在形而上学层面上剥离出的碎片。我可通过此关系驱除、请求、召唤哨卫,但每次交互都需要些许$(media)媒质$()用来“握手”。我可以$(l:patterns/great_spells/greater_sentinel)$(action)剥出更多的$(thing)自我$(),本质上相当于制造出了独立且近乎具有意识的碎片——它们能在我常规的影响范围之外施放$(hex)咒术$(),甚至还可“移动”。",
+ "hexical.page.lesser_sentinels.1": "$(thing)初等哨卫$()则更为简单:它基本就是带有一丝$(thing)自我$()的$(media)媒质$()口袋,大概只够在部署后维持存在,也大概只够它被我看见。$(br2)由于其感知力较弱,我可轻松与多个此类哨卫建立连接,也可轻易移动、驱除、构筑更多。$(l:patterns/spells/sentinels)$(thing)哨卫$()同一时刻只能存在一个,$(thing)初等哨卫$()则几乎没有数量限制。",
+ "hexcasting.action.hexical:set_lesser_sentinels": "部署哨卫",
+ "hexical.page.set_lesser_sentinels.summary": "驱除已有的全部$(thing)初等哨卫$(),再在列表中各位置处部署一个$(thing)初等哨卫$()。",
+ "hexcasting.action.hexical:get_lesser_sentinels": "渗透之精思",
+ "hexical.page.get_lesser_sentinels.summary": "返回我所有全部$(thing)初等哨卫$()的位置列表。",
+
+ "hexcasting.action.hexical:charm": "咒符",
+ "hexical.page.charm.0": "$(l:patterns/great_spells/charm)$(action)咒符$()法术可将任意物品变为独立的魔法物品,也即,和$(l:items/hexcasting)$(item)杂件$()类似。它们有一个$(media)媒质$()储库,耗尽即咒符消散,无法重新充能和重新写入。$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()会清除咒符。$(br2)$(o)达到完美,并不是好得不能再好,而是好得一点不多余。$()",
+ "hexical.page.charm.1": "咒符物品相较其他$(l:items/hexcasting)$(item)施法物品$()有若干特殊之处。$(br2)有两个图案可与其包含的 iota 交互。该 iota 存储空间只可通过该咒符物品读取和写入。$(br2)它们还能拦截输入。",
+ "hexical.page.charm.summary": "为物品施加所给$(hex)咒术$()的咒符。接受一个$(hex)咒术$(),还需提供存入的$(media)媒质$()量,以$(l:items/amethyst)$(item)紫水晶粉$()计。消耗相应媒质量和额外 3 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+ "hexical.page.charm.description": "法术的最后一个参数是 0 到 15 的整数,从最高位起各位用于编码$(thing)$(k:attack)$()、$(thing)$(k:sneak)+$(k:attack)$()、$(thing)$(k:use)$()、$(thing)$(k:sneak)+$(k:use)$()。$(br2)若某触发条件对应的位为 1,按下对应键位时即会阻断物品原有的功能,转而施放写入的$(hex)咒术$()。根据所按键位的不同,施法栈会分别以 0 到 3 的数起始。",
+ "hexcasting.action.hexical:write_charmed": "咒符之策略",
+ "hexical.page.write_charmed.summary": "向咒符物品内部的存储空间写入 iota。可能会招致“违犯他人”事故。",
+ "hexcasting.action.hexical:read_charmed": "咒符之精思",
+ "hexical.page.read_charmed.summary": "将咒符物品内部存有的 iota 压入栈顶。",
+
"hexcasting.action.hexical:greater_blink": "卓越闪现",
"hexical.page.greater_blink.0": "卓越闪现比$(l:patterns/great_spells/teleport)$(action)卓越传送$()要便宜许多。它不会在抵达时让我全身的物品散落。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
"hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往我面朝的方向传送 1 格。向量 (0, 1, 0) 会往我头顶的法向传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。向量 (1, 0, 0) 会往我的右侧传送 1 格。",
- "hexical.page.greater_blink.2": "$(o)长跳特!比你想的还要久——$()",
- "hexcasting.action.hexical:theodolite": "经纬仪之纯化",
- "hexical.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
+ "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往$(l:patterns/basics#hexcasting:get_entity_look)$(thing)我面朝的方向$()传送 1 格。向量 (0, 1, 0) 会往$(l:patterns/scrying/entities#hexposition:theodolite)$(thing)我头顶的法向$()传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。向量 (1, 0, 0) 会往我的右侧传送 1 格。",
+ "hexical.page.greater_blink.2": "$(o)我感到三根数轴精准地穿过我头颅的六面。在刹那之间,我仿佛被尖桩扎穿——吊在空中——然后随我先前的指示,我被猛烈地拽动——就沿着那些几何轴——移动如同在瞬间完成。$(br2)我肯定已经不是世界的一部分了——就算穿墙也不会留下哪怕一丁点痕迹。$()",
"hexical.page.meshes.title": "网斑",
"hexical.page.meshes.0": "网斑是$(l:patterns/spells/specks)视斑$()的进化形态。不会再受 iota 和图案的限制,也无需屈居于二维平面,网斑接受三维空间中的向量列表并在其间连线,由此带来的创意无穷无尽。网斑也会对大多数操纵视斑的图案有反应。",
diff --git a/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
index 3757b38851b8..ed2bcbbacbb9 100644
--- a/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
+++ b/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
@@ -38,6 +38,8 @@
"hexcasting.action.oneironaut:getsoulprint": "Soulprint Reflection",
"hexcasting.action.oneironaut:signitem": "Sign Item",
"hexcasting.action.oneironaut:checksignature": "Signature Purification",
+ "hexcasting.action.oneironaut:extradimensionaleval": "Heimdall's Gambit",
+ "hexcasting.action.oneironaut:shiftsentinel": "Shift Sentinel",
"this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
"item.oneironaut.pseudoamethyst_shard": "Pseudoamethyst Shard",
@@ -59,6 +61,7 @@
"item.oneironaut.mind_scalpel": "Synaptic Scalpel",
"item.oneironaut.monkfruit": "Monkfruit",
"item.oneironaut.rending_thorns": "Rending Thorns",
+ "item.oneironaut.library_card": "Akashic Library Card",
"block.oneironaut.noosphere_gate": "Inscrutable Rift",
"block.oneironaut.pseudoamethyst_block": "Pseudoamethyst Block",
@@ -108,6 +111,7 @@
"oneironaut.entry.soulprints": "Soulprints",
"oneironaut.entry.hover_elevator": "Hoverlifts",
"oneironaut.entry.flayrevival": "Artificial Minds",
+ "oneironaut.entry.heimdall": "Transdimensional Casting",
"this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
"oneironaut.page.spaceswap.1": "Accepts two lists of two vectors, to define two cuboids, and a Spatial Imprint. These cuboids must have the exact same dimensions and rotation.",
@@ -174,7 +178,7 @@
"oneironaut.page.super_budding.3": "Additionally, when cultivated in the Noosphere, budding pseudoamethyst will produce pseudoamethyst clusters rather than conventional amethyst. These clusters will of course yield pseudoamethyst shards, as well as an unstable form of pseudoamethyst containing about four times as much media as the regular shards. Unfortunately, due to this instability, it cannot be directly converted into usable media. However, it can be converted into many other forms of media crystal by simply bringing the two items together.",
"oneironaut.page.super_budding.4": "It seems to react to my gaze, as if endowed with some form of perception.",
"oneironaut.page.super_budding.5": "The media generation rate of budding pseudoamethyst is such that even when immersed in thought slurry to inhibit crystal formation, it will still yield usable amounts of media. While the overall supply is nigh-endless, the amount accessible to any given action is quite small, like an inch-deep ocean a million miles across. However, due to this minimal depth, the media will dissipate rapidly before reaching my staff when accessed from afar, such as when recharging an item.",
- "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I certainly $(o)can$() hold several of these in order to gain access to more easy media, this results in rapidly-diminishing returns.",
+ "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I $(o)can$() hold several of these in order to gain access to more media, this results in rapidly-diminishing returns. $(br)I should be careful not to craft with the wrong phial.",
"oneironaut.page.super_budding.7": "I can also jam one into a trinket in order to replace its media supply with an inexhaustible phial, giving it access to the endless media within. However, it cannot use any media other than that provided by the phial.",
"oneironaut.page.super_budding.8": "Writes a hex to the bottomless trinket in my other hand. Costs ten charged amethyst.",
"oneironaut.page.idea_inscription.1": "As the noosphere is a realm of thought, it stands to reason that it could be used for information storage. These patterns do just that, inscribing an iota into the noosphere and reading it back (regardless of my current dimension). They can also store iotas inside the minds of other beings, assuming their thoughts are as... $(o)unfettered$() as my own. In the notation for these patterns, \"key\" refers to any vector or compatible entity.",
@@ -214,7 +218,7 @@
"oneironaut.page.lore.treatise3.3": "However, by adding actual functionality and a bit of boolean logic, you can create a proper while loop. The code for the aforementioned infinite loop is as follows:$(br)Introspection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br)Retrospection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br2)By adding logic that changes whether the inner Hermes' Gambit gets evaluated based on a condition, you can make it stop once that condition is fulfilled.",
"oneironaut.page.lore.treatise3.4.header": "Loop Unrolling",
"oneironaut.page.lore.treatise3.4": "A more complex form of loop is an unrolled loop. Like Thoth's Gambit, it's created with a fixed number of iterations which can't easily be added to, but Charon's Gambit can be used to halt it early if need be. It also has the advantage that when done competently, it only ever produces one or two levels of recursion depth (not counting anything executed in the body of the loop). Loop unrolling is accomplished by creating a pattern list you want to repeat, duplicating it many times, and then combining all those lists into one.",
- "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:concat)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
+ "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:add)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
"oneironaut.page.lore.treatise4.1": "Some of my, erm, \"colleagues\" have trouble transcribing long hexes.$(br)\"This is too long!\"$(br)\"The grid doesn't have enough space!\"$(br)$(bold)Skill issue$(), I say. It's not like a hex is immutable once you've drawn the last Retrospection. All you need to do is save the work-in-progress hex to a focus (though you should make sure to conserve enough grid space to actually do this).",
"oneironaut.page.lore.treatise4.2": "Then you just use the $(l:patterns/lists)list manipulation$(/l) patterns to combine it with the other parts once you're done.$(br2)You don't even need to use multiple foci, you can just append one part to the last one as you finish them, and then save that to one focus. The multiple-focus method makes it easier to debug your finished hex, but as far as I know that's its only benefit compared to the one-focus method.",
"oneironaut.page.lore.science1.1": "$(o)\"What is this and how do I get rid of it?\"$()$(br)A question asked by many people upon their first encounter with a slipway. I don't have a good answer for the second part of the question, but I believe I can provide a satisfactory response to the first.$(br)From what I can tell, a slipway is a tiny hole in space, the other side of which is the media realm known as the Noosphere.",
@@ -230,7 +234,7 @@
"oneironaut.page.glow_ambit.1": "Despite diligent research, the source of the special properties of other hexcasters' entity references has eluded me. However, I've discovered a way to bestow one such property upon other beings, at least temporarily (and flashily).$(br)This spell allows casters to affect creatures from great distances just like the infinite-range aspect of a player reference. However, one must still be close to the target in order to perform the initial application.",
"oneironaut.page.glow_ambit.2": "Accepts a living entity, and allows it to be accessed from anywhere for one minute. Has a base cost of one amethyst shard, plus one additional shard per application before allowing it to expire.",
"oneironaut.page.glow_ambit.3": "It seems that this effect functions by causing the target to emit some sort of psionic resonance, strong enough to cause its outline to be \"visible\" through all manner of barriers (perhaps hexcasters naturally produce this same resonance, but much subtler?). However, this glow is distinct from that induced by spectral arrows and similar, so don't bet on things to detect that working for this.",
- "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:oneironaut:patterns/idea_inscription)Idea Inscription$(/l).",
+ "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:patterns/idea_inscription)Idea Inscription$(/l).",
"oneironaut.page.soulprints.2": "Returns my soulprint, mishapping if cast using anything other than a staff. Costs a negligible amount of media.",
"oneironaut.page.soulprints.3": "Invisibly engraves my soulprint onto the item in my other hand, or erases it if it is already there. Costs 1 amethyst dust.$(br)I should be careful to seal any focuses or similar that I sign, as acquiring an unsealed signed focus may allow someone to impersonate me, and Erase Item gets rid of the signature.",
"oneironaut.page.soulprints.4": "Accepts a soulprint, and checks if the item in my other hand is engraved with it. Returns true if so, false otherwise. Costs a negligible amount of media.",
@@ -240,14 +244,19 @@
"oneironaut.page.hover_elevator.meme":"$(o)Bad and naughty hexcasters get sent to the hover cube.",
"oneironaut.page.hover_elevator.4": "Additionally, I can create a repeater capable of extending the range of the emitters when placed between them, such that the stream can continue on as if it had just left the emitter. Of course, such an extension requires more powerful components, and even then the stream can only be extended by three repeaters before it becomes too unstable to form.",
"oneironaut.page.hover_elevator.5": "Fortunately, this device seems to be rather immaterial for some reason, and I can pass straight through it without having to carefully twist around it in the stream.$(br)$(o)No, it does not make the stream pause for a moment before continuing.",
- "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:oneironaut:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
+ "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
"oneironaut.page.flayrevival.2": "Accepts a flayed mob, and creates an artifical pseudo-mind to inhabit its body. Costs 16 charged amethyst when used on a villager or allay, or 10 amethyst shards for anything else.",
"oneironaut.page.flayrevival.3": "While these pseudo-minds are capable of moving their bodies around as if they were their original inhabitants, they are too simple to be called truly sapient, even with the rather loose definition of the term that must be used when applying it to villagers. As such, any villager \"restored\" in this manner loses any professional experience it had before, and cannot gain such experience ever again.",
"oneironaut.page.flayrevival.4": "They do, however, regain their ability to reproduce, with any children they produce being untainted by my craft.$(br2)I'm not sure why the restored villagers suddenly gain an affinity for green clothing, but at least it serves as a good indicator of which villagers will be of little further use.",
"oneironaut.page.monkfruit.1": "I've discovered that using the $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l) spell on a Sweet Berry Bush produces a rather interesting plant. It is much like the shrub it mutates from, however its thorns are imbued with a media field which siphons the minds of pricked creatures into the plant in order to grow. It can grow without this (albeit slowly), though it still requires minds nearby to provide small amounts of media.",
"oneironaut.page.monkfruit.2": "The fruit that this bush produces is quite sweet, and can be processed into sugar. Additionally, it releases bits of media during digestion, which seek out rechargeable items on my person. I should be wary of the thorns while picking the fruit.",
- "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:oneironaut:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
+ "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
"oneironaut.page.monkfruit.4": "$(o)It's not rocket science.$()",
+ "oneironaut.page.library_card.1": "In my search for a truly universal data storage method, I have designed a small device which allows me to read from Akashic Records in other dimensions while on my person. I need only write a spatial imprint to the item, and any future akashic read operations will be redirected to the stored dimension.$(br)Unfortunately, it does not allow me to $(o)write to$() them, but this is certainly better than nothing.",
+ "oneironaut.page.library_card.2": "$(o)It seems to exude some kind of sticky gloop.$()",
+ "oneironaut.page.heimdall.1": "A strange pattern that appears to be a variant of Hermes' Gambit. Accepts a spatial imprint and an executable iota, and attempts to cast the iota in the corresponding dimension.",
+ "oneironaut.page.heimdall.2": "While it does allow me to cast across dimensions, it is not the perfect solution that I have been searching for. For one thing, it seems to work only when cast directly by me, rather than via a spell circle or wisp. Additionally, media-consuming patterns cast in this way have their cost increased by 25%%. Finally, since I am not physically present in the target dimension, I need to use my Greater Sentinel (or other ambit-boosting effects) in order to affect anything in there.",
+ "oneironaut.page.heimdall.3": "Accepts a spatial imprint, and moves my sentinel to the corresponding dimension, with its coordinates scaled appropriately. Costs one amethyst shard. Mishaps if I do not currently have a sentinel.",
"this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
"oneironaut.advancements.noosphere.enter": "A Realm of Thought and Dream",
@@ -282,6 +291,7 @@
"this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
"hexcasting.mishap.oneironaut:badcuboid.mismatch": "Supplied cuboids are dissimilar.",
"hexcasting.mishap.oneironaut:badcuboid.toobig": "Supplied cuboids are too big.",
+ "hexcasting.mishap.oneironaut:badcuboid.overlap": "Supplied cuboids overlap in the same dimension.",
"hexcasting.mishap.oneironaut:uninfusable": "Expected an infusable block at %s, but got %s.",
"hexcasting.mishap.oneironaut:nonoosphere": "Expected one end of the transfer to be a special dimension.",
"hexcasting.mishap.oneironaut:norod": "Expected to be cast from a Reverberation Rod.",
@@ -291,6 +301,7 @@
"hexcasting.mishap.oneironaut:norequirediota": "The slime demands %s",
"hexcasting.mishap.oneironaut:requiresdifferententities": "an entity different from the target",
"hexcasting.mishap.oneironaut:nostaff": "%s expected to be cast using a staff.",
+ "hexcasting.mishap.oneironaut:nosentinel": "Could not find a sentinel to move.",
"oneironaut.mishap.noitemframe": "an item frame",
"oneironaut.mishap.invalidideakey": "a vector, player, or soulprint",
"oneironaut.mishap.unenlightenedtarget": "an enlightened player",
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/en_us.json b/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
index 1bcedbed5034..8fbdf3c934eb 100644
--- a/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
+++ b/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
@@ -69,6 +69,9 @@
"hexcasting.action.book.ephemera:getrider": "Equestrian Prfn.",
"hexcasting.action.ephemera:getmount": "Equestrian Purification II",
"hexcasting.action.book.ephemera:getmount": "Equestrian Prfn. II",
+ "hexcasting.action.ephemera:cancelflight": "Terminate Flight",
+ "hexcasting.action.ephemera:getflight/type": "Aviator's Purification II",
+ "hexcasting.action.ephemera:getflight/remaining": "Aviator's Purification III",
"hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
"hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
@@ -93,10 +96,12 @@
"ephemera.entry.hashing": "Iota Hashing",
"ephemera.entry.specialslates": "Modified Slates",
"ephemera.entry.metathoth": "Accumulator Manipulation",
+ "ephemera.entry.flight": "Additional Flight Patterns",
"ephemera.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
"ephemera.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
"ephemera.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
+
"ephemera.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
"ephemera.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
"ephemera.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
@@ -113,9 +118,16 @@
"ephemera.page.miscpatterns.14": "Accepts an entity, and returns a list of entities seated atop it.",
"ephemera.page.miscpatterns.15": "Accepts an entity, and returns the entity it is seated atop.",
+ "ephemera.page.flight.1": "I've often found the preexisting suite of flight-related patterns to be a bit lackluster. They work perfectly well if all you want to do is cast the spell and go, but they are not well-suited to doing anything more complex. These patterns should help with that.",
+ "ephemera.page.flight.2": "Cancels my current flight ability, at a cost of one tenth of an Amethyst Dust. Casting a new flight spell in the same instant allows me to continue flying, potentially with different parameters.",
+ "ephemera.page.flight.3": "Returns true if the target is under the effects of Anchorite's Flight, false if Wayfarer's Flight, null if neither.",
+ "ephemera.page.flight.4": "Returns how close the target is to the end of their flight spell, represented as either their distance to the boundary or how many seconds remain.",
+
"ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
"ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
+
"ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
+
"ephemera.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
"ephemera.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
"ephemera.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
@@ -127,11 +139,13 @@
"ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
"ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
"ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
+
"ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
"ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
"ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
"ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
"ephemera.page.magearmor.5": "This explanation assumes I am wearing no other armor, in practice the cost can be reduced to as little as 25%% of that formula's output if all but one of my armor slots is already occupied by more conventional armor.",
+
"ephemera.page.network.1": "I've devised a suite of patterns (plus a couple of blocks) to make links a bit more useful for things other than data transmission and media sharing.$(br2)Note that the patterns which fetch information about the network make no promises regarding whether returned linkables are within ambit.",
"ephemera.page.network.2": "Scans the link network connected to the input linkable up to a recursion depth equal to the input number (max 32), and returns a list of all connected linkables. Costs a negligible amount of media.",
"ephemera.page.network.3": "Accepts an entity to teleport, a linkable to use for access to its network, and a destination. If the entity is within 8 blocks of the linkable, and there is a network node within 4 blocks of the destination, the entity will be teleported. Cost varies based on what entity is teleported.",
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
index 5be07558256d..9e50d3f88ffc 100644
--- a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
+++ b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
@@ -69,6 +69,9 @@
"hexcasting.action.book.ephemera:getrider": "马术师之纯化",
"hexcasting.action.ephemera:getmount": "马术师之纯化,第二型",
"hexcasting.action.book.ephemera:getmount": "马术师之纯化,第二型",
+ "hexcasting.action.ephemera:cancelflight": "终止飞行",
+ "hexcasting.action.ephemera:getflight/type": "飞行员之纯化,第二型",
+ "hexcasting.action.ephemera:getflight/remaining": "飞行员之纯化,第三型",
"hexcasting.mishap.location_ephemera:inputrelaytprange": "目标实体距%s处的目标节点过远。",
"hexcasting.mishap.location_ephemera:outputrelaytprange": "无法在范围%s内找到已连接的节点。",
@@ -93,10 +96,12 @@
"ephemera.entry.hashing": "Iota 哈希",
"ephemera.entry.specialslates": "变种石板",
"ephemera.entry.metathoth": "累积栈操作",
+ "ephemera.entry.flight": "额外飞行图案",
"ephemera.page.paintconjured.1": "接受一个向量与代表染色剂的物品类型。如果目标为我自己的方块,消耗极少量媒质;否则消耗 1 个紫水晶粉。",
"ephemera.page.paintconjured.2": "将所给位置处构筑方块的颜色设置为所给染色剂的颜色;如果传入的是 Null,则将其设置为我意识的颜色。$(br2)不保证对非传统的构筑物质有效。",
"ephemera.page.paintconjured.3": "这种效果有着奇怪的庆典感,就好像它曾用于某个盛大的节庆活动,与会队伍会把自己队的颜色泼洒到对手的领地上,类似于意识层面上的占领。",
+
"ephemera.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
"ephemera.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
"ephemera.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
@@ -113,9 +118,16 @@
"ephemera.page.miscpatterns.14": "接受一个实体,返回在该实体上方落座的实体列表。",
"ephemera.page.miscpatterns.15": "接受一个实体,返回其所骑乘的实体。",
+ "ephemera.page.flight.1": "已有的飞行相关图案总是有些平淡。如果只是想施法然后飞,那已有的图案已经足够,但它们没法处理更复杂的需求。本节图案应该帮得上忙。",
+ "ephemera.page.flight.2": "去除当前的飞行能力,消耗 1/10 个紫水晶粉。在同一刻施放新的飞行法术可继续飞行,可借此更改参数。",
+ "ephemera.page.flight.3": "如果目标处于隐士之飞行影响下,返回 True;如果处于旅者之飞行影响下,返回 False;两者都不适用返回 Null。",
+ "ephemera.page.flight.4": "返回目标距其飞行法术结束的量度,返回值的意义可变。可以是距飞行界限的距离,也可以是剩余的飞行秒数。",
+
"ephemera.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
"ephemera.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
- "ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
+
+ "ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能类似,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
+
"ephemera.page.status_iotas.1": "这些图案主要操作代表生物身上长时效果的 iota,我可以用这些图案评估生物的状态,比只用护士之纯化更加深入彻底。$(br)虽然我的研究表明,代表瞬时效果的状态 iota 有存在的可能,但它们非常难以获取,而且我目前没想到它们有什么用途。",
"ephemera.page.status_iotas.2": "接受一个生物,并返回目标当前所有效果组成的列表 iota。",
"ephemera.page.status_iotas.3": "接受一个状态效果,并根据该效果对生物产生正面、负面,或中性影响返回一个数。",
@@ -127,11 +139,13 @@
"ephemera.page.status_iotas.9": "接受一个活体实体,并返回其在生命值受影响前能吸收的伤害量。",
"ephemera.page.status_iotas.10": "接受一个实体和一个状态效果,并移除该实体身上的所给状态效果。消耗由效果自身的伤害性、强度、剩余持续时间决定。",
"ephemera.page.status_iotas.11": "若是要移除非自身实体身上的正面效果,则消耗会增加。$(br2)所有需要检测实体身上有无所给状态效果的图案都有副作用。如果该实体当前没有这种效果,则图案会失效,并给予我反胃。",
+
"ephemera.page.magearmor.1": "我发现了一种比较有趣的法术,它能够产生防御性的媒质屏障,防护力媲美甚至超过许多种传统盔甲。此类屏障甚至还能给予穿戴者许多$(l:patterns/spells/status_iotas)持久效果$(/l),堪称泛用。",
"ephemera.page.magearmor.2": "接受作为盔甲接收方的玩家,盔甲的耐久度,盔甲的护甲值(最多为 10),施加的状态效果,状态效果的等级。最后两个参数可用其他类型的 iota 代替,此时这两个参数会被忽略。",
"ephemera.page.magearmor.3": "当然,这种屏障并非无法破坏。除去受击致损外,其耐久度还会持续减少。这种减少效应的基础速率看作每秒 1 “点”,则还需附加上其中效果等级平方个“点”。此外,穿戴者脱下后它们会立刻消失。换言之,除非重新施法覆写其状态,否则没有方法修复它们。",
"ephemera.page.magearmor.4": "此法术的媒质消耗比较复杂:每 60 点耐久度基础消耗 1 个紫水晶粉,乘以护甲值的 1.5 次幂,再乘以任意状态效果的等级 + 1。因此,不提供状态效果、护甲值为 10、耐久度够支持 1 分钟的盔甲需消耗大约 31.5 个紫水晶粉。再令其给予生命恢复 II,消耗就来到了大约 94.5 个紫水晶粉,并且在消失前也只能坚持 36 秒。",
"ephemera.page.magearmor.5": "这一计算结果的前提是我没有穿戴其他盔甲,实际操作中消耗可以缩减到最低 25%%,出现在所有盔甲槽位中只有 1 格空出的情况中。",
+
"ephemera.page.network.1": "我设计了一系列图案和若干方块,旨在赋予链接更多用途,除去已有数据传输和媒质共享之外。$(br2)需要注意,对于从网络中获取信息的图案,其返回的可链接事物不一定处在影响范围之内。",
"ephemera.page.network.2": "递归扫描与输入端可链接事物相连的链接网络,最大深度为所给数(最高为 32),并返回所有可链接事物组成的列表。消耗极少量媒质。",
"ephemera.page.network.3": "接受需传送的实体,用于访问网络的可链接事物,以及目的地。如果实体位于所给可链接事物 8 格之内,且距目的地 4 格之内存在网络节点,则实体会被传送。消耗量由被传送实体的类型决定。",
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
index bece575d5814..ed2bcbbacbb9 100644
--- a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
+++ b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
@@ -291,6 +291,7 @@
"this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
"hexcasting.mishap.oneironaut:badcuboid.mismatch": "Supplied cuboids are dissimilar.",
"hexcasting.mishap.oneironaut:badcuboid.toobig": "Supplied cuboids are too big.",
+ "hexcasting.mishap.oneironaut:badcuboid.overlap": "Supplied cuboids overlap in the same dimension.",
"hexcasting.mishap.oneironaut:uninfusable": "Expected an infusable block at %s, but got %s.",
"hexcasting.mishap.oneironaut:nonoosphere": "Expected one end of the transfer to be a special dimension.",
"hexcasting.mishap.oneironaut:norod": "Expected to be cast from a Reverberation Rod.",
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
index f291c504597f..1a9dafc3c40d 100644
--- a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
+++ b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
@@ -291,6 +291,7 @@
"this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
"hexcasting.mishap.oneironaut:badcuboid.mismatch": "提供的长方体尺寸不相同。",
"hexcasting.mishap.oneironaut:badcuboid.toobig": "提供的长方体尺寸过大。",
+ "hexcasting.mishap.oneironaut:badcuboid.overlap": "提供的长方体在同维度内有重叠。",
"hexcasting.mishap.oneironaut:uninfusable": "本应在%s处有一个可灌注方块,而实际为%s。",
"hexcasting.mishap.oneironaut:nonoosphere": "互换的其中一方需为一个特殊维度。",
"hexcasting.mishap.oneironaut:norod": "需要以回响之杖施放。",
From 3c90348718ce3af177eee9238a22ce84189d3de9 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 10 Jun 2025 09:44:41 +0800
Subject: [PATCH 37/78] Hexstructions create
---
.../hexstructions/lang/en_us.json | 25 +++++++++++++++++++
.../hexstructions/lang/zh_cn.json | 25 +++++++++++++++++++
2 files changed, 50 insertions(+)
create mode 100644 projects/1.20-fabric/assets/hexstructions/hexstructions/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/hexstructions/hexstructions/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/hexstructions/hexstructions/lang/en_us.json b/projects/1.20-fabric/assets/hexstructions/hexstructions/lang/en_us.json
new file mode 100644
index 000000000000..3687aaab16a3
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexstructions/hexstructions/lang/en_us.json
@@ -0,0 +1,25 @@
+{
+ "hexcasting.action.hexstruction:save_structure": "Devour Structure",
+ "hexcasting.action.hexstruction:load_structure": "Actualize Structure",
+ "hexcasting.action.hexstruction:display_structure": "Visualize Structure",
+ "hexcasting.action.hexstruction:mirror_front_back": "Mirror Prfn. Z",
+ "hexcasting.action.hexstruction:mirror_left_right": "Mirror Prfn. X",
+ "hexcasting.action.hexstruction:rotate_clockwise": "Rotation Prfn. CW",
+ "hexcasting.action.hexstruction:rotate_counterclockwise": "Rotation Prfn. CCW",
+
+ "hexstruction.page.structures.title": "Structure Iota",
+ "hexstruction.page.structures.0": "Inspired by my ability to both break and place blocks, I've devised a method to expand those capabilities. By breaking down a portion of the world itself into the mere concept of that space, I can store entire regions in my mind as a Structure iota, which I can manipulate and place back into the world. Unfortunately, it appears nature rejects my attempts to store budding amethyst and its ilk.",
+ "hexstruction.page.structures.1": "Nature prefers to conserve matter; as a result, every copy of the same Structure iota will reference the same structure. Once one is used to place the structure back into the world, no other copy will be able to do the same. When \"devouring\" a structure from the world, it appears to define an \"origin\" at the lower North-West corner of the supplied bounds. This appears to remain true even after applying any number of transformations to the structure.",
+
+ "hexstruction.page.mirror_front_back.summary": "Flips a stored Structure front-to-back, or across the Z-axis.",
+ "hexstruction.page.mirror_left_right.summary": "Flips a stored Structure left-to-right, or across the X-axis.",
+ "hexstruction.page.rotate_clockwise.summary": "Rotates a stored Structure 90-degrees clockwise.",
+ "hexstruction.page.rotate_counterclockwise.summary": "Rotates a stored Structure 90-degrees counterclockwise.",
+
+ "hexstruction.page.structure_spells.title": "Structures",
+
+ "hexstruction.page.save_structure.summary": "Removes the locations of two corners from the stack, then consumes a region of space defined by those two corners, storing the result in a Structure iota.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block consumed, including air.",
+ "hexstruction.page.load_structure.summary": "Removes the location of the structure's origin and a structure from the stack, then attempts to place the structure at the origin, erasing the structure from all memory. Mishaps if any part of the structure overlaps with another block.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block in the structure's bounding box.",
+ "hexstruction.page.display_structure.summary.0": "Removes the location of the structure's origin and a structure from the stack, followed by a duration between 0 and 72000.",
+ "hexstruction.page.display_structure.summary.1": "Displays a phantom structure at that location for the specified duration (in ticks). Does not erase the structure from memory.$(br)Costs about a hundredth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block displayed within the structure's bounding box (including empty space)."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexstructions/hexstructions/lang/zh_cn.json b/projects/1.20-fabric/assets/hexstructions/hexstructions/lang/zh_cn.json
new file mode 100644
index 000000000000..825bd921bfd6
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexstructions/hexstructions/lang/zh_cn.json
@@ -0,0 +1,25 @@
+{
+ "hexcasting.action.hexstruction:save_structure": "吞噬结构",
+ "hexcasting.action.hexstruction:load_structure": "实现结构",
+ "hexcasting.action.hexstruction:display_structure": "显示结构",
+ "hexcasting.action.hexstruction:mirror_front_back": "镜像之纯化,Z型",
+ "hexcasting.action.hexstruction:mirror_left_right": "镜像之纯化,X型",
+ "hexcasting.action.hexstruction:rotate_clockwise": "旋形之纯化,顺时针型",
+ "hexcasting.action.hexstruction:rotate_counterclockwise": "旋形之纯化,逆时针型",
+
+ "hexstruction.page.structures.title": "结构 Iota",
+ "hexstruction.page.structures.0": "我具有破坏和放置方块的能力;受此启发,我想到了一种拓展它们的方法。只需将世界的一部分拆解为简单的、对该区域的概念,就可将整片区域存入意识,形成结构 iota。我可操纵此类 iota,还可将其放回世界之中。可惜,自然似乎不允许我存储紫水晶母岩之类的方块。",
+ "hexstruction.page.structures.1": "自然追求物质的守恒;因此,同一个结构 iota 的复制产物都对应同一个结构。只要某次放置使用了其中之一,则其他所有指向同一结构的 iota 都不可再用于放置。从世界中“吞噬”结构时,似乎会将“原点”定在所给区域西北方靠下的角落。无论结构经过何种变换,“原点”都会保持在那个角落。",
+
+ "hexstruction.page.mirror_front_back.summary": "前后翻转结构,也即跨 Z 轴镜像。",
+ "hexstruction.page.mirror_left_right.summary": "左右翻转结构,也即跨 X 轴镜像。",
+ "hexstruction.page.rotate_clockwise.summary": "将所存结构顺时针旋转 90 度。",
+ "hexstruction.page.rotate_counterclockwise.summary": "将所存结构逆时针旋转 90 度。",
+
+ "hexstruction.page.structure_spells.title": "结构",
+
+ "hexstruction.page.save_structure.summary": "移除栈顶两个位置向量,并吞噬这两个位置作为角落所定义的区域,然后把产物存储为结构 iota。$(br)每吞噬一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$,空气也不例外。",
+ "hexstruction.page.load_structure.summary": "移除栈顶结构原点向量和一个结构,并尝试在该原点的位置处放置结构,同时清除其他存储位置中代表同一结构的 iota。如果结构的任意一个部分与其他方块重叠,即会招致事故。$(br)结构范围内每有一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexstruction.page.display_structure.summary.0": "移除栈顶的结构原点向量、一个结构和一个 0 到 72000 之间的数,第三参数代表持续时间。",
+ "hexstruction.page.display_structure.summary.1": "在给定位置显示结构的影响,持续时间以刻计。此操作不会清除其他同种 iota。$(br)结构范围内每显示一个方块消耗大约 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$,也包括空气。"
+}
\ No newline at end of file
From e9324081eff1dc56b4bc93def974f8c46133eed8 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 10 Jun 2025 09:45:33 +0800
Subject: [PATCH 38/78] Hexstruction path
---
.../hexstructions => hexstruction/hexstruction}/lang/en_us.json | 0
.../hexstructions => hexstruction/hexstruction}/lang/zh_cn.json | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename projects/1.20-fabric/assets/{hexstructions/hexstructions => hexstruction/hexstruction}/lang/en_us.json (100%)
rename projects/1.20-fabric/assets/{hexstructions/hexstructions => hexstruction/hexstruction}/lang/zh_cn.json (100%)
diff --git a/projects/1.20-fabric/assets/hexstructions/hexstructions/lang/en_us.json b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json
similarity index 100%
rename from projects/1.20-fabric/assets/hexstructions/hexstructions/lang/en_us.json
rename to projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json
diff --git a/projects/1.20-fabric/assets/hexstructions/hexstructions/lang/zh_cn.json b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json
similarity index 100%
rename from projects/1.20-fabric/assets/hexstructions/hexstructions/lang/zh_cn.json
rename to projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json
From 8a26a6a3fae6ebaec4d880ae2d074528f8671ae4 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Thu, 12 Jun 2025 08:13:02 +0800
Subject: [PATCH 39/78] Hexstruction update
---
.../hexstruction/hexstruction/lang/en_us.json | 14 +++++++++-----
.../hexstruction/hexstruction/lang/zh_cn.json | 14 +++++++++-----
2 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json
index 3687aaab16a3..0a256fa9eb60 100644
--- a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json
+++ b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json
@@ -6,20 +6,24 @@
"hexcasting.action.hexstruction:mirror_left_right": "Mirror Prfn. X",
"hexcasting.action.hexstruction:rotate_clockwise": "Rotation Prfn. CW",
"hexcasting.action.hexstruction:rotate_counterclockwise": "Rotation Prfn. CCW",
+ "hexcasting.action.hexstruction:bounding_box": "Bounding Prfn.",
+ "hexcasting.action.hexstruction:transformations": "Transformation Prfn.",
"hexstruction.page.structures.title": "Structure Iota",
- "hexstruction.page.structures.0": "Inspired by my ability to both break and place blocks, I've devised a method to expand those capabilities. By breaking down a portion of the world itself into the mere concept of that space, I can store entire regions in my mind as a Structure iota, which I can manipulate and place back into the world. Unfortunately, it appears nature rejects my attempts to store budding amethyst and its ilk.",
- "hexstruction.page.structures.1": "Nature prefers to conserve matter; as a result, every copy of the same Structure iota will reference the same structure. Once one is used to place the structure back into the world, no other copy will be able to do the same. When \"devouring\" a structure from the world, it appears to define an \"origin\" at the lower North-West corner of the supplied bounds. This appears to remain true even after applying any number of transformations to the structure.",
+ "hexstruction.page.structures.0": "Inspired by my ability to both break and place blocks, I've devised a method to expand those capabilities. By breaking down a portion of the world itself into the mere concept of that space, I can store entire regions in my mind as a Structure iota, which I can manipulate and place back into the world. Unfortunately, it appears nature rejects my attempts to store $(l:basics/geodes)$(item)Budding Amethyst/$ and its ilk.",
+ "hexstruction.page.structures.1": "Nature prefers to conserve matter; as a result, every copy of the same Structure iota will reference the same structure. Once one is used to place the structure back into the world, no other copy will be able to do the same. Coercing the iota to a boolean will return whether or not the iota remains valid. When \"devouring\" a structure from the world, it appears to define an \"origin\" at the lower North-West corner of the supplied bounds. This appears to remain true even after applying any number of transformations to the structure.",
"hexstruction.page.mirror_front_back.summary": "Flips a stored Structure front-to-back, or across the Z-axis.",
"hexstruction.page.mirror_left_right.summary": "Flips a stored Structure left-to-right, or across the X-axis.",
"hexstruction.page.rotate_clockwise.summary": "Rotates a stored Structure 90-degrees clockwise.",
"hexstruction.page.rotate_counterclockwise.summary": "Rotates a stored Structure 90-degrees counterclockwise.",
+ "hexstruction.page.bounding_box.summary": "Removes a Structure from the stack, returning its dimensions in the format [x, y, z].",
+ "hexstruction.page.transformations.summary": "Removes a Structure from the stack, returning its transformations as a list in the format [mirror, rotation].$(br)No Mirror -> 0; Front-Back -> 1; Left-Right -> 2$(br)No Rotation -> 0; 90 CW -> 1; 180 CW -> 2; 90 CCW -> 3",
"hexstruction.page.structure_spells.title": "Structures",
- "hexstruction.page.save_structure.summary": "Removes the locations of two corners from the stack, then consumes a region of space defined by those two corners, storing the result in a Structure iota.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block consumed, including air.",
- "hexstruction.page.load_structure.summary": "Removes the location of the structure's origin and a structure from the stack, then attempts to place the structure at the origin, erasing the structure from all memory. Mishaps if any part of the structure overlaps with another block.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block in the structure's bounding box.",
+ "hexstruction.page.save_structure.summary": "Removes the locations of two corners from the stack, then consumes a region of space defined by those two corners, storing the result in a Structure iota.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block consumed.",
+ "hexstruction.page.load_structure.summary": "Removes the location of the structure's origin and a structure from the stack, then attempts to place the structure at the origin, erasing the structure from all memory. Mishaps if any part of the structure overlaps with another block.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block placed.",
"hexstruction.page.display_structure.summary.0": "Removes the location of the structure's origin and a structure from the stack, followed by a duration between 0 and 72000.",
- "hexstruction.page.display_structure.summary.1": "Displays a phantom structure at that location for the specified duration (in ticks). Does not erase the structure from memory.$(br)Costs about a hundredth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block displayed within the structure's bounding box (including empty space)."
+ "hexstruction.page.display_structure.summary.1": "Displays a phantom structure at that location for the specified duration (in ticks). Does not erase the structure from memory.$(br)Costs about a hundredth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block displayed."
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json
index 825bd921bfd6..da73fec548ac 100644
--- a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json
@@ -6,20 +6,24 @@
"hexcasting.action.hexstruction:mirror_left_right": "镜像之纯化,X型",
"hexcasting.action.hexstruction:rotate_clockwise": "旋形之纯化,顺时针型",
"hexcasting.action.hexstruction:rotate_counterclockwise": "旋形之纯化,逆时针型",
+ "hexcasting.action.hexstruction:bounding_box": "界限之纯化",
+ "hexcasting.action.hexstruction:transformations": "变换之纯化",
"hexstruction.page.structures.title": "结构 Iota",
- "hexstruction.page.structures.0": "我具有破坏和放置方块的能力;受此启发,我想到了一种拓展它们的方法。只需将世界的一部分拆解为简单的、对该区域的概念,就可将整片区域存入意识,形成结构 iota。我可操纵此类 iota,还可将其放回世界之中。可惜,自然似乎不允许我存储紫水晶母岩之类的方块。",
- "hexstruction.page.structures.1": "自然追求物质的守恒;因此,同一个结构 iota 的复制产物都对应同一个结构。只要某次放置使用了其中之一,则其他所有指向同一结构的 iota 都不可再用于放置。从世界中“吞噬”结构时,似乎会将“原点”定在所给区域西北方靠下的角落。无论结构经过何种变换,“原点”都会保持在那个角落。",
+ "hexstruction.page.structures.0": "我具有破坏和放置方块的能力;受此启发,我想到了一种拓展它们的方法。只需将世界的一部分拆解为简单的、对该区域的概念,就可将整片区域存入意识,形成结构 iota。我可操纵此类 iota,还可将其放回世界之中。可惜,自然似乎不允许我存储$(l:basics/geodes)$(item)紫水晶母岩/$之类的方块。",
+ "hexstruction.page.structures.1": "自然追求物质的守恒;因此,同一个结构 iota 的复制产物都对应同一个结构。只要某次放置使用了其中之一,则其他所有指向同一结构的 iota 都不可再用于放置。将此类 iota 强制转换为布尔值,所得结果代表该 iota 还是否可用。从世界中“吞噬”结构时,似乎会将“原点”定在所给区域西北方靠下的角落。无论结构经过何种变换,“原点”都会保持在那个角落。",
"hexstruction.page.mirror_front_back.summary": "前后翻转结构,也即跨 Z 轴镜像。",
"hexstruction.page.mirror_left_right.summary": "左右翻转结构,也即跨 X 轴镜像。",
"hexstruction.page.rotate_clockwise.summary": "将所存结构顺时针旋转 90 度。",
"hexstruction.page.rotate_counterclockwise.summary": "将所存结构逆时针旋转 90 度。",
+ "hexstruction.page.bounding_box.summary": "移除栈顶结构,返回其尺寸,格式为 [x, y, z]。",
+ "hexstruction.page.transformations.summary": "移除栈顶结构,返回其经历的变换,格式为 [镜像, 旋转]。$(br)无镜像 -> 0;前后翻转 -> 1;左右翻转 -> 2$(br)无旋转 -> 0;90 度顺时针 -> 1;180 度顺时针 -> 2;90 度逆时针 -> 3",
"hexstruction.page.structure_spells.title": "结构",
- "hexstruction.page.save_structure.summary": "移除栈顶两个位置向量,并吞噬这两个位置作为角落所定义的区域,然后把产物存储为结构 iota。$(br)每吞噬一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$,空气也不例外。",
- "hexstruction.page.load_structure.summary": "移除栈顶结构原点向量和一个结构,并尝试在该原点的位置处放置结构,同时清除其他存储位置中代表同一结构的 iota。如果结构的任意一个部分与其他方块重叠,即会招致事故。$(br)结构范围内每有一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexstruction.page.save_structure.summary": "移除栈顶两个位置向量,并吞噬这两个位置作为角落所定义的区域,然后把产物存储为结构 iota。$(br)每吞噬一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。",
+ "hexstruction.page.load_structure.summary": "移除栈顶结构原点向量和一个结构,并尝试在该原点的位置处放置结构,同时清除其他存储位置中代表同一结构的 iota。如果结构的任意一个部分与其他方块重叠,即会招致事故。$(br)每放置一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。",
"hexstruction.page.display_structure.summary.0": "移除栈顶的结构原点向量、一个结构和一个 0 到 72000 之间的数,第三参数代表持续时间。",
- "hexstruction.page.display_structure.summary.1": "在给定位置显示结构的影响,持续时间以刻计。此操作不会清除其他同种 iota。$(br)结构范围内每显示一个方块消耗大约 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$,也包括空气。"
+ "hexstruction.page.display_structure.summary.1": "在给定位置显示结构的影响,持续时间以刻计。此操作不会清除其他同种 iota。$(br)每显示一个方块消耗大约 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。"
}
\ No newline at end of file
From adac6d849115990bf909ea52f2044e91ae6e7f55 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 24 Jun 2025 18:56:00 +0800
Subject: [PATCH 40/78] =?UTF-8?q?Oneironaut=20Hexpose=20Overevaluate=20Hex?=
=?UTF-8?q?cassettes=20Hexcellular=20Hexical=20update=EF=BC=9A=E5=AE=98?=
=?UTF-8?q?=E5=BA=93=E6=9B=B4=E6=96=B0=20Caduceus=20SpecialEfhexs=20Hexodu?=
=?UTF-8?q?s=20Hexportation=20Scryglass=20create?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../caduceus/lang/en_us.flatten.json5 | 118 +++++++++
.../caduceus/lang/zh_cn.flatten.json5 | 118 +++++++++
.../assets/1UNKNOWN/efhexs/lang/en_us.json | 44 ++++
.../assets/1UNKNOWN/efhexs/lang/zh_cn.json | 44 ++++
.../assets/1UNKNOWN/hexodus/lang/en_us.json | 21 ++
.../assets/1UNKNOWN/hexodus/lang/zh_cn.json | 21 ++
.../1UNKNOWN/hexportation/lang/en_us.json | 27 ++
.../1UNKNOWN/hexportation/lang/zh_cn.json | 27 ++
.../assets/1UNKNOWN/hexpose/lang/en_us.json | 238 ++++++++++++++++++
.../assets/1UNKNOWN/hexpose/lang/zh_cn.json | 237 +++++++++++++++++
.../1UNKNOWN/hexposition/lang/en_us.json | 221 ----------------
.../1UNKNOWN/hexposition/lang/zh_cn.json | 221 ----------------
.../1UNKNOWN/overevaluate/lang/en_us.json | 2 +-
.../1UNKNOWN/overevaluate/lang/zh_cn.json | 2 +-
.../assets/1UNKNOWN/scryglass/lang/en_us.json | 19 ++
.../assets/1UNKNOWN/scryglass/lang/zh_cn.json | 19 ++
.../hexcassettes/lang/en_us.json | 22 +-
.../hexcassettes/lang/zh_cn.json | 22 +-
.../hexcellular/lang/en_us.json | 19 +-
.../hexcellular/lang/zh_cn.json | 19 +-
.../modrinth-hexical/hexical/lang/en_us.json | 36 +--
.../modrinth-hexical/hexical/lang/zh_cn.json | 30 ++-
.../oneironaut/oneironaut/lang/en_us.json | 2 +
.../oneironaut/oneironaut/lang/en_us.json | 2 +
.../oneironaut/oneironaut/lang/zh_cn.json | 2 +
25 files changed, 1026 insertions(+), 507 deletions(-)
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/en_us.flatten.json5
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/zh_cn.flatten.json5
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/en_us.flatten.json5
new file mode 100644
index 000000000000..435487857412
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/en_us.flatten.json5
@@ -0,0 +1,118 @@
+{
+ caduceus: {
+ book: {
+ basics: {
+ caduceus_changes: {
+ "": "Caduceus Changes",
+ "1": "I have noticed some changes to the behavior of certain $(l:patterns/meta#hexcasting:eval/cc)meta-evaluation techniques/$ as of late.$(br2)\
+ Jump iotas are no longer entirely opaque to me - I can now see the $(l:patterns/jump_manipulation)components/$ that make them up, although I have not yet managed to isolate one.",
+ "2": "Additionally, it seems $(l:casting/mishaps)Too Many Iotas/$ mishaps have become more common when working with Jump iotas. I should take care not to delve too deep.",
+ },
+ },
+ casting: {
+ continuations: {
+ "": "A Primer On Jumps",
+ "1": "As with $(l:casting/vectors)vectors/$ for more mundane tasks, it seems I will need a deeper understanding of Jump iotas (also called continuations) if I am to make the most of my new discoveries. I have collected some \"light reading material\" on the topic.",
+ "2": {
+ text: "First, an encyclopedia entry on the concept of \"first-class continuations\", the abstract concept embodied by Jump iotas. It also discusses the \"call/cc\" operator, which is roughly equivalent to $(l:patterns/meta#hexcasting:eval/cc)$(action)Iris' Gambit/$.",
+ link_text: "Wikipedia",
+ },
+ "3": {
+ text: "Next, a blog post on \"delimited continuations\", with some concrete examples that may be feasible to rewrite as _Hexes for practice. I may find this useful if I am having trouble understanding $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ and $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Arke's Gambit/$.",
+ link_text: "Blog Post",
+ },
+ "4": {
+ text: "Finally, if I can overlook a bit of fourth-wall breaking, this document gives an overview of the specific techniques employed by Nature to interpret my _Hexes.",
+ link_text: "How Casting Works",
+ },
+ },
+ caduceus_mishaps: {
+ "": "Caduceus Mishaps",
+ "1": "This section documents the mishaps that can occur when manipulating Jump iotas and using delimited jumps.",
+ no_prompt: {
+ title: "Uncontained Arke",
+ text: "I attempted to draw $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Arke's Gambit/$ without wrapping it in $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$.",
+ },
+ },
+ },
+ patterns: {
+ delimcc: {
+ "": "Delimited Jumps",
+ "eval/prompt": "Cast a pattern or list of patterns from the stack exactly like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, except that anything outside of this cast will not be captured by an $(l:patterns/delimcc#caduceus:eval/control)$(action)Arke's Gambit/$ within it.",
+ "eval/control": {
+ "1": "Cast a pattern or list of patterns from the stack similarly to $(l:patterns/meta#hexcasting:eval/cc)$(action)Iris' Gambit/$. Must be drawn within $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$.",
+ "2": "All of the patterns that would have been drawn between the end of the pattern list and the end of the enclosing $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ are $(italic)moved/$ into a Call iota, which is pushed to the stack instead of a Jump iota.$(br2)\
+ When the Call iota is executed, the captured patterns will be cast as if by $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$. If the Call iota is not executed, the rest of the patterns within the enclosing $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ will be skipped.",
+ },
+ },
+ jump_manipulation: {
+ "": "Jump Manipulation",
+ "1": "Just like my _Hexes interact with the $(l:casting/stack)stack/$, Nature uses a stack of its own (made up of \"frames\") when casting my _Hexes. Jump iotas contain a snapshot of this stack at a particular moment in time, and I can use the patterns in this section to deconstruct and rearrange that snapshot.$(br)\
+ Unfortunately, despite their similarity to Jump iotas, it seems these patterns do $(italic)not/$ work on Call iotas.",
+ add: "Remove the Jump iota at the top of the stack, then add all its frames to the bottom of the Jump iota at the top of the stack.",
+ abs: "Remove the Jump iota at the top of the stack, then push the number of frames within it to the stack.",
+ splat: "Remove the Jump iota at the top of the stack, then, for each of its frames, push a new Jump iota containing only that frame to the stack.",
+ construct: "Remove the Jump iota at the top of the stack, then add its top frame to the top of the Jump iota at the top of the stack.",
+ deconstruct: "Remove the top frame from the Jump iota at the top of the stack, then push a new Jump iota containing only that frame to the stack.",
+ jump_tags: {
+ title: "Jump Tags",
+ text: "The $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$ is not the only place that I can store information within a _Hex. In fact, I am able to hide iotas within the very concept of evaluation. I call this technique $(thing)jump tags/$; some other texts refer to it as \"continuation marks\".$(br2)\
+ There is one notable limitation of $(thing)jump tags/$, however: they can only hold a single iota at a time. Unlike the $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, even lists are too much."
+ },
+ "read/mark/local": "Copy the iota stored in the $(thing)jump tag/$ of the current evaluation and add it to the stack.",
+ "read/mark/iota": "Like $(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)Ewer's Reflection/$, but the iota is read out of the $(thing)jump tag/$ of the top frame in a Jump iota.",
+ "write/mark/local": {
+ "1": "Remove the top iota from the stack, and write it to the $(thing)jump tag/$ of the current evaluation.$(br)\
+ As with $(l:patterns/readwrite#hexcasting:write/entity)$(action)Chronicler's Gambit/$, I cannot write my own Name using this spell.",
+ "2": "I should be careful if using $(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)Ewer's Reflection/$ or $(l:patterns/jump_manipulation#caduceus:write/mark/local)$(action)Ewer's Gambit/$ at the very end of an invocation. The tag that it reads or writes may not be the one I expect.",
+ },
+ },
+ },
+ },
+
+ tooltip: {
+ continuation: {
+ "": "[Jump -> (%s)]",
+ delimited: "[Call -> (%s)]",
+
+ frame: {
+ mark: {
+ inline: "%s*",
+ hover: "Contains: %s",
+ },
+
+ "caduceus:": {
+ prompt: "Prompt",
+ },
+ "hexcasting:": {
+ evaluate: "Evaluate",
+ foreach: "ForEach",
+ end: "FinishEval",
+ },
+ },
+ },
+ },
+ },
+
+ hexcasting: {
+ action: {
+ "caduceus:": {
+ "eval/prompt": "Thetis' Gambit",
+ "eval/control": "Arke's Gambit",
+ "read/mark/local": "Ewer's Reflection",
+ "read/mark/iota": "Ewer's Purification",
+ "write/mark/local": "Ewer's Gambit",
+ },
+ },
+
+ mishap: {
+ no_prompt: "Did not first use Thetis' Gambit",
+ invalid_value: {
+ class: {
+ continuation: "a jump",
+ continuation_mark: "a valid jump tag",
+ },
+ },
+ },
+ },
+}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/zh_cn.flatten.json5 b/projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/zh_cn.flatten.json5
new file mode 100644
index 000000000000..3ff83d51ae2c
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/zh_cn.flatten.json5
@@ -0,0 +1,118 @@
+{
+ caduceus: {
+ book: {
+ basics: {
+ caduceus_changes: {
+ "": "Caduceus 中的改动",
+ "1": "我注意到某类$(l:patterns/meta#hexcasting:eval/cc)云运行技术/$的表现在近期发生了变化。$(br2)\
+ 跳转 iota 不再无法深入检验了:我现在可以看见组成它们的$(l:patterns/jump_manipulation)许多组件/$,但还没法把各组件分离出来。",
+ "2": "而且,似乎使用跳转 iota 时 $(l:casting/mishaps)Iota 过多/$事故会频繁出现。小心不要陷入沉思了。",
+ },
+ },
+ casting: {
+ continuations: {
+ "": "跳转入门",
+ "1": "如同普通的操作需对$(l:casting/vectors)向量/$有所见地,在将我的新发现运用到极致之前,也应当更深入地了解跳转 iota(又称“续体”/“continuation”)。我收集了些有关本主题的“轻松读物”。",
+ "2": {
+ text: "首先是一篇百科条目,主要介绍“第一类续体”的概念;这一概念由跳转 iota 实现。条目中还讨论了“以当前续体调用”/“call/cc”运算符,它和$(l:patterns/meta#hexcasting:eval/cc)$(action)伊里斯之策略/$大致等价。",
+ link_text: "维基百科",
+ },
+ "3": {
+ text: "然后是一篇博客,主要介绍“定界续体”/“delimited continuation”,还附带了详实的示例,可用$(hex)咒术/$重写以便练习。如果觉得理解$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$和$(l:patterns/delimcc#caduceus:eval/prompt)$(action)阿尔刻之策略/$有困难,可以读读这篇博客。",
+ link_text: "博客",
+ },
+ "4": {
+ text: "最后,如果不担心在某种程度上打破第四面墙,可以阅读这篇概览文档,以了解自然解读我$(hex)咒术/$的具体方式。",
+ link_text: "施法的原理",
+ },
+ },
+ caduceus_mishaps: {
+ "": "Caduceus 事故",
+ "1": "本节记录了操纵跳转 iota 和使用定界跳转时会出现的事故。",
+ no_prompt: {
+ title: "阿尔刻未受限",
+ text: "试图在$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$之外绘制$(l:patterns/delimcc#caduceus:eval/prompt)$(action)阿尔刻之策略/$。",
+ },
+ },
+ },
+ patterns: {
+ delimcc: {
+ "": "定界跳转",
+ "eval/prompt": "运行栈中的图案或图案列表,与$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$完全一致;区别在于,其内部的$(l:patterns/delimcc#caduceus:eval/control)$(action)阿尔刻之策略/$无法获取其外部的 iota。",
+ "eval/control": {
+ "1": "运行栈中的图案或图案列表,与$(l:patterns/meta#hexcasting:eval/cc)$(action)伊里斯之策略/$类似。必须绘制于$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$内部。",
+ "2": "将在图案列表末尾和$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$闭合之间绘制的图案会$(italic)转移/$到调用 iota 中;压入栈中的也不会是跳转 iota,而是此调用 iota。$(br2)\
+ 执行到调用 iota 时,其中捕获的图案会如同对其使用$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$一样施放。如果不去执行调用 iota,即会跳过$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$闭合前剩余的图案。",
+ },
+ },
+ jump_manipulation: {
+ "": "跳转操作",
+ "1": "就和我的$(hex)咒术/$能和$(l:casting/stack)栈/$交互一样,自然在处理我的$(hex)咒术/$时会使用自己的栈(由“帧”组成)。跳转 iota 中包含了该栈在某一时刻的快照,这些快照可由本节中的图案拆解和重构。$(br)\
+ 可惜,虽然调用 iota 和跳转 iota 很相似,但这些图案$(italic)无法/$作用于前者。",
+ add: "移除栈顶跳转 iota,再将其中所有栈帧加到此时栈顶跳转 iota 的底部。",
+ abs: "移除栈顶跳转 iota,再返回其中栈帧数。",
+ splat: "移除栈顶跳转 iota,再为其中各栈帧返回一个仅包含该栈帧本身的跳转 iota。",
+ construct: "移除栈顶跳转 iota,再将其顶部帧加到此时栈顶跳转 iota 的顶部。",
+ deconstruct: "移除栈顶跳转 iota 的顶部帧,再返回一个仅包含该栈帧本身的跳转 iota。",
+ jump_tags: {
+ title: "跳转标签",
+ text: "$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$并不是$(hex)咒术/$中唯一用来存储信息的位置。其实,我可以直接把 iota 藏到运行这一概念中去。我把这种技术叫作$(thing)跳转标签/$,部分其他文献则称其“续体标记”。$(br2)\
+ 不过,$(thing)跳转标签/$有一项局限:它们同一时刻只能持有单个 iota。和$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$不一样的是,它们就连列表都存不下。"
+ },
+ "read/mark/local": "复制当前运行所对应的$(thing)跳转标签/$中存储的 iota,并压入栈顶。",
+ "read/mark/iota": "和$(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)壶罐之精思/$类似,但会从跳转 iota 的顶部帧所对应的$(thing)跳转标签/$中读出。",
+ "write/mark/local": {
+ "1": "移除栈顶 iota,将其写入当前运行所对应的$(thing)跳转标签/$。$(br)\
+ 和$(l:patterns/readwrite#hexcasting:write/entity)$(action)编年史家之策略/$一样,不可向其写入真名。",
+ "2": "在调用结尾使用$(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)壶罐之精思/$或$(l:patterns/jump_manipulation#caduceus:write/mark/local)$(action)壶罐之策略/$时应当小心。它们读取或写入的标签并不一定符合预期。",
+ },
+ },
+ },
+ },
+
+ tooltip: {
+ continuation: {
+ "": "[Jump -> (%s)]",
+ delimited: "[Call -> (%s)]",
+
+ frame: {
+ mark: {
+ inline: "%s*",
+ hover: "包含:%s",
+ },
+
+ "caduceus:": {
+ prompt: "Prompt",
+ },
+ "hexcasting:": {
+ evaluate: "Evaluate",
+ foreach: "ForEach",
+ end: "FinishEval",
+ },
+ },
+ },
+ },
+ },
+
+ hexcasting: {
+ action: {
+ "caduceus:": {
+ "eval/prompt": "忒提斯之策略",
+ "eval/control": "阿尔刻之策略",
+ "read/mark/local": "壶罐之精思",
+ "read/mark/iota": "壶罐之纯化",
+ "write/mark/local": "壶罐之策略",
+ },
+ },
+
+ mishap: {
+ no_prompt: "没有先使用忒提斯之策略",
+ invalid_value: {
+ class: {
+ continuation: "一个跳转",
+ continuation_mark: "一个有效的跳转标签",
+ },
+ },
+ },
+ },
+}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
new file mode 100644
index 000000000000..0c94c6dbebcf
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
@@ -0,0 +1,44 @@
+{
+ "hexcasting.mishap.invalid_value.entity_list": "a list of entities",
+ "hexcasting.mishap.invalid_value.particle_id": "an identifier of a particle type",
+ "hexcasting.mishap.invalid_value.sound_id": "an identifier of a sound type",
+ "hexcasting.mishap.invalid_value.simple_particle_id": "an identifier of a simple particle type",
+
+ "efhexs.page.microphone.title": "Microphone",
+ "item.efhexs.microphone": "Microphone",
+ "efhexs.page.microphone.0": "The $(item)Microphone$() is an all-in-one tool for sounds and particles! I simply use it near a source of sounds and particles, and when I release, the particles and sounds are streamed for my _Hexes to analyze and use.",
+ "efhexs.page.microphone.1": "I need to get up close and personally experience particles or sound to utilize it in my _Hexes.$(br2)$(o)Check, check, is this thing on?$()",
+
+ "efhexs.page.targetted.title": "Haunting",
+ "efhexs.page.targetted.0": "I have discovered various spells for creating $(l:patterns/spells/particles)particles$() and $(l:patterns/spells/sounds)sounds$() but initially, these are plainly visible to everyone. What if instead, I wanted to only create effects for myself or haunt a specific player? That's where this pattern comes in. For the remainder of the _Hex, I can choose only certain players to be made privy.",
+ "hexcasting.action.efhexs:set_target": "Haunt",
+ "efhexs.page.set_target.summary": "Sets a list of players to be exclusively influenced by my special effects. If $(l:casting/influences)$(thing)Null$(), all can see my effects again.",
+
+ "efhexs.page.particles.title": "Particles",
+ "efhexs.page.particles.0": "Somehow, my $(l:items/microphone)$(item)Microphone$() is able to record the particles in the air! I can query and replay them to add a bit of flair to my _Hexes for essentially free.$(br2)$(o)All those moments will be lost in time, like tears in rain.$()",
+ "hexcasting.action.efhexs:get_particles": "Particulate Reflection",
+ "efhexs.page.get_particles.summary": "Pushes the last sixteen unique particles picked up by my $(l:items/microphone)$(item)Microphone$().",
+ "hexcasting.action.efhexs:play_particle": "Conjure Particle",
+ "efhexs.page.play_particle.summary": "Conjures a particular particle with a specified position and velocity (blocks per twentieth of a second). Costs about 1/32th of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "efhexs.page.play_particle.description": "This spell only works for \"simple\" particles, which are the majority. The remaining are too complicated to be boiled down into just a position and velocity but fortunately, I have documented various patterns for these more complicated effects.$(br2)They are all priced like the general spell and take a position and a velocity (compressed as \"...\") along with extra parameters.",
+ "hexcasting.action.efhexs:play_dust_particle": "Conjure Dust",
+ "efhexs.page.play_dust_particle.summary": "Conjures a small mote of dust of a given color. The number relates vaguely to scale and lifespan.",
+ "hexcasting.action.efhexs:play_dust_transition_particle": "Conjure Sparkly Dust",
+ "efhexs.page.play_dust_transition_particle.summary": "Conjures a gradient-like mote of dust, which smoothly transitions between the two colors given over the given number of seconds.",
+ "hexcasting.action.efhexs:play_block_particle": "Conjure Debris",
+ "efhexs.page.play_block_particle.summary": "Conjures a visual bit of debris, similar to that caused by breaking a block. Takes in a block identifier.",
+ "hexcasting.action.efhexs:play_falling_dust_particle": "Conjure Sediment",
+ "efhexs.page.play_falling_dust_particle.summary": "Conjures particles similar to that caused by suspended gravity-affected blocks. Takes in a block identifier.",
+ "hexcasting.action.efhexs:play_item_particle": "Conjure Fragments",
+ "efhexs.page.play_item_particle.summary": "Conjures a visual bit of fragments, similar to that caused by a tool breaking after wearing. Takes in an item iota.",
+ "hexcasting.action.efhexs:play_hex_particle": "Conjure Media",
+ "efhexs.page.play_hex_particle.summary": "Conjures a blob of visible _media, not unlike the waste product of my _Hexes. Takes in a color.",
+
+ "efhexs.page.sounds.title": "Sounds",
+ "efhexs.page.sounds.0": "Using the $(l:items/microphone)$(item)Microphone$(), I can query the sounds that I have been close to. After that, I am able to replay them to add fun sound effects to my _Hexes.$(br2)$(o)If a tree falls in a forest and no one is around to hear it, does it make a sound?$()",
+ "hexcasting.action.efhexs:get_sounds": "Audio Reflection",
+ "efhexs.page.get_sounds.summary": "Pushes the last sixteen unique sounds picked up by my $(l:items/microphone)$(item)Microphone$().",
+ "hexcasting.action.efhexs:play_sound": "Play Sound",
+ "efhexs.page.play_sound.summary": "Plays a sound at a particular location, volume, and pitch. Costs about a sixteenth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "efhexs.page.play_sound.description": "Volume and pitch are all numbers that range between 0 and 2. Volume controls both loudness and distance that sound can be heard. Meanwhile, pitch controls the \"speed\" the sound is played.$(br2)The sound is entirely disembodied to any body or event. It seems that the spell essentially uses tiny bits of _media manipulation to vibrate the air precisely into a given sound."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
new file mode 100644
index 000000000000..7f988ac430ba
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
@@ -0,0 +1,44 @@
+{
+ "hexcasting.mishap.invalid_value.entity_list": "一个实体列表",
+ "hexcasting.mishap.invalid_value.particle_id": "一个粒子类型标识",
+ "hexcasting.mishap.invalid_value.sound_id": "一个声音类型标识",
+ "hexcasting.mishap.invalid_value.simple_particle_id": "一个简单粒子类型的标识",
+
+ "efhexs.page.microphone.title": "麦克风",
+ "item.efhexs.microphone": "麦克风",
+ "efhexs.page.microphone.0": "$(item)麦克风$()是能捕获声音和粒子事件的多用途工具!在声源和粒子源旁使用,当松开使用键时,捕获到的粒子和声音就会进入$(hex)咒术$()以供分析和使用。",
+ "efhexs.page.microphone.1": "需要本人靠近并亲身听见声音或看见粒子才能捕获供$(hex)咒术$()所用。$(br2)$(o)Check、check,麦开了吗?$()",
+
+ "efhexs.page.targetted.title": "萦音",
+ "efhexs.page.targetted.0": "我发现了制造$(l:patterns/spells/particles)粒子$()和$(l:patterns/spells/sounds)声音$()的法术,但刚开始时它们造出的东西所有人都能看见听见。要是我只给自己制造效果,或是只让效果呈现给某个玩家,会怎么样呢?这就是这个图案的用武之地了。这条法术之后,便只有我指定的玩家能看见我制造的粒子和听见我制造的声音。",
+ "hexcasting.action.efhexs:set_target": "萦音",
+ "efhexs.page.set_target.summary": "只让玩家列表内的玩家受我制造的特殊效果影响。若传入 $(l:casting/influences)$(thing)Null$(),可让所有人都能感受到我的效果。",
+
+ "efhexs.page.particles.title": "粒子",
+ "efhexs.page.particles.0": "不知怎的,我的$(l:items/microphone)$(item)麦克风$()还能记录空气中的粒子!记录后就能在$(hex)咒术$()中使用,给它们加点风味,而且还几乎无需消耗。$(br2)$(o)所有这些时刻终会在时光中消失,就像泪水消失在雨中。$()",
+ "hexcasting.action.efhexs:get_particles": "粒子之精思",
+ "efhexs.page.get_particles.summary": "返回$(l:items/microphone)$(item)麦克风$()捕获的最近 16 种新粒子。",
+ "hexcasting.action.efhexs:play_particle": "构筑粒子",
+ "efhexs.page.play_particle.summary": "在给定位置以给定速度(格每 1/20 秒)构筑特定粒子。消耗大约 1/32 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "efhexs.page.play_particle.description": "此法术只对“简单”的粒子有效。大多数粒子都是简单粒子,剩余的那些太过复杂,无法仅以位置和速度描述。不过好在我记录了这些复杂效果专用的若干图案。$(br2)它们的消耗与通用法术类似,且都接受一个位置和一个速度(缩写为“...”),也同时需提供额外参数。",
+ "hexcasting.action.efhexs:play_dust_particle": "构筑尘埃",
+ "efhexs.page.play_dust_particle.summary": "构筑给定颜色的尘埃。参数中的数大致对应量级和持续时间。",
+ "hexcasting.action.efhexs:play_dust_transition_particle": "构筑闪亮尘埃",
+ "efhexs.page.play_dust_transition_particle.summary": "构筑渐变色的尘埃,它会在给定秒数内在两种颜色间平滑过渡。",
+ "hexcasting.action.efhexs:play_block_particle": "构筑残屑",
+ "efhexs.page.play_block_particle.summary": "构筑可视的残屑,与破坏方块时产生的粒子类似。需要接受方块标识。",
+ "hexcasting.action.efhexs:play_falling_dust_particle": "构筑积尘",
+ "efhexs.page.play_falling_dust_particle.summary": "构筑积尘粒子,这些粒子与受重力影响但悬浮的方块所产生的类似。需要接受方块标识。",
+ "hexcasting.action.efhexs:play_item_particle": "构筑碎屑",
+ "efhexs.page.play_item_particle.summary": "构筑可视的碎屑,与工具损毁时产生的粒子类似。需要一个物品 iota。",
+ "hexcasting.action.efhexs:play_hex_particle": "构筑媒质",
+ "efhexs.page.play_hex_particle.summary": "构筑一团可视的$(media)媒质$(),和我的$(hex)咒术$()出的纰漏类似。需要一个颜色。",
+
+ "efhexs.page.sounds.title": "声音",
+ "efhexs.page.sounds.0": "$(l:items/microphone)$(item)麦克风$()可以探测声源离我较近的声音。此后可重放它们,给$(hex)咒术$()加些好玩的音效。$(br2)$(o)如果森林里有棵树倒了,但附近没人听见,那它还算是发出了声音吗?$()",
+ "hexcasting.action.efhexs:get_sounds": "音频之精思",
+ "efhexs.page.get_sounds.summary": "返回$(l:items/microphone)$(item)麦克风$()最后获取到的 16 种新声音。",
+ "hexcasting.action.efhexs:play_sound": "播放声音",
+ "efhexs.page.play_sound.summary": "在给定位置以给定音量和音高播放声音。消耗大约 1/16 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "efhexs.page.play_sound.description": "音量和音高都是介于 0 和 2 之间的数。音量控制响度和声音的传播距离。音高则控制音频的播放“速度”。$(br2)如此发出的声音并不与实体声源或声音事件相关。法术似乎只是操纵$(media)媒质$()来让空气振动,从而发出完全一致的声音。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
new file mode 100644
index 000000000000..0e4053826d91
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
@@ -0,0 +1,21 @@
+{
+ "hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
+
+ "hexodus.page.gravity.title": "Gravitation",
+ "hexodus.page.gravity.0": "While I can use a $(item)Ballast$() to alter $(thing)Gravity$()'s effects on my own body, I have also discovered a spell capable of adjusting $(thing)Gravity$()'s pull on $(o)any$() entity, albeit very shortly.$(br2)$(o)There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss$().",
+ "hexcasting.action.hexodus:change_gravity": "Gravitate",
+ "hexodus.page.change_gravity.summary": "Takes an entity, an axial vector for new gravity, and a strength scalar relative to standard pull. Specifics are detailed on the next page.",
+ "hexodus.page.gravity.1": "The scalar can be any number 0 to 5 inclusive.$(br2)If the target is myself, this spell costs about one-fourth of an $(l:items/amethyst)$(item)Amethyst Dust$(). If the target is another player, costs about one $(l:items/amethyst)$(item)Amethyst Shard$(). Otherwises, costs about one $(l:items/amethyst)$(item)Amethyst Dust$().$(br2)Each cast of the spell only lasts for about two and a half seconds; for sustained gravitation, I will need some kind of automated _Hexcasting to periodically reapply the effects.",
+ "hexcasting.action.hexodus:get_duration": "Grasp Purification",
+ "hexodus.page.get_duration.summary": "Pushes the remaining twentieths of a second that $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() will affect an entity. Zero if the entity is not under the effects of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$().",
+ "hexcasting.action.hexodus:get_direction": "Falling Purification",
+ "hexodus.page.get_direction.summary": "Pushes the direction that $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() is attempting to drag an entity, or $(l:casting/influences)$(thing)Null$() if the entity is not under the effects of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$().",
+ "hexcasting.action.hexodus:get_strength": "Impact Purification",
+ "hexodus.page.get_strength.summary": "Pushes the scaling factor of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$()'s gravity compared to baseline, or $(l:casting/influences)$(thing)Null$() if the entity is not under the effects of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$().",
+ "hexodus.page.gravity.2": "I have discovered some theorywork about $(thing)Gravity$(). It appears every $(thing)Gravity$()-generating phenomenon has a numerical $(o)priority$(). The direction $(thing)Gravity$() pulls a given entity along is dictated by whichever force has most priority upon that entity.$(br2)The $(thing)Gravity$() created by $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() is notably rather weak; other sources of $(thing)Gravity$() often overpower it. I can use this to anchor myself against hostile _Hexcasters.",
+ "hexodus.page.gravity.3": "Gravitational strength is settled through a much more democratic process. Each source of $(thing)Gravity$() declares some scaling factor. For $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$(), that is a number between and including 0 and 5.$(br2)When pulling, $(thing)Gravity$() multiplies all the provided scaling factors together to determine the force with which to pull.$(br2)On the next few pages are some patterns used to measure \"true\" gravity.",
+ "hexcasting.action.hexodus:get_true_direction": "Falling Purification II",
+ "hexodus.page.get_true_direction.summary": "Pushes the direction of $(thing)Gravity$() acting on an entity.",
+ "hexcasting.action.hexodus:get_true_strength": "Impact Purification II",
+ "hexodus.page.get_true_strength.summary": "Pushes strength of $(thing)Gravity$() acting on an entity compared to baseline."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
new file mode 100644
index 000000000000..d1e1177eba4d
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
@@ -0,0 +1,21 @@
+{
+ "hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
+
+ "hexodus.page.gravity.title": "重力",
+ "hexodus.page.gravity.0": "我可以使用$(item)压载$()来改变$(thing)重力$()对我的影响;同时我还发现了一个法术,可以用来调整$(thing)重力$()对$(o)任意$()实体的影响,虽然持续时间不长。$(br2)$(o)据说,飞行是有技巧的,或者更应该说,是有窍门的。这窍门就在于向地面扑去而错过地面。$()",
+ "hexcasting.action.hexodus:change_gravity": "施重力",
+ "hexodus.page.change_gravity.summary": "接受一个实体,一个代表新重力方向的轴向向量,以及相对于标准重力强度的倍数。细节见后页。",
+ "hexodus.page.gravity.1": "倍数可从 0 到 5 任选,包括 0 和 5。$(br2)若目标是我自己,消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。如果目标是其他玩家,消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。其他情况下消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。$(br2)每次施法的效果会持续大约 2.5 秒;为让这种重力长久存在,需要某种自动化$(hex)咒法学$()施法方式以不断重新赋予效果。",
+ "hexcasting.action.hexodus:get_duration": "抓握之纯化",
+ "hexodus.page.get_duration.summary": "返回$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()的效果在所给实体上还会持续多少个 1/20 秒。若实体未受$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()影响,则返回 0。",
+ "hexcasting.action.hexodus:get_direction": "坠落之纯化",
+ "hexodus.page.get_direction.summary": "返回$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()对实体的施力方向。若实体未受$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()影响,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexodus:get_strength": "冲击之纯化",
+ "hexodus.page.get_strength.summary": "返回$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()的效果强度相对基线的倍数。若实体未受$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()影响,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexodus.page.gravity.2": "我发现了一些有关$(thing)重力$()的理论文献。似乎每个产生$(thing)重力$()的现象都有以数表示的$(o)优先级$()。$(thing)重力$()对某实体的施力方向只由优先级最高的效果决定。$(br2)$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()产生的$(thing)重力$()显著较弱,其他来源的$(thing)重力$()通常能盖过它。面对敌对的$(hex)咒法师$()时,我可以利用这一点来锚定自身。",
+ "hexodus.page.gravity.3": "重力强度则更像是平等讨论决定的。$(thing)重力$()的各个来源都会声明其施力倍数。对$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()来说,是 0 到 5 之间的数,包括 0 和 5。$(br2)产生效果时,$(thing)重力$()会将所有倍数乘算,以此决定最终的施力强度。$(br2)后页会介绍用于测量“真正”的重力的若干图案。",
+ "hexcasting.action.hexodus:get_true_direction": "坠落之纯化,第二型",
+ "hexodus.page.get_true_direction.summary": "返回$(thing)重力$()对实体的实力方向。",
+ "hexcasting.action.hexodus:get_true_strength": "冲击之纯化,第二型",
+ "hexodus.page.get_true_strength.summary": "返回实体所受$(thing)重力$()的强度相对基线的倍数。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json
new file mode 100644
index 000000000000..8435208ac399
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json
@@ -0,0 +1,27 @@
+{
+ "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.",
+ "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.",
+ "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.",
+ "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.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/1UNKNOWN/hexportation/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json
new file mode 100644
index 000000000000..397284488440
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json
@@ -0,0 +1,27 @@
+{
+ "hexportation.entry.conduit": "输流通路",
+
+ "hexcasting.action.hexportation:make_conduit": "创建输流",
+ "hexportation.page.make_conduit": "接受来源存储空间的位置与输出面法向量,以及目的存储空间的位置和输入面法向量,依此创建一条输流通路。",
+ "hexcasting.action.hexportation:send_item": "输送",
+ "hexportation.page.send_item": "令给定输流通路发出给定数量的物品。会使用找到的第一处资源。",
+ "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": "尝试从各个槽位取出给定数量的资源发送。列表与存储空间的槽位数不符不会招致事故。",
+ "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.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/1UNKNOWN/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
new file mode 100644
index 000000000000..39109b48cb34
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
@@ -0,0 +1,238 @@
+{
+ "hexcasting.mishap.invalid_value.cat": "a cat",
+ "hexcasting.mishap.invalid_value.class.identifier": "an identifier",
+ "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
+ "hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
+ "hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
+ "hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
+ "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
+ "hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
+ "hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
+ "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
+ "hexcasting.mishap.invalid_value.media_holding": "a media holding item or entity",
+ "hexcasting.mishap.invalid_value.painting": "a painting",
+ "hexcasting.mishap.invalid_value.potion_holding": "a potion holding item or entity",
+ "hexcasting.mishap.invalid_value.tamable": "a tameable entity",
+
+ "hexpose.item_stack.format": " | %s (%d)",
+ "hexpose.item_stack.null": "Null Item",
+
+ "hexcasting.action.book.hexpose:get_effect_amplifier": "Concentration Dstl.",
+ "hexcasting.action.book.hexpose:get_effects_item": "Prescription Purif.",
+ "hexcasting.action.book.hexpose:get_enchantments": "Thaumaturgist's Purif.",
+ "hexcasting.action.book.hexpose:breedable": "Reproduction Purif.",
+ "hexcasting.action.book.hexpose:theodolite": "Theodolite Purif.",
+ "hexcasting.action.book.hexpose:get_air": "Suffocation Purif.",
+ "hexcasting.action.book.hexpose:is_wet": "Enderman's Purif.",
+ "hexcasting.action.book.hexpose:identify": "Detective's Purif.",
+ "hexcasting.action.book.hexpose:damage_stack": "Deterioration Purif.",
+ "hexcasting.action.book.hexpose:classify": "Modicum Purif.",
+ "hexcasting.action.book.hexpose:villager_profession": "Professional Purif.",
+ "hexcasting.action.book.hexpose:get_biome": "Geographical Purif.",
+ "hexcasting.action.book.hexpose:get_weather": "Meterologist's Refl.",
+
+ "hexpose.page.enlightened_patterns.title": "Enlightened Patterns",
+ "hexpose.page.enlightened_patterns.0": "After $(thing)Enlightenment$(), I find myself acutely aware of certain patterns that aid with my newfound abilities. These patterns don't seem to require anything from me that I didn't have before; perhaps I was always able to cast them but was simply unaware of their existence. An unenlightened player will be able to use $(l:items/hexcasting)$(item)casting devices$() with these patterns.",
+ "hexcasting.action.hexpose:am_enlightened": "Epiphany Purification",
+ "hexpose.page.am_enlightened.summary": "Pushes whether the given player has achieved $(thing)Enlightenment$().",
+ "hexcasting.action.hexpose:is_brainswept": "Sentience Purification",
+ "hexpose.page.is_brainswept.summary": "Pushes whether an entity has been \"magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
+
+ "hexpose.page.perlin.title": "Quasirandomness",
+ "hexpose.page.perlin.0": "I have not found a way to harness it yet, but I notice ambient _media is not distributed evenly throughout reality. I can measure its concentration at a point in space and time to get a random number between 0 and 1, corresponding to media levels at that point in space and time. Points close together in space and time tend to have similar values.",
+ "hexcasting.action.hexpose:perlin": "Perlin Distillation",
+ "hexpose.page.perlin.summary": "Measures the concentration of ambient _media at a point in space and time, normalized between 0 and 1.",
+
+ "hexpose.page.special_raycasts.title": "Special Raycasts",
+ "hexcasting.action.hexpose:fluid_raycast": "Dousing Distillation",
+ "hexpose.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
+ "hexcasting.action.hexpose:fluid_surface_raycast": "Lilypad Distillation",
+ "hexpose.page.fluid_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but targets only liquids, piercing through all other blocks.",
+ "hexcasting.action.hexpose:piercing_raycast": "Railgun Exaltation",
+ "hexpose.page.piercing_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
+ "hexcasting.action.hexpose:piercing_surface_raycast": "Laser Exaltation",
+ "hexpose.page.piercing_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
+
+ "hexpose.category.scrying": "Scrying",
+ "hexpose.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world.$(br2)While likely not useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
+
+ "hexpose.page.blocks.title": "Blocks",
+ "hexcasting.action.hexpose:block_hardness": "Miner's Purification",
+ "hexpose.page.block_hardness.summary": "Pushes how difficult blocks of this type are to mine.",
+ "hexcasting.action.hexpose:block_blast_resistance": "Demoman's Purification",
+ "hexpose.page.block_blast_resistance.summary": "Pushes how resistant blocks of this type are to explosions.",
+ "hexcasting.action.hexpose:blockstate_rotation": "Orientation Purification",
+ "hexpose.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or $(l:casting/influences)$(thing)Null$() if blocks of its type do not have an orientation.",
+ "hexcasting.action.hexpose:blockstate_crop": "Farmer's Purification",
+ "hexpose.page.blockstate_crop.summary": "Pushes a number 0 to 1 corresponding to the growth progress of that block. Works for crops, $(item)Beehives$(), $(item)Composters$(), $(item)Cauldrons$(), and strangely $(item)Cakes$() too.",
+ "hexpose.page.get_blockstates.description":
+ "Every block has a list of $(o)facets$(): simple aspects that distinguish them from other blocks of the same type. For example, orientation, how far along a crop is to growing, and whether a door is open or shut are all facets.$(br2)Nature provides two patterns that allow _Hexcasting to read and analyze facets of any blocks within ambit.",
+ "hexcasting.action.hexpose:get_blockstates": "Facet Purification",
+ "hexpose.page.get_blockstates.summary": "Pushes a list of all facets of that block.",
+ "hexcasting.action.hexpose:query_blockstate": "Facet Distillation",
+ "hexpose.page.query_blockstate.summary": "Takes a block and a facet and pushes that facet's value.",
+ "hexpose.page.query_blockstate.description": "If the block does not have the given facet, the pattern pushes $(l:casting/influences)$(thing)Null$(). For the most part, it is quite intuitive: the pattern produces booleans, directional vectors, and integers, whichever matches the facet best.$(br2)For certain facets that deal with a state among a variety of them, it will produce a seemingly random yet consistent integer. If a facet is too alien, a senseless iota is produced.",
+
+ "hexpose.page.entities.title": "Entities",
+ "hexcasting.action.hexpose:entity_width": "Caliper's Purification",
+ "hexpose.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
+ "hexcasting.action.hexpose:theodolite": "Theodolite's Purification",
+ "hexpose.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
+ "hexcasting.action.hexpose:get_health": "Vitality Purification",
+ "hexpose.page.get_health.summary": "Pushes how close an entity is to death. I can think of these in terms of half-hearts.",
+ "hexcasting.action.hexpose:get_max_health": "Fitness Purification",
+ "hexpose.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
+ "hexcasting.action.hexpose:get_air": "Suffocation Purification",
+ "hexpose.page.get_air.summary": "Pushes the number of seconds before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
+ "hexcasting.action.hexpose:get_max_air": "Lung Purification",
+ "hexpose.page.get_max_air.summary": "Pushes the number of seconds a regular entity of that type can last outside their normal breathing environment before they start suffocating.",
+ "hexcasting.action.hexpose:burning": "Inferno Purification",
+ "hexpose.page.burning.summary": "Pushes the number of seconds the burning entity will continue burning if not put out. -1 if the entity is not burning currently.",
+ "hexcasting.action.hexpose:is_wet": "Enderman's Purification",
+ "hexpose.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
+ "hexcasting.action.hexpose:is_baby": "Youth Purification",
+ "hexpose.page.is_baby.summary": "Pushes whether a living creature is a baby. Also works on $(item)Armor Stands$() oddly.",
+ "hexcasting.action.hexpose:breedable": "Reproduction Purification",
+ "hexpose.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or $(l:casting/influences)$(thing)Null$() if that creature is not capable of that type of reproduction.",
+ "hexcasting.action.hexpose:is_sleeping": "Sloth's Purification",
+ "hexpose.page.is_sleeping.summary": "Pushes whether the $(item)Player$(), $(item)Cat$(), $(item)Fox$(), or other entity is sleeping.",
+ "hexcasting.action.hexpose:is_sprinting": "Racer's Purification",
+ "hexpose.page.is_sprinting.summary": "Pushes whether the $(item)Player$(), $(item)Cat$(), $(item)Fox$(), or other entity is sprinting. Swimming and leaving the ground after starting to sprint are still included.",
+ "hexcasting.action.hexpose:entity_vehicle": "Vehicle Purification",
+ "hexpose.page.entity_vehicle.summary": "Pushes the entity the given entity is riding or $(l:casting/influences)$(thing)Null$() if it is not riding in or on anything.",
+ "hexcasting.action.hexpose:entity_passengers": "Jockey Purification",
+ "hexpose.page.entity_passengers.summary": "Pushes a list of entities that are riding the given entity.",
+ "hexcasting.action.hexpose:shooter": "Shooter Purification",
+ "hexpose.page.shooter.summary": "Pushes the shooter of the given projectile entity or $(l:casting/influences)$(thing)Null$() if it has no shooter or isn't a projectile. It also pushes $(l:casting/influences)$(thing)Null$() if the shooter is outside my ambit.",
+ "hexcasting.action.hexpose:pet_owner": "Adoration Purification",
+ "hexpose.page.pet_owner.summary": "Pushes the player that has tamed this animal, or $(l:casting/influences)$(thing)Null$() if it is untamed or the player is out of ambit.",
+
+ "hexpose.page.environment.title": "Environment",
+ "hexpose.page.environment.0": "These patterns are meta: they concern properties of the magical environment they are cast in. Mostly useful in avoiding $(l:casting/mishaps)$(thing)mishaps$().",
+ "hexcasting.action.hexpose:env_ambit": "Ambit Purification",
+ "hexpose.page.env_ambit.summary": "Pushes whether a location or entity is in ambit.",
+ "hexcasting.action.hexpose:env_staff": "Staff Reflection",
+ "hexpose.page.env_staff.summary": "Pushes whether a $(l:items/staff)$(item)Staff$() is being used to cast this pattern.",
+ "hexcasting.action.hexpose:env_offhand": "Dexterity Reflection",
+ "hexpose.page.env_offhand.summary": "Pushes whether the dominant hand of the caster is being used to cast this pattern. May return strange results for casters without hands.",
+ "hexcasting.action.hexpose:env_packaged_hex": "Device Reflection",
+ "hexpose.page.env_packaged_hex.summary": "Pushes whether any form of $(l:items/hexcasting)$(item)casting device$() is being used to cast this pattern.",
+ "hexcasting.action.hexpose:env_circle": "Constructed Reflection",
+ "hexpose.page.env_circle.summary": "Pushes whether some form of $(l:greatwork/spellcircles)$(thing)$(o)grand work$() is being used to cast this pattern.",
+
+ "hexpose.page.food.title": "Food",
+ "hexcasting.action.hexpose:get_player_hunger": "Hunger Purification",
+ "hexpose.page.get_player_hunger.summary": "Pushes how full a $(item)Player$() is. I can think of this in terms of half-hunger-hunches.",
+ "hexcasting.action.hexpose:get_player_saturation": "Stamina Purification",
+ "hexpose.page.get_player_saturation.summary": "Pushes a $(item)Player$()'s saturation, which roughly correlates to how long the $(item)Player$() will remain full.",
+ "hexcasting.action.hexpose:edible": "Edibility Purification",
+ "hexpose.page.edible.summary": "Takes in an item identifier and pushes whether I can eat it.",
+ "hexcasting.action.hexpose:get_hunger": "Calorie Purification",
+ "hexpose.page.get_hunger.summary": "Takes in an item identifier and pushes the amount it will fill me.",
+ "hexcasting.action.hexpose:get_saturation": "Satiation Purification",
+ "hexpose.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill me.",
+ "hexcasting.action.hexpose:is_meat": "Flesh Purification",
+ "hexpose.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat. $(item)Wolves$() can eat meats.",
+ "hexcasting.action.hexpose:is_snack": "Dessert Purification",
+ "hexpose.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack.",
+
+ "hexpose.page.identifiers.title": "Identifiers",
+ "hexpose.page.identifiers.0": "The identifier iota is Nature's solution to allowing _Hexes to specifically identify types. Every type of entity, block, status effect, enchantment, sound, and more has a unique identifier attached which a _Hex can retrieve and compare.",
+ "hexcasting.action.hexpose:identify": "Detective's Purification",
+ "hexpose.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
+ "hexcasting.action.hexpose:classify": "Modicum Purification",
+ "hexpose.page.classify.summary": "Pushes the identifier of an iota's type. Can be used to determine whether two iota are the same type.",
+
+ "hexpose.page.item.title": "Items",
+ "hexpose.page.item.0": "An item iota holds nearly all information that distinguish a stack of items from another and _Hexes can use them to query specifics. There is one exception: an item iota loses any item iota contained within the item. The already intricate folds of _media that form item iota simply unravel when nested within even more layers of abstraction.",
+ "hexpose.page.item.1": "$(item)Players$() manipulate _media idly just as a byproduct of being sentient. This aura of _media is mostly inert but strikes back, often violently at attempts of in-depth scrying. Externally exposed items such as armor and held items can be spied on, but attempts to deeply analyze their inventory will fail.$(br2)Nature respects boundaries.",
+ "hexcasting.action.hexpose:get_stack": "Item Purification",
+ "hexpose.page.get_stack.summary": "Pushes the item that an $(item)Item$() in the world is.",
+ "hexcasting.action.hexpose:create_stack": "Offer Purification",
+ "hexpose.page.create_stack.summary": "Creates an item iota from an item identifier and the number of items in the stack.",
+ "hexcasting.action.hexpose:get_mainhand": "Tool Purification",
+ "hexpose.page.get_mainhand.summary": "Returns the item in the entity's mainhand.",
+ "hexcasting.action.hexpose:get_offhand": "Accessory Purification",
+ "hexpose.page.get_offhand.summary": "Returns the item in the entity's offhand.",
+ "hexcasting.action.hexpose:get_inventory": "Cart Purification",
+ "hexpose.page.get_inventory.summary": "Returns a list of all items the entity is carrying, or $(l:casting/influences)$(thing)Null$() if the entity can not hold items. Trying to access another $(item)Player$()'s inventory will incur a mishap.",
+ "hexcasting.action.hexpose:get_block_inventory": "Chest Purification",
+ "hexpose.page.get_block_inventory.summary": "Returns a list of all items in the container, or $(l:casting/influences)$(thing)Null$() if the block can not contain items.",
+ "hexcasting.action.hexpose:get_armor": "Aegis Purification",
+ "hexpose.page.get_armor.summary": "Returns a list of all items the entity is wearing, from feet up.",
+ "hexcasting.action.hexpose:get_ender_chest": "Pocket Reflection",
+ "hexpose.page.get_ender_chest.summary": "Returns a list of all items in my ender chest.",
+ "hexcasting.action.hexpose:count_stack": "Storage Purification",
+ "hexpose.page.count_stack.summary": "Takes in an item and pushes how many items are in it.",
+ "hexcasting.action.hexpose:count_max_stack": "Warehouse Purification",
+ "hexpose.page.count_max_stack.summary": "Takes in an item and pushes how many items that can stack in it.",
+ "hexcasting.action.hexpose:damage_stack": "Deterioration Purification",
+ "hexpose.page.damage_stack.summary": "Takes in an item and pushes how much damage the item has sustained.",
+ "hexcasting.action.hexpose:damage_max_stack": "Fragility Purification",
+ "hexpose.page.damage_max_stack.summary": "Takes in an item and pushes how much durability the item can have at its peak.",
+ "hexcasting.action.hexpose:get_enchantments": "Thaumaturgist's Purification",
+ "hexpose.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
+ "hexcasting.action.hexpose:get_enchantment_strength": "Charm Distillation",
+ "hexpose.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
+ "hexcasting.action.hexpose:rarity": "Collector Purification",
+ "hexpose.page.rarity.summary": "Gauges the rarity of an item as a number, with greater values corresponding to a rarer item. Certain aspects such as enchantments can also elevate an item's rarity.",
+
+ "hexpose.page.media.title": "Media",
+ "hexcasting.action.hexpose:env_media": "Media Reflection",
+ "hexpose.page.env_media.summary": "Pushes the _media available to the current cast.",
+ "hexcasting.action.hexpose:get_media": "Media Purification",
+ "hexpose.page.get_media.summary": "Pushes the amount of _media inside an item, that a creature contains or holds, or that a specialized _media-holding block contains.",
+ "hexcasting.action.hexpose:media_max_stack": "Potential Purification",
+ "hexpose.page.media_max_stack.summary": "Takes in an item and pushes either $(l:casting/influences)$(thing)Null$() if the item does not have any _media-holding potential, or the amount of _media it is capable of holding at its peak.",
+
+ "hexpose.page.status_effects.title": "Status Effects",
+ "hexcasting.action.hexpose:get_effects_entity": "Diagnosis Purification",
+ "hexpose.page.get_effects_entity.summary": "Pushes a list of status effects the entity is afflicted with.",
+ "hexcasting.action.hexpose:get_effects_item": "Prescription Purification",
+ "hexpose.page.get_effects_item.summary": "Pushes a list of status effects the food or potion will bestow.",
+ "hexcasting.action.hexpose:get_effect_category": "Condition Purification",
+ "hexpose.page.get_effect_category.summary": "Pushes the general \"goodness\" of the effect towards the afflicted. -1 for harmful, 0 for neutral, and 1 for beneficial.",
+ "hexcasting.action.hexpose:get_effect_amplifier": "Concentration Distillation",
+ "hexpose.page.get_effect_amplifier.summary": "Pushes how potent the effect type is acting on the entity or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
+ "hexcasting.action.hexpose:get_effect_duration": "Clearance Distillation",
+ "hexpose.page.get_effect_duration.summary": "Pushes how long the effect type will affect the entity in twentieths of a second or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
+
+ "hexpose.page.villager.title": "Villagers",
+ "hexcasting.action.hexpose:villager_level": "Tier Purification",
+ "hexpose.page.villager_level.summary": "Pushes how advanced a villager is as a number, encoding mastery of their craft.",
+ "hexcasting.action.hexpose:villager_profession": "Professional Purification",
+ "hexpose.page.villager_profession.summary": "Pushes the profession of a villager as an identifier",
+ "hexcasting.action.hexpose:villager_type": "Culture Purification",
+ "hexpose.page.villager_type.summary": "Pushes the ambient cultural aspect tied to the villager’s origin, such as desert or taiga roots.",
+ "hexcasting.action.hexpose:biome_to_villager": "Nurture Purification",
+ "hexpose.page.biome_to_villager.summary": "Projects the villager archetype most attuned to the essence of the specified biome, or $(l:casting/influences)$(thing)Null$() if none can be drawn.",
+
+ "hexpose.page.world.title": "World",
+ "hexcasting.action.hexpose:get_light": "Luminance Purification",
+ "hexpose.page.get_light.summary": "Pushes the light level at the position as a number 0 to 15. If inside a nontransparent block, it returns zero.",
+ "hexcasting.action.hexpose:get_weather": "Meterologist's Reflection",
+ "hexpose.page.get_weather.summary": "Pushes a number corresponding to the weather. 0 for clear, 1 for rain, and 2 for thundering.",
+ "hexcasting.action.hexpose:get_power": "Battery Purification",
+ "hexpose.page.get_power.summary": "Pushes the Redstone power that a position receives.",
+ "hexcasting.action.hexpose:get_comparator": "Peripheral Purification",
+ "hexpose.page.get_comparator.summary": "Pushes the power level a $(item)Comparator$() would output if pressed against a position.",
+ "hexcasting.action.hexpose:get_day": "Circadian Reflection",
+ "hexpose.page.get_day.summary": "Pushes the progress of the day as a number between 0 (start) and 1 (end) of the day.",
+ "hexcasting.action.hexpose:get_time": "Temporal Reflection",
+ "hexpose.page.get_time.summary": "Pushes the twentieths of a second since the creation of the world, unaffected by events such as sleeping.",
+ "hexcasting.action.hexpose:get_biome": "Geographical Purification",
+ "hexpose.page.get_biome.summary": "Pushes the identifier of the type of biome the vector is within.",
+ "hexcasting.action.hexpose:get_dimension": "Plane Reflection",
+ "hexpose.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in.",
+ "hexcasting.action.hexpose:get_moon": "Lunar Reflection",
+ "hexpose.page.get_moon.summary": "Pushes the current phase of the $(thing)Moon$() as a fraction of its size.",
+ "hexcasting.action.hexpose:get_einstein": "Distortion Reflection",
+ "hexpose.page.get_einstein.summary": "Pushes whether $(item)Compasses$() and $(item)Clocks$() will work in this dimension.",
+
+ "hexpose.page.misc.title": "Miscellaneous",
+ "hexcasting.action.hexpose:cat_variant": "Feline Purification",
+ "hexpose.page.cat_variant.summary": "Pushes the variant of the cat.",
+ "hexcasting.action.hexpose:painting_variant": "Artistic Purification",
+ "hexpose.page.painting_variant.summary": "Pushes the variant of the painting."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
new file mode 100644
index 000000000000..9276b9e86746
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
@@ -0,0 +1,237 @@
+{
+ "hexcasting.mishap.invalid_value.cat": "一只猫",
+ "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
+ "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
+ "hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识",
+ "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
+ "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
+ "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
+ "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
+ "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
+ "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
+ "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
+ "hexcasting.mishap.invalid_value.media_holding": "一个装有媒质的物品或实体",
+ "hexcasting.mishap.invalid_value.painting": "一幅画",
+ "hexcasting.mishap.invalid_value.potion_holding": "一个装有药水的物品或实体",
+ "hexcasting.mishap.invalid_value.tamable": "一个可驯服实体",
+
+ "hexpose.item_stack.format": " | %s(%d)",
+ "hexpose.item_stack.null": "Null物品",
+
+ "hexcasting.action.book.hexpose:get_effect_amplifier": "浓度之馏化",
+ "hexcasting.action.book.hexpose:get_effects_item": "处方之纯化",
+ "hexcasting.action.book.hexpose:get_enchantments": "奇术师之纯化",
+ "hexcasting.action.book.hexpose:breedable": "繁衍之纯化",
+ "hexcasting.action.book.hexpose:theodolite": "经纬仪之纯化",
+ "hexcasting.action.book.hexpose:get_air": "窒息之纯化",
+ "hexcasting.action.book.hexpose:is_wet": "末影人之纯化",
+ "hexcasting.action.book.hexpose:identify": "侦探之纯化",
+ "hexcasting.action.book.hexpose:damage_stack": "损耗之纯化",
+ "hexcasting.action.book.hexpose:classify": "抵量之纯化",
+ "hexcasting.action.book.hexpose:villager_profession": "职业之纯化",
+ "hexcasting.action.book.hexpose:get_biome": "地理之纯化",
+ "hexcasting.action.book.hexpose:get_weather": "天气学家之精思",
+
+ "hexpose.page.enlightened_patterns.title": "启迪后图案",
+ "hexpose.page.enlightened_patterns.0": "在经过$(thing)启迪$()之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经$(thing)启迪$()的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
+ "hexcasting.action.hexpose:am_enlightened": "显圣之纯化",
+ "hexpose.page.am_enlightened.summary": "检验所给玩家是否和我一样经过$(thing)启迪$()。",
+ "hexcasting.action.hexpose:is_brainswept": "感知之纯化",
+ "hexpose.page.is_brainswept.summary": "检验实体是否“被魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
+
+ "hexpose.page.perlin.title": "准随机",
+ "hexpose.page.perlin.0": "虽然我还没有找到利用的方法,但各地的环境$(media)媒质$()密度确实各不相同。可以测量时空中某一点的此密度,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
+ "hexcasting.action.hexpose:perlin": "柏林之馏化",
+ "hexpose.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
+
+ "hexpose.page.special_raycasts.title": "特殊射线追踪",
+ "hexcasting.action.hexpose:fluid_raycast": "占水之馏化",
+ "hexpose.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.action.hexpose:fluid_surface_raycast": "睡莲之馏化",
+ "hexpose.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
+ "hexcasting.action.hexpose:piercing_raycast": "轨道炮之提整",
+ "hexpose.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+ "hexcasting.action.hexpose:piercing_surface_raycast": "激光之提整",
+ "hexpose.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
+
+ "hexpose.category.scrying": "探知",
+ "hexpose.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。$(br2)虽然这些操作在大多数$(hex)咒术$()中没什么大用处,但有它们在也不错,我将来也许会用到。",
+
+ "hexpose.page.blocks.title": "方块",
+ "hexcasting.action.hexpose:block_hardness": "矿工之纯化",
+ "hexpose.page.block_hardness.summary": "压入挖掘给定类型方块的难易程度。",
+ "hexcasting.action.hexpose:block_blast_resistance": "爆破兵之纯化",
+ "hexpose.page.block_blast_resistance.summary": "压入给定类型方块对爆炸的抗性。",
+ "hexcasting.action.hexpose:blockstate_rotation": "方向之纯化",
+ "hexpose.page.blockstate_rotation.summary": "压入方块的朝向向量。若该类方块不区分朝向,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:blockstate_crop": "农夫之纯化",
+ "hexpose.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的生长进度,对$(item)蜂巢$()、$(item)堆肥桶$()、$(item)炼药锅$()同样有效。奇怪的是,对$(item)蛋糕$()也有效。",
+ "hexpose.page.get_blockstates.description": "每个方块都有很多$(o)侧征$()——将其与其他同种方块区分开来的简单特征,例如朝向、农作物的成熟度、门的开闭等。$(br2)自然提供了两个图案,允许$(hex)咒法学$()读取和分析影响范围内各方块的侧征。",
+ "hexcasting.action.hexpose:get_blockstates": "侧征之纯化",
+ "hexpose.page.get_blockstates.summary": "返回所给方块的侧征列表。",
+ "hexcasting.action.hexpose:query_blockstate": "侧征之馏化",
+ "hexpose.page.query_blockstate.summary": "接收一个方块和一个侧征,返回该侧征的值。",
+ "hexpose.page.query_blockstate.description": "若方块没有给定侧征,则返回 $(l:casting/influences)$(thing)Null$()。大多数情况下,返回的结果很好理解:布尔值、方向向量、整数,总之是最合乎侧征的 iota。$(br2)某些关系到状态等方面的侧征给出的是看似随机但恒定的整数。如果侧征太过生僻,即会返回无意义的 iota。",
+
+ "hexpose.page.entities.title": "实体",
+ "hexcasting.action.hexpose:entity_width": "卡尺之纯化",
+ "hexpose.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
+ "hexcasting.action.hexpose:theodolite": "经纬仪之纯化",
+ "hexpose.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
+ "hexcasting.action.hexpose:get_health": "生命力之纯化",
+ "hexpose.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
+ "hexcasting.action.hexpose:get_max_health": "健康之纯化",
+ "hexpose.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
+ "hexcasting.action.hexpose:get_air": "窒息之纯化",
+ "hexpose.page.get_air.summary": "压入实体距离窒息剩余多少秒。对脱水的海洋生物和溺水的陆地生物均有效。",
+ "hexcasting.action.hexpose:get_max_air": "双肺之纯化",
+ "hexpose.page.get_max_air.summary": "返回给定类型实体在离开其呼吸环境后需多少秒开始窒息。",
+ "hexcasting.action.hexpose:burning": "炼狱之纯化",
+ "hexpose.page.burning.summary": "返回实体身上的火焰距自然熄灭剩余多少秒,实体未在燃烧则返回 -1。",
+ "hexcasting.action.hexpose:is_wet": "末影人之纯化",
+ "hexpose.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
+ "hexcasting.action.hexpose:is_baby": "青春之纯化",
+ "hexpose.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对$(item)盔甲架$()也有效。",
+ "hexcasting.action.hexpose:breedable": "繁衍之纯化",
+ "hexpose.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:is_sleeping": "树懒之纯化",
+ "hexpose.page.is_sleeping.summary": "检验$(item)玩家$()、$(item)猫$()、$(item)狐狸$()、以及其他实体是否处于睡眠状态。",
+ "hexcasting.action.hexpose:is_sprinting": "赛车手之纯化",
+ "hexpose.page.is_sprinting.summary": "检验$(item)玩家$()、$(item)猫$()、$(item)狐狸$()、以及其他实体是否在疾跑。速泳和疾跑后离地均算作疾跑。",
+ "hexcasting.action.hexpose:entity_vehicle": "载具之纯化",
+ "hexpose.page.entity_vehicle.summary": "检验所给实体是否处于骑乘状态,若未在骑乘或未乘坐载具,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:entity_passengers": "骑士之纯化",
+ "hexpose.page.entity_passengers.summary": "返回骑乘所给实体的实体列表。",
+ "hexcasting.action.hexpose:shooter": "射手之纯化",
+ "hexpose.page.shooter.summary": "返回所给弹射物实体的发射者,若无发射者或不是弹射物,则返回 $(l:casting/influences)$(thing)Null$()。如果发射者在我影响范围之外,也会返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:pet_owner": "挚宠之纯化",
+ "hexpose.page.pet_owner.summary": "检验玩家是否驯服了所给动物,若未驯服或玩家在影响范围之外,则返回 $(l:casting/influences)$(thing)Null$()。",
+
+ "hexpose.page.environment.title": "环境",
+ "hexpose.page.environment.0": "本节的图案比较“元”:它们会检验其所处的施法环境。主要适合用来规避$(l:casting/mishaps)$(thing)事故$()。",
+ "hexcasting.action.hexpose:env_ambit": "影响范围之纯化",
+ "hexpose.page.env_ambit.summary": "检验所给位置或实体是否处于影响范围中。",
+ "hexcasting.action.hexpose:env_staff": "法杖之精思",
+ "hexpose.page.env_staff.summary": "检验该图案是否由$(l:items/staff)$(item)法杖$()施放。",
+ "hexcasting.action.hexpose:env_offhand": "敏捷之精思",
+ "hexpose.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果。",
+ "hexcasting.action.hexpose:env_packaged_hex": "设备之精思",
+ "hexpose.page.env_packaged_hex.summary": "检验该图案是否由任意$(l:items/hexcasting)$(item)施法物品$()施放。",
+ "hexcasting.action.hexpose:env_circle": "建构之精思",
+ "hexpose.page.env_circle.summary": "检验该图案是否由某种$(l:greatwork/spellcircles)$(thing)$(o)卓伟之作$()施放。",
+
+ "hexpose.page.food.title": "食物",
+ "hexcasting.action.hexpose:get_player_hunger": "饥饿之纯化",
+ "hexpose.page.get_player_hunger.summary": "返回$(item)玩家$()的饥饿值。使用半个饥饿值火腿作为单位。",
+ "hexcasting.action.hexpose:get_player_saturation": "耐力之纯化",
+ "hexpose.page.get_player_saturation.summary": "返回$(item)玩家$()的饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.action.hexpose:edible": "可食性之纯化",
+ "hexpose.page.edible.summary": "接受一个物品标识,检验它是否可被我食用。",
+ "hexcasting.action.hexpose:get_hunger": "卡路里之纯化",
+ "hexpose.page.get_hunger.summary": "接受一个物品标识,返回它为我带来的饱腹感的量。",
+ "hexcasting.action.hexpose:get_saturation": "饱和之纯化",
+ "hexpose.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
+ "hexcasting.action.hexpose:is_meat": "肉类之纯化",
+ "hexpose.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类,也即$(item)狼$()能否食用。",
+ "hexcasting.action.hexpose:is_snack": "甜点之纯化",
+ "hexpose.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食。",
+
+ "hexpose.page.identifiers.title": "标识",
+ "hexpose.page.identifiers.0": "标识 iota 是自然对“$(hex)咒术$()如何指定类型”的解决方案。每一个实体类型、方块类型、状态效果类型、魔咒类型、声音类型等都拥有可被$(hex)咒术$()识别的唯一标识,此标识可获取,也可比较。",
+ "hexcasting.action.hexpose:identify": "侦探之纯化",
+ "hexpose.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
+ "hexcasting.action.hexpose:classify": "抵量之纯化",
+ "hexpose.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
+
+ "hexpose.page.item.title": "物品",
+ "hexpose.page.item.0": "物品 iota 中含有的信息几乎足以唯一确定一个物品组,且$(hex)咒术$()可通过它们查询其状态。不过此类 iota 有一个例外:如果某个物品内部存有物品 iota,则它的物品 iota 中不会保留存储内容。物品 iota 的精细$(media)媒质$()结构在经多次抽象后即会消散殆尽。",
+ "hexpose.page.item.1": "$(item)玩家$()具有智能,也似乎因此在常态操控$(media)媒质$()。这种$(media)媒质$()气场在大部分情况下保持惰性,但并非不会产生反应;在深入探知的情况下,这一反应通常相当剧烈。盔甲和手持物品等暴露于外界的物品可被探知,但对其物品栏的深入分析不会起效。$(br2)自然尊重界限。",
+ "hexcasting.action.hexpose:get_stack": "物品之纯化",
+ "hexpose.page.get_stack.summary": "返回所给$(item)物品$()实体对应的物品。",
+ "hexcasting.action.hexpose:create_stack": "献物之纯化",
+ "hexpose.page.create_stack.summary": "由物品标识和组内物品数制造物品。",
+ "hexcasting.action.hexpose:get_mainhand": "工具之纯化",
+ "hexpose.page.get_mainhand.summary": "返回实体主手的物品。",
+ "hexcasting.action.hexpose:get_offhand": "配件之纯化",
+ "hexpose.page.get_offhand.summary": "返回实体副手的物品。",
+ "hexcasting.action.hexpose:get_inventory": "矿车之纯化",
+ "hexpose.page.get_inventory.summary": "返回实体装有的全部物品组成的列表;若实体无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。试图访问其他$(item)玩家$()的物品栏会招致事故。",
+ "hexcasting.action.hexpose:get_block_inventory": "箱子之纯化",
+ "hexpose.page.get_block_inventory.summary": "返回容器装有的全部物品组成的列表;若方块无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:get_armor": "埃癸斯之纯化",
+ "hexpose.page.get_armor.summary": "返回实体穿着的全部物品组成的列表,顺序自下向上。",
+ "hexcasting.action.hexpose:get_ender_chest": "口袋之精思",
+ "hexpose.page.get_ender_chest.summary": "返回我末影箱中全部物品组成的列表。",
+ "hexcasting.action.hexpose:count_stack": "仓储之纯化",
+ "hexpose.page.count_stack.summary": "接受一个物品,返回其中物品数量。",
+ "hexcasting.action.hexpose:count_max_stack": "库房之纯化",
+ "hexpose.page.count_max_stack.summary": "接受一个物品,返回其中最多可堆叠多少物品。",
+ "hexcasting.action.hexpose:damage_stack": "损耗之纯化",
+ "hexpose.page.damage_stack.summary": "接受一个物品,返回物品剩余的耐久度。",
+ "hexcasting.action.hexpose:damage_max_stack": "脆弱性之纯化",
+ "hexpose.page.damage_max_stack.summary": "接受一个物品,返回物品的耐久度上限。",
+ "hexcasting.action.hexpose:get_enchantments": "奇术师之纯化",
+ "hexpose.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
+ "hexcasting.action.hexpose:get_enchantment_strength": "咒能之馏化",
+ "hexpose.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
+ "hexcasting.action.hexpose:rarity": "收藏家之纯化",
+ "hexpose.page.rarity.summary": "测量物品的稀有度,返回为数,值越大越稀有。魔咒等特殊性质可能会提升物品的稀有度。",
+
+ "hexpose.page.media.title": "媒质",
+ "hexcasting.action.hexpose:env_media": "媒质之精思",
+ "hexpose.page.env_media.summary": "返回当前施放可用的$(media)媒质$()的量。",
+ "hexcasting.action.hexpose:get_media": "媒质之纯化",
+ "hexpose.page.get_media.summary": "返回物品中的,或生物含有的,或生物持有的,或特种$(media)媒质$()存储方块含有的$(media)媒质$()。",
+ "hexcasting.action.hexpose:media_max_stack": "潜能之纯化",
+ "hexpose.page.media_max_stack.summary": "接受一个物品实体,若其无法存储$(media)媒质$(),返回 $(l:casting/influences)$(thing)Null$();否则返回其$(media)媒质$()存储上限。",
+
+ "hexpose.page.status_effects.title": "状态效果",
+ "hexcasting.action.hexpose:get_effects_entity": "诊断之纯化",
+ "hexpose.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
+ "hexcasting.action.hexpose:get_effects_item": "处方之纯化",
+ "hexpose.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
+ "hexcasting.action.hexpose:get_effect_category": "药性之纯化",
+ "hexpose.page.get_effect_category.summary": "获取某效果对承受者造成的效应是“良性”与否。-1 为负面,0 为中性,1 为正面。",
+ "hexcasting.action.hexpose:get_effect_amplifier": "浓度之馏化",
+ "hexpose.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:get_effect_duration": "效除之馏化",
+ "hexpose.page.get_effect_duration.summary": "获取效果的持续时间,以 1/20 秒计,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
+
+ "hexpose.page.villager.title": "村民",
+ "hexcasting.action.hexpose:villager_level": "职级之纯化",
+ "hexpose.page.villager_level.summary": "返回代表村民技艺功底和精通程度的数。",
+ "hexcasting.action.hexpose:villager_profession": "职业之纯化",
+ "hexpose.page.villager_profession.summary": "将村民的职业返回为标识。",
+ "hexcasting.action.hexpose:villager_type": "文化之纯化",
+ "hexpose.page.villager_type.summary": "返回村民生长环境的文化类别,如沙漠、针叶林等。",
+ "hexcasting.action.hexpose:biome_to_villager": "养育之纯化",
+ "hexpose.page.biome_to_villager.summary": "返回最适宜所给生物群系的村民文化类别,若无则返回 $(l:casting/influences)$(thing)Null$()。",
+
+ "hexpose.page.world.title": "世界",
+ "hexcasting.action.hexpose:get_light": "光照之纯化",
+ "hexpose.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
+ "hexcasting.action.hexpose:get_weather": "天气学家之精思",
+ "hexpose.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
+ "hexcasting.action.hexpose:get_power": "电池之纯化",
+ "hexpose.page.get_power.summary": "返回给定位置的红石信号强度。",
+ "hexcasting.action.hexpose:get_comparator": "外设之纯化",
+ "hexpose.page.get_comparator.summary": "返回$(item)比较器$()对准给定位置时会输出的红石信号强度。",
+ "hexcasting.action.hexpose:get_day": "昼夜之精思",
+ "hexpose.page.get_day.summary": "返回当天时间的进程,返回值在 0(一天刚开始)到 1(一天要结束)之间。",
+ "hexcasting.action.hexpose:get_time": "时间之精思",
+ "hexpose.page.get_time.summary": "压入世界经过的时间,主要用来计时,不受睡觉等事件的影响。以 1/20 秒计。",
+ "hexcasting.action.hexpose:get_biome": "地理之纯化",
+ "hexpose.page.get_biome.summary": "返回给定位置向量处生物群系类别的标识。",
+ "hexcasting.action.hexpose:get_dimension": "位面之精思",
+ "hexpose.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。",
+ "hexcasting.action.hexpose:get_moon": "月相之精思",
+ "hexpose.page.get_moon.summary": "返回当前的月相,返回值为可见的$(item)月亮$()照亮区域的占比。",
+ "hexcasting.action.hexpose:get_einstein": "扭曲之精思",
+ "hexpose.page.get_einstein.summary": "检验$(item)指南针$()和$(item)钟$()可否在此维度运作。",
+
+ "hexpose.page.misc.title": "杂项",
+ "hexcasting.action.hexpose:cat_variant": "猫咪之纯化",
+ "hexpose.page.cat_variant.summary": "返回猫的外观。",
+ "hexcasting.action.hexpose:painting_variant": "艺术之纯化",
+ "hexpose.page.painting_variant.summary": "返回画的类型。"
+}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
deleted file mode 100644
index 673fca6365b7..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/en_us.json
+++ /dev/null
@@ -1,221 +0,0 @@
-{
- "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
- "hexcasting.mishap.invalid_value.class.identifier": "an identifier",
- "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
- "hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
- "hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
- "hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
- "hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
- "hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
- "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
- "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
- "hexcasting.mishap.invalid_value.media_holding": "a media holding item or entity",
- "hexcasting.mishap.invalid_value.potion_holding": "a potion holding item or entity",
-
- "hexposition.item_stack.format": " | %s (%d)",
- "hexposition.item_stack.null": "Null Item",
-
- "hexcasting.action.book.hexposition:get_effect_amplifier": "Concentration Dstl.",
- "hexcasting.action.book.hexposition:get_effects_item": "Prescription Purif.",
- "hexcasting.action.book.hexposition:get_enchantments": "Thaumaturgist's Purif.",
- "hexcasting.action.book.hexposition:breedable": "Reproduction Purif.",
- "hexcasting.action.book.hexposition:theodolite": "Theodolite Purif.",
- "hexcasting.action.book.hexposition:get_air": "Suffocation Purif.",
- "hexcasting.action.book.hexposition:is_wet": "Enderman's Purif.",
- "hexcasting.action.book.hexposition:identify": "Detective's Purif.",
- "hexcasting.action.book.hexposition:damage_stack": "Deterioration Purif.",
- "hexcasting.action.book.hexposition:classify": "Modicum Purif.",
- "hexcasting.action.book.hexposition:get_biome": "Geographical Purif.",
- "hexcasting.action.book.hexposition:get_weather": "Meterologist's Refl.",
-
- "hexposition.page.enlightened_patterns.title": "Enlightened Patterns",
- "hexposition.page.enlightened_patterns.0": "After $(thing)Enlightenment$(), I find myself acutely aware of certain patterns that aid with my newfound abilities. These patterns don't seem to require anything from me that I didn't have before; perhaps I was always able to cast them but was simply unaware of their existence. An unenlightened player will be able to use $(l:items/hexcasting)$(item)casting devices$() with these patterns.",
- "hexcasting.action.hexposition:am_enlightened": "Epiphany Purification",
- "hexposition.page.am_enlightened.summary": "Pushes whether the given player has achieved $(thing)Enlightenment$().",
- "hexcasting.action.hexposition:is_brainswept": "Sentience Purification",
- "hexposition.page.is_brainswept.summary": "Pushes whether an entity has been \"magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
-
- "hexposition.page.perlin.title": "Quasirandomness",
- "hexposition.page.perlin.0": "I have not found a way to harness it yet, but I notice ambient _media is not distributed evenly throughout reality. I can measure its concentration at a point in space and time to get a random number between 0 and 1, corresponding to media levels at that point in space and time. Points close together in space and time tend to have similar values.",
- "hexcasting.action.hexposition:perlin": "Perlin Distillation",
- "hexposition.page.perlin.summary": "Measures the concentration of ambient _media at a point in space and time, normalized between 0 and 1.",
-
- "hexposition.page.special_raycasts.title": "Special Raycasts",
- "hexcasting.action.hexposition:fluid_raycast": "Naval Distillation",
- "hexposition.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
- "hexcasting.action.hexposition:fluid_surface_raycast": "Lilypad Distillation",
- "hexposition.page.fluid_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but targets only liquids, piercing through all other blocks.",
- "hexcasting.action.hexposition:piercing_raycast": "Railgun Exaltation",
- "hexposition.page.piercing_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
- "hexcasting.action.hexposition:piercing_surface_raycast": "Laser Exaltation",
- "hexposition.page.piercing_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
-
- "hexposition.category.scrying": "Scrying",
- "hexposition.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world. While likely not useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
-
- "hexposition.page.blocks.title": "Blocks",
- "hexcasting.action.hexposition:block_hardness": "Miner's Purification",
- "hexposition.page.block_hardness.summary": "Pushes how difficult blocks of this type are to mine.",
- "hexcasting.action.hexposition:block_blast_resistance": "Demoman's Purification",
- "hexposition.page.block_blast_resistance.summary": "Pushes how resistant blocks of this type are to explosions.",
- "hexcasting.action.hexposition:blockstate_rotation": "Orientation Purification",
- "hexposition.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or $(l:casting/influences)$(thing)Null$() if blocks of its type do not have an orientation.",
- "hexcasting.action.hexposition:blockstate_turn": "Angle Purification",
- "hexposition.page.blockstate_turn.summary": "Pushes a number corresponding to the rotation of $(item)Signs$(), $(item)Skulls$(), and $(item)Banners$().",
- "hexcasting.action.hexposition:blockstate_crop": "Farmer's Purification",
- "hexposition.page.blockstate_crop.summary": "Pushes a number 0 to 1 corresponding to the growth progress of that block. Works for crops, $(item)Beehives$(), $(item)Composters$(), $(item)Cauldrons$(), and strangely $(item)Cakes$() too.",
- "hexcasting.action.hexposition:blockstate_waterlogged": "Plumber's Purification",
- "hexposition.page.blockstate_waterlogged.summary": "Pushes whether the block is waterlogged, or $(l:casting/influences)$(thing)Null$() if the blocks of its type can not be waterlogged.",
- "hexcasting.action.hexposition:blockstate_glow": "Glowing Purification",
- "hexposition.page.blockstate_glow.summary": "Pushes whether the block is in a \"lit\" state, for example $(item)Furnaces$(), $(item)Redstone Torches$(), $(item)Redstone Lamps$(), and $(item)Campfires$().",
- "hexcasting.action.hexposition:blockstate_lock": "Lock Purification",
- "hexposition.page.blockstate_lock.summary": "Pushes whether the block is currently in a \"open\" state, for example $(item)Doors$(), $(item)Trapdoors$(), $(item)Fence Gates$(), and $(item)Barrels$().",
- "hexcasting.action.hexposition:blockstate_bunch": "Bunching Purification",
- "hexposition.page.blockstate_bunch.summary": "Pushes how many parts are in a block that contains a bunch, or $(l:casting/influences)$(thing)Null$() if it is not such a block. Useful only for $(item)Candles$(), $(item)Sea Pickles$(), and $(item)Turtle Eggs$().",
- "hexcasting.action.hexposition:blockstate_book": "Book Purification",
- "hexposition.page.blockstate_book.summary": "Pushes whether the $(item)Lectern$() or $(item)Jukebox$() contains a $(item)Book$() or $(item)Music Disc$() respectively. It may also work for some kind of bookshelf involved in a great work too.",
-
- "hexposition.page.entities.title": "Entities",
- "hexcasting.action.hexposition:entity_width": "Caliper's Purification",
- "hexposition.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
- "hexcasting.action.hexposition:theodolite": "Theodolite's Purification",
- "hexposition.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
- "hexcasting.action.hexposition:get_health": "Vitality Purification",
- "hexposition.page.get_health.summary": "Pushes how close an entity is to death. I can think of these in terms of half-hearts.",
- "hexcasting.action.hexposition:get_max_health": "Fitness Purification",
- "hexposition.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
- "hexcasting.action.hexposition:get_air": "Suffocation Purification",
- "hexposition.page.get_air.summary": "Pushes the number of seconds before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
- "hexcasting.action.hexposition:get_max_air": "Lung Purification",
- "hexposition.page.get_max_air.summary": "Pushes the number of seconds a regular entity of that type can last outside their normal breathing environment before they start suffocating.",
- "hexcasting.action.hexposition:burning": "Inferno Purification",
- "hexposition.page.burning.summary": "Pushes the number of seconds the burning entity will continue burning if not put out. -1 if the entity is not burning currently.",
- "hexcasting.action.hexposition:is_wet": "Enderman's Purification",
- "hexposition.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
- "hexcasting.action.hexposition:is_baby": "Youth Purification",
- "hexposition.page.is_baby.summary": "Pushes whether a living creature is a baby. Also works on $(item)Armor Stands$() oddly.",
- "hexcasting.action.hexposition:breedable": "Reproduction Purification",
- "hexposition.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or $(l:casting/influences)$(thing)Null$() if that creature is not capable of that type of reproduction.",
- "hexcasting.action.hexposition:is_sleeping": "Sloth's Purification",
- "hexposition.page.is_sleeping.summary": "Pushes whether the $(item)Player$(), $(item)Cat$(), $(item)Fox$(), or other entity is sleeping.",
- "hexcasting.action.hexposition:is_sprinting": "Racer's Purification",
- "hexposition.page.is_sprinting.summary": "Pushes whether the $(item)Player$(), $(item)Cat$(), $(item)Fox$(), or other entity is sprinting. Swimming and leaving the ground after starting to sprint are still included.",
- "hexcasting.action.hexposition:entity_vehicle": "Vehicle Purification",
- "hexposition.page.entity_vehicle.summary": "Pushes the entity the given entity is riding or $(l:casting/influences)$(thing)Null$() if it is not riding in or on anything.",
- "hexcasting.action.hexposition:entity_passengers": "Jockey Purification",
- "hexposition.page.entity_passengers.summary": "Pushes a list of entities that are riding the given entity.",
- "hexcasting.action.hexposition:shooter": "Shooter Purification",
- "hexposition.page.shooter.summary": "Pushes the shooter of the given projectile entity or $(l:casting/influences)$(thing)Null$() if it has no shooter or isn't a projectile. It also pushes $(l:casting/influences)$(thing)Null$() if the shooter is outside my ambit.",
-
- "hexposition.page.environment.title": "Environment",
- "hexposition.page.environment.0": "These patterns are meta: they concern properties of the magical environment they are cast in. Mostly useful in avoiding $(l:casting/mishaps)$(thing)mishaps$().",
- "hexcasting.action.hexposition:env_ambit": "Ambit Purification",
- "hexposition.page.env_ambit.summary": "Pushes whether a location or entity is in ambit.",
- "hexcasting.action.hexposition:env_staff": "Staff Reflection",
- "hexposition.page.env_staff.summary": "Pushes whether a $(l:items/staff)$(item)Staff$() is being used to cast this pattern.",
- "hexcasting.action.hexposition:env_offhand": "Dexterity Reflection",
- "hexposition.page.env_offhand.summary": "Pushes whether the dominant hand of the caster is being used to cast this pattern. May return strange results for casters without hands.",
- "hexcasting.action.hexposition:env_packaged_hex": "Device Reflection",
- "hexposition.page.env_packaged_hex.summary": "Pushes whether any form of $(l:items/hexcasting)$(item)casting device$() is being used to cast this pattern.",
- "hexcasting.action.hexposition:env_circle": "Constructed Reflection",
- "hexposition.page.env_circle.summary": "Pushes whether some form of $(l:greatwork/spellcircles)$(thing)$(o)grand work$() is being used to cast this pattern.",
-
- "hexposition.page.food.title": "Food",
- "hexcasting.action.hexposition:get_player_hunger": "Hunger Purification",
- "hexposition.page.get_player_hunger.summary": "Pushes how full a $(item)Player$() is. I can think of this in terms of half-hunger-hunches.",
- "hexcasting.action.hexposition:get_player_saturation": "Stamina Purification",
- "hexposition.page.get_player_saturation.summary": "Pushes a $(item)Player$()'s saturation, which roughly correlates to how long the $(item)Player$() will remain full.",
- "hexcasting.action.hexposition:edible": "Edibility Purification",
- "hexposition.page.edible.summary": "Takes in an item identifier and pushes whether I can eat it.",
- "hexcasting.action.hexposition:get_hunger": "Calorie Purification",
- "hexposition.page.get_hunger.summary": "Takes in an item identifier and pushes the amount it will fill me.",
- "hexcasting.action.hexposition:get_saturation": "Satiation Purification",
- "hexposition.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill me.",
- "hexcasting.action.hexposition:is_meat": "Flesh Purification",
- "hexposition.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat. $(item)Wolves$() can eat meats.",
- "hexcasting.action.hexposition:is_snack": "Dessert Purification",
- "hexposition.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack.",
-
- "hexposition.page.identifiers.title": "Identifiers",
- "hexposition.page.identifiers.0": "The identifier iota is Nature's solution to allowing _Hexes to specifically identify types. Every type of entity, block, status effect, enchantment, sound, and more has a unique identifier attached which a _Hex can retrieve and compare.",
- "hexcasting.action.hexposition:identify": "Detective's Purification",
- "hexposition.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
- "hexcasting.action.hexposition:classify": "Modicum Purification",
- "hexposition.page.classify.summary": "Pushes the identifier of an iota's type. Can be used to determine whether two iota are the same type.",
-
- "hexposition.page.item.title": "Items",
- "hexposition.page.item.0": "An item iota holds nearly all information that distinguish a stack of items from another and _Hexes can use them to query specifics. There is one exception: an item iota loses any item iota contained within the item. The already intricate folds of _media that form item iota simply unravel when nested within even more layers of abstraction.",
- "hexposition.page.item.1": "$(item)Players$() manipulate _media idly just as a byproduct of being sentient. This aura of _media is mostly inert but strikes back, often violently at attempts of in-depth scrying. Externally exposed items such as armor and held items can be spied on, but attempts to deeply analyze their inventory will fail.$(br2)Nature respects boundaries.",
- "hexcasting.action.hexposition:get_stack": "Item Purification",
- "hexposition.page.get_stack.summary": "Pushes the item that an $(item)Item$() in the world is.",
- "hexcasting.action.hexposition:create_stack": "Offer Purification",
- "hexposition.page.create_stack.summary": "Creates an item iota from an item identifier and the number of items in the stack.",
- "hexcasting.action.hexposition:get_mainhand": "Tool Purification",
- "hexposition.page.get_mainhand.summary": "Returns the item in the entity's mainhand.",
- "hexcasting.action.hexposition:get_offhand": "Accessory Purification",
- "hexposition.page.get_offhand.summary": "Returns the item in the entity's offhand.",
- "hexcasting.action.hexposition:get_inventory": "Cart Purification",
- "hexposition.page.get_inventory.summary": "Returns a list of all items the entity is carrying, or $(l:casting/influences)$(thing)Null$() if the entity can not hold items. Trying to access another $(item)Player$()'s inventory will incur a mishap.",
- "hexcasting.action.hexposition:get_block_inventory": "Chest Purification",
- "hexposition.page.get_block_inventory.summary": "Returns a list of all items in the container, or $(l:casting/influences)$(thing)Null$() if the block can not contain items.",
- "hexcasting.action.hexposition:get_armor": "Aegis Purification",
- "hexposition.page.get_armor.summary": "Returns a list of all items the entity is wearing, from feet up.",
- "hexcasting.action.hexposition:get_ender_chest": "Pocket Reflection",
- "hexposition.page.get_ender_chest.summary": "Returns a list of all items in my ender chest.",
- "hexcasting.action.hexposition:count_stack": "Storage Purification",
- "hexposition.page.count_stack.summary": "Takes in an item and pushes how many items are in it.",
- "hexcasting.action.hexposition:count_max_stack": "Warehouse Purification",
- "hexposition.page.count_max_stack.summary": "Takes in an item and pushes how many items that can stack in it.",
- "hexcasting.action.hexposition:damage_stack": "Deterioration Purification",
- "hexposition.page.damage_stack.summary": "Takes in an item and pushes how much damage the item has sustained.",
- "hexcasting.action.hexposition:damage_max_stack": "Fragility Purification",
- "hexposition.page.damage_max_stack.summary": "Takes in an item and pushes how much durability the item can have at its peak.",
- "hexcasting.action.hexposition:get_enchantments": "Thaumaturgist's Purification",
- "hexposition.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
- "hexcasting.action.hexposition:get_enchantment_strength": "Charm Distillation",
- "hexposition.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
- "hexcasting.action.hexposition:rarity": "Collector Purification",
- "hexposition.page.rarity.summary": "Gauges the rarity of an item as a number, with greater values corresponding to a rarer item. Certain aspects such as enchantments can also elevate an item's rarity.",
-
- "hexposition.page.media.title": "Media",
- "hexcasting.action.hexposition:env_media": "Media Reflection",
- "hexposition.page.env_media.summary": "Pushes the _media available to the current cast.",
- "hexcasting.action.hexposition:get_media": "Media Purification",
- "hexposition.page.get_media.summary": "Pushes the amount of _media inside an item, that a creature contains or holds, or that a specialized _media-holding block contains.",
- "hexcasting.action.hexposition:media_max_stack": "Potential Purification",
- "hexposition.page.media_max_stack.summary": "Takes in an item and pushes either $(l:casting/influences)$(thing)Null$() if the item does not have any _media-holding potential, or the amount of _media it is capable of holding at its peak.",
-
- "hexposition.page.status_effects.title": "Status Effects",
- "hexcasting.action.hexposition:get_effects_entity": "Diagnosis Purification",
- "hexposition.page.get_effects_entity.summary": "Pushes a list of status effects the entity is afflicted with.",
- "hexcasting.action.hexposition:get_effects_item": "Prescription Purification",
- "hexposition.page.get_effects_item.summary": "Pushes a list of status effects the food or potion will bestow.",
- "hexcasting.action.hexposition:get_effect_category": "Condition Purification",
- "hexposition.page.get_effect_category.summary": "Pushes the general \"goodness\" of the effect towards the afflicted. -1 for harmful, 0 for neutral, and 1 for beneficial.",
- "hexcasting.action.hexposition:get_effect_amplifier": "Concentration Distillation",
- "hexposition.page.get_effect_amplifier.summary": "Pushes the potency of the specific effect acting on the entity or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
- "hexcasting.action.hexposition:get_effect_duration": "Clearance Distillation",
- "hexposition.page.get_effect_duration.summary": "Pushes how long the effect will last in seconds or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
-
- "hexposition.page.world.title": "World",
- "hexcasting.action.hexposition:get_light": "Luminance Purification",
- "hexposition.page.get_light.summary": "Pushes the light level at the position as a number 0 to 15. If inside a nontransparent block, it returns zero.",
- "hexcasting.action.hexposition:get_weather": "Meterologist's Reflection",
- "hexposition.page.get_weather.summary": "Pushes a number corresponding to the weather. 0 for clear, 1 for rain, and 2 for thundering.",
- "hexcasting.action.hexposition:get_power": "Battery Purification",
- "hexposition.page.get_power.summary": "Pushes the Redstone power that a position receives.",
- "hexcasting.action.hexposition:get_comparator": "Peripheral Purification",
- "hexposition.page.get_comparator.summary": "Pushes the power level a $(item)Comparator$() would output if pressed against a position.",
- "hexcasting.action.hexposition:get_day": "Circadian Reflection",
- "hexposition.page.get_day.summary": "Pushes the progress of the day as a number between 0 (start) and 1 (end) of the day.",
- "hexcasting.action.hexposition:get_time": "Temporal Reflection",
- "hexposition.page.get_time.summary": "Pushes the age of the world for timekeeping, unaffected by events such as sleeping. Divided by 20, it returns seconds.",
- "hexcasting.action.hexposition:get_biome": "Geographical Purification",
- "hexposition.page.get_biome.summary": "Pushes the identifier of the type of biome the vector is within.",
- "hexcasting.action.hexposition:get_dimension": "Plane Reflection",
- "hexposition.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in.",
- "hexcasting.action.hexposition:get_moon": "Lunar Reflection",
- "hexposition.page.get_moon.summary": "Pushes the current phase of the $(thing)Moon$() as a fraction of its size.",
- "hexcasting.action.hexposition:get_einstein": "Distortion Reflection",
- "hexposition.page.get_einstein.summary": "Pushes whether $(item)Compasses$() and $(item)Clocks$() will work in this dimension."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
deleted file mode 100644
index dd6df59d2670..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexposition/lang/zh_cn.json
+++ /dev/null
@@ -1,221 +0,0 @@
-{
- "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
- "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
- "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
- "hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识",
- "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
- "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
- "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
- "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
- "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
- "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
- "hexcasting.mishap.invalid_value.media_holding": "一个装有媒质的物品或实体",
- "hexcasting.mishap.invalid_value.potion_holding": "一个装有药水的物品或实体",
-
- "hexposition.item_stack.format": " | %s(%d)",
- "hexposition.item_stack.null": "Null物品",
-
- "hexcasting.action.book.hexposition:get_effect_amplifier": "浓度之馏化",
- "hexcasting.action.book.hexposition:get_effects_item": "处方之纯化",
- "hexcasting.action.book.hexposition:get_enchantments": "奇术师之纯化",
- "hexcasting.action.book.hexposition:breedable": "繁衍之纯化",
- "hexcasting.action.book.hexposition:theodolite": "经纬仪之纯化",
- "hexcasting.action.book.hexposition:get_air": "窒息之纯化",
- "hexcasting.action.book.hexposition:is_wet": "末影人之纯化",
- "hexcasting.action.book.hexposition:identify": "侦探之纯化",
- "hexcasting.action.book.hexposition:damage_stack": "损耗之纯化",
- "hexcasting.action.book.hexposition:classify": "抵量之纯化",
- "hexcasting.action.book.hexposition:get_biome": "地理之纯化",
- "hexcasting.action.book.hexposition:get_weather": "天气学家之精思",
-
- "hexposition.page.enlightened_patterns.title": "启迪后图案",
- "hexposition.page.enlightened_patterns.0": "在经过$(thing)启迪$()之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经$(thing)启迪$()的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
- "hexcasting.action.hexposition:am_enlightened": "显圣之纯化",
- "hexposition.page.am_enlightened.summary": "检验所给玩家是否和我一样经过$(thing)启迪$()。",
- "hexcasting.action.hexposition:is_brainswept": "感知之纯化",
- "hexposition.page.is_brainswept.summary": "检验实体是否“被魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
-
- "hexposition.page.perlin.title": "准随机",
- "hexposition.page.perlin.0": "虽然我还没有找到利用的方法,但各地的环境$(media)媒质$()密度确实各不相同。可以测量时空中某一点的此密度,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
- "hexcasting.action.hexposition:perlin": "柏林之馏化",
- "hexposition.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
-
- "hexposition.page.special_raycasts.title": "特殊射线追踪",
- "hexcasting.action.hexposition:fluid_raycast": "海军之馏化",
- "hexposition.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.action.hexposition:fluid_surface_raycast": "睡莲之馏化",
- "hexposition.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.action.hexposition:piercing_raycast": "轨道炮之提整",
- "hexposition.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
- "hexcasting.action.hexposition:piercing_surface_raycast": "激光之提整",
- "hexposition.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
-
- "hexposition.category.scrying": "探知",
- "hexposition.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。虽然这些操作在大多数$(hex)咒术$()中没什么大用处,但有它们在也不错,我将来也许会用到。",
-
- "hexposition.page.blocks.title": "方块",
- "hexcasting.action.hexposition:block_hardness": "矿工之纯化",
- "hexposition.page.block_hardness.summary": "压入挖掘给定类型方块的难易程度。",
- "hexcasting.action.hexposition:block_blast_resistance": "爆破兵之纯化",
- "hexposition.page.block_blast_resistance.summary": "压入给定类型方块对爆炸的抗性。",
- "hexcasting.action.hexposition:blockstate_rotation": "方向之纯化",
- "hexposition.page.blockstate_rotation.summary": "压入方块的朝向向量。若该类方块不区分朝向,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexposition:blockstate_turn": "角度之纯化",
- "hexposition.page.blockstate_turn.summary": "压入一个数,对应$(item)告示牌$()、$(item)头颅$()、$(item)旗帜$()的旋转方向。",
- "hexcasting.action.hexposition:blockstate_crop": "农夫之纯化",
- "hexposition.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的生长进度,对$(item)蜂巢$()、$(item)堆肥桶$()、$(item)炼药锅$()同样有效。奇怪的是,对$(item)蛋糕$()也有效。",
- "hexcasting.action.hexposition:blockstate_waterlogged": "管道工之纯化",
- "hexposition.page.blockstate_waterlogged.summary": "检验方块是否含水。若该类方块无法含水,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexposition:blockstate_glow": "发光之纯化",
- "hexposition.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有$(item)熔炉$()、$(item)红石火把$()、$(item)灯笼$()、$(item)营火$()等。",
- "hexcasting.action.hexposition:blockstate_lock": "锁之纯化",
- "hexposition.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有$(item)门$()、$(item)活板门$()、$(item)栅栏门$()、$(item)木桶$()等。",
- "hexcasting.action.hexposition:blockstate_bunch": "叠放之纯化",
- "hexposition.page.blockstate_bunch.summary": "返回可叠放方块的叠放部件数,无法叠放则返回 $(l:casting/influences)$(thing)Null$()。仅对$(item)蜡烛$()、$(item)海泡菜$()、$(item)海龟蛋$()有效。",
- "hexcasting.action.hexposition:blockstate_book": "书之纯化",
- "hexposition.page.blockstate_book.summary": "检验$(item)讲台$()中是否有$(item)书$(),$(item)唱片机$()中是否有$(item)唱片$()。我读到过它可能对所谓“卓伟大作”中的某种奇妙书架也有效。",
-
- "hexposition.page.entities.title": "实体",
- "hexcasting.action.hexposition:entity_width": "卡尺之纯化",
- "hexposition.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
- "hexcasting.action.hexposition:theodolite": "经纬仪之纯化",
- "hexposition.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
- "hexcasting.action.hexposition:get_health": "生命力之纯化",
- "hexposition.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
- "hexcasting.action.hexposition:get_max_health": "健康之纯化",
- "hexposition.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
- "hexcasting.action.hexposition:get_air": "窒息之纯化",
- "hexposition.page.get_air.summary": "压入实体距离窒息剩余多少秒。对脱水的海洋生物和溺水的陆地生物均有效。",
- "hexcasting.action.hexposition:get_max_air": "双肺之纯化",
- "hexposition.page.get_max_air.summary": "返回给定类型实体在离开其呼吸环境后需多少秒开始窒息。",
- "hexcasting.action.hexposition:burning": "炼狱之纯化",
- "hexposition.page.burning.summary": "返回实体身上的火焰距自然熄灭剩余多少秒,实体未在燃烧则返回 -1。",
- "hexcasting.action.hexposition:is_wet": "末影人之纯化",
- "hexposition.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
- "hexcasting.action.hexposition:is_baby": "青春之纯化",
- "hexposition.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对$(item)盔甲架$()也有效。",
- "hexcasting.action.hexposition:breedable": "繁衍之纯化",
- "hexposition.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexposition:is_sleeping": "树懒之纯化",
- "hexposition.page.is_sleeping.summary": "检验$(item)玩家$()、$(item)猫$()、$(item)狐狸$()、以及其他实体是否处于睡眠状态。",
- "hexcasting.action.hexposition:is_sprinting": "赛车手之纯化",
- "hexposition.page.is_sprinting.summary": "检验$(item)玩家$()、$(item)猫$()、$(item)狐狸$()、以及其他实体是否在疾跑。速泳和疾跑后离地均算作疾跑。",
- "hexcasting.action.hexposition:entity_vehicle": "载具之纯化",
- "hexposition.page.entity_vehicle.summary": "检验所给实体是否处于骑乘状态,若未在骑乘或未乘坐载具,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexposition:entity_passengers": "骑士之纯化",
- "hexposition.page.entity_passengers.summary": "返回骑乘所给实体的实体列表。",
- "hexcasting.action.hexposition:shooter": "射手之纯化",
- "hexposition.page.shooter.summary": "返回所给弹射物实体的发射者,若无发射者或不是弹射物,则返回 $(l:casting/influences)$(thing)Null$()。如果发射者在我影响范围之外,也会返回 $(l:casting/influences)$(thing)Null$()。",
-
- "hexposition.page.environment.title": "环境",
- "hexposition.page.environment.0": "本节的图案比较“元”:它们会检验其所处的施法环境。主要适合用来规避$(l:casting/mishaps)$(thing)事故$()。",
- "hexcasting.action.hexposition:env_ambit": "影响范围之纯化",
- "hexposition.page.env_ambit.summary": "检验所给位置或实体是否处于影响范围中。",
- "hexcasting.action.hexposition:env_staff": "法杖之精思",
- "hexposition.page.env_staff.summary": "检验该图案是否由$(l:items/staff)$(item)法杖$()施放。",
- "hexcasting.action.hexposition:env_offhand": "敏捷之精思",
- "hexposition.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果。",
- "hexcasting.action.hexposition:env_packaged_hex": "设备之精思",
- "hexposition.page.env_packaged_hex.summary": "检验该图案是否由任意$(l:items/hexcasting)$(item)施法物品$()施放。",
- "hexcasting.action.hexposition:env_circle": "建构之精思",
- "hexposition.page.env_circle.summary": "检验该图案是否由某种$(l:greatwork/spellcircles)$(thing)$(o)卓伟之作$()施放。",
-
- "hexposition.page.food.title": "食物",
- "hexcasting.action.hexposition:get_player_hunger": "饥饿之纯化",
- "hexposition.page.get_player_hunger.summary": "返回$(item)玩家$()的饥饿值。使用半个饥饿值火腿作为单位。",
- "hexcasting.action.hexposition:get_player_saturation": "耐力之纯化",
- "hexposition.page.get_player_saturation.summary": "返回$(item)玩家$()的饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.action.hexposition:edible": "可食性之纯化",
- "hexposition.page.edible.summary": "接受一个物品标识,检验它是否可被我食用。",
- "hexcasting.action.hexposition:get_hunger": "卡路里之纯化",
- "hexposition.page.get_hunger.summary": "接受一个物品标识,返回它为我带来的饱腹感的量。",
- "hexcasting.action.hexposition:get_saturation": "饱和之纯化",
- "hexposition.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.action.hexposition:is_meat": "肉类之纯化",
- "hexposition.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类,也即$(item)狼$()能否食用。",
- "hexcasting.action.hexposition:is_snack": "甜点之纯化",
- "hexposition.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食。",
-
- "hexposition.page.identifiers.title": "标识",
- "hexposition.page.identifiers.0": "标识 iota是自然对“$(hex)咒术$()如何指定类型”的解决方案。每一个实体类型、方块类型、状态效果类型、魔咒类型、声音类型等都拥有可被$(hex)咒术$()识别的唯一标识,此标识可获取,也可比较。",
- "hexcasting.action.hexposition:identify": "侦探之纯化",
- "hexposition.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
- "hexcasting.action.hexposition:classify": "抵量之纯化",
- "hexposition.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
-
- "hexposition.page.item.title": "物品",
- "hexposition.page.item.0": "物品 iota 中含有的信息几乎足以唯一确定一个物品组,且$(hex)咒术$()可通过它们查询其状态。不过此类 iota 有一个例外:如果某个物品内部存有物品 iota,则它的物品 iota 中不会保留存储内容。物品 iota 的精细$(media)媒质$()结构在经多次抽象后即会消散殆尽。",
- "hexposition.page.item.1": "$(item)玩家$()具有智能,也似乎因此在常态操控$(media)媒质$()。这种$(media)媒质$()气场在大部分情况下保持惰性,但并非不会产生反应;在深入探知的情况下,这一反应通常相当剧烈。盔甲和手持物品等暴露于外界的物品可被探知,但对其物品栏的深入分析不会起效。$(br2)自然尊重界限。",
- "hexcasting.action.hexposition:get_stack": "物品之纯化",
- "hexposition.page.get_stack.summary": "返回所给$(item)物品$()实体对应的物品。",
- "hexcasting.action.hexposition:create_stack": "献物之纯化",
- "hexposition.page.create_stack.summary": "由物品标识和组内物品数制造物品。",
- "hexcasting.action.hexposition:get_mainhand": "工具之纯化",
- "hexposition.page.get_mainhand.summary": "返回实体主手的物品。",
- "hexcasting.action.hexposition:get_offhand": "配件之纯化",
- "hexposition.page.get_offhand.summary": "返回实体副手的物品。",
- "hexcasting.action.hexposition:get_inventory": "矿车之纯化",
- "hexposition.page.get_inventory.summary": "返回实体装有的全部物品组成的列表;若实体无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。试图访问其他$(item)玩家$()的物品栏会招致事故。",
- "hexcasting.action.hexposition:get_block_inventory": "箱子之纯化",
- "hexposition.page.get_block_inventory.summary": "返回容器装有的全部物品组成的列表;若方块无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexposition:get_armor": "埃癸斯之纯化",
- "hexposition.page.get_armor.summary": "返回实体穿着的全部物品组成的列表,顺序自下向上。",
- "hexcasting.action.hexposition:get_ender_chest": "口袋之精思",
- "hexposition.page.get_ender_chest.summary": "返回我末影箱中全部物品组成的列表。",
- "hexcasting.action.hexposition:count_stack": "仓储之纯化",
- "hexposition.page.count_stack.summary": "接受一个物品,返回其中物品数量。",
- "hexcasting.action.hexposition:count_max_stack": "库房之纯化",
- "hexposition.page.count_max_stack.summary": "接受一个物品,返回其中最多可堆叠多少物品。",
- "hexcasting.action.hexposition:damage_stack": "损耗之纯化",
- "hexposition.page.damage_stack.summary": "接受一个物品,返回物品剩余的耐久度。",
- "hexcasting.action.hexposition:damage_max_stack": "脆弱性之纯化",
- "hexposition.page.damage_max_stack.summary": "接受一个物品,返回物品的耐久度上限。",
- "hexcasting.action.hexposition:get_enchantments": "奇术师之纯化",
- "hexposition.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
- "hexcasting.action.hexposition:get_enchantment_strength": "咒能之馏化",
- "hexposition.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
- "hexcasting.action.hexposition:rarity": "收藏家之纯化",
- "hexposition.page.rarity.summary": "测量物品的稀有度,返回为数,值越大越稀有。魔咒等特殊性质可能会提升物品的稀有度。",
-
- "hexposition.page.media.title": "媒质",
- "hexcasting.action.hexposition:env_media": "媒质之精思",
- "hexposition.page.env_media.summary": "返回当前施放可用的$(media)媒质$()的量。",
- "hexcasting.action.hexposition:get_media": "媒质之纯化",
- "hexposition.page.get_media.summary": "返回物品中的,或生物含有的,或生物持有的,或特种$(media)媒质$()存储方块含有的$(media)媒质$()。",
- "hexcasting.action.hexposition:media_max_stack": "潜能之纯化",
- "hexposition.page.media_max_stack.summary": "接受一个物品实体,若其无法存储$(media)媒质$(),返回 $(l:casting/influences)$(thing)Null$();否则返回其$(media)媒质$()存储上限。",
-
- "hexposition.page.status_effects.title": "状态效果",
- "hexcasting.action.hexposition:get_effects_entity": "诊断之纯化",
- "hexposition.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
- "hexcasting.action.hexposition:get_effects_item": "处方之纯化",
- "hexposition.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
- "hexcasting.action.hexposition:get_effect_category": "药性之纯化",
- "hexposition.page.get_effect_category.summary": "获取某效果对承受者造成的效应是“良性”与否。-1 为负面,0 为中性,1 为正面。",
- "hexcasting.action.hexposition:get_effect_amplifier": "浓度之馏化",
- "hexposition.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexposition:get_effect_duration": "效除之馏化",
- "hexposition.page.get_effect_duration.summary": "获取效果的持续时间,以秒计,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
-
- "hexposition.page.world.title": "世界",
- "hexcasting.action.hexposition:get_light": "光照之纯化",
- "hexposition.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
- "hexcasting.action.hexposition:get_weather": "天气学家之精思",
- "hexposition.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
- "hexcasting.action.hexposition:get_power": "电池之纯化",
- "hexposition.page.get_power.summary": "返回给定位置的红石信号强度。",
- "hexcasting.action.hexposition:get_comparator": "外设之纯化",
- "hexposition.page.get_comparator.summary": "返回$(item)比较器$()对准给定位置时会输出的红石信号强度。",
- "hexcasting.action.hexposition:get_day": "昼夜之精思",
- "hexposition.page.get_day.summary": "返回当天时间的进程,返回值在 0(一天刚开始)到 1(一天要结束)之间。",
- "hexcasting.action.hexposition:get_time": "时间之精思",
- "hexposition.page.get_time.summary": "压入世界经过的时间,主要用来计时,不受睡觉等事件的影响。除以 20 后即为秒数。",
- "hexcasting.action.hexposition:get_biome": "地理之纯化",
- "hexposition.page.get_biome.summary": "返回给定位置向量处生物群系类别的标识。",
- "hexcasting.action.hexposition:get_dimension": "位面之精思",
- "hexposition.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。",
- "hexcasting.action.hexposition:get_moon": "月相之精思",
- "hexposition.page.get_moon.summary": "返回当前的月相,返回值为可见的$(item)月亮$()照亮区域的占比。",
- "hexcasting.action.hexposition:get_einstein": "扭曲之精思",
- "hexposition.page.get_einstein.summary": "检验$(item)指南针$()和$(item)钟$()可否在此维度运作。"
-}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
index de64fddcb6e0..21f7c1d523df 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
@@ -48,7 +48,7 @@
"overevaluate.page.apep.description": "Starts with the first two elements of the list and casts the _Hex on them. Then, the top iota remaining after casting and the next element in the list are placed on the stack and casted upon, repeating until the entire list has been exhausted. The top iota after all that is finally pushed onto the stack.$(br2)$(o)Euler did music too, you know$()",
"hexcasting.action.overevaluate:tutu": "Tutu's Gambit",
"overevaluate.page.tutu.summary": "Does nothing.",
- "overevaluate.page.tutu.description": "This pattern seems useless but is helpful in conjunction with Charon's Gambit or Janus' Gambit as the \"other branch\". Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.$(br2)$(o)The only winning move is not to play.$()",
+ "overevaluate.page.tutu.description": "This pattern seems useless but is helpful in conjunction with $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() or $(l:metaevals#overevaluate:janus)$(action)Janus' Gambit$() as the \"other branch\". Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.$(br2)$(o)The only winning move is not to play.$()",
"hexcasting.action.overevaluate:janus": "Janus' Gambit",
"overevaluate.page.janus.summary": "Instantly terminates the _Hex regardless of current circumstances.",
"overevaluate.page.janus.description": "It's useful to end a _Hex early once it has reached some desired state because it can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().$(br2)$(o)It is always important to know when something has reached its end.$()",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
index 276b30335e0e..de22b7109503 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
@@ -48,7 +48,7 @@
"overevaluate.page.apep.description": "第一次施放会将$(hex)咒术$()作用于第一和第二个 iota,结果暂存于栈顶。下一次施放作用于第一次暂存的 iota 和原本的第三个 iota,同样暂存于栈顶元素。重复此过程,直至穷尽第一列表。最后,返回最后一次暂存的 iota。$(br2)$(o)欧拉也玩过音乐。$()",
"hexcasting.action.overevaluate:tutu": "图图之策略",
"overevaluate.page.tutu.summary": "什么都不会做。",
- "overevaluate.page.tutu.description": "此图案看上去可能没什么用,但它很适合作为卡戎之策略和雅努斯之策略的“另一分支”。运行此图案不会消耗执行深度和媒质,不会产生粒子,也不会对世界产生任何影响。$(br2)$(o)唯一的取胜之道就是不要参与。$()",
+ "overevaluate.page.tutu.description": "此图案看上去可能没什么用,但它很适合作为$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()和$(l:metaevals#overevaluate:janus)$(action)雅努斯之策略$()的“另一分支”。运行此图案不会消耗执行深度和媒质,不会产生粒子,也不会对世界产生任何影响。$(br2)$(o)唯一的取胜之道就是不要参与。$()",
"hexcasting.action.overevaluate:janus": "雅努斯之策略",
"overevaluate.page.janus.summary": "立即终止当前$(hex)咒术$(),无视所有限制。",
"overevaluate.page.janus.description": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()、$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()、$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限。$(br2)$(o)咒术之将亡,其媒质也善。$()",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
new file mode 100644
index 000000000000..9e853600a974
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
@@ -0,0 +1,19 @@
+{
+ "scryglass.page.scryglass.title": "Viewforming",
+ "scryglass.page.scryglass.0": "I can use _Hexcasting to conjure small strands of visible _media just before my eyes using a family of spells called the oculus spells. The small strand of _media—called an $(thing)Icon$()—dissolves in just about a second after conjuration, but if I had some method to automatically cast a _Hex, I could permanently augment my own vision to suit my needs.",
+ "scryglass.page.scryglass.1": "All oculus spells take an integer henceforth referred to as an index, which will be used to refer to and distinguish $(thing)Icons$$(). Using a used index in an oculus spell will destroy the old $(thing)Icon$() and reassign it to the new one.$(br2)$(o)Virtual instruments spread out in front of her like playing cards show her relative position and velocity, her airspeed and orientation, her oxygen levels, mana levels, and her degree of concentration.$()",
+ "scryglass.page.scryglass.2": "Oculus spells also typically want a position to draw to, in the form of a vector. The x and y-components of the vector I pass in are coordinates on a coordinate plane whose origin is at the center of my vision. $(l:scryglass#scryglass:get_window_size)$(action)Periphery Reflection$() can be used to determine the full range of my vision. The z-component is used to determine which $(thing)Icons$() appear over others.",
+ "hexcasting.action.scryglass:get_window_size": "Periphery Reflection",
+ "scryglass.page.get_window_size.summary": "Returns the full width and height of my vision as a vector.",
+ "hexcasting.action.scryglass:get_icons": "Icons Reflection",
+ "scryglass.page.get_icons.summary": "Pushes a list of the indices of all the $(thing)Icons$() I have. This appears as a list of numbers.",
+ "hexcasting.action.scryglass:remove_icons": "Clear Icon",
+ "scryglass.page.remove_icons.summary": "Immediately clears an $(thing)Icon$().",
+ "scryglass.page.scryglass.3": "Some oculus spells also want a color, which is taken as a vector where the components correspond to red, green, and blueness of an intended color, ranging from 0 to 1.",
+ "hexcasting.action.scryglass:draw_text": "Draw Text",
+ "scryglass.page.draw_text.summary": "Takes an index, a position, and any iota. Conjures an $(thing)Icon$() displaying that iota.",
+ "hexcasting.action.scryglass:draw_rect": "Draw Rectangle",
+ "scryglass.page.draw_rect.summary": "Takes an index, a position, a size, and a color. Conjures an $(thing)Icon$() displaying that rectangle.",
+ "hexcasting.action.scryglass:draw_line": "Draw Line",
+ "scryglass.page.draw_line.summary": "Takes an index, a position, a size, and a color. Conjures an $(thing)Icon$() that joins between the two with a thin line."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
new file mode 100644
index 000000000000..ef88c0fa1e21
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
@@ -0,0 +1,19 @@
+{
+ "scryglass.page.scryglass.title": "视野塑影",
+ "scryglass.page.scryglass.0": "$(hex)咒法学$()可在眼前构筑可视的$(media)媒质$()丝,用到的一系列法术统称为“眼眸法术”。这种$(media)媒质$()丝称作$(thing)像图$(),且会在构筑完毕约 1 秒后消散。如果有自动施放$(hex)咒术$()的方法,也许就能永久性按需求增强我的视觉了。",
+ "scryglass.page.scryglass.1": "所有眼眸法术都会接受一个整数用作索引,以此引用和区分$(thing)像图$()。在眼眸法术中使用已被占用的索引,会销毁原有的$(thing)像图$()再重新分配。$(br2)$(o)虚拟的仪器在她的眼前铺开,仿佛纸牌一般展示着她的相对位置和速度,她的空速和朝向,她的氧气水平、魔力水平,还有她精神的集中度。$()",
+ "scryglass.page.scryglass.2": "眼眸法术通常还会需要一个用于绘制的位置向量。所给向量的 X 和 Y 坐标对应视野中的坐标位置,该坐标平面以视野中央为原点。$(l:scryglass#scryglass:get_window_size)$(action)边缘之精思$()可用于检测视野的范围。Z 分量则用于决定哪些$(thing)像图$()出现在其他$(thing)像图$()之上。",
+ "hexcasting.action.scryglass:get_window_size": "边缘之精思",
+ "scryglass.page.get_window_size.summary": "以向量返回我视野的全宽和全高。",
+ "hexcasting.action.scryglass:get_icons": "像图之精思",
+ "scryglass.page.get_icons.summary": "返回我拥有的所有$(thing)像图$()的索引列表。返回的似乎是一个数列表。",
+ "hexcasting.action.scryglass:remove_icons": "清除像图",
+ "scryglass.page.remove_icons.summary": "立刻清除所给$(thing)像图$()。",
+ "scryglass.page.scryglass.3": "部分眼眸法术还需一个颜色,需以向量形式提供,各分量代表目标颜色的红、绿、蓝浓度,取值范围为 0 到 1。",
+ "hexcasting.action.scryglass:draw_text": "绘制文本",
+ "scryglass.page.draw_text.summary": "接受一个索引、一个位置、一个任意 iota。将该 iota 构筑显示为$(thing)像图$()。",
+ "hexcasting.action.scryglass:draw_rect": "绘制长方形",
+ "scryglass.page.draw_rect.summary": "接受一个索引、一个位置、一个尺寸、一个颜色。构筑一个显示所定义长方形的$(thing)像图$()。",
+ "hexcasting.action.scryglass:draw_line": "绘制线段",
+ "scryglass.page.draw_line.summary": "接受一个索引、两个位置、一个颜色。构筑连接两点的细线$(thing)像图$()。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
index 71e0abe6c3c4..0810c5da92d7 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
@@ -7,7 +7,7 @@
"advancements.hexcassettes.full_arsenal.description": "Acquire a full arsenal of cassettes.",
"key.categories.hexcassettes": "Hexcassettes",
"key.hexcassettes.view_cassettes": "Ponder Cassettes",
- "hexcasting.mishap.invalid_value.hex_or_key": "a Hex or a pattern for the cassette key",
+ "hexcasting.mishap.invalid_value.hex_or_key": "a list to evaluate or a pattern key for the cassette",
"item.hexcassettes.cassette": "Cassette",
"screen.hexical.cassette": "Cassettes",
"subtitles.hexcassettes.cassette_eject": "Cassette ejects",
@@ -19,12 +19,12 @@
"hexcasting.mishap.hexcassettes:not_enough_cassettes": "Attempted to queue a Hex into a cassette index I do not have.",
"hexcassettes.page.async.title": "Asynchronous Hexes",
- "hexcassettes.page.async.0": "As part of their nature, _Hexes evaluate in their entirety in one instant. To postpone _Hexes for later, Nature has devised quite the whimsical solution: a $(item)Cassette Tape$() that must be crafted and then \"consumed\". I may have up to six at any time. Each one holds a _Hex I requested to delay until that _Hex is ready to cast. After casting, the $(thing)Cassette$() becomes free to hold other _Hexes.",
- "hexcassettes.page.async.craft": "After plating a $(item)Music Disc$() with a hefty amount of $(item)$(l:items/amethyst)Charged Amethyst$() to enable the $(o)abstraction$(), I can $(o)consume$() my glorious creation using a combination of magic, willpower, and a lot of chewing to add it to my mind's collection.",
+ "hexcassettes.page.async.0": "As part of their nature, _Hexes evaluate in their entirety in one instant. To postpone _Hexes for later, Nature has devised quite the whimsical solution: a $(item)Cassette Tape$() that must be crafted and then $(o)subsumed$(). I may have up to six at any time. Each one holds a _Hex I requested to delay until that _Hex is ready to cast. After casting, the $(thing)Cassette$() becomes free to hold other _Hexes.",
+ "hexcassettes.page.async.craft": "After plating a $(item)Music Disc$() with a hefty amount of $(item)$(l:items/amethyst)Charged Amethyst$() to enable the $(o)abstraction$(), I can add my glorious creation to my mind's collection using a combination of magic, willpower, and a lot of chewing.",
"hexcasting.action.hexcassettes:enqueue": "Enqueue",
- "hexcassettes.page.enqueue.summary.0": "Enqueues a _Hex to cast after that many twentieths of a second. Queues it into the first free $(thing)Cassette$() or the current $(thing)Cassette$() and pushes the index of that $(thing)Cassette$().",
- "hexcassettes.page.async.1": "The index number is used to distinguish $(thing)Cassettes$() from each other. It ranges from 0 to one less than the number of $(thing)Cassettes$() I have in my mind's collection. If $(l:async#hexcassettes:enqueue)$(action)Enqueue$() can not find a free $(thing)Cassette$(), incurs the Parallel Processing mishap.$(br2)Seems to hint that the world I live in has a disturbingly low $(o)temporal resolution$().. best not to dwell on that.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
- "hexcassettes.page.async.2": "I can ponder my $(thing)Cassettes$() by pressing $(thing)$(k:hexcassettes.view_cassettes)$() and cycle through them with the arrow keys. Queued _Hexes are represented as inserted $(thing)Cassettes$() with their label rendered to the side, and by pressing an $(thing)Cassette$(), I can cancel the corresponding _Hex.$(br2)Dying also forcibly disqueues all of my $(thing)Cassettes$(). I can rest easy that I will not trap myself in an endless death cycle.",
+ "hexcassettes.page.enqueue.summary.0": "Enqueues a _Hex to cast after that many twentieths of a second. Places it into the current $(thing)Cassette$() if being cast by one, or a random pattern.",
+ "hexcassettes.page.async.1": "The pattern is used to distinguish $(thing)Cassettes$() from each other. If $(l:async#hexcassettes:enqueue)$(action)Enqueue$() can not find a free $(thing)Cassette$(), it incurs the Parallel Processing mishap.$(br2)Seems to hint that the world I live in has a disturbingly low $(o)temporal resolution$().. best not to dwell on that.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.2": "I can $(thing)$(k:hexcassettes.view_cassettes)$() and cycle through them with the arrow keys.$(br2)Dying also forcibly disqueues all of my $(thing)Cassettes$(). I can rest easy that I will not trap myself in an endless death cycle.",
"hexcassettes.page.async.3": "If a $(thing)Cassette$() enqueues a near-identical copy of itself, a phenomenon emerges that ancient _Hexcasters call a daemon: passive, constant _Hexcasting. Study into this branch of _Hexcasting seems limited due to the great danger of manipulating time: $(thing)Cassette$() _Hexes exclusively use the _media from my inventory. If left unchecked, it can easily drain my _media and then my life.",
"hexcasting.action.hexcassettes:dequeue": "Dequeue",
"hexcassettes.page.dequeue.summary": "Dequeues the $(thing)Cassette$() at the provided index, freeing it instantly and cancelling the _Hex within it.",
@@ -34,12 +34,12 @@
"hexcassettes.page.specs.summary": "Pushes the total number of $(thing)Cassettes$() that I have in my mind's collection.",
"hexcasting.action.hexcassettes:busy": "Operating Reflection",
"hexcassettes.page.busy.summary": "Pushes a list of all patterns that belong to busy $(thing)Cassettes$().",
- "hexcasting.action.hexcassettes:inspect": "Program Purification",
- "hexcassettes.page.inspect.summary": "Pushes $(l:casting/influences)$(thing)Null$() if I do not have an active $(thing)Cassette$() at that index, or the $(thing)Cassette$()'s _Hex if I do. I hear rumors of this being used for iota storage and passing information between _Hexes.",
+ "hexcasting.action.hexcassettes:inspect": "Program Distillation",
+ "hexcassettes.page.inspect.summary": "Pushes whether a given player has a $(thing)Cassette$() of that pattern.",
"hexcasting.action.hexcassettes:foretell": "Oracle Purification",
- "hexcassettes.page.foretell.summary": "Pushes $(l:casting/influences)$(thing)Null$() if I do not have an active $(thing)Cassette$() at that index, or how many twentieths of a second until that $(thing)Cassette$() fires if I do.",
- "hexcassettes.page.enqueue.summary.1": "A variant of $(l:async#hexcassettes:enqueue)$(action)Enqueue$() that takes an index right after the _Hex. It will force that $(thing)Cassette$()'s _Hex to the new one, regardless if one exists.",
+ "hexcassettes.page.foretell.summary": "Pushes $(l:casting/influences)$(thing)Null$() if I do not have an active $(thing)Cassette$() of that pattern, or how many twentieths of a second until that $(thing)Cassette$() fires if I do.",
+ "hexcassettes.page.enqueue.summary.1": "A variant of $(l:async#hexcassettes:enqueue)$(action)Enqueue$() that takes a pattern in addition. If there is already a $(thing)Cassette$() of that pattern, it overwrites its _Hex. Otherwise, it schedules the _Hex to an empty slot.",
"hexcassettes.page.async.4": "If that index does not exist, incurs the Memory Overflow mishap, killing all my active $(thing)Cassettes$().",
"hexcasting.action.hexcassettes:self": "State Reflection",
- "hexcassettes.page.self.summary": "Pushes the current index of the $(thing)Cassette$() this _Hex is running in or $(l:casting/influences)$(thing)Null$() if it is not running in a $(thing)Cassette$()."
+ "hexcassettes.page.self.summary": "Pushes the current pattern of the $(thing)Cassette$() this _Hex is running in or $(l:casting/influences)$(thing)Null$() if it is not running in a $(thing)Cassette$()."
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
index 6d82b0e44f4c..c6d2971a5e38 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
@@ -7,7 +7,7 @@
"advancements.hexcassettes.full_arsenal.description": "填满磁带库。",
"key.categories.hexcassettes": "Hexcassettes",
"key.hexcassettes.view_cassettes": "思索磁带",
- "hexcasting.mishap.invalid_value.hex_or_key": "一个咒术或一个用作磁带键的图案",
+ "hexcasting.mishap.invalid_value.hex_or_key": "一个用于运行的列表或一个用作磁带键的图案",
"item.hexcassettes.cassette": "磁带",
"screen.hexical.cassette": "磁带",
"subtitles.hexcassettes.cassette_eject": "磁带:弹出",
@@ -19,12 +19,12 @@
"hexcasting.mishap.hexcassettes:not_enough_cassettes": "试图将咒术排入未持有的磁带队列索引。",
"hexcassettes.page.async.title": "异步咒术",
- "hexcassettes.page.async.0": "$(hex)咒术$()会在单个时间片段内完全施放,这是它们的本性。而为延迟$(hex)咒术$(),自然设计了一套有些奇怪的方案:$(item)一盒磁带$(),需要“食用”的磁带。我最多可同时持有六盒磁带。每盒磁带都可容纳单个需延迟执行的$(hex)咒术$(),直至可以施放时再施放。此后,该$(thing)磁带$()会空出,供其他$(hex)咒术$()使用。",
- "hexcassettes.page.async.craft": "为促使$(item)音乐唱片$()与$(media)媒质$()$(o)融合$(),我为其镀上了相当多的$(item)$(l:items/amethyst)充能紫水晶$()。所得的智慧结晶需要$(o)食用$(),魔法、意志、持之以恒地咀嚼,三者缺一不可;这一过程后,即可将其收作己用。",
+ "hexcassettes.page.async.0": "$(hex)咒术$()会在单个时间片段内完全施放,这是它们的本性。而为延迟$(hex)咒术$(),自然设计了一套有些奇怪的方案:$(item)一盒磁带$(),需要$(o)食用$()的磁带。我最多可同时持有六盒磁带。每盒磁带都可容纳单个需延迟执行的$(hex)咒术$(),直至可以施放时再施放。此后,该$(thing)磁带$()会空出,供其他$(hex)咒术$()使用。",
+ "hexcassettes.page.async.craft": "为促使$(item)音乐唱片$()与$(media)媒质$()$(o)融合$(),我为其镀上了相当多的$(item)$(l:items/amethyst)充能紫水晶$()。如需将所得的智慧结晶纳入我的意识,魔法、意志、持之以恒地咀嚼,三者缺一不可。",
"hexcasting.action.hexcassettes:enqueue": "入队列",
- "hexcassettes.page.enqueue.summary.0": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。$(hex)咒术$()会进入第一个空闲的$(thing)磁带$(),或进入当前$(thing)磁带$(),同时返回该$(thing)磁带$()的索引。",
- "hexcassettes.page.async.1": "$(thing)磁带$()间使用索引数区分。索引自 0 起始,至目前意识中$(thing)磁带$()的总数之前为止。如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故。$(br2)这似乎表明我所处世界的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
- "hexcassettes.page.async.2": "按下$(thing)$(k:hexcassettes.view_cassettes)$()键可以思索$(thing)磁带$(),使用方向键可循环切换。已入队列的$(hex)咒术$()会显现为插入的$(thing)磁带$(),同时在侧面显示其标签。按压$(thing)磁带$()可以取消对应$(hex)咒术$()。$(br2)死亡也会强制将所有$(thing)磁带$()清出队列。如此就无需担心了——我不会陷入无穷无尽的死亡循环了。",
+ "hexcassettes.page.enqueue.summary.0": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。若由$(thing)磁带$()施放,则$(hex)咒术$()会进入该$(thing)磁带$();否则置入随机图案下。",
+ "hexcassettes.page.async.1": "$(thing)磁带$()间使用图案区分。如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故。$(br2)这似乎表明我所处世界的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.2": "按下$(thing)$(k:hexcassettes.view_cassettes)$()键和方向键可循环切换$(thing)磁带$()。$(br2)死亡会强制将所有$(thing)磁带$()清出队列。如此就无需担心了——我不会陷入无穷无尽的死亡循环了。",
"hexcassettes.page.async.3": "若$(thing)磁带$()将其自身的副本稍加改动后入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()中$(hex)咒术$()只会消耗物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。",
"hexcasting.action.hexcassettes:dequeue": "出队列",
"hexcassettes.page.dequeue.summary": "令所给索引处的$(thing)磁带$()出队列,让其进入空闲状态,并取消其中$(hex)咒术$()。",
@@ -34,12 +34,12 @@
"hexcassettes.page.specs.summary": "返回我意识中当前的$(thing)磁带$()总数。",
"hexcasting.action.hexcassettes:busy": "运作之精思",
"hexcassettes.page.busy.summary": "返回所有忙状态$(thing)磁带$()的图案组成的列表。",
- "hexcasting.action.hexcassettes:inspect": "程序之纯化",
- "hexcassettes.page.inspect.summary": "若所给索引处$(thing)磁带$()不处于活跃状态,返回 $(l:casting/influences)$(thing)Null$();否则返回其中$(hex)咒术$()。我听过一些传言,说这个图案可以用来存储 iota,也可以用来在$(hex)咒术$()间传递信息。",
+ "hexcasting.action.hexcassettes:inspect": "程序之馏化",
+ "hexcassettes.page.inspect.summary": "检验所给玩家是否拥有以所给图案标识的$(thing)磁带$()。",
"hexcasting.action.hexcassettes:foretell": "先知之纯化",
- "hexcassettes.page.foretell.summary": "若所给索引处$(thing)磁带$()不处于活跃状态,返回 $(l:casting/influences)$(thing)Null$();否则返回该$(thing)磁带$()会在多少个 1/20 秒后施放。",
- "hexcassettes.page.enqueue.summary.1": "$(l:async#hexcassettes:enqueue)$(action)入队列$()的一个变种,在$(hex)咒术$()后还需向其提供一个索引。它会强制将该$(thing)磁带$()中的$(hex)咒术$()换为所给参数,无论原先里面有没有$(hex)咒术$()。",
+ "hexcassettes.page.foretell.summary": "若所给图案处$(thing)磁带$()不处于活跃状态,返回 $(l:casting/influences)$(thing)Null$();否则返回该$(thing)磁带$()会在多少个 1/20 秒后施放。",
+ "hexcassettes.page.enqueue.summary.1": "$(l:async#hexcassettes:enqueue)$(action)入队列$()的一个变种,还需向其提供一个图案。若已经存在使用该图案的$(thing)磁带$(),则覆盖其中$(hex)咒术$();否则将$(hex)咒术$()分配至空磁带槽。",
"hexcassettes.page.async.4": "如果所给的索引不存在,则招致“内存溢出”事故:终止所有活跃中的$(thing)磁带$()。",
"hexcasting.action.hexcassettes:self": "状态之精思",
- "hexcassettes.page.self.summary": "返回当前$(hex)咒术$()所在$(thing)磁带$()的索引。若不在$(thing)磁带$()中运行,则返回 $(l:casting/influences)$(thing)Null$()。"
+ "hexcassettes.page.self.summary": "返回当前$(hex)咒术$()所在$(thing)磁带$()的图案。若不在$(thing)磁带$()中运行,则返回 $(l:casting/influences)$(thing)Null$()。"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
index c0b0b6b4565d..c1d22c96df53 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
@@ -1,18 +1,23 @@
{
"hexcasting.action.book.hexcellular:create_property": "Schrödinger's Refl.",
- "hexcasting.action.book.hexcellular:observe_property": "Observation Purif.",
+ "hexcasting.action.book.hexcellular:readonly_property": "Schrödinger's Purif.",
"hexcasting.action.book.hexcellular:set_property": "Schrödinger's Gambit",
+ "hexcasting.action.book.hexcellular:observe_property": "Observation Purif.",
"hexcasting.mishap.invalid_value.class.property": "a property iota",
+ "hexcasting.mishap.invalid_value.writeable_prop": "a writeable property iota",
"hexcellular.page.properties.title": "Property Iota",
- "hexcellular.page.properties.0": "Using Hexcasting, I can etch information into the laws of the universe themselves. These artificial bits of information are fittingly called properties and they can be accessed from anywhere with a property iota. Two hexcasters with copies of the same property can set the property's iota and read it to instantly share the iota with each other.",
- "hexcellular.page.properties.1": "I can also use it to communicate $(o)state$() within and between my Hexcasting appliances. For instance, a $(l:items/hexcasting)casting device$() that uses a property that it increments in order to keep track of how many times it has been used and do something different each time.$(br2)$(o)Spooky action from a distance...$()",
+ "hexcellular.page.properties.0": "I can etch iota as laws of the universe themselves, known as $(thing)Properties$(). Any _Hexcasting medium can interact with $(thing)Properties$() via a reference called a property iota.$(br2)Two _Hexcasters with property iotas pointing to the same $(thing)Property$() can write to one copy and read from the other to instantly transmit information.",
+ "hexcellular.page.properties.1": "$(thing)Properties$() can also be used to communicate $(o)state$() within and between my _Hexcasting appliances. For instance, a $(l:items/hexcasting)casting device$() using a $(thing)Property$() that it increments in order to remember how many times it has been used and do something different each time.$(br2)$(o)Spooky action from a distance...$()",
"hexcasting.action.hexcellular:create_property": "Schrödinger's Reflection",
- "hexcellular.page.create_property.summary": "Pushes a reference to a random property. Costs one charged amethyst to burn this property into the universe.",
- "hexcellular.page.properties.2": "When creating a property, the spell pushes a property iota with a randomly generated name. This name is the only reference to the created property. I should immediately store these property iota for safe-keeping because there is no way to recover one once all references to it have been lost and the only ways to interact with a property is through its iota.",
+ "hexcellular.page.create_property.summary": "Creates a property iota for a random $(thing)Property$(). Costs about five $(l:items/amethyst)$(item)Charged Amethyst$() to etch this law into the universe.",
+ "hexcellular.page.properties.2": "When using $(thing)Properties$(), the created property iota is the $(o)only$() reference to the $(thing)Property$(). I should take care to immediately save the iota lest I lose the only interface to it.$(br2)While the cost to create one is steep, once created, the property iota allows for simple connection to the $(thing)Property$(), allowing me to read and write to it cheaply forevermore.",
"hexcasting.action.hexcellular:observe_property": "Observation Purification",
- "hexcellular.page.observe_property.summary": "Observes the current value of the property iota. Free to use.",
+ "hexcellular.page.observe_property.summary": "Observes the current value of the property iota.",
"hexcasting.action.hexcellular:set_property": "Schrödinger's Gambit",
- "hexcellular.page.set_property.summary": "Sets the property iota. Costs about a tenth of a dust. All future observations of the property iota return the new value."
+ "hexcellular.page.set_property.summary": "Sets the property iota. Costs about a tenth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexcellular.page.properties.3": "Occasionally, I may want to pass out property iota without the risk of someone else overwriting their contents. In such cases, I can create read-only copies. They can still be read using $(l:properties#hexcellular:observe_property)$(action)Observation Purification$() and will refer to the $(thing)Property$() as usual but they can not be written to with $(l:properties#hexcellular:set_property)$(action)Schrödinger's Gambit$().$(br2)To distinguish, read-only property iotas are cyan.",
+ "hexcasting.action.hexcellular:readonly_property": "Schrödinger's Purification",
+ "hexcellular.page.readonly_property.summary": "Creates a read-only property iota from a given property iota."
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
index 1bc6197e74be..62e5d5473dbb 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
@@ -1,18 +1,23 @@
{
"hexcasting.action.book.hexcellular:create_property": "薛定谔之精思",
- "hexcasting.action.book.hexcellular:observe_property": "观测之纯化",
+ "hexcasting.action.book.hexcellular:readonly_property": "薛定谔之纯化",
"hexcasting.action.book.hexcellular:set_property": "薛定谔之策略",
+ "hexcasting.action.book.hexcellular:observe_property": "观测之纯化",
"hexcasting.mishap.invalid_value.class.property": "一个质性iota",
+ "hexcasting.mishap.invalid_value.writeable_prop": "一个可写的质性iota",
"hexcellular.page.properties.title": "质性 Iota",
- "hexcellular.page.properties.0": "借助咒法学的力量,即可向宇宙的法则中直接刻入信息。这种信息粒有个相当恰当的名字——“质性”/“property”,可以在世界各处通过质性 iota 访问。持有同一质性的副本的两位咒术师在对质性写入后立即读取,即能共享写入的 iota。",
- "hexcellular.page.properties.1": "还可用其在咒法学设备间共享$(o)状态$()。比如说,$(l:items/hexcasting)施法设备$()使用的质性可以不断递增,以此记录设备的使用次数,以便在不同次数时做出不同操作。$(br2)$(o)鬼魅般的超距作用……$()",
+ "hexcellular.page.properties.0": "我可向宇宙的法则中直接刻入信息,即$(thing)质性$()。任意$(hex)咒法学$()施法媒介都可与$(thing)质性$()交互,索引途径称作质性 iota。$(br2)如果两位$(hex)咒术师$()各自持有指向同一$(thing)质性$()的质性 iota,则向其中一方写入再从另一方读取,即可瞬时传输信息。",
+ "hexcellular.page.properties.1": "还可用$(thing)质性$()在$(hex)咒法学$()设备间共享$(o)状态$()。比如说,$(l:items/hexcasting)施法设备$()使用的$(thing)质性$()可以不断递增,以此记忆设备的使用次数,方便在不同次数时做出不同操作。$(br2)$(o)鬼魅般的超距作用……$()",
"hexcasting.action.hexcellular:create_property": "薛定谔之精思",
- "hexcellular.page.create_property.summary": "压入一个代表随机质性的 iota。向宇宙烧录质性需要消耗 1 个充能紫水晶。",
- "hexcellular.page.properties.2": "创建质性时会随机生成一个名称,此名称是该质性的唯一引用。为保险起见,创建后应当立刻存下一份副本;否则所有代表此质性的 iota 丢失,质性即无法找回,而此该质性的交互只能经由该 iota 进行。",
+ "hexcellular.page.create_property.summary": "创造一个指向随机$(thing)质性$()的质性 iota。向宇宙蚀刻这道法则需消耗大约 5 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+ "hexcellular.page.properties.2": "创建的$(thing)质性$()$(o)只$()可由随之创造的质性 iota 及其副本引用。为保险起见,创建后应当立刻存下一份副本;一旦丢失就无法交互了。$(br2)虽然制造此类 iota 的消耗很大,但制造后即会与该$(thing)质性$()建立简单易达的链接,此后无需过多消耗就能读写。",
"hexcasting.action.hexcellular:observe_property": "观测之纯化",
- "hexcellular.page.observe_property.summary": "观测质性 iota 当前的值。无需消耗媒质。",
+ "hexcellular.page.observe_property.summary": "观测质性 iota 当前的值。",
"hexcasting.action.hexcellular:set_property": "薛定谔之策略",
- "hexcellular.page.set_property.summary": "设置质性 iota 的值。消耗大约 1/10 个紫水晶粉。此后所有对其的观测都会返回新设置的值。"
+ "hexcellular.page.set_property.summary": "设置质性 iota 的值。消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcellular.page.properties.3": "有些时候,送出质性 iota 时需保证其他人不会覆写其内容。只读副本即可达成这一目的。这些副本仍可由$(l:properties#hexcellular:observe_property)$(action)观测之纯化$()读取,且也会指向对应的$(thing)质性$(),但$(l:properties#hexcellular:set_property)$(action)薛定谔之策略$()无法向其写入。$(br2)为方便区分,只读质性 iota 会显示为青色。",
+ "hexcasting.action.hexcellular:readonly_property": "薛定谔之纯化",
+ "hexcellular.page.readonly_property.summary": "以给定质性 iota 为基础制造一个只读的质性 iota。"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 0e5cb80aa357..25e37d45605b 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -1,5 +1,5 @@
{
- "advancements.hexical.arch_lamp.title": "Daemon",
+ "advancements.hexical.arch_lamp.title": "Guardian Genie",
"advancements.hexical.arch_lamp.description": "Acquire an archgenie lamp.",
"advancements.hexical.reload_lamp.title": "Phenomenal Cosmic Powers!",
"advancements.hexical.reload_lamp.description": "Reload the lamp.",
@@ -15,8 +15,6 @@
"advancements.hexical.conjure_hexxy.description": "Give Hexxy a physical form in your world.",
"advancements.hexical.hallucinate.title": "Only In My Head",
"advancements.hexical.hallucinate.description": "Play a sound only you can hear!",
- "advancements.hexical.media_slurp.title": "Tripping",
- "advancements.hexical.media_slurp.description": "\"You sense that something is off.\"",
"block.hexical.hex_candle_cake": "Hex Candle Cake",
"block.hexical.casting_carpet": "Casting Carpet",
@@ -114,6 +112,7 @@
"hexcasting.mishap.bad_item.casting_device": "a device capable of casting Hexes",
"hexcasting.mishap.bad_item.firework_star": "a firework star",
"hexcasting.mishap.bad_item.grimoire": "a grimoire",
+ "hexcasting.mishap.bad_item.nonfull_grimoire": "a grimoire with less than 512 bindings",
"hexcasting.mishap.bad_item.has_brain": "a villager capable of thought",
"hexcasting.mishap.bad_item.autographed": "an autographed item",
"hexcasting.mishap.bad_item.hand_lamp": "a Hand Genie Lamp",
@@ -188,8 +187,8 @@
"hexical.page.gauntlet_staff.1": "$(o)Even the wand itself seems impractical to me. If you need something to grasp and shape the aura, it should be something appropriate. Something like a glove.$()$(br2)- Strange notes I have recovered from an odd book. Clearly this \"aura\" they speak of is _media.",
"hexical.page.grimoire.title": "Grimoires",
- "hexical.page.grimoire.0": "By encrusting an $(item)Enchanted Book$() with $(l:items/amethyst)$(item)Charged Amethyst$() and $(l:items/edified)$(item)Edified Wood$()$(), it traps _media within the pages like an echo chamber. I can then introduce pattern-to-pattern-list bindings for the $(item)Grimoire$() to keep bouncing endlessly inside.",
- "hexical.page.grimoire.1": "When I then cast the $(l:patterns/patterns_as_iotas)pattern$() associated with a pattern list with my $(l:items/staff)$(item)Staff$() and the $(item)Grimoire$() in my inventory, the pattern $(o)expands$() with a faint sound of a _Hex being cast. I create shortcuts for tedious tasks with this, like the raycast mantra or large patterns. The $(item)Grimoire$() can even hijack Nature's patterns, to overwrite or add extra functionality.$(br2)$(o)If there's a book that you want to read, but it hasn't been written yet, then you must write it.$()",
+ "hexical.page.grimoire.0": "By encrusting an $(item)Enchanted Book$() with $(l:items/amethyst)$(item)Charged Amethyst$() and $(l:items/edified)$(item)Edified Wood$()$(), it traps _media within the pages like an echo chamber. I can then introduce up to 512 pattern-to-pattern-list bindings for the $(item)Grimoire$() to keep bouncing endlessly inside.",
+ "hexical.page.grimoire.1": "When I then cast a $(l:patterns/patterns_as_iotas)pattern$() associated with a list using my $(l:items/staff)$(item)Staff$() with the $(item)Grimoire$() in my inventory, Nature acts as though I had drawn the full list, allowing me to create shortcuts for tedious tasks like the raycast mantra or large patterns. In addition to adding new $(l:patterns/patterns_as_iotas)patterns$(), the $(item)Grimoire$() can even overwrite Nature's $(l:patterns/patterns_as_iotas)patterns$().$(br2)$(o)If there's a book that you want to read, but it hasn't been written yet, then you must write it.$()",
"hexcasting.action.hexical:write_grimoire": "Write Grimoire",
"hexical.page.write_grimoire.summary": "Associates a pattern to a list of patterns in the $(item)Grimoire$() in my offhand.",
"hexcasting.action.hexical:erase_grimoire": "Erase Grimoire",
@@ -221,9 +220,9 @@
"hexical.page.hex_candle.1": "$(o)The doctor found himself in an immense cave lined with countless quivering candles, each representing the duration of a life.$()",
"hexical.page.media_jar.title": "Media Jar",
- "hexical.page.media_jar.0": "I can melt down all my $(l:items/amethyst)$(item)Amethyst$() in this little jar! Unfortunately, the glass is too thick for me to draw _media through it, although I have read tales that ancient _Hexcasters were able to solve this issue and were able to bottle up liquid _media in some kind of flask to use in their _Hexes. However, this $(item)Media Jar$() also has some fascinating properties for recycling media.",
+ "hexical.page.media_jar.0": "I can melt down all my $(l:items/amethyst)$(item)Amethyst$() in this little jar! Unfortunately, the glass is too thick for me to draw _media through it, although I have read tales that ancient _Hexcasters were able to solve this issue and were able to bottle up liquid _media in some kind of flask to use in their _Hexes. However, this $(item)Media Jar$() also has some fascinating properties for recycling _media.",
"hexical.page.media_jar.description": "$(o)There, sure enough, she saw the faint translucent outline of something aboout the size of a hen's egg. There was just a touch of color in it, a pale sea-green, soft and shimmering and very beautiful.",
- "hexical.page.media_jar.1": "I can dunk items into the liquid in order to imbue the item with pure _media. The _media seeps into the item and $(o)alters$() it in a variety of surprising and unpredictable ways.$(br2)I can only imagine what would happen if I were to ingest such a concentrated form of media.",
+ "hexical.page.media_jar.1": "I can dunk items into the liquid in order to imbue the item with pure _media. The _media seeps into the item and $(o)alters$() it in a variety of surprising and unpredictable ways.",
"hexical.recipe.alchemists_take_this.header": "Make Gold",
"hexical.recipe.alchemists_take_this.text": "Transforms copper ingots to gold.",
"hexical.recipe.thoughtknot.header": "Weave Thought-Knot",
@@ -280,7 +279,7 @@
"hexical.page.lamp_finale.arch": "When an $(item)Archgenie Lamp$() is turned off, it casts an additional time. I can use $(l:lamp/hand_lamps#hexical:lamp_finale)$(action)Finale Reflection$() to recognize whether a cast is that last burst of energy.",
"hexical.page.hand_lamps.title": "Hand Lamps",
- "hexical.page.hand_lamps.0": "So this is the subject of a thousand years of rumor! To think a mere wandering trader could be in possession of such a strong artifact. The $(item)Hand Lamp$() emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow media structure$() of a $(l:items/focus)$(item)Focus$() that enables it to store iota. I can also sense a presence inside the $(item)Lamp$() with similar magical capabilities to my own.",
+ "hexical.page.hand_lamps.0": "So this is the subject of a thousand years of rumor! To think a mere wandering trader could be in possession of such a strong artifact. The $(item)Hand Lamp$() emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow _media structure$() of a $(l:items/focus)$(item)Focus$() that enables it to store iota. I can also sense a presence inside the $(item)Lamp$() with similar magical capabilities to my own.",
"hexical.page.hand_lamps.1": "The signs are unmistakable; within the $(item)Lamp$() is a $(o)living, sentient$() mind, kept alive and trapped via magic not yet known to me. The $(item)Lamp$()'s design is simply ingenious, if its use weren't so horrible. When I hold down the trigger, my patterns are revealed to the \"genie\" as I will be calling it, and it, out of desperation and boredom, casts.",
"hexcasting.action.hexical:wish": "Wish",
"hexical.page.wish.summary": "Wish the genie to cast a _Hex for me. Because I am $(o)teaching$() a mind rather than $(o)etching$() a $(l:items/hexcasting)$(item)casting device$(), I can freely reteach the genie a new _Hex any time without losing _media.",
@@ -447,8 +446,8 @@
"hexcasting.action.hexical:rotate_block": "Rotate Block",
"hexical.page.rotate_block.summary": "Rotates a block to face a certain vector direction. Requires a rotatable block. Costs about an eighth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexcasting.action.hexical:rotate_entity": "Rotate Entity",
- "hexical.page.rotate_entity.summary": "Rotates an entity by a given change in pitch and yaw, expressed in units of full circles.",
- "hexical.page.rotate_entity.description": "Nature seems to be against entity rotation. Rather than a straightforward vector, Nature demands measurements in fractions of full circles by which to turn horizontally and vertically.$(br2)The cost is strange and multilayered too. Free if cast on myself, about half of an $(l:items/amethyst)$(item)Amethyst Dust$() for other entities, and the natural aura of _media surrounding a player elevates the cost to about a whole $(l:items/amethyst)$(item)Charged Amethyst$().",
+ "hexical.page.rotate_entity.summary": "Rotates an entity by a given change in pitch and yaw, expressed in radians.",
+ "hexical.page.rotate_entity.description": "Nature seems to be against entity rotation. Rather than a straightforward vector, Nature demands measurements in radians by which to turn horizontally and vertically.$(br2)The cost is strange and multilayered too. Free if cast on myself, about half of an $(l:items/amethyst)$(item)Amethyst Dust$() for other entities, and the natural aura of _media surrounding a player elevates the cost to about a whole $(l:items/amethyst)$(item)Charged Amethyst$().",
"hexical.page.autographs.title": "Autographs",
"hexical.page.autographs.0": "Using precise manipulation of _media, I can magically $(o)etch$() my signature onto any item! It must be done with my $(l:items/staff)$(item)Staff$() as proof of intentionality.$(br2)An autographed item proudly displays every autographer's name in shimmering $(l:items/pigments)$(item)Pigment$().$(br2)$(o)I disagree strongly with whatever work this quote is attached to.$()",
@@ -497,15 +496,16 @@
"hexical.page.wristpocket.summary": "This spell vanishes the stack of items in my other hand, or conjures it back, swapping if my other hand is holding something. Costs about a eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexcasting.action.hexical:wristpocket_item": "Wristpocket Reflection",
"hexical.page.wristpocket_item.summary": "Returns the item in my wristpocket, or $(l:casting/influences)$(thing)Null$() if it is empty.",
+ "hexical.page.wristpocket.1": "While the items disappear from reality in almost all measurable aspects, certain items' effects can still function even when hidden in the wristpocket.$(br2)I hear of certain $(item)Totems$() that still function within the wristpocket. $(l:items/phials)$(item)Phials$() also can still provide for my _Hexes within the wristpocket.",
"hexcasting.action.hexical:sleight": "Sleight",
"hexical.page.sleight.summary": "Performs an act of magical sleight of hand to steal items into my wristpocket or expel my wristpocket back into the world. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.sleight.0": "If given a vector, it conjures my wristpocketed item at that vector. If given an item entity, my wristpocket either pulls in or swaps with the item, depending on whether it is empty.$(br2)$(o)If your sleight of hand causes you to break eye contact with your audience, it is too advanced for your skill level.$()",
+ "hexical.page.sleight.description": "If given a vector, it conjures my wristpocketed item at that vector. If given an item entity, my wristpocket either pulls in or swaps with the item, depending on whether it is empty.$(br2)$(o)If your sleight of hand causes you to break eye contact with your audience, it is too advanced for your skill level.$()",
"hexcasting.action.hexical:mage_hand": "Mage Hand",
"hexical.page.mage_hand.summary": "Projects my mind's hand forward to use my wristpocketed item and interact with the world. If my wristpocket is empty, acts as though a plain hand had reached out. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.mage_hand.0": "If given an entity, it interacts with the entity using the wristpocketed item. If given a vector, it interacts with the block or $(o)space$() with the item. Because it's my mind's hand, it will not work for casting methods not attached to a player.$(br2)$(o)A spectral, floating hand appears at a point you choose within range.$()",
+ "hexical.page.mage_hand.description": "If given an entity, it interacts with the entity using the wristpocketed item. If given a vector, it interacts with the block or $(o)space$() with the item.$(br2)Because it only brings forth a mind's hand, it is still tied to me and will not work for casting methods not attached to a player. I can however use it to open $(item)Chests$().$(br2)$(o)A spectral, floating hand appears at a point you choose within range.$()",
"hexcasting.action.hexical:mage_mouth": "Mage Mouth",
"hexical.page.mage_mouth.summary": "Makes me eat my wristpocketed item, nourishing me or applying potions to me. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() and mishaps if the item is not edible.",
- "hexical.page.mage_mouth.0": "Regardless of the time required to usually eat the item, its special effects, my own dietary restrictions, cooldowns on eating the item, or if I'm full, this spell makes me consume it instantly.$(br2)$(o)Let food be thy medicine and medicine be thy food.$()",
+ "hexical.page.mage_mouth.description": "Regardless of the time required to usually eat the item, its special effects, my own dietary restrictions, cooldowns on eating the item, or if I'm full, this spell makes me consume it instantly.$(br2)$(o)Let food be thy medicine and medicine be thy food.$()",
"hexical.page.specks.title": "Specks",
"hexical.page.specks.0": "I can conjure an image of an iota into the world, called a $(thing)speck$(). Nature allows me to customize them quite extensively, altering their size, thickness of stroke, and more. They also take on my pigment color. Once they are in the world, I can move, rotate, and otherwise alter them for free, regardless of range.",
@@ -596,7 +596,7 @@
"hexical.page.spike.title": "Conjure Spike",
"hexical.page.spike.0": "I hear rumors of a sorcerer illager that can summon fangs from the ground. While I find it hard to believe that villagers can shift _media, I have taken inspiration from those myths and created this spell that brings forth spikes from the ground to skewer targets.",
"hexcasting.action.hexical:spike": "Conjure Spike",
- "hexical.page.spike.summary": "Takes a non-air position, an axis vector, and a delay in seconds up to ten seconds long and conjures a spike at that location. Costs about one $(l:items/amethyst)$(item)Amethyst Shard$().",
+ "hexical.page.spike.summary": "Takes a non-air position, an axis vector, and a delay in seconds up to ten seconds long and conjures a spike at that location. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.spike.1": "Each spike takes about a half second to strike and deal a hefty three full hearts of damage before slowly sinking back into the ground. If I cast this spell where a spike has not yet disappeared, it will do nothing. Spikes will also throw back targets in the direction they were conjured.",
"hexical.page.tchotchke.title": "Tchotchkes",
@@ -604,7 +604,7 @@
"hexical.page.conjure_tchotchke.summary": "Conjures a $(item)Tchotchke$() at the location with the amount of _media. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$() and the _media used for the battery.",
"hexical.page.circle_spells.title": "Circle Spells",
- "hexical.page.circle_spells.0": "When the _media courses through the boundaries of a $(l:greatwork/spellcircles)circle$(), it saturates the domain inside with _media, allowing far greater magical effects and flexibility of _media manipulation than I am used to. The following are some spells which rely on that increased density of media and are to only be cast by an $(l:greatwork/impetus)impetus$().",
+ "hexical.page.circle_spells.0": "When the _media courses through the boundaries of a $(l:greatwork/spellcircles)circle$(), it saturates the domain inside with _media, allowing far greater magical effects and flexibility of _media manipulation than I am used to. The following are some spells which rely on that increased density of _media and are to only be cast by an $(l:greatwork/impetus)impetus$().",
"hexcasting.action.hexical:displace": "Displace",
"hexical.page.displace.summary": "Teleports an entity within the $(l:greatwork/spellcircles)circle$() to any other point inside within the same $(l:greatwork/spellcircles)circle$(). Unlike $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), this spell takes in world coordinates rather than an offset. Free.",
@@ -618,6 +618,12 @@
"hexical.page.is_evoking.summary": "Pushes how long since a player has been evoking. Is -1 if they are not currently evoking.",
"hexical.page.evocation.1": "The ancient texts I have learned this technique from reveals many other interesting trifles: _Hexcasters used to perform evocation without any a _Hex, as a greeting or group ritual by waving their arms and chanting in unison. Experiments have also been done to see if a villager could be granted the ability to shift _media but the results of those experiments were either never documented or have been lost to time.",
+ "hexical.page.hotbar.title": "Hotbar",
+ "hexcasting.action.hexical:get_hotbar": "Handy Reflection",
+ "hexical.page.get_hotbar.summary": "Pushes a number relating to which of my current items I am currently holding.",
+ "hexcasting.action.hexical:set_hotbar": "Switch",
+ "hexical.page.set_hotbar.summary": "Takes a number 0 to 8 and switches my current item to it.$(br2)$(o)Remember, switching to your pistol is always faster than reloading.$()",
+
"hexical.page.pyrotechnics.title": "Pyrotechnics",
"hexical.page.pyrotechnics.0": "I have stumbled across some spells related to pyrotechnics. The _media hums quite festively around the patterns, as if they were once used for grand celebrations, although I shudder to imagine how effective they'd be as a weaponized projectile.$(br2)$(o)You don’t need to say anything. Just watch the fireworks.$()",
"hexcasting.action.hexical:simulate_firework": "Simulate Firework",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index d1f5a78be245..b375fef4c3a9 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -1,5 +1,5 @@
{
- "advancements.hexical.arch_lamp.title": "守护进程",
+ "advancements.hexical.arch_lamp.title": "守护精灵",
"advancements.hexical.arch_lamp.description": "获得大精灵神灯。",
"advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
"advancements.hexical.reload_lamp.description": "为神灯重新充能。",
@@ -15,8 +15,6 @@
"advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态。",
"advancements.hexical.hallucinate.title": "只在我的脑海里",
"advancements.hexical.hallucinate.description": "播放一段只有你能听见的声音!",
- "advancements.hexical.media_slurp.title": "迷幻",
- "advancements.hexical.media_slurp.description": "“你觉得有些东西不太对劲。”",
"block.hexical.hex_candle_cake": "插有咒术蜡烛的蛋糕",
"block.hexical.casting_carpet": "施法地毯",
@@ -114,6 +112,7 @@
"hexcasting.mishap.bad_item.casting_device": "一个可施放咒术的设备",
"hexcasting.mishap.bad_item.firework_star": "一个烟火之星",
"hexcasting.mishap.bad_item.grimoire": "一个咒典",
+ "hexcasting.mishap.bad_item.nonfull_grimoire": "一个拥有少于512条绑定的咒典",
"hexcasting.mishap.bad_item.has_brain": "一个能够思考的村民",
"hexcasting.mishap.bad_item.autographed": "一个经过签名的物品",
"hexcasting.mishap.bad_item.hand_lamp": "一个手持式精灵神灯",
@@ -188,8 +187,8 @@
"hexical.page.gauntlet_staff.1": "$(o)况且一根法杖对我而言似乎也是天方夜谭。如果你需要一个合适的工具来控制并操纵灵气,我想手套就是个不错的选择。$()$(br2)- 我从一本古怪的书里复原出的笔记。很明显书中所谓“灵气”就是指$(media)媒质$()。",
"hexical.page.grimoire.title": "咒典",
- "hexical.page.grimoire.0": "以$(l:items/amethyst)$(item)充能紫水晶$()和$(l:items/edified)$(item)启迪木$()$()给$(item)附魔书$()装面,$(item)附魔书$()便能将$(media)媒质$()困在书页内部,就像一间回音室。之后可向其中引入图案至图案列表的绑定关系,以让$(item)咒典$()内部的$(media)媒质$()无限反弹。",
- "hexical.page.grimoire.1": "在物品栏中放有$(item)咒典$(),再通过$(l:items/staff)$(item)法杖$()绘制其中与图案列表关联的$(l:patterns/patterns_as_iotas)图案$(),该图案会$(o)扩展$()成对应列表,同时发出一阵微弱的$(hex)咒术$()施放声。如此就为繁重的$(hex)咒术$()(比如射线追踪曼怛罗和大型图案)创建了捷径。$(item)咒典$()甚至能截获自然提供的图案,可以完全覆写,也可加入额外功能。$(br2)$(o)要是想读一本还没写出来的书,那就亲自去写。$()",
+ "hexical.page.grimoire.0": "以$(l:items/amethyst)$(item)充能紫水晶$()和$(l:items/edified)$(item)启迪木$()$()给$(item)附魔书$()装面,$(item)附魔书$()便能将$(media)媒质$()困在书页内部,就像一间回音室。之后可向其中引入最多 512 条图案至图案列表的绑定关系,以让$(item)咒典$()内部的$(media)媒质$()无限反弹。",
+ "hexical.page.grimoire.1": "在物品栏中放有$(item)咒典$(),再通过$(l:items/staff)$(item)法杖$()绘制其中与列表关联的$(l:patterns/patterns_as_iotas)图案$(),自然即会如同我绘制了整个列表一般进行回应;这能简化射线追踪曼怛罗和大型图案等繁重的$(hex)咒术$()。除去创造新$(l:patterns/patterns_as_iotas)图案$()外,$(item)咒典$()甚至还能覆盖自然提供的$(l:patterns/patterns_as_iotas)patterns$()。$(br2)$(o)要是想读一本还没写出来的书,那就亲自去写。$()",
"hexcasting.action.hexical:write_grimoire": "写入咒典",
"hexical.page.write_grimoire.summary": "向副手$(item)咒典$()写入一个图案至图案列表的绑定关系。",
"hexcasting.action.hexical:erase_grimoire": "擦除咒典",
@@ -223,7 +222,7 @@
"hexical.page.media_jar.title": "媒质罐",
"hexical.page.media_jar.0": "我成功把我手头的$(l:items/amethyst)$(item)紫水晶$()全部融化到这个小罐里了!但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,成功把液态$(media)媒质$()装到了某种瓶子里去供$(hex)咒术$()使用。不过,这个$(item)媒质罐$()也有回收媒质的神奇功能。",
"hexical.page.media_jar.description": "$(o)就在那儿,她看见了一团浅浅的雾:那东西只有鸡蛋大小。它在柔和的淡海绿色之外几乎不带什么颜色,闪闪发光,非常漂亮。",
- "hexical.page.media_jar.1": "我可以把物品浸到这种液体里,以向其中注入纯净的$(media)媒质$()。渗入物品的$(media)媒质$()会$(o)改变$()物品,产物新奇而难以预测。$(br2)很难想象摄入这种浓缩$(media)媒质$()后会发生什么。",
+ "hexical.page.media_jar.1": "我可以把物品浸到这种液体里,以向其中注入纯净的$(media)媒质$()。渗入物品的$(media)媒质$()会$(o)改变$()物品,产物新奇而难以预测。",
"hexical.recipe.alchemists_take_this.header": "制金",
"hexical.recipe.alchemists_take_this.text": "将铜变形成金。",
"hexical.recipe.thoughtknot.header": "编织结念绳",
@@ -447,8 +446,8 @@
"hexcasting.action.hexical:rotate_block": "旋转方块",
"hexical.page.rotate_block.summary": "将方块旋转为朝向给定向量。需方块可旋转。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexcasting.action.hexical:rotate_entity": "旋转实体",
- "hexical.page.rotate_entity.summary": "根据所给俯仰角和偏航角旋转实体,需以整圆为量度。",
- "hexical.page.rotate_entity.description": "自然似乎不待见实体旋转。因此,相较于简单易懂的向量,自然要求你提供以整圆为量度的角度,再据此进行水平向和垂直向旋转。$(br2)此法术的消耗分了很多类别,而且也很奇怪。对自身施放时不消耗媒质,对其他实体则消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$(),而玩家周围的$(media)媒质$()气场则会把消耗抬到大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+ "hexical.page.rotate_entity.summary": "根据所给俯仰角和偏航角旋转实体,需以弧度为量度。",
+ "hexical.page.rotate_entity.description": "自然似乎不待见实体旋转。因此,相较于简单易懂的向量,自然要求你提供旋转弧度,再据此进行水平向和垂直向旋转。$(br2)此法术的消耗分了很多类别,而且也很奇怪。对自身施放时不消耗媒质,对其他实体则消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$(),而玩家周围的$(media)媒质$()气场则会把消耗抬到大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
"hexical.page.autographs.title": "亲笔签名",
"hexical.page.autographs.0": "只要精细操纵$(media)媒质$(),就可将我的签名以魔法方式$(o)蚀刻$()到物品上去!此类法术必须通过$(l:items/staff)$(item)法杖$()施法,以作强烈意图之证明。$(br2)被签名的物品会用流光溢彩的$(l:items/pigments)$(item)染色剂$()显示各位署名人的名字。$(br2)$(o)“我没说过这句话。”——鲁迅$()",
@@ -497,15 +496,16 @@
"hexical.page.wristpocket.summary": "此法术会令另一只手中的物品组消失;也可重新让其出现,如果手中已经持有物品则会交换。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexcasting.action.hexical:wristpocket_item": "魔袋之精思",
"hexical.page.wristpocket_item.summary": "返回魔袋中的物品,如果魔袋为空则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexical.page.wristpocket.1": "虽然物品已经消失,而且是消失到几乎无法被探测,魔袋中物品的某些功能依然能够运作。$(br2)我听说某些$(item)图腾$()可在魔袋内运作。魔袋中的$(l:items/phials)$(item)媒质之瓶$()也仍能为$(hex)咒术$()提供媒质。",
"hexcasting.action.hexical:sleight": "花招",
"hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.sleight.0": "传入向量时:将魔袋中的物品投放到对应位置。传入物品实体时:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
+ "hexical.page.sleight.description": "传入向量时:将魔袋中的物品投放到对应位置。传入物品实体时:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
"hexcasting.action.hexical:mage_hand": "法师之手",
"hexical.page.mage_hand.summary": "将我意识中的魔法手投射出来,以在世界中使用魔袋中的物品交互。如果魔袋为空,则表现为空手交互。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.mage_hand.0": "传入实体时:使用魔袋中物品与该实体交互。传入向量时:使用物品与该处方块或$(o)空间$()交互。而因为这只手仅是意识的投射,它无法使用仅限玩家的施法方式。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
+ "hexical.page.mage_hand.description": "传入实体时:使用魔袋中物品与该实体交互。传入向量时:使用物品与该处方块或$(o)空间$()交互。$(br2)而因为这只手仅是意识的投射,它仍与我相连,且无法使用仅限玩家的施法方式。我倒是还可以拿来打开$(item)箱子$()。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
"hexcasting.action.hexical:mage_mouth": "法师之口",
"hexical.page.mage_mouth.summary": "此法术能让我吃下魔袋中的物品,填饱我的肚子,或是给予我药水效果。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$(),若物品无法食用则招致事故。",
- "hexical.page.mage_mouth.0": "无论食用通常需要多少时间、食物有何种特殊效果、我在饮食中有无限制、食用行为有无冷却、还是我是否吃饱,此法术都会瞬间完成食用。$(br2)$(o)食即药,药即食。$()",
+ "hexical.page.mage_mouth.description": "无论食用通常需要多少时间、食物有何种特殊效果、我在饮食中有无限制、食用行为有无冷却、还是我是否吃饱,此法术都会瞬间完成食用。$(br2)$(o)食即药,药即食。$()",
"hexical.page.specks.title": "视斑",
"hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受影响范围限制。",
@@ -596,7 +596,7 @@
"hexical.page.spike.title": "构筑尖刺",
"hexical.page.spike.0": "我曾听过有一位灾厄村民术士能在地上构筑尖牙。要相信“村民能操控$(media)媒质$()”这种说法很难,但从其中获取灵感还是可行的。我依此制造出了这条法术,能够从地下升起尖刺刺穿目标。",
"hexcasting.action.hexical:spike": "构筑尖刺",
- "hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。",
+ "hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会在缓慢缩回前造成高达三颗心的伤害。若在已经触发尖刺的位置重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
"hexical.page.tchotchke.title": "杂饰",
@@ -618,6 +618,12 @@
"hexical.page.is_evoking.summary": "压入玩家唤咒的时间,未在唤咒则为 -1。",
"hexical.page.evocation.1": "记载有这项技术的古代文本还写有其他琐事。曾经的$(hex)咒术师们$()唤咒时无需施放$(hex)咒术$(),而是会在某种集会或集体仪式中挥动手臂合唱。也有人曾试验过,是否有法术能将$(hex)咒术$()蚀刻入$(o)村民$(),以给予他们操控$(media)媒质$()的手段。但这些试验的结果从未见诸文献,抑或是已经散佚殆尽。",
+ "hexical.page.hotbar.title": "快捷栏",
+ "hexcasting.action.hexical:get_hotbar": "趁手之精思",
+ "hexical.page.get_hotbar.summary": "将我当前持有物品的组别返回为数。",
+ "hexcasting.action.hexical:set_hotbar": "换手",
+ "hexical.page.set_hotbar.summary": "接受一个 0 到 8 的数,并将我当前持有的物品放至该栏位。$(br2)$(o)记住,换把枪比换弹夹快。$()",
+
"hexical.page.pyrotechnics.title": "烟花工艺",
"hexical.page.pyrotechnics.0": "我发现了一些构筑烟花的法术。$(media)媒质$()在这些图案周围欢欣地嗡鸣着,就好像它们曾用于庆典一样;它们用作武器的威力也可谓令人震悚。$(br2)$(o)什么都别说了。先欣赏烟花吧。$()",
"hexcasting.action.hexical:simulate_firework": "模拟烟花",
diff --git a/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
index ed2bcbbacbb9..dab0150e6349 100644
--- a/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
+++ b/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
@@ -60,6 +60,8 @@
"item.oneironaut.wisp_capture_device": "Wisp Wrangler",
"item.oneironaut.mind_scalpel": "Synaptic Scalpel",
"item.oneironaut.monkfruit": "Monkfruit",
+ "item.oneironaut.monkfruit_cooked": "Cooked Monkfruit",
+ "item.oneironaut.hexjam": "Hex Jam",
"item.oneironaut.rending_thorns": "Rending Thorns",
"item.oneironaut.library_card": "Akashic Library Card",
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
index ed2bcbbacbb9..dab0150e6349 100644
--- a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
+++ b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
@@ -60,6 +60,8 @@
"item.oneironaut.wisp_capture_device": "Wisp Wrangler",
"item.oneironaut.mind_scalpel": "Synaptic Scalpel",
"item.oneironaut.monkfruit": "Monkfruit",
+ "item.oneironaut.monkfruit_cooked": "Cooked Monkfruit",
+ "item.oneironaut.hexjam": "Hex Jam",
"item.oneironaut.rending_thorns": "Rending Thorns",
"item.oneironaut.library_card": "Akashic Library Card",
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
index 1a9dafc3c40d..08236f940e6e 100644
--- a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
+++ b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
@@ -60,6 +60,8 @@
"item.oneironaut.wisp_capture_device": "咒灵牧织器",
"item.oneironaut.mind_scalpel": "突触手术刀",
"item.oneironaut.monkfruit": "修道果",
+ "item.oneironaut.monkfruit_cooked": "熟修道果",
+ "item.oneironaut.hexjam": "咒术果酱",
"item.oneironaut.rending_thorns": "裂识荆棘",
"item.oneironaut.library_card": "阿卡夏借书证",
From b328a5bfb797da27f8f39b022ea0f135a2fdd3d6 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 25 Jun 2025 10:04:51 +0800
Subject: [PATCH 41/78] Appendhextome HexMu HexDeco EnlightenedPsionics
HexMovesTheMind create
---
.../assets/1UNKNOWN/appendhextome/README.md | 1 +
.../1UNKNOWN/appendhextome/lang/en_us.json | 11 +++++
.../1UNKNOWN/appendhextome/packer-policy.json | 6 +++
.../movesthemind/lang/en_us.json | 39 +++++++++++++++
.../movesthemind/lang/zh_cn.json | 39 +++++++++++++++
.../assets/1UNKNOWN/appendhextome/README.md | 16 +++++++
.../1UNKNOWN/appendhextome/lang/en_us.json | 11 +++++
.../1UNKNOWN/appendhextome/lang/zh_cn.json | 11 +++++
.../entries/addon/hexmu/inscription.json | 29 ++++++++++++
.../entries/addon/hexmu/inscription.json | 29 ++++++++++++
.../assets/1UNKNOWN/hexdeco/lang/en_us.json | 35 ++++++++++++++
.../assets/1UNKNOWN/hexdeco/lang/zh_cn.json | 35 ++++++++++++++
.../assets/1UNKNOWN/hexmu/lang/en_us.json | 6 +++
.../assets/1UNKNOWN/hexmu/lang/zh_cn.json | 6 +++
.../assets/1UNKNOWN/hexpsi/lang/en_us.json | 47 +++++++++++++++++++
.../assets/1UNKNOWN/hexpsi/lang/zh_cn.json | 47 +++++++++++++++++++
16 files changed, 368 insertions(+)
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/appendhextome/README.md
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/appendhextome/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/appendhextome/packer-policy.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/1UNKNOWN/appendhextome/README.md
create mode 100644 projects/1.20/assets/1UNKNOWN/appendhextome/lang/en_us.json
create mode 100644 projects/1.20/assets/1UNKNOWN/appendhextome/lang/zh_cn.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexdeco/lang/en_us.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexdeco/lang/zh_cn.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/README.md b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/README.md
new file mode 100644
index 000000000000..8d8b9e3e8efb
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/1UNKNOWN/appendhextome)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/lang/en_us.json
new file mode 100644
index 000000000000..852c1ea902f6
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/lang/en_us.json
@@ -0,0 +1,11 @@
+{
+ "death.attack.appendicitis": "%s's appendix burst.",
+ "death.attack.appendicitisInstant": "%s's appendix was not big enough to contain %s's soul.",
+ "appendhextome.entry.appendix": "Appendix",
+ "appendhextome.page.readwrite.1": "I have found a strange organ in my body which, Given its location, Might possibly have something to do with digestion. I shall call it the appendix, For it is simply added on to the end of my large intestine... With these patterns, I appear to be able to read and write any arbitrary iota to it, Though I should be careful. If my biological iota storage becomes too dense, I fear it might cause severe inflammation of the appendix. Potentially even killing me.",
+ "appendhextome.page.readwrite.2": "From what I can tell, Inflammaton of the appendix should start whenever the size of the iota stored within multiplied by the depth of the iota is greater than 20, With the severity of inflammation increasing each time that threshold is crossed again. Because the iota storage is physically attached to my body, I am positive that if this body should ever be in some way destroyed beyond repair, The iota stored within would be destroyed as well.",
+ "hexcasting.action.appendhextome:read": "Godrick's Reflection",
+ "hexcasting.action.appendhextome:write": "Godrick's Gambit",
+ "appendhextome.page.readwrite.read": "Copy the iota stored in my appendix and add it to the stack.",
+ "appendhextome.page.readwrite.write": "Remove the iota from the top of the stack, And save it into my appendix. Costs about one tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$ times the size of the iota times the depth of the iota."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/packer-policy.json b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/packer-policy.json
new file mode 100644
index 000000000000..b276241c4ef3
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/packer-policy.json
@@ -0,0 +1,6 @@
+[
+ {
+ "type": "indirect",
+ "source": "projects/1.20/assets/1UNKNOWN/appendhextome"
+ }
+]
\ 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..3d293aeba3d4
--- /dev/null
+++ b/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/en_us.json
@@ -0,0 +1,39 @@
+{
+ "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.",
+ "movesthemind.page.spells.move/stopall" : "An important signal, I'd argue even more so than the process of bringing about the creature. Costs a single amethyst dust.",
+ "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 amethyst dust.",
+
+ "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. Note the one amethyst dust cost.",
+ "movesthemind.page.spells.move/look" : "Instructs the creature to look in a direction. The vector can be of any length.",
+ "movesthemind.page.spells.move/jump" : "Simply instructs the creature to hop. As is trending, the cost is one amethyst dust.",
+ "movesthemind.page.spells.move/sneak" : "Takes a boolean and tells the creature to start or stop sneaking. One amethyst dust.",
+ "movesthemind.page.spells.move/sprint" : "As previous, but with sprinting. When stationary, produces sprinting particles. One amethyst dust.",
+
+ "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.",
+ "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.",
+ "movesthemind.page.spells.move/swap_hands" : "Instructs the creature to hand its mainhand item into its offhand, and vice versa.",
+ "movesthemind.page.spells.move/drop" : "Instructs the creature to drop the item or stack of items it holds in its main hand."
+}
\ 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..9e7836a6d2a5
--- /dev/null
+++ b/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/zh_cn.json
@@ -0,0 +1,39 @@
+{
+ "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)所以,我只会给它们启动信号。后页会将这些信号称作“指示”。",
+ "movesthemind.page.spells.move/stopall": "一个重要的信号,我认为甚至比召唤它们的过程还重要。消耗 1 个紫水晶粉。",
+ "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 为向右。消耗 1 个紫水晶粉。",
+ "movesthemind.page.spells.move/look": "指示假人看向某个方向。向量长度随意。",
+ "movesthemind.page.spells.move/jump": "指示假人跳跃。和往常一样,消耗 1 个紫水晶粉。",
+ "movesthemind.page.spells.move/sneak": "接受一个布尔值,指示假人开始或结束潜行。消耗 1 个紫水晶粉。",
+ "movesthemind.page.spells.move/sprint": "和前页图案一样,区别在于切换疾跑与否。站立不动时会产生疾跑粒子。消耗 1 个紫水晶粉。",
+
+ "movesthemind.page.spells.move/use": "这对图案有意思。它们可让假人按所给间隔使用手持物品或用它攻击,间隔以 1/20 秒计。",
+ "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": "指示假人丢下其主手持有的物品或物品组。"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/appendhextome/README.md b/projects/1.20/assets/1UNKNOWN/appendhextome/README.md
new file mode 100644
index 000000000000..9bad25925c6c
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/appendhextome/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/1UNKNOWN/appendhextome)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/1UNKNOWN/appendhextome)
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/appendhextome/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/appendhextome/lang/en_us.json
new file mode 100644
index 000000000000..852c1ea902f6
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/appendhextome/lang/en_us.json
@@ -0,0 +1,11 @@
+{
+ "death.attack.appendicitis": "%s's appendix burst.",
+ "death.attack.appendicitisInstant": "%s's appendix was not big enough to contain %s's soul.",
+ "appendhextome.entry.appendix": "Appendix",
+ "appendhextome.page.readwrite.1": "I have found a strange organ in my body which, Given its location, Might possibly have something to do with digestion. I shall call it the appendix, For it is simply added on to the end of my large intestine... With these patterns, I appear to be able to read and write any arbitrary iota to it, Though I should be careful. If my biological iota storage becomes too dense, I fear it might cause severe inflammation of the appendix. Potentially even killing me.",
+ "appendhextome.page.readwrite.2": "From what I can tell, Inflammaton of the appendix should start whenever the size of the iota stored within multiplied by the depth of the iota is greater than 20, With the severity of inflammation increasing each time that threshold is crossed again. Because the iota storage is physically attached to my body, I am positive that if this body should ever be in some way destroyed beyond repair, The iota stored within would be destroyed as well.",
+ "hexcasting.action.appendhextome:read": "Godrick's Reflection",
+ "hexcasting.action.appendhextome:write": "Godrick's Gambit",
+ "appendhextome.page.readwrite.read": "Copy the iota stored in my appendix and add it to the stack.",
+ "appendhextome.page.readwrite.write": "Remove the iota from the top of the stack, And save it into my appendix. Costs about one tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$ times the size of the iota times the depth of the iota."
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/appendhextome/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/appendhextome/lang/zh_cn.json
new file mode 100644
index 000000000000..3547427de03c
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/appendhextome/lang/zh_cn.json
@@ -0,0 +1,11 @@
+{
+ "death.attack.appendicitis": "%s的阑尾涨裂了",
+ "death.attack.appendicitisInstant": "%s的阑尾不足以容纳%s的灵魂",
+ "appendhextome.entry.appendix": "阑尾附录",
+ "appendhextome.page.readwrite.1": "我在我的身体里发现了一个奇怪的器官;从它的位置看来,它可能会参与到消化过程中。我称其为“阑尾”,因为它只是附在大肠末端的一个小挂件……后页的图案可向其读写任意 iota,但仍要多加小心。要是生物体内存了过多的 iota 信息,阑尾大概会出现严重的炎症。甚至可能致死。",
+ "appendhextome.page.readwrite.2": "从我的考察看来,阑尾中 iota 的大小和深度的乘积大于 20 时会开始出现炎症症状,每次跨越此界限时炎症会加深。由于该 iota 存储位置就在我的体内,我认为只有当这幅躯体被损坏到无法修复的时候,其中的 iota 才会消失。",
+ "hexcasting.action.appendhextome:read": "葛瑞克之精思",
+ "hexcasting.action.appendhextome:write": "葛瑞克之策略",
+ "appendhextome.page.readwrite.read": "复制阑尾中的 iota,并压入栈顶。",
+ "appendhextome.page.readwrite.write": "移除栈顶 iota,并存入我的阑尾。所存 iota 的大小与深度的乘积每有 1 点消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
new file mode 100644
index 000000000000..641b064c293d
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
@@ -0,0 +1,29 @@
+{
+ "name": "Iota Inscription",
+ "category": "hexcasting:patterns",
+ "icon": "ae2:name_press",
+ "pages": [
+ "These patterns seem to manipulate a name directly onto an iota. An iota engraved in this way acts no different in my spells, but they're marked in my $(item)$(l:hexcasting:items/focus)Foci/$ or when I cast $(thing)$(l:hexcasting:patterns/basics#hexcasting:print)Reveal/$.",
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:inscription",
+ "input": "any, string",
+ "output": "any",
+ "text": "Inscribes the passed iota with the given name. I can supply Null to strip the name."
+ },
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:inscribe",
+ "input": "any",
+ "output": "string",
+ "text": "Returns the name inscribed on an iota. I could potentially use this for smuggling Strings through my calculations."
+ },
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:substring",
+ "input": "any, string",
+ "output": "any|null",
+ "text": "Searches through a list of iotas for one with a certain label. This seems useful as a form of mapping. I wonder what would happen if I labeled an iota with something other than a string..."
+ }
+ ]
+}
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
new file mode 100644
index 000000000000..c884500bb972
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
@@ -0,0 +1,29 @@
+{
+ "name": "Iota 赋名",
+ "category": "hexcasting:patterns",
+ "icon": "ae2:name_press",
+ "pages": [
+ "这些图案似乎会直接为 iota 赋予名称。经此操作的 iota 在法术中的表现不会产生变化,但存于$(item)$(l:hexcasting:items/focus)核心/$或施放$(thing)$(l:hexcasting:patterns/basics#hexcasting:print)揭示/$时会显示该名称。",
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:inscription",
+ "input": "any, string",
+ "output": "any",
+ "text": "将所给名字赋予所给 iota。传入 Null 即取消赋名。"
+ },
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:inscribe",
+ "input": "any",
+ "output": "string",
+ "text": "返回 iota 被赋予的名字。也许可以用来在运算中偷藏点字符串。"
+ },
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:substring",
+ "input": "any, string",
+ "output": "any|null",
+ "text": "按照所给标签在多个 iota 中搜索 iota。很适合拿来当映射。不知道给 iota 打标签时不用字符串会怎么样……"
+ }
+ ]
+}
diff --git a/projects/1.20/assets/1UNKNOWN/hexdeco/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexdeco/lang/en_us.json
new file mode 100644
index 000000000000..5e5b6682eda1
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexdeco/lang/en_us.json
@@ -0,0 +1,35 @@
+{
+ "block.hexdeco.amethyst_bricks_mini_slab": "Amethyst small Bricks Slab",
+ "block.hexdeco.amethyst_bricks_slab": "Amethyst Bricks Slab",
+ "block.hexdeco.amethyst_tiles_slab": "Amethyst Tiles Slab",
+ "block.hexdeco.slate_bricks_mini_slab": "Slate small Bricks Slab",
+ "block.hexdeco.slate_bricks_slab": "Slate Bricks Slab",
+ "block.hexdeco.slate_slab": "Slate Slab",
+ "block.hexdeco.slate_tiles_slab": "Slate Tiles Slab",
+ "block.hexdeco.amethyst_bricks_mini_stairs": "Amethyst small Bricks Stairs",
+ "block.hexdeco.amethyst_bricks_stairs": "Amethyst Bricks Stairs",
+ "block.hexdeco.amethyst_tiles_stairs": "Amethyst Tiles Stairs",
+ "block.hexdeco.slate_bricks_mini_stairs": "Slate small Bricks Stairs",
+ "block.hexdeco.slate_bricks_stairs": "Slate Bricks Stairs",
+ "block.hexdeco.slate_stairs": "Slate Stairs",
+ "block.hexdeco.slate_tiles_stairs": "Slate Tiles Stairs",
+ "block.hexdeco.charged_amethyst_block": "Charged Amethyst Block",
+ "block.hexdeco.charged_amethyst_slab": "Charged Amethyst Slab",
+ "block.hexdeco.charged_amethyst_stairs": "Charged Amethyst Stairs",
+ "block.hexdeco.charged_amethyst_bricks": "Charged Amethyst Bricks",
+ "block.hexdeco.charged_amethyst_bricks_slab": "Charged Amethyst Bricks Slab",
+ "block.hexdeco.charged_amethyst_bricks_stairs": "Charged Amethyst Bricks Stairs",
+ "block.hexdeco.charged_amethyst_lamp": "Charged Amethyst Lamp",
+ "block.hexdeco.slate_amethyst_tiles_stairs": "Slate & Amethyst Tiles Stairs",
+ "block.hexdeco.slate_amethyst_tiles_slab": "Slate & Amethyst Tiles Slab",
+ "block.hexdeco.amethyst_bricks_wall": "Amethyst Bricks Wall",
+ "block.hexdeco.amethyst_bricks_small_wall": "Amethyst Bricks Small Wall",
+ "block.hexdeco.slate_bricks_small_wall": "Slate Bricks Small Wall",
+ "block.hexdeco.slate_bricks_wall": "Slate Bricks Wall",
+ "block.hexdeco.amethyst_tiles_wall": "Amethyst Tiles Wall",
+ "block.hexdeco.slate_tiles_wall": "Slate Tiles Wall",
+ "block.hexdeco.slate_wall": "Slate Wall",
+ "block.hexdeco.slate_amethyst_tiles_wall": "Slate & Amethyst Tiles Wall",
+ "block.hexdeco.charged_amethyst_wall": "Charged Amethyst Wall",
+ "block.hexdeco.amethyst_globe": "Amethyst Globe"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexdeco/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexdeco/lang/zh_cn.json
new file mode 100644
index 000000000000..6bb5221da39c
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexdeco/lang/zh_cn.json
@@ -0,0 +1,35 @@
+{
+ "block.hexdeco.amethyst_bricks_mini_slab": "紫水晶小型砖台阶",
+ "block.hexdeco.amethyst_bricks_slab": "紫水晶砖台阶",
+ "block.hexdeco.amethyst_tiles_slab": "紫水晶瓦台阶",
+ "block.hexdeco.slate_bricks_mini_slab": "板岩小型砖台阶",
+ "block.hexdeco.slate_bricks_slab": "板岩砖台阶",
+ "block.hexdeco.slate_slab": "板岩Slab",
+ "block.hexdeco.slate_tiles_slab": "板岩瓦台阶",
+ "block.hexdeco.amethyst_bricks_mini_stairs": "紫水晶小型砖楼梯",
+ "block.hexdeco.amethyst_bricks_stairs": "紫水晶砖楼梯",
+ "block.hexdeco.amethyst_tiles_stairs": "紫水晶瓦楼梯",
+ "block.hexdeco.slate_bricks_mini_stairs": "板岩小型砖楼梯",
+ "block.hexdeco.slate_bricks_stairs": "板岩砖楼梯",
+ "block.hexdeco.slate_stairs": "板岩楼梯",
+ "block.hexdeco.slate_tiles_stairs": "板岩瓦楼梯",
+ "block.hexdeco.charged_amethyst_block": "充能紫水晶块",
+ "block.hexdeco.charged_amethyst_slab": "充能紫水晶台阶",
+ "block.hexdeco.charged_amethyst_stairs": "充能紫水晶楼梯",
+ "block.hexdeco.charged_amethyst_bricks": "充能紫水晶砖",
+ "block.hexdeco.charged_amethyst_bricks_slab": "充能紫水晶砖台阶",
+ "block.hexdeco.charged_amethyst_bricks_stairs": "充能紫水晶砖楼梯",
+ "block.hexdeco.charged_amethyst_lamp": "充能紫水晶灯",
+ "block.hexdeco.slate_amethyst_tiles_stairs": "板岩紫晶瓦楼梯",
+ "block.hexdeco.slate_amethyst_tiles_slab": "板岩紫晶瓦台阶",
+ "block.hexdeco.amethyst_bricks_wall": "紫水晶砖墙",
+ "block.hexdeco.amethyst_bricks_small_wall": "紫水晶小型砖墙",
+ "block.hexdeco.slate_bricks_small_wall": "板岩小型砖墙",
+ "block.hexdeco.slate_bricks_wall": "板岩砖墙",
+ "block.hexdeco.amethyst_tiles_wall": "紫水晶瓦墙",
+ "block.hexdeco.slate_tiles_wall": "板岩瓦墙",
+ "block.hexdeco.slate_wall": "板岩墙",
+ "block.hexdeco.slate_amethyst_tiles_wall": "板岩紫晶瓦墙",
+ "block.hexdeco.charged_amethyst_wall": "充能紫水晶墙",
+ "block.hexdeco.amethyst_globe": "紫水晶球"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
new file mode 100644
index 000000000000..8b8564f42bfc
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
@@ -0,0 +1,6 @@
+{
+ "hexcasting.action.hexmu:inscription": "Inscription Distillation",
+ "hexcasting.action.hexmu:inscribe": "Inscription Purification",
+ "hexcasting.action.hexmu:uwuify": "UwUify",
+ "hexcasting.action.hexmu:functor": "Functor Distillation"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
new file mode 100644
index 000000000000..8218da18b758
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
@@ -0,0 +1,6 @@
+{
+ "hexcasting.action.hexmu:inscription": "赋名之馏化",
+ "hexcasting.action.hexmu:inscribe": "赋名之纯化",
+ "hexcasting.action.hexmu:uwuify": "UwU化",
+ "hexcasting.action.hexmu:functor": "函子之馏化"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
new file mode 100644
index 000000000000..0094095d797f
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
@@ -0,0 +1,47 @@
+{
+ "hexpsi.spellpiece.selector_sentinel_pos": "Selector: Sentinel Position",
+ "hexpsi.spellpiece.selector_sentinel_pos.desc": "Returns your sentinel's position.",
+ "hexpsi.spellpiece.selector_sentinel_tier": "Selector: Sentinel Tier",
+ "hexpsi.spellpiece.selector_sentinel_tier.desc": "Returns your sentinel's tier, with a nonexistent or inaccessible sentinel returning 0.",
+ "hexpsi.spellpiece.selector_helmet_vec": "Selector: Helmet Vector",
+ "hexpsi.spellpiece.selector_helmet_vec.desc": "Returns the vector stored in your helmet sensor.",
+
+ "hexpsi.spellpiece.selector_read_vec": "Selector: Held Vector",
+ "hexpsi.spellpiece.selector_read_vec.desc": "Attempts to read a vector from held iota storage.",
+ "hexpsi.spellpiece.selector_read_num": "Selector: Held Number",
+ "hexpsi.spellpiece.selector_read_num.desc": "Attempts to read a number from held iota storage.",
+ "hexpsi.spellpiece.selector_read_entity": "Selector: Held Entity",
+ "hexpsi.spellpiece.selector_read_entity.desc": "Attempts to read an entity from held iota storage.",
+ "hexpsi.spellpiece.selector_read_entities": "Selector: Held Entities",
+ "hexpsi.spellpiece.selector_read_entities.desc": "Attempts to read a list of entities from held iota storage.",
+
+ "hexpsi.spellpiece.trick_set_sentinel": "Trick: Set Sentinel",
+ "hexpsi.spellpiece.trick_set_sentinel.desc": "Summons your sentinel at the target position.",
+ "hexpsi.spellpiece.trick_write_iota_vec": "Trick: Write Vector",
+ "hexpsi.spellpiece.trick_write_iota_vec.desc": "Attempts to write a vector to held iota storage.",
+ "hexpsi.spellpiece.trick_write_iota_num": "Trick: Write Number",
+ "hexpsi.spellpiece.trick_write_iota_num.desc": "Attempts to write a number to held iota storage.",
+ "hexpsi.spellpiece.trick_write_iota_entity": "Trick: Write Entity",
+ "hexpsi.spellpiece.trick_write_iota_entity.desc": "Attempts to write an entity to held iota storage.",
+ "hexpsi.spellpiece.trick_write_iota_entities": "Trick: Write Entity List",
+ "hexpsi.spellpiece.trick_write_iota_entities.desc": "Attempts to write a list of entities to held iota storage.",
+
+ "psi.spellparam.hexpsi:sentineltier": "Tier",
+ "psi.spellparam.hexpsi:vec": "Vector",
+ "psi.spellparam.hexpsi:num": "Number",
+ "psi.spellparam.hexpsi:entity": "Entity",
+ "psi.spellparam.hexpsi:entities": "List of Entities",
+
+ "hexpsi.spellerror.truename": "ERROR: Attempted to save reference to another player.",
+ "hexpsi.spellerror.enlightenment": "ERROR: Am I not skilled enough?",
+ "hexpsi.spellerror.writeable": "ERROR: No writeable item found.",
+ "hexpsi.spellerror.readable": "ERROR: No readable item found.",
+ "hexpsi.spellerror.unreadablecontents": "ERROR: Readable item does not contain readable data.",
+
+ "hexpsi.helmetrequires": "Helmet sensor requires ",
+ "hexpsi.helmetrequires.vector": "a vector.",
+ "hexpsi.badhelmet.readable": "Helmet does not contain a readable iota.",
+
+ "item.hexpsi.exosuit_vector_focus_sensor": "Exosuit Sensor: Vector Write",
+ "item.hexpsi.psi_core_staff": "Psion's Staff"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
new file mode 100644
index 000000000000..13810686bafd
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
@@ -0,0 +1,47 @@
+{
+ "hexpsi.spellpiece.selector_sentinel_pos": "选择符:哨卫位置",
+ "hexpsi.spellpiece.selector_sentinel_pos.desc": "返回哨卫的位置",
+ "hexpsi.spellpiece.selector_sentinel_tier": "选择符:哨卫等级",
+ "hexpsi.spellpiece.selector_sentinel_tier.desc": "返回哨卫的等级;如果没有哨卫或无法访问哨卫,则返回0",
+ "hexpsi.spellpiece.selector_helmet_vec": "选择符:头盔矢量",
+ "hexpsi.spellpiece.selector_helmet_vec.desc": "返回头盔传感器中的矢量",
+
+ "hexpsi.spellpiece.selector_read_vec": "选择符:手持矢量",
+ "hexpsi.spellpiece.selector_read_vec.desc": "试图从手持的iota存储空间中读取一个矢量",
+ "hexpsi.spellpiece.selector_read_num": "选择符:手持数值",
+ "hexpsi.spellpiece.selector_read_num.desc": "试图从手持的iota存储空间中读取一个数值",
+ "hexpsi.spellpiece.selector_read_entity": "选择符:手持实体",
+ "hexpsi.spellpiece.selector_read_entity.desc": "试图从手持的iota存储空间中读取一个实体",
+ "hexpsi.spellpiece.selector_read_entities": "选择符:手持实体列表",
+ "hexpsi.spellpiece.selector_read_entities.desc": "试图从手持的iota存储空间中读取一个实体列表",
+
+ "hexpsi.spellpiece.trick_set_sentinel": "启动符:设置哨卫",
+ "hexpsi.spellpiece.trick_set_sentinel.desc": "在指定位置召唤哨卫",
+ "hexpsi.spellpiece.trick_write_iota_vec": "启动符:写出矢量",
+ "hexpsi.spellpiece.trick_write_iota_vec.desc": "试图向手持的iota存储空间写出一个矢量",
+ "hexpsi.spellpiece.trick_write_iota_num": "启动符:写出数值",
+ "hexpsi.spellpiece.trick_write_iota_num.desc": "试图向手持的iota存储空间写出一个数值",
+ "hexpsi.spellpiece.trick_write_iota_entity": "启动符:写出实体",
+ "hexpsi.spellpiece.trick_write_iota_entity.desc": "试图向手持的iota存储空间写出一个实体",
+ "hexpsi.spellpiece.trick_write_iota_entities": "启动符:写出实体列表",
+ "hexpsi.spellpiece.trick_write_iota_entities.desc": "试图向手持的iota存储空间写出一个实体列表",
+
+ "psi.spellparam.hexpsi:sentineltier": "等级",
+ "psi.spellparam.hexpsi:vec": "矢量",
+ "psi.spellparam.hexpsi:num": "数值",
+ "psi.spellparam.hexpsi:entity": "实体",
+ "psi.spellparam.hexpsi:entities": "实体列表",
+
+ "hexpsi.spellerror.truename": "错误:试图存储对其他玩家的引用。",
+ "hexpsi.spellerror.enlightenment": "错误:也许我还做得不够?",
+ "hexpsi.spellerror.writeable": "错误:未找到可写出的物品。",
+ "hexpsi.spellerror.readable": "错误:未找到可读取的物品。",
+ "hexpsi.spellerror.unreadablecontents": "错误:可读物品中无可读取的数据。",
+
+ "hexpsi.helmetrequires": "头盔传感器需要",
+ "hexpsi.helmetrequires.vector": "一个矢量。",
+ "hexpsi.badhelmet.readable": "头盔内无可读取的iota。",
+
+ "item.hexpsi.exosuit_vector_focus_sensor": "装甲传感器:写入矢量",
+ "item.hexpsi.psi_core_staff": "Psi子法杖"
+}
\ No newline at end of file
From d882aad476b63fbe741c57c6a0ada2013abb1d2b Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 25 Jun 2025 10:19:01 +0800
Subject: [PATCH 42/78] =?UTF-8?q?Hexical=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
---
.../assets/modrinth-hexical/hexical/lang/en_us.json | 12 ++++++------
.../assets/modrinth-hexical/hexical/lang/zh_cn.json | 10 +++++-----
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 25e37d45605b..20f3e6ec8489 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -331,9 +331,6 @@
"hexcasting.action.hexical:get_arch_lamp_storage": "Archgenie Reflection: Memory",
"hexical.page.get_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)Staff$(), or within the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() to push the stored iota.",
- "hexical.page.lamp_pillows.title": "The Pillow",
- "hexical.page.lamp_pillows.0": "It seems that $(l:lamp/arch_lamps)$(item)Archgenie Lamps$() inhibit the genie's ability to cast unless someone is actively grasping it, possibly to prevent the genie from applying _media as a form of attrition to wear down its prison. However I have never noted any behavior of the sort; perhaps it is just the paranoia that comes with the brilliance it takes to design such a marvellous device.",
-
"hexical.page.pedestal_circles.title": "Pedestals in Circles",
"hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)Pedestals$() have magical abilities!$(br2)If they are holding $(l:patterns/readwrite#hexcasting:write)$(item)an item that contains information$() and the $(l:greatwork/spellcircles)$(thing)spell circle$()'s wave passes over them as if they were a $(l:items/slate)$(item)Slate$(), they push the iota onto the stack. If the $(l:items/pedestals)$(thing)Pedestal$() happens to processed inside an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), the iota appears inside the constructed list.",
"hexical.page.pedestal_circles.1": "If placed directly on top of an $(l:greatwork/spellcircles)$(item)Impetus$() instead, the $(l:items/pedestals)$(item)Pedestal$() acts as the circle's $(o)other hand$(), useful for spells such as the $(l:patterns/spells/hexcasting)casting device crafting spells$(), $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge Item$(), and $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().$(br2)This includes $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$() and $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$(), allowing me to create $(l:greatwork/spellcircles)$(thing)spell circles$() to automatically fill in my $(l:items/focus)$(item)Foci$().",
@@ -362,7 +359,7 @@
"hexcasting.action.hexical:send_telepathy": "Send Thought",
"hexical.page.send_telepathy.summary": "Momentarily displays an iota above my hotbar. If cast repeatedly, each cast overwrites the previous instantly.",
"hexcasting.action.hexical:shout_telepathy": "Shout Thought",
- "hexical.page.shout_telepathy.summary": "Grandly flahes an iota across my vision. It obstructs my vision and takes some time to fade in, so I shall only use it sparingly.",
+ "hexical.page.shout_telepathy.summary": "Grandly flashes an iota across my vision. It obstructs my vision and takes some time to fade in, so I shall only use it sparingly.",
"hexcasting.action.hexical:pling": "Hallucinate Pling",
"hexical.page.pling.summary": "Causes me to hear a pling that is inaudible to other players.",
"hexcasting.action.hexical:click": "Hallucinate Click",
@@ -481,7 +478,7 @@
"hexcasting.action.hexical:magic_missile": "Magic Missile",
"hexical.page.magic_missile.summary": "Conjures a small silver of amethyst that always deals a full heart of damage and forces the target backwards. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.magic_missile.0": "The projectile has a few interesting properties. It automatically disappears after roughly ten seconds or shatters upon hitting an entity or block. It pierces all forms of armor and protection. It is also unaffected by gravity and water drag.$(br2)$(o)A weak but enchanting sparkling projectile.$()",
- "hexical.page.magic_missile.1": "The first vector is conjuration location and is quite esoteric: no wonder most _Hexcasters conjure it in front of them. The basic gist is a vector, where my head's position is the origin, $(l:patterns/basics#hexcasting:get_entity_look)$(action)my facing$() is the Z+ axis, $(l:patterns/scrying/entities#hexposition:theodolite)$(action)the vector pointing up from my head$() is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
+ "hexical.page.magic_missile.1": "The first vector is conjuration location and is quite esoteric: no wonder most _Hexcasters conjure it in front of them. The basic gist is a vector, where my head's position is the origin, $(l:patterns/basics#hexcasting:get_entity_look)$(action)my facing$() is the Z+ axis, $(l:patterns/scrying/entities#hexpose:theodolite)$(action)the vector pointing up from my head$() is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
"hexical.page.magic_missile.2": "The second vector is velocity and thankfully much less complicated. It is a simple offset vector, similar to the one that $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() takes in. Unlike $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() though, this vector can be of arbitrary magnitude without incurring additional costs.$(br2)Unlike $(item)Arrows$() though, $(item)Magic Missiles$() will not increase in damage simply by travelling faster. They also apply an odd knockback effect that ignores the entity's mass or the projectile's speed.",
"hexcasting.action.hexical:prestidigitation": "Prestidigitation",
@@ -548,6 +545,9 @@
"hexcasting.action.hexical:confetti": "Confetti",
"hexical.page.confetti.summary": "Creates a loud bang similar to that of $(l:patterns/spells/pyrotechnics)Fireworks$() and a burst of colorful particles, either in a direction or in a radial blast. Costs about half of one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.confetti.description": "The particles are harmless and flutter through the air for quite long until they reach the ground. The first vector is a position and the second controls direction. If it is a number, it indicates speed to explode in in all directions; a vector makes the particles tend towards the given direction. Both the number and the vector's magnitude may not exceed 2.$(br2)$(o)The rest is confetti.$()",
+ "hexcasting.action.hexical:vibration": "Vibrate",
+ "hexical.page.vibration.summary": "Causes a visible pulse of vibration from a vector to an entity or vector over a number of seconds. Costs about a sixteenth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.vibration.description": "The effect, while resembling the pulses produced by $(item)Sculk Sensors$(), is entirely distinct. It is a purely visual effect.$(br2)The duration can range anywhere from zero seconds to ten seconds.$(br2)$(o)If a tree falls in a forest and no one is around to hear it, does it make a sound?$()",
"hexcasting.action.hexical:sparkle": "Sparkle",
"hexical.page.sparkle.summary": "Produces a small sparkling particle of my desired position, color, and lifespan. Costs a negligible amount of _media.",
"hexical.page.sparkle.description": "The first vector controls position and the second vector controls color. Each component should range from 0 to 1 and corresponds to red, green, and blueness respectively. The final number dictates how long the sparkle should remain in twentieths of a second, up to five seconds.$(br2)$(o)All that glitters is not gold.$()",
@@ -671,7 +671,7 @@
"hexcasting.action.hexical:greater_blink": "Greater Blink",
"hexical.page.greater_blink.0": "Greater Blink is a significantly cheaper alternative to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(). It also does not carry the risk of splattering my items upon arrival. However, it only has pitiful range compared to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$() and its destination calculations are... esoteric. Its target is also exclusively myself.",
"hexical.page.greater_blink.summary": "Teleports me up to 128 blocks away, relative to my position and rotation. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in $(l:patterns/basics#hexcasting:get_entity_look)$(thing)the direction I'm facing$(). A vector of (0, 1, 0) would teleport me one block $(l:patterns/scrying/entities#hexposition:theodolite)$(thing)\"up\" from the top of my head$(). A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head. A vector of (1, 0, 0) teleports me one block to my right.",
+ "hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in $(l:patterns/basics#hexcasting:get_entity_look)$(thing)the direction I'm facing$(). A vector of (0, 1, 0) would teleport me one block $(l:patterns/scrying/entities#hexpose:theodolite)$(thing)\"up\" from the top of my head$(). A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head. A vector of (1, 0, 0) teleports me one block to my right.",
"hexical.page.greater_blink.2": "$(o)I felt three numerical axes perfectly pierce all six faces of my head. For a moment, I was skewered—suspended midair—and then at my specifications, I was violently dragged along the geometrical scaffolds at speeds indistinguishable from instantaneousness.$(br2)I must have been no longer a part of the world, for I was yanked through walls without causing even the smallest disturbance.$()",
"hexical.page.meshes.title": "Meshes",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index b375fef4c3a9..ea5dd09877e6 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -331,9 +331,6 @@
"hexcasting.action.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
"hexical.page.get_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及$(l:lamp/arch_lamps)$(item)大精灵神灯$()自身运行。获取神灯的 iota 存储。",
- "hexical.page.lamp_pillows.title": "枕座",
- "hexical.page.lamp_pillows.0": "似乎$(l:lamp/arch_lamps)$(item)大精灵神灯$()会在无人持有时抑制精灵的施法能力,也许是为阻止精灵用$(media)媒质$()削弱神灯的禁锢。我从未见到过这种表现;大概能设计如此精妙的仪器的意识总是才智与偏执并存吧。",
-
"hexical.page.pedestal_circles.title": "法术环中的支座",
"hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)支座$()有魔力!$(br2)如果其中存在$(l:patterns/readwrite#hexcasting:write)$(item)带有信息的物品$(),同时还有$(l:greatwork/spellcircles)$(thing)法术环$()的媒质波如穿过$(l:items/slate)$(item)石板$()一样流过,那么它就会把物品中的 iota 压入栈顶。如果$(l:items/pedestals)$(thing)支座$()恰好处于未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$()中,该 iota 便会出现在所创建的列表内。",
"hexical.page.pedestal_circles.1": "如果直接把$(l:items/pedestals)$(item)支座$()放在$(l:greatwork/spellcircles)$(item)促动石$()上方,那么它就会变成法术环的$(o)另一只手$(),适用于$(l:patterns/spells/hexcasting)合成施法物品等法术$()、$(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)重新充能$(),以及$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()。$(br2)有关法术也包括$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()还有$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()。可借此让$(l:greatwork/spellcircles)$(thing)法术环$()自动向$(l:items/focus)$(item)核心$()写入。",
@@ -481,7 +478,7 @@
"hexcasting.action.hexical:magic_missile": "魔法飞弹",
"hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时强令目标退后。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
- "hexical.page.magic_missile.1": "第一个向量是构筑的位置,其性质相当奇妙:怪不得大多数$(hex)咒术师$()都只选择在面前构筑它们。这一参数以我的头部位置为原点,我$(l:patterns/basics#hexcasting:get_entity_look)$(action)面朝的方向$()是 Z 轴正向,$(l:patterns/scrying/entities#hexposition:theodolite)$(action)头顶向上的方向$()是 Y 轴正向,头部向右的方向是 X 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
+ "hexical.page.magic_missile.1": "第一个向量是构筑的位置,其性质相当奇妙:怪不得大多数$(hex)咒术师$()都只选择在面前构筑它们。这一参数以我的头部位置为原点,我$(l:patterns/basics#hexcasting:get_entity_look)$(action)面朝的方向$()是 Z 轴正向,$(l:patterns/scrying/entities#hexpose:theodolite)$(action)头顶向上的方向$()是 Y 轴正向,头部向右的方向是 X 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
"hexical.page.magic_missile.2": "第二个向量是速率,好在比第一参数简单不少。它就是简单的偏移向量,与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()接受的向量类似。而与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()不同的是,本法术的向量没有模长限制,也不会因模长增加而增大消耗。$(br2)$(item)魔法飞弹$()与$(item)箭$()的不同之处在于,前者不会因为飞行速度快而造成更多伤害。飞弹还会产生一种奇怪的击退效果,无视实体的质量和弹射物的速度。",
"hexcasting.action.hexical:prestidigitation": "戏法",
@@ -548,6 +545,9 @@
"hexcasting.action.hexical:confetti": "彩花",
"hexical.page.confetti.summary": "在给定位置以给定方向、速率、速度制造一阵类似$(l:patterns/spells/pyrotechnics)烟花$()的响声及一簇色彩鲜艳的粒子。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.confetti.description": "这些粒子不会造成伤害,且在触地前会四处飘动。第一个向量控制位置。第二个参数控制方向;若传入数,则表示向所有方向爆炸的速度;若传入向量,则会令粒子偏向该方向。数的绝对值和向量的模长均不可超过 2。$(br2)$(o)剩下的不过是些彩花。$()",
+ "hexcasting.action.hexical:vibration": "振动",
+ "hexical.page.vibration.summary": "产生一道可视的振动波,其会从一个位置向量处到一个实体或另一个位置向量处飞行,总计所给数秒。消耗大约 1/16 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.vibration.description": "这种效果和$(item)幽匿感测体$()产生的振动看上去很相似,但实质上完全不同。前者只是视觉效果。$(br2)飞行时间可为 0 秒到 10 秒间任选。$(br2)$(o)如果森林里有棵树倒了,但附近没人听见,那它还算是发出了声音吗?$()",
"hexcasting.action.hexical:sparkle": "烁星",
"hexical.page.sparkle.summary": "在给定位置以给定颜色和持续时间制造一颗闪光的小粒子。消耗极少量$(media)媒质$()。",
"hexical.page.sparkle.description": "第一个向量控制位置,第二个控制颜色。第二向量各分量应为 0 到 1 的数,分别对应红、绿、蓝三色。最后的数代表烁星应存在多少个 1/20 秒,最多可存在 5 秒。$(br2)$(o)闪光的不一定是金子。$()",
@@ -671,7 +671,7 @@
"hexcasting.action.hexical:greater_blink": "卓越闪现",
"hexical.page.greater_blink.0": "卓越闪现比$(l:patterns/great_spells/teleport)$(action)卓越传送$()要便宜许多。它不会在抵达时让我全身的物品散落。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
"hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往$(l:patterns/basics#hexcasting:get_entity_look)$(thing)我面朝的方向$()传送 1 格。向量 (0, 1, 0) 会往$(l:patterns/scrying/entities#hexposition:theodolite)$(thing)我头顶的法向$()传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。向量 (1, 0, 0) 会往我的右侧传送 1 格。",
+ "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往$(l:patterns/basics#hexcasting:get_entity_look)$(thing)我面朝的方向$()传送 1 格。向量 (0, 1, 0) 会往$(l:patterns/scrying/entities#hexpose:theodolite)$(thing)我头顶的法向$()传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。向量 (1, 0, 0) 会往我的右侧传送 1 格。",
"hexical.page.greater_blink.2": "$(o)我感到三根数轴精准地穿过我头颅的六面。在刹那之间,我仿佛被尖桩扎穿——吊在空中——然后随我先前的指示,我被猛烈地拽动——就沿着那些几何轴——移动如同在瞬间完成。$(br2)我肯定已经不是世界的一部分了——就算穿墙也不会留下哪怕一丁点痕迹。$()",
"hexical.page.meshes.title": "网斑",
From 29085800d80d0c6e12532a466b6517413feaca2f Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Thu, 26 Jun 2025 21:40:46 +0800
Subject: [PATCH 43/78] =?UTF-8?q?HexMu=20update=EF=BC=9A=E5=AE=98=E5=BA=93?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../en_us/entries/addon/hexmu/boxes.json | 34 +++++++++++++++++++
.../entries/addon/hexmu/inscription.json | 32 ++++++++++++++---
.../zh_cn/entries/addon/hexmu/boxes.json | 34 +++++++++++++++++++
.../entries/addon/hexmu/inscription.json | 30 +++++++++++++---
.../assets/1UNKNOWN/hexmu/lang/en_us.json | 13 +++++--
.../assets/1UNKNOWN/hexmu/lang/zh_cn.json | 13 +++++--
6 files changed, 143 insertions(+), 13 deletions(-)
create mode 100644 projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/boxes.json
create mode 100644 projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/boxes.json
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/boxes.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/boxes.json
new file mode 100644
index 000000000000..d496fb6fab1d
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/boxes.json
@@ -0,0 +1,34 @@
+{
+ "name": "Boxes",
+ "category": "hexcasting:patterns",
+ "icon": "create:magenta_toolbox",
+ "advancement": "hexcasting:root",
+ "pages": [
+ "A box is a special kind of iota, hiding its contents from Nature for later use. I could use these to work around iotas that sometimes disintegrate, such as entities Nature isn't actively thinking about.",
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:box",
+ "anchor": "hexmu:box",
+ "input": "any",
+ "output": "box",
+ "text": "Wraps an iota in a box for my later use. All that can be seen from the outside of a boxed iota is its type, so it'd be best for me to $(l:hexcasting:addon/hexmu/inscription.json)inscribe/$ my boxes with something meaningful."
+ },
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:unbox",
+ "anchor": "hexmu:unbox",
+ "input": "box",
+ "output": "any",
+ "text": "Returns me the contents of a box. I feel that certain boxes may have special effects when unboxing..."
+ },
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:pipebomb",
+ "anchor": "hexmu:pipebomb",
+ "advancement": "hexcasting:enlightenment",
+ "input": "",
+ "output": "box",
+ "text": "I have no clue what this does. It creates a box, yes, but am I sure I want to look inside?"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
index 641b064c293d..77b070de2e91 100644
--- a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
+++ b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
@@ -2,28 +2,50 @@
"name": "Iota Inscription",
"category": "hexcasting:patterns",
"icon": "ae2:name_press",
+ "advancement": "hexcasting:root",
"pages": [
- "These patterns seem to manipulate a name directly onto an iota. An iota engraved in this way acts no different in my spells, but they're marked in my $(item)$(l:hexcasting:items/focus)Foci/$ or when I cast $(thing)$(l:hexcasting:patterns/basics#hexcasting:print)Reveal/$.",
+ "These patterns seem to manipulate a name directly etched into an iota. An iota engraved in this way acts no different in my spells, but they're marked in my $(item)$(l:hexcasting:items/focus)Foci/$ or when I cast $(thing)$(l:hexcasting:patterns/basics#hexcasting:print)Reveal/$.",
{
"type": "hexcasting:pattern",
"op_id": "hexmu:inscription",
+ "anchor": "hexmu:inscription",
"input": "any, string",
"output": "any",
- "text": "Inscribes the passed iota with the given name. I can supply Null to strip the name."
+ "text": "Inscribes the passed iota with the given name, consuming a miniscule amount of _media. I can supply Null to strip the name."
},
{
"type": "hexcasting:pattern",
"op_id": "hexmu:inscribe",
+ "anchor": "hexmu:inscribe",
"input": "any",
"output": "string",
- "text": "Returns the name inscribed on an iota. I could potentially use this for smuggling Strings through my calculations."
+ "text": "Gives me the name inscribed on an iota, or Null if it has no name. This could be a rudimentary form of $(thing)reflection/$."
},
{
"type": "hexcasting:pattern",
"op_id": "hexmu:substring",
+ "anchor": "hexmu:substring",
"input": "any, string",
- "output": "any|null",
- "text": "Searches through a list of iotas for one with a certain label. This seems useful as a form of mapping. I wonder what would happen if I labeled an iota with something other than a string..."
+ "output": "any | null",
+ "text": "Searches through a list of iotas for one with a certain label. This could let me use a list as a form of $(thing)dictionary/$, mapping names to values."
+ },
+ {
+ "type": "hexcasting:pattern",
+ "advancement": "hexcasting:enlightenment",
+ "op_id": "hexmu:annotation/get",
+ "anchor": "hexmu:annotation/get",
+ "input": "any, key, value",
+ "output": "any",
+ "text": "Annotates an iota with the given key-value pair. Though the value can be anything I want, the key must be unique for every pair — a duplicate key simply overwrites the older."
+ },
+ {
+ "type": "hexcasting:pattern",
+ "advancement": "hexcasting:enlightenment",
+ "op_id": "hexmu:annotation/set",
+ "anchor": "hexmu:annotation/set",
+ "input": "any, key",
+ "output": "value",
+ "text": "Returns an annotation value from an iota. Hexes can't determine what annotations an iota contains, if any. Methods such as F3+H could reveal them to me, but I best not use them."
}
]
}
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/boxes.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/boxes.json
new file mode 100644
index 000000000000..755f3337af82
--- /dev/null
+++ b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/boxes.json
@@ -0,0 +1,34 @@
+{
+ "name": "盒子",
+ "category": "hexcasting:patterns",
+ "icon": "create:magenta_toolbox",
+ "advancement": "hexcasting:root",
+ "pages": [
+ "盒子是一类特殊的 iota,可以屏蔽自然的视线,让它无法查看盒子里的东西。它能保存有可能会消散的 iota,比如自然并不主动去思考的实体。",
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:box",
+ "anchor": "hexmu:box",
+ "input": "any",
+ "output": "box",
+ "text": "将 iota 包入盒子,以待后用。从外部看只能看见 iota 的类型,所以最好先给盒子赋予有意义的$(l:hexcasting:addon/hexmu/inscription.json)名字/$。"
+ },
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:unbox",
+ "anchor": "hexmu:unbox",
+ "input": "box",
+ "output": "any",
+ "text": "返回盒子的内容物。我感觉某些盒子在拆开时会出现特殊的效果……"
+ },
+ {
+ "type": "hexcasting:pattern",
+ "op_id": "hexmu:pipebomb",
+ "anchor": "hexmu:pipebomb",
+ "advancement": "hexcasting:enlightenment",
+ "input": "",
+ "output": "box",
+ "text": "我完全不知道这有什么作用。它确实制造了一个盒子,但我真的想打开看吗?"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
index c884500bb972..e42ad72ec77f 100644
--- a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
+++ b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
@@ -2,28 +2,50 @@
"name": "Iota 赋名",
"category": "hexcasting:patterns",
"icon": "ae2:name_press",
+ "advancement": "hexcasting:root",
"pages": [
"这些图案似乎会直接为 iota 赋予名称。经此操作的 iota 在法术中的表现不会产生变化,但存于$(item)$(l:hexcasting:items/focus)核心/$或施放$(thing)$(l:hexcasting:patterns/basics#hexcasting:print)揭示/$时会显示该名称。",
{
"type": "hexcasting:pattern",
"op_id": "hexmu:inscription",
+ "anchor": "hexmu:inscription",
"input": "any, string",
"output": "any",
- "text": "将所给名字赋予所给 iota。传入 Null 即取消赋名。"
+ "text": "将所给名字赋予所给 iota,消耗极少量$(media)媒质/$。传入 Null 即取消赋名。"
},
{
"type": "hexcasting:pattern",
"op_id": "hexmu:inscribe",
+ "anchor": "hexmu:inscribe",
"input": "any",
"output": "string",
- "text": "返回 iota 被赋予的名字。也许可以用来在运算中偷藏点字符串。"
+ "text": "返回 iota 被赋予的名字,若无名字则返回 Null。算是一种原始的$(thing)反射/$。"
},
{
"type": "hexcasting:pattern",
"op_id": "hexmu:substring",
+ "anchor": "hexmu:substring",
"input": "any, string",
- "output": "any|null",
- "text": "按照所给标签在多个 iota 中搜索 iota。很适合拿来当映射。不知道给 iota 打标签时不用字符串会怎么样……"
+ "output": "any | null",
+ "text": "按照所给标签在多个 iota 中搜索 iota。可以把列表用成$(thing)字典/$:将名字映射给值。"
+ },
+ {
+ "type": "hexcasting:pattern",
+ "advancement": "hexcasting:enlightenment",
+ "op_id": "hexmu:annotation/get",
+ "anchor": "hexmu:annotation/get",
+ "input": "any, key, value",
+ "output": "any",
+ "text": "以所给键值对注解 iota。值可以任选,但同批注解中键必须两两不同;如有重复,则新键值对覆盖旧键值对。"
+ },
+ {
+ "type": "hexcasting:pattern",
+ "advancement": "hexcasting:enlightenment",
+ "op_id": "hexmu:annotation/set",
+ "anchor": "hexmu:annotation/set",
+ "input": "any, key",
+ "output": "value",
+ "text": "返回 iota 中的注解值。咒术预先不知道 iota 包含哪些注解,以及是否包含注解。F3+H 之类的方法可以揭示注解,但最好还是不要用它们。"
}
]
}
diff --git a/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
index 8b8564f42bfc..14d7d28f55b3 100644
--- a/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
+++ b/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
@@ -1,6 +1,15 @@
{
- "hexcasting.action.hexmu:inscription": "Inscription Distillation",
+ "hexcasting.action.hexmu:inscription": "Inscribe Iota",
"hexcasting.action.hexmu:inscribe": "Inscription Purification",
+ "hexcasting.action.hexmu:substring": "Table Distillation",
"hexcasting.action.hexmu:uwuify": "UwUify",
- "hexcasting.action.hexmu:functor": "Functor Distillation"
+ "hexcasting.action.hexmu:functor": "Functor Distillation",
+ "hexcasting.action.hexmu:pocket/open": "Inscribe Spatial Pocket",
+ "hexcasting.action.hexmu:annotation/get": "Annotate Iota",
+ "hexcasting.action.hexmu:annotation/set": "Annotation Distillation",
+ "hexcasting.action.hexmu:box": "Mover's Purification",
+ "hexcasting.action.hexmu:unbox": "Settler's Purification",
+ "hexcasting.action.hexmu:pipebomb": "§kPipebomb§r Reflection",
+ "hexcasting.iota.hexmu:box": "Box",
+ "death.attack.hexmu:pipe_bomb": "%s was blown up by §9Boxed Pipe Bomb"
}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
index 8218da18b758..9c11d26affca 100644
--- a/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
+++ b/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
@@ -1,6 +1,15 @@
{
- "hexcasting.action.hexmu:inscription": "赋名之馏化",
+ "hexcasting.action.hexmu:inscription": "Iota 赋名",
"hexcasting.action.hexmu:inscribe": "赋名之纯化",
+ "hexcasting.action.hexmu:substring": "制表之馏化",
"hexcasting.action.hexmu:uwuify": "UwU化",
- "hexcasting.action.hexmu:functor": "函子之馏化"
+ "hexcasting.action.hexmu:functor": "函子之馏化",
+ "hexcasting.action.hexmu:pocket/open": "空间口袋赋名",
+ "hexcasting.action.hexmu:annotation/get": "Iota 注解",
+ "hexcasting.action.hexmu:annotation/set": "注解之馏化",
+ "hexcasting.action.hexmu:box": "搬盒者之纯化",
+ "hexcasting.action.hexmu:unbox": "放盒者之纯化",
+ "hexcasting.action.hexmu:pipebomb": "§k盒弹§r之精思",
+ "hexcasting.iota.hexmu:box": "盒子",
+ "death.attack.hexmu:pipe_bomb": "%s被§9盒装炸弹§r炸死了"
}
\ No newline at end of file
From 3063a72b57345c262a5ada9af556d755533656ec Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 1 Jul 2025 05:13:37 +0800
Subject: [PATCH 44/78] Caduceus path
---
.../caduceus/lang/en_us.flatten.json5 | 0
.../caduceus/lang/zh_cn.flatten.json5 | 0
.../caduceus/lang/en_us.flatten.json5 | 118 ++++++++++++++++++
.../caduceus/lang/zh_cn.flatten.json5 | 118 ++++++++++++++++++
4 files changed, 236 insertions(+)
rename projects/1.20-fabric/assets/{1UNKNOWN => caduceus}/caduceus/lang/en_us.flatten.json5 (100%)
rename projects/1.20-fabric/assets/{1UNKNOWN => caduceus}/caduceus/lang/zh_cn.flatten.json5 (100%)
create mode 100644 projects/1.20/assets/caduceus/caduceus/lang/en_us.flatten.json5
create mode 100644 projects/1.20/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/caduceus/caduceus/lang/en_us.flatten.json5
similarity index 100%
rename from projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/en_us.flatten.json5
rename to projects/1.20-fabric/assets/caduceus/caduceus/lang/en_us.flatten.json5
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/zh_cn.flatten.json5 b/projects/1.20-fabric/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
similarity index 100%
rename from projects/1.20-fabric/assets/1UNKNOWN/caduceus/lang/zh_cn.flatten.json5
rename to projects/1.20-fabric/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
diff --git a/projects/1.20/assets/caduceus/caduceus/lang/en_us.flatten.json5 b/projects/1.20/assets/caduceus/caduceus/lang/en_us.flatten.json5
new file mode 100644
index 000000000000..435487857412
--- /dev/null
+++ b/projects/1.20/assets/caduceus/caduceus/lang/en_us.flatten.json5
@@ -0,0 +1,118 @@
+{
+ caduceus: {
+ book: {
+ basics: {
+ caduceus_changes: {
+ "": "Caduceus Changes",
+ "1": "I have noticed some changes to the behavior of certain $(l:patterns/meta#hexcasting:eval/cc)meta-evaluation techniques/$ as of late.$(br2)\
+ Jump iotas are no longer entirely opaque to me - I can now see the $(l:patterns/jump_manipulation)components/$ that make them up, although I have not yet managed to isolate one.",
+ "2": "Additionally, it seems $(l:casting/mishaps)Too Many Iotas/$ mishaps have become more common when working with Jump iotas. I should take care not to delve too deep.",
+ },
+ },
+ casting: {
+ continuations: {
+ "": "A Primer On Jumps",
+ "1": "As with $(l:casting/vectors)vectors/$ for more mundane tasks, it seems I will need a deeper understanding of Jump iotas (also called continuations) if I am to make the most of my new discoveries. I have collected some \"light reading material\" on the topic.",
+ "2": {
+ text: "First, an encyclopedia entry on the concept of \"first-class continuations\", the abstract concept embodied by Jump iotas. It also discusses the \"call/cc\" operator, which is roughly equivalent to $(l:patterns/meta#hexcasting:eval/cc)$(action)Iris' Gambit/$.",
+ link_text: "Wikipedia",
+ },
+ "3": {
+ text: "Next, a blog post on \"delimited continuations\", with some concrete examples that may be feasible to rewrite as _Hexes for practice. I may find this useful if I am having trouble understanding $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ and $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Arke's Gambit/$.",
+ link_text: "Blog Post",
+ },
+ "4": {
+ text: "Finally, if I can overlook a bit of fourth-wall breaking, this document gives an overview of the specific techniques employed by Nature to interpret my _Hexes.",
+ link_text: "How Casting Works",
+ },
+ },
+ caduceus_mishaps: {
+ "": "Caduceus Mishaps",
+ "1": "This section documents the mishaps that can occur when manipulating Jump iotas and using delimited jumps.",
+ no_prompt: {
+ title: "Uncontained Arke",
+ text: "I attempted to draw $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Arke's Gambit/$ without wrapping it in $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$.",
+ },
+ },
+ },
+ patterns: {
+ delimcc: {
+ "": "Delimited Jumps",
+ "eval/prompt": "Cast a pattern or list of patterns from the stack exactly like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, except that anything outside of this cast will not be captured by an $(l:patterns/delimcc#caduceus:eval/control)$(action)Arke's Gambit/$ within it.",
+ "eval/control": {
+ "1": "Cast a pattern or list of patterns from the stack similarly to $(l:patterns/meta#hexcasting:eval/cc)$(action)Iris' Gambit/$. Must be drawn within $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$.",
+ "2": "All of the patterns that would have been drawn between the end of the pattern list and the end of the enclosing $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ are $(italic)moved/$ into a Call iota, which is pushed to the stack instead of a Jump iota.$(br2)\
+ When the Call iota is executed, the captured patterns will be cast as if by $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$. If the Call iota is not executed, the rest of the patterns within the enclosing $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ will be skipped.",
+ },
+ },
+ jump_manipulation: {
+ "": "Jump Manipulation",
+ "1": "Just like my _Hexes interact with the $(l:casting/stack)stack/$, Nature uses a stack of its own (made up of \"frames\") when casting my _Hexes. Jump iotas contain a snapshot of this stack at a particular moment in time, and I can use the patterns in this section to deconstruct and rearrange that snapshot.$(br)\
+ Unfortunately, despite their similarity to Jump iotas, it seems these patterns do $(italic)not/$ work on Call iotas.",
+ add: "Remove the Jump iota at the top of the stack, then add all its frames to the bottom of the Jump iota at the top of the stack.",
+ abs: "Remove the Jump iota at the top of the stack, then push the number of frames within it to the stack.",
+ splat: "Remove the Jump iota at the top of the stack, then, for each of its frames, push a new Jump iota containing only that frame to the stack.",
+ construct: "Remove the Jump iota at the top of the stack, then add its top frame to the top of the Jump iota at the top of the stack.",
+ deconstruct: "Remove the top frame from the Jump iota at the top of the stack, then push a new Jump iota containing only that frame to the stack.",
+ jump_tags: {
+ title: "Jump Tags",
+ text: "The $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$ is not the only place that I can store information within a _Hex. In fact, I am able to hide iotas within the very concept of evaluation. I call this technique $(thing)jump tags/$; some other texts refer to it as \"continuation marks\".$(br2)\
+ There is one notable limitation of $(thing)jump tags/$, however: they can only hold a single iota at a time. Unlike the $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, even lists are too much."
+ },
+ "read/mark/local": "Copy the iota stored in the $(thing)jump tag/$ of the current evaluation and add it to the stack.",
+ "read/mark/iota": "Like $(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)Ewer's Reflection/$, but the iota is read out of the $(thing)jump tag/$ of the top frame in a Jump iota.",
+ "write/mark/local": {
+ "1": "Remove the top iota from the stack, and write it to the $(thing)jump tag/$ of the current evaluation.$(br)\
+ As with $(l:patterns/readwrite#hexcasting:write/entity)$(action)Chronicler's Gambit/$, I cannot write my own Name using this spell.",
+ "2": "I should be careful if using $(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)Ewer's Reflection/$ or $(l:patterns/jump_manipulation#caduceus:write/mark/local)$(action)Ewer's Gambit/$ at the very end of an invocation. The tag that it reads or writes may not be the one I expect.",
+ },
+ },
+ },
+ },
+
+ tooltip: {
+ continuation: {
+ "": "[Jump -> (%s)]",
+ delimited: "[Call -> (%s)]",
+
+ frame: {
+ mark: {
+ inline: "%s*",
+ hover: "Contains: %s",
+ },
+
+ "caduceus:": {
+ prompt: "Prompt",
+ },
+ "hexcasting:": {
+ evaluate: "Evaluate",
+ foreach: "ForEach",
+ end: "FinishEval",
+ },
+ },
+ },
+ },
+ },
+
+ hexcasting: {
+ action: {
+ "caduceus:": {
+ "eval/prompt": "Thetis' Gambit",
+ "eval/control": "Arke's Gambit",
+ "read/mark/local": "Ewer's Reflection",
+ "read/mark/iota": "Ewer's Purification",
+ "write/mark/local": "Ewer's Gambit",
+ },
+ },
+
+ mishap: {
+ no_prompt: "Did not first use Thetis' Gambit",
+ invalid_value: {
+ class: {
+ continuation: "a jump",
+ continuation_mark: "a valid jump tag",
+ },
+ },
+ },
+ },
+}
diff --git a/projects/1.20/assets/caduceus/caduceus/lang/zh_cn.flatten.json5 b/projects/1.20/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
new file mode 100644
index 000000000000..3ff83d51ae2c
--- /dev/null
+++ b/projects/1.20/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
@@ -0,0 +1,118 @@
+{
+ caduceus: {
+ book: {
+ basics: {
+ caduceus_changes: {
+ "": "Caduceus 中的改动",
+ "1": "我注意到某类$(l:patterns/meta#hexcasting:eval/cc)云运行技术/$的表现在近期发生了变化。$(br2)\
+ 跳转 iota 不再无法深入检验了:我现在可以看见组成它们的$(l:patterns/jump_manipulation)许多组件/$,但还没法把各组件分离出来。",
+ "2": "而且,似乎使用跳转 iota 时 $(l:casting/mishaps)Iota 过多/$事故会频繁出现。小心不要陷入沉思了。",
+ },
+ },
+ casting: {
+ continuations: {
+ "": "跳转入门",
+ "1": "如同普通的操作需对$(l:casting/vectors)向量/$有所见地,在将我的新发现运用到极致之前,也应当更深入地了解跳转 iota(又称“续体”/“continuation”)。我收集了些有关本主题的“轻松读物”。",
+ "2": {
+ text: "首先是一篇百科条目,主要介绍“第一类续体”的概念;这一概念由跳转 iota 实现。条目中还讨论了“以当前续体调用”/“call/cc”运算符,它和$(l:patterns/meta#hexcasting:eval/cc)$(action)伊里斯之策略/$大致等价。",
+ link_text: "维基百科",
+ },
+ "3": {
+ text: "然后是一篇博客,主要介绍“定界续体”/“delimited continuation”,还附带了详实的示例,可用$(hex)咒术/$重写以便练习。如果觉得理解$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$和$(l:patterns/delimcc#caduceus:eval/prompt)$(action)阿尔刻之策略/$有困难,可以读读这篇博客。",
+ link_text: "博客",
+ },
+ "4": {
+ text: "最后,如果不担心在某种程度上打破第四面墙,可以阅读这篇概览文档,以了解自然解读我$(hex)咒术/$的具体方式。",
+ link_text: "施法的原理",
+ },
+ },
+ caduceus_mishaps: {
+ "": "Caduceus 事故",
+ "1": "本节记录了操纵跳转 iota 和使用定界跳转时会出现的事故。",
+ no_prompt: {
+ title: "阿尔刻未受限",
+ text: "试图在$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$之外绘制$(l:patterns/delimcc#caduceus:eval/prompt)$(action)阿尔刻之策略/$。",
+ },
+ },
+ },
+ patterns: {
+ delimcc: {
+ "": "定界跳转",
+ "eval/prompt": "运行栈中的图案或图案列表,与$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$完全一致;区别在于,其内部的$(l:patterns/delimcc#caduceus:eval/control)$(action)阿尔刻之策略/$无法获取其外部的 iota。",
+ "eval/control": {
+ "1": "运行栈中的图案或图案列表,与$(l:patterns/meta#hexcasting:eval/cc)$(action)伊里斯之策略/$类似。必须绘制于$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$内部。",
+ "2": "将在图案列表末尾和$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$闭合之间绘制的图案会$(italic)转移/$到调用 iota 中;压入栈中的也不会是跳转 iota,而是此调用 iota。$(br2)\
+ 执行到调用 iota 时,其中捕获的图案会如同对其使用$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$一样施放。如果不去执行调用 iota,即会跳过$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$闭合前剩余的图案。",
+ },
+ },
+ jump_manipulation: {
+ "": "跳转操作",
+ "1": "就和我的$(hex)咒术/$能和$(l:casting/stack)栈/$交互一样,自然在处理我的$(hex)咒术/$时会使用自己的栈(由“帧”组成)。跳转 iota 中包含了该栈在某一时刻的快照,这些快照可由本节中的图案拆解和重构。$(br)\
+ 可惜,虽然调用 iota 和跳转 iota 很相似,但这些图案$(italic)无法/$作用于前者。",
+ add: "移除栈顶跳转 iota,再将其中所有栈帧加到此时栈顶跳转 iota 的底部。",
+ abs: "移除栈顶跳转 iota,再返回其中栈帧数。",
+ splat: "移除栈顶跳转 iota,再为其中各栈帧返回一个仅包含该栈帧本身的跳转 iota。",
+ construct: "移除栈顶跳转 iota,再将其顶部帧加到此时栈顶跳转 iota 的顶部。",
+ deconstruct: "移除栈顶跳转 iota 的顶部帧,再返回一个仅包含该栈帧本身的跳转 iota。",
+ jump_tags: {
+ title: "跳转标签",
+ text: "$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$并不是$(hex)咒术/$中唯一用来存储信息的位置。其实,我可以直接把 iota 藏到运行这一概念中去。我把这种技术叫作$(thing)跳转标签/$,部分其他文献则称其“续体标记”。$(br2)\
+ 不过,$(thing)跳转标签/$有一项局限:它们同一时刻只能持有单个 iota。和$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$不一样的是,它们就连列表都存不下。"
+ },
+ "read/mark/local": "复制当前运行所对应的$(thing)跳转标签/$中存储的 iota,并压入栈顶。",
+ "read/mark/iota": "和$(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)壶罐之精思/$类似,但会从跳转 iota 的顶部帧所对应的$(thing)跳转标签/$中读出。",
+ "write/mark/local": {
+ "1": "移除栈顶 iota,将其写入当前运行所对应的$(thing)跳转标签/$。$(br)\
+ 和$(l:patterns/readwrite#hexcasting:write/entity)$(action)编年史家之策略/$一样,不可向其写入真名。",
+ "2": "在调用结尾使用$(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)壶罐之精思/$或$(l:patterns/jump_manipulation#caduceus:write/mark/local)$(action)壶罐之策略/$时应当小心。它们读取或写入的标签并不一定符合预期。",
+ },
+ },
+ },
+ },
+
+ tooltip: {
+ continuation: {
+ "": "[Jump -> (%s)]",
+ delimited: "[Call -> (%s)]",
+
+ frame: {
+ mark: {
+ inline: "%s*",
+ hover: "包含:%s",
+ },
+
+ "caduceus:": {
+ prompt: "Prompt",
+ },
+ "hexcasting:": {
+ evaluate: "Evaluate",
+ foreach: "ForEach",
+ end: "FinishEval",
+ },
+ },
+ },
+ },
+ },
+
+ hexcasting: {
+ action: {
+ "caduceus:": {
+ "eval/prompt": "忒提斯之策略",
+ "eval/control": "阿尔刻之策略",
+ "read/mark/local": "壶罐之精思",
+ "read/mark/iota": "壶罐之纯化",
+ "write/mark/local": "壶罐之策略",
+ },
+ },
+
+ mishap: {
+ no_prompt: "没有先使用忒提斯之策略",
+ invalid_value: {
+ class: {
+ continuation: "一个跳转",
+ continuation_mark: "一个有效的跳转标签",
+ },
+ },
+ },
+ },
+}
From 9df9435664c75eb64c0f1e72cfa71e1e13fa9461 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 1 Jul 2025 05:18:30 +0800
Subject: [PATCH 45/78] Caduceus path
---
.../assets/caduceus/caduceus/README.md | 1 +
.../caduceus/lang/zh_cn.flatten.json5 | 118 ------------------
.../caduceus/caduceus/packer-policy.json | 6 +
.../1.20/assets/caduceus/caduceus/README.md | 16 +++
4 files changed, 23 insertions(+), 118 deletions(-)
create mode 100644 projects/1.20-fabric/assets/caduceus/caduceus/README.md
delete mode 100644 projects/1.20-fabric/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
create mode 100644 projects/1.20-fabric/assets/caduceus/caduceus/packer-policy.json
create mode 100644 projects/1.20/assets/caduceus/caduceus/README.md
diff --git a/projects/1.20-fabric/assets/caduceus/caduceus/README.md b/projects/1.20-fabric/assets/caduceus/caduceus/README.md
new file mode 100644
index 000000000000..ab77acfca7f1
--- /dev/null
+++ b/projects/1.20-fabric/assets/caduceus/caduceus/README.md
@@ -0,0 +1 @@
+[见主文档](/projects/1.20/assets/caduceus/caduceus)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/caduceus/caduceus/lang/zh_cn.flatten.json5 b/projects/1.20-fabric/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
deleted file mode 100644
index 3ff83d51ae2c..000000000000
--- a/projects/1.20-fabric/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
+++ /dev/null
@@ -1,118 +0,0 @@
-{
- caduceus: {
- book: {
- basics: {
- caduceus_changes: {
- "": "Caduceus 中的改动",
- "1": "我注意到某类$(l:patterns/meta#hexcasting:eval/cc)云运行技术/$的表现在近期发生了变化。$(br2)\
- 跳转 iota 不再无法深入检验了:我现在可以看见组成它们的$(l:patterns/jump_manipulation)许多组件/$,但还没法把各组件分离出来。",
- "2": "而且,似乎使用跳转 iota 时 $(l:casting/mishaps)Iota 过多/$事故会频繁出现。小心不要陷入沉思了。",
- },
- },
- casting: {
- continuations: {
- "": "跳转入门",
- "1": "如同普通的操作需对$(l:casting/vectors)向量/$有所见地,在将我的新发现运用到极致之前,也应当更深入地了解跳转 iota(又称“续体”/“continuation”)。我收集了些有关本主题的“轻松读物”。",
- "2": {
- text: "首先是一篇百科条目,主要介绍“第一类续体”的概念;这一概念由跳转 iota 实现。条目中还讨论了“以当前续体调用”/“call/cc”运算符,它和$(l:patterns/meta#hexcasting:eval/cc)$(action)伊里斯之策略/$大致等价。",
- link_text: "维基百科",
- },
- "3": {
- text: "然后是一篇博客,主要介绍“定界续体”/“delimited continuation”,还附带了详实的示例,可用$(hex)咒术/$重写以便练习。如果觉得理解$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$和$(l:patterns/delimcc#caduceus:eval/prompt)$(action)阿尔刻之策略/$有困难,可以读读这篇博客。",
- link_text: "博客",
- },
- "4": {
- text: "最后,如果不担心在某种程度上打破第四面墙,可以阅读这篇概览文档,以了解自然解读我$(hex)咒术/$的具体方式。",
- link_text: "施法的原理",
- },
- },
- caduceus_mishaps: {
- "": "Caduceus 事故",
- "1": "本节记录了操纵跳转 iota 和使用定界跳转时会出现的事故。",
- no_prompt: {
- title: "阿尔刻未受限",
- text: "试图在$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$之外绘制$(l:patterns/delimcc#caduceus:eval/prompt)$(action)阿尔刻之策略/$。",
- },
- },
- },
- patterns: {
- delimcc: {
- "": "定界跳转",
- "eval/prompt": "运行栈中的图案或图案列表,与$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$完全一致;区别在于,其内部的$(l:patterns/delimcc#caduceus:eval/control)$(action)阿尔刻之策略/$无法获取其外部的 iota。",
- "eval/control": {
- "1": "运行栈中的图案或图案列表,与$(l:patterns/meta#hexcasting:eval/cc)$(action)伊里斯之策略/$类似。必须绘制于$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$内部。",
- "2": "将在图案列表末尾和$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$闭合之间绘制的图案会$(italic)转移/$到调用 iota 中;压入栈中的也不会是跳转 iota,而是此调用 iota。$(br2)\
- 执行到调用 iota 时,其中捕获的图案会如同对其使用$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$一样施放。如果不去执行调用 iota,即会跳过$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$闭合前剩余的图案。",
- },
- },
- jump_manipulation: {
- "": "跳转操作",
- "1": "就和我的$(hex)咒术/$能和$(l:casting/stack)栈/$交互一样,自然在处理我的$(hex)咒术/$时会使用自己的栈(由“帧”组成)。跳转 iota 中包含了该栈在某一时刻的快照,这些快照可由本节中的图案拆解和重构。$(br)\
- 可惜,虽然调用 iota 和跳转 iota 很相似,但这些图案$(italic)无法/$作用于前者。",
- add: "移除栈顶跳转 iota,再将其中所有栈帧加到此时栈顶跳转 iota 的底部。",
- abs: "移除栈顶跳转 iota,再返回其中栈帧数。",
- splat: "移除栈顶跳转 iota,再为其中各栈帧返回一个仅包含该栈帧本身的跳转 iota。",
- construct: "移除栈顶跳转 iota,再将其顶部帧加到此时栈顶跳转 iota 的顶部。",
- deconstruct: "移除栈顶跳转 iota 的顶部帧,再返回一个仅包含该栈帧本身的跳转 iota。",
- jump_tags: {
- title: "跳转标签",
- text: "$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$并不是$(hex)咒术/$中唯一用来存储信息的位置。其实,我可以直接把 iota 藏到运行这一概念中去。我把这种技术叫作$(thing)跳转标签/$,部分其他文献则称其“续体标记”。$(br2)\
- 不过,$(thing)跳转标签/$有一项局限:它们同一时刻只能持有单个 iota。和$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$不一样的是,它们就连列表都存不下。"
- },
- "read/mark/local": "复制当前运行所对应的$(thing)跳转标签/$中存储的 iota,并压入栈顶。",
- "read/mark/iota": "和$(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)壶罐之精思/$类似,但会从跳转 iota 的顶部帧所对应的$(thing)跳转标签/$中读出。",
- "write/mark/local": {
- "1": "移除栈顶 iota,将其写入当前运行所对应的$(thing)跳转标签/$。$(br)\
- 和$(l:patterns/readwrite#hexcasting:write/entity)$(action)编年史家之策略/$一样,不可向其写入真名。",
- "2": "在调用结尾使用$(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)壶罐之精思/$或$(l:patterns/jump_manipulation#caduceus:write/mark/local)$(action)壶罐之策略/$时应当小心。它们读取或写入的标签并不一定符合预期。",
- },
- },
- },
- },
-
- tooltip: {
- continuation: {
- "": "[Jump -> (%s)]",
- delimited: "[Call -> (%s)]",
-
- frame: {
- mark: {
- inline: "%s*",
- hover: "包含:%s",
- },
-
- "caduceus:": {
- prompt: "Prompt",
- },
- "hexcasting:": {
- evaluate: "Evaluate",
- foreach: "ForEach",
- end: "FinishEval",
- },
- },
- },
- },
- },
-
- hexcasting: {
- action: {
- "caduceus:": {
- "eval/prompt": "忒提斯之策略",
- "eval/control": "阿尔刻之策略",
- "read/mark/local": "壶罐之精思",
- "read/mark/iota": "壶罐之纯化",
- "write/mark/local": "壶罐之策略",
- },
- },
-
- mishap: {
- no_prompt: "没有先使用忒提斯之策略",
- invalid_value: {
- class: {
- continuation: "一个跳转",
- continuation_mark: "一个有效的跳转标签",
- },
- },
- },
- },
-}
diff --git a/projects/1.20-fabric/assets/caduceus/caduceus/packer-policy.json b/projects/1.20-fabric/assets/caduceus/caduceus/packer-policy.json
new file mode 100644
index 000000000000..8c3208d49b35
--- /dev/null
+++ b/projects/1.20-fabric/assets/caduceus/caduceus/packer-policy.json
@@ -0,0 +1,6 @@
+[
+ {
+ "type": "indirect",
+ "source": "projects/1.20/assets/caduceus/caduceus"
+ }
+]
\ No newline at end of file
diff --git a/projects/1.20/assets/caduceus/caduceus/README.md b/projects/1.20/assets/caduceus/caduceus/README.md
new file mode 100644
index 000000000000..701de7b97d70
--- /dev/null
+++ b/projects/1.20/assets/caduceus/caduceus/README.md
@@ -0,0 +1,16 @@
+### 总概
+
+```mermaid
+flowchart LR
+ 1.20.1 -->|indirect| 1.20.1-fabric
+```
+
+```
+1.20.1
+ └── 1.20.1-fabric
+```
+
+### 链接区域
+
+- [1.20.1](/projects/1.20/assets/caduceus/caduceus)
+- [1.20.1-fabric](/projects/1.20-fabric/assets/caduceus/caduceus)
\ No newline at end of file
From a882835deb6f23005e14c9224e3851eb11fd05b9 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Thu, 3 Jul 2025 11:40:20 +0800
Subject: [PATCH 46/78] =?UTF-8?q?EnlightendPsionics=20update=EF=BC=9A?=
=?UTF-8?q?=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
---
.../assets/1UNKNOWN/hexpsi/lang/en_us.json | 23 +++++++++++++++++--
.../assets/1UNKNOWN/hexpsi/lang/zh_cn.json | 23 +++++++++++++++++--
2 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
index 0094095d797f..c962563a9af9 100644
--- a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
+++ b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
@@ -3,8 +3,9 @@
"hexpsi.spellpiece.selector_sentinel_pos.desc": "Returns your sentinel's position.",
"hexpsi.spellpiece.selector_sentinel_tier": "Selector: Sentinel Tier",
"hexpsi.spellpiece.selector_sentinel_tier.desc": "Returns your sentinel's tier, with a nonexistent or inaccessible sentinel returning 0.",
+
"hexpsi.spellpiece.selector_helmet_vec": "Selector: Helmet Vector",
- "hexpsi.spellpiece.selector_helmet_vec.desc": "Returns the vector stored in your helmet sensor.",
+ "hexpsi.spellpiece.selector_helmet_vec.desc": "Attempts to read the vector stored in your helmet sensor.",
"hexpsi.spellpiece.selector_read_vec": "Selector: Held Vector",
"hexpsi.spellpiece.selector_read_vec.desc": "Attempts to read a vector from held iota storage.",
@@ -15,6 +16,9 @@
"hexpsi.spellpiece.selector_read_entities": "Selector: Held Entities",
"hexpsi.spellpiece.selector_read_entities.desc": "Attempts to read a list of entities from held iota storage.",
+ "hexpsi.spellpiece.trick_write_helmet_vec": "Trick: Write Helmet Vector",
+ "hexpsi.spellpiece.trick_write_helmet_vec.desc": "Attempts to write a vector to your helmet sensor. Does not trigger the sensor.",
+
"hexpsi.spellpiece.trick_set_sentinel": "Trick: Set Sentinel",
"hexpsi.spellpiece.trick_set_sentinel.desc": "Summons your sentinel at the target position.",
"hexpsi.spellpiece.trick_write_iota_vec": "Trick: Write Vector",
@@ -26,6 +30,11 @@
"hexpsi.spellpiece.trick_write_iota_entities": "Trick: Write Entity List",
"hexpsi.spellpiece.trick_write_iota_entities.desc": "Attempts to write a list of entities to held iota storage.",
+ "hexpsi.spellpiece.fx_suppressor": "Hex Effect Suppressor",
+ "hexpsi.spellpiece.fx_suppressor.desc": "Disables basic sounds/particles from a hex cast via Trinket Bullet.",
+ "hexpsi.spellpiece.media_suppressor": "Media Report Suppressor",
+ "hexpsi.spellpiece.media_suppressor.desc": "Disables the media report after a hex cast via Trinket Bullet.",
+
"psi.spellparam.hexpsi:sentineltier": "Tier",
"psi.spellparam.hexpsi:vec": "Vector",
"psi.spellparam.hexpsi:num": "Number",
@@ -37,11 +46,21 @@
"hexpsi.spellerror.writeable": "ERROR: No writeable item found.",
"hexpsi.spellerror.readable": "ERROR: No readable item found.",
"hexpsi.spellerror.unreadablecontents": "ERROR: Readable item does not contain readable data.",
+ "hexpsi.spellerror.badtier": "ERROR: Sentinel tier must be an integer between [0,2].",
"hexpsi.helmetrequires": "Helmet sensor requires ",
"hexpsi.helmetrequires.vector": "a vector.",
"hexpsi.badhelmet.readable": "Helmet does not contain a readable iota.",
"item.hexpsi.exosuit_vector_focus_sensor": "Exosuit Sensor: Vector Write",
- "item.hexpsi.psi_core_staff": "Psion's Staff"
+ "item.hexpsi.psi_core_staff": "Psion's Staff",
+ "item.hexpsi.spell_bullet_trinket": "Trinket Spell Bullet",
+ "item.hexpsi.spell_bullet_trinket_active": "Programmed Trinket Spell Bullet",
+
+ "this.is.a.comment.1": "Lore-wise, I think the trinket parts of the bullet act kind of like a coprocessor that the CAD dispatches instructions to.",
+
+ "hexpsi.tooltip.bullet_media": "%s: %s/%s (%s)",
+ "hexpsi.tooltip.bullet_name_default": "Spell",
+
+ "hexpsi.event.write_helmet_vector": "§bEvent§7: Write Vector Iota"
}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
index 13810686bafd..5dfdc8b2d426 100644
--- a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
+++ b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
@@ -3,8 +3,9 @@
"hexpsi.spellpiece.selector_sentinel_pos.desc": "返回哨卫的位置",
"hexpsi.spellpiece.selector_sentinel_tier": "选择符:哨卫等级",
"hexpsi.spellpiece.selector_sentinel_tier.desc": "返回哨卫的等级;如果没有哨卫或无法访问哨卫,则返回0",
+
"hexpsi.spellpiece.selector_helmet_vec": "选择符:头盔矢量",
- "hexpsi.spellpiece.selector_helmet_vec.desc": "返回头盔传感器中的矢量",
+ "hexpsi.spellpiece.selector_helmet_vec.desc": "试图从头盔传感器中读取一个矢量",
"hexpsi.spellpiece.selector_read_vec": "选择符:手持矢量",
"hexpsi.spellpiece.selector_read_vec.desc": "试图从手持的iota存储空间中读取一个矢量",
@@ -15,6 +16,9 @@
"hexpsi.spellpiece.selector_read_entities": "选择符:手持实体列表",
"hexpsi.spellpiece.selector_read_entities.desc": "试图从手持的iota存储空间中读取一个实体列表",
+ "hexpsi.spellpiece.trick_write_helmet_vec": "启动式:写入头盔矢量",
+ "hexpsi.spellpiece.trick_write_helmet_vec.desc": "试图向头盔传感器写入一个向量;不会触发传感器",
+
"hexpsi.spellpiece.trick_set_sentinel": "启动符:设置哨卫",
"hexpsi.spellpiece.trick_set_sentinel.desc": "在指定位置召唤哨卫",
"hexpsi.spellpiece.trick_write_iota_vec": "启动符:写出矢量",
@@ -26,6 +30,11 @@
"hexpsi.spellpiece.trick_write_iota_entities": "启动符:写出实体列表",
"hexpsi.spellpiece.trick_write_iota_entities.desc": "试图向手持的iota存储空间写出一个实体列表",
+ "hexpsi.spellpiece.fx_suppressor": "咒术效果消除符",
+ "hexpsi.spellpiece.fx_suppressor.desc": "禁用缀品型术式子弹施放咒术的基础声音和粒子",
+ "hexpsi.spellpiece.media_suppressor": "媒质报告消除符",
+ "hexpsi.spellpiece.media_suppressor.desc": "禁用缀品子弹施放咒术后的媒质报告",
+
"psi.spellparam.hexpsi:sentineltier": "等级",
"psi.spellparam.hexpsi:vec": "矢量",
"psi.spellparam.hexpsi:num": "数值",
@@ -37,11 +46,21 @@
"hexpsi.spellerror.writeable": "错误:未找到可写出的物品。",
"hexpsi.spellerror.readable": "错误:未找到可读取的物品。",
"hexpsi.spellerror.unreadablecontents": "错误:可读物品中无可读取的数据。",
+ "hexpsi.spellerror.badtier": "错误:哨卫等级必须为[0,2]中的整数。",
"hexpsi.helmetrequires": "头盔传感器需要",
"hexpsi.helmetrequires.vector": "一个矢量。",
"hexpsi.badhelmet.readable": "头盔内无可读取的iota。",
"item.hexpsi.exosuit_vector_focus_sensor": "装甲传感器:写入矢量",
- "item.hexpsi.psi_core_staff": "Psi子法杖"
+ "item.hexpsi.psi_core_staff": "Psi子法杖",
+ "item.hexpsi.spell_bullet_trinket": "缀品型术式子弹",
+ "item.hexpsi.spell_bullet_trinket_active": "已编程的缀品型术式子弹",
+
+ "this.is.a.comment.1": "Lore-wise, I think the trinket parts of the bullet act kind of like a coprocessor that the CAD dispatches instructions to.",
+
+ "hexpsi.tooltip.bullet_media": "%s:%s/%s(%s)",
+ "hexpsi.tooltip.bullet_name_default": "法术",
+
+ "hexpsi.event.write_helmet_vector": "§b事件§7:写入向量iota"
}
\ No newline at end of file
From d63d20bf86b9303e24c9f017551bd89f50668fd8 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 6 Jul 2025 01:07:01 +0800
Subject: [PATCH 47/78] Hierophantics create
---
.../hierophantics/lang/en_us.json | 95 +++++++++++++++++++
.../hierophantics/lang/zh_cn.json | 95 +++++++++++++++++++
2 files changed, 190 insertions(+)
create mode 100644 projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
new file mode 100644
index 000000000000..ee709747c898
--- /dev/null
+++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
@@ -0,0 +1,95 @@
+{
+ "subtitles.hierophantics.hieromind_cast": "Embedded mind casts",
+
+ "block.hierophantics.flay_bed": "Imbuement Bed",
+
+ "hierophantics.tooltip.mind_reference": "Embedded Mind \"%s\"",
+ "hierophantics.tooltip.trigger": "Trigger: When %s",
+ "hierophantics.tooltip.mishap_thrower": "Hierophantics Mishap Thrower",
+
+ "hierophantics.tooltip.trigger_type.damage": "damaged",
+ "hierophantics.tooltip.trigger_type.damage_typed": "damaged by '%s'",
+ "hierophantics.tooltip.trigger_type.health": "health drops below %d",
+ "hierophantics.tooltip.trigger_type.breath": "breath drops below %d",
+ "hierophantics.tooltip.trigger_type.hunger": "hunger drops below %d",
+ "hierophantics.tooltip.trigger_type.velocity": "velocity greater than %d",
+ "hierophantics.tooltip.trigger_type.fall": "falling more than %d blocks",
+ "hierophantics.tooltip.trigger_type.drop": "item dropped",
+ "hierophantics.tooltip.trigger_type.attack": "entity struck",
+ "hierophantics.tooltip.trigger_type.break": "block broken",
+ "hierophantics.tooltip.trigger_type.jump": "jumping",
+ "hierophantics.tooltip.trigger_type.teleport": "teleporting",
+
+ "hexcasting.mishap.hierophantics:mind_freed": "Tried to interact with an embedded mind that doesn't exist",
+ "hexcasting.mishap.hierophantics:minds_disabled": "Your embedded minds are too unstable to %s!",
+ "hexcasting.mishap.hierophantics:not_your_mind": "Can't modify an embedded mind that isn't yours",
+ "hexcasting.mishap.invalid_value.class.mind_reference": "an embedded mind",
+ "hexcasting.mishap.invalid_value.class.trigger": "a trigger",
+
+ "hexcasting.action.hierophantics:get_minds": "Hierophant's Reflection",
+ "hexcasting.action.hierophantics:reenable_minds": "Stabilize Minds",
+ "hexcasting.action.hierophantics:get_mind_hex": "Payload Purification",
+ "hexcasting.action.hierophantics:set_mind_hex": "Payload Distillation",
+ "hexcasting.action.hierophantics:get_mind_trigger": "Trigger Purification",
+ "hexcasting.action.hierophantics:set_mind_trigger": "Trigger Distillation",
+ "hexcasting.action.hierophantics:free_mind": "Free Mind",
+ "hexcasting.action.hierophantics:make_damage_trigger": "Trigger Reflection: Damage",
+ "hexcasting.action.hierophantics:make_damage_type_trigger": "Trigger Reflection: Damage Type",
+ "hexcasting.action.hierophantics:make_health_trigger": "Trigger Purification: Health",
+ "hexcasting.action.hierophantics:make_breath_trigger": "Trigger Purification: Breath",
+ "hexcasting.action.hierophantics:make_hunger_trigger": "Trigger Purification: Hunger",
+ "hexcasting.action.hierophantics:make_velocity_trigger": "Trigger Purification: Velocity",
+ "hexcasting.action.hierophantics:make_fall_trigger": "Trigger Purification: Fall",
+ "hexcasting.action.hierophantics:make_drop_trigger": "Trigger Reflection: Drop",
+ "hexcasting.action.hierophantics:make_attack_trigger": "Trigger Reflection: Attack",
+ "hexcasting.action.hierophantics:make_break_trigger": "Trigger Reflection: Break",
+ "hexcasting.action.hierophantics:make_jump_trigger": "Trigger Reflection: Jump",
+ "hexcasting.action.hierophantics:make_teleport_trigger": "Trigger Reflection: Teleport",
+
+ "hexcasting.action.book.hierophantics:make_damage_trigger": "Trigger Rfln: Damage",
+ "hexcasting.action.book.hierophantics:make_damage_type_trigger": "Trigger Rfln: DmgType",
+ "hexcasting.action.book.hierophantics:make_health_trigger": "Trigger Prfn: Health",
+ "hexcasting.action.book.hierophantics:make_breath_trigger": "Trigger Prfn: Breath",
+ "hexcasting.action.book.hierophantics:make_hunger_trigger": "Trigger Prfn: Hunger",
+ "hexcasting.action.book.hierophantics:make_velocity_trigger": "Trigger Prfn: Velocity",
+ "hexcasting.action.book.hierophantics:make_fall_trigger": "Trigger Prfn: Fall",
+ "hexcasting.action.book.hierophantics:make_drop_trigger": "Trigger Rfln: Drop",
+ "hexcasting.action.book.hierophantics:make_attack_trigger": "Trigger Rfln: Attack",
+ "hexcasting.action.book.hierophantics:make_break_trigger": "Trigger Rfln: Break",
+ "hexcasting.action.book.hierophantics:make_jump_trigger": "Trigger Rfln: Jump",
+ "hexcasting.action.book.hierophantics:make_teleport_trigger": "Trigger Rfln: Teleport",
+
+ "hierophantics.page.hierophantics.title": "Hierophantics",
+ "hierophantics.page.hierophantics.0": "If _media can be seen as threads, if minds can be seen as tangles of such threads, then what is to stop me from weaving them together?$(br2)Thus far, when extracting the minds of villagers, I have inserted them only into artificial subtrates, but I can do better. I can $(o)become$() better.",
+ "hierophantics.page.hierophantics.1": "By weaving additional minds into my own, I will gain the ability to cast _Hexes without requiring any conscious thought! I can simply provide a _Hex, and a condition under which to cast it, and the embedded mind will handle the rest on its own. With all the bothers of everyday life automatically handled, I can finally dedicate myself to whatever I... whatever we...$(br2)...what am I?",
+ "hierophantics.page.hierophantics.2": "Focus, focus. There is a snag in the plan. I cannot modify the structure of my own mind midway through a _Hex without running the risk of unraveling it entirely – and I am not yet $(o)that$() insane.$(br2)Thus, I require some artifice. I can create a bed of sorts which, when provided with an extracted mind via the usual process, can weave it into my psyche without requiring any cognition on my part.",
+ "hierophantics.page.hierophantics.craft": "I can then use some $(l:greatwork/impetus)$(item)external device$() to perform the extraction itself, transferring the mind into the bed while I simply lay there until the process – the $(o)integration$() – is complete.",
+ "hierophantics.page.hierophantics.flay": "The process requires a master-level villager, which can be transferred into either of the two blocks that make up the $(item)Imbuement Bed$(). However, if I am not in the bed at the moment the spell is cast, the mind will be wasted.",
+
+ "hierophantics.page.mind_handling.title.0": "Hierophantic Patterns",
+ "hierophantics.page.mind_handling.0": "Once I $(l:greatwork/hierophantics)embed a mind$() into myself, I will need to instruct it as to its purpose. This is accomplished using mind reference iotas, which work much like entity iotas but for embedded minds. As such, I can freely create and destroy these iotas without affecting the existence of the minds themselves.",
+ "hierophantics.page.mind_handling.title.1": "A Note on Privacy",
+ "hierophantics.page.mind_handling.1": "Since mind references can be written to a storage medium, it's possible that another player may gain access to iotas refencing my own minds. Such an individual will not be able to modify my minds (the results will be similar to attempting to save my True Name) but they $(o)will$() be able to view the trigger and _Hex associated with each mind.",
+ "hierophantics.page.get_minds.summary": "Pushes a list of iotas representing all my embedded minds.",
+ "hierophantics.page.reenable_minds.summary": "When I die, my embedded minds become unstable and cease to function. This spell restores them to working order. Costs one $(l:items/amethyst)$(item)Amethyst Dust$() per mind restored.",
+ "hierophantics.page.get_mind_hex.summary": "Pushes the _Hex stored in the provided mind, or $(l:casting/influences)$(thing)Null$() if there isn't one.",
+ "hierophantics.page.set_mind_hex.summary": "Stores the provided _Hex into the mind. If there is already a stored _Hex, it will be overwritten. Costs one $(l:items/amethyst)$(item)Charged Amethyst$().",
+ "hierophantics.page.get_mind_trigger.summary": "Pushes the trigger stored in the provided mind, or $(l:casting/influences)$(thing)Null$() if there isn't one.",
+ "hierophantics.page.set_mind_trigger.summary": "Stores the provided trigger into the mind. If the mind already has a trigger, it will be overwritten. Costs one $(l:items/amethyst)$(item)Amethyst Shard$().",
+ "hierophantics.page.free_mind.summary": "Permanently removes an embedded mind from my own consciousness.$(br2)I wonder what happens to them, when they go?",
+
+ "hierophantics.page.triggers.title": "Hierophantic Triggers",
+ "hierophantics.page.triggers.0": "My $(l:greatwork/hierophantics)embedded minds$() are independent to a point, but they cannot truly think for themselves. Thus, in order to begin casting, they require a trigger of some kind. The patterns listed here are used to create these triggers, based on a variety of common occurances.",
+ "hierophantics.page.make_damage_trigger.summary": "Creates a trigger that activates whenever I take damage. To prevent a lethal chain-reaction, does not activate if the damage was caused by overcasting.",
+ "hierophantics.page.make_damage_type_trigger.summary": "Creates a trigger that activates whenever I take damage, but only if the damage was of a specific type. The trigger will be attunned to whatever type of damage I last received.",
+ "hierophantics.page.make_health_trigger.summary": "Creates a trigger that activates when my health drops below the specified value. A full, standard healthbar has a value of 20.",
+ "hierophantics.page.make_breath_trigger.summary": "Creates a trigger that activates when my breath drops below the specified value. A full bar of bubbles has a value of 10.",
+ "hierophantics.page.make_hunger_trigger.summary": "Creates a trigger that activates when my hunger drops below the specified value. A full hunger bar has a value of 20.",
+ "hierophantics.page.make_velocity_trigger.summary": "Creates a trigger that activates when my velocity (measured in blocks per tick) exceeds the specified value.",
+ "hierophantics.page.make_fall_trigger.summary": "Creates a trigger that activates when I fall further than the specified number of blocks.",
+ "hierophantics.page.make_drop_trigger.summary": "Creates a trigger that activates whenever I drop an item. This does $(l)not$() include involuntary dropping, such as on death or when using $(l:patterns/great_spells/teleport)Greater Teleport$().",
+ "hierophantics.page.make_attack_trigger.summary": "Creates a trigger that activates whenever I strike another entity.",
+ "hierophantics.page.make_break_trigger.summary": "Creates a trigger that activates whenever I break a block.",
+ "hierophantics.page.make_jump_trigger.summary": "Creates a trigger that activates whenever I jump.",
+ "hierophantics.page.make_teleport_trigger.summary": "Creates a trigger that activates whenever I teleport. For reasons I cannot discern, this will not detect teleports shorter than 4 blocks in length."
+}
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
new file mode 100644
index 000000000000..0bd26af2cf0d
--- /dev/null
+++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
@@ -0,0 +1,95 @@
+{
+ "subtitles.hierophantics.hieromind_cast": "内嵌意识:施法",
+
+ "block.hierophantics.flay_bed": "融念床",
+
+ "hierophantics.tooltip.mind_reference": "内嵌意识“%s”",
+ "hierophantics.tooltip.trigger": "触发条件:%s时",
+ "hierophantics.tooltip.mishap_thrower": "灵显学事故抛出器",
+
+ "hierophantics.tooltip.trigger_type.damage": "受伤",
+ "hierophantics.tooltip.trigger_type.damage_typed": "因“%s”受伤",
+ "hierophantics.tooltip.trigger_type.health": "生命值降至%d以下",
+ "hierophantics.tooltip.trigger_type.breath": "氧气值降至%d以下",
+ "hierophantics.tooltip.trigger_type.hunger": "饥饿值降至%d以下",
+ "hierophantics.tooltip.trigger_type.velocity": "速度超过%d",
+ "hierophantics.tooltip.trigger_type.fall": "摔落超过%d格",
+ "hierophantics.tooltip.trigger_type.drop": "丢下物品",
+ "hierophantics.tooltip.trigger_type.attack": "击中实体",
+ "hierophantics.tooltip.trigger_type.break": "破坏方块",
+ "hierophantics.tooltip.trigger_type.jump": "跳跃",
+ "hierophantics.tooltip.trigger_type.teleport": "传送",
+
+ "hexcasting.mishap.hierophantics:mind_freed": "试图与不存在的内嵌意识交互",
+ "hexcasting.mishap.hierophantics:minds_disabled": "你的内嵌意识太过不稳定,无法%s!",
+ "hexcasting.mishap.hierophantics:not_your_mind": "无法修改不属于你的内嵌意识",
+ "hexcasting.mishap.invalid_value.class.mind_reference": "一个内嵌意识",
+ "hexcasting.mishap.invalid_value.class.trigger": "一个触发条件",
+
+ "hexcasting.action.hierophantics:get_minds": "灵显师之精思",
+ "hexcasting.action.hierophantics:reenable_minds": "稳定意识",
+ "hexcasting.action.hierophantics:get_mind_hex": "载术之纯化",
+ "hexcasting.action.hierophantics:set_mind_hex": "载术之馏化",
+ "hexcasting.action.hierophantics:get_mind_trigger": "触发之纯化",
+ "hexcasting.action.hierophantics:set_mind_trigger": "触发之馏化",
+ "hexcasting.action.hierophantics:free_mind": "释放意识",
+ "hexcasting.action.hierophantics:make_damage_trigger": "触发之精思:伤害",
+ "hexcasting.action.hierophantics:make_damage_type_trigger": "触发之精思:伤害类型",
+ "hexcasting.action.hierophantics:make_health_trigger": "触发之纯化:生命值",
+ "hexcasting.action.hierophantics:make_breath_trigger": "触发之纯化:气息",
+ "hexcasting.action.hierophantics:make_hunger_trigger": "触发之纯化:饥饿值",
+ "hexcasting.action.hierophantics:make_velocity_trigger": "触发之纯化:速度",
+ "hexcasting.action.hierophantics:make_fall_trigger": "触发之纯化:摔落",
+ "hexcasting.action.hierophantics:make_drop_trigger": "触发之精思:丢弃",
+ "hexcasting.action.hierophantics:make_attack_trigger": "触发之精思:攻击",
+ "hexcasting.action.hierophantics:make_break_trigger": "触发之精思:破坏",
+ "hexcasting.action.hierophantics:make_jump_trigger": "触发之精思:跳跃",
+ "hexcasting.action.hierophantics:make_teleport_trigger": "触发之精思:传送",
+
+ "hexcasting.action.book.hierophantics:make_damage_trigger": "触发之精思:伤害",
+ "hexcasting.action.book.hierophantics:make_damage_type_trigger": "触发之精思:伤害类型",
+ "hexcasting.action.book.hierophantics:make_health_trigger": "触发之纯化:生命值",
+ "hexcasting.action.book.hierophantics:make_breath_trigger": "触发之纯化:气息",
+ "hexcasting.action.book.hierophantics:make_hunger_trigger": "触发之纯化:饥饿值",
+ "hexcasting.action.book.hierophantics:make_velocity_trigger": "触发之纯化:速度",
+ "hexcasting.action.book.hierophantics:make_fall_trigger": "触发之纯化:摔落",
+ "hexcasting.action.book.hierophantics:make_drop_trigger": "触发之精思:丢弃",
+ "hexcasting.action.book.hierophantics:make_attack_trigger": "触发之精思:攻击",
+ "hexcasting.action.book.hierophantics:make_break_trigger": "触发之精思:破坏",
+ "hexcasting.action.book.hierophantics:make_jump_trigger": "触发之精思:跳跃",
+ "hexcasting.action.book.hierophantics:make_teleport_trigger": "触发之精思:传送",
+
+ "hierophantics.page.hierophantics.title": "灵显学",
+ "hierophantics.page.hierophantics.0": "如果$(media)媒质$()可以看成是丝线,那么意识就是这些丝线的纠缠体;既然如此,把意识编织在一起又有何不可?$(br2)到目前为止,我在剥离出村民的意识后只会将它们送入人工制造的基质,但这并非没有改进之处。$(o)我$()并非没有改进之处。",
+ "hierophantics.page.hierophantics.1": "将其他意识编织到我的意识里,就可省去施放$(hex)咒术$()时需要的注意力了!给内嵌意识提供一段$(hex)咒术$(),再指定施放的条件,剩下的全部交给内嵌意识处理。把平常要干的杂活自动化之后,就终于可以投身于我想要做……我们想要……$(br2)……我是什么?",
+ "hierophantics.page.hierophantics.2": "专心、集中精神。这项规划中有一个纰漏。倘若要在运行$(hex)咒术$()的中途修改我意识的结构,就无法消除意识完全消散的风险——我还没疯到$(o)这种地步$()。$(br2)因此,我需要一台仪器。我可以制造某种床;向这张床提供剥离得到的意识时,即可将它编织入我的精神,而且不需要我维持注意力。",
+ "hierophantics.page.hierophantics.craft": "然后,使用某些$(l:greatwork/impetus)$(item)外部设备$()来剥离和将意识送至这张床,我只需要躺在那里,等着工序——$(o)融合$()——完成就行。",
+ "hierophantics.page.hierophantics.flay": "这一流程需要一名大师级村民,意识的目的地可以是$(item)融念床$()两格中的任意一格。但是,假如法术施放时我没有躺在床上,送来的意识即会消散。",
+
+ "hierophantics.page.mind_handling.title.0": "灵显学图案",
+ "hierophantics.page.mind_handling.0": "向自身$(l:greatwork/hierophantics)嵌入意识$()后,还需对其发出相应指示。这一过程可由代表意识的 iota 达成;它和实体 iota 很类似,只不过是给内嵌意识用的。由此,我便可以随意创建和销毁这些 iota,而不会影响意识本身存在与否了。",
+ "hierophantics.page.mind_handling.title.1": "有关隐私的注意事项",
+ "hierophantics.page.mind_handling.1": "因为代表意识的 iota 可以写入存储介质,其他玩家即有可能获得到代表我的意识的 iota。他们无法修改我的意识(招致的效果和试图保存我的真名类似),但他们$(o)可以$()查看各个意识的触发条件和其中$(hex)咒术$()。",
+ "hierophantics.page.get_minds.summary": "将代表我的内嵌意识的各 iota 组为列表返回。",
+ "hierophantics.page.reenable_minds.summary": "我死亡时,各个内嵌意识会失稳并停止运作。此法术可让它们回到工作状态。每恢复 1 个意识消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hierophantics.page.get_mind_hex.summary": "返回所给意识中的$(hex)咒术$(),若无则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hierophantics.page.set_mind_hex.summary": "将所给$(hex)咒术$()存入意识。如果其中已经存在$(hex)咒术$(),则进行覆盖。消耗 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+ "hierophantics.page.get_mind_trigger.summary": "返回所给意识的触发条件,若无则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hierophantics.page.set_mind_trigger.summary": "将所给触发条件存入意识。如果其中已经存在触发条件,则进行覆盖。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。",
+ "hierophantics.page.free_mind.summary": "从我的意识里永久性移除一个内嵌意识。$(br2)它们离开时,究竟会发生什么?",
+
+ "hierophantics.page.triggers.title": "灵显学触发条件",
+ "hierophantics.page.triggers.0": "我的$(l:greatwork/hierophantics)内嵌意识$()相对独立,但还不具备真正的思考能力。因此,为让其开始施法,需要设置一定的触发条件。此处列出的图案可根据多种常见事件创建触发条件。",
+ "hierophantics.page.make_damage_trigger.summary": "创建一个在我受到伤害时激活的触发条件。为避免产生致命的链式反应,由过度施法造成的伤害不会激活此类触发条件。",
+ "hierophantics.page.make_damage_type_trigger.summary": "创建一个在我受到伤害时激活的触发条件,且伤害必须为特定类型。使用我最后一次所受伤害的类型。",
+ "hierophantics.page.make_health_trigger.summary": "创建一个在我生命值降至给定值以下时激活的触发条件。完整的标准生命条为 20。",
+ "hierophantics.page.make_breath_trigger.summary": "创建一个在我氧气值降至给定值以下时激活的触发条件。完整的氧气条为 10。",
+ "hierophantics.page.make_hunger_trigger.summary": "创建一个在我饥饿值降至给定值以下时激活的触发条件。完整的饥饿条为 20。",
+ "hierophantics.page.make_velocity_trigger.summary": "创建一个在我速度(以格每刻计)超过给定值时激活的触发条件。",
+ "hierophantics.page.make_fall_trigger.summary": "创建一个在我摔落超过给定距离(以格计)时激活的触发条件。",
+ "hierophantics.page.make_drop_trigger.summary": "创建一个在我丢下物品时激活的触发条件。触发条件中$(l)不$()包括非主动的丢弃,如死亡或使用$(l:patterns/great_spells/teleport)卓越传送$()导致的物品散落。",
+ "hierophantics.page.make_attack_trigger.summary": "创建一个在我击中其他实体时激活的触发条件。",
+ "hierophantics.page.make_break_trigger.summary": "创建一个在我破坏方块时激活的触发条件。",
+ "hierophantics.page.make_jump_trigger.summary": "创建一个在我跳跃时激活的触发条件。",
+ "hierophantics.page.make_teleport_trigger.summary": "创建一个在我传送时激活的触发条件。因为我无法指明的原因,此类触发条件检测不到距离在 4 格以下的传送。"
+}
From 5685bcf623bafeb28095f9d2562760c4f27159c3 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 6 Jul 2025 14:07:33 +0800
Subject: [PATCH 48/78] =?UTF-8?q?MovesTheMind=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
---
.../movesthemind/lang/en_us.json | 28 +++++++++++--------
.../movesthemind/lang/zh_cn.json | 28 +++++++++++--------
2 files changed, 32 insertions(+), 24 deletions(-)
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
index 3d293aeba3d4..5c2686463820 100644
--- 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
@@ -19,21 +19,25 @@
"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.",
- "movesthemind.page.spells.move/stopall" : "An important signal, I'd argue even more so than the process of bringing about the creature. Costs a single amethyst dust.",
+ "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 amethyst dust.",
+ "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. Note the one amethyst dust cost.",
- "movesthemind.page.spells.move/look" : "Instructs the creature to look in a direction. The vector can be of any length.",
- "movesthemind.page.spells.move/jump" : "Simply instructs the creature to hop. As is trending, the cost is one amethyst dust.",
- "movesthemind.page.spells.move/sneak" : "Takes a boolean and tells the creature to start or stop sneaking. One amethyst dust.",
- "movesthemind.page.spells.move/sprint" : "As previous, but with sprinting. When stationary, produces sprinting particles. One amethyst dust.",
+ "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.",
+ "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.",
- "movesthemind.page.spells.move/swap_hands" : "Instructs the creature to hand its mainhand item into its offhand, and vice versa.",
- "movesthemind.page.spells.move/drop" : "Instructs the creature to drop the item or stack of items it holds in its main hand."
+ "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
index 9e7836a6d2a5..4105e92c265f 100644
--- 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
@@ -19,21 +19,25 @@
"movesthemind.entry.spells": "地毯玩家操作",
- "movesthemind.page.spells.0": "它们长得很像我,但行为举止截然不同。这种——应该可以这么说——假人,很明显不是人。然而,我居然能和它们交流;就好像它们其他所有接收信息的窗都被封死,仅留下启动信号对应的大门。$(br2)所以,我只会给它们启动信号。后页会将这些信号称作“指示”。",
- "movesthemind.page.spells.move/stopall": "一个重要的信号,我认为甚至比召唤它们的过程还重要。消耗 1 个紫水晶粉。",
+ "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.destroy": "驱除假人,让其消失,直至我再次召唤。消耗 1 个紫水晶碎片。",
"movesthemind.page.spells.move/walk": "指示假人朝其面向的方向行走。传入 1 为向前,-1 为向后。有意思的是,传入 0 会让它停下,就好像让它暂停了一样。",
- "movesthemind.page.spells.move/strafe": "和前页图案一样,区别在于朝左右移动。传入 1 为向左,-1 为向右。消耗 1 个紫水晶粉。",
- "movesthemind.page.spells.move/look": "指示假人看向某个方向。向量长度随意。",
- "movesthemind.page.spells.move/jump": "指示假人跳跃。和往常一样,消耗 1 个紫水晶粉。",
- "movesthemind.page.spells.move/sneak": "接受一个布尔值,指示假人开始或结束潜行。消耗 1 个紫水晶粉。",
- "movesthemind.page.spells.move/sprint": "和前页图案一样,区别在于切换疾跑与否。站立不动时会产生疾跑粒子。消耗 1 个紫水晶粉。",
+ "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 秒计。",
+ "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": "指示假人丢下其主手持有的物品或物品组。"
+ "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
From a1fb59f9d0878591081ee33e75072a55ac955424 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 8 Jul 2025 15:33:21 +0800
Subject: [PATCH 49/78] =?UTF-8?q?SlateWork=20create=20Hexical=20Hexpose=20?=
=?UTF-8?q?Scryglass=20SpecialEfhexs=20update=EF=BC=9A=E5=AE=98=E5=BA=93?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/1UNKNOWN/efhexs/lang/en_us.json | 5 +-
.../assets/1UNKNOWN/efhexs/lang/zh_cn.json | 7 +-
.../assets/1UNKNOWN/hexpose/lang/en_us.json | 55 +++++--
.../assets/1UNKNOWN/hexpose/lang/zh_cn.json | 55 +++++--
.../assets/1UNKNOWN/scryglass/lang/en_us.json | 11 +-
.../assets/1UNKNOWN/scryglass/lang/zh_cn.json | 11 +-
.../1UNKNOWN/slate_work/lang/en_us.json | 19 +++
.../1UNKNOWN/slate_work/lang/zh_cn.json | 19 +++
.../modrinth-hexical/hexical/lang/en_us.json | 128 ++++++++--------
.../modrinth-hexical/hexical/lang/zh_cn.json | 138 +++++++++---------
10 files changed, 296 insertions(+), 152 deletions(-)
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
index 0c94c6dbebcf..56d1d9f2b4c4 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
@@ -4,9 +4,12 @@
"hexcasting.mishap.invalid_value.sound_id": "an identifier of a sound type",
"hexcasting.mishap.invalid_value.simple_particle_id": "an identifier of a simple particle type",
+ "efhexs.microphone.active": "Recording particles and sound",
+ "efhexs.microphone.inactive": "Particles and sounds saved",
+
"efhexs.page.microphone.title": "Microphone",
"item.efhexs.microphone": "Microphone",
- "efhexs.page.microphone.0": "The $(item)Microphone$() is an all-in-one tool for sounds and particles! I simply use it near a source of sounds and particles, and when I release, the particles and sounds are streamed for my _Hexes to analyze and use.",
+ "efhexs.page.microphone.0": "The $(item)Microphone$() is an all-in-one tool for sounds and particles! I simply turn it on near a source of sounds and particles, and when I turn it off, the particles and sounds are streamed for my _Hexes to analyze and use.",
"efhexs.page.microphone.1": "I need to get up close and personally experience particles or sound to utilize it in my _Hexes.$(br2)$(o)Check, check, is this thing on?$()",
"efhexs.page.targetted.title": "Haunting",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
index 7f988ac430ba..16baf932d85f 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
@@ -4,10 +4,13 @@
"hexcasting.mishap.invalid_value.sound_id": "一个声音类型标识",
"hexcasting.mishap.invalid_value.simple_particle_id": "一个简单粒子类型的标识",
+ "efhexs.microphone.active": "正在录制粒子和声音",
+ "efhexs.microphone.inactive": "粒子和声音已保存",
+
"efhexs.page.microphone.title": "麦克风",
"item.efhexs.microphone": "麦克风",
- "efhexs.page.microphone.0": "$(item)麦克风$()是能捕获声音和粒子事件的多用途工具!在声源和粒子源旁使用,当松开使用键时,捕获到的粒子和声音就会进入$(hex)咒术$()以供分析和使用。",
- "efhexs.page.microphone.1": "需要本人靠近并亲身听见声音或看见粒子才能捕获供$(hex)咒术$()所用。$(br2)$(o)Check、check,麦开了吗?$()",
+ "efhexs.page.microphone.0": "$(item)麦克风$()是能捕获声音和粒子事件的多用途工具!在声源和粒子源旁打开;当关闭时,捕获到的粒子和声音就会进入$(hex)咒术$()以供分析和使用。",
+ "efhexs.page.microphone.1": "需要本人靠近并亲身听见声音或看见粒子才能捕获供$(hex)咒术$()所用。$(br2)$(o)喂、喂喂,麦开了吗?$()",
"efhexs.page.targetted.title": "萦音",
"efhexs.page.targetted.0": "我发现了制造$(l:patterns/spells/particles)粒子$()和$(l:patterns/spells/sounds)声音$()的法术,但刚开始时它们造出的东西所有人都能看见听见。要是我只给自己制造效果,或是只让效果呈现给某个玩家,会怎么样呢?这就是这个图案的用武之地了。这条法术之后,便只有我指定的玩家能看见我制造的粒子和听见我制造的声音。",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
index 39109b48cb34..ecf8def6eeae 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
@@ -1,6 +1,11 @@
{
- "hexcasting.mishap.invalid_value.cat": "a cat",
"hexcasting.mishap.invalid_value.class.identifier": "an identifier",
+ "hexcasting.mishap.invalid_value.class.item_stack": "an item stack",
+ "hexcasting.mishap.invalid_value.class.text": "a text iota",
+ "hexcasting.mishap.invalid_value.cat": "a cat",
+ "hexcasting.mishap.invalid_value.creeper": "a creeper",
+ "hexcasting.mishap.invalid_value.painting": "a painting",
+ "hexcasting.mishap.invalid_value.item_frame": "an item frame",
"hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
"hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
"hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
@@ -11,7 +16,6 @@
"hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
"hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
"hexcasting.mishap.invalid_value.media_holding": "a media holding item or entity",
- "hexcasting.mishap.invalid_value.painting": "a painting",
"hexcasting.mishap.invalid_value.potion_holding": "a potion holding item or entity",
"hexcasting.mishap.invalid_value.tamable": "a tameable entity",
@@ -39,10 +43,35 @@
"hexcasting.action.hexpose:is_brainswept": "Sentience Purification",
"hexpose.page.is_brainswept.summary": "Pushes whether an entity has been \"magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
- "hexpose.page.perlin.title": "Quasirandomness",
- "hexpose.page.perlin.0": "I have not found a way to harness it yet, but I notice ambient _media is not distributed evenly throughout reality. I can measure its concentration at a point in space and time to get a random number between 0 and 1, corresponding to media levels at that point in space and time. Points close together in space and time tend to have similar values.",
- "hexcasting.action.hexpose:perlin": "Perlin Distillation",
- "hexpose.page.perlin.summary": "Measures the concentration of ambient _media at a point in space and time, normalized between 0 and 1.",
+ "hexpose.page.text.title": "Text Iota",
+ "hexpose.page.text.0": "$(thing)Text iotas$() are a way to represent textual information itself in an iota. Not only does it encode all the information required for reading, it also contains all the information about styles such as $(#ff0000)coloring$() and $(o)italics$().$(br2)They can also encode an incredible amount of information in one iota.",
+ "hexcasting.action.hexpose:create_text": "Reading Purification",
+ "hexpose.page.create_text.summary": "Takes an iota and returns a text iota representing it. If taking a text iota, strips all the styles of it.",
+ "hexpose.page.add_text.summary": "Pushes a text iota of the first followed immediately by the second.",
+ "hexpose.page.abs_text.summary": "Pushes the length of the text iota.",
+ "hexcasting.action.hexpose:split_text": "Glyph Purification",
+ "hexpose.page.split_text.summary": "Splits a text iota into a list of individual glyphs.",
+ "hexcasting.action.hexpose:combine_text": "Collage Purification",
+ "hexpose.page.combine_text.summary": "Transforms all the elements of a list into text (or keeps them if they were) and pastes it all together.",
+ "hexpose.page.index_text.summary": "Pushes the nth glyph in the text.",
+ "hexpose.page.slice_text.summary": "Pushes the specified slice of the text.",
+ "hexpose.page.replace_text.summary": "Replaces the glyph at the nth position in the text with another segment of text. Replacement can be longer than one glyph.",
+ "hexpose.page.remove_text.summary": "Removes the nth glyph in the text.",
+ "hexpose.page.rev_text.summary": "Reverses the text.",
+ "hexpose.page.unique_text.summary": "Keeps only the first instance of any glyph in the text. Styling is enough to distinguish a glyph.",
+ "hexpose.page.text.1": "The following are a set of patterns involving the styling of the text. Despite resembling distillations, they are actually $(o)gambits$() due to their unique argument structure.$(br2)If the regular arguments are passed in, they will style the text according to their speciality (example of modification included).$(br2)If passed in just a text however, they will return the current value of the setting that they target.",
+ "hexcasting.action.hexpose:text_color": "Lumière Gambit",
+ "hexpose.page.text_color.summary": "Takes a text iota and a color encoded as a vector whose components range from 0 to 1, and produces a text iota of that $(#ff0000)color$().",
+ "hexcasting.action.hexpose:text_bold": "Gothic Gambit",
+ "hexpose.page.text_bold.summary": "Takes a text iota and sets whether it is $(l)bold$().",
+ "hexcasting.action.hexpose:text_italics": "Manutius' Gambit",
+ "hexpose.page.text_italics.summary": "Takes a text iota and sets whether it is in $(o)italics$().",
+ "hexcasting.action.hexpose:text_underline": "Notetaker's Gambit",
+ "hexpose.page.text_underline.summary": "Takes a text iota and sets whether it is $(n)underlined$().",
+ "hexcasting.action.hexpose:text_strikethrough": "Editor's Gambit",
+ "hexpose.page.text_strikethrough.summary": "Takes a text iota and sets whether it has been $(m)struck through$().",
+ "hexcasting.action.hexpose:text_obfuscated": "Censor's Gambit",
+ "hexpose.page.text_obfuscated.summary": "Takes a text iota and sets whether it is obfusca$(k)ted$().",
"hexpose.page.special_raycasts.title": "Special Raycasts",
"hexcasting.action.hexpose:fluid_raycast": "Dousing Distillation",
@@ -73,6 +102,8 @@
"hexcasting.action.hexpose:query_blockstate": "Facet Distillation",
"hexpose.page.query_blockstate.summary": "Takes a block and a facet and pushes that facet's value.",
"hexpose.page.query_blockstate.description": "If the block does not have the given facet, the pattern pushes $(l:casting/influences)$(thing)Null$(). For the most part, it is quite intuitive: the pattern produces booleans, directional vectors, and integers, whichever matches the facet best.$(br2)For certain facets that deal with a state among a variety of them, it will produce a seemingly random yet consistent integer. If a facet is too alien, a senseless iota is produced.",
+ "hexcasting.action.hexpose:block_map_color": "Cartographer's Purification",
+ "hexpose.page.block_map_color.summary": "Pushes the color blocks of this type appear as on a map.",
"hexpose.page.entities.title": "Entities",
"hexcasting.action.hexpose:entity_width": "Caliper's Purification",
@@ -107,6 +138,8 @@
"hexpose.page.shooter.summary": "Pushes the shooter of the given projectile entity or $(l:casting/influences)$(thing)Null$() if it has no shooter or isn't a projectile. It also pushes $(l:casting/influences)$(thing)Null$() if the shooter is outside my ambit.",
"hexcasting.action.hexpose:pet_owner": "Adoration Purification",
"hexpose.page.pet_owner.summary": "Pushes the player that has tamed this animal, or $(l:casting/influences)$(thing)Null$() if it is untamed or the player is out of ambit.",
+ "hexcasting.action.hexpose:absorption_hearts": "Absorption Purification",
+ "hexpose.page.absorption_hearts.summary": "Pushes the number of magical hearts this player has. I can think of these in terms of half-hearts.",
"hexpose.page.environment.title": "Environment",
"hexpose.page.environment.0": "These patterns are meta: they concern properties of the magical environment they are cast in. Mostly useful in avoiding $(l:casting/mishaps)$(thing)mishaps$().",
@@ -123,7 +156,7 @@
"hexpose.page.food.title": "Food",
"hexcasting.action.hexpose:get_player_hunger": "Hunger Purification",
- "hexpose.page.get_player_hunger.summary": "Pushes how full a $(item)Player$() is. I can think of this in terms of half-hunger-hunches.",
+ "hexpose.page.get_player_hunger.summary": "Pushes how full a $(item)Player$() is. I can think of this in terms of half-hunches.",
"hexcasting.action.hexpose:get_player_saturation": "Stamina Purification",
"hexpose.page.get_player_saturation.summary": "Pushes a $(item)Player$()'s saturation, which roughly correlates to how long the $(item)Player$() will remain full.",
"hexcasting.action.hexpose:edible": "Edibility Purification",
@@ -232,7 +265,11 @@
"hexpose.page.misc.title": "Miscellaneous",
"hexcasting.action.hexpose:cat_variant": "Feline Purification",
- "hexpose.page.cat_variant.summary": "Pushes the variant of the cat.",
+ "hexpose.page.cat_variant.summary": "Pushes the variant of the $(thing)Cat$().",
+ "hexcasting.action.hexpose:creeper_fuse": "Anger Purification",
+ "hexpose.page.creeper_fuse.summary": "Pushes the progress of a $(thing)Creeper$() to explosion.",
+ "hexcasting.action.hexpose:item_frame_rotation": "Showcase Purification",
+ "hexpose.page.item_frame_rotation.summary": "Pushes the rotation of an $(item)Item Frame$() as an integer 0 to 7.",
"hexcasting.action.hexpose:painting_variant": "Artistic Purification",
- "hexpose.page.painting_variant.summary": "Pushes the variant of the painting."
+ "hexpose.page.painting_variant.summary": "Pushes the variant of the $(thing)Painting$()."
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
index 9276b9e86746..f7c85acf8b2f 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
@@ -1,6 +1,11 @@
{
- "hexcasting.mishap.invalid_value.cat": "一只猫",
"hexcasting.mishap.invalid_value.class.identifier": "一个标识",
+ "hexcasting.mishap.invalid_value.class.item_stack": "一个物品组",
+ "hexcasting.mishap.invalid_value.class.text": "一个文本iota",
+ "hexcasting.mishap.invalid_value.cat": "一只猫",
+ "hexcasting.mishap.invalid_value.creeper": "一只苦力怕",
+ "hexcasting.mishap.invalid_value.painting": "一幅画",
+ "hexcasting.mishap.invalid_value.item_frame": "一个物品展示框",
"hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
"hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识",
"hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
@@ -11,7 +16,6 @@
"hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
"hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
"hexcasting.mishap.invalid_value.media_holding": "一个装有媒质的物品或实体",
- "hexcasting.mishap.invalid_value.painting": "一幅画",
"hexcasting.mishap.invalid_value.potion_holding": "一个装有药水的物品或实体",
"hexcasting.mishap.invalid_value.tamable": "一个可驯服实体",
@@ -39,10 +43,35 @@
"hexcasting.action.hexpose:is_brainswept": "感知之纯化",
"hexpose.page.is_brainswept.summary": "检验实体是否“被魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
- "hexpose.page.perlin.title": "准随机",
- "hexpose.page.perlin.0": "虽然我还没有找到利用的方法,但各地的环境$(media)媒质$()密度确实各不相同。可以测量时空中某一点的此密度,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
- "hexcasting.action.hexpose:perlin": "柏林之馏化",
- "hexpose.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
+ "hexpose.page.text.title": "文本 Iota",
+ "hexpose.page.text.0": "$(thing)文本 iota$() 是代表文本本身的 iota。它不只编码了字面的信息,还包含了$(#ff0000)颜色$()和$(o)斜体$()等样式的信息。$(br2)它们可在单个 iota 中存下很多信息。",
+ "hexcasting.action.hexpose:create_text": "阅读之纯化",
+ "hexpose.page.create_text.summary": "接受一个 iota,返回代表其的文本 iota。如果接受的是文本 iota,则清除其样式。",
+ "hexpose.page.add_text.summary": "返回第一文本和第二文本首尾相接的文本 iota。",
+ "hexpose.page.abs_text.summary": "返回文本 iota 的长度。",
+ "hexcasting.action.hexpose:split_text": "字符之纯化",
+ "hexpose.page.split_text.summary": "将文本 iota 拆分成各个字符。",
+ "hexcasting.action.hexpose:combine_text": "拼贴之纯化",
+ "hexpose.page.combine_text.summary": "将列表中各元素转换为文本(原来就是文本则保留不变),并拼接结果。",
+ "hexpose.page.index_text.summary": "返回文本中第 n 个字符。",
+ "hexpose.page.slice_text.summary": "返回文本的指定切片。",
+ "hexpose.page.replace_text.summary": "将文本中第 n 个字符替换为另一段文本。用于替换的文本可长于 1 个字符。",
+ "hexpose.page.remove_text.summary": "移除文本中第 n 个字符。",
+ "hexpose.page.rev_text.summary": "倒排文本。",
+ "hexpose.page.unique_text.summary": "只保留文本中各字符的第一处实例。样式不同的字符视作不同字符。",
+ "hexpose.page.text.1": "后续的图案涉及到文本的样式。由于其参数结构,它们和馏化很相似,但它们实际上是$(o)策略$()。$(br2)如果传入的是常规参数,则它们会根据自身专长为文本设置样式(样例见说明)。$(br2)如果只传入一个文本,则会返回该文本中该样式的设置情况。",
+ "hexcasting.action.hexpose:text_color": "卢米埃尔之策略",
+ "hexpose.page.text_color.summary": "接受一个文本 iota 和一个颜色;颜色由各分量为 0 到 1 的向量定义。返回设置为该$(#ff0000)颜色$()的文本。",
+ "hexcasting.action.hexpose:text_bold": "哥特式之策略",
+ "hexpose.page.text_bold.summary": "接受一个文本,设置其是否为$(l)粗体$()。",
+ "hexcasting.action.hexpose:text_italics": "马努提乌斯之策略",
+ "hexpose.page.text_italics.summary": "接受一个文本,设置其是否为$(o)斜体$()。",
+ "hexcasting.action.hexpose:text_underline": "记录员之策略",
+ "hexpose.page.text_underline.summary": "接受一个文本,设置其是否有$(n)下划线$()。",
+ "hexcasting.action.hexpose:text_strikethrough": "编辑员之策略",
+ "hexpose.page.text_strikethrough.summary": "接受一个文本,设置其是否有$(m)删除线$()。",
+ "hexcasting.action.hexpose:text_obfuscated": "屏蔽之策略",
+ "hexpose.page.text_obfuscated.summary": "接受一个文本,设置其是否显示为随机$(k)文本$()。",
"hexpose.page.special_raycasts.title": "特殊射线追踪",
"hexcasting.action.hexpose:fluid_raycast": "占水之馏化",
@@ -72,6 +101,8 @@
"hexcasting.action.hexpose:query_blockstate": "侧征之馏化",
"hexpose.page.query_blockstate.summary": "接收一个方块和一个侧征,返回该侧征的值。",
"hexpose.page.query_blockstate.description": "若方块没有给定侧征,则返回 $(l:casting/influences)$(thing)Null$()。大多数情况下,返回的结果很好理解:布尔值、方向向量、整数,总之是最合乎侧征的 iota。$(br2)某些关系到状态等方面的侧征给出的是看似随机但恒定的整数。如果侧征太过生僻,即会返回无意义的 iota。",
+ "hexcasting.action.hexpose:block_map_color": "制图师之纯化",
+ "hexpose.page.block_map_color.summary": "返回所给方块在地图上的颜色。",
"hexpose.page.entities.title": "实体",
"hexcasting.action.hexpose:entity_width": "卡尺之纯化",
@@ -106,6 +137,8 @@
"hexpose.page.shooter.summary": "返回所给弹射物实体的发射者,若无发射者或不是弹射物,则返回 $(l:casting/influences)$(thing)Null$()。如果发射者在我影响范围之外,也会返回 $(l:casting/influences)$(thing)Null$()。",
"hexcasting.action.hexpose:pet_owner": "挚宠之纯化",
"hexpose.page.pet_owner.summary": "检验玩家是否驯服了所给动物,若未驯服或玩家在影响范围之外,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:absorption_hearts": "吸收之纯化",
+ "hexpose.page.absorption_hearts.summary": "返回玩家的魔法心数。使用半颗心作为单位。",
"hexpose.page.environment.title": "环境",
"hexpose.page.environment.0": "本节的图案比较“元”:它们会检验其所处的施法环境。主要适合用来规避$(l:casting/mishaps)$(thing)事故$()。",
@@ -122,7 +155,7 @@
"hexpose.page.food.title": "食物",
"hexcasting.action.hexpose:get_player_hunger": "饥饿之纯化",
- "hexpose.page.get_player_hunger.summary": "返回$(item)玩家$()的饥饿值。使用半个饥饿值火腿作为单位。",
+ "hexpose.page.get_player_hunger.summary": "返回$(item)玩家$()的饥饿值。使用半个火腿作为单位。",
"hexcasting.action.hexpose:get_player_saturation": "耐力之纯化",
"hexpose.page.get_player_saturation.summary": "返回$(item)玩家$()的饱和度。这一数据大致与饱腹感的持续时间对应。",
"hexcasting.action.hexpose:edible": "可食性之纯化",
@@ -231,7 +264,11 @@
"hexpose.page.misc.title": "杂项",
"hexcasting.action.hexpose:cat_variant": "猫咪之纯化",
- "hexpose.page.cat_variant.summary": "返回猫的外观。",
+ "hexpose.page.cat_variant.summary": "返回$(thing)猫$()的品种。",
+ "hexcasting.action.hexpose:creeper_fuse": "怒气之纯化",
+ "hexpose.page.creeper_fuse.summary": "返回$(thing)苦力怕$()爆炸的进度。",
+ "hexcasting.action.hexpose:item_frame_rotation": "展示之纯化",
+ "hexpose.page.item_frame_rotation.summary": "返回$(item)物品展示框$()的旋转方向,为 0 到 7 的整数。",
"hexcasting.action.hexpose:painting_variant": "艺术之纯化",
- "hexpose.page.painting_variant.summary": "返回画的类型。"
+ "hexpose.page.painting_variant.summary": "返回$(thing)画$()的类型。"
}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
index 9e853600a974..f01542e875e4 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
@@ -7,11 +7,16 @@
"scryglass.page.get_window_size.summary": "Returns the full width and height of my vision as a vector.",
"hexcasting.action.scryglass:get_icons": "Icons Reflection",
"scryglass.page.get_icons.summary": "Pushes a list of the indices of all the $(thing)Icons$() I have. This appears as a list of numbers.",
- "hexcasting.action.scryglass:remove_icons": "Clear Icon",
- "scryglass.page.remove_icons.summary": "Immediately clears an $(thing)Icon$().",
+ "hexcasting.action.scryglass:remove_icon": "Clear Icon",
+ "scryglass.page.remove_icon.summary": "Immediately clears an $(thing)Icon$().",
"scryglass.page.scryglass.3": "Some oculus spells also want a color, which is taken as a vector where the components correspond to red, green, and blueness of an intended color, ranging from 0 to 1.",
"hexcasting.action.scryglass:draw_text": "Draw Text",
- "scryglass.page.draw_text.summary": "Takes an index, a position, and any iota. Conjures an $(thing)Icon$() displaying that iota.",
+ "scryglass.page.draw_text.summary": "Takes an index, a position, a number, and any iota. Conjures an $(thing)Icon$() displaying that iota.",
+ "scryglass.page.draw_text.description": "The number determines the mode of text justification. 0 centers the text at the position given, 1 aligns the left side to the position given, and 2 aligns the right side to the position given.",
+ "hexcasting.action.scryglass:rotate_icon": "Rotate Icon",
+ "scryglass.page.rotate_icon.summary": "Takes an index and an amount of rotation counterclockwise in terms of a full circle. Rotates the icon.",
+ "hexcasting.action.scryglass:scale_icon": "Scale Icon",
+ "scryglass.page.scale_icon.summary": "Takes an index and a scaling factor. Scales the icon.",
"hexcasting.action.scryglass:draw_rect": "Draw Rectangle",
"scryglass.page.draw_rect.summary": "Takes an index, a position, a size, and a color. Conjures an $(thing)Icon$() displaying that rectangle.",
"hexcasting.action.scryglass:draw_line": "Draw Line",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
index ef88c0fa1e21..5e22dc7f5f3f 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
@@ -7,11 +7,16 @@
"scryglass.page.get_window_size.summary": "以向量返回我视野的全宽和全高。",
"hexcasting.action.scryglass:get_icons": "像图之精思",
"scryglass.page.get_icons.summary": "返回我拥有的所有$(thing)像图$()的索引列表。返回的似乎是一个数列表。",
- "hexcasting.action.scryglass:remove_icons": "清除像图",
- "scryglass.page.remove_icons.summary": "立刻清除所给$(thing)像图$()。",
+ "hexcasting.action.scryglass:remove_icon": "清除像图",
+ "scryglass.page.remove_icon.summary": "立刻清除所给$(thing)像图$()。",
"scryglass.page.scryglass.3": "部分眼眸法术还需一个颜色,需以向量形式提供,各分量代表目标颜色的红、绿、蓝浓度,取值范围为 0 到 1。",
"hexcasting.action.scryglass:draw_text": "绘制文本",
- "scryglass.page.draw_text.summary": "接受一个索引、一个位置、一个任意 iota。将该 iota 构筑显示为$(thing)像图$()。",
+ "scryglass.page.draw_text.summary": "接受一个索引、一个位置、一个数、一个任意 iota。将该 iota 构筑显示为$(thing)像图$()。",
+ "scryglass.page.draw_text.description": "提供的数用于对齐文本。0 为居中至给定位置,1 为左对齐至给定位置,2 为右对齐。",
+ "hexcasting.action.scryglass:rotate_icon": "旋转像图",
+ "scryglass.page.rotate_icon.summary": "接受一个索引,和一个代表逆时针旋转量的数,以整圆计。旋转像图。",
+ "hexcasting.action.scryglass:scale_icon": "缩放像图",
+ "scryglass.page.scale_icon.summary": "接受一个索引、一个缩放因数。缩放像图。",
"hexcasting.action.scryglass:draw_rect": "绘制长方形",
"scryglass.page.draw_rect.summary": "接受一个索引、一个位置、一个尺寸、一个颜色。构筑一个显示所定义长方形的$(thing)像图$()。",
"hexcasting.action.scryglass:draw_line": "绘制线段",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
new file mode 100644
index 000000000000..fb727aba827f
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
@@ -0,0 +1,19 @@
+{
+ "block.slate_work.storage_slate": "Storage Vessels",
+
+ "Patterns:":"",
+ "hexcasting.action.slate_work:get_storage": "Get Vessels",
+ "hexcasting.action.slate_work:check_item": "Check Item",
+ "hexcasting.action.slate_work:store_item": "Lay Item",
+ "hexcasting.action.slate_work:get_item": "Reawaken Item",
+
+ "Entries:": "",
+ "slate_work.entry.vessels": "Storage Vessels",
+ "slate_work.page.vessels.1": "As wonderful as $(thing)Vessels/$ are for storage, they have an... opaque method of interaction. The main way of interaction is with _Hexes; more specifically, using a _Hex to describe what I wish to retrieve. Importantly, these all $(l:casting/mishaps2)mishap when not casted in a Spell Circle/$. $(br2)$(br)$(o)“Riddles,” I said. $(br)“Always preferable to no answer at all,” he responded.",
+ "slate_work.page.vessels.2": "To elaborate more, $(thing)Vessels/$ respects Nature's silly rules regarding the \"Stack Limit\" by working around them. Rather than directly calling an item based on its name, I more-or-less supply a \"description;\" this is a _Hex that takes an $(l:patterns/scrying/item)Item Stack Iota/$, and needs to return a boolean. Also, all patterns to do with the retrieving of $(thing)Storage Vessels/$ take a copy of the Stack, and puts it onto the 'inner' stack (Much like $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$).",
+ "slate_work.page.vessels.get_storage": "This simply returns what $(thing)Vessels/$ the current $(l:greatwork/spellcircles)Spell Circle/$ has activated. I should likely use this to check if the $(l:greatwork/spellcircles)Spell Circle/$ has collected any $(thing)Vessels/$.",
+ "slate_work.page.vessels.store_item": "It is much easier to store an item into a $(thing)Vessel/$ than to pull it out. This pattern simply takes an Item Entity, and neatly sorts it into the activated $(thing)Storage Vessels/$.",
+ "slate_work.page.vessels.get_item": "This takes a _Hex and runs it on every $(l:patterns/scrying/item)Item Stack/$ stored. Once the _Hex is ran, it requires either a $(thing)False/$, or a $(thing)True/$, $(thing)Vector/$ (output of the items), and $(thing)Integer/$ (amount of items)",
+ "slate_work.page.vessels.get_item_cont": "Further explained, as stated in the 2nd page. This copies iotas from the stack, so if I had [Position, Count, Type] on the stack then ran a _Hex that got the Type of the $(l:patterns/scrying/item)Item Stack/$ being compared, and did an $(l:patterns/logic#hexcasting:equals)equals check/$. Then it would return only that Type, as item entities, at Position with a count of Count. $(br) It should also be stated this 'search' does not end early after finding a match.",
+ "slate_work.page.vessels.check_item": "Check Item functions much like Reawaken Item; however, it only requires a boolean on the 'inner stack'. If the boolean is ever true, the spell returns true."
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
new file mode 100644
index 000000000000..165e5a538156
--- /dev/null
+++ b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
@@ -0,0 +1,19 @@
+{
+ "block.slate_work.storage_slate": "存储容具",
+
+ "Patterns:":"",
+ "hexcasting.action.slate_work:get_storage": "获取容具",
+ "hexcasting.action.slate_work:check_item": "检查物品",
+ "hexcasting.action.slate_work:store_item": "容纳物品",
+ "hexcasting.action.slate_work:get_item": "唤回物品",
+
+ "Entries:": "",
+ "slate_work.entry.vessels": "存储容具",
+ "slate_work.page.vessels.1": "$(thing)容具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。",
+ "slate_work.page.vessels.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)容具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储容具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。",
+ "slate_work.page.vessels.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)容具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)容具/$。",
+ "slate_work.page.vessels.store_item": "向$(thing)容具/$存入物品比取出容易。此图案会接受一个物品实体,并将其存入激活的$(thing)存储容具/$。",
+ "slate_work.page.vessels.get_item": "此图案接受一个$(hex)咒术/$,并对所存储的所有$(l:patterns/scrying/item)物品组/$运行。运行该$(hex)咒术/$后,图案需要一个 $(thing)False/$ 或 $(thing)True/$,一个$(thing)向量/$(物品输出位置),和一个$(thing)整数/$(物品数量)。",
+ "slate_work.page.vessels.get_item_cont": "继续解释说明。和第二页中所说的一样,它会从栈中复制 iota。栈顶为 [位置, 数量, 类型],此时法术会运行接受$(l:patterns/scrying/item)物品组/$类型的$(hex)咒术/$,该$(hex)咒术/$会用类型进行$(l:patterns/logic#hexcasting:equals)相等判断/$。这之后,图案会在所给位置处返还所给数量个该类型物品的物品实体。$(br)需要注意,这一“搜索”在找到匹配项后不会提前结束。",
+ "slate_work.page.vessels.check_item": "检查物品的功能和唤回物品类似。但它只需要“内部栈”上有一个布尔值。如果该布尔值为 True,则法术返回 True。"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 20f3e6ec8489..aff05515ec3d 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -7,12 +7,14 @@
"advancements.hexical.educate_genie.description": "Educate the genie with new instructions.",
"advancements.hexical.lamp.title": "Diamond in the Rough",
"advancements.hexical.lamp.description": "Acquire a genie lamp.",
- "advancements.hexical.augmented_reality.title": "Augmented Reality",
- "advancements.hexical.augmented_reality.description": "Conjure a speck.",
+ "advancements.hexical.specklike.title": "Integrated Reality",
+ "advancements.hexical.specklike.description": "Like augmented reality, but real.",
"advancements.hexical.diy_conjuring.title": "DIY Conjuring!",
"advancements.hexical.diy_conjuring.description": "Add a custom modifier to a mage block.",
"advancements.hexical.conjure_hexxy.title": "Conjure Hexxy",
"advancements.hexical.conjure_hexxy.description": "Give Hexxy a physical form in your world.",
+ "advancements.hexical.conjure_cake.title": "The Cake is a Lie",
+ "advancements.hexical.conjure_cake.description": "Summon a free cake from a mysterious benefactor.",
"advancements.hexical.hallucinate.title": "Only In My Head",
"advancements.hexical.hallucinate.description": "Play a sound only you can hear!",
@@ -83,7 +85,7 @@
"subtitles.hexical.lamp_activate": "Lamp activates",
"subtitles.hexical.lamp_deactivate": "Lamp deactivates",
"subtitles.hexical.player_slurp": "Player slurps",
- "subtitles.hexical.replenish_air": "Air appears",
+ "subtitles.hexical.replenish_air": "Lungs inflate",
"subtitles.hexical.scarab_chirps": "Scarab chirps",
"subtitles.hexical.sudden_realization": "Idea pops",
"tooltip.hexical.scroll_aged": "Aged",
@@ -104,6 +106,7 @@
"hexcasting.mishap.bad_block.akashic_bookshelf": "an akashic bookshelf",
"hexcasting.mishap.bad_block.mage_block": "a mage block",
+ "hexcasting.mishap.bad_block.pedestal": "a pedestal",
"hexcasting.mishap.bad_block.flower_spawnable": "air or a flower pot",
"hexcasting.mishap.bad_block.rotatable": "a block with direction",
"hexcasting.mishap.bad_block.solid_platform": "a solid platform",
@@ -127,6 +130,7 @@
"hexcasting.mishap.bad_item.target.smoking": "an item able to be smelted in a smoker",
"hexcasting.mishap.bad_item.target.blasting": "an item able to be smelted in a blast furnace",
"hexcasting.mishap.bad_item.target.stonecutting": "an item able to be cut in a stonecutter",
+ "hexcasting.mishap.bad_item.uncharmed": "an uncharmed item",
"hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
"hexcasting.mishap.invalid_value.horizontal_axis_vector": "a horizontal axis vector",
"hexcasting.mishap.invalid_value.class.dye": "a dye",
@@ -205,15 +209,17 @@
"hexical.page.animated_scroll.title": "Animated Scrolls",
"hexical.page.animated_scroll.0": "$(item)Animated Scrolls$() are mixed with a pinch of $(l:items/amethyst)$(item)Amethyst Dust$(), enchanting the ink to move and wiggle like the patterns I draw with my $(l:items/staff)$(item)Staff$(). Not only that, they can display lists of patterns.$(br2)$(o)You can't be a proper writer without a touch of madness, can you?$()",
"hexical.page.animated_scroll.1": "I can freely write and rewrite the scroll's patterns at any time, along with reading it back out. The scroll accepts only a list of $(l:patterns/patterns_as_iotas)pattern iotas$() or a lone $(l:patterns/patterns_as_iotas)pattern iota$(), which is automatically wrapped in a list. The $(item)Animated Scroll$() shows one pattern at a time which cycles to the next one once per second. Even when I write the same list to two of them at different moments of their cycle, they display in sync.",
- "hexical.page.animated_scroll.2": "The next few pages detail some free spells I've found for the manipulation of $(item)Animated Scrolls$(). The changes caused by these spells can usually be reverted by casting the spell on the scroll again.",
+ "hexical.page.animated_scroll.2": "The $(l:items/amethyst)$(item)Amethyst$() seeped into the paper allows me to modify these $(item)Animated Scrolls$() in a variety of aesthetic ways entirely for free.$(br2)I have documented these patterns on the following pages.$(br2)Of note, I can also read and write to these scrolls remotely using the standard patterns.",
+ "hexcasting.action.hexical:normalize_scroll": "Restore Scroll",
+ "hexical.page.normalize_scroll.summary": "Restores the parchment of a scroll to an unmodified state.",
"hexcasting.action.hexical:age_scroll": "Age Scroll",
"hexical.page.age_scroll.summary": "Yellows the parchment of an $(item)Animated Scroll$(), making it bear striking semblance to some ancient scrolls I've been finding.",
+ "hexcasting.action.hexical:vanish_scroll": "Vanish Scroll",
+ "hexical.page.vanish_scroll.summary": "Causes the $(item)Animated Scroll$() to become invisible leaving only the pattern, making it appear as though the pattern were magically etched into the surface the scroll is on.",
"hexcasting.action.hexical:color_scroll": "Dye Ink",
"hexical.page.color_scroll.summary": "Changes the color of an $(item)Animated Scroll's$() ink to the color specified by the vector, with the components being 0 to 1 values of red, green, and blue respectively.",
"hexcasting.action.hexical:glow_scroll": "Illuminate Ink",
"hexical.page.glow_scroll.summary": "Causes the ink of an $(item)Animated Scroll$() to brightly glow, regardless of lighting conditions.",
- "hexcasting.action.hexical:vanish_scroll": "Vanish Scroll",
- "hexical.page.vanish_scroll.summary": "Causes the $(item)Animated Scroll$() to become invisible leaving only the pattern, making it appear as though the pattern were magically etched into the surface the scroll is on.",
"hexical.page.hex_candle.title": "Hex Candles",
"hexical.page.hex_candle.0": "When ignited for the first time, either $(l:patterns/spells/prestidigitation)magically$() or with a $(item)Flint and Steel$(), these delightful little candles have pale white flames. They also seem to not extinguish when flooded. When someone interacts with it though, it copies their pigment. I can also give it with a pigment item to change its color directly. To extinguish, $(thing)$(k:sneak) $(k:use)$().",
@@ -279,8 +285,8 @@
"hexical.page.lamp_finale.arch": "When an $(item)Archgenie Lamp$() is turned off, it casts an additional time. I can use $(l:lamp/hand_lamps#hexical:lamp_finale)$(action)Finale Reflection$() to recognize whether a cast is that last burst of energy.",
"hexical.page.hand_lamps.title": "Hand Lamps",
- "hexical.page.hand_lamps.0": "So this is the subject of a thousand years of rumor! To think a mere wandering trader could be in possession of such a strong artifact. The $(item)Hand Lamp$() emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow _media structure$() of a $(l:items/focus)$(item)Focus$() that enables it to store iota. I can also sense a presence inside the $(item)Lamp$() with similar magical capabilities to my own.",
- "hexical.page.hand_lamps.1": "The signs are unmistakable; within the $(item)Lamp$() is a $(o)living, sentient$() mind, kept alive and trapped via magic not yet known to me. The $(item)Lamp$()'s design is simply ingenious, if its use weren't so horrible. When I hold down the trigger, my patterns are revealed to the \"genie\" as I will be calling it, and it, out of desperation and boredom, casts.",
+ "hexical.page.hand_lamps.0": "So this is the subject of a thousand years of rumor! To think a mere wandering trader could be in possession of such an artifact. The $(item)Hand Lamp$() emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow _media structure$() of a $(l:items/focus)$(item)Focus$() that allows it to store iota. I can also sense a presence inside the $(item)Lamp$() with similar magical capabilities to my own.",
+ "hexical.page.hand_lamps.1": "The signs are unmistakable; within the $(item)Lamp$() is a $(o)living, sentient$() mind, kept alive and trapped via means not yet known to me. The $(item)Lamp$()'s design is simply ingenious, if its use weren't so horrible. When I hold down the trigger, my patterns are revealed to the \"genie\" as I will be calling it, and it, out of desperation and boredom, casts.",
"hexcasting.action.hexical:wish": "Wish",
"hexical.page.wish.summary": "Wish the genie to cast a _Hex for me. Because I am $(o)teaching$() a mind rather than $(o)etching$() a $(l:items/hexcasting)$(item)casting device$(), I can freely reteach the genie a new _Hex any time without losing _media.",
"hexical.page.hand_lamps.2": "To say it casts is an understatement. It casts $(o)$(l)EVERY INSTANT$(). When holding the switch after wishing, I am treated to a splendid unceasing gush of _media. I can only estimate it must be around twenty times every second. The genie performs the casting with incredible efficiency, producing little of the sounds and particles that accompany other casting methods.",
@@ -305,10 +311,10 @@
"hexical.page.genie_lore.1": "Fortunately, the $(item)Lamp$() captures the _media that a lesser $(l:items/hexcasting)$(item)casting device$() would have wasted creating noises and particles, and uses that to repair the genie's mind. Almost zero _media is wasted; truly incredible. My only concern is when the $(item)Lamp$() runs dry. Fortunately, I can refill them with _media.",
"hexcasting.action.hexical:recharge_lamp": "Refuel Lamp",
"hexical.page.recharge_lamp.summary": "Refuels the $(item)Lamp$() in my offhand. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$(), plus the _media I'm giving the $(item)Lamp$().",
- "hexical.page.genie_lore.2": "The $(item)Lamp$() seems capable of holding a near endless amount of _media. When I fuel it further when it already contains _media, it simply grows its storage reservior to accommodate. This is truly a marvel of _Hexcasting technology.",
+ "hexical.page.genie_lore.2": "The $(item)Lamp$() seems capable of holding a near endless amount of _media. When I fuel it further when it already contains _media, it simply grows its storage reservior to accommodate. It is truly a marvel of _Hexcasting technology.",
"hexical.page.genie_lore.3": "Upon closer inspiration, the genie within the $(item)Lamp$() seems to just be an extremely minimal, almost artificial network of thought and _media. I hesitate to call it a creature, more of a $(o)wisp$(). Perhaps if I replaced it with a more complex, $(o)sentient$() mind, I can induce some great change. The mind must be of upmost quality to survive the process and still retain a shred of talent; a villager that has spent its life honing a craft to perfection will do quite nicely.",
"hexcasting.action.hexical:promote_lamp": "Promote Lamp",
- "hexical.page.promote_lamp.summary": "Hold the lamp in my other hand and cast. Costs about ten $(l:items/amethyst)$(item)Charged Amethyst$().",
+ "hexical.page.promote_lamp.summary": "Hold the lamp in my other hand and cast. Costs about ten $(l:items/amethyst)$(item)Charged Amethyst$() and requires the sacrifice.",
"hexical.page.arch_lamps.title": "Archgenie Lamps",
"hexical.page.arch_lamps.0": "The $(item)Hand Lamp$() was yanked out of my hands and towards the villager, sucking it in completely and transforming it. The greater mind within these $(item)Archgenie Lamps$() should enable them to be activated and deactivated rather than used and while active in my inventory, they will cast every instant. Picking one up automatically deactivates them though, possibly for safety reasons.",
@@ -333,7 +339,7 @@
"hexical.page.pedestal_circles.title": "Pedestals in Circles",
"hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)Pedestals$() have magical abilities!$(br2)If they are holding $(l:patterns/readwrite#hexcasting:write)$(item)an item that contains information$() and the $(l:greatwork/spellcircles)$(thing)spell circle$()'s wave passes over them as if they were a $(l:items/slate)$(item)Slate$(), they push the iota onto the stack. If the $(l:items/pedestals)$(thing)Pedestal$() happens to processed inside an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), the iota appears inside the constructed list.",
- "hexical.page.pedestal_circles.1": "If placed directly on top of an $(l:greatwork/spellcircles)$(item)Impetus$() instead, the $(l:items/pedestals)$(item)Pedestal$() acts as the circle's $(o)other hand$(), useful for spells such as the $(l:patterns/spells/hexcasting)casting device crafting spells$(), $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge Item$(), and $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().$(br2)This includes $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$() and $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$(), allowing me to create $(l:greatwork/spellcircles)$(thing)spell circles$() to automatically fill in my $(l:items/focus)$(item)Foci$().",
+ "hexical.page.pedestal_circles.1": "An $(l:greatwork/spellcircles)$(item)Impetus$() can also $(l:patterns/spells/circle_spells#hexical:absorb_arm)use$() a $(l:items/pedestals)$(item)Pedestal$() as its $(o)other hand$(), useful for spells such as the $(l:patterns/spells/hexcasting)casting device crafting spells$(), $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge Item$(), and $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().$(br2)This is useful for creating automated constructions to $(l:patterns/spells/hexcasting#hexcasting:recharge)recharge$() my $(l:items/hexcasting)casting devices$().",
"hexical.page.patterns.title": "Pattern Manipulation",
"hexical.page.patterns.0": "I have discovered a set of patterns that concern the construction and manipulation of other $(l:patterns/patterns_as_iotas)patterns$(). Strangely, they can be used to construct patterns that are $(o)impossible$() to draw with a $(l:items/staff)$(item)Staff$(), although fortunately I don't believe Nature has associated an effect with any of these \"illegal\" patterns. They can be considered free to use with my $(l:items/scarab)$(item)Scarab Beetle$().",
@@ -380,11 +386,8 @@
"hexical.page.jumping.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:jump)$(), or -1 if I am not.",
"hexcasting.action.hexical:sneaking": "Stealthy Reflection",
"hexical.page.sneaking.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:sneak)$(), or -1 if I am not.",
-
- "hexical.page.horrible.title": "Horrible",
- "hexical.page.horrible.0": "Of all the spells I have recorded in my exploration of ancient _Hexcasting, I have never seen one even remotely like this one. $(o)How does someone even begin to draw this?$()",
- "hexcasting.action.hexical:horrible": "Summon?",
- "hexical.page.horrible.summary": "Judging by the pattern signature, I can only imagine that it summons something.",
+ "hexcasting.action.hexical:scroll": "Rolling Reflection",
+ "hexical.page.scroll.summary": "Pushes the change in scrolling I have performed since I have invoked $(thing)Telepathy$().",
"hexical.page.akashic_conveniences.title": "Akashic Utilities",
"hexical.page.akashic_conveniences.0": "Being designed to be receptive to _media and store information, it should not surprise me that there are more conveniences than meets the eye. I can $(thing)$(k:use)$() or $(l:patterns/spells/prestidigitation)magically interact$() with a filled $(l:greatwork/akashiclib)$(item)Bookshelf$() to copy its iota onto my stack. I can also $(thing)$(k:use)$() with a $(l:items/scroll)$(item)Scroll$() to copy the pattern key onto it. There are also a set of patterns to read and write directly to a $(l:greatwork/akashiclib)$(item)Bookshelf$() within ambit for free.",
@@ -397,30 +400,6 @@
"hexcasting.action.hexical:clear_shelf": "Librarian's Gambit II",
"hexical.page.clear_shelf.summary": "Clears an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
- "hexical.page.block_mimicry.title": "Block Mimicry",
- "hexical.page.block_mimicry.0": "The Art of _Hexcasting is a versatile craft; I can use _media to simulate a lot of the actions that I rely on blocks to perform without requiring any physical infrastructure. With just my staff, I can $(l:patterns/spells/block_mimicry#hexical:stonecut)cut stone into stairs$(), $(l:patterns/spells/block_mimicry#hexical:dispense)launch arrows$(), and automate the $(l:patterns/spells/block_mimicry#hexical:hopper_in)push$() and $(l:patterns/spells/block_mimicry#hexical:hopper_out)pull$() of items into inventories.",
- "hexical.page.block_mimicry.1": "Tales speak of ancient _Hexcasters that have set up entire magical factories without placing a single block.$(br2)$(o)And I need a bigger office, I need a bigger chair$(br)A bigger desk, a bigger staff$(br)A bigger hat to wear",
- "hexcasting.action.hexical:dispense": "Dispense",
- "hexical.page.dispense.summary": "Takes an item entity, a position, and an axis vector and dispenses the item. For most applications, costs about half of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.dispense.description": "More specifically, this spell acts as though a dispenser suddenly appears with the item loaded and fires the dispenser.$(br2)If this spell is used for any type of $(item)Arrow$(), the price increases to a full $(l:items/amethyst)$(item)Charged Amethyst$(). I wonder why Nature would have such an adverse reaction to this specific application. Perhaps I would be too powerful?$(br2)$(o)Upon request, I can also perform a hug.$()",
- "hexcasting.action.hexical:smelt": "Cook",
- "hexical.page.smelt.summary": "Takes an item entity and cooks it as if in a $(item)Furnace$(). Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() for every ten seconds that the $(item)Furnace$() would need to have been active.",
- "hexcasting.action.hexical:roast": "Roast",
- "hexical.page.roast.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Campfire$() instead. This has a much more limited set of possibilities; I am unsure why I would ever use this.",
- "hexcasting.action.hexical:smoke": "Smoke",
- "hexical.page.smoke.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Smoker$() instead, making it unable to process anything but foods but at a faster rate, making the spell cheaper.",
- "hexcasting.action.hexical:blast": "Blast",
- "hexical.page.blast.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Blast Furnace$() instead, making it unable to process anything but ores but at a faster rate, making the spell cheaper.",
- "hexcasting.action.hexical:stonecut": "Cut Stone",
- "hexical.page.stonecut.summary": "Takes an item entity and cuts the item into the shape of an item identifier. Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.stonecut.description": "The target item must be possible to carve from the source item in a $(item)Stonecutter$(). For instance, $(item)Stone$() can be cut into all manners of stairs, slabs, and walls.$(br2)$(o)I saw the angel in the marble and carved until I set him free.$()",
- "hexcasting.action.hexical:hopper_in": "Deposit",
- "hexical.page.hopper_in.summary": "Takes an item entity, an inventory location, and an axis vector. Inserts the item through that side if possible. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.hopper_in.description": "If the block is not an inventory, the block is full, or the item can not be inserted for any other reason, nothing happens. Items that overflow the inventory are simply left in the original item entity.$(br2)$(o)Upon request, I can also perform a hug.$()",
- "hexcasting.action.hexical:hopper_out": "Withdraw",
- "hexical.page.hopper_out.summary": "Takes a spawning vector, an inventory location, and an axis vector. Extracts a single item from that side into the location and pushes it. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.hopper_out.description": "If no item could be extracted, the spell pushes $(l:casting/influences)$(thing)Null$(). Only one item will be extracted at a time similar to a hopper.$(br2)$(o)Upon request, I can also perform a hug.$()",
-
"hexical.page.mage_block.title": "Mage Blocks",
"hexical.page.mage_block.0": "The blocks from $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjure Block$() last forever, are consequently a pain to clean up, and are not too versatile. Luckily, Nature offers an elegant and flexible alternative. These mage blocks come with a suite of $(o)modifiers$(). I could even stack multiple modifiers on one block or reapply a modifier to toggle it off.",
"hexcasting.action.hexical:conjure_mage_block": "Conjure Mage Block",
@@ -573,11 +552,11 @@
"hexical.page.parrot.summary": "Emits a sound associated with a mob near a location, as though a parrot had imitated that mob. Costs about a half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.parrot.description": "This spell does nothing but still consumes my _media if a parrot can not replicate the sound.$(br2)I can already imagine this spell's use for playing practical jokes on my friends and enemies. Perhaps Nature does permit me to have fun occasionally with my _Hexes.$(br2)$(o)Hisss...$()",
- "hexical.page.meta_effects.title": "Hexcasting Effects",
- "hexcasting.action.hexical:effect_clouding": "Foggy Sky's Nadir",
- "hexical.page.effect_clouding.summary": "Bestows $(thing)clouding$(), an effect that impedes _Hexcasting vision. Base cost is about one $(l:items/amethyst)$(item)Amethyst Dust$() per three seconds. Follows $(l:patterns/spells/nadirs)nadir$() cost scaling.",
- "hexcasting.action.hexical:effect_clarity": "Clear Sky's Zenith",
- "hexical.page.effect_clarity.summary": "Bestows $(thing)clarity$(), an effect that extends _Hexcasting vision. Base cost is about one $(l:items/amethyst)$(item)Amethyst Dust$() per second. Follows $(l:patterns/great_spells/zeniths)zenith$() cost scaling.",
+ "hexical.page.break_special.title": "Specialized Breaking",
+ "hexcasting.action.hexical:break_fortune": "Extract Block",
+ "hexical.page.break_fortune.summary": "Targets structural faults in a block, resulting in a higher yield. Costs about one, three, and five $(l:items/amethyst)$(item)Amethyst Dust$() when power input is 0, 1, and 2 respectively.",
+ "hexcasting.action.hexical:break_silk": "Collect Block",
+ "hexical.page.break_silk.summary": "Breaks a block gently, perserving the block better than standard mining. Costs about half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.conjurable_delights.title": "Conjurable Delights",
"hexical.page.conjurable_delights.0": "Ancient _Hexcasters seem to have devised spells to conjure a multitude of items, to both further their Art and to convenience their collaboration. I can only link these items together by their being $(o)vaguely$() edible.$(br2)$(o)What nicer thing can you do for somebody than make them breakfast?$()",
@@ -599,14 +578,32 @@
"hexical.page.spike.summary": "Takes a non-air position, an axis vector, and a delay in seconds up to ten seconds long and conjures a spike at that location. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.spike.1": "Each spike takes about a half second to strike and deal a hefty three full hearts of damage before slowly sinking back into the ground. If I cast this spell where a spike has not yet disappeared, it will do nothing. Spikes will also throw back targets in the direction they were conjured.",
- "hexical.page.tchotchke.title": "Tchotchkes",
- "hexcasting.action.hexical:conjure_tchotchke": "Conjure Tchotchke",
- "hexical.page.conjure_tchotchke.summary": "Conjures a $(item)Tchotchke$() at the location with the amount of _media. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$() and the _media used for the battery.",
+ "hexical.page.block_mimicry.title": "Block Mimicry",
+ "hexical.page.block_mimicry.0": "The Art of _Hexcasting is a versatile craft; I can use _media to simulate a lot of the actions that I rely on blocks to perform without requiring any physical infrastructure. With just my staff, I can $(l:patterns/spells/block_mimicry#hexical:stonecut)cut stone into stairs$(), $(l:patterns/spells/block_mimicry#hexical:dispense)launch arrows$(), and $(l:patterns/spells/block_mimicry#hexical:smelt)cook$() my items for me.",
+ "hexical.page.block_mimicry.1": "Tales speak of ancient _Hexcasters that have set up entire magical factories without placing a single block.$(br2)$(o)And I need a bigger office, I need a bigger chair$(br)A bigger desk, a bigger staff$(br)A bigger hat to wear",
+ "hexcasting.action.hexical:dispense": "Dispense",
+ "hexical.page.dispense.summary": "Takes an item entity, a position, and an axis vector and dispenses the item. For most applications, costs about half of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.dispense.description": "More specifically, this spell acts as though a dispenser suddenly appears with the item loaded and fires the dispenser.$(br2)If this spell is used for any type of $(item)Arrow$(), the price increases to a full $(l:items/amethyst)$(item)Charged Amethyst$(). I wonder why Nature would have such an adverse reaction to this specific application. Perhaps I would be too powerful?$(br2)$(o)Upon request, I can also perform a hug.$()",
+ "hexcasting.action.hexical:smelt": "Cook",
+ "hexical.page.smelt.summary": "Takes an item entity and cooks it as if in a $(item)Furnace$(). Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() for every ten seconds that the $(item)Furnace$() would need to have been active.",
+ "hexcasting.action.hexical:roast": "Roast",
+ "hexical.page.roast.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Campfire$() instead. This has a much more limited set of possibilities; I am unsure why I would ever use this.",
+ "hexcasting.action.hexical:smoke": "Smoke",
+ "hexical.page.smoke.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Smoker$() instead, making it unable to process anything but foods but at a faster rate, making the spell cheaper.",
+ "hexcasting.action.hexical:blast": "Blast",
+ "hexical.page.blast.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Blast Furnace$() instead, making it unable to process anything but ores but at a faster rate, making the spell cheaper.",
+ "hexcasting.action.hexical:stonecut": "Cut Stone",
+ "hexical.page.stonecut.summary": "Takes an item entity and cuts the item into the shape of an item identifier. Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
+ "hexical.page.stonecut.description": "The target item must be possible to carve from the source item in a $(item)Stonecutter$(). For instance, $(item)Stone$() can be cut into all manners of stairs, slabs, and walls.$(br2)$(o)I saw the angel in the marble and carved until I set him free.$()",
"hexical.page.circle_spells.title": "Circle Spells",
- "hexical.page.circle_spells.0": "When the _media courses through the boundaries of a $(l:greatwork/spellcircles)circle$(), it saturates the domain inside with _media, allowing far greater magical effects and flexibility of _media manipulation than I am used to. The following are some spells which rely on that increased density of _media and are to only be cast by an $(l:greatwork/impetus)impetus$().",
+ "hexical.page.circle_spells.0": "When the _media courses through the boundaries of a $(l:greatwork/spellcircles)$(thing)circle$(), it saturates the domain inside with _media, allowing far greater magical effects and flexibility of _media manipulation than I am used to. The following are some spells which rely on that increased density of _media or properties of the $(l:greatwork/spellcircles)circle$() itself and are to only be cast by an $(l:greatwork/impetus)$(item)Impetus$().",
"hexcasting.action.hexical:displace": "Displace",
- "hexical.page.displace.summary": "Teleports an entity within the $(l:greatwork/spellcircles)circle$() to any other point inside within the same $(l:greatwork/spellcircles)circle$(). Unlike $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), this spell takes in world coordinates rather than an offset. Free.",
+ "hexical.page.displace.summary": "Teleports an entity within the $(l:greatwork/spellcircles)circle$() to another point within the same $(l:greatwork/spellcircles)$(thing)circle$(). Unlike $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), this spell takes in world coordinates rather than an offset. Free.",
+ "hexcasting.action.hexical:absorb_arm": "Appendage",
+ "hexical.page.absorb_arm.summary": "Allows a $(l:greatwork/spellcircles)circle$() to hook onto a $(l:items/pedestal)$(item)Pedestal$() within ambit to use as its $(o)other arm$(). Useful for certain spells that demand an item held in my other hand. Free.",
+ "hexcasting.action.hexical:create_dust": "Export Media",
+ "hexical.page.create_dust.summary": "Exports _media out of an $(l:greatwork/impetus)$(item)Impetus$() at a rate of about eleven $(l:items/amethyst)$(item)Amethyst Dust$() spent per ten $(l:items/amethyst)$(item)Amethyst Dust$() created. Takes a location and a number of up to a stack of $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.evocation.title": "Evocation",
"hexical.page.evocation.0": "_Media is the energy of thought, so it stands to reason that I should be able to simply $(o)think$() magic into existence rather than waving around a $(item)$(l:items/staff)Staff$(). After all, I have roughly two chunks' worth of $(l:items/amethyst)$(item)Charged Amethyst$() in me at my prime, double that of my $(l:items/staff)$(item)Staff$(). While I can not yet shift arbitrary effects into reality, I can bring it forth a prepared _Hex with a mere gesture, taking _media from my inventory.",
@@ -624,6 +621,14 @@
"hexcasting.action.hexical:set_hotbar": "Switch",
"hexical.page.set_hotbar.summary": "Takes a number 0 to 8 and switches my current item to it.$(br2)$(o)Remember, switching to your pistol is always faster than reloading.$()",
+ "hexical.page.lesser_sentinels.title": "Lesser Sentinels",
+ "hexical.page.lesser_sentinels.0": "A bit of sentinel theory: a $(l:patterns/spells/sentinels)$(thing)Sentinel$() is metaphysically-detached shard of my $(thing)Self$(). I can banish, query, and summon it via link but each interaction requires a bit of _media to facilitate the \"handshake\". I can $(l:patterns/great_spells/greater_sentinel)$(action)give even more of my $(thing)Self$(), essentially creating a separate yet near-equally conscious fragment that can cast _Hexes beyond my regular reach and even \"walk\".",
+ "hexical.page.lesser_sentinels.1": "$(thing)Lesser Sentinels$() are a more diminutive construction: little more than a tagged pocket of _media blessed with a whisper of my $(thing)Self$(). They are just enough to hold their ground where deployed and to be visible to me.$(br2)Due to their lesser sentience, I can establish connections, reposition, banish, and bring forth more of them with ease. I can only have one $(l:patterns/spells/sentinels)$(thing)Sentinel$() out at once; I can have a virtually endless number of $(thing)Lesser Sentinels$().",
+ "hexcasting.action.hexical:set_lesser_sentinels": "Deploy Sentinels",
+ "hexical.page.set_lesser_sentinels.summary": "Dismisses any existing $(thing)Lesser Sentinels$() and deploys a $(thing)Lesser Sentinel$() at every position in the list.",
+ "hexcasting.action.hexical:get_lesser_sentinels": "Infiltration Reflection",
+ "hexical.page.get_lesser_sentinels.summary": "Returns a list of vectors corresponding to the positions of all my $(thing)Lesser Sentinels$().",
+
"hexical.page.pyrotechnics.title": "Pyrotechnics",
"hexical.page.pyrotechnics.0": "I have stumbled across some spells related to pyrotechnics. The _media hums quite festively around the patterns, as if they were once used for grand celebrations, although I shudder to imagine how effective they'd be as a weaponized projectile.$(br2)$(o)You don’t need to say anything. Just watch the fireworks.$()",
"hexcasting.action.hexical:simulate_firework": "Simulate Firework",
@@ -650,23 +655,26 @@
"hexcasting.action.hexical:shader_spider": "Split Vision",
"hexical.page.shader_spider.summary": "Splits my vision into multiple sections, similar to what a spider might see. I am unsure whether it actually grants me more vision...",
- "hexical.page.lesser_sentinels.title": "Lesser Sentinels",
- "hexical.page.lesser_sentinels.0": "A bit of sentinel theory: a $(l:patterns/spells/sentinels)$(thing)Sentinel$() is metaphysically-detached shard of my $(thing)Self$(). I can banish, query, and summon it via link but each interaction requires a bit of _media to facilitate the \"handshake\". I can $(l:patterns/great_spells/greater_sentinel)$(action)give even more of my $(thing)Self$(), essentially creating a separate yet near-equally conscious fragment that can cast _Hexes beyond my regular reach and even \"walk\".",
- "hexical.page.lesser_sentinels.1": "$(thing)Lesser Sentinels$() are a more diminutive construction: little more than a tagged pocket of _media blessed with a whisper of my $(thing)Self$(). They are just enough to hold their ground where deployed and to be visible to me.$(br2)Due to their lesser sentience, I can establish connections, reposition, banish, and bring forth more of them with ease. I can only have one $(l:patterns/spells/sentinels)$(thing)Sentinel$() out at once; I can have a virtually endless number of $(thing)Lesser Sentinels$().",
- "hexcasting.action.hexical:set_lesser_sentinels": "Deploy Sentinels",
- "hexical.page.set_lesser_sentinels.summary": "Dismisses any existing $(thing)Lesser Sentinels$() and deploys a $(thing)Lesser Sentinel$() at every position in the list.",
- "hexcasting.action.hexical:get_lesser_sentinels": "Infiltration Reflection",
- "hexical.page.get_lesser_sentinels.summary": "Returns a list of vectors corresponding to the positions of all my $(thing)Lesser Sentinels$().",
+ "hexical.page.horrible.title": "Horrible",
+ "hexical.page.horrible.0": "Of all the spells I have discovered in my exploration of ancient _Hexcasting notes, there has not been a single pattern remotely like this one. I believe its existence is proof of some greater force that had compelled _Hexcasters to draw it.$(br2)$(o)How does one even begin to draw this, let alone discover it?$()",
+ "hexcasting.action.hexical:horrible": "Horrible",
+ "hexical.page.horrible.summary": "Judging by the pattern signature, I can only imagine that it summons something.",
"hexcasting.action.hexical:charm": "Charm",
- "hexical.page.charm.0": "The $(l:patterns/great_spells/charm)$(action)Charm$() spell transforms any item into a self-contained magical item, not unlike a $(l:items/hexcasting)$(item)Cypher$(). They have a battery of _media, disenchant when empty, and can't be recharged or reprogrammed. $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() removes the charm.$(br2)$(o)Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.$()",
+ "hexical.page.charm.0": "The $(l:patterns/great_spells/charm)$(action)Charm$() spell transforms any item into a self-contained magical item, not unlike a $(l:items/hexcasting)$(item)Cypher$(). They have a battery of _media, disenchant when empty, and can't be recharged or reprogrammed.$(br2)$(o)Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.$()",
"hexical.page.charm.1": "Charmed items also have a few special features that distinguish them from any other $(l:items/hexcasting)$(item)casting device$().$(br2)They have two patterns for interfacing with an internal iota storage within them. This storage can only be read from and written to within the charmed item.$(br2)They also have the power of input interception.",
- "hexical.page.charm.summary": "Charms an item with a _Hex of your choice. Takes the _Hex and the amount of _media to bestow in $(l:items/amethyst)$(item)Amethyst Dust$(). Consumes a battery and three $(l:items/amethyst)$(item)Charged Amethyst$().",
- "hexical.page.charm.description": "The final parameter of the spell is an integer 0 to 15, encoding $(thing)$(k:attack)$(), $(thing)$(k:sneak) $(k:attack)$(), $(thing)$(k:use)$(), and $(thing)$(k:sneak) $(k:use)$() respectively from most significant bit to least.$(br2)When you attempt to use the item in a way that corresponds to a true bit, the charm intercepts the original item's function and casts the _Hex instead. The stack starts with a number from zero to three corresponding to the input.",
+ "hexical.page.charm.summary": "$(br)Charms an item. Takes the _Hex and the amount of _media to bestow in $(l:items/amethyst)$(item)Amethyst Dust$(). Consumes the battery and about three $(l:items/amethyst)$(item)Charged Amethyst$().",
+ "hexical.page.charm.description": "The four booleans correspond to attacking, sneak-attacking, using, and sneak-using.$(br2)When I use a charmed item with an intent set as true, the charm casts the _Hex in place of the original function. It starts the stack with a number corresponding to the button pressed, 0 for attacking and 1 for using.$(br2)Charmed items can also pick up additional intents, pushing numbers up to seven.",
"hexcasting.action.hexical:write_charmed": "Charmed Gambit",
"hexical.page.write_charmed.summary": "Writes an iota to the charmed item’s internal storage. Subject to the Transgress Others mishap.",
"hexcasting.action.hexical:read_charmed": "Charmed Reflection",
"hexical.page.read_charmed.summary": "Pushes the stored iota from the charmed item’s internal storage.",
+ "hexcasting.action.hexical:write_charmed_proxy": "Charmed Gambit II",
+ "hexical.page.write_charmed_proxy.summary": "If the item charged features an iota storage by default, such as a $(l:items/focus)$(item)Focus$(), writes an iota into it.",
+ "hexcasting.action.hexical:read_charmed_proxy": "Charmed Reflection II",
+ "hexical.page.read_charmed_proxy.summary": "If the item charged features an iota storage by default, such as a $(l:items/focus)$(item)Focus$(), reads an iota from it.",
+ "hexcasting.action.hexical:discharm": "Discharm",
+ "hexical.page.discharm.summary": "Removes a charm from an item without affecting any other property. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexcasting.action.hexical:greater_blink": "Greater Blink",
"hexical.page.greater_blink.0": "Greater Blink is a significantly cheaper alternative to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(). It also does not carry the risk of splattering my items upon arrival. However, it only has pitiful range compared to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$() and its destination calculations are... esoteric. Its target is also exclusively myself.",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index ea5dd09877e6..bc6a9b764165 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -1,18 +1,20 @@
{
"advancements.hexical.arch_lamp.title": "守护精灵",
- "advancements.hexical.arch_lamp.description": "获得大精灵神灯。",
+ "advancements.hexical.arch_lamp.description": "获得大精灵神灯",
"advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
- "advancements.hexical.reload_lamp.description": "为神灯重新充能。",
+ "advancements.hexical.reload_lamp.description": "为神灯重新充能",
"advancements.hexical.educate_genie.title": "新秩序",
- "advancements.hexical.educate_genie.description": "向精灵传授新的指示。",
+ "advancements.hexical.educate_genie.description": "向精灵传授新的指示",
"advancements.hexical.lamp.title": "可造之材",
- "advancements.hexical.lamp.description": "获得精灵神灯。",
- "advancements.hexical.augmented_reality.title": "增强现实",
- "advancements.hexical.augmented_reality.description": "构筑一个视斑。",
+ "advancements.hexical.lamp.description": "获得精灵神灯",
+ "advancements.hexical.specklike.title": "集成现实",
+ "advancements.hexical.specklike.description": "和增强现实差不多,只不过更加现实",
"advancements.hexical.diy_conjuring.title": "构筑DIY!",
- "advancements.hexical.diy_conjuring.description": "为术士方块附加改进。",
+ "advancements.hexical.diy_conjuring.description": "为术士方块附加改进",
"advancements.hexical.conjure_hexxy.title": "构筑Hexxy",
- "advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态。",
+ "advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态",
+ "advancements.hexical.conjure_cake.title": "蛋糕是个谎言",
+ "advancements.hexical.conjure_cake.description": "从一位神秘的恩人那里召来一块免费的蛋糕",
"advancements.hexical.hallucinate.title": "只在我的脑海里",
"advancements.hexical.hallucinate.description": "播放一段只有你能听见的声音!",
@@ -83,7 +85,7 @@
"subtitles.hexical.lamp_activate": "神灯:启动",
"subtitles.hexical.lamp_deactivate": "神灯:终止",
"subtitles.hexical.player_slurp": "玩家:啜饮",
- "subtitles.hexical.replenish_air": "空气:出现",
+ "subtitles.hexical.replenish_air": "肺:充气",
"subtitles.hexical.scarab_chirps": "圣甲虫:吱吱",
"subtitles.hexical.sudden_realization": "点子:出现",
"tooltip.hexical.scroll_aged": "陈化",
@@ -104,6 +106,7 @@
"hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
"hexcasting.mishap.bad_block.mage_block": "一个术师方块",
+ "hexcasting.mishap.bad_block.pedestal": "一个支座",
"hexcasting.mishap.bad_block.flower_spawnable": "空气或一个花盆",
"hexcasting.mishap.bad_block.rotatable": "一个有朝向区分的方块",
"hexcasting.mishap.bad_block.solid_platform": "一个固体平台",
@@ -127,6 +130,7 @@
"hexcasting.mishap.bad_item.target.smoking": "一个可在烟熏炉中烧炼的物品",
"hexcasting.mishap.bad_item.target.blasting": "一个可在高炉中烧炼的物品",
"hexcasting.mishap.bad_item.target.stonecutting": "一个可在切石机中切制的物品",
+ "hexcasting.mishap.bad_item.uncharmed": "一个非咒符物品",
"hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
"hexcasting.mishap.invalid_value.horizontal_axis_vector": "一个水平轴向向量",
"hexcasting.mishap.invalid_value.class.dye": "一个染料",
@@ -205,15 +209,17 @@
"hexical.page.animated_scroll.title": "活线卷轴",
"hexical.page.animated_scroll.0": "$(item)活线卷轴$()中混有一小份紫水晶,其上墨迹会像$(l:items/staff)$(item)法杖$()绘制出的图案那样颤动。$(item)活线卷轴$()的神奇之处还不止于此,它还能展示图案列表。$(br2)$(o)不带点疯劲,怎么能叫作家呢?$()",
"hexical.page.animated_scroll.1": "卷轴上的图案可随意重绘,也可从卷轴中读出图案。这类卷轴只接受$(l:patterns/patterns_as_iotas)图案列表$(),单个$(l:patterns/patterns_as_iotas)图案 iota$() 会自动置入列表之中。$(item)活线卷轴$()会依次展示单个图案,图案每秒切换一次。就算是在不同时间点向两份卷轴写入同一图案列表,最后两者也会建立同步。",
- "hexical.page.animated_scroll.2": "后页记录了一些用来操纵$(item)活线卷轴$()的法术。再次施放法术就能消除大部分此类法术产生的效果。它们都无需消耗$(media)媒质$()。",
+ "hexical.page.animated_scroll.2": "纸页里渗入的$(l:items/amethyst)$(item)紫水晶$()可用于操纵$(item)活线卷轴$()的样式,而且无需消耗$(media)媒质$()。$(br2)我在后页记录了这些图案。$(br2)再补充一遍,常规的读写图案就可远程读写此类卷轴。",
+ "hexcasting.action.hexical:normalize_scroll": "恢复卷轴",
+ "hexical.page.normalize_scroll.summary": "将卷轴的纸页恢复到未经改动的状态。",
"hexcasting.action.hexical:age_scroll": "陈化卷轴",
"hexical.page.age_scroll.summary": "令$(item)活线卷轴$()的纸页泛黄,产物和我找到的一些远古卷轴极为相似。",
+ "hexcasting.action.hexical:vanish_scroll": "隐消卷轴",
+ "hexical.page.vanish_scroll.summary": "使得$(item)活线卷轴$()的纸张隐形,图案保留不变,看上去就像图案被蚀刻在方块表面一样。",
"hexcasting.action.hexical:color_scroll": "色染墨迹",
"hexical.page.color_scroll.summary": "改变$(item)活线卷轴$()墨迹的颜色,具体由所给向量决定;各分量对应红、绿、蓝,取值范围为 0 到 1。",
"hexcasting.action.hexical:glow_scroll": "点亮墨迹",
"hexical.page.glow_scroll.summary": "使得$(item)活线卷轴$()的墨迹在所有光照条件下均发光。",
- "hexcasting.action.hexical:vanish_scroll": "隐消卷轴",
- "hexical.page.vanish_scroll.summary": "使得$(item)活线卷轴$()的纸张隐形,图案保留不变,看上去就像图案被蚀刻在方块表面一样。",
"hexical.page.hex_candle.title": "咒术蜡烛",
"hexical.page.hex_candle.0": "首次以$(l:patterns/spells/prestidigitation)魔法$()或$(item)打火石$()点燃后,这些漂亮的小蜡烛上会燃起苍白色的火焰。把它泡在水里也似乎无法让其熄灭。若有人与其交互,它会复制该人的染色剂。也可以手持染色剂物品右击直接改变它的颜色。熄灭则需$(thing)$(k:sneak)+$(k:use)$()。",
@@ -279,8 +285,8 @@
"hexical.page.lamp_finale.arch": "停止$(item)大精灵神灯$()时,它会额外施法一次。我可以使用$(l:lamp/hand_lamps#hexical:lamp_finale)$(action)终局之精思$()来判断某一次施法是否是最后的残响。",
"hexical.page.hand_lamps.title": "手持式灯壶",
- "hexical.page.hand_lamps.0": "我终于找到了上千年传言中说的东西了!如此强大的物件居然是在一位流浪商人的手里。这件$(item)手持式神灯$()仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。我还感受到$(item)神灯$()里有一个存在,它的施法能力与我相当。",
- "hexical.page.hand_lamps.1": "感觉没错,$(item)神灯$()里有一个$(o)活着的、有智慧的$()意识,但究竟是何种魔法维持了它的生命又把它困在灯里,我不得而知。若不管$(item)神灯$()的可怖用途,它的设计可谓巧如天工。按住触发按钮时,我的图案会送至所召唤的灯内“精灵”,它便会施放,出于绝望和无聊。",
+ "hexical.page.hand_lamps.0": "我终于找到了上千年传言中说的东西了!如此物件居然是在一位流浪商人的手里。这件$(item)手持式神灯$()仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。我还感受到$(item)神灯$()里有一个存在,它的施法能力与我相当。",
+ "hexical.page.hand_lamps.1": "感觉没错,$(item)神灯$()里有一个$(o)活着的、有智慧的$()意识,但究竟是何物维持了它的生命又把它困在灯里,我不得而知。若不管$(item)神灯$()的可怖用途,它的设计可谓巧如天工。按住触发按钮时,我的图案会送至所召唤的灯内“精灵”,它便会施放,出于绝望和无聊。",
"hexcasting.action.hexical:wish": "许愿",
"hexical.page.wish.summary": "向精灵许愿,希望它能为我施放$(hex)咒术$()。而因为我是在$(o)教导$()意识,而非$(o)蚀刻$()$(l:items/hexcasting)$(item)施法物品$(),可在后续任意时刻教导精灵新$(hex)咒术$(),不会因此损失$(media)媒质$()。",
"hexical.page.hand_lamps.2": "说它是在施法有些低估它了。$(o)$(l)每一时刻$()它都在施法。许愿后拿着它,一束精确而又永不停歇的$(media)媒质$()流迎面而来。我只能估计施法速度大概是在每秒二十次。$(item)神灯$()中的存在会以极高的效率施法,并且不会像其他施法手段那样产生大量声音和粒子。",
@@ -308,7 +314,7 @@
"hexical.page.genie_lore.2": "$(item)神灯$()似乎能够存下无限多的$(media)媒质$()。要是原来有$(media)媒质$()时去充能,它的容量只会相应增加。真可谓是$(hex)咒法学$()科技树上的奇观。",
"hexical.page.genie_lore.3": "在进一步的考察后,我发现$(item)神灯$()中的精灵似乎只是极为简单的思维与$(media)媒质$()网络,简单到甚至像人力所为。我认为这不太能叫生物,更像是$(o)咒灵$()。把它换成更加复杂、具有$(o)感知力$()的意识,带来的或许就是质变。所需的意识必须品质极高,经过处理后还需保留些许能力;花费一生精进手艺的村民应该足够。",
"hexcasting.action.hexical:promote_lamp": "晋升神灯",
- "hexical.page.promote_lamp.summary": "在另一只手中持有神灯时施放。消耗大约 10 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+ "hexical.page.promote_lamp.summary": "在另一只手中持有神灯时施放。消耗大约 10 个$(l:items/amethyst)$(item)充能紫水晶$()和所需祭品。",
"hexical.page.arch_lamps.title": "大精灵神灯",
"hexical.page.arch_lamps.0": "$(item)神灯$()飞出了我的手,停在了村民面前,然后把村民整个吸了进去,$(item)神灯$()自己也因此发生了变化。这些$(item)大精灵神灯$()中的强大意识对应的是“启动”和“停止”,而非“使用”。而当其启用后并处于我物品栏中时,它们会每时每刻施法。捡起一个会自动将其停止,可能是某种安全措施。",
@@ -333,7 +339,7 @@
"hexical.page.pedestal_circles.title": "法术环中的支座",
"hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)支座$()有魔力!$(br2)如果其中存在$(l:patterns/readwrite#hexcasting:write)$(item)带有信息的物品$(),同时还有$(l:greatwork/spellcircles)$(thing)法术环$()的媒质波如穿过$(l:items/slate)$(item)石板$()一样流过,那么它就会把物品中的 iota 压入栈顶。如果$(l:items/pedestals)$(thing)支座$()恰好处于未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$()中,该 iota 便会出现在所创建的列表内。",
- "hexical.page.pedestal_circles.1": "如果直接把$(l:items/pedestals)$(item)支座$()放在$(l:greatwork/spellcircles)$(item)促动石$()上方,那么它就会变成法术环的$(o)另一只手$(),适用于$(l:patterns/spells/hexcasting)合成施法物品等法术$()、$(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)重新充能$(),以及$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()。$(br2)有关法术也包括$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()还有$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()。可借此让$(l:greatwork/spellcircles)$(thing)法术环$()自动向$(l:items/focus)$(item)核心$()写入。",
+ "hexical.page.pedestal_circles.1": "$(l:greatwork/spellcircles)$(item)促动石$()会将$(l:items/pedestals)$(item)支座$()$(l:patterns/spells/circle_spells#hexical:absorb_arm)用作$()法术环的$(o)另一只手$(),适用于$(l:patterns/spells/hexcasting)合成施法物品等法术$()、$(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)重新充能$(),以及$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()。$(br2)很适合用于自动为$(l:items/hexcasting)施法物品$()$(l:patterns/spells/hexcasting#hexcasting:recharge)充能$()。",
"hexical.page.patterns.title": "图案操作",
"hexical.page.patterns.0": "我发现了一系列图案,主要用于操纵及构造$(l:patterns/patterns_as_iotas)图案$()。奇怪的是,这些图案也能构造出$(l:items/staff)$(item)法杖$()$(o)无法$()绘制的图案,好在自然应该不会为这些“非法”图案分配实际作用。可以认为$(l:items/scarab)$(item)圣甲虫$()能随意使用它们。",
@@ -380,11 +386,8 @@
"hexical.page.jumping.summary": "压入我按下$(thing)$(k:jump)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
"hexcasting.action.hexical:sneaking": "潜行之精思",
"hexical.page.sneaking.summary": "压入我按下$(thing)$(k:sneak)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
-
- "hexical.page.horrible.title": "可怕的东西",
- "hexical.page.horrible.0": "就我在$(hex)咒法学$()中遇到的所有法术而言,我都还没遇见过这种东西。$(o)到底要怎么画啊?$()",
- "hexcasting.action.hexical:horrible": "召唤?",
- "hexical.page.horrible.summary": "从图案的参数签名来看,我只能推测出它是会召唤个什么。",
+ "hexcasting.action.hexical:scroll": "滚动之精思",
+ "hexical.page.scroll.summary": "压入我在$(thing)心灵感应$()后滚轮滚动的量。",
"hexical.page.akashic_conveniences.title": "阿卡夏实用图案",
"hexical.page.akashic_conveniences.0": "阿卡夏图书馆正是为用$(media)媒质$()存储信息而建,深入研究后能发现更多便捷操作也就不足为奇。我可以对经过写入的$(l:greatwork/akashiclib)$(item)书架$()按下$(thing)$(k:use)$()或使用$(l:patterns/spells/prestidigitation)魔法交互$(),以将其中 iota 复制到栈中。也可手持$(l:items/scroll)$(item)卷轴$()按下$(thing)$(k:use)$(),以将其图案键复制到其上。还有一系列图案能向影响范围内的$(l:greatwork/akashiclib)$(item)书架$()和$(l:items/slate)$(item)石板$()写入与读取,无需消耗$(media)媒质$()。",
@@ -397,30 +400,6 @@
"hexcasting.action.hexical:clear_shelf": "图书管理员之策略,第二型",
"hexical.page.clear_shelf.summary": "清除给定的$(l:greatwork/akashiclib)$(item)阿卡夏书架$()。",
- "hexical.page.block_mimicry.title": "方块模仿",
- "hexical.page.block_mimicry.0": "$(hex)咒法学$()是项多用途的技艺。比如说,原本需要方块才能执行的操作,现在可以用$(media)媒质$()模拟,无需任何外物。仅用法杖,就可$(l:patterns/spells/block_mimicry#hexical:stonecut)把石头切成楼梯$(),$(l:patterns/spells/block_mimicry#hexical:dispense)发射箭矢$(),还可自动化向容器$(l:patterns/spells/block_mimicry#hexical:hopper_in)放入$()和从容器$(l:patterns/spells/block_mimicry#hexical:hopper_out)取出$()物品。",
- "hexical.page.block_mimicry.1": "传说中古代的$(hex)咒术师们$()不费一方一块就建立起了一整座魔法工厂。$(br2)$(o)我要更大的办公室,要更大的椅子$(br)要更大的桌子,要更大的法杖$(br)还要顶更好的帽子",
- "hexcasting.action.hexical:dispense": "发射",
- "hexical.page.dispense.summary": "接受一个物品实体、一个位置、一个轴向向量,并依此发射物品。对大多数使用环境而言,消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.dispense.description": "具体而言,此法术相当于触发一个装有所给物品的发射器。$(br2)如果此法术涉及到任意种类的$(item)箭$(),消耗便涨至 1 个$(l:items/amethyst)$(item)充能紫水晶$()。不知道为什么自然对此类应用的反应如此剧烈。也许是不想让我变得太强?$(br2)$(o)如有要求,我也会执行拥抱。$()",
- "hexcasting.action.hexical:smelt": "烧炼",
- "hexical.page.smelt.summary": "接受一个物品实体,并像$(item)熔炉$()一样烧炼它。$(item)熔炉$()每需烧炼 10 秒消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:roast": "烤制",
- "hexical.page.roast.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)营火$()。它的适用范围更窄;大概是永远都用不上了。",
- "hexcasting.action.hexical:smoke": "烟熏",
- "hexical.page.smoke.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)烟熏炉$()。它只能处理食物,但速度更快,变相降低消耗。",
- "hexcasting.action.hexical:blast": "高炉烧炼",
- "hexical.page.blast.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)高炉$()。它只能处理矿石,但速度更快,变相降低消耗。",
- "hexcasting.action.hexical:stonecut": "切石",
- "hexical.page.stonecut.summary": "接受一个物品实体,将所给物品实体切制为目标物品的形状。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.stonecut.description": "目标物品必须可由所给物品在$(item)切石机$()中加工而成。比如说,$(item)石头$()可切制为楼梯、台阶、墙。$(br2)$(o)我在大理石中看见天使,于是我不停地雕刻,直至使他自由。$()",
- "hexcasting.action.hexical:hopper_in": "存放",
- "hexical.page.hopper_in.summary": "接受一个物品实体,一个容器的位置,一个轴向向量。若可行,此法术会从给定面存放所给物品。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.hopper_in.description": "如果目标方块不是容器,或方块已满,或由于其他原因无法放入物品,则什么都不会发生。溢出容器的物品会留在原本的物品实体内。$(br2)$(o)如有要求,我也会执行拥抱。$()",
- "hexcasting.action.hexical:hopper_out": "取回",
- "hexical.page.hopper_out.summary": "接受一个投物位置向量,一个容器的位置,一个轴向向量。此法术会从给定方块的给定面取出单个物品,并压入栈顶。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.hopper_out.description": "如果无物可取,则法术会返回 $(l:casting/influences)$(thing)Null$()。同一时刻只会取出一个物品,与漏斗类似。$(br2)$(o)如有要求,我也会执行拥抱。$()",
-
"hexical.page.mage_block.title": "术师方块",
"hexical.page.mage_block.0": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
"hexcasting.action.hexical:conjure_mage_block": "构筑术师方块",
@@ -573,11 +552,11 @@
"hexical.page.parrot.summary": "在某位置附近发出一阵与某生物有关的声音,就好像鹦鹉模仿了那个生物的声音一样。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.parrot.description": "如果鹦鹉无法模仿声音,此法术便不会有功效,但仍会消耗$(media)媒质$()。$(br2)我觉得这大概只能用来给朋友和敌人开玩笑。也许自然真的允许我偶尔用$(hex)咒术$()找找乐子。$(br2)$(o)嘶嘶嘶嘶嘶……$()",
- "hexical.page.meta_effects.title": "咒法学效果",
- "hexcasting.action.hexical:effect_clouding": "雾濛西沉",
- "hexical.page.effect_clouding.summary": "给予$(thing)蒙翳$()——会阻碍$(hex)咒法学$()视野的效果。每 3 秒持续时间的基础消耗为大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。消耗量按$(l:patterns/spells/nadirs)天底法术$()计算。",
- "hexcasting.action.hexical:effect_clarity": "晴朗当空",
- "hexical.page.effect_clarity.summary": "给予$(thing)明晰$()——会延展$(hex)咒法学$()视野的效果。每 1 秒持续时间的基础消耗为大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。消耗量按$(l:patterns/great_spells/zeniths)天顶法术$()计算。",
+ "hexical.page.break_special.title": "特种破坏",
+ "hexcasting.action.hexical:break_fortune": "提取方块",
+ "hexical.page.break_fortune.summary": "瞄准方块结构中的弱电,从而提供产量。强度参数为 0、1、2 时相应消耗大约 1、3、5 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:break_silk": "采集方块",
+ "hexical.page.break_silk.summary": "轻柔地破坏方块,从而更好地保留方块构造。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.conjurable_delights.title": "构筑小物件",
"hexical.page.conjurable_delights.0": "古代的$(hex)咒术师们$()似乎研究过多种构筑物品的法术,以精进自身的技艺,或是方便多人合作。所得的物品大多只能笼统归入$(o)也许$()可食用的范畴。$(br2)$(o)若要向其他人表善意,没有什么比为他们端上热腾腾的早餐更合适的了。$()",
@@ -599,14 +578,32 @@
"hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会在缓慢缩回前造成高达三颗心的伤害。若在已经触发尖刺的位置重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
- "hexical.page.tchotchke.title": "杂饰",
- "hexcasting.action.hexical:conjure_tchotchke": "构筑杂饰",
- "hexical.page.conjure_tchotchke.summary": "在所给位置处使用给定$(media)媒质$()量构筑$(item)杂饰$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$(),同时消耗存入储库的$(media)媒质$()。",
+ "hexical.page.block_mimicry.title": "方块模仿",
+ "hexical.page.block_mimicry.0": "$(hex)咒法学$()是项多用途的技艺。比如说,原本需要方块才能执行的操作,现在可以用$(media)媒质$()模拟,无需任何外物。仅用法杖,就可$(l:patterns/spells/block_mimicry#hexical:stonecut)把石头切成楼梯$(),$(l:patterns/spells/block_mimicry#hexical:dispense)发射箭矢$(),$(l:patterns/spells/block_mimicry#hexical:smelt)烧炼$()物品。",
+ "hexical.page.block_mimicry.1": "传说中古代的$(hex)咒术师们$()一方一块都没有放置就建立起了一整座魔法工厂。$(br2)$(o)我要更大的办公室,要更大的椅子$(br)要更大的桌子,要更大的法杖$(br)还要顶更好的帽子",
+ "hexcasting.action.hexical:dispense": "发射",
+ "hexical.page.dispense.summary": "接受一个物品实体、一个位置、一个轴向向量,并依此发射物品。对大多数使用环境而言,消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.dispense.description": "具体而言,此法术相当于触发一个装有所给物品的发射器。$(br2)如果此法术涉及到任意种类的$(item)箭$(),消耗便涨至 1 个$(l:items/amethyst)$(item)充能紫水晶$()。不知道为什么自然对此类应用的反应如此剧烈。也许是不想让我变得太强?$(br2)$(o)如有要求,我也会执行拥抱。$()",
+ "hexcasting.action.hexical:smelt": "烧炼",
+ "hexical.page.smelt.summary": "接受一个物品实体,并像$(item)熔炉$()一样烧炼它。$(item)熔炉$()每需烧炼 10 秒消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexcasting.action.hexical:roast": "烤制",
+ "hexical.page.roast.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)营火$()。它的适用范围更窄;大概是永远都用不上了。",
+ "hexcasting.action.hexical:smoke": "烟熏",
+ "hexical.page.smoke.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)烟熏炉$()。它只能处理食物,但速度更快,变相降低消耗。",
+ "hexcasting.action.hexical:blast": "高炉烧炼",
+ "hexical.page.blast.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)高炉$()。它只能处理矿石,但速度更快,变相降低消耗。",
+ "hexcasting.action.hexical:stonecut": "切石",
+ "hexical.page.stonecut.summary": "接受一个物品实体,将所给物品实体切制为目标物品的形状。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
+ "hexical.page.stonecut.description": "目标物品必须可由所给物品在$(item)切石机$()中加工而成。比如说,$(item)石头$()可切制为楼梯、台阶、墙。$(br2)$(o)我在大理石中看见天使,于是我不停地雕刻,直至使他自由。$()",
"hexical.page.circle_spells.title": "法术环法术",
- "hexical.page.circle_spells.0": "媒质流穿梭于$(l:greatwork/spellcircles)法术环$()中,其囊括的区域因而充盈着$(media)媒质$(),产生强大魔法效果和灵活控制其中$(media)媒质$()也就不再是难事。我将需要这种增浓媒质场的法术记载后页,它们只可由$(l:greatwork/impetus)促动石$()施放。",
+ "hexical.page.circle_spells.0": "媒质流穿梭于$(l:greatwork/spellcircles)$(thing)法术环$()中,其囊括的区域因而充盈着$(media)媒质$(),产生强大魔法效果和灵活控制其中$(media)媒质$()也就不再是难事。后页记载了需要这种增浓媒质场或$(l:greatwork/spellcircles)$(thing)法术环$()自身属性的法术,它们只可由$(l:greatwork/impetus)$(item)促动石$()施放。",
"hexcasting.action.hexical:displace": "转移",
- "hexical.page.displace.summary": "无需任何媒质,就可将$(l:greatwork/spellcircles)环$()中实体传送至同一$(l:greatwork/spellcircles)法术环$()中任意一处。与$(l:patterns/great_spells/teleport)$(action)卓越传送$()不同在于,此法术接受的是绝对坐标。无需消耗$(media)媒质$()。",
+ "hexical.page.displace.summary": "无需任何媒质,就可将$(l:greatwork/spellcircles)$(thing)环$()中实体传送至同一$(l:greatwork/spellcircles)$(thing)法术环$()中任意一处。与$(l:patterns/great_spells/teleport)$(action)卓越传送$()不同在于,此法术接受的是绝对坐标。无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:absorb_arm": "附肢",
+ "hexical.page.absorb_arm.summary": "将$(l:greatwork/spellcircles)法术环$()连接至影响范围内的$(l:items/pedestal)$(item)支座$(),以将其视作$(o)另一只手$()。适合需要另一只手中持有物品的法术。无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:create_dust": "导出媒质",
+ "hexical.page.create_dust.summary": "导出$(l:greatwork/impetus)$(item)促动石$()中的$(media)媒质$(),每清除大约 11 个$(l:items/amethyst)$(item)紫水晶粉$()产出 10 个$(l:items/amethyst)$(item)紫水晶粉$()。需提供一个位置和代表$(l:items/amethyst)$(item)紫水晶粉$()数量的数,最多接受一组。",
"hexical.page.evocation.title": "唤咒",
"hexical.page.evocation.0": "$(media)媒质$()是思维的能量,则逻辑推理可得,我应当能够直接把$(o)脑海中$()的魔法变为现实,而不需要挥舞$(item)$(l:items/staff)法杖$(),毕竟我在最优状态下大约相当于 2 个$(l:items/amethyst)$(item)充能紫水晶$(),是$(l:items/staff)$(item)法杖$()的两倍。我的意识目前还不够强大,无法随意将想法化作现实,不过挥挥手唤出已蚀刻入意识的$(hex)咒术$()还是可以的。这么做会消耗我物品栏中的$(media)媒质$()。",
@@ -624,6 +621,14 @@
"hexcasting.action.hexical:set_hotbar": "换手",
"hexical.page.set_hotbar.summary": "接受一个 0 到 8 的数,并将我当前持有的物品放至该栏位。$(br2)$(o)记住,换把枪比换弹夹快。$()",
+ "hexical.page.lesser_sentinels.title": "初等哨卫",
+ "hexical.page.lesser_sentinels.0": "先插入一段哨卫理论:$(l:patterns/spells/sentinels)$(thing)哨卫$()是$(thing)自我$()在形而上学层面上剥离出的碎片。我可通过此关系驱除、请求、召唤哨卫,但每次交互都需要些许$(media)媒质$()用来“握手”。我可以$(l:patterns/great_spells/greater_sentinel)$(action)剥出更多的$(thing)自我$(),本质上相当于制造出了独立且近乎具有意识的碎片——它们能在我常规的影响范围之外施放$(hex)咒术$(),甚至还可“移动”。",
+ "hexical.page.lesser_sentinels.1": "$(thing)初等哨卫$()则更为简单:它基本就是带有一丝$(thing)自我$()的$(media)媒质$()口袋,大概只够在部署后维持存在,也大概只够它被我看见。$(br2)由于其感知力较弱,我可轻松与多个此类哨卫建立连接,也可轻易移动、驱除、构筑更多。$(l:patterns/spells/sentinels)$(thing)哨卫$()同一时刻只能存在一个,$(thing)初等哨卫$()则几乎没有数量限制。",
+ "hexcasting.action.hexical:set_lesser_sentinels": "部署哨卫",
+ "hexical.page.set_lesser_sentinels.summary": "驱除已有的全部$(thing)初等哨卫$(),再在列表中各位置处部署一个$(thing)初等哨卫$()。",
+ "hexcasting.action.hexical:get_lesser_sentinels": "渗透之精思",
+ "hexical.page.get_lesser_sentinels.summary": "返回我所有全部$(thing)初等哨卫$()的位置列表。",
+
"hexical.page.pyrotechnics.title": "烟花工艺",
"hexical.page.pyrotechnics.0": "我发现了一些构筑烟花的法术。$(media)媒质$()在这些图案周围欢欣地嗡鸣着,就好像它们曾用于庆典一样;它们用作武器的威力也可谓令人震悚。$(br2)$(o)什么都别说了。先欣赏烟花吧。$()",
"hexcasting.action.hexical:simulate_firework": "模拟烟花",
@@ -650,23 +655,26 @@
"hexcasting.action.hexical:shader_spider": "分裂视野",
"hexical.page.shader_spider.summary": "将我的视野分裂为多个小块,和蜘蛛的视野大概差不多。不太清楚为什么这么做能让我看得更清晰……",
- "hexical.page.lesser_sentinels.title": "初等哨卫",
- "hexical.page.lesser_sentinels.0": "先插入一段哨卫理论:$(l:patterns/spells/sentinels)$(thing)哨卫$()是$(thing)自我$()在形而上学层面上剥离出的碎片。我可通过此关系驱除、请求、召唤哨卫,但每次交互都需要些许$(media)媒质$()用来“握手”。我可以$(l:patterns/great_spells/greater_sentinel)$(action)剥出更多的$(thing)自我$(),本质上相当于制造出了独立且近乎具有意识的碎片——它们能在我常规的影响范围之外施放$(hex)咒术$(),甚至还可“移动”。",
- "hexical.page.lesser_sentinels.1": "$(thing)初等哨卫$()则更为简单:它基本就是带有一丝$(thing)自我$()的$(media)媒质$()口袋,大概只够在部署后维持存在,也大概只够它被我看见。$(br2)由于其感知力较弱,我可轻松与多个此类哨卫建立连接,也可轻易移动、驱除、构筑更多。$(l:patterns/spells/sentinels)$(thing)哨卫$()同一时刻只能存在一个,$(thing)初等哨卫$()则几乎没有数量限制。",
- "hexcasting.action.hexical:set_lesser_sentinels": "部署哨卫",
- "hexical.page.set_lesser_sentinels.summary": "驱除已有的全部$(thing)初等哨卫$(),再在列表中各位置处部署一个$(thing)初等哨卫$()。",
- "hexcasting.action.hexical:get_lesser_sentinels": "渗透之精思",
- "hexical.page.get_lesser_sentinels.summary": "返回我所有全部$(thing)初等哨卫$()的位置列表。",
+ "hexical.page.horrible.title": "可怕的东西",
+ "hexical.page.horrible.0": "就我在$(hex)咒法学$()中遇到的所有法术而言,我都还没遇见过这种东西。$(o)到底要怎么画啊?$()",
+ "hexcasting.action.hexical:horrible": "召唤?",
+ "hexical.page.horrible.summary": "从图案的参数签名来看,我只能推测出它是会召唤个什么。",
"hexcasting.action.hexical:charm": "咒符",
- "hexical.page.charm.0": "$(l:patterns/great_spells/charm)$(action)咒符$()法术可将任意物品变为独立的魔法物品,也即,和$(l:items/hexcasting)$(item)杂件$()类似。它们有一个$(media)媒质$()储库,耗尽即咒符消散,无法重新充能和重新写入。$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()会清除咒符。$(br2)$(o)达到完美,并不是好得不能再好,而是好得一点不多余。$()",
+ "hexical.page.charm.0": "$(l:patterns/great_spells/charm)$(action)咒符$()法术可将任意物品变为独立的魔法物品,也即,和$(l:items/hexcasting)$(item)杂件$()类似。它们有一个$(media)媒质$()储库,耗尽即咒符消散,无法重新充能和重新写入。$(br2)$(o)达到完美,并不是好得不能再好,而是好得一点不多余。$()",
"hexical.page.charm.1": "咒符物品相较其他$(l:items/hexcasting)$(item)施法物品$()有若干特殊之处。$(br2)有两个图案可与其包含的 iota 交互。该 iota 存储空间只可通过该咒符物品读取和写入。$(br2)它们还能拦截输入。",
- "hexical.page.charm.summary": "为物品施加所给$(hex)咒术$()的咒符。接受一个$(hex)咒术$(),还需提供存入的$(media)媒质$()量,以$(l:items/amethyst)$(item)紫水晶粉$()计。消耗相应媒质量和额外 3 个$(l:items/amethyst)$(item)充能紫水晶$()。",
- "hexical.page.charm.description": "法术的最后一个参数是 0 到 15 的整数,从最高位起各位用于编码$(thing)$(k:attack)$()、$(thing)$(k:sneak)+$(k:attack)$()、$(thing)$(k:use)$()、$(thing)$(k:sneak)+$(k:use)$()。$(br2)若某触发条件对应的位为 1,按下对应键位时即会阻断物品原有的功能,转而施放写入的$(hex)咒术$()。根据所按键位的不同,施法栈会分别以 0 到 3 的数起始。",
+ "hexical.page.charm.summary": "$(br)施加所给$(hex)咒术$()的咒符。接受一个$(hex)咒术$(),还需提供存入的$(media)媒质$()量,以$(l:items/amethyst)$(item)紫水晶粉$()计。消耗相应媒质量和额外 3 个$(l:items/amethyst)$(item)充能紫水晶$()。",
+ "hexical.page.charm.description": "四个布尔值参数对应攻击、潜行攻击、使用、潜行使用。$(br2)通过设为 True 的使用意图激活咒符物品,其中$(hex)咒术$()即会覆盖物品原有的功能。栈以代表所按键位的数起始,0 为攻击,1 为使用。$(br2)咒符物品还能被其他使用意图触发,该数最多可达到 7。",
"hexcasting.action.hexical:write_charmed": "咒符之策略",
"hexical.page.write_charmed.summary": "向咒符物品内部的存储空间写入 iota。可能会招致“违犯他人”事故。",
"hexcasting.action.hexical:read_charmed": "咒符之精思",
"hexical.page.read_charmed.summary": "将咒符物品内部存有的 iota 压入栈顶。",
+ "hexcasting.action.hexical:write_charmed_proxy": "咒符之策略,第二型",
+ "hexical.page.write_charmed_proxy.summary": "如果咒符物品本身就可以存储 iota(如$(l:items/focus)$(item)核心$()),则向该存储空间写入 iota。",
+ "hexcasting.action.hexical:read_charmed_proxy": "咒符之精思,第二型",
+ "hexical.page.read_charmed_proxy.summary": "如果咒符物品本身就可以存储 iota(如$(l:items/focus)$(item)核心$()),则从该存储空间读取 iota。",
+ "hexcasting.action.hexical:discharm": "解除咒符",
+ "hexical.page.discharm.summary": "解除咒符而不影响其他属性。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexcasting.action.hexical:greater_blink": "卓越闪现",
"hexical.page.greater_blink.0": "卓越闪现比$(l:patterns/great_spells/teleport)$(action)卓越传送$()要便宜许多。它不会在抵达时让我全身的物品散落。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
From 0be0209d99dcb725c9742cdab0aa0d5b2f9d87a9 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Fri, 11 Jul 2025 15:16:33 +0800
Subject: [PATCH 50/78] =?UTF-8?q?SlateWork=20Hexcassettes=20Hexcellular=20?=
=?UTF-8?q?update=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
---
.../1UNKNOWN/slate_work/lang/en_us.json | 8 ++++-
.../1UNKNOWN/slate_work/lang/zh_cn.json | 22 +++++++-----
.../hexcassettes/lang/en_us.json | 35 +++++++++----------
.../hexcassettes/lang/zh_cn.json | 33 ++++++++---------
.../hexcellular/lang/en_us.json | 2 +-
.../hexcellular/lang/zh_cn.json | 2 +-
6 files changed, 54 insertions(+), 48 deletions(-)
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
index fb727aba827f..401cd59ed1c8 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
@@ -1,5 +1,7 @@
{
"block.slate_work.storage_slate": "Storage Vessels",
+ "block.slate_work.ambit_extender": "Ambit Extender",
+ "block.slate_work.crafting_slate": "Patterned Assembler",
"Patterns:":"",
"hexcasting.action.slate_work:get_storage": "Get Vessels",
@@ -15,5 +17,9 @@
"slate_work.page.vessels.store_item": "It is much easier to store an item into a $(thing)Vessel/$ than to pull it out. This pattern simply takes an Item Entity, and neatly sorts it into the activated $(thing)Storage Vessels/$.",
"slate_work.page.vessels.get_item": "This takes a _Hex and runs it on every $(l:patterns/scrying/item)Item Stack/$ stored. Once the _Hex is ran, it requires either a $(thing)False/$, or a $(thing)True/$, $(thing)Vector/$ (output of the items), and $(thing)Integer/$ (amount of items)",
"slate_work.page.vessels.get_item_cont": "Further explained, as stated in the 2nd page. This copies iotas from the stack, so if I had [Position, Count, Type] on the stack then ran a _Hex that got the Type of the $(l:patterns/scrying/item)Item Stack/$ being compared, and did an $(l:patterns/logic#hexcasting:equals)equals check/$. Then it would return only that Type, as item entities, at Position with a count of Count. $(br) It should also be stated this 'search' does not end early after finding a match.",
- "slate_work.page.vessels.check_item": "Check Item functions much like Reawaken Item; however, it only requires a boolean on the 'inner stack'. If the boolean is ever true, the spell returns true."
+ "slate_work.page.vessels.check_item": "Check Item functions much like Reawaken Item; however, it only requires a boolean on the 'inner stack'. If the boolean is ever true, the spell returns true.",
+
+ "slate_work.entry.ambit_extenders": "Ambit Extenders",
+ "slate_work.page.ambit_extender.ambit_extender": "The Ambit Extender is a fabulous answer to my $(thing)Ambit/$ woes when it comes to $(l:greatwork/spellcircles)Spell Circles/$. This pops a vector from the stack, and extends ambit in the direction (negative vectors extending the negative corner of Circle Ambit). $(br2)$(br2)$(o)With great range comes with great costs, err-",
+ "slate_work.page.ambit_extender.ambit_extender_cont": "While this is not as strong as... $(l:https://forum.petra-k.at/viewtopic.php?t=136)other/$ methods of giving a $(l:greatwork/spellcircles)Spell Circles/$ more $(thing)Ambit/$, I do feel like Nature takes a kinder approach to my amalgamation of free will if I use this.$(br2)This does not come cheap however, the _media cost increases with the square of the total distance changed. So if I were to give this a (0,5,0) vector, it would grant the $(l:greatwork/spellcircles)Spell Circle/$ 5 extra blocks of $(thing)Ambit/$ above it, much like if I extended the slates 5 blocks up at the cost of 25 shards"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
index 165e5a538156..8d7e763a26c3 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
@@ -1,19 +1,25 @@
{
- "block.slate_work.storage_slate": "存储容具",
+ "block.slate_work.storage_slate": "存储器具",
+ "block.slate_work.ambit_extender": "范围扩展器",
+ "block.slate_work.crafting_slate": "样板组装器",
"Patterns:":"",
- "hexcasting.action.slate_work:get_storage": "获取容具",
+ "hexcasting.action.slate_work:get_storage": "获取器具",
"hexcasting.action.slate_work:check_item": "检查物品",
"hexcasting.action.slate_work:store_item": "容纳物品",
"hexcasting.action.slate_work:get_item": "唤回物品",
"Entries:": "",
- "slate_work.entry.vessels": "存储容具",
- "slate_work.page.vessels.1": "$(thing)容具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。",
- "slate_work.page.vessels.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)容具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储容具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。",
- "slate_work.page.vessels.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)容具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)容具/$。",
- "slate_work.page.vessels.store_item": "向$(thing)容具/$存入物品比取出容易。此图案会接受一个物品实体,并将其存入激活的$(thing)存储容具/$。",
+ "slate_work.entry.vessels": "存储器具",
+ "slate_work.page.vessels.1": "$(thing)器具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。",
+ "slate_work.page.vessels.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)器具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储器具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。",
+ "slate_work.page.vessels.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)器具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)器具/$。",
+ "slate_work.page.vessels.store_item": "向$(thing)器具/$存入物品比取出容易。此图案会接受一个物品实体,并将其存入激活的$(thing)存储器具/$。",
"slate_work.page.vessels.get_item": "此图案接受一个$(hex)咒术/$,并对所存储的所有$(l:patterns/scrying/item)物品组/$运行。运行该$(hex)咒术/$后,图案需要一个 $(thing)False/$ 或 $(thing)True/$,一个$(thing)向量/$(物品输出位置),和一个$(thing)整数/$(物品数量)。",
"slate_work.page.vessels.get_item_cont": "继续解释说明。和第二页中所说的一样,它会从栈中复制 iota。栈顶为 [位置, 数量, 类型],此时法术会运行接受$(l:patterns/scrying/item)物品组/$类型的$(hex)咒术/$,该$(hex)咒术/$会用类型进行$(l:patterns/logic#hexcasting:equals)相等判断/$。这之后,图案会在所给位置处返还所给数量个该类型物品的物品实体。$(br)需要注意,这一“搜索”在找到匹配项后不会提前结束。",
- "slate_work.page.vessels.check_item": "检查物品的功能和唤回物品类似。但它只需要“内部栈”上有一个布尔值。如果该布尔值为 True,则法术返回 True。"
+ "slate_work.page.vessels.check_item": "检查物品的功能和唤回物品类似。但它只需要“内部栈”上有一个布尔值。如果该布尔值为 True,则法术返回 True。",
+
+ "slate_work.entry.ambit_extenders": "范围扩展器",
+ "slate_work.page.ambit_extender.ambit_extender": "范围扩展器能解$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$之忧。它会移除栈顶向量,并据此扩展影响范围(负向量会向负方向扩展法术环影响范围)。$(br2)$(br2)$(o)范围越大,消耗越大,呃……",
+ "slate_work.page.ambit_extender.ambit_extender_cont": "虽然它不及……$(l:https://forum.petra-k.at/viewtopic.php?t=136)其他/$扩展$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$的方法强大,但我确实觉得这种方法可以让自然对我的自由意志友善些。$(br2)这种方法并不便宜,$(media)媒质$()的耗量随改变距离的平方变化。如果传入 [0, 5, 0] 向量,它即会将$(l:greatwork/spellcircles)法术环/$的$(thing)影响范围/$向上扩展 5 格。相当于消耗 25 个紫水晶碎片来向上方多铺 5 块“石板”。"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
index 0810c5da92d7..9e0fcc64c06c 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
@@ -1,45 +1,42 @@
{
"advancements.hexcassettes.quinio.title": "QUINIO",
- "advancements.hexcassettes.quinio.description": "Make a Hex cast a Hex.",
+ "advancements.hexcassettes.quinio.description": "Create a daemon.",
"advancements.hexcassettes.tape_worm.title": "Tape Worm?",
"advancements.hexcassettes.tape_worm.description": "Consume a cassette tape.",
"advancements.hexcassettes.full_arsenal.title": "Full Album",
"advancements.hexcassettes.full_arsenal.description": "Acquire a full arsenal of cassettes.",
"key.categories.hexcassettes": "Hexcassettes",
- "key.hexcassettes.view_cassettes": "Ponder Cassettes",
- "hexcasting.mishap.invalid_value.hex_or_key": "a list to evaluate or a pattern key for the cassette",
+ "key.hexcassettes.ponder_cassette": "Ponder Cassettes",
"item.hexcassettes.cassette": "Cassette",
- "screen.hexical.cassette": "Cassettes",
"subtitles.hexcassettes.cassette_eject": "Cassette ejects",
"subtitles.hexcassettes.cassette_fail": "Cassette clicks",
"subtitles.hexcassettes.cassette_insert": "Cassette inserted",
"subtitles.hexcassettes.cassette_loop": "Cassette whirrs",
- "hexcasting.mishap.hexcassettes:no_free_cassettes": "Could not find any free cassette to queue a Hex into.",
- "hexcasting.mishap.hexcassettes:not_enough_cassettes": "Attempted to queue a Hex into a cassette index I do not have.",
+ "hexcasting.mishap.hexcassettes:no_free_cassettes": "Could not queue Cassette.",
"hexcassettes.page.async.title": "Asynchronous Hexes",
- "hexcassettes.page.async.0": "As part of their nature, _Hexes evaluate in their entirety in one instant. To postpone _Hexes for later, Nature has devised quite the whimsical solution: a $(item)Cassette Tape$() that must be crafted and then $(o)subsumed$(). I may have up to six at any time. Each one holds a _Hex I requested to delay until that _Hex is ready to cast. After casting, the $(thing)Cassette$() becomes free to hold other _Hexes.",
+ "hexcassettes.page.async.0": "As part of their nature, _Hexes evaluate in their entirety in one instant. To postpone _Hexes for later, Nature has devised quite the whimsical solution: a $(item)Cassettes$() that must be crafted and then $(o)subsumed$(). I may have up to six at any time. Each one holds a _Hex I requested to delay until that _Hex is ready to cast. After casting, the $(thing)Cassette$() becomes free to hold other _Hexes.",
"hexcassettes.page.async.craft": "After plating a $(item)Music Disc$() with a hefty amount of $(item)$(l:items/amethyst)Charged Amethyst$() to enable the $(o)abstraction$(), I can add my glorious creation to my mind's collection using a combination of magic, willpower, and a lot of chewing.",
"hexcasting.action.hexcassettes:enqueue": "Enqueue",
- "hexcassettes.page.enqueue.summary.0": "Enqueues a _Hex to cast after that many twentieths of a second. Places it into the current $(thing)Cassette$() if being cast by one, or a random pattern.",
- "hexcassettes.page.async.1": "The pattern is used to distinguish $(thing)Cassettes$() from each other. If $(l:async#hexcassettes:enqueue)$(action)Enqueue$() can not find a free $(thing)Cassette$(), it incurs the Parallel Processing mishap.$(br2)Seems to hint that the world I live in has a disturbingly low $(o)temporal resolution$().. best not to dwell on that.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
- "hexcassettes.page.async.2": "I can $(thing)$(k:hexcassettes.view_cassettes)$() and cycle through them with the arrow keys.$(br2)Dying also forcibly disqueues all of my $(thing)Cassettes$(). I can rest easy that I will not trap myself in an endless death cycle.",
- "hexcassettes.page.async.3": "If a $(thing)Cassette$() enqueues a near-identical copy of itself, a phenomenon emerges that ancient _Hexcasters call a daemon: passive, constant _Hexcasting. Study into this branch of _Hexcasting seems limited due to the great danger of manipulating time: $(thing)Cassette$() _Hexes exclusively use the _media from my inventory. If left unchecked, it can easily drain my _media and then my life.",
+ "hexcassettes.page.enqueue.summary.0": "Queues a _Hex to cast after that many twentieths of a second. Inherits the label of the current $(thing)Cassette$() if possible or a randomized pattern. Label is returned.",
+ "hexcassettes.page.async.1": "If $(l:async#hexcassettes:enqueue)$(action)Enqueue$() can not find a free $(thing)Cassette$(), it incurs the Parallel Processing mishap, terminating all of my $(thing)Cassettes$().$(br2)The minimal time I can delay a _Hex seems to hint that the world I live in has a disturbingly low $(o)temporal resolution$().. best not to dwell on that.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.2": "The label of a $(thing)Cassette$() is a pattern that distinguishes it from other $(thing)Cassettes$(). I will need this label if I want to cancel or query information about it.$(br2)I can view all my $(thing)Cassettes$() by holding $(thing)$(k:hexcassettes.view_cassettes)$(). Busy $(thing)Cassettes$() are sunken and have their label rendering to the side of them.$(br2)Dying also forcibly terminates all of my $(thing)Cassettes$(). I can rest easy that I will not trap myself in an endless death cycle.",
+ "hexcassettes.page.async.3": "If a $(thing)Cassette$() queues a copy of itself capable of further enqueueing, a phenomenon emerges that ancient _Hexcasters call a daemon: passive, constant _Hexcasting.$(br2)Study into this branch of _Hexcasting seems limited due to the great danger of manipulating time: _Hexes cast by $(thing)Cassette$() use exclusively _media from my inventory. If left unchecked, it can easily drain my _media and then my life.",
"hexcasting.action.hexcassettes:dequeue": "Dequeue",
- "hexcassettes.page.dequeue.summary": "Dequeues the $(thing)Cassette$() at the provided index, freeing it instantly and cancelling the _Hex within it.",
+ "hexcassettes.page.dequeue.summary": "Terminates the $(thing)Cassette$() with the provided label, freeing it instantly and cancelling the _Hex within it.",
"hexcasting.action.hexcassettes:killall": "Disqueue",
- "hexcassettes.page.killall.summary": "Dequeues all $(thing)Cassettes$(). Useful for ouroboros-like _Hexes that bypass regular dequeuing via two mutually resurrecting $(thing)Cassettes$().",
+ "hexcassettes.page.killall.summary": "Terminates all $(thing)Cassettes$(). Useful for ouroboros-like _Hexes that bypass regular dequeuing via two mutually resurrecting $(thing)Cassettes$().",
"hexcasting.action.hexcassettes:specs": "Threading Reflection",
- "hexcassettes.page.specs.summary": "Pushes the total number of $(thing)Cassettes$() that I have in my mind's collection.",
+ "hexcassettes.page.specs.summary": "Pushes the total number of $(thing)Cassettes$() that I have available to me in my mind's collection.",
"hexcasting.action.hexcassettes:busy": "Operating Reflection",
- "hexcassettes.page.busy.summary": "Pushes a list of all patterns that belong to busy $(thing)Cassettes$().",
+ "hexcassettes.page.busy.summary": "Pushes a list of the labels of all my busy $(thing)Cassettes$().",
"hexcasting.action.hexcassettes:inspect": "Program Distillation",
- "hexcassettes.page.inspect.summary": "Pushes whether a given player has a $(thing)Cassette$() of that pattern.",
+ "hexcassettes.page.inspect.summary": "Pushes whether a given player has a $(thing)Cassette$() with a certain label.",
"hexcasting.action.hexcassettes:foretell": "Oracle Purification",
- "hexcassettes.page.foretell.summary": "Pushes $(l:casting/influences)$(thing)Null$() if I do not have an active $(thing)Cassette$() of that pattern, or how many twentieths of a second until that $(thing)Cassette$() fires if I do.",
- "hexcassettes.page.enqueue.summary.1": "A variant of $(l:async#hexcassettes:enqueue)$(action)Enqueue$() that takes a pattern in addition. If there is already a $(thing)Cassette$() of that pattern, it overwrites its _Hex. Otherwise, it schedules the _Hex to an empty slot.",
- "hexcassettes.page.async.4": "If that index does not exist, incurs the Memory Overflow mishap, killing all my active $(thing)Cassettes$().",
+ "hexcassettes.page.foretell.summary": "Pushes the twentieths of a second until the $(thing)Cassette$() with the given label fires. Pushes $(l:casting/influences)$(thing)Null$() if there is no such $(thing)Cassette$().",
+ "hexcassettes.page.enqueue.summary.1": "A variant of $(l:async#hexcassettes:enqueue)$(action)Enqueue$() that takes an additional pattern. Queues the _Hex under the given label.",
+ "hexcassettes.page.async.4": "If there is already a $(thing)Cassette$() of the provided label, the provided _Hex replaces it and takes its slot.$(br2)Otherwise, it schedules the _Hex to an empty slot. If there are no available slots, it incurs the Parallel Processing mishap, terminating all of my $(thing)Cassettes$().",
"hexcasting.action.hexcassettes:self": "State Reflection",
"hexcassettes.page.self.summary": "Pushes the current pattern of the $(thing)Cassette$() this _Hex is running in or $(l:casting/influences)$(thing)Null$() if it is not running in a $(thing)Cassette$()."
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
index c6d2971a5e38..f5fc42deb26e 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
@@ -1,45 +1,42 @@
{
"advancements.hexcassettes.quinio.title": "QUINIO",
- "advancements.hexcassettes.quinio.description": "让咒术施放咒术",
+ "advancements.hexcassettes.quinio.description": "制造一个守护进程",
"advancements.hexcassettes.tape_worm.title": "磁带长得像虫子?",
- "advancements.hexcassettes.tape_worm.description": "吃下一盒磁带。",
+ "advancements.hexcassettes.tape_worm.description": "吃下一盒磁带",
"advancements.hexcassettes.full_arsenal.title": "完整专辑",
- "advancements.hexcassettes.full_arsenal.description": "填满磁带库。",
+ "advancements.hexcassettes.full_arsenal.description": "填满磁带库",
"key.categories.hexcassettes": "Hexcassettes",
- "key.hexcassettes.view_cassettes": "思索磁带",
- "hexcasting.mishap.invalid_value.hex_or_key": "一个用于运行的列表或一个用作磁带键的图案",
+ "key.hexcassettes.ponder_cassettes": "思索磁带",
"item.hexcassettes.cassette": "磁带",
- "screen.hexical.cassette": "磁带",
"subtitles.hexcassettes.cassette_eject": "磁带:弹出",
"subtitles.hexcassettes.cassette_fail": "磁带:咔哒",
"subtitles.hexcassettes.cassette_insert": "磁带:插入",
"subtitles.hexcassettes.cassette_loop": "磁带:嗡嗡作响",
- "hexcasting.mishap.hexcassettes:no_free_cassettes": "无法找到可供咒术排队的空闲磁带。",
- "hexcasting.mishap.hexcassettes:not_enough_cassettes": "试图将咒术排入未持有的磁带队列索引。",
+ "hexcasting.mishap.hexcassettes:no_free_cassettes": "无法排队至磁带。",
"hexcassettes.page.async.title": "异步咒术",
"hexcassettes.page.async.0": "$(hex)咒术$()会在单个时间片段内完全施放,这是它们的本性。而为延迟$(hex)咒术$(),自然设计了一套有些奇怪的方案:$(item)一盒磁带$(),需要$(o)食用$()的磁带。我最多可同时持有六盒磁带。每盒磁带都可容纳单个需延迟执行的$(hex)咒术$(),直至可以施放时再施放。此后,该$(thing)磁带$()会空出,供其他$(hex)咒术$()使用。",
"hexcassettes.page.async.craft": "为促使$(item)音乐唱片$()与$(media)媒质$()$(o)融合$(),我为其镀上了相当多的$(item)$(l:items/amethyst)充能紫水晶$()。如需将所得的智慧结晶纳入我的意识,魔法、意志、持之以恒地咀嚼,三者缺一不可。",
"hexcasting.action.hexcassettes:enqueue": "入队列",
- "hexcassettes.page.enqueue.summary.0": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。若由$(thing)磁带$()施放,则$(hex)咒术$()会进入该$(thing)磁带$();否则置入随机图案下。",
- "hexcassettes.page.async.1": "$(thing)磁带$()间使用图案区分。如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故。$(br2)这似乎表明我所处世界的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
- "hexcassettes.page.async.2": "按下$(thing)$(k:hexcassettes.view_cassettes)$()键和方向键可循环切换$(thing)磁带$()。$(br2)死亡会强制将所有$(thing)磁带$()清出队列。如此就无需担心了——我不会陷入无穷无尽的死亡循环了。",
- "hexcassettes.page.async.3": "若$(thing)磁带$()将其自身的副本稍加改动后入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()中$(hex)咒术$()只会消耗物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。",
+ "hexcassettes.page.enqueue.summary.0": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。如可行,则继承对应$(thing)磁带$()的标识;否则随机生成一个图案。法术会返回该图案。",
+ "hexcassettes.page.async.1": "如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故:终止我的所有$(thing)磁带$()。$(br2)施放的延时有一个最小值,这似乎表明我所处世界的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
+ "hexcassettes.page.async.2": "$(thing)磁带$()间使用图案进行标识和区分,取消$(thing)磁带$()和获取其信息都需借助该图案。$(br2)按住$(thing)$(k:hexcassettes.view_cassettes)$()可以查看我的所有$(thing)磁带$()。忙状态的$(thing)磁带$()会显示为压入状态,且在其侧面显示对应图案标识。$(br2)死亡会强制将所有$(thing)磁带$()清出队列。如此就无需担心了——我不会陷入无穷无尽的死亡循环了。",
+ "hexcassettes.page.async.3": "若$(thing)磁带$()将可继续执行入队列操作的自身副本入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(br2)$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()施放的$(hex)咒术$()只会消耗我物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。",
"hexcasting.action.hexcassettes:dequeue": "出队列",
- "hexcassettes.page.dequeue.summary": "令所给索引处的$(thing)磁带$()出队列,让其进入空闲状态,并取消其中$(hex)咒术$()。",
+ "hexcassettes.page.dequeue.summary": "终止所给标识对应的$(thing)磁带$(),让其进入空闲状态,并取消其中$(hex)咒术$()。",
"hexcasting.action.hexcassettes:killall": "终止队列",
- "hexcassettes.page.killall.summary": "令所有$(thing)磁带$()出队列。很适合给那些和衔尾蛇一样的$(hex)咒术$()用:两个互相激活的$(thing)磁带$()无法以常规手段出队列。",
+ "hexcassettes.page.killall.summary": "终止所有$(thing)磁带$()。很适合给那些和衔尾蛇一样的$(hex)咒术$()用:两个互相激活的$(thing)磁带$()无法以常规手段出队列。",
"hexcasting.action.hexcassettes:specs": "线程之精思",
"hexcassettes.page.specs.summary": "返回我意识中当前的$(thing)磁带$()总数。",
"hexcasting.action.hexcassettes:busy": "运作之精思",
- "hexcassettes.page.busy.summary": "返回所有忙状态$(thing)磁带$()的图案组成的列表。",
+ "hexcassettes.page.busy.summary": "返回所有$(thing)磁带$()的图案标识组成的列表。",
"hexcasting.action.hexcassettes:inspect": "程序之馏化",
"hexcassettes.page.inspect.summary": "检验所给玩家是否拥有以所给图案标识的$(thing)磁带$()。",
"hexcasting.action.hexcassettes:foretell": "先知之纯化",
- "hexcassettes.page.foretell.summary": "若所给图案处$(thing)磁带$()不处于活跃状态,返回 $(l:casting/influences)$(thing)Null$();否则返回该$(thing)磁带$()会在多少个 1/20 秒后施放。",
- "hexcassettes.page.enqueue.summary.1": "$(l:async#hexcassettes:enqueue)$(action)入队列$()的一个变种,还需向其提供一个图案。若已经存在使用该图案的$(thing)磁带$(),则覆盖其中$(hex)咒术$();否则将$(hex)咒术$()分配至空磁带槽。",
- "hexcassettes.page.async.4": "如果所给的索引不存在,则招致“内存溢出”事故:终止所有活跃中的$(thing)磁带$()。",
+ "hexcassettes.page.foretell.summary": "返回所给图案对应的$(thing)磁带$()会在多少个 1/20 秒后施放;若无此类$(thing)磁带$(),返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcassettes.page.enqueue.summary.1": "$(l:async#hexcassettes:enqueue)$(action)入队列$()的一个变种,还需向其提供一个图案。此图案会将$(hex)咒术$()排入所给标识的队列。",
+ "hexcassettes.page.async.4": "如果已经有$(thing)磁带$()使用了所给标识,则所给$(hex)咒术$()会覆盖该$(thing)磁带$()。$(br2)否则会将$(hex)咒术$()排至空槽位。如果没有足够的空槽位,则招致“并行处理”事故:终止所有的$(thing)磁带$()。",
"hexcasting.action.hexcassettes:self": "状态之精思",
"hexcassettes.page.self.summary": "返回当前$(hex)咒术$()所在$(thing)磁带$()的图案。若不在$(thing)磁带$()中运行,则返回 $(l:casting/influences)$(thing)Null$()。"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
index c1d22c96df53..ac4f81d2d26b 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
@@ -19,5 +19,5 @@
"hexcellular.page.set_property.summary": "Sets the property iota. Costs about a tenth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexcellular.page.properties.3": "Occasionally, I may want to pass out property iota without the risk of someone else overwriting their contents. In such cases, I can create read-only copies. They can still be read using $(l:properties#hexcellular:observe_property)$(action)Observation Purification$() and will refer to the $(thing)Property$() as usual but they can not be written to with $(l:properties#hexcellular:set_property)$(action)Schrödinger's Gambit$().$(br2)To distinguish, read-only property iotas are cyan.",
"hexcasting.action.hexcellular:readonly_property": "Schrödinger's Purification",
- "hexcellular.page.readonly_property.summary": "Creates a read-only property iota from a given property iota."
+ "hexcellular.page.readonly_property.summary": "Creates a read-only property iota that refers to the same $(thing)Property$() as the given property iota."
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
index 62e5d5473dbb..12e644b17cf5 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
@@ -19,5 +19,5 @@
"hexcellular.page.set_property.summary": "设置质性 iota 的值。消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexcellular.page.properties.3": "有些时候,送出质性 iota 时需保证其他人不会覆写其内容。只读副本即可达成这一目的。这些副本仍可由$(l:properties#hexcellular:observe_property)$(action)观测之纯化$()读取,且也会指向对应的$(thing)质性$(),但$(l:properties#hexcellular:set_property)$(action)薛定谔之策略$()无法向其写入。$(br2)为方便区分,只读质性 iota 会显示为青色。",
"hexcasting.action.hexcellular:readonly_property": "薛定谔之纯化",
- "hexcellular.page.readonly_property.summary": "以给定质性 iota 为基础制造一个只读的质性 iota。"
+ "hexcellular.page.readonly_property.summary": "以给定质性 iota 对应的$(thing)质性$()为基础制造一个只读副本。"
}
\ No newline at end of file
From e644129a3bea02442e091617a7b8ee560e398ef0 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 13 Jul 2025 05:23:56 +0800
Subject: [PATCH 51/78] =?UTF-8?q?Hexical=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
---
.../modrinth-hexical/hexical/lang/en_us.json | 82 +++++++++++++++----
.../modrinth-hexical/hexical/lang/zh_cn.json | 82 +++++++++++++++----
2 files changed, 128 insertions(+), 36 deletions(-)
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index aff05515ec3d..8c3a5c5e18d8 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -1,12 +1,14 @@
{
- "advancements.hexical.arch_lamp.title": "Guardian Genie",
- "advancements.hexical.arch_lamp.description": "Acquire an archgenie lamp.",
+ "advancement.hexical:root.title": "A Hexical Day",
+ "advancement.hexical:root.description": "Begin your exploration of Hexical!",
+ "advancements.hexical.acquire_arch_lamp.title": "Guardian Genie",
+ "advancements.hexical.acquire_arch_lamp.description": "Acquire an archgenie lamp.",
+ "advancements.hexical.acquire_hand_lamp.title": "Diamond in the Rough",
+ "advancements.hexical.acquire_hand_lamp.description": "Acquire a hand genie lamp.",
"advancements.hexical.reload_lamp.title": "Phenomenal Cosmic Powers!",
"advancements.hexical.reload_lamp.description": "Reload the lamp.",
- "advancements.hexical.educate_genie.title": "New Order",
- "advancements.hexical.educate_genie.description": "Educate the genie with new instructions.",
- "advancements.hexical.lamp.title": "Diamond in the Rough",
- "advancements.hexical.lamp.description": "Acquire a genie lamp.",
+ "advancements.hexical.educate_lamp.title": "New Order",
+ "advancements.hexical.educate_lamp.description": "Educate the genie with new instructions.",
"advancements.hexical.specklike.title": "Integrated Reality",
"advancements.hexical.specklike.description": "Like augmented reality, but real.",
"advancements.hexical.diy_conjuring.title": "DIY Conjuring!",
@@ -45,6 +47,22 @@
"item.hexical.animated_scroll_medium": "Medium Animated Scroll",
"item.hexical.animated_scroll_large": "Large Animated Scroll",
"item.hexical.arch_lamp": "Archgenie Lamp",
+ "item.hexical.curio_beauty": "Beauty Curio",
+ "item.hexical.curio_bismuth": "Bismuth Curio",
+ "item.hexical.curio_charm": "Charm Curio",
+ "item.hexical.curio_clover": "Clover Curio",
+ "item.hexical.curio_conch": "Conch Curio",
+ "item.hexical.curio_cube": "Cube Curio",
+ "item.hexical.curio_down": "Down Curio",
+ "item.hexical.curio_flute": "Flute Curio",
+ "item.hexical.curio_handbell": "Handbell Curio",
+ "item.hexical.curio_heart": "Heart Curio",
+ "item.hexical.curio_interlock": "Interlock Curio",
+ "item.hexical.curio_key": "Key Curio",
+ "item.hexical.curio_staff": "Staff Curio",
+ "item.hexical.curio_strange": "Strange Curio",
+ "item.hexical.curio_truth": "Truth Curio",
+ "item.hexical.curio_up": "Up Curio",
"item.hexical.conjured_compass": "Conjured Compass",
"item.hexical.grimoire": "Grimoire",
"item.hexical.hand_lamp": "Hand Genie Lamp",
@@ -88,9 +106,7 @@
"subtitles.hexical.replenish_air": "Lungs inflate",
"subtitles.hexical.scarab_chirps": "Scarab chirps",
"subtitles.hexical.sudden_realization": "Idea pops",
- "tooltip.hexical.scroll_aged": "Aged",
"tooltip.hexical.scroll_glow": "Glowing",
- "tooltip.hexical.scroll_vanished": "Vanished",
"hexical.autograph.header": "Autographed by:",
"hexical.charmed": "Charmed",
@@ -123,6 +139,7 @@
"hexcasting.mishap.bad_item.mesh": "a mesh",
"hexcasting.mishap.bad_item.scarab_beetle": "a scarab beetle",
"hexcasting.mishap.bad_item.smart_villager": "a Journeyman or greater level villager",
+ "hexcasting.mishap.bad_item.sniffer": "a sniffer",
"hexcasting.mishap.bad_item.speck": "a speck",
"hexcasting.mishap.bad_item.specklike": "a specklike entity",
"hexcasting.mishap.bad_item.target.smelting": "an item able to be smelted in a furnace",
@@ -137,12 +154,16 @@
"hexcasting.mishap.invalid_value.class.pigment": "a pigment",
"hexcasting.mishap.invalid_value.conjurable_flower_id": "an identifier of a conjurable flower type",
"hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
+ "hexcasting.mishap.invalid_value.hopper_source": "an iota that represents a source of items",
+ "hexcasting.mishap.invalid_value.hopper_destination": "an iota that represents a receiver of items",
+ "hexcasting.mishap.invalid_value.inventory": "an iota that represents an inventory",
"hexcasting.mishap.invalid_value.lesser_sentinel_list": "a list of vectors",
"hexcasting.mishap.invalid_value.mesh_design": "a list of up to 32 vectors with magnitudes less than 10",
"hexcasting.mishap.invalid_value.nonempty_list": "a non-empty list",
"hexcasting.mishap.invalid_value.number_list": "a non-empty list of numbers",
"hexcasting.mishap.invalid_value.number_or_vector": "a number or a vector",
"hexcasting.mishap.invalid_value.small_vector": "a vector of length 2 or less",
+ "hexcasting.mishap.invalid_value.text_list": "a list of text iota",
"hexcasting.mishap.invalid_value.to_pigment": "a colored dye, identifier of a pigment item, an item entity containing a pigment, or a player",
"hexcasting.mishap.invalid_value.true_dye": "a colored dye",
"hexcasting.mishap.invalid_value.true_dye_list": "a list of colored dyes",
@@ -156,6 +177,7 @@
"hexcasting.mishap.hexical:needs_staff": "Expected to be cast by a staff.",
"hexcasting.mishap.hexical:outside_circle": "Spell exceeds the domain of the spell circle.",
"hexcasting.mishap.hexical:illegal_jailbreak": "Attempted to crack a casting device with a Hex in it.",
+ "hexcasting.mishap.hexical:not_enough_slots": "%d does not fit in the capabilities of the inventory specified by %s.",
"hexcasting.action.book.hexical:get_arch_lamp_position": "Arch. Refl.: Spatial",
"hexcasting.action.book.hexical:get_arch_lamp_rotation": "Arch. Refl.: Rotational",
@@ -239,6 +261,10 @@
"hexical.recipe.cry_obsidian.text": "Infuses $(item)Obsidian$() with _media which leaks out of it, giving it a distinctive crying appearance.",
"hexical.recipe.uncry_obsidian.header": "Calm Obsidian",
"hexical.recipe.uncry_obsidian.text": "Returns the _media from $(item)Crying Obsidian$().$(br2)$(o)Therapy! :D$()",
+ "hexical.recipe.fossil_fuel.header": "Coal",
+ "hexical.recipe.fossil_fuel.text": "Transforms $(item)Charcoal$() into $(item)Coal$() by infusing thought into it and then immediately killing it. Good for compacting.",
+ "hexical.recipe.renewable_fuel.header": "Charcoal",
+ "hexical.recipe.renewable_fuel.text": "Transforms $(item)Coal$() into $(item)Charcoal$(). Why?",
"hexical.page.casting_carpet.title": "Casting Carpets",
"hexical.page.casting_carpet.0": "I can weave $(l:items/amethyst)$(item)Amethyst$() into any ordinary rug to create this wonderfully comfy rug. Stepping on the carpet, I can feel the _media coursing under my feet. It feels disorienting but surprisingly puts me at peace.$(br2)I feel very inspired, as if I were wearing a $(l:items/lens)$(item)Scrying Lens$() although weaker. My _Hexcasting vision seems to have been expanded.",
@@ -253,11 +279,13 @@
"hexical.page.sentinel_bed.1": "$(o)A comfy bed for my sentinel, it always seems eager to return to it.$()",
"hexical.page.periwinkle.title": "Periwinkle",
- "hexical.page.periwinkle.0": "There is an long-extinct family of flowers called $(item)Periwinkles$(). In addition to looking pretty, they have great calming abilities; ancient _Hexcasters used them to cope with the great horrors that comes with the Art.$(br2)$(o)A special flower for a special person.$()",
- "hexcasting.action.hexical:periwinkle": "Periwinkle Reflection",
- "hexical.page.periwinkle.summary": "Fortunately all is not lost. I have found this identifier by a group of botanist _Hexcasters. I believe there may be a $(l:patterns/spells/hexical_spells#hexical:flower)$(action)spell$() to allow me to bring back these flowers.",
- "hexical.page.lei.summary": "Once I have recovered some, I can craft the flowers into a $(item)Lei$()! The $(item)Lei$() gives a small boost to my _Hexcasting reach, not unlike a $(l:items/lens)$(item)Scrying Lens$() although without the same ability to perceive extra information.",
- "hexical.page.lei.description": "When worn, it prevents Nature from claiming my life as payment for _Hexes.$(br2)Unlike other armor, a $(item)Lei$() can be placed on other players if they are not currently wearing anything! Ancient _Hexcasters did this as a sign of endearment and affection due to the $(item)Lei$()'s protective and calming abilities, as well as the rarity of obtaining the flowers.",
+ "hexical.page.periwinkle.0": "There is an long-extinct species of flowers called $(item)Periwinkles$(). In addition to looking pretty, they have great calming abilities; ancient _Hexcasters used them to cope with the great horrors that comes with the Art.$(br2)$(o)A special flower for a special person.$()",
+ "hexcasting.action.hexical:periwinkle": "Induce Digging",
+ "hexical.page.periwinkle.summary": "Fortunately, the Art of _Hexcasting is a versatile one and provides the means to bring back near anything.",
+ "hexical.page.periwinkle.1": "I believe that there is a certain creature capable of $(o)sniffing$() out these flowers. I can cast the previous spell on these $(thing)Sniffers$() to compel them to immediately drop down and unearth these flowers for me.$(br2)Such a perversion of free will comes at a cost, around three $(l:items/amethyst)$(item)Charged Amethyst$(). There may also be the occasional harmless mental $(o)error$(); I am not infallible after all, especially working with something as complex as the mind.",
+ "hexical.page.periwinkle.2": "Some magic must be at play here: $(thing)Sniffers$() can dig up $(item)Periwinkles$() from any block at all, even inorganic ones or ones orginating from other planes of reality.$(br2)I imagine that the spell doesn't just \"ask\" the $(thing)Sniffer$() to find the flowers; it $(o)conjures$() them. It fishes around in the brain for the memory of $(item)Periwinkle$() and from that, it receives a template which it instantiates and allows the $(thing)Sniffer$() to dig up. And if it can do it, so $(l:patterns/spells/hexical_spells#hexical:flower)can I$().",
+ "hexical.page.lei.summary": "Once I have recovered some $(item)Periwinkles$(), I can craft the flowers into a $(item)Lei$()! The $(item)Lei$() gives a small boost to my _Hexcasting reach, not unlike a $(l:items/lens)$(item)Scrying Lens$() although without the same ability to perceive extra information.",
+ "hexical.page.lei.description": "When worn, a $(item)Lei$() prevents Nature from claiming my life as payment for _Hexes.$(br2)Unlike other armor, a $(item)Lei$() can be placed on others if they are not currently wearing anything. Ancient _Hexcasters did this as a sign of endearment and affection due to the $(item)Lei$()'s protective and calming abilities, as well as the effort of obtaining the flowers.",
"hexical.page.plushies.title": "Plushies",
"hexical.page.plushies.0": "The ancient _Hexcasters have created these delightful $(item)Plushies$()! They seem to be references to some of the patterns I use in _Hexcasting. I'm not sure if they do anything, but they are a lovely little collector's item.$(br2)The occasional wandering merchant might have picked up one or two during their travels.",
@@ -274,7 +302,7 @@
"hexical.page.wooleyed_potion.1": "I can brew one by boiling a $(l:items/periwinkle)$(item)Periwinkle$() into a simple $(item)Awkward Potion$(). $(item)Glowstone Dust$() and $(item)Redstone Dust$() have their standard amplifying and lengthening effects, as with most potions.",
"hexical.page.pedestal.title": "Pedestals",
- "hexical.page.pedestal.0": "A pedestal can keep an item suspended safely for me. Unlike an item frame or a chest though, my _Hexes can still interact with the item as though it were just dropped on the floor. An empty pedestal can pull items near it and it interacts with hoppers about how I would expect. It works even if the item is swapped out.",
+ "hexical.page.pedestal.0": "A $(item)Pedestal$() can keep an item suspended safely for me. Unlike an $(item)Item Frame$() or a $(item)Chest$() though, my _Hexes can still interact with the item as though it were just dropped on the floor. An empty $(item)Pedestal$() can pull items near it and it interacts with $(item)Hoppers$() about how I would expect. It works even if the item is swapped out.",
"hexical.page.pedestal.1": "$(o)A pedestal is as much a prison as any small, confined space.$()",
"hexical.category.lamp": "Genie Lamp",
@@ -359,7 +387,7 @@
"hexical.page.draw_pattern.summary": "Takes a pattern and produces a normalized list of vectors. The z-component of these vectors is zero. I feel this may be useful for artistic _Hexes.",
"hexical.page.telepathy.title": "Telepathy",
- "hexical.page.telepathy": "_Media is the energy of thought and consequently, it can interact with thoughts as well. Unfortunately or perhaps fortunately for me, the minds of players are too resistant to be swayed by _Hexes and even the minds of villagers resist tampering. There is a notable exception though: my own mind is open to my own _media, allowing me to read my own intentions and write thoughts to myself.",
+ "hexical.page.telepathy": "_Media is the energy of thought and consequently, it can interact with thoughts as well. Unfortunately or perhaps fortunately for me, the minds of _Hexcasters are too resistant to be swayed by _Hexes and even the minds of villagers resist tampering. There is a notable exception though: my own mind is open to my own _media, allowing me to read my own intentions and write thoughts to myself.",
"hexcasting.action.hexical:get_telepathy": "Telepathic Reflection",
"hexical.page.get_telepathy.summary": "By focusing on a particular image, I can detect that concentration via this pattern. Pushes how many twentieths of a second I've been intending to $(thing)$(k:hexical.telepathy)$(), or -1 if I am not.",
"hexcasting.action.hexical:send_telepathy": "Send Thought",
@@ -367,9 +395,9 @@
"hexcasting.action.hexical:shout_telepathy": "Shout Thought",
"hexical.page.shout_telepathy.summary": "Grandly flashes an iota across my vision. It obstructs my vision and takes some time to fade in, so I shall only use it sparingly.",
"hexcasting.action.hexical:pling": "Hallucinate Pling",
- "hexical.page.pling.summary": "Causes me to hear a pling that is inaudible to other players.",
+ "hexical.page.pling.summary": "Causes me to hear a pling that is inaudible to others.",
"hexcasting.action.hexical:click": "Hallucinate Click",
- "hexical.page.click.summary": "Causes me to hear a click that is inaudible to other players.",
+ "hexical.page.click.summary": "Causes me to hear a click that is inaudible to others.",
"hexcasting.action.hexical:left_click": "Offensive Reflection",
"hexical.page.left_click.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:attack)$(), or -1 if I am not.",
"hexcasting.action.hexical:right_click": "Manipulative Reflection",
@@ -544,7 +572,7 @@
"hexical.page.flower.description": "The block under the target position must have a flat top surface to allow rooting. It does not necessarily need to be able to support the flower naturally, although any little movement may cause the flower to break if conjured on an incompatible block. Alternatively, the spell will fill a flower pot if possible.$(br2)$(o)There was a fool who praised me for the magic I acquired. That's all.$()",
"hexcasting.action.hexical:light": "Illuminate",
"hexical.page.light.summary": "Conjures a completely invisible light with illumination strength of my choosing at a location. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.light.description": "The block that it is into must be empty or extremely weak. The illumination strength can be a number between 1 and 15, inclusive. If I target a space where a light already exists, the spell is free and particleless.$(br2)$(o)The light blinds us. It is only in the dark that we see clearly.$()",
+ "hexical.page.light.description": "The block that it is into must be empty or extremely weak. The illumination strength can be a number between 1 and 15, inclusive. If I target a space where a light already exists, the spell is free and particleless.$(br2)By holding a $(l:items/lens)$(item)Scrying Lens$(), I can see the lights and place a block in their place to remove them.$(br2)$(o)The light blinds us. It is only in the dark that we see clearly.$()",
"hexcasting.action.hexical:gasp": "Gasp",
"hexical.page.gasp.summary": "Instantly replenishes a creature's air bubbles. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.gasp.description": "Regardless of amount of breath restored, this spell costs exactly one dust so I should ideally wait as long as I safely can before casting this spell. I will find it useful while diving, being teleported into a block, or even keeping sea creatures alive on land.$(br2)$(o)The best way to observe a fish is to become a fish.$()",
@@ -640,6 +668,12 @@
"hexical.page.conjure_firework.2": "$(o)Colors$()$(br2)The fifth and sixth parameters are lists of $(l:patterns/spells/dyes)dyes$(). The first list controls the colors of the firework's initial burst, while the second controls the colors that the first particles fade into. There must be at least one dye specified for the first list, but the second list can be empty if I do not want any colors to fade into.",
"hexical.page.conjure_firework.3": "$(o)Special Effects$()$(br2)The seventh parameter controls whether the particles of the firework flicker, as if adding glowstone to the $(item)virtual Firework Star$().$(br2)The eighth parameter controls whether the particles of the firework leave trails, as if adding a diamond to the $(item)virtual Firework Star$().",
+ "hexical.page.rename.title": "Item Renaming",
+ "hexcasting.action.hexical:item_name": "Name Item",
+ "hexical.page.item_name.summary": "Takes an item and renames it to the text given. Resets name if given $(l:casting/influences)$(thing)Null$(). Free.",
+ "hexcasting.action.hexical:item_lore": "Describe Item",
+ "hexical.page.item_lore.summary": "Takes an item and a list of text to append as a description. Clears if given $(l:casting/influences)$(thing)Null$(). Free.",
+
"hexical.page.shaders.title": "Shaders",
"hexical.page.shaders.0": "These spells revolve around manipulating my light receptors, allowing me to alter my vision for utility and fun. These spells break upon death or me leaving this world and returning at a later date.$(br2)$(o)You sense that something is off. You feel in harmony with the magic. Maan, that color smells interesting. Usual concepts don't apply.$()",
"hexcasting.action.hexical:shader_clear": "Clear Vision",
@@ -655,6 +689,18 @@
"hexcasting.action.hexical:shader_spider": "Split Vision",
"hexical.page.shader_spider.summary": "Splits my vision into multiple sections, similar to what a spider might see. I am unsure whether it actually grants me more vision...",
+ "hexical.page.hopper.title": "Hopper",
+ "hexical.page.hopper.0": "This spell is explicitly designed for the precise and mass transport of items from place to place, supporting a wide array of blocks and entities to pull and push to.$(br2)$(o)allows arbitrary objects to be retrieved... and instantiated in reality... arbitrary information between arbitrary data sources$()",
+ "hexcasting.action.hexical:hopper": "Hopper",
+ "hexical.page.hopper.summary": "Instantly transports all items from $(thing)source$() to $(thing)destination$(). Costs about one $(l:items/amethyst)$(item)Amethyst Shard$() regardless of mass transferred. Numbers are optional; details later.",
+ "hexical.page.hopper.1": "Entity references to the caster, an $(thing)Armor Stand$(), a $(thing)Minecart with a Chest$(), a $(thing)Hopper Minecart$(), or a $(thing)Boat with a Chest$() within ambit are valid $(thing)sources$() that refer to the respective inventory. They also serve as valid $(thing)destinations$().$(br2)Entity references to $(thing)Item Frames$() and dropped $(thing)Items$() are also valid $(thing)sources$() and $(thing)destinations$(). For $(thing)Items$(), pushes will attempt to stack onto it.",
+ "hexical.page.hopper.2": "Vectors are also possible $(thing)sources$() and $(thing)destinations$(). If a block with an inventory does not exist at a location, it is a valid $(thing)destination$() to push items out into the world.$(br2)If a block with an inventory does exist, it serves as both a $(thing)source$() and a $(thing)destination$(). If the vector is closest to the center, it pushes and pulls from any inventory slot; if it is instead closer to a face, it will only push to and pull from that face, similar to $(thing)Hoppers$().",
+ "hexical.page.hopper.3": "If I pass in $(l:casting/influences)$(thing)Null$(), it seems to refer to my $(thing)Ender Chest$()'s inventory. Naturally, this means it will only work for humans casting this spell.$(br2)Because $(thing)sources$() and $(thing)destinations$() can never be numbers, it is distinguishable to pass an optional number after a $(thing)source$() or $(thing)destination$(). This is the num? in the pattern signature and correlates to $(o)slot$().",
+ "hexical.page.hopper.4": "Slots are a slightly esoteric way that Nature has chosen to represent specific spaces in the inventory. For example, 0, 1, 2, and 3 corresponds to boots, leggings, chestplate, and helmet spaces of an $(thing)Armor Stand$() $(thing)source$() respectively. Passing in slots allows me to dictate to $(l:patterns/spells/hopper#hexical:hopper)$(action)Hopper$() which space to take items from and move items to.$(br2)For quick reference, my hotbar is 0-8, my offhand is 40, and my $(l:patterns/spells/wristpocket)Wristpocket$() is -1.",
+ "hexcasting.action.hexical:index_hopper": "Hopper Purification",
+ "hexical.page.index_hopper.summary": "Applies to $(thing)sources$() that support slots; inventories. Returns a list of the item stacks contained within them, with their index in the list being their slot number.",
+ "hexical.page.index_hopper.description": "While the slot number is generally fairly logical, it can feel arbitrary for storages such as a player's inventory.$(br2)This pattern will be useful in ascertaining the slot number of any given location in a $(thing)source$() or $(thing)destination$()'s inventory. It can also be useful for processing: scanning a $(thing)source$() for what items it contains, evaluating them based on some metrics, and from there deciding whether and where to move them.",
+
"hexical.page.horrible.title": "Horrible",
"hexical.page.horrible.0": "Of all the spells I have discovered in my exploration of ancient _Hexcasting notes, there has not been a single pattern remotely like this one. I believe its existence is proof of some greater force that had compelled _Hexcasters to draw it.$(br2)$(o)How does one even begin to draw this, let alone discover it?$()",
"hexcasting.action.hexical:horrible": "Horrible",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index bc6a9b764165..c8b1f3172d80 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -1,12 +1,14 @@
{
- "advancements.hexical.arch_lamp.title": "守护精灵",
- "advancements.hexical.arch_lamp.description": "获得大精灵神灯",
+ "advancement.hexical:root.title": "咒术满满的一天",
+ "advancement.hexical:root.description": "开始你在Hexical中的探索吧!",
+ "advancements.hexical.acquire_arch_lamp.title": "守护精灵",
+ "advancements.hexical.acquire_arch_lamp.description": "获得大精灵神灯",
+ "advancements.hexical.acquire_hand_lamp.title": "可造之材",
+ "advancements.hexical.acquire_hand_lamp.description": "获得精灵神灯",
"advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
"advancements.hexical.reload_lamp.description": "为神灯重新充能",
- "advancements.hexical.educate_genie.title": "新秩序",
- "advancements.hexical.educate_genie.description": "向精灵传授新的指示",
- "advancements.hexical.lamp.title": "可造之材",
- "advancements.hexical.lamp.description": "获得精灵神灯",
+ "advancements.hexical.educate_lamp.title": "新秩序",
+ "advancements.hexical.educate_lamp.description": "向精灵传授新的指示",
"advancements.hexical.specklike.title": "集成现实",
"advancements.hexical.specklike.description": "和增强现实差不多,只不过更加现实",
"advancements.hexical.diy_conjuring.title": "构筑DIY!",
@@ -45,6 +47,22 @@
"item.hexical.animated_scroll_medium": "中型活线卷轴",
"item.hexical.animated_scroll_large": "大型活线卷轴",
"item.hexical.arch_lamp": "大精灵神灯",
+ "item.hexical.curio_beauty": "宝珠饰品",
+ "item.hexical.curio_bismuth": "铋晶饰品",
+ "item.hexical.curio_charm": "护符饰品",
+ "item.hexical.curio_clover": "四叶草饰品",
+ "item.hexical.curio_conch": "螺壳饰品",
+ "item.hexical.curio_cube": "立方饰品",
+ "item.hexical.curio_down": "下箭头饰品",
+ "item.hexical.curio_flute": "笛子饰品",
+ "item.hexical.curio_handbell": "手铃饰品",
+ "item.hexical.curio_heart": "爱心饰品",
+ "item.hexical.curio_interlock": "环纽饰品",
+ "item.hexical.curio_key": "钥匙饰品",
+ "item.hexical.curio_staff": "法杖饰品",
+ "item.hexical.curio_strange": "怪异饰品",
+ "item.hexical.curio_truth": "真实饰品",
+ "item.hexical.curio_up": "上箭头饰品",
"item.hexical.conjured_compass": "构筑的指南针",
"item.hexical.grimoire": "咒典",
"item.hexical.hand_lamp": "手持式精灵神灯",
@@ -88,9 +106,7 @@
"subtitles.hexical.replenish_air": "肺:充气",
"subtitles.hexical.scarab_chirps": "圣甲虫:吱吱",
"subtitles.hexical.sudden_realization": "点子:出现",
- "tooltip.hexical.scroll_aged": "陈化",
"tooltip.hexical.scroll_glow": "发光",
- "tooltip.hexical.scroll_vanished": "隐消",
"hexical.autograph.header": "由以下人士亲笔签名:",
"hexical.charmed": "咒符",
@@ -123,6 +139,7 @@
"hexcasting.mishap.bad_item.mesh": "一个网斑",
"hexcasting.mishap.bad_item.scarab_beetle": "一个圣甲虫",
"hexcasting.mishap.bad_item.smart_villager": "一个老手或更高等级的村民",
+ "hexcasting.mishap.bad_item.sniffer": "一只嗅探兽",
"hexcasting.mishap.bad_item.speck": "一个视斑",
"hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
"hexcasting.mishap.bad_item.target.smelting": "一个可在熔炉中烧炼的物品",
@@ -137,12 +154,16 @@
"hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
"hexcasting.mishap.invalid_value.conjurable_flower_id": "一个代表可构筑花卉的标识",
"hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
+ "hexcasting.mishap.invalid_value.hopper_source": "一个代表物品来源的iota",
+ "hexcasting.mishap.invalid_value.hopper_destination": "一个代表物品目的的iota",
+ "hexcasting.mishap.invalid_value.inventory": "一个代表物品栏、存储空间的iota",
"hexcasting.mishap.invalid_value.lesser_sentinel_list": "一个向量列表",
"hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
"hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
"hexcasting.mishap.invalid_value.number_list": "一个由数组成的非空列表",
"hexcasting.mishap.invalid_value.number_or_vector": "一个数或向量",
"hexcasting.mishap.invalid_value.small_vector": "一个长度小于等于2的向量",
+ "hexcasting.mishap.invalid_value.text_list": "一个文本iota列表",
"hexcasting.mishap.invalid_value.to_pigment": "一个有色染料、一个代表染色剂物品的标识、一个含有染色剂的物品实体,或一个玩家",
"hexcasting.mishap.invalid_value.true_dye": "一个有色染料",
"hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
@@ -156,6 +177,7 @@
"hexcasting.mishap.hexical:needs_staff": "本应由法杖施放。",
"hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
"hexcasting.mishap.hexical:illegal_jailbreak": "试图破解内含咒术的施法物品。",
+ "hexcasting.mishap.hexical:not_enough_slots": "%d不适用于%s指定的存储空间。",
"hexcasting.action.book.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
"hexcasting.action.book.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
@@ -239,6 +261,10 @@
"hexical.recipe.cry_obsidian.text": "向$(item)黑曜石$()中注入$(media)媒质$()。这些$(media)媒质$()会从中溢出,看上去就好像在流泪。",
"hexical.recipe.uncry_obsidian.header": "安慰黑曜石",
"hexical.recipe.uncry_obsidian.text": "返还$(item)哭泣的黑曜石$()中的$(media)媒质$()。$(br2)$(o)心理咨询!:D$()",
+ "hexical.recipe.fossil_fuel.header": "煤炭",
+ "hexical.recipe.fossil_fuel.text": "向$(item)木炭$()注入思维并立刻杀灭,将其转化成$(item)煤炭$()。方便压缩存储。",
+ "hexical.recipe.renewable_fuel.header": "木炭",
+ "hexical.recipe.renewable_fuel.text": "将$(item)煤炭$()转化成$(item)木炭$()。为什么啊?",
"hexical.page.casting_carpet.title": "施法地毯",
"hexical.page.casting_carpet.0": "我可以将$(l:items/amethyst)$(item)紫水晶$()编织到普通的地毯里去,得到的就是这张柔软舒适的地毯。站在地毯上就能感受到$(media)媒质$()在我脚下流动。让人有些迷糊,但也能为人安神。$(br2)有种醍醐灌顶的感受,就好像带着一片$(l:items/lens)$(item)探知透镜$(),只是效果偏弱。我的$(hex)咒法学$()视野似乎得到了扩展。",
@@ -254,15 +280,17 @@
"hexical.page.periwinkle.title": "长春花",
"hexical.page.periwinkle.0": "有一种灭绝已久的花朵,叫作$(item)长春花$()。它们很漂亮,还有安神的作用;古代的$(hex)咒术师$()会用它们来抚平$(hex)咒法学$()带来的莫大恐惧。$(br2)$(o)特别的花送给特别的人。$()",
- "hexcasting.action.hexical:periwinkle": "长春花之精思",
- "hexical.page.periwinkle.summary": "好在尘埃尚未完全落定。我找到了植物学$(hex)咒术师们$()留下的这个标识。我相信有$(l:patterns/spells/hexical_spells#hexical:flower)$(action)图案$()能让这种花起死回生。",
- "hexical.page.lei.summary": "成功复原几簇之后,即可用它们制作$(item)花冠$()了!$(item)花冠$()会小幅增强我的$(hex)咒法学$()视野,和$(l:items/lens)$(item)探知透镜$()比较像,只不过没有读取额外信息的功能。",
- "hexical.page.lei.description": "佩戴后,它还能阻止自然为施放$(hex)咒术$()而抽走我的生命。$(br2)和其他盔甲不同的是,如果其他玩家没有穿戴任何东西,就可直接为他们戴上$(item)花冠$()!古代的$(hex)咒术师$()将这种行为视作表达亲昵和爱慕;这是因为$(item)花冠$()具有防御和安神功能,而且长春花本身也难以获得。",
+ "hexcasting.action.hexical:periwinkle": "引发挖掘",
+ "hexical.page.periwinkle.summary": "好在,$(hex)咒法学$()是门适用面很广的技艺,有寻回几乎任何事物的能力。",
+ "hexical.page.periwinkle.1": "我认为有一种生物能够$(o)嗅探$()出这种花。我可以对这些$(thing)嗅探兽$()施放前页的法术,让它们立刻低头挖出这种花。$(br2)对自由意志的扭曲有代价,需要消耗大约 3 个$(l:items/amethyst)$(item)充能紫水晶$()。这么做偶尔会产生无害的精神$(o)错误$();毕竟人无完人,在处理和意识一样复杂的事物时就更是这样了。",
+ "hexical.page.periwinkle.2": "挖掘的过程一定有魔法的参与:$(thing)嗅探兽$()能从所有方块里挖出$(item)长春花$(),无机物方块、甚至连来自其他现实位面的方块都可以。$(br2)我猜,这个法术并不只是“让”$(thing)嗅探兽$()挖出了花,而是$(o)构筑$()了花。法术从大脑中搜出有关$(item)长春花$()的记忆,再据找到的模板实际创造出花朵,$(thing)嗅探兽$()才能挖出来。而如果它能挖到,那$(l:patterns/spells/hexical_spells#hexical:flower)我也可以$()。",
+ "hexical.page.lei.summary": "成功复原几簇$(item)长春花$()之后,即可用它们制作$(item)花冠$()了!$(item)花冠$()会小幅增强我的$(hex)咒法学$()视野,和$(l:items/lens)$(item)探知透镜$()比较像,只不过没有读取额外信息的功能。",
+ "hexical.page.lei.description": "佩戴后,$(item)花冠$()还能阻止自然把我的生命抽去施放$(hex)咒术$()。$(br2)和其他盔甲不同的是,如果其他玩家没有穿戴任何东西,就可直接为他们戴上$(item)花冠$()。古代的$(hex)咒术师$()将这种行为视作表达亲昵和爱慕;这是因为$(item)花冠$()具有防御和安神功能,也是因为需要费一番功夫才能采到长春花。",
"hexical.page.plushies.title": "玩偶",
"hexical.page.plushies.0": "古代的$(hex)咒术师们$()还制造了这些好看的$(item)玩偶$()!它们的外形和我在$(hex)咒法学$()中遇到的图案很相似。不太清楚它们有没有实际作用,但它们确实是不错的收藏品。$(br2)偶来拜访的流浪商人可能会在旅途中捡到一两个。",
"hexical.page.plushies.hexxy": "看着有些呆。放在物品栏里总给我种焦虑感。",
- "hexical.page.plushies.thothy": "好像在睡觉。带着它的时候会有种不自觉的确定感,就好像它在守护我一样。",
+ "hexical.page.plushies.thothy": "好像在睡觉。带着它的时候会有种奇特的确定感,就好像它在守护我一样。",
"hexical.page.plushies.irissy": "不管放在哪里都像在盯着我。伟大的 Irissy 啊,你曾见过何物?",
"hexical.page.plushies.quadxxy": "可能是手不够巧的人做的。拼都拼不进六边形网格啊!",
"hexical.page.plushies.pentxxy": "……这些玩意会不会是故意做成这样的。",
@@ -274,7 +302,7 @@
"hexical.page.wooleyed_potion.1": "将$(l:items/periwinkle)$(item)长春花$()酿造入$(item)粗制的药水$()即可获得这种药水。$(item)荧石粉$()和$(item)红石粉$()依然具有强化和延时功效,和大多数药水一样。",
"hexical.page.pedestal.title": "支座",
- "hexical.page.pedestal.0": "支座可让物品安全地悬浮起来。它和物品展示框还有箱子不一样——我的$(hex)咒术$()仍可和物品交互,就好像物品还掉在地上一样。空支座会吸引物品,支座和漏斗的交互也基本如我预期。甚至替换物品也行。",
+ "hexical.page.pedestal.0": "$(item)支座$()可让物品安全地悬浮起来。它和$(item)物品展示框$()还有$(item)箱子$()不一样——我的$(hex)咒术$()仍可和物品交互,就好像物品还掉在地上一样。空$(item)支座$()会吸引物品,它和$(item)漏斗$()的交互也基本如我预期。甚至替换物品也行。",
"hexical.page.pedestal.1": "$(o)支座和所有狭小局促的空间一样——都和监狱差不多。$()",
"hexical.category.lamp": "精灵神灯",
@@ -359,7 +387,7 @@
"hexical.page.draw_pattern.summary": "接受一个图案,并将其转换为长度为 1 的向量列表。这些向量的 Z 分量为 0。也许对某些艺术性$(hex)咒术$()很有用。",
"hexical.page.telepathy.title": "心灵感应",
- "hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于玩家的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取意图或向其写入思维。",
+ "hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于$(hex)咒术师$()的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取意图或向其写入思维。",
"hexcasting.action.hexical:get_telepathy": "心灵感应之精思",
"hexical.page.get_telepathy.summary": "对某种影像保持注意力,就可通过此图案探测到注意力的强度。压入我按下$(thing)$(k:hexical.telepathy)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
"hexcasting.action.hexical:send_telepathy": "传递思维",
@@ -367,9 +395,9 @@
"hexcasting.action.hexical:shout_telepathy": "喊出思维",
"hexical.page.shout_telepathy.summary": "在屏幕中央显示 iota。这么做会阻碍视野,消散也要时间,因此不应经常使用。",
"hexcasting.action.hexical:pling": "幻听扣弦",
- "hexical.page.pling.summary": "使我听到一段扣弦声,其他玩家无法听见。",
+ "hexical.page.pling.summary": "使我听到一段扣弦声,其他事物无法听见。",
"hexcasting.action.hexical:click": "幻听咔哒",
- "hexical.page.click.summary": "使我听到一段咔哒声,其他玩家无法听见。",
+ "hexical.page.click.summary": "使我听到一段咔哒声,其他事物无法听见。",
"hexcasting.action.hexical:left_click": "进攻之精思",
"hexical.page.left_click.summary": "压入我按下$(thing)$(k:attack)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
"hexcasting.action.hexical:right_click": "操纵之精思",
@@ -544,7 +572,7 @@
"hexical.page.flower.description": "构筑处四周必须存在足够支撑植物的平坦表面。不要求它可以种植花卉;但如果不可种植,那么任何轻微的动作都会让花朵掉落。还可以在花盆处使用:法术会先尝试在其中构筑。$(br2)$(o)杂草不过是还未得人青睐的鲜花。$()",
"hexcasting.action.hexical:light": "荧亮",
"hexical.page.light.summary": "在给定位置构筑一个给定光照强度的隐形光源。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.light.description": "构筑的位置必须腾空,或需该处方块极为脆弱。光照强度为 1 到 15 的数,两端闭。如果对应位置处已有光源,则法术变为无消耗,也不会产生粒子。$(br2)$(o)光明使人盲目。只有身处黑暗才能洞悉本质。$()",
+ "hexical.page.light.description": "构筑的位置必须腾空,或需该处方块极为脆弱。光照强度为 1 到 15 的数,两端闭。如果对应位置处已有光源,则法术变为无消耗,也不会产生粒子。$(br2)持有$(l:items/lens)$(item)探知透镜$()可让光源显形,在光源所在处放置方块可消除它们。$(br2)$(o)光明使人盲目。只有身处黑暗才能洞悉本质。$()",
"hexcasting.action.hexical:gasp": "喘息",
"hexical.page.gasp.summary": "立即填满生物的氧气条,消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$(),因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
@@ -640,6 +668,12 @@
"hexical.page.conjure_firework.2": "$(o)颜色$()$(br2)第五和第六个参数是$(l:patterns/spells/dyes)染料$()列表。第一个列表控制烟花的“初始”颜色,第二个列表控制烟花消散时的“渐变”颜色。第一列表中需至少含有一个染料;若不需“渐变”,第二个列表可以留空。",
"hexical.page.conjure_firework.3": "$(o)附加效果$()$(br2)第七个参数控制烟花粒子是否闪烁,相当于加入荧石与否。$(br2)第八个参数控制烟花粒子是否留下踪迹,相当于加入钻石与否。",
+ "hexical.page.rename.title": "物品重命名",
+ "hexcasting.action.hexical:item_name": "命名物品",
+ "hexical.page.item_name.summary": "接受一个物品,将其重命名为给定文本。传入 $(l:casting/influences)$(thing)Null$() 时重置名称。无需消耗$(media)媒质$()。",
+ "hexcasting.action.hexical:item_lore": "描述物品",
+ "hexical.page.item_lore.summary": "接受一个物品和一个文本列表,将文本列表加至物品作为描述。传入 $(l:casting/influences)$(thing)Null$() 时清除描述。无需消耗$(media)媒质$()。",
+
"hexical.page.shaders.title": "着色器",
"hexical.page.shaders.0": "这些法术作用于我的光感受体,能更改我的视野,也许是为实际用途,也许只是好玩。这些法术的效果会在死亡或暂离世界时消散。$(br2)$(o)你感觉得到了解放。你感觉你与魔力和谐共处。挖,这颜色闻起来真有意思。通常的概念已经不起作用。$()",
"hexcasting.action.hexical:shader_clear": "清空视野",
@@ -655,6 +689,18 @@
"hexcasting.action.hexical:shader_spider": "分裂视野",
"hexical.page.shader_spider.summary": "将我的视野分裂为多个小块,和蜘蛛的视野大概差不多。不太清楚为什么这么做能让我看得更清晰……",
+ "hexical.page.hopper.title": "漏斗",
+ "hexical.page.hopper.0": "这个法术专为点对点精确运输和批量运输物品而存在,取出和存入操作适用于许多方块和实体。$(br2)$(o)允许回收任意物品……再在现实中实例化……在任意数据源间传递任意信息$()",
+ "hexcasting.action.hexical:hopper": "漏斗",
+ "hexical.page.hopper.summary": "立即将所有物品从$(thing)来源$()传输到$(thing)目的$()。无论传输多少物质,均消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。数可选,详情见后页。",
+ "hexical.page.hopper.1": "代表施法者,或影响范围内$(thing)盔甲架$()、$(thing)运输矿车$()、$(thing)漏斗矿车$()、$(thing)运输船$()的 iota 均是有效$(thing)来源$(),它们分别指向相应的物品存储空间。这些 iota 也是有效的$(thing)目的$()。$(br2)代表$(thing)物品展示框$()和掉落的$(thing)物品$()的 iota 同样是有效$(thing)来源$()和$(thing)目的$()。对$(thing)物品$()来说,送出物品时会尝试将物品加入物品组。",
+ "hexical.page.hopper.2": "向量也是可用的$(thing)来源$()和$(thing)目的$()。即便对应位置处不存在容器方块,其仍可作为有效$(thing)目的$(),可用于向世界送出物品。$(br2)当确实存在容器方块时,它可作为$(thing)来源$(),也可作为$(thing)目的$()。如果向量指向的位置接近中心,则会对所有槽位抽取和存入;如果接近某一面,则与$(thing)漏斗$()类似,只会对该面抽取和存入。",
+ "hexical.page.hopper.3": "如果传入 $(l:casting/influences)$(thing)Null$(),就似乎会指向我的$(thing)末影箱$()物品栏。自然,只有人类施法时才对此起效。$(br2)因为不管$(thing)来源$()还是$(thing)目的$()都不可能是数,在$(thing)来源$()或$(thing)目的$()后方传入可选的数不会造成歧义。这也是图案签名中 num? 的由来,这一参数与$(o)槽位$()有关。",
+ "hexical.page.hopper.4": "槽位是自然选定的表示物品栏中特定空间的方法,相较之下可能稍难理解。例如,0、1、2、3 分别对应$(thing)盔甲架来源$()的靴子、护腿、胸甲、头盔槽位。传入槽位可以指定$(l:patterns/spells/hopper#hexical:hopper)$(action)漏斗$()抽取和存入物品的空间小块。$(br2)为便于快速查阅,我的快捷栏是 0 到 8,我的副手是 40,我的$(l:patterns/spells/wristpocket)魔袋$()是 -1。",
+ "hexcasting.action.hexical:index_hopper": "漏斗之纯化",
+ "hexical.page.index_hopper.summary": "适用于支持槽位的$(thing)来源$(),即常见的物品存储空间。返回其中所有物品组组成的列表,列表索引即为其槽位数。",
+ "hexical.page.index_hopper.description": "大体上来看,槽位数还算有逻辑;但玩家物品栏等存储空间的槽位数就显得很怪异了。$(br2)此图案可以用来查找$(thing)来源$()和$(thing)目的$()存储空间中某一位置的槽位数。处理加工时这个图案也很有用:扫描$(thing)来源$(),查看其中物品,根据某种度量方式加以运算,再据此决定要不要传输和传输到哪里。",
+
"hexical.page.horrible.title": "可怕的东西",
"hexical.page.horrible.0": "就我在$(hex)咒法学$()中遇到的所有法术而言,我都还没遇见过这种东西。$(o)到底要怎么画啊?$()",
"hexcasting.action.hexical:horrible": "召唤?",
From 9ca3406eb68acbcd2817fb2311b2ef51f4eed125 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sun, 13 Jul 2025 05:33:02 +0800
Subject: [PATCH 52/78] =?UTF-8?q?Hierophantics=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
---
.../assets/hierophantics/hierophantics/lang/en_us.json | 3 ++-
.../assets/hierophantics/hierophantics/lang/zh_cn.json | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
index ee709747c898..bf7fa28caa1e 100644
--- a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
+++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
@@ -21,7 +21,8 @@
"hierophantics.tooltip.trigger_type.teleport": "teleporting",
"hexcasting.mishap.hierophantics:mind_freed": "Tried to interact with an embedded mind that doesn't exist",
- "hexcasting.mishap.hierophantics:minds_disabled": "Your embedded minds are too unstable to %s!",
+ "hexcasting.mishap.hierophantics:minds_disabled.yours": "Your embedded minds are too unstable to %s!",
+ "hexcasting.mishap.hierophantics:minds_disabled.other": "This embedded mind is too unstable to %s!",
"hexcasting.mishap.hierophantics:not_your_mind": "Can't modify an embedded mind that isn't yours",
"hexcasting.mishap.invalid_value.class.mind_reference": "an embedded mind",
"hexcasting.mishap.invalid_value.class.trigger": "a trigger",
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
index 0bd26af2cf0d..7d235d6efc99 100644
--- a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
@@ -21,7 +21,8 @@
"hierophantics.tooltip.trigger_type.teleport": "传送",
"hexcasting.mishap.hierophantics:mind_freed": "试图与不存在的内嵌意识交互",
- "hexcasting.mishap.hierophantics:minds_disabled": "你的内嵌意识太过不稳定,无法%s!",
+ "hexcasting.mishap.hierophantics:minds_disabled.yours": "你的内嵌意识太过不稳定,无法%s!",
+ "hexcasting.mishap.hierophantics:minds_disabled.other": "这个内嵌意识太过不稳定,无法%s!",
"hexcasting.mishap.hierophantics:not_your_mind": "无法修改不属于你的内嵌意识",
"hexcasting.mishap.invalid_value.class.mind_reference": "一个内嵌意识",
"hexcasting.mishap.invalid_value.class.trigger": "一个触发条件",
From 9fd418b9b3efc2ee09caf7f9b9155e3f04f8f4b7 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Mon, 14 Jul 2025 22:00:52 +0800
Subject: [PATCH 53/78] =?UTF-8?q?Hierophantics=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
---
.../assets/hierophantics/hierophantics/lang/en_us.json | 7 +++++++
.../assets/hierophantics/hierophantics/lang/zh_cn.json | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
index bf7fa28caa1e..13a949a2ed54 100644
--- a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
+++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
@@ -3,6 +3,13 @@
"block.hierophantics.flay_bed": "Imbuement Bed",
+ "advancements.hierophantics.embed_mind.title": "Interwoven",
+ "advancements.hierophantics.embed_mind.description": "Embed a villager's mind into your own",
+ "advancements.hierophantics.waste_mind.title": "Atomized",
+ "advancements.hierophantics.waste_mind.description": "Waste a mind by activating an Imbuement Bed with no one in it",
+ "advancements.hierophantics.all_triggers.title": "Ready for Anything",
+ "advancements.hierophantics.all_triggers.description": "Have an embedded mind with each possible trigger",
+
"hierophantics.tooltip.mind_reference": "Embedded Mind \"%s\"",
"hierophantics.tooltip.trigger": "Trigger: When %s",
"hierophantics.tooltip.mishap_thrower": "Hierophantics Mishap Thrower",
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
index 7d235d6efc99..c1d110a1cb43 100644
--- a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
@@ -3,6 +3,13 @@
"block.hierophantics.flay_bed": "融念床",
+ "advancements.hierophantics.embed_mind.title": "交织",
+ "advancements.hierophantics.embed_mind.description": "将一个村民的意识嵌入自身",
+ "advancements.hierophantics.waste_mind.title": "散成原子",
+ "advancements.hierophantics.waste_mind.description": "启动没有接收对象的融念床,从而浪费一个意识",
+ "advancements.hierophantics.all_triggers.title": "准备万全",
+ "advancements.hierophantics.all_triggers.description": "为每种触发条件都准备一个内嵌意识",
+
"hierophantics.tooltip.mind_reference": "内嵌意识“%s”",
"hierophantics.tooltip.trigger": "触发条件:%s时",
"hierophantics.tooltip.mishap_thrower": "灵显学事故抛出器",
From a0d99fcae5e3895d0162851c461660e05bf30c9e Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Mon, 14 Jul 2025 22:16:41 +0800
Subject: [PATCH 54/78] =?UTF-8?q?Hexical=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
---
.../assets/modrinth-hexical/hexical/lang/en_us.json | 8 +-------
.../assets/modrinth-hexical/hexical/lang/zh_cn.json | 8 +-------
2 files changed, 2 insertions(+), 14 deletions(-)
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 8c3a5c5e18d8..6e8b81d743cd 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -250,7 +250,7 @@
"hexical.page.media_jar.title": "Media Jar",
"hexical.page.media_jar.0": "I can melt down all my $(l:items/amethyst)$(item)Amethyst$() in this little jar! Unfortunately, the glass is too thick for me to draw _media through it, although I have read tales that ancient _Hexcasters were able to solve this issue and were able to bottle up liquid _media in some kind of flask to use in their _Hexes. However, this $(item)Media Jar$() also has some fascinating properties for recycling _media.",
"hexical.page.media_jar.description": "$(o)There, sure enough, she saw the faint translucent outline of something aboout the size of a hen's egg. There was just a touch of color in it, a pale sea-green, soft and shimmering and very beautiful.",
- "hexical.page.media_jar.1": "I can dunk items into the liquid in order to imbue the item with pure _media. The _media seeps into the item and $(o)alters$() it in a variety of surprising and unpredictable ways.",
+ "hexical.page.media_jar.1": "I can dunk items into the liquid in order to imbue the item with pure _media. The _media seeps into the item and $(o)alters$() it in a variety of surprising and unpredictable ways.$(br2)This can be done either in-world by using an item on the jar, or in my inventory just by right-clicking an item with the jar. I can also use a $(item)Hopper$() to insert and extract items and _media, or use the $(l:patterns/spells/hopper)$(action)Hopper$() spell.",
"hexical.recipe.alchemists_take_this.header": "Make Gold",
"hexical.recipe.alchemists_take_this.text": "Transforms copper ingots to gold.",
"hexical.recipe.thoughtknot.header": "Weave Thought-Knot",
@@ -558,15 +558,9 @@
"hexcasting.action.hexical:sparkle": "Sparkle",
"hexical.page.sparkle.summary": "Produces a small sparkling particle of my desired position, color, and lifespan. Costs a negligible amount of _media.",
"hexical.page.sparkle.description": "The first vector controls position and the second vector controls color. Each component should range from 0 to 1 and corresponds to red, green, and blueness respectively. The final number dictates how long the sparkle should remain in twentieths of a second, up to five seconds.$(br2)$(o)All that glitters is not gold.$()",
- "hexcasting.action.hexical:block_ping": "Ping Block",
- "hexical.page.block_ping.summary": "Concentrates a little cube of _media to be visible to the naked eye, useful for highlighting things to me and those around me. Costs a negligible amount of _media.",
- "hexical.page.block_ping.description": "The first vector controls position and the second vector controls color. Each component should range from 0 to 1 and corresponds to red, green, and blueness respectively. The final number dictates how long the ping should remain in twentieths of a second, up to ten seconds.$(br2)$(o)LOOK AT THIS$()",
"hexcasting.action.hexical:crack_device": "Crack Device",
"hexical.page.crack_device.summary": "When casted on a $(l:items/hexcasting)$(item)casting device$() without a _Hex, $(o)cracks it$(). Cracked casting devices proudly display their _Hexes. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$().",
"hexical.page.crack_device.description": "This spell will blind me for a quite a duration if I attempt to expose the innerworkings of an already-written device. For a moment though, I believe I had glimpsed the _Hex before my eyes and brain filled with _media.$(br2)$(o)Nowadays time runs by electricity and vibrating crystals of quarts and goodness know what else.$().$(br)- clearly a reference to $(l:items/amethyst)$(item)Amethyst$().",
- "hexcasting.action.hexical:place_block_type": "Construct",
- "hexical.page.place_block_type.summary": "Places a specific type of block from my inventory at a position, orientation, and horizontal orientation. Costs about one-fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.place_block_type.description": "The orientation is an axis vector representing the direction I would face when placing the block. For blocks like doors and stairs, orientation should be either up or down and horizontal orientation determines direction.$(br2)$(o)In the psychology of the modern civilized human being, it is difficult to overstate the significance of the house.$()",
"hexcasting.action.hexical:flower": "Conjure Flower",
"hexical.page.flower.summary": "Conjures a flower of my choosing at a location. I must have identified this flower at some point before. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexical.page.flower.description": "The block under the target position must have a flat top surface to allow rooting. It does not necessarily need to be able to support the flower naturally, although any little movement may cause the flower to break if conjured on an incompatible block. Alternatively, the spell will fill a flower pot if possible.$(br2)$(o)There was a fool who praised me for the magic I acquired. That's all.$()",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index c8b1f3172d80..e70864f6a2fb 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -250,7 +250,7 @@
"hexical.page.media_jar.title": "媒质罐",
"hexical.page.media_jar.0": "我成功把我手头的$(l:items/amethyst)$(item)紫水晶$()全部融化到这个小罐里了!但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,成功把液态$(media)媒质$()装到了某种瓶子里去供$(hex)咒术$()使用。不过,这个$(item)媒质罐$()也有回收媒质的神奇功能。",
"hexical.page.media_jar.description": "$(o)就在那儿,她看见了一团浅浅的雾:那东西只有鸡蛋大小。它在柔和的淡海绿色之外几乎不带什么颜色,闪闪发光,非常漂亮。",
- "hexical.page.media_jar.1": "我可以把物品浸到这种液体里,以向其中注入纯净的$(media)媒质$()。渗入物品的$(media)媒质$()会$(o)改变$()物品,产物新奇而难以预测。",
+ "hexical.page.media_jar.1": "我可以把物品浸到这种液体里,以向其中注入纯净的$(media)媒质$()。渗入物品的$(media)媒质$()会$(o)改变$()物品,产物新奇而难以预测。$(br2)可以对放置出来的媒质罐使用物品,也可在物品栏中用媒质罐右击物品。$(item)漏斗$()可以存入和取出物品与$(media)媒质$(),换用$(l:patterns/spells/hopper)$(action)漏斗$()法术也是一样。",
"hexical.recipe.alchemists_take_this.header": "制金",
"hexical.recipe.alchemists_take_this.text": "将铜变形成金。",
"hexical.recipe.thoughtknot.header": "编织结念绳",
@@ -558,15 +558,9 @@
"hexcasting.action.hexical:sparkle": "烁星",
"hexical.page.sparkle.summary": "在给定位置以给定颜色和持续时间制造一颗闪光的小粒子。消耗极少量$(media)媒质$()。",
"hexical.page.sparkle.description": "第一个向量控制位置,第二个控制颜色。第二向量各分量应为 0 到 1 的数,分别对应红、绿、蓝三色。最后的数代表烁星应存在多少个 1/20 秒,最多可存在 5 秒。$(br2)$(o)闪光的不一定是金子。$()",
- "hexcasting.action.hexical:block_ping": "标记方块",
- "hexical.page.block_ping.summary": "将$(media)媒质$()聚焦成裸眼可见的小立方体,很适合用来高亮标记各种物体。消耗极少量$(media)媒质$()。",
- "hexical.page.block_ping.description": "第一个向量控制位置,第二个控制颜色。第二向量各分量应为 0 到 1 的数,分别对应红、绿、蓝三色。最后的数代表标记应存在多少个 1/20 秒,最多可存在 10 秒。$(br2)$(o)给我瞅瞅!$()",
"hexcasting.action.hexical:crack_device": "破解设备",
"hexical.page.crack_device.summary": "对不包含$(hex)咒术$()的$(l:items/hexcasting)$(item)施法物品$()使用时,$(o)将其破解$()。经破解的施法物品会自豪地展现它们的$(hex)咒术$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
"hexical.page.crack_device.description": "如果试图破解已经写入过的设备的内部结构,法术便会让我眼盲一段时间。不过,我认为好像有一瞬,我看到了$(hex)咒术$()显现在我的眼前,$(media)媒质$()填满了我的大脑。$(br2)$(o)现在时间都要靠电啦、振荡的石英晶体啦,鬼知道什么东西来走。$()$(br)——明显是在说$(l:items/amethyst)$(item)紫水晶$()。",
- "hexcasting.action.hexical:place_block_type": "构筑",
- "hexical.page.place_block_type.summary": "在给定位置以给定朝向和水平朝向放置我物品栏中给定类型的方块。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.place_block_type.description": "“朝向”指一个轴向向量,代表我在放置方块时面朝的方向。对门、楼梯等方块来说,朝向应为上或下,而“水平朝向”则决定了方块的朝向。$(br2)$(o)在现代文明人类的心理中,房子的重要性怎么强调都不为过。$()",
"hexcasting.action.hexical:flower": "构筑花卉",
"hexical.page.flower.summary": "在给定位置构筑一株花,品种任选。所需的花卉必须先经过标识。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
"hexical.page.flower.description": "构筑处四周必须存在足够支撑植物的平坦表面。不要求它可以种植花卉;但如果不可种植,那么任何轻微的动作都会让花朵掉落。还可以在花盆处使用:法术会先尝试在其中构筑。$(br2)$(o)杂草不过是还未得人青睐的鲜花。$()",
From 116c947f201e69ead905a2db0cf6ee1ef25cdf86 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 15 Jul 2025 14:46:00 +0800
Subject: [PATCH 55/78] =?UTF-8?q?Hexpose=20Overevaluate=20SlateWork=20Hier?=
=?UTF-8?q?ophantics=20Hexellular=20Hexical=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
---
.../assets/1UNKNOWN/hexpose/lang/en_us.json | 14 +++++++---
.../assets/1UNKNOWN/hexpose/lang/zh_cn.json | 14 +++++++---
.../1UNKNOWN/overevaluate/lang/en_us.json | 2 +-
.../1UNKNOWN/overevaluate/lang/zh_cn.json | 2 +-
.../1UNKNOWN/slate_work/lang/en_us.json | 13 ++++++++-
.../1UNKNOWN/slate_work/lang/zh_cn.json | 27 +++++++++++++------
.../hierophantics/lang/en_us.json | 14 +++++++---
.../hierophantics/lang/zh_cn.json | 14 +++++++---
.../hexcellular/lang/en_us.json | 2 +-
.../hexcellular/lang/zh_cn.json | 2 +-
.../modrinth-hexical/hexical/lang/en_us.json | 24 +++++++----------
.../modrinth-hexical/hexical/lang/zh_cn.json | 22 +++++++--------
12 files changed, 96 insertions(+), 54 deletions(-)
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
index ecf8def6eeae..96be67205dc9 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
@@ -44,7 +44,7 @@
"hexpose.page.is_brainswept.summary": "Pushes whether an entity has been \"magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
"hexpose.page.text.title": "Text Iota",
- "hexpose.page.text.0": "$(thing)Text iotas$() are a way to represent textual information itself in an iota. Not only does it encode all the information required for reading, it also contains all the information about styles such as $(#ff0000)coloring$() and $(o)italics$().$(br2)They can also encode an incredible amount of information in one iota.",
+ "hexpose.page.text.0": "$(thing)Text iotas$() represent textual information. Not only does it encode all the information required for reading, it also contains styles such as $(#ff0000)coloring$() and $(o)italics$().$(br2)They can also encode an incredible amount of information in one iota. With how dense they are, they can quickly collapse into meaninglessness.",
"hexcasting.action.hexpose:create_text": "Reading Purification",
"hexpose.page.create_text.summary": "Takes an iota and returns a text iota representing it. If taking a text iota, strips all the styles of it.",
"hexpose.page.add_text.summary": "Pushes a text iota of the first followed immediately by the second.",
@@ -208,8 +208,16 @@
"hexpose.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
"hexcasting.action.hexpose:get_enchantment_strength": "Charm Distillation",
"hexpose.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
- "hexcasting.action.hexpose:rarity": "Collector Purification",
- "hexpose.page.rarity.summary": "Gauges the rarity of an item as a number, with greater values corresponding to a rarer item. Certain aspects such as enchantments can also elevate an item's rarity.",
+ "hexcasting.action.hexpose:item_name": "Appellation Purification",
+ "hexpose.page.item_name.summary": "Gets the name given to this item.",
+ "hexcasting.action.hexpose:item_lore": "Legacy Purification",
+ "hexpose.page.item_lore.summary": "Gets the lore written into this item.",
+ "hexcasting.action.hexpose:item_variant": "Glamour Purification",
+ "hexpose.page.item_variant.summary": "If this item is subceptible to $(l:patterns/spells/cyclevariant)$(action)Caster's Glamour$(), pushes the index of the current form it's taking on. Otherwise pushes $(l:casting/influences)$(thing)Null$().",
+ "hexcasting.action.hexpose:item_variant_max": "Glamour Purification II",
+ "hexpose.page.item_variant_max.summary": "If this item is subceptible to $(l:patterns/spells/cyclevariant)$(action)Caster's Glamour$(), pushes the number of forms it's capable of. Otherwise pushes $(l:casting/influences)$(thing)Null$().",
+ "hexcasting.action.hexpose:item_rarity": "Collector Purification",
+ "hexpose.page.item_rarity.summary": "Gauges the rarity of an item as a number, with greater values corresponding to a rarer item. Certain aspects such as enchantments can also elevate an item's rarity.",
"hexpose.page.media.title": "Media",
"hexcasting.action.hexpose:env_media": "Media Reflection",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
index f7c85acf8b2f..088e19b18fbe 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
@@ -44,7 +44,7 @@
"hexpose.page.is_brainswept.summary": "检验实体是否“被魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
"hexpose.page.text.title": "文本 Iota",
- "hexpose.page.text.0": "$(thing)文本 iota$() 是代表文本本身的 iota。它不只编码了字面的信息,还包含了$(#ff0000)颜色$()和$(o)斜体$()等样式的信息。$(br2)它们可在单个 iota 中存下很多信息。",
+ "hexpose.page.text.0": "$(thing)文本 iota$() 代表着文本信息。它不只编码了字面的信息,还包含了$(#ff0000)颜色$()和$(o)斜体$()等样式。$(br2)它们可在单个 iota 中存下很多信息。而正因其信息密度高,它们可能很快就会崩解为无意义的东西。",
"hexcasting.action.hexpose:create_text": "阅读之纯化",
"hexpose.page.create_text.summary": "接受一个 iota,返回代表其的文本 iota。如果接受的是文本 iota,则清除其样式。",
"hexpose.page.add_text.summary": "返回第一文本和第二文本首尾相接的文本 iota。",
@@ -207,8 +207,16 @@
"hexpose.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
"hexcasting.action.hexpose:get_enchantment_strength": "咒能之馏化",
"hexpose.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
- "hexcasting.action.hexpose:rarity": "收藏家之纯化",
- "hexpose.page.rarity.summary": "测量物品的稀有度,返回为数,值越大越稀有。魔咒等特殊性质可能会提升物品的稀有度。",
+ "hexcasting.action.hexpose:item_name": "称谓之纯化",
+ "hexpose.page.item_name.summary": "获取物品的名称。",
+ "hexcasting.action.hexpose:item_lore": "传承之纯化",
+ "hexpose.page.item_lore.summary": "获取物品的说明。",
+ "hexcasting.action.hexpose:item_variant": "魅力之纯化",
+ "hexpose.page.item_variant.summary": "如果物品会受到$(l:patterns/spells/cyclevariant)$(action)施法者之魅力$()的影响,则返回其当前外形对应的索引;否则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:item_variant_max": "魅力之纯化,第二型",
+ "hexpose.page.item_variant_max.summary": "如果物品会受到$(l:patterns/spells/cyclevariant)$(action)施法者之魅力$()的影响,则返回其可变化的外形总数;否则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:item_rarity": "收藏家之纯化",
+ "hexpose.page.item_rarity.summary": "测量物品的稀有度,返回为数,值越大越稀有。魔咒等特殊性质可能会提升物品的稀有度。",
"hexpose.page.media.title": "媒质",
"hexcasting.action.hexpose:env_media": "媒质之精思",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
index 21f7c1d523df..680e0b43d778 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
@@ -42,7 +42,7 @@
"hexcasting.action.overevaluate:athena_print": "Athena's Revelation",
"overevaluate.page.athena_print.summary": "Reveals to me the last mishap caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$() within this _Hex.",
"hexcasting.action.overevaluate:athena_log": "Athena's Reflection",
- "overevaluate.page.athena_log.summary": "Pushes the last mishap caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$() as $(o)text$(). It requires $(l:https://modrinth.com/mod/moreiotas)$(thing)certain powers$() to be at play or this pattern simply produces meaninglessness.",
+ "overevaluate.page.athena_log.summary": "Pushes the last mishap caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$() as $(o)text$() if the appropriate powers are active in this world.",
"hexcasting.action.overevaluate:apep": "Apep's Gambit",
"overevaluate.page.apep.summary": "Folds across the first list using the _Hex in the second list.",
"overevaluate.page.apep.description": "Starts with the first two elements of the list and casts the _Hex on them. Then, the top iota remaining after casting and the next element in the list are placed on the stack and casted upon, repeating until the entire list has been exhausted. The top iota after all that is finally pushed onto the stack.$(br2)$(o)Euler did music too, you know$()",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
index de22b7109503..e9d73762513a 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
@@ -42,7 +42,7 @@
"hexcasting.action.overevaluate:athena_print": "雅典娜之揭示",
"overevaluate.page.athena_print.summary": "揭示所处$(hex)咒术$()内$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。",
"hexcasting.action.overevaluate:athena_log": "雅典娜之精思",
- "overevaluate.page.athena_log.summary": "以$(o)文本$()形式返回$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。此法术需要借助$(l:https://modrinth.com/mod/moreiotas)$(thing)特殊力量$(),否则就只会产出一团乱麻。",
+ "overevaluate.page.athena_log.summary": "如果世界中有对应的特殊力量,则会以$(o)文本$()形式返回$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。",
"hexcasting.action.overevaluate:apep": "阿佩普之策略",
"overevaluate.page.apep.summary": "用第二列表指定的$(hex)咒术$()“折叠”/“fold”第一列表。",
"overevaluate.page.apep.description": "第一次施放会将$(hex)咒术$()作用于第一和第二个 iota,结果暂存于栈顶。下一次施放作用于第一次暂存的 iota 和原本的第三个 iota,同样暂存于栈顶元素。重复此过程,直至穷尽第一列表。最后,返回最后一次暂存的 iota。$(br2)$(o)欧拉也玩过音乐。$()",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
index 401cd59ed1c8..4ff518276a19 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
@@ -2,6 +2,7 @@
"block.slate_work.storage_slate": "Storage Vessels",
"block.slate_work.ambit_extender": "Ambit Extender",
"block.slate_work.crafting_slate": "Patterned Assembler",
+ "block.slate_work.speed_loci": "Wave Regulator",
"Patterns:":"",
"hexcasting.action.slate_work:get_storage": "Get Vessels",
@@ -21,5 +22,15 @@
"slate_work.entry.ambit_extenders": "Ambit Extenders",
"slate_work.page.ambit_extender.ambit_extender": "The Ambit Extender is a fabulous answer to my $(thing)Ambit/$ woes when it comes to $(l:greatwork/spellcircles)Spell Circles/$. This pops a vector from the stack, and extends ambit in the direction (negative vectors extending the negative corner of Circle Ambit). $(br2)$(br2)$(o)With great range comes with great costs, err-",
- "slate_work.page.ambit_extender.ambit_extender_cont": "While this is not as strong as... $(l:https://forum.petra-k.at/viewtopic.php?t=136)other/$ methods of giving a $(l:greatwork/spellcircles)Spell Circles/$ more $(thing)Ambit/$, I do feel like Nature takes a kinder approach to my amalgamation of free will if I use this.$(br2)This does not come cheap however, the _media cost increases with the square of the total distance changed. So if I were to give this a (0,5,0) vector, it would grant the $(l:greatwork/spellcircles)Spell Circle/$ 5 extra blocks of $(thing)Ambit/$ above it, much like if I extended the slates 5 blocks up at the cost of 25 shards"
+ "slate_work.page.ambit_extender.ambit_extender_cont": "While this is not as strong as... $(l:https://forum.petra-k.at/viewtopic.php?t=136)other/$ methods of giving a $(l:greatwork/spellcircles)Spell Circles/$ more $(thing)Ambit/$, I do feel like Nature takes a kinder approach to my amalgamation of free will if I use this.$(br2)This does not come cheap however, the _media cost increases with the square of the total distance changed. So if I were to give this a (0,5,0) vector, it would grant the $(l:greatwork/spellcircles)Spell Circle/$ 5 extra blocks of $(thing)Ambit/$ above it, much like if I extended the slates 5 blocks up at the cost of 25 shards",
+
+ "slate_work.entry.wave_regulator": "Wave Regulators",
+ "slate_work.page.speed_loci.speed_loci": "As I begin to explore the uses of the $(l:greatwork/spellcircles)Great Work/$, I find my self needing more control over these fascinating possibilities. So I have created the $(thing)Wave Regulator/$; what this does is it pops a number from the stack, and attempts to set the \"speed\" of the wave. More specifically, how many 20ths of a second the wave should wait before going to the next slate.",
+ "slate_work.page.speed_loci.speed_loci_cont": "This system does have some limitations however. For one, it cannot set the speed to be faster than the wave could possibly move, doing nothing if I try to set the speed higher. Explained, it can only set the time to wait to any number above or equal the circles default acquired speed, or back to its regular speed. To do this, the $(thing)Wave Regulator/$ needs to pop a 0 from the stack, and it gives the $(l:greatwork/spellcircles)Spell Circle/$ full control of the $(thing)media wave/$ again.",
+
+ "Mishaps:": "",
+ "hexcasting.mishap.circle.no_vessels_ran": "At %s did not find any activated Vessels",
+ "hexcasting.mishap.circle.media_costs": "At %s required more Media than what the impetus held",
+
+ "hexcasting.mishap.no_vessels_ran": "Did not find any activated Vessels"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
index 8d7e763a26c3..0ee967736486 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
@@ -1,25 +1,36 @@
{
- "block.slate_work.storage_slate": "存储器具",
+ "block.slate_work.storage_slate": "存储容具",
"block.slate_work.ambit_extender": "范围扩展器",
"block.slate_work.crafting_slate": "样板组装器",
+ "block.slate_work.speed_loci": "波速调节器",
"Patterns:":"",
- "hexcasting.action.slate_work:get_storage": "获取器具",
+ "hexcasting.action.slate_work:get_storage": "获取容具",
"hexcasting.action.slate_work:check_item": "检查物品",
"hexcasting.action.slate_work:store_item": "容纳物品",
"hexcasting.action.slate_work:get_item": "唤回物品",
"Entries:": "",
- "slate_work.entry.vessels": "存储器具",
- "slate_work.page.vessels.1": "$(thing)器具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。",
- "slate_work.page.vessels.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)器具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储器具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。",
- "slate_work.page.vessels.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)器具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)器具/$。",
- "slate_work.page.vessels.store_item": "向$(thing)器具/$存入物品比取出容易。此图案会接受一个物品实体,并将其存入激活的$(thing)存储器具/$。",
+ "slate_work.entry.vessels": "存储容具",
+ "slate_work.page.vessels.1": "$(thing)容具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。",
+ "slate_work.page.vessels.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)容具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储容具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。",
+ "slate_work.page.vessels.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)容具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)容具/$。",
+ "slate_work.page.vessels.store_item": "向$(thing)容具/$存入物品比取出容易。此图案会接受一个物品实体,并将其存入激活的$(thing)存储容具/$。",
"slate_work.page.vessels.get_item": "此图案接受一个$(hex)咒术/$,并对所存储的所有$(l:patterns/scrying/item)物品组/$运行。运行该$(hex)咒术/$后,图案需要一个 $(thing)False/$ 或 $(thing)True/$,一个$(thing)向量/$(物品输出位置),和一个$(thing)整数/$(物品数量)。",
"slate_work.page.vessels.get_item_cont": "继续解释说明。和第二页中所说的一样,它会从栈中复制 iota。栈顶为 [位置, 数量, 类型],此时法术会运行接受$(l:patterns/scrying/item)物品组/$类型的$(hex)咒术/$,该$(hex)咒术/$会用类型进行$(l:patterns/logic#hexcasting:equals)相等判断/$。这之后,图案会在所给位置处返还所给数量个该类型物品的物品实体。$(br)需要注意,这一“搜索”在找到匹配项后不会提前结束。",
"slate_work.page.vessels.check_item": "检查物品的功能和唤回物品类似。但它只需要“内部栈”上有一个布尔值。如果该布尔值为 True,则法术返回 True。",
"slate_work.entry.ambit_extenders": "范围扩展器",
"slate_work.page.ambit_extender.ambit_extender": "范围扩展器能解$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$之忧。它会移除栈顶向量,并据此扩展影响范围(负向量会向负方向扩展法术环影响范围)。$(br2)$(br2)$(o)范围越大,消耗越大,呃……",
- "slate_work.page.ambit_extender.ambit_extender_cont": "虽然它不及……$(l:https://forum.petra-k.at/viewtopic.php?t=136)其他/$扩展$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$的方法强大,但我确实觉得这种方法可以让自然对我的自由意志友善些。$(br2)这种方法并不便宜,$(media)媒质$()的耗量随改变距离的平方变化。如果传入 [0, 5, 0] 向量,它即会将$(l:greatwork/spellcircles)法术环/$的$(thing)影响范围/$向上扩展 5 格。相当于消耗 25 个紫水晶碎片来向上方多铺 5 块“石板”。"
+ "slate_work.page.ambit_extender.ambit_extender_cont": "虽然它不及……$(l:https://forum.petra-k.at/viewtopic.php?t=136)其他/$扩展$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$的方法强大,但我确实觉得这种方法可以让自然对我的自由意志友善些。$(br2)这种方法并不便宜,$(media)媒质/$的耗量随改变距离的平方变化。如果传入 [0, 5, 0] 向量,它即会将$(l:greatwork/spellcircles)法术环/$的$(thing)影响范围/$向上扩展 5 格。相当于消耗 25 个紫水晶碎片来向上方多铺 5 块“石板”。",
+
+ "slate_work.entry.wave_regulator": "波速调节器",
+ "slate_work.page.speed_loci.speed_loci": "自从我开始探索$(l:greatwork/spellcircles)卓伟之作/$的用途之时,就总有更精细控制这种新事物的需要。因此,我制造了$(thing)波速调节器/$。它会从栈中弹出一个数,并用其设置媒质波的“速度”。更准确地说,是媒质波在流入下一块石板前应等待多少个 1/20 秒。",
+ "slate_work.page.speed_loci.speed_loci_cont": "这一体系的确有其局限。例如,速度无法超出媒质波移速的上线,试图这么做不会产生任何效果。换言之,它只能将等待时间设为大于等于法术环的最短等待时间,或是重设为正常速度。后者需要$(thing)波速调节器/$弹出 0,从而将$(thing)媒质波/$的控制权交还给$(l:greatwork/spellcircles)法术环/$。",
+
+ "Mishaps:": "",
+ "hexcasting.mishap.circle.no_vessels_ran": "%s处未找到已激活的容具",
+ "hexcasting.mishap.circle.media_costs": "%s处需要的媒质超出了促动石当前的存储量",
+
+ "hexcasting.mishap.no_vessels_ran": "未找到已激活的容具"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
index 13a949a2ed54..c02296f0cf59 100644
--- a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
+++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
@@ -8,7 +8,7 @@
"advancements.hierophantics.waste_mind.title": "Atomized",
"advancements.hierophantics.waste_mind.description": "Waste a mind by activating an Imbuement Bed with no one in it",
"advancements.hierophantics.all_triggers.title": "Ready for Anything",
- "advancements.hierophantics.all_triggers.description": "Have an embedded mind with each possible trigger",
+ "advancements.hierophantics.all_triggers.description": "Have an embedded mind with each possible trigger type",
"hierophantics.tooltip.mind_reference": "Embedded Mind \"%s\"",
"hierophantics.tooltip.trigger": "Trigger: When %s",
@@ -34,12 +34,17 @@
"hexcasting.mishap.invalid_value.class.mind_reference": "an embedded mind",
"hexcasting.mishap.invalid_value.class.trigger": "a trigger",
+ "hierophantics.mishap.minds_disabled.action.cast": "function",
+ "hierophantics.mishap.minds_disabled.action.read": "examine",
+ "hierophantics.mishap.minds_disabled.action.write": "modify",
+ "hierophantics.mishap.minds_disabled.action.free": "interact with",
+
"hexcasting.action.hierophantics:get_minds": "Hierophant's Reflection",
"hexcasting.action.hierophantics:reenable_minds": "Stabilize Minds",
+ "hexcasting.action.hierophantics:set_mind_hex": "Payload Gambit",
"hexcasting.action.hierophantics:get_mind_hex": "Payload Purification",
- "hexcasting.action.hierophantics:set_mind_hex": "Payload Distillation",
+ "hexcasting.action.hierophantics:set_mind_trigger": "Trigger Gambit",
"hexcasting.action.hierophantics:get_mind_trigger": "Trigger Purification",
- "hexcasting.action.hierophantics:set_mind_trigger": "Trigger Distillation",
"hexcasting.action.hierophantics:free_mind": "Free Mind",
"hexcasting.action.hierophantics:make_damage_trigger": "Trigger Reflection: Damage",
"hexcasting.action.hierophantics:make_damage_type_trigger": "Trigger Reflection: Damage Type",
@@ -87,7 +92,8 @@
"hierophantics.page.free_mind.summary": "Permanently removes an embedded mind from my own consciousness.$(br2)I wonder what happens to them, when they go?",
"hierophantics.page.triggers.title": "Hierophantic Triggers",
- "hierophantics.page.triggers.0": "My $(l:greatwork/hierophantics)embedded minds$() are independent to a point, but they cannot truly think for themselves. Thus, in order to begin casting, they require a trigger of some kind. The patterns listed here are used to create these triggers, based on a variety of common occurances.",
+ "hierophantics.page.triggers.0": "My $(l:greatwork/hierophantics)embedded minds$() are independent to a point, but they cannot truly think for themselves. Thus, in order to begin casting, they require a trigger of some kind. The patterns listed here are used to create these triggers, based on a variety of common occurances. Once created, a trigger can be assigned to a mind using $(l:patterns/mind_handling#hierophantics:set_mind_trigger)Trigger Gambit$().",
+ "hierophantics.page.triggers.1": "Some triggers, when activated, may cast their hex with an iota relevant to the triggering event already on the stack, to allow for a more fine-grained response. The triggers that do this are listed below, along with the iota they provide:$(br)$(li)Damage: amount of damage$()$(li)DmgType: amount of damage$()$(li)Drop: dropped item entity$()$(li)Attack: attacked entity$()$(li)Break: position broken$()$(li)Teleport: offset vector$()",
"hierophantics.page.make_damage_trigger.summary": "Creates a trigger that activates whenever I take damage. To prevent a lethal chain-reaction, does not activate if the damage was caused by overcasting.",
"hierophantics.page.make_damage_type_trigger.summary": "Creates a trigger that activates whenever I take damage, but only if the damage was of a specific type. The trigger will be attunned to whatever type of damage I last received.",
"hierophantics.page.make_health_trigger.summary": "Creates a trigger that activates when my health drops below the specified value. A full, standard healthbar has a value of 20.",
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
index c1d110a1cb43..b9f20e17bc8f 100644
--- a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
@@ -34,12 +34,17 @@
"hexcasting.mishap.invalid_value.class.mind_reference": "一个内嵌意识",
"hexcasting.mishap.invalid_value.class.trigger": "一个触发条件",
+ "hierophantics.mishap.minds_disabled.action.cast": "运作",
+ "hierophantics.mishap.minds_disabled.action.read": "查看",
+ "hierophantics.mishap.minds_disabled.action.write": "修改",
+ "hierophantics.mishap.minds_disabled.action.free": "交互",
+
"hexcasting.action.hierophantics:get_minds": "灵显师之精思",
"hexcasting.action.hierophantics:reenable_minds": "稳定意识",
+ "hexcasting.action.hierophantics:set_mind_hex": "载术之策略",
"hexcasting.action.hierophantics:get_mind_hex": "载术之纯化",
- "hexcasting.action.hierophantics:set_mind_hex": "载术之馏化",
+ "hexcasting.action.hierophantics:set_mind_trigger": "触发之策略",
"hexcasting.action.hierophantics:get_mind_trigger": "触发之纯化",
- "hexcasting.action.hierophantics:set_mind_trigger": "触发之馏化",
"hexcasting.action.hierophantics:free_mind": "释放意识",
"hexcasting.action.hierophantics:make_damage_trigger": "触发之精思:伤害",
"hexcasting.action.hierophantics:make_damage_type_trigger": "触发之精思:伤害类型",
@@ -87,7 +92,8 @@
"hierophantics.page.free_mind.summary": "从我的意识里永久性移除一个内嵌意识。$(br2)它们离开时,究竟会发生什么?",
"hierophantics.page.triggers.title": "灵显学触发条件",
- "hierophantics.page.triggers.0": "我的$(l:greatwork/hierophantics)内嵌意识$()相对独立,但还不具备真正的思考能力。因此,为让其开始施法,需要设置一定的触发条件。此处列出的图案可根据多种常见事件创建触发条件。",
+ "hierophantics.page.triggers.0": "我的$(l:greatwork/hierophantics)内嵌意识$()相对独立,但还不具备真正的思考能力。因此,为让其开始施法,需要设置一定的触发条件。此处列出的图案可根据多种常见事件创建触发条件。创建完成后,可以用$(l:patterns/mind_handling#hierophantics:set_mind_trigger)触发之策略$()为内嵌意识分配条件。",
+ "hierophantics.page.triggers.1": "某些触发条件激活后,初始施法栈会以与事件有关的 iota 起始,以便细化回应方式。具有此特性的触发条件和对应起始 iota 见下:$(br)$(li)伤害:所受伤害的量$()$(li)伤害类型:所受伤害的量$()$(li)丢弃:丢出的物品实体$()$(li)攻击:击中的实体$()$(li)破坏:破坏处的位置$()$(li)传送:偏移向量$()",
"hierophantics.page.make_damage_trigger.summary": "创建一个在我受到伤害时激活的触发条件。为避免产生致命的链式反应,由过度施法造成的伤害不会激活此类触发条件。",
"hierophantics.page.make_damage_type_trigger.summary": "创建一个在我受到伤害时激活的触发条件,且伤害必须为特定类型。使用我最后一次所受伤害的类型。",
"hierophantics.page.make_health_trigger.summary": "创建一个在我生命值降至给定值以下时激活的触发条件。完整的标准生命条为 20。",
@@ -95,7 +101,7 @@
"hierophantics.page.make_hunger_trigger.summary": "创建一个在我饥饿值降至给定值以下时激活的触发条件。完整的饥饿条为 20。",
"hierophantics.page.make_velocity_trigger.summary": "创建一个在我速度(以格每刻计)超过给定值时激活的触发条件。",
"hierophantics.page.make_fall_trigger.summary": "创建一个在我摔落超过给定距离(以格计)时激活的触发条件。",
- "hierophantics.page.make_drop_trigger.summary": "创建一个在我丢下物品时激活的触发条件。触发条件中$(l)不$()包括非主动的丢弃,如死亡或使用$(l:patterns/great_spells/teleport)卓越传送$()导致的物品散落。",
+ "hierophantics.page.make_drop_trigger.summary": "创建一个在我丢下物品时激活的触发条件。非主动的丢弃,如死亡或使用$(l:patterns/great_spells/teleport)卓越传送$()导致的物品散落等,$(l)不$()会激活此类触发条件。",
"hierophantics.page.make_attack_trigger.summary": "创建一个在我击中其他实体时激活的触发条件。",
"hierophantics.page.make_break_trigger.summary": "创建一个在我破坏方块时激活的触发条件。",
"hierophantics.page.make_jump_trigger.summary": "创建一个在我跳跃时激活的触发条件。",
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
index ac4f81d2d26b..0f30d194383f 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
@@ -17,7 +17,7 @@
"hexcellular.page.observe_property.summary": "Observes the current value of the property iota.",
"hexcasting.action.hexcellular:set_property": "Schrödinger's Gambit",
"hexcellular.page.set_property.summary": "Sets the property iota. Costs about a tenth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcellular.page.properties.3": "Occasionally, I may want to pass out property iota without the risk of someone else overwriting their contents. In such cases, I can create read-only copies. They can still be read using $(l:properties#hexcellular:observe_property)$(action)Observation Purification$() and will refer to the $(thing)Property$() as usual but they can not be written to with $(l:properties#hexcellular:set_property)$(action)Schrödinger's Gambit$().$(br2)To distinguish, read-only property iotas are cyan.",
+ "hexcellular.page.properties.3": "Occasionally, I may want to pass out property iota without the risk of someone else overwriting their contents. In such cases, I can create read-only copies. They can still be read using $(l:properties#hexcellular:observe_property)$(action)Observation Purification$() and will refer to the $(thing)Property$() as usual but they can not be written to with $(l:properties#hexcellular:set_property)$(action)Schrödinger's Gambit$().$(br2)To distinguish, read-only property iotas are bolden.",
"hexcasting.action.hexcellular:readonly_property": "Schrödinger's Purification",
"hexcellular.page.readonly_property.summary": "Creates a read-only property iota that refers to the same $(thing)Property$() as the given property iota."
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
index 12e644b17cf5..a657275a1e34 100644
--- a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
@@ -17,7 +17,7 @@
"hexcellular.page.observe_property.summary": "观测质性 iota 当前的值。",
"hexcasting.action.hexcellular:set_property": "薛定谔之策略",
"hexcellular.page.set_property.summary": "设置质性 iota 的值。消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcellular.page.properties.3": "有些时候,送出质性 iota 时需保证其他人不会覆写其内容。只读副本即可达成这一目的。这些副本仍可由$(l:properties#hexcellular:observe_property)$(action)观测之纯化$()读取,且也会指向对应的$(thing)质性$(),但$(l:properties#hexcellular:set_property)$(action)薛定谔之策略$()无法向其写入。$(br2)为方便区分,只读质性 iota 会显示为青色。",
+ "hexcellular.page.properties.3": "有些时候,送出质性 iota 时需保证其他人不会覆写其内容。只读副本即可达成这一目的。这些副本仍可由$(l:properties#hexcellular:observe_property)$(action)观测之纯化$()读取,且也会指向对应的$(thing)质性$(),但$(l:properties#hexcellular:set_property)$(action)薛定谔之策略$()无法向其写入。$(br2)为方便区分,只读质性 iota 会加粗显示。",
"hexcasting.action.hexcellular:readonly_property": "薛定谔之纯化",
"hexcellular.page.readonly_property.summary": "以给定质性 iota 对应的$(thing)质性$()为基础制造一个只读副本。"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
index 6e8b81d743cd..363f43529c67 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
@@ -51,6 +51,7 @@
"item.hexical.curio_bismuth": "Bismuth Curio",
"item.hexical.curio_charm": "Charm Curio",
"item.hexical.curio_clover": "Clover Curio",
+ "item.hexical.curio_compass": "Compass Curio",
"item.hexical.curio_conch": "Conch Curio",
"item.hexical.curio_cube": "Cube Curio",
"item.hexical.curio_down": "Down Curio",
@@ -63,7 +64,6 @@
"item.hexical.curio_strange": "Strange Curio",
"item.hexical.curio_truth": "Truth Curio",
"item.hexical.curio_up": "Up Curio",
- "item.hexical.conjured_compass": "Conjured Compass",
"item.hexical.grimoire": "Grimoire",
"item.hexical.hand_lamp": "Hand Genie Lamp",
"item.hexical.hex_gummy": "Hex Gummy",
@@ -169,7 +169,7 @@
"hexcasting.mishap.invalid_value.true_dye_list": "a list of colored dyes",
"hexcasting.mishap.hexical:active_arch_lamp": "Expected to be cast by an Archgenie Lamp or an Archgenie Lamp in the caster's inventory.",
"hexcasting.mishap.hexical:can_not_dye": "Expected a dyeable target",
- "hexcasting.mishap.hexical:inedible": "Wristpocketed item is not edible.",
+ "hexcasting.mishap.hexical:inedible_wristpocket": "Wristpocketed item is not edible.",
"hexcasting.mishap.hexical:magic_missile_coordinates": "Could not identify any form of spatial axis.",
"hexcasting.mishap.hexical:needs_charmed_item": "Expected to be cast by a charmed item.",
"hexcasting.mishap.hexical:needs_lamp": "Expected to be cast by a genie.",
@@ -225,8 +225,8 @@
"hexical.page.scarab.title": "Scarab Beetle",
"hexical.page.scarab.0": "A $(item)Scarab Beetle$() is an adorable little amulet that is highly sensitive to _media. When activated, they can intercept patterns rejected by Nature.$(br2)Specifically anything connected to my person casts a pattern that has no meaning to Nature, the scarab steps in and prevents the mishap.$(br2)$(o)Whatever. Go my scarab.$()",
"hexical.page.scarab.1": "I can instruct my scarab how to judge these \"illegal\" patterns and how to replace it with a different set of patterns instead. This allows me to make $(o)new$() patterns that work seamlessly for only me, even in $(l:items/hexcasting)$(item)casting devices$().",
- "hexical.page.scarab.2": "Teaching them involves $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$() to teach a _Hex to them. While scarabs proudly display their learned _Hex, they resist mind-reading from $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(). Teaching them new instructions requires asking them to $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)forget$() first.$(br2)When an illegal pattern is cast, an active scarab will push the rejected pattern to the stack rather than allowing a mishap. It will then cast its learned _Hex before allowing the remainder of the original _Hex to continue.",
- "hexical.page.scarab.3": "The power scarabs allow is to create my own patterns that will work seamlessly in my $(l:items/staff)$(item)Staff$() or $(l:items/hexcasting)$(item)casting devices$() I wield.$(br2)I shall find these patterns concerning the $(l:patterns/pattern_manipulation)meta-manipulation of patterns$() useful if I want to implement advanced processing. I could theoretically create entire infinite families of patterns, similar to the $(l:patterns/numbers)number literals$() and $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambits$().",
+ "hexical.page.scarab.2": "Teaching them involves $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$() to teach a _Hex to them. While scarabs proudly display their learned _Hex, they resist mind-reading from $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(). I can reteach them at any time.$(br2)When an illegal pattern is cast, an active scarab will push the rejected pattern to the stack rather than allowing a mishap. It will then cast its learned _Hex and allow the remainder of the original _Hex to continue.",
+ "hexical.page.scarab.3": "The power scarabs allow is to create my own patterns that will work seamlessly in my $(l:items/staff)$(item)Staff$() or the $(l:items/hexcasting)$(item)casting devices$() I wield.$(br2)I shall find these patterns concerning the $(l:patterns/pattern_manipulation)meta-manipulation of patterns$() useful if I want to implement advanced processing. I could theoretically create entire infinite families of patterns, similar to the $(l:patterns/numbers)number literals$() and $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambits$().",
"hexical.page.animated_scroll.title": "Animated Scrolls",
"hexical.page.animated_scroll.0": "$(item)Animated Scrolls$() are mixed with a pinch of $(l:items/amethyst)$(item)Amethyst Dust$(), enchanting the ink to move and wiggle like the patterns I draw with my $(l:items/staff)$(item)Staff$(). Not only that, they can display lists of patterns.$(br2)$(o)You can't be a proper writer without a touch of madness, can you?$()",
@@ -250,7 +250,7 @@
"hexical.page.media_jar.title": "Media Jar",
"hexical.page.media_jar.0": "I can melt down all my $(l:items/amethyst)$(item)Amethyst$() in this little jar! Unfortunately, the glass is too thick for me to draw _media through it, although I have read tales that ancient _Hexcasters were able to solve this issue and were able to bottle up liquid _media in some kind of flask to use in their _Hexes. However, this $(item)Media Jar$() also has some fascinating properties for recycling _media.",
"hexical.page.media_jar.description": "$(o)There, sure enough, she saw the faint translucent outline of something aboout the size of a hen's egg. There was just a touch of color in it, a pale sea-green, soft and shimmering and very beautiful.",
- "hexical.page.media_jar.1": "I can dunk items into the liquid in order to imbue the item with pure _media. The _media seeps into the item and $(o)alters$() it in a variety of surprising and unpredictable ways.$(br2)This can be done either in-world by using an item on the jar, or in my inventory just by right-clicking an item with the jar. I can also use a $(item)Hopper$() to insert and extract items and _media, or use the $(l:patterns/spells/hopper)$(action)Hopper$() spell.",
+ "hexical.page.media_jar.1": "I can dunk items into the $(item)Jar$() to fill or imbue it with _media. Items not designed for the containment of _media are vulnerable to seepage, allowing the _media to soak in and $(o)transmute$() the item in a variety of unpredictable and surprising ways.$(br2)This can be done in-world by using an item on the $(item)Jar$(), in my inventory just like a $(item)Bundle$(), a $(item)Hopper$() to insert and extract items, or the $(l:patterns/spells/hopper)$(action)Hopper$() spell.",
"hexical.recipe.alchemists_take_this.header": "Make Gold",
"hexical.recipe.alchemists_take_this.text": "Transforms copper ingots to gold.",
"hexical.recipe.thoughtknot.header": "Weave Thought-Knot",
@@ -310,7 +310,7 @@
"hexcasting.action.hexical:lamp_finale": "Finale Reflection",
"hexical.page.lamp_finale.hand": "The instant I let go of my $(item)Hand Lamp$(), it casts an additional time. I can use this pattern to recognize whether a cast is that finale, and react accordingly.",
- "hexical.page.lamp_finale.arch": "When an $(item)Archgenie Lamp$() is turned off, it casts an additional time. I can use $(l:lamp/hand_lamps#hexical:lamp_finale)$(action)Finale Reflection$() to recognize whether a cast is that last burst of energy.",
+ "hexical.page.lamp_finale.arch": "When an $(item)Archgenie Lamp$() is turned off, it casts an additional time. Like with a regular $(l:items/hand_lamps)$(item)Hand Lamp$(), I can use $(l:lamp/hand_lamps#hexical:lamp_finale)$(action)Finale Reflection$() to recognize whether a cast is that last burst of energy.",
"hexical.page.hand_lamps.title": "Hand Lamps",
"hexical.page.hand_lamps.0": "So this is the subject of a thousand years of rumor! To think a mere wandering trader could be in possession of such an artifact. The $(item)Hand Lamp$() emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow _media structure$() of a $(l:items/focus)$(item)Focus$() that allows it to store iota. I can also sense a presence inside the $(item)Lamp$() with similar magical capabilities to my own.",
@@ -338,16 +338,15 @@
"hexical.page.genie_lore.0": "_Hexcasting burns out the mind from the energy of thought, flooding the consciousness, inundating every neuron... it's euphoric. For $(l:items/staff)$(item)Staves$(), $(l:items/hexcasting)$(item)casting devices$(), and $(l:greatwork/spellcircles)grand constructs$(), the rate of casting is slow enough that a mind can recuperate; I will never hurt myself just by casting too many patterns. With the speeds that $(item)Lamps$() operate at, though, even a mind perfected for _Hexcasting can feel strain.",
"hexical.page.genie_lore.1": "Fortunately, the $(item)Lamp$() captures the _media that a lesser $(l:items/hexcasting)$(item)casting device$() would have wasted creating noises and particles, and uses that to repair the genie's mind. Almost zero _media is wasted; truly incredible. My only concern is when the $(item)Lamp$() runs dry. Fortunately, I can refill them with _media.",
"hexcasting.action.hexical:recharge_lamp": "Refuel Lamp",
- "hexical.page.recharge_lamp.summary": "Refuels the $(item)Lamp$() in my offhand. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$(), plus the _media I'm giving the $(item)Lamp$().",
- "hexical.page.genie_lore.2": "The $(item)Lamp$() seems capable of holding a near endless amount of _media. When I fuel it further when it already contains _media, it simply grows its storage reservior to accommodate. It is truly a marvel of _Hexcasting technology.",
+ "hexical.page.recharge_lamp.summary": "Refuels the $(item)Lamp$() in my offhand by the given amount in $(l:items/amethyst)$(item)Amethyst Dust$(). Costs just the _media I'm giving the $(item)Lamp$().",
+ "hexical.page.genie_lore.2": "The $(item)Lamp$() seems capable of holding a near endless amount of _media. If I fuel it past its current bounds, it simply expands its storage reservior to accommodate. Truly a marvel of technology.",
"hexical.page.genie_lore.3": "Upon closer inspiration, the genie within the $(item)Lamp$() seems to just be an extremely minimal, almost artificial network of thought and _media. I hesitate to call it a creature, more of a $(o)wisp$(). Perhaps if I replaced it with a more complex, $(o)sentient$() mind, I can induce some great change. The mind must be of upmost quality to survive the process and still retain a shred of talent; a villager that has spent its life honing a craft to perfection will do quite nicely.",
"hexcasting.action.hexical:promote_lamp": "Promote Lamp",
"hexical.page.promote_lamp.summary": "Hold the lamp in my other hand and cast. Costs about ten $(l:items/amethyst)$(item)Charged Amethyst$() and requires the sacrifice.",
"hexical.page.arch_lamps.title": "Archgenie Lamps",
- "hexical.page.arch_lamps.0": "The $(item)Hand Lamp$() was yanked out of my hands and towards the villager, sucking it in completely and transforming it. The greater mind within these $(item)Archgenie Lamps$() should enable them to be activated and deactivated rather than used and while active in my inventory, they will cast every instant. Picking one up automatically deactivates them though, possibly for safety reasons.",
- "hexical.page.arch_lamps.1": "The output of an $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() is so grand that it saturates the air around me with _media... it's incredible. Unfortunately, if two such lamps are active at once within my inventory, their resonances clash and all lamps in my inventory are rendered useless for a few seconds. I should only have one $(item)Archgenie Lamp$() active at one time, although I can still simultaneously use a $(item)Hand Lamp$().",
- "hexical.page.arch_lamps.2": "$(o)I am a great soft jelly thing. Smoothly rounded, with no mouth, with pulsing white holes filled by fog where my eyes used to be. Rubbery appendages that were once my arms; bulks rounding down into legless humps of soft slippery matter.$(br2)I have no mouth. And I must scream.$()",
+ "hexical.page.arch_lamps.0": "The $(l:items/hand_lamps)$(item)Hand Lamp$() $(o)merged with$() the sacrifice. I can feel it still breathing. I shall refer to my creation as an $(item)Archgenie Lamp$().$(br2)Now that I've.. upgraded the processing component of my $(item)Lamp$(), it requires far less supervision: I can simply command it to be active and while in my inventory, they will cast every instant, as though I were always holding down on a $(l:items/hand_lamps)$(item)Hand Lamp$().",
+ "hexical.page.arch_lamps.1": "The genie stops casting when it determine when it is in the hands of new casters. No one can force me to cast.$(br2)$(o)I am a great soft jelly thing. Smoothly rounded, with no mouth, with pulsing white holes filled by fog where my eyes used to be. Rubbery appendages that were once my arms; bulks rounding down into legless humps of soft slippery matter.$(br2)I have no mouth. And I must scream.$()",
"hexcasting.action.hexical:has_arch_lamp": "Archgenie Purification",
"hexical.page.has_arch_lamp.summary": "Pushes whether a player currently has an active $(l:lamp/arch_lamps)$(item)Archgenie Lamp$().",
"hexcasting.action.hexical:get_arch_lamp_position": "Archgenie Reflection: Spatial",
@@ -590,9 +589,6 @@
"hexcasting.action.hexical:conjure_hextito": "Conjure Hextito",
"hexical.page.conjure_hextito.summary": "Conjures a $(item)Hextito$() of the given _Hex at the location. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
"hexical.page.conjure_hextito.description": "$(item)Hextitos$() are triangular crunchy snacks I can conjure. When consumed, the consumer immediately casts its _Hex, using their $(item)$(l:items/staff)Staff$()'s stack unlike a regular $(l:items/hexcasting)$(item)casting device$(). I shall find them useful to make simple actions like raycasts or to give out limited uses of a _Hex I have designed. If a consumer's stack has an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it will not cast, making it quite safe to hand out.",
- "hexcasting.action.hexical:conjure_compass": "Conjure Compass",
- "hexical.page.conjure_compass.summary": "Conjures a $(item)Conjured Compass$() at the location pointing towards the second vector, linked to the current dimension. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.conjure_compass.description": "If read with $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(), it returns a unit vector pointing towards the location inside it. In other dimensions, the $(item)Compass$() spins erratically and reading it yields only $(l:casting/influences)$(thing)Null$(). Once I am done with a $(item)Compass$(), I can eat it as a light snack.$(br2)$(o)Aye, the compass doesn't point North. But we're not trying to find North, are we?$()",
"hexical.page.spike.title": "Conjure Spike",
"hexical.page.spike.0": "I hear rumors of a sorcerer illager that can summon fangs from the ground. While I find it hard to believe that villagers can shift _media, I have taken inspiration from those myths and created this spell that brings forth spikes from the ground to skewer targets.",
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
index e70864f6a2fb..b9a55928416e 100644
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
@@ -51,6 +51,7 @@
"item.hexical.curio_bismuth": "铋晶饰品",
"item.hexical.curio_charm": "护符饰品",
"item.hexical.curio_clover": "四叶草饰品",
+ "item.hexical.curio_compass": "指南针饰品",
"item.hexical.curio_conch": "螺壳饰品",
"item.hexical.curio_cube": "立方饰品",
"item.hexical.curio_down": "下箭头饰品",
@@ -63,7 +64,6 @@
"item.hexical.curio_strange": "怪异饰品",
"item.hexical.curio_truth": "真实饰品",
"item.hexical.curio_up": "上箭头饰品",
- "item.hexical.conjured_compass": "构筑的指南针",
"item.hexical.grimoire": "咒典",
"item.hexical.hand_lamp": "手持式精灵神灯",
"item.hexical.hex_gummy": "咒术软糖",
@@ -169,7 +169,7 @@
"hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
"hexcasting.mishap.hexical:active_arch_lamp": "物品栏中本应有一个启动的大精灵神灯。",
"hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
- "hexcasting.mishap.hexical:inedible": "魔袋中的物品无法食用。",
+ "hexcasting.mishap.hexical:inedible_wristpocket": "魔袋中的物品无法食用。",
"hexcasting.mishap.hexical:magic_missile_coordinates": "无法辨识出空间轴。",
"hexcasting.mishap.hexical:needs_charmed_item": "本应由咒符物品施放。",
"hexcasting.mishap.hexical:needs_lamp": "本应由精灵施放。",
@@ -225,7 +225,7 @@
"hexical.page.scarab.title": "圣甲虫",
"hexical.page.scarab.0": "$(item)圣甲虫$()是个可爱的护符,对$(media)媒质$()相当敏感;在启动后,它们能拦截被自然排斥的图案。$(br2)特别来说,与我有关联的任何事物运行了对自然无意义的图案时,圣甲虫即会前来处理,规避事故。$(br2)$(o)我不管了,上吧圣甲虫。$()",
"hexical.page.scarab.1": "我可以向圣甲虫下达指令,告诉它该如何处理这些“无效”图案,以及如何将它们替换为另一套图案。我可借此制造$(o)新$()图案——它们甚至在$(l:items/hexcasting)$(item)施法物品$()里都能用。",
- "hexical.page.scarab.2": "$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()可以教导圣甲虫一则$(hex)咒术$()。虽然它们会自豪地展示那则$(hex)咒术$(),但它们不受$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()等读心手段的影响。并且,在传达新指示前必须先让其$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)遗忘$()已有的指示。$(br2)运行无效图案时,激活的圣甲虫会将该图案压入栈顶,从而规避事故。然后,在继续执行之前,它会施放所学的$(hex)咒术$()。",
+ "hexical.page.scarab.2": "$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()可以教导圣甲虫一则$(hex)咒术$()。虽然它们会自豪地展示那则$(hex)咒术$(),但它们不受$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()等读心手段的影响。我可以随时教导它们$(hex)咒术$()。$(br2)运行无效图案时,激活的圣甲虫会将该图案压入栈顶,从而规避事故。然后它会施放所学的$(hex)咒术$(),并继续执行事故处之后的部分。",
"hexical.page.scarab.3": "圣甲虫带来的新造图案能力对$(l:items/staff)$(item)法杖$()和$(l:items/hexcasting)$(item)施法物品$()等各类事物都有效。它很适合制造$(br2)$(l:patterns/pattern_manipulation)能操纵图案的元操作图案$(),可借此实现高阶的处理功能。理论上来说,我可以创造出一整族无限个图案,类似$(l:patterns/numbers)数字面量$()和$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()等。",
"hexical.page.animated_scroll.title": "活线卷轴",
@@ -250,7 +250,7 @@
"hexical.page.media_jar.title": "媒质罐",
"hexical.page.media_jar.0": "我成功把我手头的$(l:items/amethyst)$(item)紫水晶$()全部融化到这个小罐里了!但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,成功把液态$(media)媒质$()装到了某种瓶子里去供$(hex)咒术$()使用。不过,这个$(item)媒质罐$()也有回收媒质的神奇功能。",
"hexical.page.media_jar.description": "$(o)就在那儿,她看见了一团浅浅的雾:那东西只有鸡蛋大小。它在柔和的淡海绿色之外几乎不带什么颜色,闪闪发光,非常漂亮。",
- "hexical.page.media_jar.1": "我可以把物品浸到这种液体里,以向其中注入纯净的$(media)媒质$()。渗入物品的$(media)媒质$()会$(o)改变$()物品,产物新奇而难以预测。$(br2)可以对放置出来的媒质罐使用物品,也可在物品栏中用媒质罐右击物品。$(item)漏斗$()可以存入和取出物品与$(media)媒质$(),换用$(l:patterns/spells/hopper)$(action)漏斗$()法术也是一样。",
+ "hexical.page.media_jar.1": "我可以把物品浸到$(item)罐$()中,以向其中注入$(media)媒质$()。没有$(media)媒质$()容纳能力的物品会受$(media)媒质$()外渗的影响,从而产生$(o)嬗变$(),转化的终点千奇百怪、无法预测,却能带来惊喜。$(br2)可以对放置出来的$(item)媒质罐$()使用物品,也可在物品栏中用跟$(item)收纳袋$()一样的方式操作,还可用$(item)漏斗$()存入和取出物品,$(l:patterns/spells/hopper)$(action)漏斗$()法术也是一样。",
"hexical.recipe.alchemists_take_this.header": "制金",
"hexical.recipe.alchemists_take_this.text": "将铜变形成金。",
"hexical.recipe.thoughtknot.header": "编织结念绳",
@@ -310,7 +310,7 @@
"hexcasting.action.hexical:lamp_finale": "终局之精思",
"hexical.page.lamp_finale.hand": "放下$(item)神灯$()的那一刹那,它会额外施法一次。这个图案能判断精灵的施法是否是最后一次,并据此做出反应。",
- "hexical.page.lamp_finale.arch": "停止$(item)大精灵神灯$()时,它会额外施法一次。我可以使用$(l:lamp/hand_lamps#hexical:lamp_finale)$(action)终局之精思$()来判断某一次施法是否是最后的残响。",
+ "hexical.page.lamp_finale.arch": "停止$(item)大精灵神灯$()时,它会额外施法一次。和普通的$(l:items/hand_lamps)$(item)手持式精灵神灯$()一样,我可以使用$(l:lamp/hand_lamps#hexical:lamp_finale)$(action)终局之精思$()来判断某一次施法是否是最后的残响。",
"hexical.page.hand_lamps.title": "手持式灯壶",
"hexical.page.hand_lamps.0": "我终于找到了上千年传言中说的东西了!如此物件居然是在一位流浪商人的手里。这件$(item)手持式神灯$()仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。我还感受到$(item)神灯$()里有一个存在,它的施法能力与我相当。",
@@ -338,16 +338,15 @@
"hexical.page.genie_lore.0": "$(hex)咒法学$()的技艺会使得意识失去思考的能力,镇定知觉,麻痹神经元……真是叫人欲罢不能。对于$(l:items/staff)$(item)法杖$()、$(l:items/hexcasting)$(item)施法物品$()、$(l:greatwork/spellcircles)卓伟构造$()来说,施法的速度足够缓慢,能给意识喘息的时间;只是运行很多图案伤不到我自己。不过要是论及$(item)神灯$()的施法速度,那就算是为$(hex)咒法学$()而生的意识也很难招架。",
"hexical.page.genie_lore.1": "低等级$(l:items/hexcasting)$(item)施法物品$()通常会把一部分$(media)媒质$()浪费到噪声和粒子中去;好在$(item)神灯$()不会浪费,而是会捕获用来修复精灵的意识。实际过程基本没有浪费$(media)媒质$(),真是难以置信。但$(item)神灯$()终究还是会枯竭,幸运的是,直接充入$(media)媒质$()就能解决。",
"hexcasting.action.hexical:recharge_lamp": "神灯充能",
- "hexical.page.recharge_lamp.summary": "为我副手中的$(item)神灯$()充能。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$(),同时消耗我送入$(item)神灯$()的$(media)媒质$()。",
- "hexical.page.genie_lore.2": "$(item)神灯$()似乎能够存下无限多的$(media)媒质$()。要是原来有$(media)媒质$()时去充能,它的容量只会相应增加。真可谓是$(hex)咒法学$()科技树上的奇观。",
+ "hexical.page.recharge_lamp.summary": "为我副手中的$(item)神灯$()充能,以$(l:items/amethyst)$(item)紫水晶粉$()计。只消耗我送入$(item)神灯$()的$(media)媒质$()。",
+ "hexical.page.genie_lore.2": "$(item)神灯$()似乎能够存下无限多的$(media)媒质$()。要是充能充得超过上限,它的容量则会相应增加。真可谓是技术奇物。",
"hexical.page.genie_lore.3": "在进一步的考察后,我发现$(item)神灯$()中的精灵似乎只是极为简单的思维与$(media)媒质$()网络,简单到甚至像人力所为。我认为这不太能叫生物,更像是$(o)咒灵$()。把它换成更加复杂、具有$(o)感知力$()的意识,带来的或许就是质变。所需的意识必须品质极高,经过处理后还需保留些许能力;花费一生精进手艺的村民应该足够。",
"hexcasting.action.hexical:promote_lamp": "晋升神灯",
"hexical.page.promote_lamp.summary": "在另一只手中持有神灯时施放。消耗大约 10 个$(l:items/amethyst)$(item)充能紫水晶$()和所需祭品。",
"hexical.page.arch_lamps.title": "大精灵神灯",
- "hexical.page.arch_lamps.0": "$(item)神灯$()飞出了我的手,停在了村民面前,然后把村民整个吸了进去,$(item)神灯$()自己也因此发生了变化。这些$(item)大精灵神灯$()中的强大意识对应的是“启动”和“停止”,而非“使用”。而当其启用后并处于我物品栏中时,它们会每时每刻施法。捡起一个会自动将其停止,可能是某种安全措施。",
- "hexical.page.arch_lamps.1": "$(l:lamp/arch_lamps)$(item)大精灵神灯$()的输出太过庞大,甚至能令我周围的空气进入$(media)媒质$()饱和状态……不可思议。不幸的是,若在我物品栏中有两个此类神灯同时处于启动状态,它们的回响会相互碰撞,致使其停止,并使得物品栏中所有神灯几秒内无法使用。同一时刻应当只有一个$(item)大精灵神灯$()启动,但此时还可以使用一个$(item)手持式神灯$()。",
- "hexical.page.arch_lamps.2": "$(o)我是一大团肉乎乎的东西,体表圆滑,没有嘴。原来曾经是眼睛的地方如今是两个冒着白烟的洞,两根橡胶棒似的东西曾经是我的双臂。肉向四周摊开变成一堆没有腿的肉团,柔软滑腻。$(br2)我没有嘴,但我必须呐喊。$()",
+ "hexical.page.arch_lamps.0": "$(l:items/hand_lamps)$(item)神灯$()和祭品$(o)融合$()了。我还能听见祭品的气息。我将产物称作$(item)大精灵神灯$()。$(br2)我已经……成功升级了$(item)神灯$()的处理器件,它的运作所需的注意力也大幅降低:我可在物品栏内启用它,此后它们会每时每刻施法,就好像我一直握着一盏$(l:items/hand_lamps)$(item)手持式神灯$()一样。",
+ "hexical.page.arch_lamps.1": "精灵会在它认为持有者换人时停止施法。没人能强迫我施法。$(o)我是一大团肉乎乎的东西,体表圆滑,没有嘴。原来曾经是眼睛的地方如今是两个冒着白烟的洞,两根橡胶棒似的东西曾经是我的双臂。肉向四周摊开变成一堆没有腿的肉团,柔软滑腻。$(br2)我没有嘴,但我必须呐喊。$()",
"hexcasting.action.hexical:has_arch_lamp": "大精灵之纯化",
"hexical.page.has_arch_lamp.summary": "判断玩家当前是否已启动$(l:lamp/arch_lamps)$(item)大精灵神灯$()。",
"hexcasting.action.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
@@ -590,9 +589,6 @@
"hexcasting.action.hexical:conjure_hextito": "构筑咒力多滋",
"hexical.page.conjure_hextito.summary": "在给定位置构筑一片$(hex)咒力多滋$()。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
"hexical.page.conjure_hextito.description": "$(hex)咒力多滋$()是一种三角形的酥脆零食。食用时会立即施放其中$(hex)咒术$();它使用的是$(item)$(l:items/staff)法杖$()栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合射线追踪之类的简单操作集合,也方便我与他人分享我设计的$(hex)咒术$()。如果食用者的栈存在未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),其中咒术便不会施放,以此保障他人使用的安全。",
- "hexcasting.action.hexical:conjure_compass": "构筑指南针",
- "hexical.page.conjure_compass.summary": "在给定位置构筑一个$(item)构筑的指南针$(),它指向当前维度的第二向量处。消耗大约 3 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.conjure_compass.description": "若使用$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()读取,则会返回指向所给位置的单位向量。身处其他维度时,$(item)指南针$()会剧烈旋转,读取的产物也变成了 $(l:casting/influences)$(thing)Null$()。$(item)指南针$()用完后,还可以当点心吃了它。$(br2)$(o)对头,指北针不指北方。但我们根本没在找北方啊!$()",
"hexical.page.spike.title": "构筑尖刺",
"hexical.page.spike.0": "我曾听过有一位灾厄村民术士能在地上构筑尖牙。要相信“村民能操控$(media)媒质$()”这种说法很难,但从其中获取灵感还是可行的。我依此制造出了这条法术,能够从地下升起尖刺刺穿目标。",
From 5a7a2ae71477cc024881694ad8fe5a20587f80b0 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 19 Jul 2025 04:08:38 +0800
Subject: [PATCH 56/78] =?UTF-8?q?Hexlink=20Hextended=20Hexodus=20Hexportat?=
=?UTF-8?q?ion=20Hexpose=20HexPigmentPlus=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
---
.../assets/hexlink/hexlink/lang/zh_cn.json | 10 +-
.../assets/1UNKNOWN/hexodus/lang/en_us.json | 14 +-
.../assets/1UNKNOWN/hexodus/lang/zh_cn.json | 14 +-
.../1UNKNOWN/hexportation/lang/en_us.json | 12 +-
.../1UNKNOWN/hexportation/lang/zh_cn.json | 12 +-
.../assets/1UNKNOWN/hexpose/lang/en_us.json | 39 +++--
.../assets/1UNKNOWN/hexpose/lang/zh_cn.json | 41 +++--
.../assets/hexlink/hexlink/lang/en_us.json | 154 ++++++++++++++++++
.../assets/hexlink/hexlink/lang/zh_cn.json | 153 +++++++++++++++++
.../hextended/lang/en_us.json | 93 +++++------
.../hexpigmentplus/lang/en_us.json | 20 +++
.../hexpigmentplus/lang/zh_cn.json | 20 +++
.../hextended/lang/en_us.json | 10 +-
.../hextended/lang/zh_cn.json | 10 +-
14 files changed, 496 insertions(+), 106 deletions(-)
create mode 100644 projects/1.20-fabric/assets/hexlink/hexlink/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/hexlink/hexlink/lang/zh_cn.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
create mode 100644 projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
diff --git a/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json b/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
index 3d2b5db5af75..8a01fb3f394f 100644
--- a/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
+++ b/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
@@ -109,12 +109,12 @@
"hexlink.entry.readwrite": "Hexlink 读取与写入",
"hexlink.page.write_spell": "此图案可将咒术写入特殊法杖。法杖可为物品实体、物品展示框中物品,或施法者手持。",
- "hexlink.page.spirit_extraction.desc": "此法术可通过$(l:hexlink:items/crystals)提取水晶/$等提取催化物从实体中提取灵体,并将其存入$(l:hexlink:items/bag)灵体容器/$。被提取目标决定提出灵体的数量。此法术中的物品可以是物品实体、容器首格中的物品,或者施法者副手中的物品。",
+ "hexlink.page.spirit_extraction.desc": "此法术可通过$(l:hexlink:items/crystals)提取水晶/$等提取催化物从实体中提取灵体,并将其存入$(l:hexlink:items/bag)灵体容器/$。提出灵体的数量由被提取目标决定。此法术中的物品可以是物品实体、物品展示框中的物品、容器首格中的物品,或者施法者副手中的物品。使用时务必小心,一着不慎满盘皆输。",
"hexlink.page.spirit_extraction.target.desc": "第一参数为被提取对象;第二参数为提取催化物,如提取水晶;第三参数则为灵体容器。",
"hexlink.page.spirit_transfer.desc": "这些图案是操纵和移动灵体的好帮手。灵体存储于灵体容器。物品实体、物品展示框中的物品、施法者手持物品、媒质涡旋,装有灵体容器的容器位置向量等均可视为灵体容器。",
"hexlink.page.spirit_transfer.transfer.desc": "此图案可将灵体在两灵体容器间转移。第一参数为转移起点,第二参数为转移终点。",
- "hexlink.page.spirit_transfer.look.desc": "此图案可查看灵体容器中的上一灵体。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
+ "hexlink.page.spirit_transfer.look.desc": "此图案可查看灵体容器中上一灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
"hexlink.page.spirit_transfer.look_all.desc": "此图案可查看灵体容器中的所有灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
"hexlink.page.spirit_transfer.count.desc": "此图案可统计灵体容器中某种灵体的存储数量。",
@@ -123,8 +123,8 @@
"hexlink.page.find_nbt.desc": "$(br)[需要安装更多 Iota] 此图案能提取某个方块或实体的特定属性。提取时必须要给定所探寻的灵魂本质的路径。例如,[\"Inventory\",0,\"id\"]。",
"hexlink.page.spirit_manifestation.desc": "这个强力法术能将灵体显形至物理世界。我能通过某实体或在某位置令其显形。",
- "hexlink.page.spirit_manifestation.target.desc": "$(br)第一参数为被提取的容器,第二参数为需显形灵体的类型,第三参数为显形的强度,最末参数则是显形实体或显形位置。",
- "hexlink.page.spirit_self_manifestation.self.desc": "此快捷变种会从施法者物品栏中的灵体容器抽取灵体。第一参数为需显形灵体的类型,第二参数为显形的强度,第三参数则是显形实体或显形位置。",
+ "hexlink.page.spirit_manifestation.target.desc": "$(br)第一参数为被提取的容器,第二参数为需显形灵体的类型,第三参数为需显形灵体的数量,最末参数则是显形实体或显形位置。",
+ "hexlink.page.spirit_self_manifestation.self.desc": "此快捷变种会从施法者物品栏中的灵体容器抽取灵体。第一参数为需显形灵体的类型,第二参数为需显形灵体的数量,第三参数则是显形实体或显形位置。",
"hexlink.page.spirit_other": "其他法术",
"hexlink.page.spirit_vortex.desc": "此图案可召唤$(l:hexlink:items/vortex)媒质涡旋/$。可向其中放入灵体以存储。涡旋中的灵体也有可能融合出新灵体。",
@@ -132,7 +132,7 @@
"hexlink.page.crystals": "提取水晶",
- "hexlink.page.crystals.desc": "提取水晶有助于提取灵体的过程。将其与$(l:hexlink:patterns/spirits/extraction)灵体提取/$配合使用就能提出灵体。能在地牢箱子中发现这类水晶。",
+ "hexlink.page.crystals.desc": "提取水晶有助于提取灵体。将其与$(l:hexlink:patterns/spirits/extraction)灵体提取/$配合使用就能提出灵体。这类水晶会出现在地牢箱子中。",
"hexlink.page.crystals.block": "此类水晶可以装入方块灵体。可通过此类灵体召唤方块,或是模拟与其的交互。",
"hexlink.page.crystals.item": "此类水晶可以装入物品灵体。可通过此类灵体模拟使用物品。",
"hexlink.page.crystals.entity": "此类水晶可以装入实体灵体。可通过此类灵体召唤实体。实体的生命值必须小于等于 4。",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
index 0e4053826d91..7df32df5597e 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
@@ -1,11 +1,21 @@
{
"hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
+ "item.hexodus.ballast": "Ballast",
+ "hexodus.ballast.tooltip": "Pointing towards %s with a strength scalar of %s",
+
+ "hexodus.page.ballast.title": "Ballasts",
+ "hexodus.page.ballast.0": "$(item)Ballasts$() are simple in concept: an extremely heavy mass encased in $(l:items/amethyst)$(item)Charged Amethyst$() to allow for its manipulation via _Hexcasting.$(br2)Once created, I can command a $(item)Ballast$()'s $(thing)Gravity$() with any direction or intensity I please and with it in my inventory, it simply drags me along with it.",
+ "hexodus.page.ballast.1": "The mass of a $(item)Ballast$() is so great that so long as it's active, its gravitational effects overpower that of nearly all $(thing)Gravity$()-generating or affecting phenomena such as the $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() spell.$(br2)Fortunately, I can turn it on and off should I lose control of my _Hexes and they will disable automatically upon leaving my body. I will not lose a $(item)Ballast$() to the sky, nor will I be dragged upwards by a maliciously planted $(item)Ballast$().",
+ "hexodus.page.ballast.2": "A $(item)Ballast$() seems to generate its own forces. $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() can only scale and redirect existing forces; a $(item)Ballast$() can restore order even regular forces do not apply.",
+ "hexcasting.action.hexodus:alter_ballast": "Alter Ballast",
+ "hexodus.page.alter_ballast.summary": "Commands a $(item)Ballast$() on my person to fall in a given direction with a given strength strength. Free.",
+
"hexodus.page.gravity.title": "Gravitation",
- "hexodus.page.gravity.0": "While I can use a $(item)Ballast$() to alter $(thing)Gravity$()'s effects on my own body, I have also discovered a spell capable of adjusting $(thing)Gravity$()'s pull on $(o)any$() entity, albeit very shortly.$(br2)$(o)There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss$().",
+ "hexodus.page.gravity.0": "While I can use a $(l:items/ballast)$(item)Ballast$() to alter $(thing)Gravity$()'s effects on my own body, I have also discovered a spell capable of adjusting $(thing)Gravity$()'s pull on $(o)any$() entity, albeit very shortly.$(br2)$(o)There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss$().",
"hexcasting.action.hexodus:change_gravity": "Gravitate",
"hexodus.page.change_gravity.summary": "Takes an entity, an axial vector for new gravity, and a strength scalar relative to standard pull. Specifics are detailed on the next page.",
- "hexodus.page.gravity.1": "The scalar can be any number 0 to 5 inclusive.$(br2)If the target is myself, this spell costs about one-fourth of an $(l:items/amethyst)$(item)Amethyst Dust$(). If the target is another player, costs about one $(l:items/amethyst)$(item)Amethyst Shard$(). Otherwises, costs about one $(l:items/amethyst)$(item)Amethyst Dust$().$(br2)Each cast of the spell only lasts for about two and a half seconds; for sustained gravitation, I will need some kind of automated _Hexcasting to periodically reapply the effects.",
+ "hexodus.page.change_gravity.description": "The scalar can be any number 0 to 5 inclusive.$(br2)If the target is myself, this spell costs about one-fourth of an $(l:items/amethyst)$(item)Amethyst Dust$(). If the target is another player, costs about one $(l:items/amethyst)$(item)Amethyst Shard$(). Otherwises, costs about one $(l:items/amethyst)$(item)Amethyst Dust$().$(br2)Each cast of the spell only lasts for about two and a half seconds; for sustained gravitation, I will need some kind of automated _Hexcasting to periodically reapply the effects.",
"hexcasting.action.hexodus:get_duration": "Grasp Purification",
"hexodus.page.get_duration.summary": "Pushes the remaining twentieths of a second that $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() will affect an entity. Zero if the entity is not under the effects of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$().",
"hexcasting.action.hexodus:get_direction": "Falling Purification",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
index d1e1177eba4d..819880ba0ac2 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
@@ -1,11 +1,21 @@
{
"hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
+ "item.hexodus.ballast": "压载",
+ "hexodus.ballast.tooltip": "指向%s,力度标量为%s",
+
+ "hexodus.page.ballast.title": "压载",
+ "hexodus.page.ballast.0": "$(item)压载$()的概念很简单:一件质量极大的物品,包在$(l:items/amethyst)$(item)充能紫水晶$()中方便$(hex)咒法学$()操纵。$(br2)制造完成后,我可随意修改$(item)压载$()所提供的$(thing)重力$()方向与强度。把它放在物品栏中即会把我往给定的方向拖动。",
+ "hexodus.page.ballast.1": "$(item)压载$()的质量极大,大到只要激活,它提供的$(thing)重力$()就能覆盖掉几乎所有其他事物产生的$(thing)重力$()和对$(thing)重力$()的影响效果,例如$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()法术。$(br2)好在,我可以随意开关它,以免我的$(hex)咒术$()失控;它也会在失去与我身体的接触时自动关闭。$(item)压载$()不会向上飘走一去不返,我也不会被其他人的$(item)压载$()阴到而往上飞离地面。",
+ "hexodus.page.ballast.2": "$(item)压载$()似乎自身就能产生力。$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()只是修改已经存在的力的大小和方向,而就算其他力全部失常,$(item)压载$()也能恢复秩序。",
+ "hexcasting.action.hexodus:alter_ballast": "修改压载",
+ "hexodus.page.alter_ballast.summary": "命令我所持的$(item)压载$()向给定方向以给定力度坠落。无需消耗$(media)媒质$()。",
+
"hexodus.page.gravity.title": "重力",
- "hexodus.page.gravity.0": "我可以使用$(item)压载$()来改变$(thing)重力$()对我的影响;同时我还发现了一个法术,可以用来调整$(thing)重力$()对$(o)任意$()实体的影响,虽然持续时间不长。$(br2)$(o)据说,飞行是有技巧的,或者更应该说,是有窍门的。这窍门就在于向地面扑去而错过地面。$()",
+ "hexodus.page.gravity.0": "我可以使用$(l:items/ballast)$(item)压载$()来改变$(thing)重力$()对我的影响;同时我还发现了一个法术,可以用来调整$(thing)重力$()对$(o)任意$()实体的影响,虽然持续时间不长。$(br2)$(o)据说,飞行是有技巧的,或者更应该说,是有窍门的。这窍门就在于向地面扑去而错过地面。$()",
"hexcasting.action.hexodus:change_gravity": "施重力",
"hexodus.page.change_gravity.summary": "接受一个实体,一个代表新重力方向的轴向向量,以及相对于标准重力强度的倍数。细节见后页。",
- "hexodus.page.gravity.1": "倍数可从 0 到 5 任选,包括 0 和 5。$(br2)若目标是我自己,消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。如果目标是其他玩家,消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。其他情况下消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。$(br2)每次施法的效果会持续大约 2.5 秒;为让这种重力长久存在,需要某种自动化$(hex)咒法学$()施法方式以不断重新赋予效果。",
+ "hexodus.page.change_gravity.description": "倍数可从 0 到 5 任选,包括 0 和 5。$(br2)若目标是我自己,消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。如果目标是其他玩家,消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。其他情况下消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。$(br2)每次施法的效果会持续大约 2.5 秒;为让这种重力长久存在,需要某种自动化$(hex)咒法学$()施法方式以不断重新赋予效果。",
"hexcasting.action.hexodus:get_duration": "抓握之纯化",
"hexodus.page.get_duration.summary": "返回$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()的效果在所给实体上还会持续多少个 1/20 秒。若实体未受$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()影响,则返回 0。",
"hexcasting.action.hexodus:get_direction": "坠落之纯化",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json
index 8435208ac399..e51dfd32fa34 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json
@@ -2,15 +2,15 @@
"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.",
+ "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.",
+ "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.",
+ "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",
@@ -18,6 +18,12 @@
"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",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json
index 397284488440..e8ef134489af 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json
@@ -2,15 +2,15 @@
"hexportation.entry.conduit": "输流通路",
"hexcasting.action.hexportation:make_conduit": "创建输流",
- "hexportation.page.make_conduit": "接受来源存储空间的位置与输出面法向量,以及目的存储空间的位置和输入面法向量,依此创建一条输流通路。",
+ "hexportation.page.make_conduit": "接受来源存储空间的位置与输出面法向量,以及目的存储空间的位置和输入面法向量,依此创建一条输流通路。$(br)无论通路有多长,创建都统一消耗 36 个充能紫水晶。",
"hexcasting.action.hexportation:send_item": "输送",
- "hexportation.page.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": "尝试从各个槽位取出给定数量的资源发送。列表与存储空间的槽位数不符不会招致事故。",
+ "hexportation.page.send_item_filt": "尝试从各个槽位取出给定数量的资源发送。列表与存储空间的槽位数不符不会招致事故。$(br)在法术环中使用时无需消耗媒质。",
"hexcasting.action.hexportation:get_view_amount": "视槽之纯化:数量",
"hexportation.page.get_view_amount": "返回所给视槽中资源的量。",
"hexcasting.action.hexportation:get_view_capacity": "视槽之纯化:容量",
@@ -18,6 +18,12 @@
"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": "一个有效的输流通路",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
index 96be67205dc9..6354d787fe42 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
@@ -31,6 +31,7 @@
"hexcasting.action.book.hexpose:is_wet": "Enderman's Purif.",
"hexcasting.action.book.hexpose:identify": "Detective's Purif.",
"hexcasting.action.book.hexpose:damage_stack": "Deterioration Purif.",
+ "hexcasting.action.book.hexpose:book_source": "Bibliography Purif.",
"hexcasting.action.book.hexpose:classify": "Modicum Purif.",
"hexcasting.action.book.hexpose:villager_profession": "Professional Purif.",
"hexcasting.action.book.hexpose:get_biome": "Geographical Purif.",
@@ -43,14 +44,14 @@
"hexcasting.action.hexpose:is_brainswept": "Sentience Purification",
"hexpose.page.is_brainswept.summary": "Pushes whether an entity has been \"magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
- "hexpose.page.text.title": "Text Iota",
- "hexpose.page.text.0": "$(thing)Text iotas$() represent textual information. Not only does it encode all the information required for reading, it also contains styles such as $(#ff0000)coloring$() and $(o)italics$().$(br2)They can also encode an incredible amount of information in one iota. With how dense they are, they can quickly collapse into meaninglessness.",
+ "hexpose.page.text_iotas.title": "Text Iota",
+ "hexpose.page.text_iotas.0": "$(thing)Text iotas$() represent textual information. Not only does it encode all the information required for reading, it also contains styles such as $(#ff0000)coloring$() and $(o)italics$().$(br2)They can also encode an incredible amount of information in one iota. With how dense they are, they can quickly collapse into meaninglessness.",
"hexcasting.action.hexpose:create_text": "Reading Purification",
- "hexpose.page.create_text.summary": "Takes an iota and returns a text iota representing it. If taking a text iota, strips all the styles of it.",
- "hexpose.page.add_text.summary": "Pushes a text iota of the first followed immediately by the second.",
- "hexpose.page.abs_text.summary": "Pushes the length of the text iota.",
+ "hexpose.page.create_text.summary": "Takes an iota and returns a $(l:patterns/text_iotas)$(thing)text iota$() representing it. If taking a $(l:patterns/text_iotas)$(thing)text iota$(), strips all the styles of it.",
+ "hexpose.page.add_text.summary": "Pushes a $(l:patterns/text_iotas)$(thing)text iota$() of the first followed immediately by the second.",
+ "hexpose.page.abs_text.summary": "Pushes the length of the $(l:patterns/text_iotas)$(thing)text iota$().",
"hexcasting.action.hexpose:split_text": "Glyph Purification",
- "hexpose.page.split_text.summary": "Splits a text iota into a list of individual glyphs.",
+ "hexpose.page.split_text.summary": "Splits a $(l:patterns/text_iotas)$(thing)text iota$() into a list of individual glyphs.",
"hexcasting.action.hexpose:combine_text": "Collage Purification",
"hexpose.page.combine_text.summary": "Transforms all the elements of a list into text (or keeps them if they were) and pastes it all together.",
"hexpose.page.index_text.summary": "Pushes the nth glyph in the text.",
@@ -59,19 +60,19 @@
"hexpose.page.remove_text.summary": "Removes the nth glyph in the text.",
"hexpose.page.rev_text.summary": "Reverses the text.",
"hexpose.page.unique_text.summary": "Keeps only the first instance of any glyph in the text. Styling is enough to distinguish a glyph.",
- "hexpose.page.text.1": "The following are a set of patterns involving the styling of the text. Despite resembling distillations, they are actually $(o)gambits$() due to their unique argument structure.$(br2)If the regular arguments are passed in, they will style the text according to their speciality (example of modification included).$(br2)If passed in just a text however, they will return the current value of the setting that they target.",
+ "hexpose.page.text_iotas.1": "The following are a set of patterns involving the styling of the text. Despite resembling distillations, they are actually $(o)gambits$() due to their unique argument structure.$(br2)If the regular arguments are passed in, they will style the text according to their speciality (example of modification included).$(br2)If passed in just a text however, they will return the current value of the setting that they target.",
"hexcasting.action.hexpose:text_color": "Lumière Gambit",
- "hexpose.page.text_color.summary": "Takes a text iota and a color encoded as a vector whose components range from 0 to 1, and produces a text iota of that $(#ff0000)color$().",
+ "hexpose.page.text_color.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and a color encoded as a vector whose components range from 0 to 1, and produces a $(l:patterns/text_iotas)$(thing)text iota$() of that $(#ff0000)color$().",
"hexcasting.action.hexpose:text_bold": "Gothic Gambit",
- "hexpose.page.text_bold.summary": "Takes a text iota and sets whether it is $(l)bold$().",
+ "hexpose.page.text_bold.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it is $(l)bold$().",
"hexcasting.action.hexpose:text_italics": "Manutius' Gambit",
- "hexpose.page.text_italics.summary": "Takes a text iota and sets whether it is in $(o)italics$().",
+ "hexpose.page.text_italics.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it is in $(o)italics$().",
"hexcasting.action.hexpose:text_underline": "Notetaker's Gambit",
- "hexpose.page.text_underline.summary": "Takes a text iota and sets whether it is $(n)underlined$().",
+ "hexpose.page.text_underline.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it is $(n)underlined$().",
"hexcasting.action.hexpose:text_strikethrough": "Editor's Gambit",
- "hexpose.page.text_strikethrough.summary": "Takes a text iota and sets whether it has been $(m)struck through$().",
+ "hexpose.page.text_strikethrough.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it has been $(m)struck through$().",
"hexcasting.action.hexpose:text_obfuscated": "Censor's Gambit",
- "hexpose.page.text_obfuscated.summary": "Takes a text iota and sets whether it is obfusca$(k)ted$().",
+ "hexpose.page.text_obfuscated.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it is obfusca$(k)ted$().",
"hexpose.page.special_raycasts.title": "Special Raycasts",
"hexcasting.action.hexpose:fluid_raycast": "Dousing Distillation",
@@ -105,6 +106,12 @@
"hexcasting.action.hexpose:block_map_color": "Cartographer's Purification",
"hexpose.page.block_map_color.summary": "Pushes the color blocks of this type appear as on a map.",
+ "hexpose.page.chat.title": "Chat",
+ "hexcasting.action.hexpose:get_message": "News Reflection",
+ "hexpose.page.get_message.summary": "Pushes a $(l:patterns/text_iotas)$(thing)text iota$() of the last person to use chat, a $(l:patterns/text_iotas)$(thing)text iota$() of the message, and a number of twenieths of a second since that message sent.",
+ "hexcasting.action.hexpose:get_chat": "Newspaper Reflection",
+ "hexpose.page.get_chat.summary": "Applies $(l:patterns/scrying/chat#hexpose:get_message)$(action)News Reflection$() to the last up to 32 messages in chat, wraps each in a list, and pushes a list of those lists.",
+
"hexpose.page.entities.title": "Entities",
"hexcasting.action.hexpose:entity_width": "Caliper's Purification",
"hexpose.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
@@ -138,6 +145,8 @@
"hexpose.page.shooter.summary": "Pushes the shooter of the given projectile entity or $(l:casting/influences)$(thing)Null$() if it has no shooter or isn't a projectile. It also pushes $(l:casting/influences)$(thing)Null$() if the shooter is outside my ambit.",
"hexcasting.action.hexpose:pet_owner": "Adoration Purification",
"hexpose.page.pet_owner.summary": "Pushes the player that has tamed this animal, or $(l:casting/influences)$(thing)Null$() if it is untamed or the player is out of ambit.",
+ "hexcasting.action.hexpose:entity_name": "Name Purification",
+ "hexpose.page.entity_name.summary": "Pushes a $(l:patterns/text_iotas)$(thing)text iota$() with the formatted name of the entity.",
"hexcasting.action.hexpose:absorption_hearts": "Absorption Purification",
"hexpose.page.absorption_hearts.summary": "Pushes the number of magical hearts this player has. I can think of these in terms of half-hearts.",
@@ -216,6 +225,10 @@
"hexpose.page.item_variant.summary": "If this item is subceptible to $(l:patterns/spells/cyclevariant)$(action)Caster's Glamour$(), pushes the index of the current form it's taking on. Otherwise pushes $(l:casting/influences)$(thing)Null$().",
"hexcasting.action.hexpose:item_variant_max": "Glamour Purification II",
"hexpose.page.item_variant_max.summary": "If this item is subceptible to $(l:patterns/spells/cyclevariant)$(action)Caster's Glamour$(), pushes the number of forms it's capable of. Otherwise pushes $(l:casting/influences)$(thing)Null$().",
+ "hexcasting.action.hexpose:read_book": "Reading Purification",
+ "hexpose.page.read_book.summary": "Pushes a list of $(l:patterns/text_iotas)$(thing)text iotas$() contained inside a book or $(l:casting/influences)$(thing)Null$() if it isn't a book.",
+ "hexcasting.action.hexpose:book_sources": "Bibliography Purification",
+ "hexpose.page.book_sources.summary": "Pushes the author of a book and its generation number.",
"hexcasting.action.hexpose:item_rarity": "Collector Purification",
"hexpose.page.item_rarity.summary": "Gauges the rarity of an item as a number, with greater values corresponding to a rarer item. Certain aspects such as enchantments can also elevate an item's rarity.",
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
index 088e19b18fbe..38663d75b343 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
@@ -31,6 +31,7 @@
"hexcasting.action.book.hexpose:is_wet": "末影人之纯化",
"hexcasting.action.book.hexpose:identify": "侦探之纯化",
"hexcasting.action.book.hexpose:damage_stack": "损耗之纯化",
+ "hexcasting.action.book.hexpose:book_source": "书目之纯化",
"hexcasting.action.book.hexpose:classify": "抵量之纯化",
"hexcasting.action.book.hexpose:villager_profession": "职业之纯化",
"hexcasting.action.book.hexpose:get_biome": "地理之纯化",
@@ -43,14 +44,14 @@
"hexcasting.action.hexpose:is_brainswept": "感知之纯化",
"hexpose.page.is_brainswept.summary": "检验实体是否“被魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
- "hexpose.page.text.title": "文本 Iota",
- "hexpose.page.text.0": "$(thing)文本 iota$() 代表着文本信息。它不只编码了字面的信息,还包含了$(#ff0000)颜色$()和$(o)斜体$()等样式。$(br2)它们可在单个 iota 中存下很多信息。而正因其信息密度高,它们可能很快就会崩解为无意义的东西。",
+ "hexpose.page.text_iotas.title": "文本 Iota",
+ "hexpose.page.text_iotas.0": "$(thing)文本 iota$() 代表着文本信息。它不只编码了字面的信息,还包含了$(#ff0000)颜色$()和$(o)斜体$()等样式。$(br2)它们可在单个 iota 中存下很多信息。而正因其信息密度高,它们可能很快就会崩解为无意义的东西。",
"hexcasting.action.hexpose:create_text": "阅读之纯化",
- "hexpose.page.create_text.summary": "接受一个 iota,返回代表其的文本 iota。如果接受的是文本 iota,则清除其样式。",
- "hexpose.page.add_text.summary": "返回第一文本和第二文本首尾相接的文本 iota。",
- "hexpose.page.abs_text.summary": "返回文本 iota 的长度。",
+ "hexpose.page.create_text.summary": "接受一个 iota,返回代表其的$(l:patterns/text_iotas)$(thing)文本 iota$()。如果接受的是$(l:patterns/text_iotas)$(thing)文本 iota$(),则清除其样式。",
+ "hexpose.page.add_text.summary": "返回第一文本和第二文本首尾相接的$(l:patterns/text_iotas)$(thing)文本 iota$()。",
+ "hexpose.page.abs_text.summary": "返回$(l:patterns/text_iotas)$(thing)文本 iota$() 的长度。",
"hexcasting.action.hexpose:split_text": "字符之纯化",
- "hexpose.page.split_text.summary": "将文本 iota 拆分成各个字符。",
+ "hexpose.page.split_text.summary": "将$(l:patterns/text_iotas)$(thing)文本 iota$() 拆分成各个字符。",
"hexcasting.action.hexpose:combine_text": "拼贴之纯化",
"hexpose.page.combine_text.summary": "将列表中各元素转换为文本(原来就是文本则保留不变),并拼接结果。",
"hexpose.page.index_text.summary": "返回文本中第 n 个字符。",
@@ -59,19 +60,19 @@
"hexpose.page.remove_text.summary": "移除文本中第 n 个字符。",
"hexpose.page.rev_text.summary": "倒排文本。",
"hexpose.page.unique_text.summary": "只保留文本中各字符的第一处实例。样式不同的字符视作不同字符。",
- "hexpose.page.text.1": "后续的图案涉及到文本的样式。由于其参数结构,它们和馏化很相似,但它们实际上是$(o)策略$()。$(br2)如果传入的是常规参数,则它们会根据自身专长为文本设置样式(样例见说明)。$(br2)如果只传入一个文本,则会返回该文本中该样式的设置情况。",
+ "hexpose.page.text_iotas.1": "后续的图案涉及到文本的样式。由于其参数结构,它们和馏化很相似,但它们实际上是$(o)策略$()。$(br2)如果传入的是常规参数,则它们会根据自身专长为文本设置样式(样例见说明)。$(br2)如果只传入一个文本,则会返回该文本中该样式的设置情况。",
"hexcasting.action.hexpose:text_color": "卢米埃尔之策略",
- "hexpose.page.text_color.summary": "接受一个文本 iota 和一个颜色;颜色由各分量为 0 到 1 的向量定义。返回设置为该$(#ff0000)颜色$()的文本。",
+ "hexpose.page.text_color.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本 iota$() 和一个颜色;颜色由各分量为 0 到 1 的向量定义。返回设置为该$(#ff0000)颜色$()的文本。",
"hexcasting.action.hexpose:text_bold": "哥特式之策略",
- "hexpose.page.text_bold.summary": "接受一个文本,设置其是否为$(l)粗体$()。",
+ "hexpose.page.text_bold.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否为$(l)粗体$()。",
"hexcasting.action.hexpose:text_italics": "马努提乌斯之策略",
- "hexpose.page.text_italics.summary": "接受一个文本,设置其是否为$(o)斜体$()。",
+ "hexpose.page.text_italics.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否为$(o)斜体$()。",
"hexcasting.action.hexpose:text_underline": "记录员之策略",
- "hexpose.page.text_underline.summary": "接受一个文本,设置其是否有$(n)下划线$()。",
+ "hexpose.page.text_underline.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否有$(n)下划线$()。",
"hexcasting.action.hexpose:text_strikethrough": "编辑员之策略",
- "hexpose.page.text_strikethrough.summary": "接受一个文本,设置其是否有$(m)删除线$()。",
+ "hexpose.page.text_strikethrough.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否有$(m)删除线$()。",
"hexcasting.action.hexpose:text_obfuscated": "屏蔽之策略",
- "hexpose.page.text_obfuscated.summary": "接受一个文本,设置其是否显示为随机$(k)文本$()。",
+ "hexpose.page.text_obfuscated.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否显示为随机$(k)文本$()。",
"hexpose.page.special_raycasts.title": "特殊射线追踪",
"hexcasting.action.hexpose:fluid_raycast": "占水之馏化",
@@ -104,6 +105,12 @@
"hexcasting.action.hexpose:block_map_color": "制图师之纯化",
"hexpose.page.block_map_color.summary": "返回所给方块在地图上的颜色。",
+ "hexpose.page.chat.title": "聊天栏",
+ "hexcasting.action.hexpose:get_message": "新闻之精思",
+ "hexpose.page.get_message.summary": "以$(l:patterns/text_iotas)$(thing)文本$()形式返回最近一次使用聊天栏的玩家,同时以$(l:patterns/text_iotas)$(thing)文本$()形式返回该消息,以及发送时间距现在有多少个 1/20 秒。",
+ "hexcasting.action.hexpose:get_chat": "报纸之精思",
+ "hexpose.page.get_chat.summary": "对最近最多 32 条聊天栏消息执行$(l:patterns/scrying/chat#hexpose:get_message)$(action)新闻之精思$();每个消息的执行结果各自组为列表,再将这些列表组为列表返回。",
+
"hexpose.page.entities.title": "实体",
"hexcasting.action.hexpose:entity_width": "卡尺之纯化",
"hexpose.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
@@ -137,6 +144,8 @@
"hexpose.page.shooter.summary": "返回所给弹射物实体的发射者,若无发射者或不是弹射物,则返回 $(l:casting/influences)$(thing)Null$()。如果发射者在我影响范围之外,也会返回 $(l:casting/influences)$(thing)Null$()。",
"hexcasting.action.hexpose:pet_owner": "挚宠之纯化",
"hexpose.page.pet_owner.summary": "检验玩家是否驯服了所给动物,若未驯服或玩家在影响范围之外,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:entity_name": "名称之纯化",
+ "hexpose.page.entity_name.summary": "以$(l:patterns/text_iotas)$(thing)文本$()形式返回所给实体的名称,带格式。",
"hexcasting.action.hexpose:absorption_hearts": "吸收之纯化",
"hexpose.page.absorption_hearts.summary": "返回玩家的魔法心数。使用半颗心作为单位。",
@@ -200,7 +209,7 @@
"hexcasting.action.hexpose:count_max_stack": "库房之纯化",
"hexpose.page.count_max_stack.summary": "接受一个物品,返回其中最多可堆叠多少物品。",
"hexcasting.action.hexpose:damage_stack": "损耗之纯化",
- "hexpose.page.damage_stack.summary": "接受一个物品,返回物品剩余的耐久度。",
+ "hexpose.page.damage_stack.summary": "接受一个物品,返回物品所受的损坏值。",
"hexcasting.action.hexpose:damage_max_stack": "脆弱性之纯化",
"hexpose.page.damage_max_stack.summary": "接受一个物品,返回物品的耐久度上限。",
"hexcasting.action.hexpose:get_enchantments": "奇术师之纯化",
@@ -215,6 +224,10 @@
"hexpose.page.item_variant.summary": "如果物品会受到$(l:patterns/spells/cyclevariant)$(action)施法者之魅力$()的影响,则返回其当前外形对应的索引;否则返回 $(l:casting/influences)$(thing)Null$()。",
"hexcasting.action.hexpose:item_variant_max": "魅力之纯化,第二型",
"hexpose.page.item_variant_max.summary": "如果物品会受到$(l:patterns/spells/cyclevariant)$(action)施法者之魅力$()的影响,则返回其可变化的外形总数;否则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:read_book": "阅读之纯化",
+ "hexpose.page.read_book.summary": "将书中记载组为$(l:patterns/text_iotas)$(thing)文本$()列表返回;如所给参数不是书,则返回 $(l:casting/influences)$(thing)Null$()。",
+ "hexcasting.action.hexpose:book_sources": "书目之纯化",
+ "hexpose.page.book_sources.summary": "返回书的作者及书的复制代数。",
"hexcasting.action.hexpose:item_rarity": "收藏家之纯化",
"hexpose.page.item_rarity.summary": "测量物品的稀有度,返回为数,值越大越稀有。魔咒等特殊性质可能会提升物品的稀有度。",
diff --git a/projects/1.20-fabric/assets/hexlink/hexlink/lang/en_us.json b/projects/1.20-fabric/assets/hexlink/hexlink/lang/en_us.json
new file mode 100644
index 000000000000..5d719b1dbd7a
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexlink/hexlink/lang/en_us.json
@@ -0,0 +1,154 @@
+{
+ "hexlink.mishap.empty_collar": "Your focus collar is empty",
+ "hexlink.mishap.no_collar_item": "You don't have any focus collar",
+ "hexlink.mishap.extractor_item": "suitable extraction catalyzer item like an Extraction Crystal",
+ "hexlink.mishap.spell_holder": "spell holder item",
+ "hexlink.mishap.not_extractable": "This %s Spirit is not extractable with %s",
+ "hexlink.mishap.not_enough_soul": "Missing %d spirits",
+ "hexlink.mishap.cant_mix_at": "You cannot summon a vortex at this location, you can summon a vortex at an empty place",
+ "hexlink.mishap.invalid_spirit_source": "The Spirit source is invalid, you need a valid target from where to get spirits",
+ "hexlink.mishap.invalid_spirit_target": "The Spirit target is invalid, you need a valid target where to put spirits",
+ "hexlink.mishap.not_manifestable": "You cannot manifeset %s on %s",
+
+ "emi.category.hexlink.vortex": "Vortex Crafting",
+
+
+ "hexcasting.action.hexlink:spirit_extraction": "Spirit Extraction",
+ "hexcasting.action.hexlink:spirit_transfer": "Spirit Transfer",
+ "hexcasting.action.hexlink:spirit_transfer_look": "Spirit Storage Look",
+ "hexcasting.action.hexlink:spirit_transfer_look_all": "Spirit Storage Look All",
+ "hexcasting.action.hexlink:spirit_self_transfer_look": "Spirit Self Storage Look",
+ "hexcasting.action.hexlink:spirit_transfer_count": "Spirit Storage Count",
+ "hexcasting.action.hexlink:spirit_self_transfer_count": "Spirit Self Storage Count",
+
+ "hexcasting.action.hexlink:spirit_vortex": "Vortex Formation",
+ "hexcasting.action.hexlink:spirit_manifestation": "Spirit Manifestation",
+ "hexcasting.action.hexlink:spirit_self_manifestation": "Spirit Self Manifestation",
+ "hexcasting.action.hexlink:spirit_look": "Spirit Look",
+
+
+ "hexcasting.action.hexlink:read_trinket": "Boehmer's Reflection",
+ "hexcasting.action.hexlink:write_trinket": "Boehmer's Gambit",
+ "hexcasting.action.hexlink:write_spell": "Flem's Gambit",
+ "hexcasting.action.hexlink:get_nbt": "Samuel Purification",
+ "hexcasting.action.hexlink:find_nbt": "Gabriel Distillation",
+
+
+
+ "hexlink.spirit": " Spirit",
+ "hexlink.or": " or ",
+ "hexlink.spirit_iota": "Spirit Iota",
+ "hexlink.spirit_iota.good": "valid Spirit Iota",
+
+
+ "hexlink.spirit.block": "Block Spirit",
+ "hexlink.spirit.entity": "Entity Spirit",
+ "hexlink.spirit.potion": "Potion Spirit",
+ "hexlink.spirit.item": "Item Spirit",
+ "hexlink.spirit.enchantment": "Enchantment Spirit",
+ "hexlink.spirit.function": "Command Spirit",
+ "hexlink.spirit.special": "Special Spirit",
+ "hexlink.spirit.biome": "Biome Spirit",
+
+
+ "hexlink.extractor.item": "Item",
+ "hexlink.extractor.entity": "Entity",
+ "hexlink.extractor.block": "Block",
+ "hexlink.extractor.enchantment": "Enchantment",
+ "hexlink.extractor.potion": "Potion",
+ "hexlink.extractor.everything": "Anything",
+ "hexlink.extractor.biome": "Biome",
+
+
+ "item.hexlink.upgraded_book": "Upgraded Spellbook",
+ "item.hexlink.special_staff": "Special Staff",
+ "item.hexlink.mixed_pigment": "Mixed Pigment",
+ "item.hexlink.focus_collar": "Forbidden Focus Collar",
+ "item.hexlink.spirit": "%s Spirit",
+ "item.hexlink.spirit.none": "Spirit",
+
+ "item.hexlink.philosophical_crystal": "Philosophical Crystal of %s",
+ "item.hexlink.philosophical_crystal.none": "Transparent Crystal",
+ "item.hexlink.haunted_crystal": "Haunted Crystal of %s",
+ "item.hexlink.haunted_crystal.none": "Weird Crystal",
+
+ "item.hexlink.tablet": "Tablet of %s",
+ "item.hexlink.tablet.none": "Empty Tablet",
+ "item.hexlink.small_bag": "Soul Pocket of %s...",
+ "item.hexlink.small_bag.none": "Soul Pocket",
+ "item.hexlink.medium_bag": "Soul Bag of %s...",
+ "item.hexlink.medium_bag.none": "Soul Bag",
+ "item.hexlink.big_bag": "Large Soul Bag of %s...",
+ "item.hexlink.big_bag.none": "Large Soul Bag",
+ "item.hexlink.crystal": "Crystal of %s",
+ "item.hexlink.crystal.none": "Empty Crystal",
+
+ "item.hexlink.tablet_staff": "Tablet Staff",
+ "item.hexlink.big_tablet_on_a_stick": "Big Tablet on a Stick Staff",
+ "item.hexlink.spirit_staff": "Spirit Staff",
+ "item.hexlink.handmade_staff": "Handmade Staff",
+ "item.hexlink.pure_media_staff": "Pure Media Staff",
+ "item.hexlink.snake_staff": "Snake Staff",
+ "item.hexlink.cane_staff": "Cane Staff",
+
+ "block.hexlink.vortex": "Media Vortex",
+ "block.hexlink.big_tablet": "Big Tablet",
+
+
+ "itemGroup.hexlink.hexlink": "Hexlink",
+
+
+ "hexlink.category.spirits": "Spirit Spells",
+ "hexlink.category.spirits.desc": "I have learned to extract spirits from anything, blend them, then manifest them into the world.",
+
+ "tag.item.hexlink.stack_sized": "Extraction count depend on durability",
+ "tag.item.hexlink.staves": "Hexlink Staves",
+
+
+ "hexlink.entry.readwrite": "Hexlink Read and Write",
+ "hexlink.page.write_spell": "This pattern writes a spell into a Special Wand — whether it’s dropped, placed in an item frame, or held by the caster.",
+
+ "hexlink.page.spirit_extraction.desc": "This spell allows me to extract a spirit from a living entity, using an extraction catalyst — like an $(l:hexlink:items/crystals)Extraction Crystal/$ — and store it into a $(l:hexlink:items/bag)Spirit Container/$. The amount I can extract depends on the entity. I may place the catalyst and the target as dropped items, in item frames, in a container’s first slot, or hold them in my offhand. I must be cautious — if the conditions aren't right, the extraction may fail… or worse.",
+ "hexlink.page.spirit_extraction.target.desc": "The first parameter is the entity to extract from, the second is the extraction catalyst, and the third is the spirit container that will receive the spirit.",
+
+ "hexlink.page.spirit_transfer.desc": "These patterns are used to manipulate and move spirits stored in spirit containers. A spirit container can take many forms: a dropped item, an item in an item frame, a caster holding an item, a media vortex, or a position of a block containing an item.",
+ "hexlink.page.spirit_transfer.transfer.desc": "With this pattern, I can transfer spirits from one spirit container into another. The first parameter is the source container, and the second is the destination.",
+ "hexlink.page.spirit_transfer.look.desc": "With this pattern, I can read the type of the last Spirit stored in a spirit container. If the container is empty, or if the target entity or block isn’t a valid spirit source, the result is Null.",
+ "hexlink.page.spirit_transfer.look_all.desc": "With this pattern, I can retrieve the types of all Spirits stored in a spirit container. If the container is empty, or if the target entity or block isn't a valid spirit source, the result is Null.",
+ "hexlink.page.spirit_transfer.count.desc": "With this pattern, I can count how many spirits of a given type are stored in a container.",
+
+ "hexlink.page.get_nbt": "NBT Manipulation",
+ "hexlink.page.get_nbt.desc": "[Need MoreIotas] I see everything (In a small radius). With this pattern I can extract every property of a block or an entity into a list.",
+ "hexlink.page.find_nbt.desc": "$(br)[Need MoreIotas] With this pattern I can extract a specific property of a block or an entity. I must provide the path that leads to the sought-after essence. For example, [\"Inventory\",0,\"id\"].",
+
+ "hexlink.page.spirit_manifestation.desc": "With these powerful spells, I can manifest spirits into the physical world, either through an entity catalyst or at a specific location.",
+ "hexlink.page.spirit_manifestation.target.desc": "$(br)The first parameter is the source container, the second specifies the type of spirit to manifest, the third sets the number of spirits, and the last defines the target entity or location for manifestation.",
+ "hexlink.page.spirit_self_manifestation.self.desc": "This shortcut variant takes spirits from a container in the caster’s inventory. The first parameter specifies the type of spirit to manifest, the second sets the number of spirits, and the third defines the target entity or location for manifestation.",
+
+ "hexlink.page.spirit_other": "Other Spells",
+ "hexlink.page.spirit_vortex.desc": "With this pattern, I can summon a temporary $(l:hexlink:items/vortex)Media Vortex/$ in the world. After summoning it, spirits can be transferred into the vortex for temporary storage. Spirits stored inside can merge to create new spirits.",
+ "hexlink.page.spirit_look.desc": "With this pattern, I can sense how close a spirit is to a physical object.",
+
+ "hexlink.page.crystals": "Extraction Crystals",
+ "hexlink.page.crystals.desc": "Extraction Crystals assist me in extracting spirits. Using them with $(l:hexlink:patterns/spirits/extraction)Spirit Extraction/$ allows me to capture spirits. These crystals can be found in dungeon chests.",
+ "hexlink.page.crystals.block": "This type of crystal extracts the spirit of a block. Using a Block Spirit, I can summon blocks and simulate interactions with them.",
+ "hexlink.page.crystals.item": "This type of crystal extracts the spirit of an item. Using an Item Spirit, I can simulate the use of that item.",
+ "hexlink.page.crystals.entity": "This type of crystal extracts the spirit of an entity. The entity must have health at or below 4 to extract its spirit. Using an Entity Spirit, I can summon that entity.",
+ "hexlink.page.crystals.potion": "This type of crystal extracts the spirit of a potion effect. Using a Potion Spirit, I can apply the effect to an entity or summon an effect cloud.",
+ "hexlink.page.crystals.enchantment": "This type of crystal extracts the spirit of an enchanted item or enchanted book. Using an Enchantment Spirit, I can enchant an item or create an enchanted book. The target can be the first item in a container, a dropped item, an item in a frame, or the caster’s offhand item.",
+ "hexlink.page.crystals.everything": "This type of crystal extracts the spirit of anything.",
+
+ "hexlink.page.vortex": "Media Vortex and Containers",
+ "hexlink.page.vortex.desc": "Media Vortexes can contain up to 100 spirits and mix them to create new spirits. You create a Media Vortex using $(l:hexlink:patterns/spirits/other)Vortex Formation/$, then transfer spirits in and out with $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$.",
+ "hexlink.page.big_tablet.desc": "Big Tablets can contain up to 1000 spirits. Spirits can be added or removed using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$.",
+
+ "hexlink.page.bag": "Soul Bags",
+ "hexlink.page.bag.desc": "Soul bags contain spirits used for $(l:hexlink:patterns/spirits/manifestation)Spirit Manifestation/$. They can be filled using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$. While holding a soul bag like a spell book, you can select the spirit type by shift-scrolling.",
+ "hexlink.page.bag.small_bag": "Soul pockets can contains up to 2 different types of spirits, and 30 of each.",
+ "hexlink.page.bag.medium_bag": "Soul bags can contains up to 5 different types of spirits, and 100 of each.",
+ "hexlink.page.bag.big_bag": "Large soul bags can contains up to 10 different types of spirits, and 300 of each.",
+ "hexlink.page.bag.tablet": "Soul tablets can contains up to 10 spirits of one type, you can find them in dungeon chests.",
+ "hexlink.page.bag.philosophical_crystal": "Philosophical crystals are infinite sources of spirits.",
+ "hexlink.page.bag.haunted_crystal": "Haunted crystals are unstable ersatz versions of philosophical crystals."
+
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexlink/hexlink/lang/zh_cn.json b/projects/1.20-fabric/assets/hexlink/hexlink/lang/zh_cn.json
new file mode 100644
index 000000000000..ad5209817a37
--- /dev/null
+++ b/projects/1.20-fabric/assets/hexlink/hexlink/lang/zh_cn.json
@@ -0,0 +1,153 @@
+{
+ "hexlink.mishap.empty_collar": "核心项圈为空",
+ "hexlink.mishap.no_collar_item": "未佩戴核心项圈",
+ "hexlink.mishap.extractor_item": "提取水晶之类的有效提取催化物",
+ "hexlink.mishap.spell_holder": "可存有咒术的物品",
+ "hexlink.mishap.not_extractable": "该%s灵体无法被%s提取",
+ "hexlink.mishap.not_enough_soul": "缺少%d个灵体",
+ "hexlink.mishap.cant_mix_at": "无法在此处召唤涡旋,应当在空气处召唤",
+ "hexlink.mishap.invalid_spirit_source": "无效灵体来源,需要有效的灵体获取来源",
+ "hexlink.mishap.invalid_spirit_target": "无效灵体目标,需要有效的灵体存放目标",
+ "hexlink.mishap.not_manifestable": "无法在%2$s上使%1$s显形",
+
+ "emi.category.hexlink.vortex": "涡旋合成",
+
+
+ "hexcasting.action.hexlink:spirit_extraction": "灵体提取",
+ "hexcasting.action.hexlink:spirit_transfer": "灵体转移",
+ "hexcasting.action.hexlink:spirit_transfer_look": "灵体容器探察",
+ "hexcasting.action.hexlink:spirit_transfer_look_all": "灵体容器探察全部",
+ "hexcasting.action.hexlink:spirit_self_transfer_look": "自身灵体容器探察",
+ "hexcasting.action.hexlink:spirit_transfer_count": "灵体容器计数",
+ "hexcasting.action.hexlink:spirit_self_transfer_count": "自身灵体容器计数",
+
+ "hexcasting.action.hexlink:spirit_vortex": "涡旋成型",
+ "hexcasting.action.hexlink:spirit_manifestation": "灵体显形",
+ "hexcasting.action.hexlink:spirit_self_manifestation": "自身灵体显形",
+ "hexcasting.action.hexlink:spirit_look": "灵体探察",
+
+
+ "hexcasting.action.hexlink:read_trinket": "伯默之精思",
+ "hexcasting.action.hexlink:write_trinket": "伯默之策略",
+ "hexcasting.action.hexlink:write_spell": "弗莱姆之策略",
+ "hexcasting.action.hexlink:get_nbt": "撒母耳之纯化",
+ "hexcasting.action.hexlink:find_nbt": "加百列之馏化",
+
+
+
+ "hexlink.spirit": "灵体",
+ "hexlink.or": "或",
+ "hexlink.spirit_iota": "灵体iota",
+ "hexlink.spirit_iota.good": "有效的灵体iota",
+
+
+ "hexlink.spirit.block": "方块灵体",
+ "hexlink.spirit.entity": "实体灵体",
+ "hexlink.spirit.potion": "药水灵体",
+ "hexlink.spirit.item": "物品灵体",
+ "hexlink.spirit.enchantment": "魔咒灵体",
+ "hexlink.spirit.function": "命令灵体",
+ "hexlink.spirit.special": "特殊灵体",
+ "hexlink.spirit.biome": "生物群系灵体",
+
+
+ "hexlink.extractor.item": "物品",
+ "hexlink.extractor.entity": "实体",
+ "hexlink.extractor.block": "方块",
+ "hexlink.extractor.enchantment": "魔咒",
+ "hexlink.extractor.potion": "药水",
+ "hexlink.extractor.everything": "任意",
+ "hexlink.extractor.biome": "生物群系",
+
+
+ "item.hexlink.upgraded_book": "升级法术书",
+ "item.hexlink.special_staff": "特殊法杖",
+ "item.hexlink.mixed_pigment": "混合染色剂",
+ "item.hexlink.focus_collar": "禁忌的核心项圈",
+ "item.hexlink.spirit": "%s灵体",
+ "item.hexlink.spirit.none": "灵体",
+
+ "item.hexlink.philosophical_crystal": "%s之贤者水晶",
+ "item.hexlink.philosophical_crystal.none": "透明水晶",
+ "item.hexlink.haunted_crystal": "%s之缠魂水晶",
+ "item.hexlink.haunted_crystal.none": "奇异水晶",
+
+ "item.hexlink.tablet": "%s之石板",
+ "item.hexlink.tablet.none": "空灵魂石板",
+ "item.hexlink.small_bag": "%s之灵魂口袋",
+ "item.hexlink.small_bag.none": "灵魂口袋",
+ "item.hexlink.medium_bag": "%s之灵魂袋",
+ "item.hexlink.medium_bag.none": "灵魂袋",
+ "item.hexlink.big_bag": "%s之大灵魂袋",
+ "item.hexlink.big_bag.none": "大灵魂袋",
+ "item.hexlink.crystal": "%s之水晶",
+ "item.hexlink.crystal.none": "空提取水晶",
+
+ "item.hexlink.tablet_staff": "石板法杖",
+ "item.hexlink.big_tablet_on_a_stick": "镶大石板法杖",
+ "item.hexlink.spirit_staff": "灵体法杖",
+ "item.hexlink.handmade_staff": "手工法杖",
+ "item.hexlink.pure_media_staff": "纯媒质法杖",
+ "item.hexlink.snake_staff": "蛇形法杖",
+ "item.hexlink.cane_staff": "棍状法杖",
+
+ "block.hexlink.vortex": "媒质涡旋",
+ "block.hexlink.big_tablet": "大石板",
+
+
+ "itemGroup.hexlink.hexlink": "Hexlink",
+
+
+ "hexlink.category.spirits": "灵体法术",
+ "hexlink.category.spirits.desc": "将事物变为媒质灵体,混合交融再令其显形。",
+
+ "tag.item.hexlink.stack_sized": "提取量由耐久度决定",
+ "tag.item.hexlink.staves": "Hexlink 法杖",
+
+
+ "hexlink.entry.readwrite": "Hexlink 读取与写入",
+ "hexlink.page.write_spell": "此图案可将咒术写入特殊法杖。法杖可为物品实体、物品展示框中物品,或施法者手持。",
+
+ "hexlink.page.spirit_extraction.desc": "此法术可通过$(l:hexlink:items/crystals)提取水晶/$等提取催化物从实体中提取灵体,并将其存入$(l:hexlink:items/bag)灵体容器/$。提出灵体的数量由被提取目标决定。此法术中的物品可以是物品实体、物品展示框中的物品、容器首格中的物品,或者施法者副手中的物品。使用时务必小心,一着不慎满盘皆输。",
+ "hexlink.page.spirit_extraction.target.desc": "第一参数为被提取对象;第二参数为提取催化物,如提取水晶;第三参数则为灵体容器。",
+
+ "hexlink.page.spirit_transfer.desc": "这些图案可用于操纵和移动灵体,将它们存储于灵体容器。物品实体、物品展示框中的物品、施法者手持物品、媒质涡旋,装有灵体容器的容器的位置向量等均可视为灵体容器。",
+ "hexlink.page.spirit_transfer.transfer.desc": "此图案可将灵体在两灵体容器间转移。第一参数为转移起点,第二参数为转移终点。",
+ "hexlink.page.spirit_transfer.look.desc": "此图案可查看灵体容器中上一灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
+ "hexlink.page.spirit_transfer.look_all.desc": "此图案可查看灵体容器中的所有灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
+ "hexlink.page.spirit_transfer.count.desc": "此图案可统计灵体容器中某种灵体的存储数量。",
+
+ "hexlink.page.get_nbt": "NBT 操纵",
+ "hexlink.page.get_nbt.desc": "[需要安装更多 Iota] 我能在较短距离内看到所有事物。此图案能将方块或实体的所有属性提取为列表。",
+ "hexlink.page.find_nbt.desc": "$(br)[需要安装更多 Iota] 此图案能提取某个方块或实体的特定属性。提取时必须要给定所探寻的灵魂本质的路径。例如,[\"Inventory\",0,\"id\"]。",
+
+ "hexlink.page.spirit_manifestation.desc": "这个强力法术能将灵体显形至物理世界。我能通过某实体或在某位置令其显形。",
+ "hexlink.page.spirit_manifestation.target.desc": "$(br)第一参数为被提取的容器,第二参数为需显形灵体的类型,第三参数为需显形灵体的数量,最末参数则是显形实体或显形位置。",
+ "hexlink.page.spirit_self_manifestation.self.desc": "此快捷变种会从施法者物品栏中的灵体容器抽取灵体。第一参数为需显形灵体的类型,第二参数为需显形灵体的数量,第三参数则是显形实体或显形位置。",
+
+ "hexlink.page.spirit_other": "其他法术",
+ "hexlink.page.spirit_vortex.desc": "此图案可召唤出会消散的$(l:hexlink:items/vortex)媒质涡旋/$。可向其中放入灵体以暂时存储。涡旋中的灵体也有可能融合出新灵体。",
+ "hexlink.page.spirit_look.desc": "此图案可使我感受灵体与某物体的接近程度。",
+
+ "hexlink.page.crystals": "提取水晶",
+ "hexlink.page.crystals.desc": "提取水晶有助于提取灵体。将其与$(l:hexlink:patterns/spirits/extraction)灵体提取/$配合使用就能提出灵体。这类水晶会出现在地牢箱子中。",
+ "hexlink.page.crystals.block": "此类水晶可以装入方块灵体。可通过此类灵体召唤方块,或是模拟与其的交互。",
+ "hexlink.page.crystals.item": "此类水晶可以装入物品灵体。可通过此类灵体模拟使用物品。",
+ "hexlink.page.crystals.entity": "此类水晶可以装入实体灵体。可通过此类灵体召唤实体。实体的生命值必须小于等于 4。",
+ "hexlink.page.crystals.potion": "此类水晶可以装入药水效果灵体。可通过此类灵体给予实体效果,或是召唤效果云。",
+ "hexlink.page.crystals.enchantment": "此类水晶可以装入附魔物品和附魔书的灵体。可通过此类灵体附魔物品或制作附魔书。容器中的首个物品、物品实体、物品展示框中的物品,施法者副手中物品等均可视为提取目标。",
+ "hexlink.page.crystals.everything": "此类水晶可以装入任意灵体。",
+
+ "hexlink.page.vortex": "媒质涡旋与容器",
+ "hexlink.page.vortex.desc": "媒质涡旋最多可装有 100 个灵体,也能将其混合以制造新灵体。$(l:hexlink:patterns/spirits/other)涡旋成型/$可产生媒质涡旋,$(l:hexlink:patterns/spirits/transfer)灵体转移/$则能放入或取出灵体。",
+ "hexlink.page.big_tablet.desc": "大石板最多可装有 1000 个灵体。可用$(l:hexlink:patterns/spirits/transfer)灵体转移/$放入或取出灵体。",
+
+ "hexlink.page.bag": "灵魂袋",
+ "hexlink.page.bag.desc": "灵魂袋可装下用于$(l:hexlink:patterns/spirits/manifestation)灵体显形/$的灵体。可用$(l:hexlink:patterns/spirits/transfer)灵体转移/$填充它们。还可在手持时潜行滚动滚轮以选择灵体类型,就和法术书一样。",
+ "hexlink.page.bag.small_bag": "灵魂口袋可装下最多 2 种灵体,每种最多 30 个。",
+ "hexlink.page.bag.medium_bag": "灵魂袋可装下最多 5 种灵体,每种最多 100 个。",
+ "hexlink.page.bag.big_bag": "大灵魂袋可装下最多 10 种灵体,每种最多 300 个。",
+ "hexlink.page.bag.tablet": "灵魂石板可装下最多 10 个单种灵体,且能在地牢箱子中找到。",
+ "hexlink.page.bag.philosophical_crystal": "贤者水晶是灵体的无限来源。",
+ "hexlink.page.bag.haunted_crystal": "缠魂水晶则是贤者水晶的仿制品。"
+}
\ 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
index bb5154a5592c..e8d5d98f75a3 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
@@ -1,49 +1,50 @@
{
"itemGroup.hextended": "Hextended's Gear",
- "item.hextended.extended_staff_oak": "Extended Oak Staff",
- "item.hextended.extended_staff_spruce": "Extended Spruce Staff",
- "item.hextended.extended_staff_birch": "Extended Birch Staff",
- "item.hextended.extended_staff_jungle": "Extended Jungle Staff",
- "item.hextended.extended_staff_dark_oak": "Extended Dark Oak Staff",
- "item.hextended.extended_staff_acacia": "Extended Acacia Staff",
- "item.hextended.extended_staff_crimson": "Extended Crimson Staff",
- "item.hextended.extended_staff_warped": "Extended Warped Staff",
- "item.hextended.extended_staff_mangrove": "Extended Mangrove Staff",
- "item.hextended.extended_staff_edified": "Extended Edified Staff",
- "item.hextended.extended_staff_cherry": "Extended Cherry Staff",
- "item.hextended.extended_staff_bamboo": "Extended Bamboo Staff",
- "item.hextended.extended_staff_mindsplice": "Extended Mindsplice Staff",
- "item.hextended.extended_staff_quenched": "Extended Quenched Shard Staff",
+ "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.lesser_battery_staff": "Improvised Amethyst Staff",
- "item.hextended.lesser_battery_extended_staff": "Improvised Extended Amethyst Staff",
- "item.hextended.sealed_lesser_battery_extended_staff": "Sealed Improvised Extended Amethyst Staff",
- "item.hextended.sealed_lesser_battery_staff": "Sealed Improvised Amethyst 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.moss_staff": "Mossy Staff",
- "item.hextended.flowered_moss_staff": "Flowering Mossy Staff",
- "item.hextended.extended_moss_staff": "Extended Mossy Staff",
- "item.hextended.extended_flowered_moss_staff": "Extended Flowering Mossy Staff",
- "item.hextended.prismarine_staff": "Prismarine Staff",
- "item.hextended.dark_prismarine_staff": "Dark Prismarine Staff",
- "item.hextended.extended_prismarine_staff": "Extended Prismarine Staff",
- "item.hextended.extended_dark_prismarine_staff": "Extended Dark Prismarine Staff",
- "item.hextended.obsidian_staff": "Obsidian Staff",
- "item.hextended.purpur_staff": "Purpur Staff",
- "item.hextended.extended_obsidian_staff": "Extended Obsidian Staff",
- "item.hextended.extended_purpur_staff": "Extended Purpur Staff",
+ "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.extended_quartz_staff": "Extended Quartz Staff",
- "item.hextended.extended_blaze_staff": "Extended Blaze Staff",
- "item.hextended.extended_wither_staff": "Extended Wither Staff",
- "item.hextended.extended_owlbert_staff": "Extended Owl Staff",
- "item.hextended.extended_ghost_staff": "Extended Ghost Staff",
- "item.hextended.extended_celestial_staff": "Extended Celestial Staff",
- "item.hextended.extended_longinus_staff": "Extended Longinus Staff",
- "item.hextended.extended_ice_staff": "Extended Ice Staff",
- "item.hextended.extended_carrot_staff": "Extended Carrot Staff",
- "item.hextended.extended_bee_staff": "Extended Bee 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",
@@ -68,6 +69,8 @@
"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!",
@@ -77,12 +80,6 @@
"hextended.page.crossmod_staves_1.crafting.header.arsnouveau": "Archwood Staves",
"hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "",
- "hextended.entry.gloopstended_staves": "Gloop-stended Staves",
- "hextended.page.gloopstended_staves.0": "$(o)\"Gloop\"! Ha! Wondrous./$$(br2)Recently I've caught wind of a curious substance simply dubbed \"gloop\". Along with it, even more staff designs have $(m)glooped/$ blown my way.",
- "hextended.page.gloopstended_staves.crafting.header.0": "Nether Staves",
- "hextended.page.gloopstended_staves.crafting.desc.0": "Hm. Not much seems to elicit foreboding strength $(o)quite/$ like waving around half a wither.$(br2)(note the lack of skulls in this recipe, dear reader!)",
- "hextended.page.gloopstended_staves.crafting.header.1": "Mept Staves",
- "hextended.page.gloopstended_staves.crafting.desc.1": "\"Say goodnight, sister!\"$(br2)Some legends tell of staves that made use of circular patterns. Sounds nothing short of wild witchery!",
- "hextended.page.gloopstended_staves.crafting.desc.2": "Nicknamed the \"Garden Staff\", it lets you cast the Revive Magick withou-- er, it's very... healthy to wield?",
- "hextended.page.gloopstended_staves.crafting.desc.3": "Likewise to the Garden Staff, you may instead refer to this staff as the Hive Staff. Now populated with the hum of media $(o)and/$ the hum of busy friends!"
+ "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/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
new file mode 100644
index 000000000000..775fe0d2056c
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
@@ -0,0 +1,20 @@
+{
+ "item.hexpigmentplus.magician_hat.0": "Magician Hat",
+ "item.hexpigmentplus.magician_hat.1": "Magician High Hat",
+ "item.hexpigmentplus.magician_hat.2": "Magician Lutin Hat",
+ "item.hexpigmentplus.magician_hat.3": "Magician Medieval Hat",
+ "item.hexpigmentplus.magician_hat.4": "Magician Round Hat",
+ "item.hexpigmentplus.magician_hat.5": "Magician Clown Hat",
+ "item.hexpigmentplus.magician_hat.6": "Magician Large Hat",
+ "item.hexpigmentplus.magician_hat.7": "Magician Cap",
+ "item.hexpigmentplus.magician_hat.8": "Merlin Hat",
+ "item.hexpigmentplus.magician_hat.9": "The Cube By HatInc.(c)",
+ "item.hexpigmentplus.magician_hat.10": "Rabbit Cage",
+ "item.hexpigmentplus.magician_hat.11": "Magician Wide Hat",
+ "item.hexpigmentplus.magician_hat.12": "Magician Falling Hat",
+ "item.hexpigmentplus.magician_hat.13": "Old Magician Hat",
+
+ "item.hexpigmentplus.magician_cloak.0": "Magician Cape",
+ "item.hexpigmentplus.magician_cloak.1": "Magician Cloak",
+ "item.hexpigmentplus.magician_cloak.2": "Magician Scarf"
+}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
new file mode 100644
index 000000000000..92e60339c733
--- /dev/null
+++ b/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
@@ -0,0 +1,20 @@
+{
+ "item.hexpigmentplus.magician_hat": "魔法师帽",
+ "item.hexpigmentplus.magician_hat.1": "魔法师尖顶帽",
+ "item.hexpigmentplus.magician_hat.2": "魔法师妖精帽",
+ "item.hexpigmentplus.magician_hat.3": "魔法师中世纪帽",
+ "item.hexpigmentplus.magician_hat.4": "魔法师圆顶帽",
+ "item.hexpigmentplus.magician_hat.5": "魔法师弄臣帽",
+ "item.hexpigmentplus.magician_hat.6": "魔法师大帽",
+ "item.hexpigmentplus.magician_hat.7": "魔法师鸭舌帽",
+ "item.hexpigmentplus.magician_hat.8": "梅林帽",
+ "item.hexpigmentplus.magician_hat.9": "冠帽股份有限公司出品立方帽©",
+ "item.hexpigmentplus.magician_hat.10": "兔笼帽",
+ "item.hexpigmentplus.magician_hat.11": "魔法师宽帽",
+ "item.hexpigmentplus.magician_hat.12": "魔法师垂顶帽",
+ "item.hexpigmentplus.magician_hat.13": "老式魔法师帽",
+
+ "item.hexpigmentplus.magician_cloak.0": "魔法师披风",
+ "item.hexpigmentplus.magician_cloak.1": "魔法师斗篷",
+ "item.hexpigmentplus.magician_cloak.2": "魔法师围巾"
+}
\ 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 4657e5e5208b..e8d5d98f75a3 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
@@ -80,12 +80,6 @@
"hextended.page.crossmod_staves_1.crafting.header.arsnouveau": "Archwood Staves",
"hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "",
- "hextended.entry.gloopstended_staves": "Gloop-stended Staves",
- "hextended.page.gloopstended_staves.0": "$(o)\"Gloop\"! Ha! Wondrous./$$(br2)Recently I've caught wind of a curious substance simply dubbed \"gloop\". Along with it, even more staff designs have $(m)glooped/$ blown my way.",
- "hextended.page.gloopstended_staves.crafting.header.0": "Nether Staves",
- "hextended.page.gloopstended_staves.crafting.desc.0": "Hm. Not much seems to elicit foreboding strength $(o)quite/$ like waving around half a wither.$(br2)(note the lack of skulls in this recipe, dear reader!)",
- "hextended.page.gloopstended_staves.crafting.header.1": "Mept Staves",
- "hextended.page.gloopstended_staves.crafting.desc.1": "\"Say goodnight, sister!\"$(br2)Some legends tell of staves that made use of circular patterns. Sounds nothing short of wild witchery!",
- "hextended.page.gloopstended_staves.crafting.desc.2": "Nicknamed the \"Garden Staff\", it lets you cast the Revive Magick withou-- er, it's very... healthy to wield?",
- "hextended.page.gloopstended_staves.crafting.desc.3": "Likewise to the Garden Staff, you may instead refer to this staff as the Hive Staff. Now populated with the hum of media $(o)and/$ the hum of busy friends!"
+ "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
index 3307dfd8775e..62ca4943e4f5 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
@@ -80,12 +80,6 @@
"hextended.page.crossmod_staves_1.crafting.header.arsnouveau": "至高木法杖",
"hextended.page.crossmod_staves_1.crafting.desc.arsnouveau": "",
- "hextended.entry.gloopstended_staves": "凝浆长法杖",
- "hextended.page.gloopstended_staves.0": "$(o)“凝浆”!哈!真是奇妙。/$$(br2)最近,我听说了一种奇异的物质,名称就叫“凝浆”。随它一起来的,还有许多种法杖设计,完全$(m)凝/$超出了我的期待。",
- "hextended.page.gloopstended_staves.crafting.header.0": "下界法杖",
- "hextended.page.gloopstended_staves.crafting.desc.0": "哈。除了拿着半个凋灵挥来舞去之外,还有$(o)什么/$能彰显压迫感呢?$(br2)(亲爱的读者,务必注意这一合成表中无需头颅!)",
- "hextended.page.gloopstended_staves.crafting.header.1": "使偶法杖",
- "hextended.page.gloopstended_staves.crafting.desc.1": "“晚安了,姐姐!”$(br2)某些传说中提到过使用圆形图案的法杖。听起来和野魔法没什么两样!",
- "hextended.page.gloopstended_staves.crafting.desc.2": "昵称“花园法杖”,它能让你更轻松地施放复活魔能技,而不需——呃,它……拿着就很健康?",
- "hextended.page.gloopstended_staves.crafting.desc.3": "和花园法杖类似,你也可以将这支法杖称作蜂巢法杖。其中住着的,不仅有蜂鸣的媒质,$(o)还有/$蜂鸣的忙碌伙伴!"
+ "hextended.entry.extended_fanciful_staves": "华丽长法杖",
+ "hextended.page.extended_fanciful_staves.1": "这些华丽的新工具必然同样反映出我力量的强大。我的认知拓展到了新的边界,法杖的晶亮尖端也一同延展才是正确的。只有它们和我的智慧、我的躯体、我的影响力、$(o)我的力量/$一同$(o)延长/$才是正确的。这才是唯一正确的。"
}
\ No newline at end of file
From e2f8aedd90888b2ef2c38e9e17edf123d5bb7f80 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Wed, 23 Jul 2025 06:42:20 +0800
Subject: [PATCH 57/78] =?UTF-8?q?SlateWork=20update=EF=BC=9A=E5=AE=98?=
=?UTF-8?q?=E5=BA=93=E6=9B=B4=E6=96=B0=20Hexportation=20path?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../1UNKNOWN/slate_work/lang/en_us.json | 95 +++++++++++++++----
.../1UNKNOWN/slate_work/lang/zh_cn.json | 95 +++++++++++++++----
.../hexportation/lang/en_us.json | 0
.../hexportation/lang/zh_cn.json | 0
4 files changed, 150 insertions(+), 40 deletions(-)
rename projects/1.20-fabric/assets/{1UNKNOWN => modrinth-hexportation}/hexportation/lang/en_us.json (100%)
rename projects/1.20-fabric/assets/{1UNKNOWN => modrinth-hexportation}/hexportation/lang/zh_cn.json (100%)
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
index 4ff518276a19..8065bfc523eb 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
@@ -1,36 +1,91 @@
{
- "block.slate_work.storage_slate": "Storage Vessels",
- "block.slate_work.ambit_extender": "Ambit Extender",
- "block.slate_work.crafting_slate": "Patterned Assembler",
+ "itemGroup.slate_work": "Slate Works",
+
+ "block.slate_work.storage_loci": "Storage Vessels",
+ "block.slate_work.ambit_loci": "Ambit Extender",
+ "block.slate_work.crafting_loci": "Patterned Assembler",
"block.slate_work.speed_loci": "Wave Regulator",
+ "block.slate_work.macro_loci": "Spell Imprinter",
- "Patterns:":"",
+ "Patterns:": "",
"hexcasting.action.slate_work:get_storage": "Get Vessels",
"hexcasting.action.slate_work:check_item": "Check Item",
"hexcasting.action.slate_work:store_item": "Lay Item",
"hexcasting.action.slate_work:get_item": "Reawaken Item",
+ "hexcasting.action.slate_work:sort_items": "Reorient Items",
+
+ "hexcasting.action.slate_work:set_craft": "Set Recipe",
+ "hexcasting.action.slate_work:set_macro": "Bind Macro",
+
+ "hexcasting.action.slate_work:wave_position": "Wave Location Rfln.",
+ "hexcasting.action.slate_work:wave_normal": "Wave Facing Rfln.",
+ "hexcasting.action.slate_work:wave_speed": "Wave Speed Rfln.",
+ "hexcasting.action.slate_work:media_reflection": "Circle Media Rfln.",
+
+ "Items:": "",
+ "item.slate_work.allay_pigment": "Quenched Pigment",
"Entries:": "",
- "slate_work.entry.vessels": "Storage Vessels",
- "slate_work.page.vessels.1": "As wonderful as $(thing)Vessels/$ are for storage, they have an... opaque method of interaction. The main way of interaction is with _Hexes; more specifically, using a _Hex to describe what I wish to retrieve. Importantly, these all $(l:casting/mishaps2)mishap when not casted in a Spell Circle/$. $(br2)$(br)$(o)“Riddles,” I said. $(br)“Always preferable to no answer at all,” he responded.",
- "slate_work.page.vessels.2": "To elaborate more, $(thing)Vessels/$ respects Nature's silly rules regarding the \"Stack Limit\" by working around them. Rather than directly calling an item based on its name, I more-or-less supply a \"description;\" this is a _Hex that takes an $(l:patterns/scrying/item)Item Stack Iota/$, and needs to return a boolean. Also, all patterns to do with the retrieving of $(thing)Storage Vessels/$ take a copy of the Stack, and puts it onto the 'inner' stack (Much like $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$).",
- "slate_work.page.vessels.get_storage": "This simply returns what $(thing)Vessels/$ the current $(l:greatwork/spellcircles)Spell Circle/$ has activated. I should likely use this to check if the $(l:greatwork/spellcircles)Spell Circle/$ has collected any $(thing)Vessels/$.",
- "slate_work.page.vessels.store_item": "It is much easier to store an item into a $(thing)Vessel/$ than to pull it out. This pattern simply takes an Item Entity, and neatly sorts it into the activated $(thing)Storage Vessels/$.",
- "slate_work.page.vessels.get_item": "This takes a _Hex and runs it on every $(l:patterns/scrying/item)Item Stack/$ stored. Once the _Hex is ran, it requires either a $(thing)False/$, or a $(thing)True/$, $(thing)Vector/$ (output of the items), and $(thing)Integer/$ (amount of items)",
- "slate_work.page.vessels.get_item_cont": "Further explained, as stated in the 2nd page. This copies iotas from the stack, so if I had [Position, Count, Type] on the stack then ran a _Hex that got the Type of the $(l:patterns/scrying/item)Item Stack/$ being compared, and did an $(l:patterns/logic#hexcasting:equals)equals check/$. Then it would return only that Type, as item entities, at Position with a count of Count. $(br) It should also be stated this 'search' does not end early after finding a match.",
- "slate_work.page.vessels.check_item": "Check Item functions much like Reawaken Item; however, it only requires a boolean on the 'inner stack'. If the boolean is ever true, the spell returns true.",
-
- "slate_work.entry.ambit_extenders": "Ambit Extenders",
- "slate_work.page.ambit_extender.ambit_extender": "The Ambit Extender is a fabulous answer to my $(thing)Ambit/$ woes when it comes to $(l:greatwork/spellcircles)Spell Circles/$. This pops a vector from the stack, and extends ambit in the direction (negative vectors extending the negative corner of Circle Ambit). $(br2)$(br2)$(o)With great range comes with great costs, err-",
- "slate_work.page.ambit_extender.ambit_extender_cont": "While this is not as strong as... $(l:https://forum.petra-k.at/viewtopic.php?t=136)other/$ methods of giving a $(l:greatwork/spellcircles)Spell Circles/$ more $(thing)Ambit/$, I do feel like Nature takes a kinder approach to my amalgamation of free will if I use this.$(br2)This does not come cheap however, the _media cost increases with the square of the total distance changed. So if I were to give this a (0,5,0) vector, it would grant the $(l:greatwork/spellcircles)Spell Circle/$ 5 extra blocks of $(thing)Ambit/$ above it, much like if I extended the slates 5 blocks up at the cost of 25 shards",
-
- "slate_work.entry.wave_regulator": "Wave Regulators",
+ "slate_work.entry.storage_loci": "Slate Works Loci Patterns",
+ "slate_work.page.storage_loci.1": "As wonderful as $(thing)Vessels/$ are for storage, they have an... opaque method of interaction. The main way of interaction is with _Hexes; more specifically, using a _Hex to describe what I wish to retrieve. Importantly, these all $(l:casting/mishaps2)mishap when not cast in a Spell Circle/$. $(br2)$(br)$(o)“Riddles,” I said. $(br)“Always preferable to no answer at all,” he responded.",
+ "slate_work.page.storage_loci.2": "To elaborate more, $(thing)Vessels/$ respects Nature's silly rules regarding the \"Stack Limit\" by working around them. Rather than directly calling an item based on its name, I more-or-less supply a \"description;\" this is a _Hex that takes an $(l:patterns/scrying/item)Item Stack Iota/$, and needs to return a boolean. Also, all patterns to do with the retrieving of $(thing)Storage Vessels/$ take a copy of the Stack, and puts it onto the 'inner' stack (Much like $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$).",
+ "slate_work.page.storage_loci.get_storage": "This simply returns what $(thing)Vessels/$ the current $(l:greatwork/spellcircles)Spell Circle/$ has activated. I should likely use this to check if the $(l:greatwork/spellcircles)Spell Circle/$ has collected any $(thing)Vessels/$.",
+ "slate_work.page.storage_loci.store_item": "It is much easier to store an item into a $(thing)Vessel/$ than to pull it out. This pattern simply takes an Item Entity, and neatly sorts it into the activated $(thing)Storage Vessels/$. Costs an 1/8 of a dust per activated $(thing)Vessel/$.",
+ "slate_work.page.storage_loci.get_item": "This takes a _Hex and runs it on every $(l:patterns/scrying/item)Item Stack/$ stored. Once the _Hex is run, it requires a $(thing)Integer/$, $(thing)Vector/$, and $(thing)Boolean/$, and left on the stack, in that order.",
+ "slate_work.page.storage_loci.get_item_cont": "Further explained: this runs the given _Hex on every stored Item in the $(thing)Vessels/$. The _Hex must return (Top to bottom) either a False (omits the Vector, and Number) or True, Vector, and Number. The Vector corresponds to where to the position in the World to output the items (respecting ambit), and Number relates to how many of that type of item to retrieve. $(br2)Costs a 1/4 a dust per activated $(thing)Vessel/$.",
+ "slate_work.page.storage_loci.check_item": "Check Item functions much like Reawaken Item; however, it only requires a Boolean from the ran _Hex. If the Boolean is ever True, the spell ends, and returns True.",
+ "slate_work.page.storage_loci.sort_items": "In some rare scenarios, $(thing)Vessels/$ can get jumbled up and have items of the same type spread across different Vessels. This is a neat spell to resort them at a cost; that cost being 5 $(l:items/amethyst)Charged Amethyst/$.",
+ "slate_work.page.storage_loci.set_craft": "Sets the crafting recipe of a $(l:greatwork/crafting_loci)Patterned Assembler/$. Takes a list of null, items, or item variants, and applies it to the targeted $(l:greatwork/crafting_loci)Assembler/$.",
+ "slate_work.page.storage_loci.set_craft_cont": "To note: the given list gets \"formated\" as left to right, top to bottom in the $(l:greatwork/crafting_loci)Patterned Assembler/$. As well, the Nulls represent blank spots in recipes. Finally, the Spell will Mishap if the given list is longer than 9 items (but passes with less than or equal too 9 items). $(br2)Does not Mishap if casted outside of a $(l:greatwork/spellcircles)Spell Circles/$. Costs a negligible amount of _media.",
+ "slate_work.page.storage_loci.set_macro": "This binds both a pattern and a _Hex to a $(l:greatwork/macro_loci)Spell Imprinter/$, which is at the targeted vector. $(br2)Does not Mishap if casted outside of a $(l:greatwork/spellcircles)Spell Circles/$. Costs a negligible amount of _media.",
+
+ "slate_work.entry.storage_loci_block": "Storage Vessels",
+ "slate_work.page.storage_loci_block.storage_loci": "After $(o)FAR TOO LONG/$ of lugging my items in clunky, splintery, $(o)chests/$... I have discovered the perfect method of storage, $(thing)Storage Vessels/$. $(br)Despite my current state, I am still far too full of mental garbage to interface with the $(thing)Storage Vessels/$. However, $(l:greatwork/spellcircles)Spell Circles/$ are perfect for insertion and extraction of these new storage methods.",
+ "slate_work.page.storage_loci_block.storage_loci_cont": "While $(thing)Storage Vessels/$ can only hold 16 \"types\" of items each (much like a single chest holding only 27 slots), they ignore the standard stack limit, holding a near-infinite amount of each slot! $(br2)Additionally, as a $(l:greatwork/spellcircles)Spell Circles/$ activates these with its high-density Media Wave, the $(l:greatwork/spellcircles)Circle/$ gains the ability to read and retrieve items from the $(thing)Storage Vessels/$ (stacking as more are activated). I have noted down the Spells for doing just that $(l:patterns/storage_loci)here/$.",
+ "slate_work.page.storage_loci_block.dropping": "Important to note: when $(thing)Storage Vessels/$ are broken, they do not eject the items stored within. Instead, they carefully pack all of their items into the resulting broken block (much like a $(item)Shulker Box/$). $(br2)$(br2)$(o)\"Oh boy! Time to get my items!\"$(br)[sound of chest opening]$(br)[sound of chest closing]$(br)[sound of chest opening]$(br)[sound of chest closing]$(br)[sound of chest opening]$(br)[sound of chest closing]",
+ "slate_work.page.storage_loci_block.crafting": "The $(thing)Storage Vessel/$ requires a mind capable of diving into the depths, and retrieving something based on only a hint. A Fisherman villager is perfect for this.",
+
+ "slate_work.entry.ambit_loci": "Ambit Extenders",
+ "slate_work.page.ambit_loci.ambit_loci": "The Ambit Extender is a fabulous answer to my $(thing)Ambit/$ woes when it comes to $(l:greatwork/spellcircles)Spell Circles/$. This pops a vector from the stack, and extends ambit in the direction (negative vectors extending the negative corner of Circle Ambit). $(br2)$(br)$(o)With great range comes with great costs, err-",
+ "slate_work.page.ambit_loci.ambit_loci_cont": "While this is not as strong as... $(l:https://forum.petra-k.at/viewtopic.php?t=136)other/$ methods of giving a $(l:greatwork/spellcircles)Spell Circles/$ more $(thing)Ambit/$, I do feel like Nature takes a kinder approach to my amalgamation of free will if I use this.$(br2)This does not come cheap however, the _media cost increases with the square of the total distance extended in dust.",
+ "slate_work.page.ambit_loci.crafting": "Since the $(thing)Ambit Extender/$ operates on $(thing)Ambit/$, having a \"core\" block that can operate on Media Waves would be beneficial. As well, having nearlyR $(l:greatwork/quenching_allays)Pure Media/$ would also be required for this construction.",
+
+ "slate_work.entry.speed_loci": "Wave Regulators",
"slate_work.page.speed_loci.speed_loci": "As I begin to explore the uses of the $(l:greatwork/spellcircles)Great Work/$, I find my self needing more control over these fascinating possibilities. So I have created the $(thing)Wave Regulator/$; what this does is it pops a number from the stack, and attempts to set the \"speed\" of the wave. More specifically, how many 20ths of a second the wave should wait before going to the next slate.",
"slate_work.page.speed_loci.speed_loci_cont": "This system does have some limitations however. For one, it cannot set the speed to be faster than the wave could possibly move, doing nothing if I try to set the speed higher. Explained, it can only set the time to wait to any number above or equal the circles default acquired speed, or back to its regular speed. To do this, the $(thing)Wave Regulator/$ needs to pop a 0 from the stack, and it gives the $(l:greatwork/spellcircles)Spell Circle/$ full control of the $(thing)media wave/$ again.",
+ "slate_work.page.speed_loci.crafting": "$(thing)Wave Regulators/$ are odd in their construction compared to the rest of my... $(o)Gifted/$ visions. All they require is a $(l:greatwork/quenching_allays)scrap of Media/$ with some writhing will still left in it... how it must be in pain-- and some slate to make it compatible with the $(l:greatwork/spellcircles)Circle/$.",
+
+ "slate_work.entry.crafting_loci": "Patterned Assemblers",
+ "slate_work.page.crafting_loci.crafting_loci": "Oh how my hands $(o)Ache/$ and $(o)Buzz/$ from countless hours of slaving over a $(item)Crafting Table/$... luckily these days are over. The $(thing)Patterned Assembler/$ solves these pains and problems. $(br2)$(o)Items ever deeper in items, I cant stop crafting, I cant stop looking; more items must be crafted and automated. $(b)NOW/$.",
+ "slate_work.page.crafting_loci.crafting_loci_cont": "Precisely what the $(thing)Patterned Assembler/$ does is it attempts to craft whatever item is set within, pulling from activated $(l:greatwork/spellcircles)Storage Vessels/$, and placing the resulting item(s) back into the Vessels. This is triggered when the $(thing)Assembler/$ is activated with a $(l:greatwork/spellcircles)Spell Circle/$. The recipe can be set by hand, or via a $(l:patterns/storage_loci#slate_work:set_craft)Spell/$. If it can craft the inscribed item, it returns a True to the stack and crafts the item, else it does not craft the item (not enough ingredients, no recipe, etc) and returns a False.",
+ "slate_work.page.crafting_loci.crafting": "The $(thing)Patterned Assembler/$ requires the mind of a villager well adapted to paging through tomes and texts; it seems like the $(thing)Librarian/$ is perfect for this.",
+
+ "slate_work.entry.macro_loci": "Spell Imprinter",
+ "slate_work.page.macro_loci.macro_loci": "During my travels I have heard mutterances about things called \"macros,\" patterns that represent larger hexes (I believe these to be linked to a possible $(l:greatwork/akashiclib)Akashic Library/$?). Nonetheless, I am able to recreate these \"macros\" with Spell Circles using the $(thing)Spell Imprinter/$, and a _Hex written inside of a focus placed on top of the Imprinter.",
+ "slate_work.page.macro_loci.macro_loci_cont": "When this is activated by a $(l:greatwork/spellcircles)Spell Circle/$, it binds the$(br)currently set pattern to the _Hex stored within the focus (which can be set via a $(l:patterns/storage_loci#slate_work:set_macro)spell/$). Thus whenever the pattern is inscribed into slate, and activated; it instead runs the _Hex rather than the written pattern. Though, the implications of this are horrifying, rewriting the definition of a $(o)spell/$. A thing that is deeply intertwined with the world itself, does that mean I, could be rewritten; changed by a higher force? No. N$(k)AAAAA!/$",
+ "slate_work.page.macro_loci.craft": "Despite the horrors this possibly ascertains... this is still an advantageous block to obtain. I believe a Weaponsmith villager would be the best fit. This is due to their adeptness at reworking broken weapons to new, sharper instruments.",
+
+ "slate_work.entry.slate_work_pigments": "Fanciful Pigments",
+ "slate_work.page.slate_work_pigments.slate_work_pigments": "Just as my staves have evolved, so too must my pigments. These may not gift any glorious or grand amenities or effects, but all their boons are purely visual. $(br2)Additionally, those who know of these pigments, will now know of my $(o)Awakening/$.",
+ "slate_work.page.slate_work_pigments.allay": "Since my... $(o)Visions/$, I have awoken to see the true form of Allays, nothing more than a scrap of _media. Perhaps this scrap of _media could be turned into a picture perfect pigment?",
+
+ "slate_work.entry.slate_reflection": "Slate Reflections",
+ "slate_work.page.storage_loci.wave_position": "Adds the current position of the $(thing)Media Wave/$ to the top of the stack.",
+ "slate_work.page.storage_loci.wave_normal": "Adds the current facing of the $(thing)Media Wave/$ to the top of the stack. If the current block does not have a facing, it returns a vector of [0,0,0].",
+ "slate_work.page.storage_loci.wave_speed": "Adds the current speed of the $(thing)Media Wave/$ to the top of the stack. This is measured in how many 20ths of a second the $(thing)Media Wave/$ waits until going to the next Slate.",
+ "slate_work.page.storage_loci.media_reflection": "Adds the current amount of _Media in the $(thing)Impetus/$ to the stack, in units of dust.",
"Mishaps:": "",
- "hexcasting.mishap.circle.no_vessels_ran": "At %s did not find any activated Vessels",
+ "hexcasting.mishap.circle.no_storage_loci_ran": "At %s did not find any activated Vessels",
"hexcasting.mishap.circle.media_costs": "At %s required more Media than what the impetus held",
+ "hexcasting.mishap.circle.readable": "At %s required a List in a Focus, but did not get that",
+
+ "hexcasting.mishap.no_storage_loci_ran": "Did not find any activated Vessels",
+ "hexcasting.mishap.list_length": "Required a list with %s items, but got %s items",
+ "hexcasting.mishap.wrong_block": "Required a(n) %s at %s, but found %s",
+ "hexcasting.mishap.needed_focus": "Required a focus at %s, but did find that",
- "hexcasting.mishap.no_vessels_ran": "Did not find any activated Vessels"
+ "Scrying Lenses:": "",
+ "slate_work.scrying.macro.top": "Pattern: ",
+ "slate_work.scrying.macro.error": "Could not display Iota(s)"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
index 0ee967736486..a954bab56f57 100644
--- a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
+++ b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
@@ -1,36 +1,91 @@
{
- "block.slate_work.storage_slate": "存储容具",
- "block.slate_work.ambit_extender": "范围扩展器",
- "block.slate_work.crafting_slate": "样板组装器",
+ "itemGroup.slate_work": "石板工程",
+
+ "block.slate_work.storage_loci": "存储容具",
+ "block.slate_work.ambit_loci": "范围扩展器",
+ "block.slate_work.crafting_loci": "样板组装器",
"block.slate_work.speed_loci": "波速调节器",
+ "block.slate_work.macro_loci": "法术刻印器",
- "Patterns:":"",
+ "Patterns:": "",
"hexcasting.action.slate_work:get_storage": "获取容具",
"hexcasting.action.slate_work:check_item": "检查物品",
"hexcasting.action.slate_work:store_item": "容纳物品",
"hexcasting.action.slate_work:get_item": "唤回物品",
+ "hexcasting.action.slate_work:sort_items": "重整物品",
+
+ "hexcasting.action.slate_work:set_craft": "设置配方",
+ "hexcasting.action.slate_work:set_macro": "绑定宏",
+
+ "hexcasting.action.slate_work:wave_position": "波位之精思",
+ "hexcasting.action.slate_work:wave_normal": "波向之精思",
+ "hexcasting.action.slate_work:wave_speed": "波速之精思",
+ "hexcasting.action.slate_work:media_reflection": "法术环媒质之精思",
+
+ "Items:": "",
+ "item.slate_work.allay_pigment": "淬灵染色剂",
"Entries:": "",
- "slate_work.entry.vessels": "存储容具",
- "slate_work.page.vessels.1": "$(thing)容具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。",
- "slate_work.page.vessels.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)容具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储容具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。",
- "slate_work.page.vessels.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)容具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)容具/$。",
- "slate_work.page.vessels.store_item": "向$(thing)容具/$存入物品比取出容易。此图案会接受一个物品实体,并将其存入激活的$(thing)存储容具/$。",
- "slate_work.page.vessels.get_item": "此图案接受一个$(hex)咒术/$,并对所存储的所有$(l:patterns/scrying/item)物品组/$运行。运行该$(hex)咒术/$后,图案需要一个 $(thing)False/$ 或 $(thing)True/$,一个$(thing)向量/$(物品输出位置),和一个$(thing)整数/$(物品数量)。",
- "slate_work.page.vessels.get_item_cont": "继续解释说明。和第二页中所说的一样,它会从栈中复制 iota。栈顶为 [位置, 数量, 类型],此时法术会运行接受$(l:patterns/scrying/item)物品组/$类型的$(hex)咒术/$,该$(hex)咒术/$会用类型进行$(l:patterns/logic#hexcasting:equals)相等判断/$。这之后,图案会在所给位置处返还所给数量个该类型物品的物品实体。$(br)需要注意,这一“搜索”在找到匹配项后不会提前结束。",
- "slate_work.page.vessels.check_item": "检查物品的功能和唤回物品类似。但它只需要“内部栈”上有一个布尔值。如果该布尔值为 True,则法术返回 True。",
-
- "slate_work.entry.ambit_extenders": "范围扩展器",
- "slate_work.page.ambit_extender.ambit_extender": "范围扩展器能解$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$之忧。它会移除栈顶向量,并据此扩展影响范围(负向量会向负方向扩展法术环影响范围)。$(br2)$(br2)$(o)范围越大,消耗越大,呃……",
- "slate_work.page.ambit_extender.ambit_extender_cont": "虽然它不及……$(l:https://forum.petra-k.at/viewtopic.php?t=136)其他/$扩展$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$的方法强大,但我确实觉得这种方法可以让自然对我的自由意志友善些。$(br2)这种方法并不便宜,$(media)媒质/$的耗量随改变距离的平方变化。如果传入 [0, 5, 0] 向量,它即会将$(l:greatwork/spellcircles)法术环/$的$(thing)影响范围/$向上扩展 5 格。相当于消耗 25 个紫水晶碎片来向上方多铺 5 块“石板”。",
-
- "slate_work.entry.wave_regulator": "波速调节器",
+ "slate_work.entry.storage_loci": "石板工程环核图案",
+ "slate_work.page.storage_loci.1": "$(thing)容具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。",
+ "slate_work.page.storage_loci.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)容具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储容具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。",
+ "slate_work.page.storage_loci.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)容具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)容具/$。",
+ "slate_work.page.storage_loci.store_item": "向$(thing)容具/$存入物品比取出容易。此图案会接受一个物品实体,并将其存入激活的$(thing)存储容具/$。每有一个激活的$(thing)容具/$消耗 1/8 个紫水晶粉。",
+ "slate_work.page.storage_loci.get_item": "此图案接受一个$(hex)咒术/$,并对所存储的所有$(l:patterns/scrying/item)物品组/$运行。运行该$(hex)咒术/$后,图案还需要栈中按顺序存在一个$(thing)整数/$,一个$(thing)向量/$和一个$(thing)布尔值/$。",
+ "slate_work.page.storage_loci.get_item_cont": "继续解释说明。它会对$(thing)容具/$中存储的所有物品执行给定$(hex)咒术/$。该$(hex)咒术/$必须从栈顶至栈底依次返回 False(此时省略向量和数)或 True,一个向量,一个数。向量代表输出物品的位置(需在影响范围内),数代表应取出的数量。$(br2)每有一个激活的$(thing)容具/$消耗 1/4 个紫水晶粉。",
+ "slate_work.page.storage_loci.check_item": "检查物品的功能和唤回物品类似。但它只需要“内部栈”上有一个布尔值。如果所有布尔值中有一个为 True,则法术结束并返回 True。",
+ "slate_work.page.storage_loci.sort_items": "在某些情况下,$(thing)容具/$会变得杂乱无章,同种物品被分散到不同的容具里去。这条好用的法术就可以整理它们,但它有代价:需消耗 5 个$(l:items/amethyst)充能紫水晶/$。",
+ "slate_work.page.storage_loci.set_craft": "为$(l:greatwork/crafting_loci)样板组装器/$设置合成配方。需接受包含 Null、物品、物品变种的列表,然后将此列表应用于目标$(l:greatwork/crafting_loci)组装器/$。",
+ "slate_work.page.storage_loci.set_craft_cont": "需要注意,$(l:greatwork/crafting_loci)样板组装器/$会将所给列表“格式化”为从左至右再从上至下的配方。自然,Null 代表配方中的空位。最后提一句,法术会在列表长于 9 个元素时招致事故,少于或等于 9 个时则不会。$(br2)在$(l:greatwork/spellcircles)法术环/$外施放不会招致事故。消耗极少量$(media)媒质/$。",
+ "slate_work.page.storage_loci.set_macro": "此图案会为目标位置处的$(l:greatwork/macro_loci)法术刻印器/$绑定一个图案和一个$(hex)咒术/$。$(br2)在$(l:greatwork/spellcircles)法术环/$外施放不会招致事故。消耗极少量$(media)媒质/$。",
+
+ "slate_work.entry.storage_loci_block": "存储容具",
+ "slate_work.page.storage_loci_block.storage_loci": "在忍那些到处都是木刺的笨重$(o)箱子/$到$(o)快忍不下去/$之后……我总算发现了完美的存储方法——$(thing)存储容具/$。$(br)虽然我已经抛弃了一部分意识垃圾,但还不足以直接操作$(thing)存储容具/$。不过,$(l:greatwork/spellcircles)法术环/$就是处理这种新存储方法的好工具。",
+ "slate_work.page.storage_loci_block.storage_loci_cont": "虽然一个$(thing)存储容具/$只能存储 16 “类”物品(就和箱子只有 27 个槽位差不多),但它们却能无视标准堆叠上限,换言之,每个槽里都能存下近乎无限的物品!$(br2)而且,在$(l:greatwork/spellcircles)法术环/$的高密度媒质波激活容具之后,$(l:greatwork/spellcircles)它/$就将能够读取和拿出$(thing)存储容具/$里的物品;激活的越多,能操作的就越多。我在$(l:patterns/storage_loci)这里/$记录了进行这种操作所需的法术。",
+ "slate_work.page.storage_loci_block.dropping": "需要格外注意的是,$(thing)存储容具/$遭到破坏时不会喷出其中的物品,而是会将物品小心打包进掉落的方块(和$(item)潜影盒/$很像)。$(br2)$(br2)$(o)“噢!是时候拿点物品了!”$(br)[箱子:开启]$(br)[箱子:关闭]$(br)[箱子:开启]$(br)[箱子:关闭]$(br)[箱子:开启]$(br)[箱子:关闭]",
+ "slate_work.page.storage_loci_block.crafting": "$(thing)存储容具/$需要能够潜入深渊,还能根据少量提示取回物品的意识。渔夫村民就很适合。",
+
+ "slate_work.entry.ambit_loci": "范围扩展器",
+ "slate_work.page.ambit_loci.ambit_loci": "范围扩展器能解$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$之忧。它会移除栈顶向量,并据此扩展影响范围(负向量会向负方向扩展法术环影响范围)。$(br2)$(br2)$(o)范围越大,消耗越大,呃……",
+ "slate_work.page.ambit_loci.ambit_extender_cont": "虽然它不及……$(l:https://forum.petra-k.at/viewtopic.php?t=136)其他/$扩展$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$的方法强大,但我确实觉得这种方法可以让自然对我的自由意志友善些。$(br2)这种方法并不便宜,$(media)媒质/$的耗量随改变距离的平方变化。",
+ "slate_work.page.ambit_loci.crafting": "因为$(thing)范围扩展器/$修改的是$(thing)影响范围/$,配备能操纵媒质波的“核心”应为最佳。自然,创造这种方块需要的是$(l:greatwork/quenching_allays)纯净的媒质/$。",
+
+ "slate_work.entry.speed_loci": "波速调节器",
"slate_work.page.speed_loci.speed_loci": "自从我开始探索$(l:greatwork/spellcircles)卓伟之作/$的用途之时,就总有更精细控制这种新事物的需要。因此,我制造了$(thing)波速调节器/$。它会从栈中弹出一个数,并用其设置媒质波的“速度”。更准确地说,是媒质波在流入下一块石板前应等待多少个 1/20 秒。",
"slate_work.page.speed_loci.speed_loci_cont": "这一体系的确有其局限。例如,速度无法超出媒质波移速的上线,试图这么做不会产生任何效果。换言之,它只能将等待时间设为大于等于法术环的最短等待时间,或是重设为正常速度。后者需要$(thing)波速调节器/$弹出 0,从而将$(thing)媒质波/$的控制权交还给$(l:greatwork/spellcircles)法术环/$。",
+ "slate_work.page.speed_loci.crafting": "和我……$(o)受赐福/$的视野中看到的其他东西不一样,$(thing)波速调节器/$显得很奇怪。它需要的只是$(l:greatwork/quenching_allays)媒质的碎片/$,但其中须留有挣扎的痕迹……不管怎么说它必须仍在痛苦之中——和几块石板,方便嵌入$(l:greatwork/spellcircles)法术环/$。",
+
+ "slate_work.entry.crafting_loci": "样板组装器",
+ "slate_work.page.crafting_loci.crafting_loci": "我的双手在$(item)工作台/$上不断挥动,带来的只是$(o)疼痛/$和$(o)麻木/$……好在这些都过去了。$(thing)样板组装器/$就是止痛剂。$(br2)$(o)物品里埋着物品,合成到停不下来,看到停不下来,合成、自动化、更多物品。$(b)现在就要/$。",
+ "slate_work.page.crafting_loci.crafting_loci_cont": "$(thing)样板组装器/$的真正原理是:从激活的$(l:greatwork/spellcircles)存储容具/$中取出物品,按设定合成,再把产物存回容具。$(thing)组装器/$被$(l:greatwork/spellcircles)法术环/$触发时即会执行上述操作。可以手工设置配方,也可使用$(l:patterns/storage_loci#slate_work:set_craft)法术/$。如果它可以合成给定物品,则它会向栈返回 True,并合成物品;否则(原材料不够,配方没指定等)返回 False,且不会合成。",
+ "slate_work.page.crafting_loci.crafting": "$(thing)样板组装器/$需要熟络典籍和文章,能一目十行的村民的意识。完美之选是$(thing)图书管理员/$。",
+
+ "slate_work.entry.macro_loci": "法术刻印器",
+ "slate_work.page.macro_loci.macro_loci": "我在旅行中从其他人的交谈里听到了某种叫“宏”的东西,也即代表咒术的图案(我认为需要和$(l:greatwork/akashiclib)阿卡夏图书馆/$配合?)。即便如此,我也可以在法术环上重现“宏”。需要用到$(thing)法术刻印器/$,还需在刻印器上放置写有$(hex)咒术/$的核心。",
+ "slate_work.page.macro_loci.macro_loci_cont": "$(l:greatwork/spellcircles)法术环/$激活刻印器后,它会将当前图案与核心内的$(hex)咒术/$绑定(也可通过$(l:patterns/storage_loci#slate_work:set_macro)法术/$设置)。每当画有该图案的石板被激活,即会执行所给$(hex)咒术/$,而非该图案。这实在是细思恐极;重写$(o)法术/$的定义,重写与世界本身紧密相关的事物。那么,我是不是也会,被更高级的存在改写?不。不$(k)啊啊啊啊啊!/$",
+ "slate_work.page.macro_loci.craft": "虽然这种做法可能会带来恐惧……但还是很好用。我认为武器匠是最好的选择,他们的专长就是磨砺和翻新损坏的武器。",
+
+ "slate_work.entry.slate_work_pigments": "华丽染色剂",
+ "slate_work.page.slate_work_pigments.slate_work_pigments": "我的法杖蜕变了,我的染色剂也必将蜕变。它们不会带来什么荣耀,也不会招致可怖的事故;它们带来的祝福只存在于视觉。$(br2)而且,知晓这些染色剂的人,即会知晓我的$(o)觉醒/$。",
+ "slate_work.page.slate_work_pigments.allay": "自我的……$(o)视野/$蜕变后,我发觉了悦灵的真实面貌——$(media)媒质/$碎片。也许这块$(media)媒质/$碎片可以转化成完美而华丽的染色剂?",
+
+ "slate_work.entry.slate_reflection": "石板精思操作",
+ "slate_work.page.storage_loci.wave_position": "将$(thing)媒质波/$的当前位置压入栈顶。",
+ "slate_work.page.storage_loci.wave_normal": "将$(thing)媒质波/$的当前朝向压入栈顶。如果当前方块没有朝向,则返回 (0, 0, 0)。",
+ "slate_work.page.storage_loci.wave_speed": "将$(thing)媒质波/$的当前速度压入栈顶。测量方法是:在流入下一块石板前,$(thing)媒质波/$需等待多少个 1/20 秒。",
+ "slate_work.page.storage_loci.media_reflection": "将$(thing)促动石/$的当前$(media)媒质/$量压入栈顶,以紫水晶粉计。",
"Mishaps:": "",
- "hexcasting.mishap.circle.no_vessels_ran": "%s处未找到已激活的容具",
+ "hexcasting.mishap.circle.no_storage_loci_ran": "%s处未找到已激活的容具",
"hexcasting.mishap.circle.media_costs": "%s处需要的媒质超出了促动石当前的存储量",
+ "hexcasting.mishap.circle.readable": "%s处需要核心中存有列表,而实际没有",
+
+ "hexcasting.mishap.no_storage_loci_ran": "未找到已激活的容具",
+ "hexcasting.mishap.list_length": "需要包含%s个元素的列表,而实际包含了%s个",
+ "hexcasting.mishap.wrong_block": "需要%2$s处存在%1$s,而实际为%3$s",
+ "hexcasting.mishap.needed_focus": "需要%s处存在核心,而实际没有",
- "hexcasting.mishap.no_vessels_ran": "未找到已激活的容具"
+ "Scrying Lenses:": "",
+ "slate_work.scrying.macro.top": "图案:",
+ "slate_work.scrying.macro.error": "无法显示iota"
}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/en_us.json
similarity index 100%
rename from projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/en_us.json
rename to projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/en_us.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/zh_cn.json
similarity index 100%
rename from projects/1.20-fabric/assets/1UNKNOWN/hexportation/lang/zh_cn.json
rename to projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/zh_cn.json
From 0468e36a210502775a86d8e726a5e693c42a5e1b Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Thu, 24 Jul 2025 20:02:18 +0800
Subject: [PATCH 58/78] =?UTF-8?q?Caduceus=20transfer=EF=BC=9A=E6=87=92?=
=?UTF-8?q?=E5=BE=97=E5=BC=84commit=E6=90=AC=E8=BF=81=E4=BA=86=E5=B0=B1?=
=?UTF-8?q?=E7=9B=B4=E6=8E=A5=E6=90=AC=E6=96=87=E4=BB=B6=EF=BC=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/caduceus/caduceus/README.md | 1 -
.../caduceus/lang/en_us.flatten.json5 | 118 ------------------
.../caduceus/caduceus/packer-policy.json | 6 -
.../1.20/assets/caduceus/caduceus/README.md | 16 ---
.../caduceus/lang/en_us.flatten.json5 | 118 ------------------
.../caduceus/lang/zh_cn.flatten.json5 | 118 ------------------
6 files changed, 377 deletions(-)
delete mode 100644 projects/1.20-fabric/assets/caduceus/caduceus/README.md
delete mode 100644 projects/1.20-fabric/assets/caduceus/caduceus/lang/en_us.flatten.json5
delete mode 100644 projects/1.20-fabric/assets/caduceus/caduceus/packer-policy.json
delete mode 100644 projects/1.20/assets/caduceus/caduceus/README.md
delete mode 100644 projects/1.20/assets/caduceus/caduceus/lang/en_us.flatten.json5
delete mode 100644 projects/1.20/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
diff --git a/projects/1.20-fabric/assets/caduceus/caduceus/README.md b/projects/1.20-fabric/assets/caduceus/caduceus/README.md
deleted file mode 100644
index ab77acfca7f1..000000000000
--- a/projects/1.20-fabric/assets/caduceus/caduceus/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/caduceus/caduceus)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/caduceus/caduceus/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/caduceus/caduceus/lang/en_us.flatten.json5
deleted file mode 100644
index 435487857412..000000000000
--- a/projects/1.20-fabric/assets/caduceus/caduceus/lang/en_us.flatten.json5
+++ /dev/null
@@ -1,118 +0,0 @@
-{
- caduceus: {
- book: {
- basics: {
- caduceus_changes: {
- "": "Caduceus Changes",
- "1": "I have noticed some changes to the behavior of certain $(l:patterns/meta#hexcasting:eval/cc)meta-evaluation techniques/$ as of late.$(br2)\
- Jump iotas are no longer entirely opaque to me - I can now see the $(l:patterns/jump_manipulation)components/$ that make them up, although I have not yet managed to isolate one.",
- "2": "Additionally, it seems $(l:casting/mishaps)Too Many Iotas/$ mishaps have become more common when working with Jump iotas. I should take care not to delve too deep.",
- },
- },
- casting: {
- continuations: {
- "": "A Primer On Jumps",
- "1": "As with $(l:casting/vectors)vectors/$ for more mundane tasks, it seems I will need a deeper understanding of Jump iotas (also called continuations) if I am to make the most of my new discoveries. I have collected some \"light reading material\" on the topic.",
- "2": {
- text: "First, an encyclopedia entry on the concept of \"first-class continuations\", the abstract concept embodied by Jump iotas. It also discusses the \"call/cc\" operator, which is roughly equivalent to $(l:patterns/meta#hexcasting:eval/cc)$(action)Iris' Gambit/$.",
- link_text: "Wikipedia",
- },
- "3": {
- text: "Next, a blog post on \"delimited continuations\", with some concrete examples that may be feasible to rewrite as _Hexes for practice. I may find this useful if I am having trouble understanding $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ and $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Arke's Gambit/$.",
- link_text: "Blog Post",
- },
- "4": {
- text: "Finally, if I can overlook a bit of fourth-wall breaking, this document gives an overview of the specific techniques employed by Nature to interpret my _Hexes.",
- link_text: "How Casting Works",
- },
- },
- caduceus_mishaps: {
- "": "Caduceus Mishaps",
- "1": "This section documents the mishaps that can occur when manipulating Jump iotas and using delimited jumps.",
- no_prompt: {
- title: "Uncontained Arke",
- text: "I attempted to draw $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Arke's Gambit/$ without wrapping it in $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$.",
- },
- },
- },
- patterns: {
- delimcc: {
- "": "Delimited Jumps",
- "eval/prompt": "Cast a pattern or list of patterns from the stack exactly like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, except that anything outside of this cast will not be captured by an $(l:patterns/delimcc#caduceus:eval/control)$(action)Arke's Gambit/$ within it.",
- "eval/control": {
- "1": "Cast a pattern or list of patterns from the stack similarly to $(l:patterns/meta#hexcasting:eval/cc)$(action)Iris' Gambit/$. Must be drawn within $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$.",
- "2": "All of the patterns that would have been drawn between the end of the pattern list and the end of the enclosing $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ are $(italic)moved/$ into a Call iota, which is pushed to the stack instead of a Jump iota.$(br2)\
- When the Call iota is executed, the captured patterns will be cast as if by $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$. If the Call iota is not executed, the rest of the patterns within the enclosing $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ will be skipped.",
- },
- },
- jump_manipulation: {
- "": "Jump Manipulation",
- "1": "Just like my _Hexes interact with the $(l:casting/stack)stack/$, Nature uses a stack of its own (made up of \"frames\") when casting my _Hexes. Jump iotas contain a snapshot of this stack at a particular moment in time, and I can use the patterns in this section to deconstruct and rearrange that snapshot.$(br)\
- Unfortunately, despite their similarity to Jump iotas, it seems these patterns do $(italic)not/$ work on Call iotas.",
- add: "Remove the Jump iota at the top of the stack, then add all its frames to the bottom of the Jump iota at the top of the stack.",
- abs: "Remove the Jump iota at the top of the stack, then push the number of frames within it to the stack.",
- splat: "Remove the Jump iota at the top of the stack, then, for each of its frames, push a new Jump iota containing only that frame to the stack.",
- construct: "Remove the Jump iota at the top of the stack, then add its top frame to the top of the Jump iota at the top of the stack.",
- deconstruct: "Remove the top frame from the Jump iota at the top of the stack, then push a new Jump iota containing only that frame to the stack.",
- jump_tags: {
- title: "Jump Tags",
- text: "The $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$ is not the only place that I can store information within a _Hex. In fact, I am able to hide iotas within the very concept of evaluation. I call this technique $(thing)jump tags/$; some other texts refer to it as \"continuation marks\".$(br2)\
- There is one notable limitation of $(thing)jump tags/$, however: they can only hold a single iota at a time. Unlike the $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, even lists are too much."
- },
- "read/mark/local": "Copy the iota stored in the $(thing)jump tag/$ of the current evaluation and add it to the stack.",
- "read/mark/iota": "Like $(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)Ewer's Reflection/$, but the iota is read out of the $(thing)jump tag/$ of the top frame in a Jump iota.",
- "write/mark/local": {
- "1": "Remove the top iota from the stack, and write it to the $(thing)jump tag/$ of the current evaluation.$(br)\
- As with $(l:patterns/readwrite#hexcasting:write/entity)$(action)Chronicler's Gambit/$, I cannot write my own Name using this spell.",
- "2": "I should be careful if using $(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)Ewer's Reflection/$ or $(l:patterns/jump_manipulation#caduceus:write/mark/local)$(action)Ewer's Gambit/$ at the very end of an invocation. The tag that it reads or writes may not be the one I expect.",
- },
- },
- },
- },
-
- tooltip: {
- continuation: {
- "": "[Jump -> (%s)]",
- delimited: "[Call -> (%s)]",
-
- frame: {
- mark: {
- inline: "%s*",
- hover: "Contains: %s",
- },
-
- "caduceus:": {
- prompt: "Prompt",
- },
- "hexcasting:": {
- evaluate: "Evaluate",
- foreach: "ForEach",
- end: "FinishEval",
- },
- },
- },
- },
- },
-
- hexcasting: {
- action: {
- "caduceus:": {
- "eval/prompt": "Thetis' Gambit",
- "eval/control": "Arke's Gambit",
- "read/mark/local": "Ewer's Reflection",
- "read/mark/iota": "Ewer's Purification",
- "write/mark/local": "Ewer's Gambit",
- },
- },
-
- mishap: {
- no_prompt: "Did not first use Thetis' Gambit",
- invalid_value: {
- class: {
- continuation: "a jump",
- continuation_mark: "a valid jump tag",
- },
- },
- },
- },
-}
diff --git a/projects/1.20-fabric/assets/caduceus/caduceus/packer-policy.json b/projects/1.20-fabric/assets/caduceus/caduceus/packer-policy.json
deleted file mode 100644
index 8c3208d49b35..000000000000
--- a/projects/1.20-fabric/assets/caduceus/caduceus/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/caduceus/caduceus"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20/assets/caduceus/caduceus/README.md b/projects/1.20/assets/caduceus/caduceus/README.md
deleted file mode 100644
index 701de7b97d70..000000000000
--- a/projects/1.20/assets/caduceus/caduceus/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/caduceus/caduceus)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/caduceus/caduceus)
\ No newline at end of file
diff --git a/projects/1.20/assets/caduceus/caduceus/lang/en_us.flatten.json5 b/projects/1.20/assets/caduceus/caduceus/lang/en_us.flatten.json5
deleted file mode 100644
index 435487857412..000000000000
--- a/projects/1.20/assets/caduceus/caduceus/lang/en_us.flatten.json5
+++ /dev/null
@@ -1,118 +0,0 @@
-{
- caduceus: {
- book: {
- basics: {
- caduceus_changes: {
- "": "Caduceus Changes",
- "1": "I have noticed some changes to the behavior of certain $(l:patterns/meta#hexcasting:eval/cc)meta-evaluation techniques/$ as of late.$(br2)\
- Jump iotas are no longer entirely opaque to me - I can now see the $(l:patterns/jump_manipulation)components/$ that make them up, although I have not yet managed to isolate one.",
- "2": "Additionally, it seems $(l:casting/mishaps)Too Many Iotas/$ mishaps have become more common when working with Jump iotas. I should take care not to delve too deep.",
- },
- },
- casting: {
- continuations: {
- "": "A Primer On Jumps",
- "1": "As with $(l:casting/vectors)vectors/$ for more mundane tasks, it seems I will need a deeper understanding of Jump iotas (also called continuations) if I am to make the most of my new discoveries. I have collected some \"light reading material\" on the topic.",
- "2": {
- text: "First, an encyclopedia entry on the concept of \"first-class continuations\", the abstract concept embodied by Jump iotas. It also discusses the \"call/cc\" operator, which is roughly equivalent to $(l:patterns/meta#hexcasting:eval/cc)$(action)Iris' Gambit/$.",
- link_text: "Wikipedia",
- },
- "3": {
- text: "Next, a blog post on \"delimited continuations\", with some concrete examples that may be feasible to rewrite as _Hexes for practice. I may find this useful if I am having trouble understanding $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ and $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Arke's Gambit/$.",
- link_text: "Blog Post",
- },
- "4": {
- text: "Finally, if I can overlook a bit of fourth-wall breaking, this document gives an overview of the specific techniques employed by Nature to interpret my _Hexes.",
- link_text: "How Casting Works",
- },
- },
- caduceus_mishaps: {
- "": "Caduceus Mishaps",
- "1": "This section documents the mishaps that can occur when manipulating Jump iotas and using delimited jumps.",
- no_prompt: {
- title: "Uncontained Arke",
- text: "I attempted to draw $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Arke's Gambit/$ without wrapping it in $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$.",
- },
- },
- },
- patterns: {
- delimcc: {
- "": "Delimited Jumps",
- "eval/prompt": "Cast a pattern or list of patterns from the stack exactly like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, except that anything outside of this cast will not be captured by an $(l:patterns/delimcc#caduceus:eval/control)$(action)Arke's Gambit/$ within it.",
- "eval/control": {
- "1": "Cast a pattern or list of patterns from the stack similarly to $(l:patterns/meta#hexcasting:eval/cc)$(action)Iris' Gambit/$. Must be drawn within $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$.",
- "2": "All of the patterns that would have been drawn between the end of the pattern list and the end of the enclosing $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ are $(italic)moved/$ into a Call iota, which is pushed to the stack instead of a Jump iota.$(br2)\
- When the Call iota is executed, the captured patterns will be cast as if by $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$. If the Call iota is not executed, the rest of the patterns within the enclosing $(l:patterns/delimcc#caduceus:eval/prompt)$(action)Thetis' Gambit/$ will be skipped.",
- },
- },
- jump_manipulation: {
- "": "Jump Manipulation",
- "1": "Just like my _Hexes interact with the $(l:casting/stack)stack/$, Nature uses a stack of its own (made up of \"frames\") when casting my _Hexes. Jump iotas contain a snapshot of this stack at a particular moment in time, and I can use the patterns in this section to deconstruct and rearrange that snapshot.$(br)\
- Unfortunately, despite their similarity to Jump iotas, it seems these patterns do $(italic)not/$ work on Call iotas.",
- add: "Remove the Jump iota at the top of the stack, then add all its frames to the bottom of the Jump iota at the top of the stack.",
- abs: "Remove the Jump iota at the top of the stack, then push the number of frames within it to the stack.",
- splat: "Remove the Jump iota at the top of the stack, then, for each of its frames, push a new Jump iota containing only that frame to the stack.",
- construct: "Remove the Jump iota at the top of the stack, then add its top frame to the top of the Jump iota at the top of the stack.",
- deconstruct: "Remove the top frame from the Jump iota at the top of the stack, then push a new Jump iota containing only that frame to the stack.",
- jump_tags: {
- title: "Jump Tags",
- text: "The $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$ is not the only place that I can store information within a _Hex. In fact, I am able to hide iotas within the very concept of evaluation. I call this technique $(thing)jump tags/$; some other texts refer to it as \"continuation marks\".$(br2)\
- There is one notable limitation of $(thing)jump tags/$, however: they can only hold a single iota at a time. Unlike the $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, even lists are too much."
- },
- "read/mark/local": "Copy the iota stored in the $(thing)jump tag/$ of the current evaluation and add it to the stack.",
- "read/mark/iota": "Like $(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)Ewer's Reflection/$, but the iota is read out of the $(thing)jump tag/$ of the top frame in a Jump iota.",
- "write/mark/local": {
- "1": "Remove the top iota from the stack, and write it to the $(thing)jump tag/$ of the current evaluation.$(br)\
- As with $(l:patterns/readwrite#hexcasting:write/entity)$(action)Chronicler's Gambit/$, I cannot write my own Name using this spell.",
- "2": "I should be careful if using $(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)Ewer's Reflection/$ or $(l:patterns/jump_manipulation#caduceus:write/mark/local)$(action)Ewer's Gambit/$ at the very end of an invocation. The tag that it reads or writes may not be the one I expect.",
- },
- },
- },
- },
-
- tooltip: {
- continuation: {
- "": "[Jump -> (%s)]",
- delimited: "[Call -> (%s)]",
-
- frame: {
- mark: {
- inline: "%s*",
- hover: "Contains: %s",
- },
-
- "caduceus:": {
- prompt: "Prompt",
- },
- "hexcasting:": {
- evaluate: "Evaluate",
- foreach: "ForEach",
- end: "FinishEval",
- },
- },
- },
- },
- },
-
- hexcasting: {
- action: {
- "caduceus:": {
- "eval/prompt": "Thetis' Gambit",
- "eval/control": "Arke's Gambit",
- "read/mark/local": "Ewer's Reflection",
- "read/mark/iota": "Ewer's Purification",
- "write/mark/local": "Ewer's Gambit",
- },
- },
-
- mishap: {
- no_prompt: "Did not first use Thetis' Gambit",
- invalid_value: {
- class: {
- continuation: "a jump",
- continuation_mark: "a valid jump tag",
- },
- },
- },
- },
-}
diff --git a/projects/1.20/assets/caduceus/caduceus/lang/zh_cn.flatten.json5 b/projects/1.20/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
deleted file mode 100644
index 3ff83d51ae2c..000000000000
--- a/projects/1.20/assets/caduceus/caduceus/lang/zh_cn.flatten.json5
+++ /dev/null
@@ -1,118 +0,0 @@
-{
- caduceus: {
- book: {
- basics: {
- caduceus_changes: {
- "": "Caduceus 中的改动",
- "1": "我注意到某类$(l:patterns/meta#hexcasting:eval/cc)云运行技术/$的表现在近期发生了变化。$(br2)\
- 跳转 iota 不再无法深入检验了:我现在可以看见组成它们的$(l:patterns/jump_manipulation)许多组件/$,但还没法把各组件分离出来。",
- "2": "而且,似乎使用跳转 iota 时 $(l:casting/mishaps)Iota 过多/$事故会频繁出现。小心不要陷入沉思了。",
- },
- },
- casting: {
- continuations: {
- "": "跳转入门",
- "1": "如同普通的操作需对$(l:casting/vectors)向量/$有所见地,在将我的新发现运用到极致之前,也应当更深入地了解跳转 iota(又称“续体”/“continuation”)。我收集了些有关本主题的“轻松读物”。",
- "2": {
- text: "首先是一篇百科条目,主要介绍“第一类续体”的概念;这一概念由跳转 iota 实现。条目中还讨论了“以当前续体调用”/“call/cc”运算符,它和$(l:patterns/meta#hexcasting:eval/cc)$(action)伊里斯之策略/$大致等价。",
- link_text: "维基百科",
- },
- "3": {
- text: "然后是一篇博客,主要介绍“定界续体”/“delimited continuation”,还附带了详实的示例,可用$(hex)咒术/$重写以便练习。如果觉得理解$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$和$(l:patterns/delimcc#caduceus:eval/prompt)$(action)阿尔刻之策略/$有困难,可以读读这篇博客。",
- link_text: "博客",
- },
- "4": {
- text: "最后,如果不担心在某种程度上打破第四面墙,可以阅读这篇概览文档,以了解自然解读我$(hex)咒术/$的具体方式。",
- link_text: "施法的原理",
- },
- },
- caduceus_mishaps: {
- "": "Caduceus 事故",
- "1": "本节记录了操纵跳转 iota 和使用定界跳转时会出现的事故。",
- no_prompt: {
- title: "阿尔刻未受限",
- text: "试图在$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$之外绘制$(l:patterns/delimcc#caduceus:eval/prompt)$(action)阿尔刻之策略/$。",
- },
- },
- },
- patterns: {
- delimcc: {
- "": "定界跳转",
- "eval/prompt": "运行栈中的图案或图案列表,与$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$完全一致;区别在于,其内部的$(l:patterns/delimcc#caduceus:eval/control)$(action)阿尔刻之策略/$无法获取其外部的 iota。",
- "eval/control": {
- "1": "运行栈中的图案或图案列表,与$(l:patterns/meta#hexcasting:eval/cc)$(action)伊里斯之策略/$类似。必须绘制于$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$内部。",
- "2": "将在图案列表末尾和$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$闭合之间绘制的图案会$(italic)转移/$到调用 iota 中;压入栈中的也不会是跳转 iota,而是此调用 iota。$(br2)\
- 执行到调用 iota 时,其中捕获的图案会如同对其使用$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$一样施放。如果不去执行调用 iota,即会跳过$(l:patterns/delimcc#caduceus:eval/prompt)$(action)忒提斯之策略/$闭合前剩余的图案。",
- },
- },
- jump_manipulation: {
- "": "跳转操作",
- "1": "就和我的$(hex)咒术/$能和$(l:casting/stack)栈/$交互一样,自然在处理我的$(hex)咒术/$时会使用自己的栈(由“帧”组成)。跳转 iota 中包含了该栈在某一时刻的快照,这些快照可由本节中的图案拆解和重构。$(br)\
- 可惜,虽然调用 iota 和跳转 iota 很相似,但这些图案$(italic)无法/$作用于前者。",
- add: "移除栈顶跳转 iota,再将其中所有栈帧加到此时栈顶跳转 iota 的底部。",
- abs: "移除栈顶跳转 iota,再返回其中栈帧数。",
- splat: "移除栈顶跳转 iota,再为其中各栈帧返回一个仅包含该栈帧本身的跳转 iota。",
- construct: "移除栈顶跳转 iota,再将其顶部帧加到此时栈顶跳转 iota 的顶部。",
- deconstruct: "移除栈顶跳转 iota 的顶部帧,再返回一个仅包含该栈帧本身的跳转 iota。",
- jump_tags: {
- title: "跳转标签",
- text: "$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$并不是$(hex)咒术/$中唯一用来存储信息的位置。其实,我可以直接把 iota 藏到运行这一概念中去。我把这种技术叫作$(thing)跳转标签/$,部分其他文献则称其“续体标记”。$(br2)\
- 不过,$(thing)跳转标签/$有一项局限:它们同一时刻只能持有单个 iota。和$(l:patterns/readwrite#hexcasting:local)$(thing)渡鸦之思/$不一样的是,它们就连列表都存不下。"
- },
- "read/mark/local": "复制当前运行所对应的$(thing)跳转标签/$中存储的 iota,并压入栈顶。",
- "read/mark/iota": "和$(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)壶罐之精思/$类似,但会从跳转 iota 的顶部帧所对应的$(thing)跳转标签/$中读出。",
- "write/mark/local": {
- "1": "移除栈顶 iota,将其写入当前运行所对应的$(thing)跳转标签/$。$(br)\
- 和$(l:patterns/readwrite#hexcasting:write/entity)$(action)编年史家之策略/$一样,不可向其写入真名。",
- "2": "在调用结尾使用$(l:patterns/jump_manipulation#caduceus:read/mark/local)$(action)壶罐之精思/$或$(l:patterns/jump_manipulation#caduceus:write/mark/local)$(action)壶罐之策略/$时应当小心。它们读取或写入的标签并不一定符合预期。",
- },
- },
- },
- },
-
- tooltip: {
- continuation: {
- "": "[Jump -> (%s)]",
- delimited: "[Call -> (%s)]",
-
- frame: {
- mark: {
- inline: "%s*",
- hover: "包含:%s",
- },
-
- "caduceus:": {
- prompt: "Prompt",
- },
- "hexcasting:": {
- evaluate: "Evaluate",
- foreach: "ForEach",
- end: "FinishEval",
- },
- },
- },
- },
- },
-
- hexcasting: {
- action: {
- "caduceus:": {
- "eval/prompt": "忒提斯之策略",
- "eval/control": "阿尔刻之策略",
- "read/mark/local": "壶罐之精思",
- "read/mark/iota": "壶罐之纯化",
- "write/mark/local": "壶罐之策略",
- },
- },
-
- mishap: {
- no_prompt: "没有先使用忒提斯之策略",
- invalid_value: {
- class: {
- continuation: "一个跳转",
- continuation_mark: "一个有效的跳转标签",
- },
- },
- },
- },
-}
From d297232836d17f0f2c1f6c5abfc65a391a6b9ed0 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Thu, 24 Jul 2025 20:22:13 +0800
Subject: [PATCH 59/78] Ephemera Oneironaut transfer
---
.../assets/ephemera/ephemera/lang/en_us.json | 144 -------
.../assets/ephemera/ephemera/lang/zh_cn.json | 144 -------
.../oneironaut/oneironaut/lang/en_us.json | 355 ------------------
.../oneironaut/oneironaut/lang/zh_cn.json | 355 ------------------
.../assets/ephemera/ephemera/README.md | 1 -
.../assets/ephemera/ephemera/lang/en_us.json | 189 ----------
.../ephemera/ephemera/packer-policy.json | 6 -
.../assets/oneironaut/oneironaut/README.md | 1 -
.../oneironaut/oneironaut/lang/en_us.json | 336 -----------------
.../oneironaut/oneironaut/packer-policy.json | 6 -
.../assets/ephemera/ephemera/lang/en_us.json | 189 ----------
.../assets/ephemera/ephemera/lang/zh_cn.json | 189 ----------
.../assets/oneironaut/oneironaut/README.md | 16 -
.../oneironaut/oneironaut/lang/en_us.json | 336 -----------------
.../oneironaut/oneironaut/lang/zh_cn.json | 336 -----------------
15 files changed, 2603 deletions(-)
delete mode 100644 projects/1.19/assets/ephemera/ephemera/lang/en_us.json
delete mode 100644 projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
delete mode 100644 projects/1.19/assets/oneironaut/oneironaut/lang/en_us.json
delete mode 100644 projects/1.19/assets/oneironaut/oneironaut/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/ephemera/ephemera/README.md
delete mode 100644 projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
delete mode 100644 projects/1.20-fabric/assets/oneironaut/oneironaut/README.md
delete mode 100644 projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/oneironaut/oneironaut/packer-policy.json
delete mode 100644 projects/1.20/assets/ephemera/ephemera/lang/en_us.json
delete mode 100644 projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
delete mode 100644 projects/1.20/assets/oneironaut/oneironaut/README.md
delete mode 100644 projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
delete mode 100644 projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
diff --git a/projects/1.19/assets/ephemera/ephemera/lang/en_us.json b/projects/1.19/assets/ephemera/ephemera/lang/en_us.json
deleted file mode 100644
index 6016108e778c..000000000000
--- a/projects/1.19/assets/ephemera/ephemera/lang/en_us.json
+++ /dev/null
@@ -1,144 +0,0 @@
-{
- "itemGroup.ephemera.ephemera": "Ephemera",
-
- "item.ephemera.media_helmet": "Hexformed Helmet",
- "item.ephemera.media_chestplate": "Hexformed Chestplate",
- "item.ephemera.media_leggings": "Hexformed Leggings",
- "item.ephemera.media_boots": "Hexformed Boots",
-
- "block.ephemera.relay_tp_detector": "Network Gateway Probe",
- "block.ephemera.relay_index": "Network Routing Index",
- "block.ephemera.sneakyslate": "Rooted Slate",
- "block.ephemera.fakeslate": "Inert Slate",
- "block.ephemera.sneakyslate.blank": "Blank Rooted Slate",
- "block.ephemera.sneakyslate.written": "Patterned Rooted Slate",
-
- "hexcasting.spell.ephemera:magearmor": "Instant Aegis",
- "hexcasting.spell.book.ephemera:magearmor": "Instant Aegis",
- "hexcasting.spell.ephemera:networkscan": "Network Distillation",
- "hexcasting.spell.book.ephemera:networkscan": "Network Dstln.",
- "hexcasting.spell.ephemera:networktp": "Network Gateway",
- "hexcasting.spell.book.ephemera:networktp": "Network Gateway",
- "hexcasting.spell.ephemera:networkindex": "Routing Distillation",
- "hexcasting.spell.book.ephemera:networkindex": "Routing Dstln.",
- "hexcasting.spell.ephemera:readframerotation": "Decorator's Purification",
- "hexcasting.spell.book.ephemera:readframerotation": "Decorator's Prfn.",
- "hexcasting.spell.ephemera:setframerotation": "Decorator's Gambit",
- "hexcasting.spell.ephemera:paintconjured": "Externalize Pigment",
- "hexcasting.spell.ephemera:particleburst": "Particle Burst",
- "hexcasting.spell.ephemera:invisibility": "Hidden Sun's Zenith",
- "hexcasting.spell.ephemera:getstatus": "Apothecary's Purification",
- "hexcasting.spell.book.ephemera:getstatus": "Apothecary's Prfn.",
- "hexcasting.spell.ephemera:getstatuscategory": "Apothecary's Purification II",
- "hexcasting.spell.book.ephemera:getstatuscategory": "Apothecary's Prfn. II",
- "hexcasting.spell.ephemera:getstatusduration": "Pharmacist's Distillation",
- "hexcasting.spell.book.ephemera:getstatusduration": "Pharmacist's Dstln.",
- "hexcasting.spell.ephemera:getstatuslevel": "Pharmacist's Dstln. II",
- "hexcasting.spell.book.ephemera:getstatuslevel": "Pharmacist's Distillation II",
- "hexcasting.spell.ephemera:getbystatus": "Zone Exaltation: Status",
- "hexcasting.spell.book.ephemera:getbystatus": "Zone Exltn.: Status",
- "hexcasting.spell.ephemera:getbystatusinverse": "Zone Exaltation: Not-Status",
- "hexcasting.spell.book.ephemera:getbystatusinverse": "Zone Exltn.: Not-Status",
- "hexcasting.spell.ephemera:getbystatussingle": "Entity Distillation: Status",
- "hexcasting.spell.ephemera:removestatus": "Cleanse Status",
- "hexcasting.spell.ephemera:getabsorption": "Ablation Purification",
- "hexcasting.spell.ephemera:filteredentityraycast": "Scout's Exaltation",
- "hexcasting.spell.ephemera:gaussianrand": "Entropy Reflection II",
- "hexcasting.spell.ephemera:plasmabeam": "Plasma Beam",
- "hexcasting.spell.ephemera:hash": "Hashing Purification",
- "hexcasting.spell.ephemera:hashbits": "undocumented hash-to-numbers pattern",
- "hexcasting.spell.ephemera:revealtoother": "Postman's Gambit",
- "hexcasting.spell.ephemera:getrevealcost": "Postage Purification",
- "hexcasting.spell.ephemera:clearrevealcost": "Postman's Gambit II",
- "hexcasting.spell.ephemera:repair": "Induce Mending",
- "hexcasting.spell.ephemera:getdurabilitymainhand": "Menderbug's Reflection",
- "hexcasting.spell.book.ephemera:getdurabilitymainhand": "Menderbug's Rfln.",
- "hexcasting.spell.ephemera:getdurabilityoffhand": "Menderbug's Reflection II",
- "hexcasting.spell.book.ephemera:getdurabilityoffhand": "Menderbug's Rfln. II",
-
- "hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
- "hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
- "hexcasting.mishap.ephemera:nonconjured": "Expected a conjured block at %s, but got %s.",
- "hexcasting.mishap.ephemera:missingeffect": "Expected %s to be affected by %s, but they are not.",
- "ephemera.mishap.noitemframe": "an item frame",
- "ephemera.mishap.entitytypelistplease": "a list of entity types",
- "ephemera.mishap.toolongiota": "an iota that displays as less than 256 characters",
- "hexcasting.mishap.ephemera:blacklist": "This effect has been blacklisted via tag.",
- "hexcasting.mishap.ephemera:instant": "How did you even get that iota?",
-
- "item.ephemeral.media_armor.tooltip.1": "Bestows %s %s upon the wearer.",
-
- "ephemera.entry.miscpatterns": "Misc. Ephemera Patterns",
- "ephemera.entry.invisibility": "Invisibility",
- "ephemera.entry.status_iotas": "Status Iotas",
- "ephemera.entry.network": "Link Amenities",
- "ephemera.entry.revealtoother": "Messaging",
- "ephemera.entry.mending": "Induce Mending",
- "ephemera.entry.hashing": "Iota Hashing",
- "ephemera.entry.specialslates": "Modified Slates",
-
- "ephemera.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
- "ephemera.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
- "ephemera.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
- "ephemera.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
- "ephemera.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
- "ephemera.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
- "ephemera.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
- "ephemera.page.miscpatterns.5": "Returns a random number between 0 and 1, with a gaussian distribution.",
- "ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
- "ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
- "ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
- "ephemera.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
- "ephemera.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
- "ephemera.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
- "ephemera.page.status_iotas.4": "Accepts an entity and a status effect type, and returns the effect on the target's duration in seconds.",
- "ephemera.page.status_iotas.5": "Accepts an entity and a status effect type, and returns the effect on the target's potency.",
- "ephemera.page.status_iotas.6": "Accepts a status effect type and a vector, and returns an entity at that position which has that effect.",
- "ephemera.page.status_iotas.7": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which have that effect.",
- "ephemera.page.status_iotas.8": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which do not have that effect.",
- "ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
- "ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
- "ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
- "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:ephemera:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
- "ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
- "ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
- "ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
- "ephemera.page.magearmor.5": "This explanation assumes I am wearing no other armor, in practice the cost can be reduced to as little as 25%% of that formula's output if all but one of my armor slots is already occupied by more conventional armor.",
- "ephemera.page.plasmabeam.1": "One of the more destructive spells I've encountered, this spell converts some of the media making up a wisp into a plasma-like blast of energy that pierces through and damages any creatures (including myself) in the way, and potentially destroys blocks not noted for their durability.",
- "ephemera.page.plasmabeam.2": "Fires the blast along the motion vector of the wisp casting the spell, or a random vector if it is not moving. Costs two amethyst dust.",
- "ephemera.page.plasmabeam.3": "You know what? I don't like this spell. I'm removing its entry from the book. It will not be present whenever I port the mod to 1.20.1.",
- "ephemera.page.network.1": "I've devised a suite of patterns (plus a couple of blocks) to make links a bit more useful for things other than data transmission and media sharing.$(br2)Note that the patterns which fetch information about the network make no promises regarding whether returned linkables are within ambit.",
- "ephemera.page.network.2": "Scans the link network connected to the input linkable up to a recursion depth equal to the input number (max 32), and returns a list of all connected linkables. Costs a negligible amount of media.",
- "ephemera.page.network.3": "Accepts an entity to teleport, a linkable to use for access to its network, and a destination. If the entity is within 8 blocks of the linkable, and there is a network node within 4 blocks of the destination, the entity will be teleported. Cost varies based on what entity is teleported.",
- "ephemera.page.network.4": "Outputs a brief redstone signal when an adjacent relay is used as the output for a casting of Network Gateway.",
- "ephemera.page.network.5": "When rclicked with a focus in the main hand, attempts to store its iota in the block. When the focus is in the offhand, writes the stored iota to the focus.",
- "ephemera.page.network.6": "Accepts a linkable to use for network access, and any iota. If a relay connected to the network has an adjacent Network Routing Index with the same iota, returns that relay's position. Costs half an amethyst dust.",
-
- "ephemera.page.revealtoother.1": "Accepts a player and any iota less than 256 characters long, and shows that iota to them as if they had cast Reveal, also telling them who sent the message. Cost is inversely proportional to the length of time since they were last targeted by this spell.",
- "ephemera.page.revealtoother.2": "Accepts a player and returns how much amethyst dust it would cost to send them a message via Postman's Gambit, between 1/10 of a dust and 10 dust.",
- "ephemera.page.revealtoother.3": "Resets the cost of sending me a message via Postman's Gambit back to 1/10 of a dust. Costs 1/10 of a dust.",
-
- "ephemera.page.mending.1": "Accepts a raw media item on the ground, and attempts to use it to repair a tool in my other hand.",
- "ephemera.page.mending.2": "Generally only works on items enchanted with Mending, which are already damaged. Restores twenty points of damage for each amethyst dust's worth of media.",
- "ephemera.page.mending.3": "Returns how many times the item in my other hand can be used without breaking, durability-manipulating effects notwithstanding.",
- "ephemera.page.mending.4": "As previous, targeting the item in the hand I'm casting this with. Most useful with delayed casts of one form or another.",
-
- "ephemera.page.hashing.1": "I've discovered a curious pattern which scrambles an iota into an unreadable mess. However, unlike Garbage iotas, $(o)this$() mess still contains data, and running the same iota through the pattern will always produce the same mess (known as a hash). While it is not possible to recover an iota from a hash, it can be quite useful for comparisons in situations where I cannot save the unaltered iota.",
- "ephemera.page.hashing.2": "Accepts any iota, and converts it into its hashed form.",
-
- "ephemera.page.specialslates.1": "I've designed a couple types of slate to be used in spell circles. While they don't provide any groundbreaking new functionality, they can be nice to have.",
- "ephemera.page.specialslates.2": "Works just like a normal slate, but is capable of sending the media wave into the block it is placed on.",
- "ephemera.page.specialslates.3": "Crafted with a normal slate and a stonecutter.$(br2)Looks just like a normal slate, but can't direct a media wave at all. Cannot be written to.",
-
- "ephemera.page.forgewarning.1": "Mod author's note for Forge users: This spell does not work on Forge. I do not know why. I've set the cost on Forge to zero so at least it won't waste media. Sorry.$(br2)I'll try to get it working eventually.",
- "ephemera.page.forgewarning.2": "Mod author's note for Forge users: This spell does not produce particles on Forge. I do not know why. The entity damage and block breaking still work fine, at least. Sorry.$(br2)I'll try to get it working eventually (no I won't).",
-
- "hexcasting.iota.ephemera:potion": "Status Effect",
- "hexcasting.iota.ephemera:hash": "Hash",
- "ephemera.iota.hashlabel": "Hashed data: %s",
-
- "text.ephemera.clearHistoryResponse": "Cleared reveal history map.",
- "text.ephemera.revealIntroduction": "Transmission from %s: ",
-
- "enchantment.ephemera.shame": "Curse of Shame"
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
deleted file mode 100644
index 610373dec492..000000000000
--- a/projects/1.19/assets/ephemera/ephemera/lang/zh_cn.json
+++ /dev/null
@@ -1,144 +0,0 @@
-{
- "itemGroup.ephemera.ephemera": "Ephemera",
-
- "item.ephemera.media_helmet": "咒塑头盔",
- "item.ephemera.media_chestplate": "咒塑胸甲",
- "item.ephemera.media_leggings": "咒塑护腿",
- "item.ephemera.media_boots": "咒塑靴子",
-
- "block.ephemera.relay_tp_detector": "网络门径探测器",
- "block.ephemera.relay_index": "网络路由索引",
- "block.ephemera.sneakyslate": "根植石板",
- "block.ephemera.fakeslate": "惰性石板",
- "block.ephemera.sneakyslate.blank": "空白根植石板",
- "block.ephemera.sneakyslate.written": "有图案的根植石板",
-
- "hexcasting.spell.ephemera:magearmor": "瞬时庇护",
- "hexcasting.spell.book.ephemera:magearmor": "瞬时庇护",
- "hexcasting.spell.ephemera:networkscan": "网络之馏化",
- "hexcasting.spell.book.ephemera:networkscan": "网络之馏化",
- "hexcasting.spell.ephemera:networktp": "网络门径",
- "hexcasting.spell.book.ephemera:networktp": "网络门径",
- "hexcasting.spell.ephemera:networkindex": "路由之馏化",
- "hexcasting.spell.book.ephemera:networkindex": "路由之馏化",
- "hexcasting.spell.ephemera:readframerotation": "装潢师之纯化",
- "hexcasting.spell.book.ephemera:readframerotation": "装潢师之纯化",
- "hexcasting.spell.ephemera:setframerotation": "装潢师之策略",
- "hexcasting.spell.ephemera:paintconjured": "外化染色剂",
- "hexcasting.spell.ephemera:particleburst": "粒子迸发",
- "hexcasting.spell.ephemera:invisibility": "隐阳当空",
- "hexcasting.spell.ephemera:getstatus": "药师之纯化",
- "hexcasting.spell.book.ephemera:getstatus": "药师之纯化",
- "hexcasting.spell.ephemera:getstatuscategory": "药师之纯化,第二型",
- "hexcasting.spell.book.ephemera:getstatuscategory": "药师之纯化,第二型",
- "hexcasting.spell.ephemera:getstatusduration": "药剂师之馏化",
- "hexcasting.spell.book.ephemera:getstatusduration": "药剂师之馏化",
- "hexcasting.spell.ephemera:getstatuslevel": "药剂师之馏化,第二型",
- "hexcasting.spell.book.ephemera:getstatuslevel": "药剂师之馏化,第二型",
- "hexcasting.spell.ephemera:getbystatus": "区域之提整:状态",
- "hexcasting.spell.book.ephemera:getbystatus": "区域之提整:状态",
- "hexcasting.spell.ephemera:getbystatusinverse": "区域之提整:非状态",
- "hexcasting.spell.book.ephemera:getbystatusinverse": "区域之提整:非状态",
- "hexcasting.spell.ephemera:getbystatussingle": "实体之馏化:状态",
- "hexcasting.spell.ephemera:removestatus": "清除状态",
- "hexcasting.spell.ephemera:getabsorption": "销蚀之纯化",
- "hexcasting.spell.ephemera:filteredentityraycast": "侦查员之提整",
- "hexcasting.spell.ephemera:gaussianrand": "熵之精思,第二型",
- "hexcasting.spell.ephemera:plasmabeam": "等离子束",
- "hexcasting.spell.ephemera:hash": "哈希之纯化",
- "hexcasting.spell.ephemera:hashbits": "未记录的哈希至数转换图案",
- "hexcasting.spell.ephemera:revealtoother": "邮递员之策略",
- "hexcasting.spell.ephemera:getrevealcost": "邮递员之纯化",
- "hexcasting.spell.ephemera:clearrevealcost": "邮递员之策略,第二型",
- "hexcasting.spell.ephemera:repair": "咒感修补",
- "hexcasting.spell.ephemera:getdurabilitymainhand": "维修虫之精思",
- "hexcasting.spell.book.ephemera:getdurabilitymainhand": "维修虫之精思",
- "hexcasting.spell.ephemera:getdurabilityoffhand": "维修虫之精思,第二型",
- "hexcasting.spell.book.ephemera:getdurabilityoffhand": "维修虫之精思,第二型",
-
- "hexcasting.mishap.location_ephemera:inputrelaytprange": "目标实体距%s处的目标节点过远。",
- "hexcasting.mishap.location_ephemera:outputrelaytprange": "无法在范围%s内找到已连接的节点。",
- "hexcasting.mishap.ephemera:nonconjured": "%s处本应为一个构筑的方块,而实际为%s。",
- "hexcasting.mishap.ephemera:missingeffect": "%s本应拥有%s,而实际没有。",
- "ephemera.mishap.noitemframe": "一个物品展示框",
- "ephemera.mishap.entitytypelistplease": "一个实体类型列表",
- "ephemera.mishap.toolongiota": "一个显示所需字符数少于256的iota",
- "hexcasting.mishap.ephemera:blacklist": "此效果已被标签禁用。",
- "hexcasting.mishap.ephemera:instant": "是如何拿到这个iota的?",
-
- "item.ephemeral.media_armor.tooltip.1": "给予穿戴者%s %s。",
-
- "ephemera.entry.miscpatterns": "Ephemera:杂项图案",
- "ephemera.entry.invisibility": "隐形",
- "ephemera.entry.status_iotas": "状态 Iota",
- "ephemera.entry.network": "链接实用图案",
- "ephemera.entry.revealtoother": "信息传递",
- "ephemera.entry.mending": "咒感修补",
- "ephemera.entry.hashing": "Iota 哈希",
- "ephemera.entry.specialslates": "变种石板",
-
- "ephemera.page.paintconjured.1": "接受一个向量与代表染色剂的物品类型。如果目标为我自己的方块,消耗极少量媒质;否则消耗 1 个紫水晶粉。",
- "ephemera.page.paintconjured.2": "将所给位置处构筑方块的颜色设置为所给染色剂的颜色;如果传入的是 Null,则将其设置为我意识的颜色。$(br2)不保证对非传统的构筑物质有效。",
- "ephemera.page.paintconjured.3": "这种效果有着奇怪的庆典感,就好像它曾用于某个盛大的节庆活动,与会队伍会把自己队的颜色泼洒到对手的领地上,类似于意识层面上的占领。",
- "ephemera.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
- "ephemera.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
- "ephemera.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
- "ephemera.page.miscpatterns.4": "与$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)类似,但能够接受一个实体类型 iota 列表。类型不在该列表内的实体会被忽略。消耗的媒质量略多于上文所提图案的“极少量”。",
- "ephemera.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布。",
- "ephemera.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
- "ephemera.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
- "ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能类似,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
- "ephemera.page.status_iotas.1": "这些图案主要操作代表生物身上长时效果的 iota,我可以用这些图案评估生物的状态,比只用护士之纯化更加深入彻底。$(br)虽然我的研究表明,代表瞬时效果的状态 iota 有存在的可能,但它们非常难以获取,而且我目前没想到它们有什么用途。",
- "ephemera.page.status_iotas.2": "接受一个生物,并返回目标当前所有效果组成的列表 iota。",
- "ephemera.page.status_iotas.3": "接受一个状态效果,并根据该效果对生物产生正面、负面,或中性影响返回一个数。",
- "ephemera.page.status_iotas.4": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的持续时间,以秒计。",
- "ephemera.page.status_iotas.5": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的强度。",
- "ephemera.page.status_iotas.6": "接受一个状态效果和一个向量,并返回该处带有该状态效果的实体。",
- "ephemera.page.status_iotas.7": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有带有给定状态效果生物的列表。",
- "ephemera.page.status_iotas.8": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有无给定状态效果生物的列表。",
- "ephemera.page.status_iotas.9": "接受一个活体实体,并返回其在生命值受影响前能吸收的伤害量。",
- "ephemera.page.status_iotas.10": "接受一个实体和一个状态效果,并移除该实体身上的所给状态效果。消耗由效果自身的伤害性、强度、剩余持续时间决定。",
- "ephemera.page.status_iotas.11": "若是要移除非自身实体身上的正面效果,则消耗会增加。$(br2)所有需要检测实体身上有无所给状态效果的图案都有副作用。如果该实体当前没有这种效果,则图案会失效,并给予我反胃。",
- "ephemera.page.magearmor.1": "我发现了一种比较有趣的法术,它能够产生防御性的媒质屏障,防护力媲美甚至超过许多种传统盔甲。此类屏障甚至还能给予穿戴者许多$(l:ephemera:patterns/spells/status_iotas)持久效果$(/l),堪称泛用。",
- "ephemera.page.magearmor.2": "接受作为盔甲接收方的玩家,盔甲的耐久度,盔甲的护甲值(最多为 10),施加的状态效果,状态效果的等级。最后两个参数可用其他类型的 iota 代替,此时这两个参数会被忽略。",
- "ephemera.page.magearmor.3": "当然,这种屏障并非无法破坏。除去受击致损外,其耐久度还会持续减少。这种减少效应的基础速率看作每秒 1 “点”,则还需附加上其中效果等级平方个“点”。此外,穿戴者脱下后它们会立刻消失。换言之,除非重新施法覆写其状态,否则没有方法修复它们。",
- "ephemera.page.magearmor.4": "此法术的媒质消耗比较复杂:每 60 点耐久度基础消耗 1 个紫水晶粉,乘以护甲值的 1.5 次幂,再乘以任意状态效果的等级 + 1。因此,不提供状态效果、护甲值为 10、耐久度够支持 1 分钟的盔甲需消耗大约 31.5 个紫水晶粉。再令其给予生命恢复 II,消耗就来到了大约 94.5 个紫水晶粉,并且在消失前也只能坚持 36 秒。",
- "ephemera.page.magearmor.5": "这一计算结果的前提是我没有穿戴其他盔甲,实际操作中消耗可以缩减到最低 25%%,出现在所有盔甲槽位中只有 1 格空出的情况中。",
- "ephemera.page.plasmabeam.1": "在我见过的法术中,此法术算是极具破坏性了。此法术会将构成咒灵的一部分媒质转换成一束类似等离子体的能量,它能够穿透并伤害途径的所有生物(包括我自己),也有可能破坏强度不算高的方块。",
- "ephemera.page.plasmabeam.2": "沿施法咒灵的运动向量发射冲击,未在移动则选取随机向量。消耗 2 个紫水晶粉。",
- "ephemera.page.plasmabeam.3": "说实话,我不喜欢这个法术。我会删掉手册里的条目。模组更新到 1.20.1 后就不会有这个法术了。",
- "ephemera.page.network.1": "我设计了一系列图案和若干方块,旨在赋予链接更多用途,除去已有数据传输和媒质共享之外。$(br2)需要注意,对于从网络中获取信息的图案,其返回的可链接事物不一定处在影响范围之内。",
- "ephemera.page.network.2": "递归扫描与输入端可链接事物相连的链接网络,最大深度为所给数(最高为 32),并返回所有可链接事物组成的列表。消耗极少量媒质。",
- "ephemera.page.network.3": "接受需传送的实体,用于访问网络的可链接事物,以及目的地。如果实体位于所给可链接事物 8 格之内,且距目的地 4 格之内存在网络节点,则实体会被传送。消耗量由被传送实体的类型决定。",
- "ephemera.page.network.4": "如果毗邻的继链器被用作网络门径的输出端,则产生一次短时红石信号。",
- "ephemera.page.network.5": "主手持有核心右击时,会尝试将核心中的 iota 存入自身。副手持有核心时,则会将存储的 iota 写入核心。",
- "ephemera.page.network.6": "接受用于访问网络的可链接事物,以及任意 iota。如果网络中有继链器毗邻网络路由索引,且索引中存有同一 iota,则返回该继链器的位置。消耗 1/2 个紫水晶粉。",
-
- "ephemera.page.revealtoother.1": "接受一个玩家和一个长度少于 256 个字符的 iota,并向所给玩家展示该 iota,如同他们来施放揭示一般;同时也告诉他们信息的发送者。消耗与给定玩家上一次作为此法术目标后经过的时间成反比例。",
- "ephemera.page.revealtoother.2": "接受一个玩家,返回紫水晶粉的数量,对应通过邮递员之策略向其发送信息的消耗,范围在 1/10 个到 10 个之间。",
- "ephemera.page.revealtoother.3": "重置通过邮递员之策略向我发送信息的消耗,也即 1/10 个紫水晶粉。消耗 1/10 个紫水晶粉。",
-
- "ephemera.page.mending.1": "接受自然包含媒质的物品实体,用其修复我另一只手中的工具。",
- "ephemera.page.mending.2": "通常只对拥有经验修补魔咒的受损物品有效。每个紫水晶粉的媒质恢复 20 点耐久度。",
- "ephemera.page.mending.3": "返回我另一只手中物品在损毁前还能使用的次数,会影响耐久度使用的效果不计。",
- "ephemera.page.mending.4": "和前页图案类似,但它会以施法用手中的物品为目标。最适合配合各种形式的延迟施法使用。",
-
- "ephemera.page.hashing.1": "我发现了一个神奇的图案,能将 iota 变成一团读不懂的乱麻。但和垃圾 iota 不一样的是,$(o)这种$()乱麻中依然含有数据,并且同样的 iota 必定给出同样的乱麻(又称哈希)。虽然哈希后的乱麻没法还原成 iota,但很适合在无法保存未经修改的 iota 的情况下用来比对。",
- "ephemera.page.hashing.2": "接受任意 iota,转换成哈希值。",
-
- "ephemera.page.specialslates.1": "我设计了若干种可用于法术环的石板。虽然它们没有什么开创性的新功能,但有这些选择也不错。",
- "ephemera.page.specialslates.2": "和普通的石板功效一样,但它能够向其所依附的方块传递媒质波。",
- "ephemera.page.specialslates.3": "在切石机中加工普通石板而得。$(br2)和普通石板外观一致,但完全无法传导媒质波,且无法写入。",
-
- "ephemera.page.forgewarning.1": "模组作者给 Forge 用户的留言:此法术在 Forge 上无法运行。我不知道具体的原因。我已将 Forge 端中此法术的消耗设置为 0,避免浪费媒质。抱歉。$(br2)我会尽力让它正常运作。",
- "ephemera.page.forgewarning.2": "模组作者给 Forge 用户的留言:此法术在 Forge 上无法产生粒子。我不知道具体的原因。至少伤害实体和破坏方块的功能依然可用。抱歉。$(br2)我会尽力让它正常运作(不我不会的)。",
-
- "hexcasting.iota.ephemera:potion": "状态效果",
- "hexcasting.iota.ephemera:hash": "哈希",
- "ephemera.iota.hashlabel": "哈希数据:%s",
-
- "text.ephemera.clearHistoryResponse": "已清除揭示历史。",
- "text.ephemera.revealIntroduction": "来自%s的信息:",
-
- "enchantment.ephemera.shame": "无耻诅咒"
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.19/assets/oneironaut/oneironaut/lang/en_us.json
deleted file mode 100644
index 67d82f18556b..000000000000
--- a/projects/1.19/assets/oneironaut/oneironaut/lang/en_us.json
+++ /dev/null
@@ -1,355 +0,0 @@
-{
- "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
- "hexcasting.spell.oneironaut:getdim1": "Spatial Reflection",
- "hexcasting.spell.oneironaut:getdim2": "Spatial Reflection II",
- "hexcasting.spell.oneironaut:getdimoverworld": "Homeland Reflection",
- "hexcasting.spell.oneironaut:getdimnether": "Inferno Reflection",
- "hexcasting.spell.oneironaut:getdimheight": "Atlas' Decomposition",
- "hexcasting.spell.oneironaut:getdimscale": "Ratio Purification",
- "hexcasting.spell.oneironaut:dimteleport": "Noetic Gateway",
- "hexcasting.spell.oneironaut:infusemedia": "Media Infusion",
- "hexcasting.spell.oneironaut:swapspace": "Spatial Interchange",
- "hexcasting.spell.oneironaut:paintconjured": "Externalize Pigment",
- "hexcasting.spell.oneironaut:craftrod": "Conduct Rod",
- "hexcasting.spell.oneironaut:getrodlook": "Baton Reflection",
- "hexcasting.spell.oneironaut:getrodpos": "Baton Reflection II",
- "hexcasting.spell.oneironaut:getrodstamp": "Metronome Reflection",
- "hexcasting.spell.oneironaut:delayrod": "Metronome Gambit",
- "hexcasting.spell.oneironaut:haltrod": "Finale",
- "hexcasting.spell.oneironaut:resetrod": "Encore",
- "hexcasting.spell.oneironaut:readrodram": "Williams' Reflection",
- "hexcasting.spell.oneironaut:writerodram": "Williams' Gambit",
- "hexcasting.spell.oneironaut:readrodramremote": "Williams' Reflection II",
- "hexcasting.spell.oneironaut:writerodramremote": "Williams' Gambit II",
- "hexcasting.spell.oneironaut:queryrod": "Conductor's Reflection",
- "hexcasting.spell.oneironaut:rodloopactive": "Conductor's Reflection II",
- "hexcasting.spell.oneironaut:craftbottomlesstrinket": "Craft Bottomless Trinket",
- "hexcasting.spell.oneironaut:readframerotation": "Decorator's Purification",
- "hexcasting.spell.oneironaut:setframerotation": "Decorator's Gambit",
- "hexcasting.spell.oneironaut:writeidea": "Inscribe Idea",
- "hexcasting.spell.oneironaut:readidea": "Retrieve Idea",
- "hexcasting.spell.oneironaut:readideatime": "Metadata Purification",
- "hexcasting.spell.oneironaut:readideawriter": "Metadata Distillation",
- "hexcasting.spell.oneironaut:particleburst": "Particle Burst",
- "hexcasting.spell.oneironaut:readsentinel": "Scrutinize Sentinel",
- "hexcasting.spell.oneironaut:resistdetection": "Stealth Shroud",
- "hexcasting.spell.oneironaut:detectshroud": "Discern Shroud",
- "hexcasting.spell.oneironaut:invisibility": "Hidden Sun's Zenith",
- "hexcasting.spell.oneironaut:circle": "Circle",
- "hexcasting.spell.oneironaut:getstatus": "Apothecary's Prfn.",
- "hexcasting.spell.oneironaut:getstatuscategory": "Apothecary's Prfn. II",
- "hexcasting.spell.oneironaut:getstatusduration": "Pharmacist's Dstln.",
- "hexcasting.spell.oneironaut:getstatuslevel": "Pharmacist's Dstln. II",
- "hexcasting.spell.oneironaut:getbystatus": "Zone Exltn.: Status",
- "hexcasting.spell.oneironaut:getbystatusinverse": "Zone Exltn.: Not-Status",
- "hexcasting.spell.oneironaut:getbystatussingle": "Entity Distillation: Status",
- "hexcasting.spell.oneironaut:removestatus": "Cleanse Status",
- "hexcasting.spell.oneironaut:applymindrender": "Empower Mind Render",
- "hexcasting.spell.oneironaut:reviveflayed": "Instill Psyche",
- "hexcasting.spell.oneironaut:advanceautomaton": "Cellular Generation",
- "hexcasting.spell.oneironaut:filteredentityraycast": "Scout's Exaltation",
- "hexcasting.spell.oneironaut:gaussianrand": "Entropy Reflection II",
- "hexcasting.spell.oneironaut:applynotmissing": "Uplifting Resonance",
- "hexcasting.spell.oneironaut:getsoulprint": "Soulprint Reflection",
- "hexcasting.spell.oneironaut:signitem": "Sign Item",
- "hexcasting.spell.oneironaut:checksignature": "Signature Purification",
-
- "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
- "item.oneironaut.pseudoamethyst_shard": "Pseudoamethyst Shard",
- "item.oneironaut.shifting_pseudoamethyst": "Shifting Pseudoamethyst",
- "item.oneironaut.thought_slurry_bucket": "Thought Slurry Bucket",
- "item.oneironaut.reverberation_rod": "Reverberation Rod",
- "item.oneironaut.endless_phial": "Inexhaustible Phial",
- "item.oneironaut.bottomless_trinket": "Bottomless Trinket",
- "item.oneironaut.echo_staff": "Echo Staff",
- "item.oneironaut.beacon_staff": "Magitech Staff",
- "item.oneironaut.spoon_staff": "Spoon",
- "item.oneironaut.pigment_flame": "Flame Pigment",
- "item.oneironaut.pigment_echo": "Echo Pigment",
- "item.oneironaut.pigment_noosphere": "Noetic Pigment",
- "item.oneironaut.memory_fragment": "Memory Fragment",
- "item.oneironaut.memory_fragment.all": "It seems I've consumed all the memories that this crystal can offer me...",
- "item.oneironaut.wisp_capture_device": "Wisp Wrangler",
- "item.oneironaut.mind_scalpel": "Synaptic Scalpel",
- "item.oneironaut.monkfruit": "Monkfruit",
- "item.oneironaut.rending_thorns": "Rending Thorns",
-
- "block.oneironaut.noosphere_gate": "Inscrutable Rift",
- "block.oneironaut.pseudoamethyst_block": "Pseudoamethyst Block",
- "block.oneironaut.pseudoamethyst_cluster": "Pseudoamethyst Cluster",
- "block.oneironaut.pseudoamethyst_bud_small": "Small Pseudoamethyst Bud",
- "block.oneironaut.pseudoamethyst_bud_medium": "Medium Pseudoamethyst Bud",
- "block.oneironaut.pseudoamethyst_bud_large": "Large Pseudoamethyst Bud",
- "block.oneironaut.thought_slurry": "Thought Slurry",
- "block.oneironaut.thought_slurry_flowing": "Flowing Thought Slurry",
- "block.oneironaut.noosphere_basalt": "Noosphere Basalt",
- "block.oneironaut.wisp_lantern": "Wisp Lantern",
- "block.oneironaut.wisp_lantern_tinted": "Tinted Wisp Lantern",
- "block.oneironaut.super_budding": "Budding Pseudoamethyst",
- "block.oneironaut.sentinel_sensor": "Sentinel Sensor",
- "block.oneironaut.raycast_blocker": "Anti-Raycast Slate",
- "block.oneironaut.raycast_blocker_glass": "Anti-Raycast Glass",
- "block.oneironaut.sentinel_trap": "Seer Impetus",
- "block.oneironaut.circle": "§0§oCircle",
- "block.oneironaut.hex_resistant_block": "Hex-Warded Obsidian",
- "block.oneironaut.media_ice": "Sagely Ice",
- "block.oneironaut.media_ice_frosted": "Transient Sagely Ice",
- "block.oneironaut.media_gel": "Plasmodial Psyche",
- "block.oneironaut.cell": "Dissonant Psyche",
- "block.oneironaut.wisp_battery": "Wisp Weaver",
- "block.oneironaut.decorative_wisp_battery": "Lesser Wisp Weaver",
- "block.oneironaut.hover_elevator": "Hexcaster's Hoverlift",
- "block.oneironaut.hover_repeater": "Hoverlift Repeater",
- "block.oneironaut.monkfruit_bush": "Monkfruit Bush",
-
- "fluid.oneironaut.thought_slurry": "Thought Slurry",
-
- "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
- "oneironaut.entry.dim_iotas": "Dimension Iotas",
- "oneironaut.entry.status_iotas": "Status Iotas",
- "oneironaut.entry.noosphere_main": "A Strange Realm",
- "oneironaut.entry.noosphere_materials": "Thoughtful Materials",
- "oneironaut.entry.wisp_lanterns": "Wisp Devices",
- "oneironaut.entry.slipway_hint": "A Reflection on Slipways",
- "oneironaut.entry.miscpatterns": "Misc. Oneironaut Patterns",
- "oneironaut.entry.super_budding": "Better Media Farming",
- "oneironaut.entry.idea_inscription": "Idea Inscription",
- "oneironaut.entry.sentinel_detection": "Sentinel Detection",
- "oneironaut.entry.detection_shielding": "Nondetection",
- "oneironaut.entry.raycast_assailant": "Anti-Hex Blocks",
- "oneironaut.entry.mindrender": "Mind Render",
- "oneironaut.entry.soulprints": "Soulprints",
- "oneironaut.entry.hover_elevator": "Hoverlifts",
- "oneironaut.entry.flayrevival": "Artificial Minds",
-
- "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
- "oneironaut.page.spaceswap.1": "Accepts two lists of two vectors, to define two cuboids, and a Spatial Imprint. These cuboids must have the exact same dimensions and rotation.",
- "oneironaut.page.spaceswap.2": "I'm not quite sure what this one is supposed to do, it's always yelling at me about special dimensions. Perhaps it needs to use this special dimension as an intermediary?",
- "oneironaut.page.spaceswap.3": "Exchanges the blocks within the first cuboid in your current dimension (which must be within ambit) for the blocks within the second cuboid in the dimension corresponding to the Spatial Imprint. $(l:https://www.desmos.com/calculator/ydbg8zhmyp)Cost (in amethyst dust) is logarithmic for the first 1001 blocks, after which it increases linearly$(/l).$(br)Will not exchange any unbreakable blocks.$(br)One or both of the endpoint dimensions must be the noosphere.",
- "oneironaut.page.spaceswap.4": "One or both of the endpoint dimensions must be the noosphere.",
- "oneironaut.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
- "oneironaut.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
- "oneironaut.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
- "hexcasting.spell.oneironaut:dimteleport.samedim": "The spell does not do anything, similar to if I told someone to go home, when they were already at home.",
- "oneironaut.page.dim_iotas.1": "I've descovered a kind of iota which seems to represent a layer of reality itself. In lieu of better understanding, I've decided to call these Spatial Imprints.",
- "oneironaut.page.dim_iotas.2": "Returns a Spatial Imprint representing the dimension I am currently in. Costs a negligible amount of media.",
- "oneironaut.page.dim_iotas.3": "Returns a Spatial Imprint representing the dimension my sentinel is currently in. Costs one-tenth of an amethyst dust.",
- "oneironaut.page.dim_iotas.4": "Returns a Spatial Imprint representing the overworld. Costs one-tenth of an amethyst dust.",
- "oneironaut.page.dim_iotas.5": "Returns a Spatial Imprint representing the nether. Costs one-tenth of an amethyst dust.$(br)There seems to be some resistance when I cast this. Perhaps I'll be able to overcome it with $(#54398a)greater skill$()...",
- "oneironaut.page.dim_iotas.6": "Accepts a Spatial Imprint, and returns the lowest and highest altitudes at which blocks can exist in the corresponding dimension.",
- "oneironaut.page.dim_iotas.7": "Accepts a Spatial Imprint, and returns how many blocks you'd have to travel in the overworld to travel the equivalent of one block in the input dimension.",
- "oneironaut.page.dimteleport.1": "Accepts an entity and a Spatial Imprint and teleports the entity to its position in the proper dimension. Generally costs 20 Charged Amethyst.$(br)Will fail if supplied a player other than myself.",
- "oneironaut.page.dimteleport.2": "If I use this to return to a dimension that I previously left within the same instant, the cost drops to five amethyst dust, as the spell can take advantage of a lingering strand of media leading back to my original position. Otherwise, it will attempt to find a safe spot to deposit me, potentially conjuring a block to prevent me from falling to my doom.$(br2)Strangely, I feel an odd sense of acceleration when transporting myself this way, along some incomprehensible axis.",
- "oneironaut.page.infusemedia.1": "Accepts a vector and infuses media into the corresponding block in order to transmute it. Cost and exact effect vary depending on target.",
- "oneironaut.page.infusemedia.2": "Conceptually, this spell is quite similar to $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l).$(br)However, the media that the target block receives is far more finely-tuned, and can thus achieve far more interesting results.",
- "oneironaut.page.wisp_lanterns.1": "I've found that by using materials unique to the Noosphere, I can create a special jar capable of producing and containing a tiny wisp. While this wisp cannot cast anything, it emits quite a bit of light, and will mimic pigments shown to it.$(br)I can also craft a version with tinted glass, in case the wisp's light would disrupt my study's aesthetic.",
- "oneironaut.page.wisp_lanterns.2": "Additionally, by feeding this illumination wisp significant amounts of media, I can cause it to undergo mitosis, with the newly-created wisp being seemingly-identical to the wandering wisps produced by slipways.$(br2)The device to split the wisp in this way can be fed media-bearing items via hoppers or similar, and is capable of storing 640 charged amethyst worth of media.",
- "oneironaut.page.wisp_lanterns.3": "Simply apply a redstone signal to activate. Produces a wisp every four seconds, and consumes two charged amethyst to do so.$(br)The capacity and fill level of the phial used make no difference.",
- "oneironaut.page.wisp_lanterns.4": "Alternatively, I can create a version which does not consume (or accept) any media, but produces wisps which yield only net-zero media when consumed.$(br2)All the sparkly shiny orbs, none of the prohibitive cost!",
- "oneironaut.page.wisp_lanterns.5.originaltoolong": "Using similar principles, I've designed a device which can capture (and contain) wisps for their eventual release, though it does not work on wandering wisps due to their instability.$(br)Capturing one of my own wisps always consumes one amethyst shard worth of its (rechargable) 64-charged capacity, and capturing someone else's costs half again as much media as it contains. To capture a wisp, I must simply use the item on a wisp, and it will be sucked into the housing(assuming it has sufficient media and does not already contain a wisp).",
- "oneironaut.page.wisp_lanterns.5": "Using similar principles, I've designed a device which captures, stores, and releases wisps, though it does not work on unstable wandering wisps. Capturing one of my own wisps consumes one amethyst shard from its battery. Capturing someone else's wisp costs half again the media it contains. To capture a wisp, I must simply use the device on it, assuming it has enough media and isn't already occupied.",
- "oneironaut.page.wisp_lanterns.6": "When releasing a cyclic wisp, it is placed on the side of the block I use the item on. Projectile wisps are launched from my face, retaining their previous speed (but not direction). To discard a contained wisp, I need only use the item while crouching.",
- "oneironaut.page.wisp_lanterns.7": "To initalize the device's media battery, I must use it on one of my own wisps, which will irretrievably consume it and set the battery's capacity to the wisp's stored media value, rounded up to the nearest dust. Should I wish to reset this (along with everything else about the device), I can simply place it in a crafting grid on its own.",
-
- "oneironaut.page.noosphere_materials.1": "A strange fluid which agitates media entering it, preventing amethyst crystal formation. Stimulates my mind in pleasing ways when I immerse myself in it.",
- "oneironaut.page.noosphere_materials.2": "A rock which is primarily composed of media, somehow. Can be used to craft spell circle blocks.",
- "oneironaut.page.noosphere_materials.3.title": "Pseudoamethyst",
- "oneironaut.page.noosphere_materials.3": "A large crystal of media much like amethyst, but not quite the same. Produces a buzzing sensation under my fingers when I touch it, as if its media is stimulating the nerves. Breaking it without special care causes it to shatter into 1-4 pieces.",
- "oneironaut.page.noosphere_materials.4": "The shards can be used to fuel spells, and yield slightly more energy than a normal amethyst shard. Can also be used to craft several interesting things.",
- "oneironaut.page.noosphere_materials.5": "A solid form of media which is created when Thought Slurry freezes in a media-rich environment, or is caused to freeze by a hex.$(br)Its surface seems to have negative friction, causing anything sliding on it to accelerate indefinitely (albeit slowly).",
- "oneironaut.page.noosphere_materials.6": "An extremely viscous mass of media, capable of very basic cognition, analagous to a slime mold. While it is normally quite lethargic, it uses a spell-like ability to attempt to ensnare anything that touches it.",
- "oneironaut.page.slipway_hint.1": "The slipways, they must lead $(o)somewhere$(). Wisps do not simply manifest from nothing. No matter what I try, I cannot insert so much as a finger through that chaotic rift.$(br2)I'm going about this wrong. Perhaps rather than attempting to force my way through, I should be attempting to calm the storm.",
- "oneironaut.page.slipway_hint.2": "A large amount of harmonious media may just do it...",
- "oneironaut.page.slipway_hint.2.title": "Hmm...",
- "oneironaut.page.noosphere_main.1": "I've made it.$(br)The realm beyond the slipways. The ambient media is overwhelming. My mind is screaming at me, telling me I shouldn't be here. But I must press on. This is the next step in the journey.",
- "oneironaut.page.noosphere_main.2": "Every single thing I've examined here seems to be composed largely of media, similar to conjured matter, but orders of magnitude denser.$(br)$(o)Even the air is media. How am I breathing?$(br2)$(l)How can I even exist here?",
- "oneironaut.page.rod.1": "I've discovered that I can craft a peculiar sort of casting item, using the strange shards found in ancient cities.$(br)This item is unusual in that it casts its imbued hex twenty times per second while I concentrate on it, until it either mishaps or I cast Finale or Encore. This initiates a cooldown period, usually about one second.",
- "oneironaut.page.rod.2": "The echo shards seem to bear some bizarre form of media, with a tendency to loop back on itself while retaining a bit of the previous cast.",
- "oneironaut.page.rod.3": "Acts just like $(l:patterns/spells/hexcasting)the spells used to program conventional casting items$(). Costs 10 Charged Amethyst.",
- "oneironaut.page.rod.4": "When cast with a Reverberation Rod, returns my look vector from when I started the current cast loop.",
- "oneironaut.page.rod.5": "When cast with a Reverberation Rod, returns my eye position from when I started the current cast loop.",
- "oneironaut.page.rod.6": "When cast with a Reverberation Rod, returns the timestamp from when I started the current cast loop.",
- "oneironaut.page.rod.7": "Accepts a positive integer. When cast with a Reverberation Rod, delays the current cast loop's next cast until that many twentieths of a second have passed.",
- "oneironaut.page.rod.8": "When cast with a Reverberation Rod, forcibly halts the current cast loop.",
- "oneironaut.page.rod.9": "Accepts a positive integer. Halts the current cast loop but also reduces the cooldown period from 1 second to ((1/20) * number) seconds. Cooldown due to mishap is unaffected.",
- "oneironaut.page.rod.10": "Accepts a non-list iota, and stores it inside the current cast loop. It will be lost when the cast loop ends.",
- "oneironaut.page.rod.11": "Returns the iota stored in the current cast loop. Defaults to NULL.",
- "oneironaut.page.rod.12": "Returns a boolean corresponding to whether the current cast is making use of a rod.",
- "oneironaut.page.rod.13": "As Williams' Gambit, but can be cast from non-rod sources while a rod is in use.",
- "oneironaut.page.rod.14": "As Williams' Reflection, but can be cast from non-rod sources while a rod is in use.",
- "oneironaut.page.rod.15": "Returns whether the caster is currently using a rod, regardless of the current cast is from that rod.",
- "oneironaut.page.rod.16": "Echo shards can also be used in the construction of a staff, though it seems the only special property of such a staff is making sculk sounds.",
- "oneironaut.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
- "oneironaut.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
- "oneironaut.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
- "oneironaut.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
- "oneironaut.page.miscpatterns.5": "Returns a random number between 0 and 1, with a gaussian distribution.",
- "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
- "oneironaut.page.super_budding.1": "I've found that the amethyst-like material native to the noosphere can be imbued with a villager's mind, much like normal amethyst. What's more, the block that results from this process produces significantly more media than normal Budding Amethyst, and it can be picked up and moved if one takes special care.",
- "oneironaut.page.super_budding.2": "Pseudoamethyst requires a stronger mind than normal amethyst, but the cost is well worth it.",
- "oneironaut.page.super_budding.3": "Additionally, when cultivated in the Noosphere, budding pseudoamethyst will produce pseudoamethyst clusters rather than conventional amethyst. These clusters will of course yield pseudoamethyst shards, as well as an unstable form of pseudoamethyst containing about four times as much media as the regular shards. Unfortunately, due to this instability, it cannot be directly converted into usable media. However, it can be converted into many other forms of media crystal by simply bringing the two items together.",
- "oneironaut.page.super_budding.4": "It seems to react to my gaze, as if endowed with some form of perception.",
- "oneironaut.page.super_budding.5": "The media generation rate of budding pseudoamethyst is such that even when immersed in thought slurry to inhibit crystal formation, it will still yield usable amounts of media. While the overall supply is nigh-endless, the amount accessible to any given action is quite small, like an inch-deep ocean a million miles across. However, due to this minimal depth, the media will dissipate rapidly before reaching my staff when accessed from afar, such as when recharging an item.",
- "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I certainly $(o)can$() hold several of these in order to gain access to more easy media, this results in rapidly-diminishing returns.",
- "oneironaut.page.super_budding.7": "I can also jam one into a trinket in order to replace its media supply with an inexhaustible phial, giving it access to the endless media within. However, it cannot use any media other than that provided by the phial.",
- "oneironaut.page.super_budding.8": "Writes a hex to the bottomless trinket in my other hand. Costs ten charged amethyst.",
- "oneironaut.page.idea_inscription.1": "As the noosphere is a realm of thought, it stands to reason that it could be used for information storage. These patterns do just that, inscribing an iota into the noosphere and reading it back (regardless of my current dimension). They can also store iotas inside the minds of other beings, assuming their thoughts are as... $(o)unfettered$() as my own. In the notation for these patterns, \"key\" refers to any vector or compatible entity.",
- "oneironaut.page.idea_inscription.2": "While this is quite versatile, the noosphere's ambient media is constantly in motion, and as such any iota stored in it will eventually be lost, similar to if I poured hot water into the ocean. It seems to take about an hour before such information decays into unusable garbage.$(br2)It seems that $(l:greatwork/akashiclib)Akashic Libraries$(/l) work based on similar principles, where the shelves serve as insulation to prevent decay.",
- "oneironaut.page.idea_inscription.3": "Accepts a valid key and any iota, and stores it in the corresponding location. Costs a quarter of an amethyst dust.",
- "oneironaut.page.idea_inscription.4": "Accepts a valid key, and returns the corresponding iota. Costs one-eigth of an amethyst dust.",
- "oneironaut.page.idea_inscription.5": "Accepts a valid key, and returns when the corresponding iota was inscribed, or -1. Costs no media.",
- "oneironaut.page.idea_inscription.6": "Accepts a valid key and a player, and returns whether the corresponding iota was inscribed by that player. Costs no media.",
- "oneironaut.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
- "oneironaut.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
- "oneironaut.page.sentinel_detection.1": "By combining the noosphere's pseudoamethyst with the organic sensory apparatus native to the deep dark, I've discovered a way to detect fluctuations in ambient media. This new form of sensor detects the presence of $(l:patterns/spells/sentinels)Sentinels$(/l) within approximately 16 meters, and outputs a redstone signal based on its proximity to the closest one. Comparators attached to it will output a signal if the sentinel in question is particularly powerful.",
- "oneironaut.page.sentinel_detection.2": "$(o)I'm sure the warden won't mind.$()",
- "oneironaut.page.sentinel_detection.3": "Additionally, this sensor can be incorporated into a Cleric Impetus, allowing it to activate when a sentinel is placed in the area (albeit with a lower range than the plain sensor). I've dubbed this contraption a Seer Impetus. Though it no longer responds to redstone, the circle's hex will start with a reference to the owner of the triggering sentinel on the stack.$(br)Due to the media interference produced by the cast, the impetus cannot detect sentinels it places itself.",
- "oneironaut.page.sentinel_detection.4": "As the sensor does not care whose sentinel it sees, I should take care to avoid allowing my trap circles to target me.",
- "oneironaut.page.sentinel_detection.5": "Accepts a vector and a player, and returns either the distance from the vector to the target player's sentinel or NULL. Costs a negligible amount of media.",
- "oneironaut.page.sentinel_detection.6": "Conjures a fleeting sensor at the target coordinates, which \"listens\" to the patterns in the ambient media to seek out the telltale signature of a sentinel.",
- "oneironaut.page.detection_shielding.1": "While conventional invisibility potions work just fine for fooling human senses, they are useless against hexes, so I've yet to find any method of making oneself completely undetectable. However, this spell I've discovered allows me to get closer to that goal, scattering media around a creature like chaff, in order to interfere with hex-based detection methods.",
- "oneironaut.page.detection_shielding.2": "Accepts a living entity and a number ($(o)n$()), and shields the entity from hex-based detection for $(o)n$() seconds. Costs two amethyst dust per second.",
- "oneironaut.page.detection_shielding.3": "Also drains media from the entity at a rate of 1/10 of a dust per second, as the shielding effect collects it to produce the chaff.$(br2)I should be careful with what I apply this to, as creatures with no loose media of their own will have their very minds fractured in order to provide this media.",
- "oneironaut.page.detection_shielding.4": "While this is very effective at blocking effects such as $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l) and the various forms of $(l:patterns/entities#hexcasting:zone_entity/animal)Zone Distillation$(/l), it has no effect on $(l:patterns/entities#hexcasting:get_entity)Entity Purification$(/l) variants, as those already have a fairly precise idea of where you are. What's more, the chaff itself produces an energy signautre, which, while dim, is detectable by a specialized pattern.",
- "oneironaut.page.detection_shielding.5": "Accepts a vector and a number, and returns a list of unit vectors pointing from the initial vector to shrouded entities within a radius defined by the number.",
- "oneironaut.page.detection_shielding.6": "I've also discovered a spell which applies normal Invisibility. Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), and costs one amethyst dust per three seconds.",
- "oneironaut.page.raycast_assailant.1": "By \"threading\" pseudoamethyst through a block, I can create something which causes any raycast (including entity raycasts) that hits or passes through it to return null, as if it didn't hit anything.",
- "oneironaut.page.raycast_assailant.3": "Strangely, combining pseudoamethyst with obsidian in the same way does not confer anti-raycast properties, instead making it nigh-indestructible to hexes. However, the resultant block loses much of its durability, being no stronger than common stone (though it retains its blast resistance).",
- "oneironaut.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
- "oneironaut.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
- "oneironaut.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
- "oneironaut.page.status_iotas.4": "Accepts an entity and a status effect type, and returns the effect on the target's duration in seconds.",
- "oneironaut.page.status_iotas.5": "Accepts an entity and a status effect type, and returns the effect on the target's potency.",
- "oneironaut.page.status_iotas.6": "Accepts a status effect type and a vector, and returns an entity at that position which has that effect.",
- "oneironaut.page.status_iotas.7": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which have that effect.",
- "oneironaut.page.status_iotas.8": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which do not have that effect.",
- "oneironaut.page.status_iotas.9": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
- "oneironaut.page.status_iotas.10": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
- "oneironaut.page.mindrender.1": "I've read legends of a particularly macabre form of weapon known as a Mind Render. This weapon, sometimes used by ancient hexcasters, is capable of severing a creature's very thoughts, dealing damage that bypasses all known forms of protection. What's more, if this damage leaves the target just on the brink of true death, it will fall into a vegetative state, never to recover. I shudder to think of what the ancients may have used this property for...",
- "oneironaut.page.mindrender.2": "Accepts an item or item frame bearing the Sharpness enchantment, and converts it into Mind Render of the same level. Cost is based on enchantment level, and increases by 50%% if the item is a book.",
- "oneironaut.page.lore.treatise1.1": "While it is possible to produce most iotas on the fly, there are cases where one finds it impractical, or simply cannot (such as very large and precise numbers, or entity references), and as such must obtain the desired iota in another way. Reading it from a Focus or a similar item works just fine, but in many cases this would require a third hand, which I do not have. Other methods of fetching iotas from external locations have their own limitations as well.",
- "oneironaut.page.lore.treatise1.2": "In cases where no external reference method would work well, one must insert the desired iota into the hex itself. This may seem counterintuive to some, what with the conventional wisdom being that a hex is a list of patterns, but one must remember that patterns are just another type of iota, which $(l:patterns/meta#hexcasting:eval)Hermes' Gambit$(/l) (and similar patterns) works particularly well with.",
- "oneironaut.page.lore.treatise1.3": "While you can't just shove a number into the list and expect it to be pushed to the stack as if it was a $(l:patterns/numbers)Numerical Reflection$(/l) pattern, there are ways around this.$(br2)The simplest (and least reliable) is the $(l:patterns/patterns_as_iotas#hexcasting:escape)Consideration$(/l) pattern. Similar to its use when casting freehand, anything that comes immediately after it in a list will be escaped and pushed to the stack when it might otherwise be executed, preventing mishaps due to execution of non-patterns.",
- "oneironaut.page.lore.treatise1.4": "However, when you're more than one exeuction deep in a hex (such as with nested conditional logic, or loops), the number of Considerations required to properly escape an iota increases exponentially, making it unreliable when used in anything that could conceivably be executed by another hex.",
- "oneironaut.page.lore.treatise1.4.link": "relevant xkcd",
- "oneironaut.page.lore.treatise1.5": "A far more reliable method of escaping iotas is to use $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(/l) and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)Retrospection$(/l). When a pattern list is being evaluated and an Introspection is encountered, everything up to (but not including) its paired Retrospection is escaped and pushed to the stack in a list, regardless of iota type. You can then work with this list as you see fit, such as using $(l:patterns/lists#hexcasting:splat)Flock's Disintegration$(/l) to push all of its contents to the stack on their own.",
- "oneironaut.page.lore.treatise1.6": "If the contents of your list looks like this:$(br2)Introspection$(br)Any iota(s)$(br)Retrospection$(br)Flock's Disintegration$(br2)the state of the stack after all that is executed will simply be all the iotas that were contained within Introspection and Retrospection.",
- "oneironaut.page.lore.treatise2.1": "When one wishes to impart motion upon something, the standard method is to use $(l:patterns/spells/basic#hexcasting:add_motion)Impulse$(/l). However, this can get prohibitively expensive when one wishes to make something move extremely quickly, as the cost increases exponentially with the length of the vector. This can be mitigated by simply using a magnitude-1 Impulse many times over on a single target, turning the overall cost from n^2 to 2n-1, where n is the magnitude of the vector.",
- "oneironaut.page.lore.treatise2.2": "The easiest way to accomplish this is with $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l), by giving it a list containing many instances of the same entity reference. There are other (and often better) methods, of course, but aside from simply drawing the patterns over and over, they generally fall under the broader topic of loops, which is outside the scope of this document.",
- "oneironaut.page.lore.treatise3.1": "While $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) is perfectly-suited for casting something on many targets at once, using to it cast something on one target many times can get awkward, and short of completely halting the hex, it is not possible to add or remove targets once Thoth has begun executing.$(br)To get around these limitations, one simply needs to use a different sort of loop.",
- "oneironaut.page.lore.treatise3.2.header": "While Loop",
- "oneironaut.page.lore.treatise3.2": "A While loop is a loop that continues executing until some condition is fulfilled, such as an entity's target velocity having been reached. The most common way to accomplish this is creating a pattern list which duplicates and executes the top iota on the stack, duplicating it, then executing it. On its own this simply produces an infinite loop which does nothing but mishap.",
- "oneironaut.page.lore.treatise3.3": "However, by adding actual functionality and a bit of boolean logic, you can create a proper while loop. The code for the aforementioned infinite loop is as follows:$(br)Introspection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br)Retrospection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br2)By adding logic that changes whether the inner Hermes' Gambit gets evaluated based on a condition, you can make it stop once that condition is fulfilled.",
- "oneironaut.page.lore.treatise3.4.header": "Loop Unrolling",
- "oneironaut.page.lore.treatise3.4": "A more complex form of loop is an unrolled loop. Like Thoth's Gambit, it's created with a fixed number of iterations which can't easily be added to, but Charon's Gambit can be used to halt it early if need be. It also has the advantage that when done competently, it only ever produces one or two levels of recursion depth (not counting anything executed in the body of the loop). Loop unrolling is accomplished by creating a pattern list you want to repeat, duplicating it many times, and then combining all those lists into one.",
- "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:concat)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
- "oneironaut.page.lore.treatise4.1": "Some of my, erm, \"colleagues\" have trouble transcribing long hexes.$(br)\"This is too long!\"$(br)\"The grid doesn't have enough space!\"$(br)$(bold)Skill issue$(), I say. It's not like a hex is immutable once you've drawn the last Retrospection. All you need to do is save the work-in-progress hex to a focus (though you should make sure to conserve enough grid space to actually do this).",
- "oneironaut.page.lore.treatise4.2": "Then you just use the $(l:patterns/lists)list manipulation$(/l) patterns to combine it with the other parts once you're done.$(br2)You don't even need to use multiple foci, you can just append one part to the last one as you finish them, and then save that to one focus. The multiple-focus method makes it easier to debug your finished hex, but as far as I know that's its only benefit compared to the one-focus method.",
- "oneironaut.page.lore.science1.1": "$(o)\"What is this and how do I get rid of it?\"$()$(br)A question asked by many people upon their first encounter with a slipway. I don't have a good answer for the second part of the question, but I believe I can provide a satisfactory response to the first.$(br)From what I can tell, a slipway is a tiny hole in space, the other side of which is the media realm known as the Noosphere.",
- "oneironaut.page.lore.science1.2": "The wisp-like phenomena that emerge from it are formed when the vast ambient media of the Noosphere attempts to rush through the hole (much like gas leaking into a near-vacuum) and gets tangled in a manner similar to how wisp-summoning spells weave the media which they consume.",
- "oneironaut.page.lore.science1.3": "Additionally, it seems that slipways have a sort of barrier over the entrance, preventing any matter from passing through. If this barrier could be pierced, and the hole expanded, the slipway would become capable of absorbing matter into the noosphere. It would also cease producing wisps, as the media coming through would do so far more slowly, and thus not be agitated and tangled. If one were to attempt this, they would have to be careful not to widen it too greatly, or they would risk the surrounding area being absorbed into the noosphere.",
-
- "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
-
- "oneironaut.page.lore.science2.1": "What a strange place. The liquid that comprises the ocean here is not much denser than water, but small islands float in it despite being comprised of a rock similar in density to ordinary basalt. What's more, everything seems strangely ephemeral, like a dream. But how could this be a dream, when I am more lucid than I've ever been before?",
- "oneironaut.page.lore.science2.2": "It seems this great lucidity is a product of the ambient media present here, lubricating my thoughts. These media levels even exceed those present at the cores of wisps, reducing their innate decay to infinitesimal levels. Interestingly, this has no effect on wisps which bear an imprint of someone else's soul, preventing me from using wisps as indefinite truename storage.$(br)This ambient media even leaks through sufficiently-large dimensional rifts, preserving wisps on the other side as long as they remain within a certain range of the rift.",
- "oneironaut.page.lore.science3.1": "This crystal is quite fascinating. An object formed from pure media, orders of magnitude denser than conventional conjured blocks, or even the condensed media crystals that some of my colleagues at the library have been studying. It doesn't even contain the trace amounts of silicon dioxide found in amethyst of similar media density. And when I leave it unattended for a while, dust collects in fractalline patterns, as if the crystal bears a passive spell-like effect.",
- "oneironaut.page.lore.science3.2": "Examining it more thoroughly under a microscope, it seems that these fractals extend beneath the surface of the crystal, and are constantly shifting in a consistent pattern. Could this be a time crystal?",
- "oneironaut.page.glow_ambit.1": "Despite diligent research, the source of the special properties of other hexcasters' entity references has eluded me. However, I've discovered a way to bestow one such property upon other beings, at least temporarily (and flashily).$(br)This spell allows casters to affect creatures from great distances just like the infinite-range aspect of a player reference. However, one must still be close to the target in order to perform the initial application.",
- "oneironaut.page.glow_ambit.2": "Accepts a living entity, and allows it to be accessed from anywhere for one minute. Has a base cost of one amethyst shard, plus one additional shard per application before allowing it to expire.",
- "oneironaut.page.glow_ambit.3": "It seems that this effect functions by causing the target to emit some sort of psionic resonance, strong enough to cause its outline to be \"visible\" through all manner of barriers (perhaps hexcasters naturally produce this same resonance, but much subtler?). However, this glow is distinct from that induced by spectral arrows and similar, so don't bet on things to detect that working for this.",
- "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:oneironaut:patterns/idea_inscription)Idea Inscription$(/l).",
- "oneironaut.page.soulprints.2": "Returns my soulprint, mishapping if cast using anything other than a staff. Costs a negligible amount of media.",
- "oneironaut.page.soulprints.3": "Invisibly engraves my soulprint onto the item in my other hand, or erases it if it is already there. Costs 1 amethyst dust.$(br)I should be careful to seal any focuses or similar that I sign, as acquiring an unsealed signed focus may allow someone to impersonate me, and Erase Item gets rid of the signature.",
- "oneironaut.page.soulprints.4": "Accepts a soulprint, and checks if the item in my other hand is engraved with it. Returns true if so, false otherwise. Costs a negligible amount of media.",
- "oneironaut.page.hover_elevator.1": "By combining materials native to the noosphere with certain ingredients associated with levitation, I can create a device which produces streams of propulsive energy capable of carrying me along them, with minimal risk of falling. To use it, it must be placed facing directly towards another one (which must be facing it in turn). Once I've done this, both ends must be activated with a",
- "oneironaut.page.hover_elevator.2": "redstone signal, and the energy stream will form between the paired emitters, assuming they are within range of each other (64 meters horizontally, or 128 vertically). By stepping into the stream, I will be held in place until I look towards either end of the stream, at which point I will be accelerated in that direction until I hit a maximum speed proportional to how closely my vision parallels the stream. Crouching causes the stream to hold me in place regardless of my gaze.",
- "oneironaut.page.hover_elevator.3": "$(o)Best to don some long fall boots the first time I try these.",
- "oneironaut.page.hover_elevator.meme":"$(o)Bad and naughty hexcasters get sent to the hover cube.",
- "oneironaut.page.hover_elevator.4": "Additionally, I can create a repeater capable of extending the range of the emitters when placed between them, such that the stream can continue on as if it had just left the emitter. Of course, such an extension requires more powerful components, and even then the stream can only be extended by three repeaters before it becomes too unstable to form.",
- "oneironaut.page.hover_elevator.5": "Fortunately, this device seems to be rather immaterial for some reason, and I can pass straight through it without having to carefully twist around it in the stream.$(br)$(o)No, it does not make the stream pause for a moment before continuing.",
- "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:oneironaut:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
- "oneironaut.page.flayrevival.2": "Accepts a flayed mob, and creates an artifical pseudo-mind to inhabit its body. Costs 16 charged amethyst when used on a villager, or 10 amethyst shards for anything else.",
- "oneironaut.page.flayrevival.3": "While these pseudo-minds are capable of moving their bodies around as if they were their original inhabitants, they are too simple to be called truly sapient, even with the rather loose definition of the term that must be used when applying it to villagers. As such, any villager \"restored\" in this manner loses any professional experience it had before, and cannot gain such experience ever again.",
- "oneironaut.page.flayrevival.4": "They do, however, regain their ability to reproduce, with any children they produce being untainted by my craft.$(br2)I'm not sure why the restored villagers suddenly gain an affinity for green clothing, but at least it serves as a good indicator of which villagers will be of little further use.",
- "oneironaut.page.monkfruit.1": "I've discovered that using the $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l) spell on a Sweet Berry Bush produces a rather interesting plant. It is much like the shrub it mutates from, however its thorns are imbued with a media field which siphons the minds of pricked creatures into the plant in order to grow. It can grow without this (albeit slowly), though it still requires minds nearby to provide small amounts of media.",
- "oneironaut.page.monkfruit.2": "The fruit that this bush produces is quite sweet, and can be processed into sugar. Additionally, eating one seems to release bits of media into the air, which seek out rechargeable items on my person. I should be wary of the thorns while picking the fruit.",
- "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:oneironaut:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
- "oneironaut.page.monkfruit.4": "$(o)It's not rocket science.$()",
-
- "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
- "oneironaut.advancements.noosphere.enter": "A Realm of Thought and Dream",
- "oneironaut.advancements.noosphere.enter.description": "Enter the Noosphere",
- "oneironaut.advancements.noosphere.find_tower": "A Timeless Classic",
- "oneironaut.advancements.noosphere.find_tower.description": "Discover the tower of an unknown hexcaster",
- "oneironaut.advancements.noosphere.find_media_lab": "Crystallized",
- "oneironaut.advancements.noosphere.find_media_lab.description": "Discover a grim experiment",
- "oneironaut.advancements.noosphere.find_garden": "Stranded",
- "oneironaut.advancements.noosphere.find_garden.description": "Discover an unfortunate soul's last reminder of home",
- "oneironaut.advancements.lore.root": "Oneironaut Lore",
- "oneironaut.advancements.lore.root.description": "Memories lost to time",
- "oneironaut.advancements.lore.treatise1": "Hexcaster's Memory #1",
- "oneironaut.advancements.lore.treatise1.description": "Reflections on iota embedding",
- "oneironaut.advancements.lore.treatise2": "Hexcaster's Memory #2",
- "oneironaut.advancements.lore.treatise2.description": "Reflections on efficient use of Impulse",
- "oneironaut.advancements.lore.treatise3": "Hexcaster's Memory #3",
- "oneironaut.advancements.lore.treatise3.description": "Reflections on repeated patterns",
- "oneironaut.advancements.lore.treatise4": "Hexcaster's Memory #4",
- "oneironaut.advancements.lore.treatise4.description": "Reflections on long hexes",
- "oneironaut.advancements.lore.science1": "Scientist's Memory #1",
- "oneironaut.advancements.lore.science1.description": "Research into the nature of slipways",
- "oneironaut.advancements.lore.science2": "Scientist's Memory #2",
- "oneironaut.advancements.lore.science2.description": "Research into the properties of the Noosphere",
- "oneironaut.advancements.lore.science3": "Scientist's Memory #3",
- "oneironaut.advancements.lore.science3.description": "Research into the structure of pseudoamethyst",
- "oneironaut.advancements.unflay": "Recycling!",
- "oneironaut.advancements.unflay.description": "Surely you weren't going to just throw that away!",
- "oneironaut.advancements.ouchie": "Ouch!",
- "oneironaut.advancements.ouchie.description": "What did you expect?",
-
- "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
- "hexcasting.mishap.oneironaut:badcuboid.mismatch": "Supplied cuboids are dissimilar.",
- "hexcasting.mishap.oneironaut:badcuboid.toobig": "Supplied cuboids are too big.",
- "hexcasting.mishap.oneironaut:uninfusable": "Expected an infusable block at %s, but got %s.",
- "hexcasting.mishap.oneironaut:nonconjured": "Expected a conjured block at %s, but got %s.",
- "hexcasting.mishap.oneironaut:nonoosphere": "Expected one end of the transfer to be a special dimension.",
- "hexcasting.mishap.oneironaut:norod": "Expected to be cast from a Reverberation Rod.",
- "hexcasting.mishap.oneironaut:norodremote": "Expected an active Reverberation Rod in hand.",
- "hexcasting.mishap.oneironaut:missingeffect": "Expected %s to be affected by %s, but they are not.",
- "hexcasting.mishap.oneironaut:missingenchant": "Expected %s to be enchanted with %s, but it is not.",
- "hexcasting.mishap.oneironaut:unhappyslime": "The slime says \"%s\"",
- "hexcasting.mishap.oneironaut:norequirediota": "The slime demands %s",
- "hexcasting.mishap.oneironaut:requiresdifferententities": "an entity different from the target",
- "hexcasting.mishap.oneironaut:nostaff": "%s expected to be cast using a staff.",
- "oneironaut.mishap.noitemframe": "an item frame",
- "oneironaut.mishap.invalidideakey": "a vector, player, or soulprint",
- "oneironaut.mishap.unenlightenedtarget": "an enlightened player",
- "oneironaut.mishap.notbrainswept": "a flayed villager",
- "oneironaut.mishap.badentitykey": "an enlightened player or a flayed villager",
- "oneironaut.mishap.nolistsallowed": "a non-list iota",
- "oneironaut.mishap.entitytypelistplease": "a list of entity types",
- "oneironaut.mishap.wrongsizelist": "List is improperly sized.",
- "oneironaut.mishap.twovectorsplease": "List does not contain two vectors.",
- "oneironaut.mishap.requiresflayedmob": "%s expected a flayed mob, but got %s.",
- "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "a spatial imprint",
- "hexcasting.mishap.invalid_value.class.oneironaut:status": "a status effect",
- "hexcasting.mishap.invalid_value.class.oneironaut:visiblestatus": "a detectable status effect",
- "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "a soulprint",
-
- "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
- "hexcasting.iota.oneironaut:dim": "Dimension",
- "hexcasting.iota.oneironaut:potion": "Status Effect",
- "hexcasting.iota.oneironaut:uuid": "Soulprint",
- "hexcasting.iota.oneironaut:uuid.label": "Soulprint of %s",
- "biome.oneironaut.noosphere_sea": "Noosphere Sea",
- "text.oneironaut.clearIdeasResponse": "Cleared iota storage map.",
- "effect.oneironaut.detection_resistance": "Media Shroud",
- "effect.oneironaut.not_missing": "Uplifting Resonance",
- "effect.oneironaut.missing": "Broken Potion Iota",
- "enchantment.oneironaut.overcast_damage": "Mind Render",
- "itemGroup.oneironaut.oneironaut": "Oneironaut",
- "oneironaut.tooltip.wispcapturedevice.haswisp": "Contains a wisp with %s dust and hex signature %s.",
- "oneironaut.tooltip.wispcapturedevice.nowisp": "No wisp.",
- "oneironaut.tooltip.wispcapturedevice.uninitialized": "Media reservoir has not been initialized.",
- "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
-}
diff --git a/projects/1.19/assets/oneironaut/oneironaut/lang/zh_cn.json b/projects/1.19/assets/oneironaut/oneironaut/lang/zh_cn.json
deleted file mode 100644
index d30c62376979..000000000000
--- a/projects/1.19/assets/oneironaut/oneironaut/lang/zh_cn.json
+++ /dev/null
@@ -1,355 +0,0 @@
-{
- "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
- "hexcasting.spell.oneironaut:getdim1": "空间之精思",
- "hexcasting.spell.oneironaut:getdim2": "空间之精思,第二型",
- "hexcasting.spell.oneironaut:getdimoverworld": "家园之精思",
- "hexcasting.spell.oneironaut:getdimnether": "狱界之精思",
- "hexcasting.spell.oneironaut:getdimheight": "阿特拉斯之分解",
- "hexcasting.spell.oneironaut:getdimscale": "空程之纯化",
- "hexcasting.spell.oneironaut:dimteleport": "智识门径",
- "hexcasting.spell.oneironaut:infusemedia": "媒质灌注",
- "hexcasting.spell.oneironaut:swapspace": "空间互换",
- "hexcasting.spell.oneironaut:paintconjured": "外化染色剂",
- "hexcasting.spell.oneironaut:craftrod": "指挥法杖",
- "hexcasting.spell.oneironaut:getrodlook": "指挥棒之精思",
- "hexcasting.spell.oneironaut:getrodpos": "指挥棒之精思,第二型",
- "hexcasting.spell.oneironaut:getrodstamp": "节拍器之精思",
- "hexcasting.spell.oneironaut:delayrod": "节拍器之策略",
- "hexcasting.spell.oneironaut:haltrod": "终曲",
- "hexcasting.spell.oneironaut:resetrod": "安可",
- "hexcasting.spell.oneironaut:readrodram": "威廉姆斯之精思",
- "hexcasting.spell.oneironaut:writerodram": "威廉姆斯之策略",
- "hexcasting.spell.oneironaut:readrodramremote": "威廉姆斯之精思,第二型",
- "hexcasting.spell.oneironaut:writerodramremote": "威廉姆斯之策略,第二型",
- "hexcasting.spell.oneironaut:queryrod": "指挥家之精思",
- "hexcasting.spell.oneironaut:rodloopactive": "指挥家之精思,第二型",
- "hexcasting.spell.oneironaut:craftbottomlesstrinket": "制作无底缀品",
- "hexcasting.spell.oneironaut:readframerotation": "装潢师之纯化",
- "hexcasting.spell.oneironaut:setframerotation": "装潢师之策略",
- "hexcasting.spell.oneironaut:writeidea": "刻印思绪",
- "hexcasting.spell.oneironaut:readidea": "收回思绪",
- "hexcasting.spell.oneironaut:readideatime": "元数据之纯化",
- "hexcasting.spell.oneironaut:readideawriter": "元数据之馏化",
- "hexcasting.spell.oneironaut:particleburst": "粒子迸发",
- "hexcasting.spell.oneironaut:readsentinel": "检视哨卫",
- "hexcasting.spell.oneironaut:resistdetection": "隐匿遮罩",
- "hexcasting.spell.oneironaut:detectshroud": "辨察遮罩",
- "hexcasting.spell.oneironaut:invisibility": "隐阳当空",
- "hexcasting.spell.oneironaut:circle": "圆",
- "hexcasting.spell.oneironaut:getstatus": "药师之纯化",
- "hexcasting.spell.oneironaut:getstatuscategory": "药师之纯化,第二型",
- "hexcasting.spell.oneironaut:getstatusduration": "药剂师之馏化",
- "hexcasting.spell.oneironaut:getstatuslevel": "药剂师之馏化,第二型",
- "hexcasting.spell.oneironaut:getbystatus": "区域之提整:状态",
- "hexcasting.spell.oneironaut:getbystatusinverse": "区域之提整:非状态",
- "hexcasting.spell.oneironaut:getbystatussingle": "实体之馏化:状态",
- "hexcasting.spell.oneironaut:removestatus": "清除状态",
- "hexcasting.spell.oneironaut:applymindrender": "赋能意识撕裂者",
- "hexcasting.spell.oneironaut:reviveflayed": "灌注精神",
- "hexcasting.spell.oneironaut:advanceautomaton": "质胞生成",
- "hexcasting.spell.oneironaut:filteredentityraycast": "侦查员之提整",
- "hexcasting.spell.oneironaut:gaussianrand": "熵之精思,第二型",
- "hexcasting.spell.oneironaut:applynotmissing": "扬升共振",
- "hexcasting.spell.oneironaut:getsoulprint": "灵魂印记之精思",
- "hexcasting.spell.oneironaut:signitem": "签印物品",
- "hexcasting.spell.oneironaut:checksignature": "签印之纯化",
-
- "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
- "item.oneironaut.pseudoamethyst_shard": "伪紫水晶碎片",
- "item.oneironaut.shifting_pseudoamethyst": "易形伪紫水晶",
- "item.oneironaut.thought_slurry_bucket": "思维浆液桶",
- "item.oneironaut.reverberation_rod": "回响之杖",
- "item.oneironaut.endless_phial": "无穷媒质之瓶",
- "item.oneironaut.bottomless_trinket": "无底缀品",
- "item.oneironaut.echo_staff": "回响法杖",
- "item.oneironaut.beacon_staff": "科技法杖",
- "item.oneironaut.spoon_staff": "勺子",
- "item.oneironaut.pigment_flame": "火焰染色剂",
- "item.oneironaut.pigment_echo": "回响染色剂",
- "item.oneironaut.pigment_noosphere": "智识染色剂",
- "item.oneironaut.memory_fragment": "记忆碎片",
- "item.oneironaut.memory_fragment.all": "似乎我已经集齐了这些晶体中所有我能找到的记忆……",
- "item.oneironaut.wisp_capture_device": "咒灵牧织器",
- "item.oneironaut.mind_scalpel": "突触手术刀",
- "item.oneironaut.monkfruit": "修道果",
- "item.oneironaut.rending_thorns": "裂识荆棘",
-
- "block.oneironaut.noosphere_gate": "神秘裂口",
- "block.oneironaut.pseudoamethyst_block": "伪紫水晶块",
- "block.oneironaut.pseudoamethyst_cluster": "伪紫水晶簇",
- "block.oneironaut.pseudoamethyst_bud_small": "小型伪紫水晶芽",
- "block.oneironaut.pseudoamethyst_bud_medium": "中型伪紫水晶芽",
- "block.oneironaut.pseudoamethyst_bud_large": "大型伪紫水晶芽",
- "block.oneironaut.thought_slurry": "思维浆液",
- "block.oneironaut.thought_slurry_flowing": "流动的思维浆液",
- "block.oneironaut.noosphere_basalt": "智识界玄武岩",
- "block.oneironaut.wisp_lantern": "咒灵灯笼",
- "block.oneironaut.wisp_lantern_tinted": "遮光咒灵灯笼",
- "block.oneironaut.super_budding": "伪紫水晶母岩",
- "block.oneironaut.sentinel_sensor": "哨卫探测器",
- "block.oneironaut.raycast_blocker": "反射线追踪板岩",
- "block.oneironaut.raycast_blocker_glass": "反射线追踪玻璃",
- "block.oneironaut.sentinel_trap": "探察促动石",
- "block.oneironaut.circle": "§0§o圆",
- "block.oneironaut.hex_resistant_block": "咒术防护黑曜石",
- "block.oneironaut.media_ice": "贤能智冰",
- "block.oneironaut.media_ice_frosted": "暂态贤能智冰",
- "block.oneironaut.media_gel": "精神原质团",
- "block.oneironaut.cell": "失协精神",
- "block.oneironaut.wisp_battery": "咒灵编织器",
- "block.oneironaut.decorative_wisp_battery": "初等咒灵编织器",
- "block.oneironaut.hover_elevator": "咒术师的悬浮桥链",
- "block.oneironaut.hover_repeater": "悬浮桥链中继器",
- "block.oneironaut.monkfruit_bush": "修道果丛",
-
- "fluid.oneironaut.thought_slurry": "思维浆液",
-
- "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
- "oneironaut.entry.dim_iotas": "维度 Iota",
- "oneironaut.entry.status_iotas": "状态 Iota",
- "oneironaut.entry.noosphere_main": "奇怪的领域",
- "oneironaut.entry.noosphere_materials": "富思维材料",
- "oneironaut.entry.wisp_lanterns": "咒灵设备",
- "oneironaut.entry.slipway_hint": "有关质道的精思",
- "oneironaut.entry.miscpatterns": "航梦:杂项图案",
- "oneironaut.entry.super_budding": "更好地量产媒质",
- "oneironaut.entry.idea_inscription": "思绪刻印",
- "oneironaut.entry.sentinel_detection": "哨卫侦测",
- "oneironaut.entry.detection_shielding": "侦测回避",
- "oneironaut.entry.raycast_assailant": "反咒术方块",
- "oneironaut.entry.mindrender": "意识撕裂者",
- "oneironaut.entry.soulprints": "灵魂印记",
- "oneironaut.entry.hover_elevator": "悬浮桥链",
- "oneironaut.entry.flayrevival": "人工意识",
-
- "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
- "oneironaut.page.spaceswap.1": "接受均由两个向量组成的两个列表,用于定义两个长方体,以及一个空间印记。所定义的长方体必须保证尺寸与朝向一致。",
- "oneironaut.page.spaceswap.2": "我不太清楚这个图案具体能做什么,它总是对我喊着什么“特殊维度”。也许它需要这种特殊维度作为中介?",
- "oneironaut.page.spaceswap.3": "将我所处维度中第一个长方体包含的方块(需在影响范围内)与空间印记对应维度中第二个长方体包含的方块互换。$(l:https://www.desmos.com/calculator/ydbg8zhmyp)消耗以紫水晶粉计,前 1001 个方块遵循对数消耗,之后则按照线性关系增加$(/l)。$(br)不会互换不可破坏的方块。$(br)两维度之一或两者均需为智识界。",
- "oneironaut.page.spaceswap.4": "两维度之一或两者均需为智识界。",
- "oneironaut.page.paintconjured.1": "接受一个向量与代表染色剂的物品类型。如果目标方块属于我,则消耗极少量媒质;否则消耗 1 个紫水晶粉。",
- "oneironaut.page.paintconjured.2": "将所给位置处构筑方块的颜色设置为所给染色剂的颜色;如果传入的是 Null,则将其设置为我意识的颜色。$(br2)不保证对非传统构筑物质有效。",
- "oneironaut.page.paintconjured.3": "这种效果让人心神愉悦,有点奇怪。就好像它曾用于某个盛大的节庆活动,与会队伍会把自己队的颜色泼洒到对手的领地上,类似于意识层面上的占领。",
- "hexcasting.spell.oneironaut:dimteleport.samedim": "这个法术什么都不会做,类似让已经在家的人回家。",
- "oneironaut.page.dim_iotas.1": "我发现了一种新 iota,它们似乎象征着现实本身的某一层面。为方便理解,我决定称其为“空间印记”。",
- "oneironaut.page.dim_iotas.2": "返回象征着我所处维度的空间印记。消耗极少量媒质。",
- "oneironaut.page.dim_iotas.3": "返回象征着我哨卫所处维度的空间印记。消耗 1/10 个紫水晶粉。",
- "oneironaut.page.dim_iotas.4": "返回象征着主世界的空间印记。消耗 1/10 个紫水晶粉。",
- "oneironaut.page.dim_iotas.5": "返回象征着下界的空间印记。消耗 1/10 个紫水晶粉。$(br)这个法术的施放总有些不够顺畅。也许我需要$(#54398a)再精进我的技术$()……",
- "oneironaut.page.dim_iotas.6": "接受一个空间印记,返回对应维度中可存在方块的最低和最高海拔。",
- "oneironaut.page.dim_iotas.7": "接受一个空间印记,返回对应维度中1格距离相当于主世界中的几格距离。",
- "oneironaut.page.dimteleport.1": "接受一个实体和一个空间印记,将所给实体传送入对应维度的同一位置。消耗 20 个充能紫水晶。$(br2)传入其他玩家时会失效。",
- "oneironaut.page.dimteleport.2": "如果在离开原先所处维度的同一时刻,用此法术返回该维度,则消耗会减少到 5 个紫水晶粉:法术会捕捉残存的媒质以将我传送回原来的位置。其他情况下,则会在目的地周围找个安全的位置作为目的地,甚至有可能构筑方块以防止坠落而亡。$(br2)我在用这个法术时总有种奇怪的加速感,但我无法理解加速度到底是朝着哪个轴的。",
- "oneironaut.page.infusemedia.1": "接受一个向量,并向该位置方块中注入媒质,以嬗变该方块。消耗量与具体效果随目标变化而变。",
- "oneironaut.page.infusemedia.2": "概念上来看,此法术与$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)类似。$(br)然而,这种方法灌注的媒质相较之下经过精细调校,因此能产生更为有意思的效果。",
- "oneironaut.page.wisp_lanterns.1": "我发现,若是使用了独属于智识界的材料,便能制造出一种特殊的罐子,它能产生并容纳一只微型咒灵。这种咒灵尽管无法施法,但能发出相当的光,还会模拟它看见的染色剂。$(br)我还能用遮光玻璃制造同类物品,避免咒灵的光亮影响到我书房的美学设计。",
- "oneironaut.page.wisp_lanterns.2": "此外,往这些照明用咒灵里注入大量的媒质,就可强令其分裂自身。新产生的咒灵与质道产生的游走咒灵几乎完全一致。$(br2)以此类方式分裂咒灵的设备接受任意存储媒质的物品,可通过漏斗一类的装置送入。它最多能存储相当于 640 个充能紫水晶的媒质。",
- "oneironaut.page.wisp_lanterns.3": "给予红石信号即可激活。它每 4 秒产生 1 个咒灵,同时消耗 2 个充能紫水晶。$(br)合成时所用媒质之瓶的容量和媒质量对产物无影响。",
- "oneironaut.page.wisp_lanterns.4": "还可制造一类完全不消耗(和接受)媒质的设备,它所生成的咒灵拆解后总媒质量为 0。$(br2)闪亮球珠仍在,不见代价惹忧!",
- "oneironaut.page.wisp_lanterns.5.originaltoolong": "参照类似原理,我设计了一种能够捕获(并容纳)咒灵的设备,之后再释放出去。不过游走咒灵太过不稳定,无法捕获。$(br)此设备的媒质容量为 64 个充能紫水晶(可重充能)。捕获我自己的咒灵消耗 1 个紫水晶碎片,捕获他人的咒灵消耗咒灵中媒质量的 1.5 倍。直接对咒灵使用即可捕获它,吸入外壳中(需有足量媒质,且其中未存有咒灵)。",
- "oneironaut.page.wisp_lanterns.5": "参照类似原理,我设计了一种能够捕获、存储、释放咒灵的设备,不过它对游走咒灵无效。捕获我自己的咒灵消耗 1 个紫水晶碎片,捕获他人的咒灵消耗相当于 1.5 倍咒灵中媒质量的媒质。直接对咒灵使用即可捕获它,设备自身需有足量媒质,且其中未存有咒灵。",
- "oneironaut.page.wisp_lanterns.6": "释放循环型咒灵时,它会出现在所指方块的旁边。弹射式咒灵则会从我的脸前发射出去,保留捕获前速度(方向不保留)。潜行时使用物品,即可丢弃存储的咒灵。",
- "oneironaut.page.wisp_lanterns.7": "初始化此装置的媒质储库时,需手持后对我自己的咒灵使用。该咒灵会消散且无法召回,装置的媒质容量会设为与该咒灵一致,按紫水晶粉向上取整。若需重设此数据(以及其他所有数据与配置),将其单独放在合成方格中合成即可。",
-
- "oneironaut.page.noosphere_materials.1": "一种奇怪的流体,会搅混进入其中的媒质,并阻止紫水晶晶体的形成。浸在其中时,它会以愉悦的方式刺激我的意识。",
- "oneironaut.page.noosphere_materials.2": "主要由媒质构成的岩石,原理不明。可合成法术环方块。",
- "oneironaut.page.noosphere_materials.3.title": "伪紫水晶",
- "oneironaut.page.noosphere_materials.3": "一大块媒质晶体,与紫水晶类似但不完全相同。触摸时会有种嗡鸣感,就好像媒质在刺激神经一般。不加以特殊措施直接破坏会将其破碎为 1 到 4 块碎片。",
- "oneironaut.page.noosphere_materials.4": "这些碎片能驱动法术,且比普通紫水晶提供的能量稍多一些。也能用来制造些有趣的物件。",
- "oneironaut.page.noosphere_materials.5": "一种固态的媒质,由思维浆液在富媒质环境中冻结而得。这种冻结也可由咒术造成。$(br)其表面的摩擦系数似乎为负,任何在其上滑动的事物会无限加速(虽然较慢)。",
- "oneironaut.page.noosphere_materials.6": "一类极其黏稠的媒质,拥有极为基础的认知能力,与黏菌类似。它通常情况下表现出惰性,但会以类似法术的能力试图困住触碰到它的事物。",
- "oneironaut.page.slipway_hint.1": "那些质道,它们一定能联通到$(o)某些地方$()。咒灵不会凭空出现。不管我怎么尝试,我最多只能让一根手指穿过那道混沌的裂口。$(br2)我大概是想错了。与其凭蛮力穿过裂口,也许还是尝试平息风暴更为有效。",
- "oneironaut.page.slipway_hint.2": "大量的调谐媒质应该就能做到……",
- "oneironaut.page.slipway_hint.2.title": "嗯……",
- "oneironaut.page.noosphere_main.1": "我成功了。$(br)质道另一端的领域。环境中的媒质多到难以想象。我的意识正朝我尖啸,叫喊着我不应该在这里。但我必须前进。这里就是旅途的下一站。",
- "oneironaut.page.noosphere_main.2": "我在此勘测的每一件事物似乎主要都由媒质构成,很像构筑物质,但浓度高出了几个数量级。$(br)$(o)就连空气都是媒质。我是怎么呼吸的?$(br2)$(l)我又是怎么能存在于此的?",
- "oneironaut.page.rod.1": "我发现我能用远古城市中找到的奇怪碎片合成一种奇异的施法物品。$(br)这件物品的奇异之处,就在于集中思维时,它能以每秒 20 次的频率施放其中的咒术,直到产生事故或者我施放终曲和安可时才停止。如此会触发一段冷却时间,通常有大约 1 秒。",
- "oneironaut.page.rod.2": "回响碎片似乎包含着某种怪异形态的媒质。因此它具有循环自身的倾向,同时会保留一部分上一次施法时的信息。",
- "oneironaut.page.rod.3": "和$(l:patterns/spells/hexcasting)用于制造传统施法物品的法术$()类似。消耗 10 个充能紫水晶。",
- "oneironaut.page.rod.4": "使用回响之杖施放时,返回当前循环开始时我的视线向量。",
- "oneironaut.page.rod.5": "使用回响之杖施放时,返回当前循环开始时我的眼部位置。",
- "oneironaut.page.rod.6": "使用回响之杖施放时,返回当前循环开始时的时间戳。",
- "oneironaut.page.rod.7": "接受一个正整数。使用回响之杖施放时,将下一次施法延迟所给数个 1/20 秒。",
- "oneironaut.page.rod.8": "使用回响之杖施放时,强制停止当前循环。",
- "oneironaut.page.rod.9": "接受一个正整数。停止当前循环,并将冷却时间从 1 秒缩短至所给数个 1/20 秒。事故造成的冷却不受影响。",
- "oneironaut.page.rod.10": "接受一个非列表 iota,并将其存入当前循环。该 iota 会在循环结束时丢失。",
- "oneironaut.page.rod.11": "返回当前循环中存储的 iota。默认为 Null。",
- "oneironaut.page.rod.12": "检查当前施法者是否正在使用回响之杖,返回一个布尔值。",
- "oneironaut.page.rod.13": "与威廉姆斯之策略类似,但可在回响之杖被占用时,由其他施法方式施放。",
- "oneironaut.page.rod.14": "与威廉姆斯之精思类似,但可在回响之杖被占用时,由其他施法方式施放。",
- "oneironaut.page.rod.15": "检查施法者是否正在使用回响之杖,不要求是在使用当前杖。",
- "oneironaut.page.rod.16": "回响碎片也可用于制造法杖,不过这种法杖唯一的特殊性质便是发出些幽匿的声音。",
- "oneironaut.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
- "oneironaut.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
- "oneironaut.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
- "oneironaut.page.miscpatterns.4": "与$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)类似,但能够接受一个实体类型 iota 列表。类型不在该列表内的实体会被忽略。消耗的媒质量略多于上文所提图案的“极少量”。",
- "oneironaut.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布。",
- "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
- "oneironaut.page.super_budding.1": "我发现智识界出产的一种类紫水晶物质会接受村民的意识,这点和普通的紫水晶一样。不过,接受意识所得方块的媒质产量相当高,远超出普通紫水晶母岩的能力,而且只要足够小心就能捡起它搬走。",
- "oneironaut.page.super_budding.2": "比起使用普通紫水晶来说,使用伪紫水晶需要更强大的意识,但得到的回报绝对值得。",
- "oneironaut.page.super_budding.3": "此外,在智识界中培育时,伪紫水晶母岩会产生伪紫水晶簇,而不是普通的紫水晶。自然,这些晶簇掉落的是伪紫水晶碎片,但同时也会掉落一种不甚稳定的伪紫水晶,其媒质含量是普通碎片的四倍。正是由于这种不稳定性,此类伪紫水晶无法直接转换为媒质。但把它和其他形态的媒质水晶放在一起,即可令其转变为那种形态。",
- "oneironaut.page.super_budding.4": "它似乎对我的凝视有了反应,就好像它有某种感知力一样。",
- "oneironaut.page.super_budding.5": "就算让伪紫水晶母岩浸没在思维浆液中,抑制晶体的形成,它的媒质生成率依然足够平常使用。尽管总供给量近乎无穷,但单个操作能使用的媒质量相当少;就像一片几十万几百万千米宽,但只有几厘米深的海洋。而由于其深度极为有限,在远距获取使用(如为物品充能等)时,其中的媒质会在抵达法杖前迅速消散殆尽。",
- "oneironaut.page.super_budding.6": "常态提供大约与 1/10 个紫水晶粉相当的媒质。虽然我$(o)可以$()同时持有好多个来轻松获取媒质,但每个媒质瓶带来的增量会快速减少。",
- "oneironaut.page.super_budding.7": "还可以往缀品里塞一个,以让无穷媒质之瓶为其供应媒质。但是,如此操作后,缀品便不会再接受其他来源的媒质。",
- "oneironaut.page.super_budding.8": "向另一只手中的无底缀品写入咒术。消耗 10 个充能紫水晶。",
- "oneironaut.page.idea_inscription.1": "智识界是思维的领域,它能用来存储信息也就顺理成章。这些图案就能把 iota 刻印入智识界,并能读出它们(不论当前身处什么维度)。它们还能把 iota 存储到其他生物的意识中,当然它们的意识也需和我一样……$(o)无拘无束$()。在相关描述中,用于指代向量和有效实体的词是“键”/“key”。",
- "oneironaut.page.idea_inscription.2": "这种操作用途不少,但智识界的环境媒质处于常态的运动中,任何存入其中的 iota 终会消解,和往海洋中倒热水没什么区别。似乎这种信息在变为无用的垃圾前能存在一小时。$(br2)$(l:greatwork/akashiclib)阿卡夏图书馆$(/l)的原理貌似与之类似,书架则相当于用来避免消解的阻隔层。",
- "oneironaut.page.idea_inscription.3": "接受一个有效键以及任意 iota,并将所给 iota 存入相应位置。消耗大约 1/4 个紫水晶粉。",
- "oneironaut.page.idea_inscription.4": "接受一个有效键,并返回相应 iota。消耗大约 1/4 个紫水晶粉。",
- "oneironaut.page.idea_inscription.5": "接受一个有效键, 并返回刻印对应 iota 的时间,或是返回 -1。不消耗媒质。",
- "oneironaut.page.idea_inscription.6": "接受一个有效键和一个代表玩家的 iota,并检验对应 iota 是否由所给玩家刻印。不消耗媒质。",
- "oneironaut.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
- "oneironaut.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
- "oneironaut.page.sentinel_detection.1": "将智识界的伪紫水晶和深暗之域的有机感测体结合起来,就是一种检测环境媒质中扰动的方式。这种新探测器会检测大约 16 米内的$(l:patterns/spells/sentinels)哨卫$(/l),检测到则会根据最近哨卫的距离输出红石信号。如果最近的哨卫格外强大,则相邻的比较器会输出信号。",
- "oneironaut.page.sentinel_detection.2": "$(o)我相信监守者不会在意的。$()",
- "oneironaut.page.sentinel_detection.3": "除此之外,这种探测器还可整合到牧师促动石中,产物会在区域内存在哨卫时启动(不过探测半径较普通探测器较低)。我叫这种装置“探察促动石”。尽管它不再对红石信号产生反应,但会获取代表触发哨卫的所有者的 iota,并置入法术环咒术的初始栈。$(br)而由于施法时产生的媒质干扰,这种促动石无法侦测到自身放置的哨卫。",
- "oneironaut.page.sentinel_detection.4": "这种探测器不论侦测到谁的哨卫都为产生反应,我应当避免让我铺设的陷阱法术环瞄准我自己。",
- "oneironaut.page.sentinel_detection.5": "接受一个向量和一个玩家,并返回该位置到所给玩家哨卫的距离,或者返回 Null。消耗极少量媒质。",
- "oneironaut.page.sentinel_detection.6": "在所给位置坐标构筑一个短时探测器,它会“监听”环境媒质中的存在形态,以此分辨出最为明显的哨卫标记。",
- "oneironaut.page.detection_shielding.1": "传统的隐身药水足以迷惑常人的感官,但面对咒术则毫无作用,让事物完全无法侦测的方法还有待发现。然而,我找到的这个法术应当是向上述目标迈出的第一步。它能让媒质像糠皮一样盖在生物周围,以此干扰咒术的侦测手段。",
- "oneironaut.page.detection_shielding.2": "接受一个生物和一个数,并给予该实体持续所给数秒的咒术侦测护盾。每秒持续时间消耗 2 个紫水晶粉。",
- "oneironaut.page.detection_shielding.3": "同时每秒会消耗所影响实体 1/10 个紫水晶粉,护盾的构筑需要这些媒质。$(br2)我需要注意我把这种效果给予了什么事物,因为没有携带其他媒质来源的生物会消耗自身的意识来供给护盾。",
- "oneironaut.page.detection_shielding.4": "这种护盾在阻挡$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)和各种$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$(/l)时效果良好,但它对$(l:patterns/entities#hexcasting:get_entity)实体之纯化$(/l)的变种没有作用,那些操作已经包含所处位置的精确概念。而且,这层糠皮自身也有能量特征,尽管暗淡,依然可用特种图案侦测。",
- "oneironaut.page.detection_shielding.5": "接受一个向量和一个数,并返回以所给位置为起始,指向范围内带有遮罩的实体的单位向量列表,侦测半径为所给数。",
- "oneironaut.page.detection_shielding.6": "我还发现了能给予普通隐身效果的法术。和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,每 3 秒持续时间消耗 1 个紫水晶粉。",
- "oneironaut.page.raycast_assailant.1": "往方块中“织入”伪紫水晶,产物便能令抵达或穿过其的射线追踪(对实体的射线追踪也有效)返回 Null,就好像射线追踪没有检测到任何事物一样。",
- "oneironaut.page.raycast_assailant.3": "奇怪的是,以同种方式加工伪紫水晶和黑曜石的产物不具备阻碍射线追踪的能力,而是变得近乎无法被咒术摧毁。不过,产物的硬度也因此大幅下降,变得和普通石头没什么两样(爆炸抗性不变)。",
- "oneironaut.page.status_iotas.1": "这些图案主要操作代表生物身上长时效果的 iota,我可以用这些图案评估生物的状态,比只用护士之纯化更加深入彻底。$(br)虽然我的研究表明,代表瞬时效果的状态 iota 有存在的可能,但它们非常难以获取,而且我目前没想到它们有什么用途。",
- "oneironaut.page.status_iotas.2": "接受一个生物,并返回目标当前所有效果组成的列表 iota。",
- "oneironaut.page.status_iotas.3": "接受一个状态效果,并根据该效果对生物产生正面、负面,或中性影响返回一个数。",
- "oneironaut.page.status_iotas.4": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的持续时间,以秒计。",
- "oneironaut.page.status_iotas.5": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的强度。",
- "oneironaut.page.status_iotas.6": "接受一个状态效果和一个向量,并返回该处带有该状态效果的实体。",
- "oneironaut.page.status_iotas.7": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有带有给定状态效果生物的列表。",
- "oneironaut.page.status_iotas.8": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有无给定状态效果生物的列表。",
- "oneironaut.page.status_iotas.9": "接受一个实体和一个状态效果,并移除该实体身上的所给状态效果。消耗由效果自身的伤害性、强度、剩余持续时间决定。",
- "oneironaut.page.status_iotas.10": "若是要移除非自身实体身上的正面效果,则消耗会增加。$(br2)所有需要检测实体身上有无所给状态效果的图案都有副作用。如果该实体当前没有这种效果,则图案会失效,并给予我反胃。",
- "oneironaut.page.mindrender.1": "我曾读到过一种极其可怖的武器,“意识撕裂者”。古代的咒术师偶尔会用这种武器,它能将生物的思维直接斩断,造成的伤害无视所有已知保护手段。而且,如果造成的伤害令目标离真正的死亡仅一步之遥,则其会进入植物人状态,永远无法恢复如初。想到古代人使用这种物件的原因,我不由得寒透脊骨……",
- "oneironaut.page.mindrender.2": "接受带有锋利魔咒的物品,或放有此类物品的物品展示框,并将锋利转换为同等级的意识撕裂。消耗由魔咒等级决定,目标为书时额外消耗 50%%。",
- "oneironaut.page.lore.treatise1.1": "虽然施放咒术时能直接产生大多数 iota,但总会有不够便捷的情况,甚至于无法产生(例如庞大而精确的数和实体 iota)而不得不另辟蹊径。从核心之类的物品中读取 iota 也不错,但大多数情况下这么做需要第三只手,我很明显没有。从外部位置获取 iota 的其他方法也各有各的局限性。",
- "oneironaut.page.lore.treatise1.2": "而在无外部引用手段可用的情况下,所需的 iota 必须直接插入咒术本身。对部分人而言,这么做会有些不合常理。这是因为传统上的咒术是一个图案列表,但图案自己也是一种 iota,一种与$(l:patterns/meta#hexcasting:eval)赫尔墨斯之策略$(/l)(以及同类图案)协同效果很好的 iota。",
- "oneironaut.page.lore.treatise1.3": "尽管你没法直接把数放到列表里面,然后让它和使用$(l:patterns/numbers)数字之精思$(/l)一样压入栈顶,但有方法能做到。$(br2)最简单(也是最可靠)的方法是$(l:patterns/patterns_as_iotas#hexcasting:escape)考察$(/l)。和手动施法时一样,列表中其后方的任意事物会被转义并直接压入栈顶,而非和平时一样运行,如此就可避免运行非图案导致的事故。",
- "oneironaut.page.lore.treatise1.4": "然而,当你位于咒术中超过一层运行深度处(比如循环和嵌套的条件逻辑),转义 iota 所需的考察数量会极速增长。在那些能够由另一咒术运行的事物中,这种方法便不再可靠。",
- "oneironaut.page.lore.treatise1.4.link": "相关的 xkcd",
- "oneironaut.page.lore.treatise1.5": "更为可靠的转义 iota 方法是$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(/l)和$(l:patterns/patterns_as_iotas#hexcasting:close_paren)反思$(/l)。运行图案列表时,内省后方直到相应反思之间(内省和反思不计)的事物会被转义,并以列表形式压入栈顶,不论 iota 的类型如何。然后就可以用合适方式操作此列表,比如用$(l:patterns/lists#hexcasting:splat)群体之拆解$(/l)把列表中各项分别压入栈顶。",
- "oneironaut.page.lore.treatise1.6": "如果你的列表的结构与此类似:$(br2)内省$(br)任意 iota(s)$(br)反思$(br)群体之拆解$(br2)运行这些 iota 之后,栈中会压入内省与反思之间的所有 iota。",
- "oneironaut.page.lore.treatise2.1": "推动事物的标准做法是$(l:patterns/spells/basic#hexcasting:add_motion)驱动$(/l)。但是,如果想要事物极为迅速地移动,这种方法可能会昂贵到无法使用。这是因为消耗会随向量模长增大而极速增长。对单个目标使用多次模长为 1 的驱动就能减少这种影响,总消耗会从 n^2 降到 2n-1,其中 n 是向量的模长。",
- "oneironaut.page.lore.treatise2.2": "这种方法最简单的实现方式需要$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l),传入多个重复的实体 iota 组成的列表即可。当然也有其他(且通常更好的)方法存在。但除去重复绘制图案外,这些方法大多离不开循环这一命题,这就有点超出这篇文档的范畴了。",
- "oneironaut.page.lore.treatise3.1": "虽然$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l)极其适合同时对多个目标施放同一法术,但对同一目标施放多次法术就有点麻烦了。它不仅容易导致咒术的停止,运行开始后还无法添加或移除作用目标。$(br)而绕过这些局限也很简单,换用另一种循环即可。",
- "oneironaut.page.lore.treatise3.2.header": "While 循环",
- "oneironaut.page.lore.treatise3.2": "While 循环是一种在既定条件达成之前一直运行的循环,条件可以是实体的速度达到了给定值等。一个仅会复制自身再运行栈顶 iota 的图案列表就是这种循环最简单的实现方式。如果单独运行它,那么咒术会进入无限循环,除非产生事故不然不会停止。",
- "oneironaut.page.lore.treatise3.3": "向其中加入实际功能和一些布尔逻辑,就能创造出有用的 while 循环。前文所提无限循环的代码如下:$(br)内省$(br)双子之分解$(br)赫尔墨斯之策略$(br)反思$(br)双子之分解$(br)赫尔墨斯之策略$(br2)向其中加入根据条件是否运行列表内赫尔墨斯之策略的逻辑,达成相应条件后循环便会终止。",
- "oneironaut.page.lore.treatise3.4.header": "循环展开",
- "oneironaut.page.lore.treatise3.4": "“已展开循环”/“Unrolled loop”是一种更为复杂的循环。和托特之策略一样,构建时其迭代次数同样固定,难以增加修改。但如有需要,卡戎之策略可以令其提前停止。比较来看,这种循环仅产生一到两层递归深度(循环体运行所致深度不计),是其优势所在。先写定想要重复的图案列表,再多次复制,最后把所有列表合成一体,就实现了循环展开。",
- "oneironaut.page.lore.treatise3.5": "这一目标最简单的达成方式是$(l:patterns/stackmanip#hexcasting:duplicate)双子之分解$(/l)接$(l:patterns/lists#hexcasting:concat)组合之馏化$(/l),运行后原列表会重复 2 次。可重复使用此方法以复制原列表 2 的幂次,所得的列表在运行时只会产生一层递归深度。更灵活的做法则是使用$(l:patterns/stackmanip#hexcasting:duplicate_n)双子之策略$(/l)产生 $(o)n$() 个副本,再将 $(o)n-1$() 个组合之馏化放入列表并运行,如此便能把所有原列表副本合为一体。",
- "oneironaut.page.lore.treatise4.1": "我的一些呃,“同事”,在抄录长咒术时遇到了麻烦。$(br)“这东西好长!”$(br)“咒术网格都不够用了!”$(br)我认为这是$(bold)能力问题$()。这又不是那些绘制完最后一个反思后没法修改咒术的麻烦。只需把未完成的咒术存到核心中即可。(不过你应该注意为存储操作留出空间。)",
- "oneironaut.page.lore.treatise4.2": "完成之后,再用$(l:patterns/lists)列表操作$(/l)图案把各部分合起来就行了。$(br2)甚至都不需要用多个核心,写完一部分后把它接到核心中列表的后方,再把所得列表存入核心即可。多核心会让调试咒术更轻松,但据我目前所知,这也是多核心相对单核心唯一的优势。",
- "oneironaut.page.lore.science1.1": "$(o)“这是什么?我该怎么把它弄走?”$()$(br)大多数人在第一次遇见质道时都会产生这些疑问。我对第二个问题暂时没有答案,但回答第一个问题还是可以的。$(br)就我所知,质道是空间中的微小孔洞,其另一侧是称作“智识界”的媒质界。",
- "oneironaut.page.lore.science1.2": "质道中逸散的类咒灵现象是智识界中巨量的环境媒质试图迅速通过孔洞的结果(就像是气体扩散入接近真空的空间),这些媒质的纠缠卷绕方式与召唤咒灵法术中编织供咒灵消耗的媒质的方式类似。",
- "oneironaut.page.lore.science1.3": "此外,质道的入口处似乎存在某种屏障,任何物质都会被阻挡不得通过。如果这一屏障可被穿透,孔洞可被扩展,质道就可将物质吸收入智识界。这么做后质道不会再产生咒灵,是媒质的通过速度大大降低,不会再受扰动而缠绕的缘故。如果想要尝试,就需小心不要过度扩展,否则周围区域都有被吸收入智识界的危险。",
-
- "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
-
- "oneironaut.page.lore.science2.1": "真是个奇怪的地方。组成此处海洋的液体不比水致密多少,那些岛屿由密度类似玄武岩的岩石构成,却能浮在其中。而且,此处的所有事物都似乎瞬息万变,如梦似幻。但我比从前任何时候都要清醒,这又怎么会是梦境?",
- "oneironaut.page.lore.science2.2": "这种清醒感应当是此处环境媒质的效果,它会润滑我的思维。这里的媒质浓度甚至超过了咒灵的核心,它们的天然消耗也因此缩减到无穷小。有趣的是,那些带有某人灵魂印记的咒灵不会受此效应影响,因此咒灵无法用于长时存储真名。$(br)这些环境媒质甚至会从足够大的维度裂缝中渗漏出去,正是它维持了裂隙另一侧距离足够近的咒灵的形态。",
- "oneironaut.page.lore.science3.1": "这种晶体很是有趣。一件仅由媒质构成的物体,浓度超越了传统的构筑方块,甚至超越了我在图书馆中的同事们研究的那些致密媒质晶体。连媒质密度相近的紫水晶中的都有痕量二氧化硅,此晶体中却完全不存在杂质。而令其静置一段时间后,晶体粉末会以分形模式累积,就好像在持续不断地施法。",
- "oneironaut.page.lore.science3.2": "我在显微镜下详细检验了这种晶体,可观察到这些分形状结构会向晶体内部延伸,且会以固定模式一直变化。这有无可能是一种时间晶体?",
- "oneironaut.page.glow_ambit.1": "尽管经过了长久的研究,代表其他咒术师的 iota 中仍有些特殊性质的由来未能厘清。不过,我找到了一种赋予其他事物同样性质的方法,不敢说持久,但至少能暂时做到。(还很昂贵。)$(br)这种法术允许施法者跨越极远的距离影响生物,就和玩家 iota 的无限影响距离一样。但对目标施放这种法术时,依然需要离目标足够近。",
- "oneironaut.page.glow_ambit.2": "接受一个活体,在 1 分钟内即可在世界各处访问所给活体。基础消耗 1 个紫水晶碎片,在效应消退前每施放一次额外消耗 1 个紫水晶碎片。",
- "oneironaut.page.glow_ambit.3": "这种效果的原理似乎是让目标散发出某种超自然共振。这种共振相当强大,目标的轮廓隔着各种形式的障碍依然“可见”。(咒术师们也许就在持续产生这种共振,只不过是没有如此效果显著?)但是,这种辉光与光灵箭等造成的辉光不一样,不要指望监测那种辉光的仪器对这种也有效。",
- "oneironaut.page.soulprints.1": "灵魂印记和代表我自己的 iota 类似,功能中也有“代表我”这一项,但使用的限制会多出许多。除了通过我本人之外,他人没有方式获得灵魂印记,不过这些灵魂印记不受写入限制,和普通的玩家 iota 不一样。$(br2)有意思的是,灵魂印记也是$(l:oneironaut:patterns/idea_inscription)思绪刻印$(/l)的有效键。",
- "oneironaut.page.soulprints.2": "返回我自己的灵魂印记,使用除法杖之外的施法手段时会招致事故。消耗极少量媒质。",
- "oneironaut.page.soulprints.3": "将我的灵魂印记隐写到另一只手中的物品上,若已有灵魂印记则清除。消耗 1 个紫水晶粉。$(br)签印物品前要注意先将核心一类的物品密封,经过签印的未密封核心有身份泄露的风险,清除物品会同时去除签印。",
- "oneironaut.page.soulprints.4": "接受一个灵魂印记,并检查我另一只手中物品上是否有对应的隐写。若有,返回 True;否则返回 False。消耗极少量媒质。",
- "oneironaut.page.hover_elevator.1": "使用原产于智识界的材料,再加上与飘浮有关的原材料,做出的设备能够产生具有推动力的能量流;我站在其中也会被推动,而且很难摔出来。使用时必须令其朝向另外一个此类设备,也即两个此类设备需面对面放置。放置妥当后,两端均需以",
- "oneironaut.page.hover_elevator.2": "红石信号激活,若两者在各自范围内(水平方向 64 米,垂直方向 128 米),则其间会产生能量流。走入能量流后我会被固定在原地;往两端中的一端看时,会向该方向加速至最大速度。此最大速度与我的视线与能量流的平行程度成正比。潜行时会强制将我锁定在原地,无论往哪个方向看都是如此。",
- "oneironaut.page.hover_elevator.3": "$(o)在真的用这东西之前,我最好还是穿双远距防摔靴当保险。",
- "oneironaut.page.hover_elevator.meme":"$(o)淘气的咒术师会被送到飘浮方块里去喔。",
- "oneironaut.page.hover_elevator.4": "此外,还可以制造一个中继器,用于延长端设备的范围。经过此中继器的能量流会恢复至其刚离开端设备的状态。如此强大的器具自然需要强大的组件,但就算如此,能量流在经过 3 个中继器后,也会因太过不稳定而无法维持。",
- "oneironaut.page.hover_elevator.5": "好在由于某种原因,此设备并没有传统意义上的实体;也即在能量流中移动时可以直接穿过去,而不需要小心翼翼地绕过。$(br)$(o)不会的,它不会在延续能量流之前顿一下的。",
- "oneironaut.page.flayrevival.1": "剥离完意识的村民、或是被$(l:oneironaut:items/mindrender)意识撕裂者$(/l)摧残到仅剩最后一丝气息的生物,它们都变成了毫无用途的空壳,我对此相当苦恼。尽管它们$(o)确实$()能自己完成少数几种任务;但除此之外的大多数任务就连无智慧可言的野兽都能做好,它们却无能为力了。好在我发现了一个法术,能让这些空壳具有某种程度的认知能力。",
- "oneironaut.page.flayrevival.2": "接受一个已剥离意识的生物,并创造一个人工伪意识融入其中。对村民使用时消耗 16 个充能紫水晶,其余情况消耗 10 个紫水晶碎片。",
- "oneironaut.page.flayrevival.3": "这些伪意识确实能驱动躯体,一如身体的原主人,但它们离真正的所谓智慧还差得远,换成适用于村民的宽松定义也是一样。因此,以此方法“恢复正常”的村民会失去先前的职业经验,也无法再获取此类经验了。",
- "oneironaut.page.flayrevival.4": "不过,他们依然保留了繁衍的能力。他们的后代不会受到我先前行为的影响。$(br2)我不太确定为什么村民恢复后都喜欢上了绿色的衣物,但这种性质确实方便我辨识哪些村民不堪大用。",
- "oneironaut.page.monkfruit.1": "我发现对甜浆果丛使用$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)法术能变出一种相当有趣的植物。它和原来的灌木很像,但它的棘刺中融有媒质场,能吸走其刺中的生物的意识以让自己生长。它不刺人也能生长(虽然很慢),但仍需周围存在具有意识的生物才能结出少量媒质。",
- "oneironaut.page.monkfruit.2": "它结出的果实相当甜,且能加工处理成糖。而且,食用一颗似乎能向空气释放出些许媒质,又会进一步为我身上可以重新填充媒质的物品充入媒质。摘果子时务必要小心灌木中的刺。",
- "oneironaut.page.monkfruit.3": "成熟植株上剪下的枝条依然具有这些危险的性质,可以用来合成一把不祥的刀。$(br2)这把刀和附有低等级$(l:oneironaut:items/mindrender)意识撕裂$(/l)魔咒的剑类似,但它更为精确:撕裂意识时能把对形体的附带损伤降到最低。如果我有这个想法,当然可以把它用作普通的冷兵器,但确实要承担杀死目标的风险。",
- "oneironaut.page.monkfruit.4": "$(o)这又不是什么高端科技。$()",
-
- "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
- "oneironaut.advancements.noosphere.enter": "思维与梦的领域",
- "oneironaut.advancements.noosphere.enter.description": "进入智识界",
- "oneironaut.advancements.noosphere.find_tower": "永存经典",
- "oneironaut.advancements.noosphere.find_tower.description": "发现一座属于身份不详的咒术师的高塔",
- "oneironaut.advancements.noosphere.find_media_lab": "结晶",
- "oneironaut.advancements.noosphere.find_media_lab.description": "发现一次结局惨淡的实验",
- "oneironaut.advancements.noosphere.find_garden": "搁浅",
- "oneironaut.advancements.noosphere.find_garden.description": "发现一个不幸灵魂最后停留之处的遗迹",
- "oneironaut.advancements.lore.root": "航梦故事",
- "oneironaut.advancements.lore.root.description": "失落于时间的记忆",
- "oneironaut.advancements.lore.treatise1": "咒术师的记忆,#1",
- "oneironaut.advancements.lore.treatise1.description": "有关iota嵌入的精思",
- "oneironaut.advancements.lore.treatise2": "咒术师的记忆,#2",
- "oneironaut.advancements.lore.treatise2.description": "有关有效利用驱动的精思",
- "oneironaut.advancements.lore.treatise3": "咒术师的记忆,#3",
- "oneironaut.advancements.lore.treatise3.description": "有关重复图案的精思",
- "oneironaut.advancements.lore.treatise4": "咒术师的记忆,#4",
- "oneironaut.advancements.lore.treatise4.description": "有关长咒术的精思",
- "oneironaut.advancements.lore.science1": "科学家的记忆,#1",
- "oneironaut.advancements.lore.science1.description": "有关质道本质的研究",
- "oneironaut.advancements.lore.science2": "科学家的记忆,#2",
- "oneironaut.advancements.lore.science2.description": "有关智识界性质的研究",
- "oneironaut.advancements.lore.science3": "科学家的记忆,#3",
- "oneironaut.advancements.lore.science3.description": "有关伪紫水晶结构的研究",
- "oneironaut.advancements.unflay": "回收!",
- "oneironaut.advancements.unflay.description": "你肯定不会直接丢掉的!",
- "oneironaut.advancements.ouchie": "好痛!",
- "oneironaut.advancements.ouchie.description": "难道觉得不会痛吗?",
-
- "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
- "hexcasting.mishap.oneironaut:badcuboid.mismatch": "提供的长方体尺寸不相同。",
- "hexcasting.mishap.oneironaut:badcuboid.toobig": "提供的长方体尺寸过大。",
- "hexcasting.mishap.oneironaut:uninfusable": "本应在%s处有一个可灌注方块,而实际为%s。",
- "hexcasting.mishap.oneironaut:nonconjured": "本应在%s处有一个构筑的方块,而实际为%s。",
- "hexcasting.mishap.oneironaut:nonoosphere": "互换的其中一方需为一个特殊维度。",
- "hexcasting.mishap.oneironaut:norod": "需要以回响之杖施放。",
- "hexcasting.mishap.oneironaut:norodremote": "需要手持启动的回响之杖。",
- "hexcasting.mishap.oneironaut:missingeffect": "%s本应拥有%s,而实际没有。",
- "hexcasting.mishap.oneironaut:missingenchant": "%s本应带有%s魔咒,而实际没有。",
- "hexcasting.mishap.oneironaut:unhappyslime": "黏液说道:“%s”",
- "hexcasting.mishap.oneironaut:norequirediota": "黏液需要%s",
- "hexcasting.mishap.oneironaut:requiresdifferententities": "一个与目标不同的实体",
- "hexcasting.mishap.oneironaut:nostaff": "%s本应由法杖施放。",
- "oneironaut.mishap.noitemframe": "一个物品展示框",
- "oneironaut.mishap.invalidideakey": "一个向量、玩家或灵魂印记",
- "oneironaut.mishap.unenlightenedtarget": "一个经过启迪的玩家",
- "oneironaut.mishap.notbrainswept": "一个剥除意识的村民",
- "oneironaut.mishap.badentitykey": "一个经过启迪的玩家或剥除意识的村民",
- "oneironaut.mishap.nolistsallowed": "一个非列表iota",
- "oneironaut.mishap.entitytypelistplease": "一个实体类型列表",
- "oneironaut.mishap.wrongsizelist": "列表长度不合适。",
- "oneironaut.mishap.twovectorsplease": "列表未包含两个向量。",
- "oneironaut.mishap.requiresflayedmob": "%s本应获取一个已剥离意识的生物,而实际为%s。",
- "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "一个空间印记",
- "hexcasting.mishap.invalid_value.class.oneironaut:status": "一个状态效果",
- "hexcasting.mishap.invalid_value.class.oneironaut:visiblestatus": "一个可检测的状态效果",
- "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "一个灵魂印记",
-
- "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
- "hexcasting.iota.oneironaut:dim": "维度",
- "hexcasting.iota.oneironaut:potion": "状态效果",
- "hexcasting.iota.oneironaut:uuid": "灵魂印记",
- "hexcasting.iota.oneironaut:uuid.label": "%s的灵魂印记",
- "biome.oneironaut.noosphere_sea": "智识之海",
- "text.oneironaut.clearIdeasResponse": "已清除iota存储映射。",
- "effect.oneironaut.detection_resistance": "媒质遮罩",
- "effect.oneironaut.not_missing": "扬升共振",
- "effect.oneironaut.missing": "损坏的状态效果iota",
- "enchantment.oneironaut.overcast_damage": "意识撕裂",
- "itemGroup.oneironaut.oneironaut": "航梦",
- "oneironaut.tooltip.wispcapturedevice.haswisp": "包含具有%s个紫水晶粉、咒术印识为%s的咒灵。",
- "oneironaut.tooltip.wispcapturedevice.nowisp": "没有咒灵。",
- "oneironaut.tooltip.wispcapturedevice.uninitialized": "媒质储库未初始化。",
- "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
-}
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/README.md b/projects/1.20-fabric/assets/ephemera/ephemera/README.md
deleted file mode 100644
index 190619b195ab..000000000000
--- a/projects/1.20-fabric/assets/ephemera/ephemera/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/ephemera/ephemera)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json b/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
deleted file mode 100644
index 8fbdf3c934eb..000000000000
--- a/projects/1.20-fabric/assets/ephemera/ephemera/lang/en_us.json
+++ /dev/null
@@ -1,189 +0,0 @@
-{
- "itemGroup.ephemera.ephemera": "Ephemera",
-
- "item.ephemera.media_helmet": "Hexformed Helmet",
- "item.ephemera.media_chestplate": "Hexformed Chestplate",
- "item.ephemera.media_leggings": "Hexformed Leggings",
- "item.ephemera.media_boots": "Hexformed Boots",
-
- "block.ephemera.relay_tp_detector": "Network Gateway Probe",
- "block.ephemera.relay_index": "Network Routing Index",
- "block.ephemera.fakeslate": "Inert Slate",
-
- "hexcasting.action.ephemera:magearmor": "Instant Aegis",
- "hexcasting.action.book.ephemera:magearmor": "Instant Aegis",
- "hexcasting.action.ephemera:networkscan": "Network Distillation",
- "hexcasting.action.book.ephemera:networkscan": "Network Dstln.",
- "hexcasting.action.ephemera:networktp": "Network Gateway",
- "hexcasting.action.book.ephemera:networktp": "Network Gateway",
- "hexcasting.action.ephemera:networkindex": "Routing Distillation",
- "hexcasting.action.book.ephemera:networkindex": "Routing Dstln.",
- "hexcasting.action.ephemera:readframerotation": "Decorator's Purification",
- "hexcasting.action.book.ephemera:readframerotation": "Decorator's Prfn.",
- "hexcasting.action.ephemera:setframerotation": "Decorator's Gambit",
- "hexcasting.action.ephemera:paintconjured": "Externalize Pigment",
- "hexcasting.action.ephemera:particleburst": "Particle Burst",
- "hexcasting.action.ephemera:invisibility": "Hidden Sun's Zenith",
- "hexcasting.action.ephemera:getstatus": "Apothecary's Purification",
- "hexcasting.action.book.ephemera:getstatus": "Apothecary's Prfn.",
- "hexcasting.action.ephemera:getstatuscategory": "Apothecary's Purification II",
- "hexcasting.action.book.ephemera:getstatuscategory": "Apothecary's Prfn. II",
- "hexcasting.action.ephemera:getstatusduration": "Pharmacist's Distillation",
- "hexcasting.action.book.ephemera:getstatusduration": "Pharmacist's Dstln.",
- "hexcasting.action.ephemera:getstatuslevel": "Pharmacist's Dstln. II",
- "hexcasting.action.book.ephemera:getstatuslevel": "Pharmacist's Distillation II",
- "hexcasting.action.ephemera:getbystatus": "Zone Exaltation: Status",
- "hexcasting.action.book.ephemera:getbystatus": "Zone Exltn.: Status",
- "hexcasting.action.ephemera:getbystatusinverse": "Zone Exaltation: Not-Status",
- "hexcasting.action.book.ephemera:getbystatusinverse": "Zone Exltn.: Not-Status",
- "hexcasting.action.ephemera:getbystatussingle": "Entity Distillation: Status",
- "hexcasting.action.ephemera:removestatus": "Cleanse Status",
- "hexcasting.action.ephemera:getabsorption": "Ablation Purification",
- "hexcasting.action.ephemera:filteredentityraycast": "Scout's Exaltation",
- "hexcasting.action.ephemera:gaussianrand": "Entropy Reflection II",
- "hexcasting.action.ephemera:hash": "Hashing Purification",
- "hexcasting.action.ephemera:hashbits": "undocumented hash-to-numbers pattern",
- "hexcasting.action.ephemera:revealtoother": "Postman's Gambit",
- "hexcasting.action.ephemera:getrevealcost": "Postage Purification",
- "hexcasting.action.ephemera:clearrevealcost": "Postman's Gambit II",
- "hexcasting.action.ephemera:repair": "Induce Mending",
- "hexcasting.action.ephemera:getdurabilitymainhand": "Menderbug's Reflection",
- "hexcasting.action.book.ephemera:getdurabilitymainhand": "Menderbug's Rfln.",
- "hexcasting.action.ephemera:getdurabilityoffhand": "Menderbug's Reflection II",
- "hexcasting.action.book.ephemera:getdurabilityoffhand": "Menderbug's Rfln. II",
- "hexcasting.action.ephemera:thothyoink": "Seshat's Gambit",
- "hexcasting.action.ephemera:thothcount": "Seshat's Reflection",
- "hexcasting.action.book.ephemera:thothcount": "Seshat's Rfln.",
- "hexcasting.action.ephemera:collisionprobe": "Clearance Purification",
- "hexcasting.action.book.ephemera:collisionprobe": "Clearance Prfn.",
- "hexcasting.action.ephemera:getiotasize": "Flock's Purification",
- "hexcasting.action.book.ephemera:getiotasize": "Flock's Prfn.",
- "hexcasting.action.ephemera:getstacksizedeep": "Flock's Reflection II",
- "hexcasting.action.book.ephemera:getstacksizedeep": "Flock's Rfln. II",
- "hexcasting.action.ephemera:no": "No",
- "hexcasting.action.ephemera:getproperties": "State Purification",
- "hexcasting.action.ephemera:getpropertyvalue": "State Distillation",
- "hexcasting.action.ephemera:ridewisp": "Ride Wisp",
- "hexcasting.action.ephemera:dismount": "Dismount",
- "hexcasting.action.ephemera:getrider": "Equestrian Purification",
- "hexcasting.action.book.ephemera:getrider": "Equestrian Prfn.",
- "hexcasting.action.ephemera:getmount": "Equestrian Purification II",
- "hexcasting.action.book.ephemera:getmount": "Equestrian Prfn. II",
- "hexcasting.action.ephemera:cancelflight": "Terminate Flight",
- "hexcasting.action.ephemera:getflight/type": "Aviator's Purification II",
- "hexcasting.action.ephemera:getflight/remaining": "Aviator's Purification III",
-
- "hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
- "hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
- "hexcasting.mishap.ephemera:nonconjured": "Expected a conjured block at %s, but got %s.",
- "hexcasting.mishap.ephemera:missingeffect": "Expected %s to be affected by %s, but they are not.",
- "hexcasting.mishap.ephemera:nothoth": "Expected to be cast from inside of Thoth's Gambit.",
- "ephemera.mishap.noitemframe": "an item frame",
- "ephemera.mishap.entitytypelistplease": "a list of entity types",
- "ephemera.mishap.toolongiota": "an iota that displays as less than 256 characters",
- "hexcasting.mishap.ephemera:blacklist": "This effect has been blacklisted via tag.",
- "hexcasting.mishap.ephemera:instant": "How did you even get that iota?",
- "hexcasting.mishap.ephemera:no": "no",
-
- "item.ephemeral.media_armor.tooltip.1": "Bestows %s %s upon the wearer.",
-
- "ephemera.entry.miscpatterns": "Misc. Ephemera Patterns",
- "ephemera.entry.invisibility": "Invisibility",
- "ephemera.entry.status_iotas": "Status Iotas",
- "ephemera.entry.network": "Link Amenities",
- "ephemera.entry.revealtoother": "Messaging",
- "ephemera.entry.mending": "Induce Mending",
- "ephemera.entry.hashing": "Iota Hashing",
- "ephemera.entry.specialslates": "Modified Slates",
- "ephemera.entry.metathoth": "Accumulator Manipulation",
- "ephemera.entry.flight": "Additional Flight Patterns",
-
- "ephemera.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
- "ephemera.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
- "ephemera.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
-
- "ephemera.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
- "ephemera.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
- "ephemera.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
- "ephemera.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
- "ephemera.page.miscpatterns.5": "Returns a random number with a gaussian distribution, with a mean of zero and a standard deviation of one.",
- "ephemera.page.miscpatterns.6": "Accepts a vector, and returns whether that vector is within (or just on the edge of) the block in that space. Seems to involve the boxes I see in my mind's eye.",
- "ephemera.page.miscpatterns.7": "Returns the total size of all iotas on my stack, including the contents of lists and similar. If this number ever reaches 1024, my stack shall come crashing down into garbage.",
- "ephemera.page.miscpatterns.8": "Accepts any iota, and returns its total size.",
- "ephemera.page.miscpatterns.9": "Accepts a vector, and returns a list of strings corresponding to values contained in the state of the block at the corresponding position.",
- "ephemera.page.miscpatterns.10": "Accepts a vector and a string, and uses the string as a key to retrieve the value it corresponds to in the target block's state, or null if there is no corresponding value.",
- "ephemera.page.miscpatterns.11": "Accepts one of my wisps (or a wandering wisp), and places me atop it, similar to sitting in a minecart. I must be within the wisp's ambit, or four blocks for wandering wisps. Costs one amethyst shard.",
- "ephemera.page.miscpatterns.12": "I should take care not to accelerate too quickly when riding a wisp, as unlike with Impulse, the acceleration is not applied evenly across my body, and can thus cause significant harm. The threshold for how quickly I can accelerate safely seems to be about 98 m/s over one second.$(br)I should take care when mounting fast wisps, as the instantaneous velocity involved can contribute to this damage if I am too far from my final seated position.",
- "ephemera.page.miscpatterns.13": "Takes me off of whatever entity I may be riding when cast. Costs 1/100 of a dust.",
- "ephemera.page.miscpatterns.14": "Accepts an entity, and returns a list of entities seated atop it.",
- "ephemera.page.miscpatterns.15": "Accepts an entity, and returns the entity it is seated atop.",
-
- "ephemera.page.flight.1": "I've often found the preexisting suite of flight-related patterns to be a bit lackluster. They work perfectly well if all you want to do is cast the spell and go, but they are not well-suited to doing anything more complex. These patterns should help with that.",
- "ephemera.page.flight.2": "Cancels my current flight ability, at a cost of one tenth of an Amethyst Dust. Casting a new flight spell in the same instant allows me to continue flying, potentially with different parameters.",
- "ephemera.page.flight.3": "Returns true if the target is under the effects of Anchorite's Flight, false if Wayfarer's Flight, null if neither.",
- "ephemera.page.flight.4": "Returns how close the target is to the end of their flight spell, represented as either their distance to the boundary or how many seconds remain.",
-
- "ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
- "ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
-
- "ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
-
- "ephemera.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
- "ephemera.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
- "ephemera.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
- "ephemera.page.status_iotas.4": "Accepts an entity and a status effect type, and returns the effect on the target's duration in seconds.",
- "ephemera.page.status_iotas.5": "Accepts an entity and a status effect type, and returns the effect on the target's potency.",
- "ephemera.page.status_iotas.6": "Accepts a status effect type and a vector, and returns an entity at that position which has that effect.",
- "ephemera.page.status_iotas.7": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which have that effect.",
- "ephemera.page.status_iotas.8": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which do not have that effect.",
- "ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
- "ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
- "ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
-
- "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
- "ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
- "ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
- "ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
- "ephemera.page.magearmor.5": "This explanation assumes I am wearing no other armor, in practice the cost can be reduced to as little as 25%% of that formula's output if all but one of my armor slots is already occupied by more conventional armor.",
-
- "ephemera.page.network.1": "I've devised a suite of patterns (plus a couple of blocks) to make links a bit more useful for things other than data transmission and media sharing.$(br2)Note that the patterns which fetch information about the network make no promises regarding whether returned linkables are within ambit.",
- "ephemera.page.network.2": "Scans the link network connected to the input linkable up to a recursion depth equal to the input number (max 32), and returns a list of all connected linkables. Costs a negligible amount of media.",
- "ephemera.page.network.3": "Accepts an entity to teleport, a linkable to use for access to its network, and a destination. If the entity is within 8 blocks of the linkable, and there is a network node within 4 blocks of the destination, the entity will be teleported. Cost varies based on what entity is teleported.",
- "ephemera.page.network.4": "Outputs a brief redstone signal when an adjacent relay is used as the output for a casting of Network Gateway.",
- "ephemera.page.network.5": "When rclicked with a focus in the main hand, attempts to store its iota in the block. When the focus is in the offhand, writes the stored iota to the focus.",
- "ephemera.page.network.6": "Accepts a linkable to use for network access, and any iota. If a relay connected to the network has an adjacent Network Routing Index with the same iota, returns that relay's position. Costs half an amethyst dust.",
-
- "ephemera.page.revealtoother.1": "Accepts a player and any iota less than 256 characters long, and shows that iota to them as if they had cast Reveal, also telling them who sent the message. Cost is inversely proportional to the length of time since they were last targeted by this spell.",
- "ephemera.page.revealtoother.2": "Accepts a player and returns how much amethyst dust it would cost to send them a message via Postman's Gambit, between 1/10 of a dust and 10 dust.",
- "ephemera.page.revealtoother.3": "Resets the cost of sending me a message via Postman's Gambit back to 1/10 of a dust. Costs 1/10 of a dust.",
-
- "ephemera.page.mending.1": "Accepts a raw media item on the ground, and attempts to use it to repair a tool in my other hand.",
- "ephemera.page.mending.2": "Generally only works on items enchanted with Mending, which are already damaged. Restores twenty points of damage for each amethyst dust's worth of media.",
- "ephemera.page.mending.3": "Returns how many times the item in my other hand can be used without breaking, durability-manipulating effects notwithstanding.",
- "ephemera.page.mending.4": "As previous, targeting the item in the hand I'm casting this with. Most useful with delayed casts of one form or another.",
-
- "ephemera.page.hashing.1": "I've discovered a curious pattern which scrambles an iota into an unreadable mess. However, unlike Garbage iotas, $(o)this$() mess still contains data, and running the same iota through the pattern will always produce the same mess (known as a hash). While it is not possible to recover an iota from a hash, it can be quite useful for comparisons in situations where I cannot save the unaltered iota.",
- "ephemera.page.hashing.2": "Accepts any iota, and converts it into its hashed form.",
-
- "ephemera.page.specialslates.1": "I've designed a couple types of slate to be used in spell circles. While they don't provide any groundbreaking new functionality, they can be nice to have.",
- "ephemera.page.specialslates.2": "Works just like a normal slate, but is capable of sending the media wave into the block it is placed on.",
- "ephemera.page.specialslates.3": "Crafted with a normal slate and a stonecutter.$(br2)Looks just like a normal slate, but can't direct a media wave at all. Cannot be written to.",
-
- "ephemera.page.metathoth.1": "It seems that the list which $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) forms as it iterates over a data set functions as a stack, simply one that is a bit out of the way. As such, I have devised a couple of patterns for interacting with this hidden stack, called the accumulator.",
- "ephemera.page.metathoth.2": "Pops an iota from the accumulator and pushes it to the current stack. Mishaps if used outside of Thoth's Gambit.",
- "ephemera.page.metathoth.3": "Returns how many iotas are currently accessible via Seshat's Gambit. Returns -1 if used outside of Thoth's Gambit.",
-
- "ephemera.page.forgewarning.1": "Mod author's note for Forge users: This spell does not work on Forge. I do not know why. I've set the cost on Forge to zero so at least it won't waste media. Sorry.$(br2)I'll try to get it working eventually.",
-
- "hexcasting.iota.ephemera:potion": "Status Effect",
- "hexcasting.iota.ephemera:hash": "Hash",
- "ephemera.iota.hashlabel": "Hashed data: %s",
-
- "text.ephemera.clearHistoryResponse": "Cleared reveal history map.",
- "text.ephemera.revealIntroduction": "Transmission from %s: ",
- "text.ephemera.nosender": "unknown",
-
- "enchantment.ephemera.shame": "Curse of Shame",
-
- "death.attack.ephemera:acceleration": "%s was subjected to lethal acceleration."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json b/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
deleted file mode 100644
index 59e88043ef3a..000000000000
--- a/projects/1.20-fabric/assets/ephemera/ephemera/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/ephemera/ephemera"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/oneironaut/oneironaut/README.md b/projects/1.20-fabric/assets/oneironaut/oneironaut/README.md
deleted file mode 100644
index dc96bb82d960..000000000000
--- a/projects/1.20-fabric/assets/oneironaut/oneironaut/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/oneironaut/oneironaut)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
deleted file mode 100644
index dab0150e6349..000000000000
--- a/projects/1.20-fabric/assets/oneironaut/oneironaut/lang/en_us.json
+++ /dev/null
@@ -1,336 +0,0 @@
-{
- "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
- "hexcasting.action.oneironaut:getdim1": "Spatial Reflection",
- "hexcasting.action.oneironaut:getdim2": "Spatial Reflection II",
- "hexcasting.action.oneironaut:getdim/overworld": "Homeland Reflection",
- "hexcasting.action.oneironaut:getdim/nether": "Inferno Reflection",
- "hexcasting.action.oneironaut:getdimheight": "Atlas' Decomposition",
- "hexcasting.action.oneironaut:getdimscale": "Ratio Purification",
- "hexcasting.action.oneironaut:dimteleport": "Noetic Gateway",
- "hexcasting.action.oneironaut:infusemedia": "Media Infusion",
- "hexcasting.action.oneironaut:swapspace": "Spatial Interchange",
- "hexcasting.action.oneironaut:craftrod": "Conduct Rod",
- "hexcasting.action.oneironaut:getrodlook": "Baton Reflection",
- "hexcasting.action.oneironaut:getrodpos": "Baton Reflection II",
- "hexcasting.action.oneironaut:getrodstamp": "Metronome Reflection",
- "hexcasting.action.oneironaut:delayrod": "Metronome Gambit",
- "hexcasting.action.oneironaut:haltrod": "Finale",
- "hexcasting.action.oneironaut:resetrod": "Encore",
- "hexcasting.action.oneironaut:readrodram": "Williams' Reflection",
- "hexcasting.action.oneironaut:writerodram": "Williams' Gambit",
- "hexcasting.action.oneironaut:readrodramremote": "Williams' Reflection II",
- "hexcasting.action.oneironaut:writerodramremote": "Williams' Gambit II",
- "hexcasting.action.oneironaut:queryrod": "Conductor's Reflection",
- "hexcasting.action.oneironaut:rodloopactive": "Conductor's Reflection II",
- "hexcasting.action.oneironaut:craftbottomlesstrinket": "Craft Bottomless Trinket",
- "hexcasting.action.oneironaut:writeidea": "Inscribe Idea",
- "hexcasting.action.oneironaut:readidea": "Retrieve Idea",
- "hexcasting.action.oneironaut:readideatime": "Metadata Purification",
- "hexcasting.action.oneironaut:readideawriter": "Metadata Distillation",
- "hexcasting.action.oneironaut:readsentinel": "Scrutinize Sentinel",
- "hexcasting.action.oneironaut:resistdetection": "Stealth Shroud",
- "hexcasting.action.oneironaut:detectshroud": "Discern Shroud",
- "hexcasting.action.oneironaut:circle": "Circle",
- "hexcasting.action.oneironaut:applymindrender": "Empower Mind Render",
- "hexcasting.action.oneironaut:reviveflayed": "Instill Psyche",
- "hexcasting.action.oneironaut:advanceautomaton": "Cellular Generation",
- "hexcasting.action.oneironaut:applynotmissing": "Uplifting Resonance",
- "hexcasting.action.oneironaut:getsoulprint": "Soulprint Reflection",
- "hexcasting.action.oneironaut:signitem": "Sign Item",
- "hexcasting.action.oneironaut:checksignature": "Signature Purification",
- "hexcasting.action.oneironaut:extradimensionaleval": "Heimdall's Gambit",
- "hexcasting.action.oneironaut:shiftsentinel": "Shift Sentinel",
-
- "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
- "item.oneironaut.pseudoamethyst_shard": "Pseudoamethyst Shard",
- "item.oneironaut.shifting_pseudoamethyst": "Shifting Pseudoamethyst",
- "item.oneironaut.thought_slurry_bucket": "Thought Slurry Bucket",
- "item.oneironaut.reverberation_rod": "Reverberation Rod",
- "item.oneironaut.endless_phial": "Inexhaustible Phial",
- "item.oneironaut.bottomless_trinket": "Bottomless Trinket",
- "item.oneironaut.echo_staff": "Echo Staff",
- "item.oneironaut.beacon_staff": "Magitech Staff",
- "item.oneironaut.spoon_staff": "Spoon",
- "item.oneironaut.pigment_flame": "Flame Pigment",
- "item.oneironaut.pigment_echo": "Echo Pigment",
- "item.oneironaut.pigment_noosphere": "Noetic Pigment",
- "item.oneironaut.pigment_frenzyflame": "Frenzy Pigment",
- "item.oneironaut.memory_fragment": "Memory Fragment",
- "item.oneironaut.memory_fragment.all": "It seems I've consumed all the memories that this crystal can offer me...",
- "item.oneironaut.wisp_capture_device": "Wisp Wrangler",
- "item.oneironaut.mind_scalpel": "Synaptic Scalpel",
- "item.oneironaut.monkfruit": "Monkfruit",
- "item.oneironaut.monkfruit_cooked": "Cooked Monkfruit",
- "item.oneironaut.hexjam": "Hex Jam",
- "item.oneironaut.rending_thorns": "Rending Thorns",
- "item.oneironaut.library_card": "Akashic Library Card",
-
- "block.oneironaut.noosphere_gate": "Inscrutable Rift",
- "block.oneironaut.pseudoamethyst_block": "Pseudoamethyst Block",
- "block.oneironaut.pseudoamethyst_cluster": "Pseudoamethyst Cluster",
- "block.oneironaut.pseudoamethyst_bud_small": "Small Pseudoamethyst Bud",
- "block.oneironaut.pseudoamethyst_bud_medium": "Medium Pseudoamethyst Bud",
- "block.oneironaut.pseudoamethyst_bud_large": "Large Pseudoamethyst Bud",
- "block.oneironaut.thought_slurry": "Thought Slurry",
- "block.oneironaut.thought_slurry_flowing": "Flowing Thought Slurry",
- "block.oneironaut.noosphere_basalt": "Noosphere Basalt",
- "block.oneironaut.wisp_lantern": "Wisp Lantern",
- "block.oneironaut.wisp_lantern_tinted": "Tinted Wisp Lantern",
- "block.oneironaut.super_budding": "Budding Pseudoamethyst",
- "block.oneironaut.sentinel_sensor": "Sentinel Sensor",
- "block.oneironaut.raycast_blocker": "Anti-Raycast Slate",
- "block.oneironaut.raycast_blocker_glass": "Anti-Raycast Glass",
- "block.oneironaut.sentinel_trap": "Seer Impetus",
- "block.oneironaut.circle": "§0§oCircle",
- "block.oneironaut.hex_resistant_block": "Hex-Warded Obsidian",
- "block.oneironaut.media_ice": "Sagely Ice",
- "block.oneironaut.media_ice_frosted": "Transient Sagely Ice",
- "block.oneironaut.media_gel": "Plasmodial Psyche",
- "block.oneironaut.cell": "Dissonant Psyche",
- "block.oneironaut.wisp_battery": "Wisp Weaver",
- "block.oneironaut.decorative_wisp_battery": "Lesser Wisp Weaver",
- "block.oneironaut.hover_elevator": "Hexcaster's Hoverlift",
- "block.oneironaut.hover_repeater": "Hoverlift Repeater",
- "block.oneironaut.monkfruit_bush": "Monkfruit Bush",
- "block.oneironaut.spacebomb": "Slipcharge",
-
- "fluid.oneironaut.thought_slurry": "Thought Slurry",
-
- "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
- "oneironaut.entry.dim_iotas": "Dimension Iotas",
- "oneironaut.entry.status_iotas": "Status Iotas",
- "oneironaut.entry.noosphere_main": "A Strange Realm",
- "oneironaut.entry.noosphere_materials": "Thoughtful Materials",
- "oneironaut.entry.wisp_lanterns": "Wisp Devices",
- "oneironaut.entry.slipway_hint": "A Reflection on Slipways",
- "oneironaut.entry.miscpatterns": "Misc. Oneironaut Patterns",
- "oneironaut.entry.super_budding": "Better Media Farming",
- "oneironaut.entry.idea_inscription": "Idea Inscription",
- "oneironaut.entry.sentinel_detection": "Sentinel Detection",
- "oneironaut.entry.detection_shielding": "Nondetection",
- "oneironaut.entry.raycast_assailant": "Anti-Hex Blocks",
- "oneironaut.entry.mindrender": "Mind Render",
- "oneironaut.entry.soulprints": "Soulprints",
- "oneironaut.entry.hover_elevator": "Hoverlifts",
- "oneironaut.entry.flayrevival": "Artificial Minds",
- "oneironaut.entry.heimdall": "Transdimensional Casting",
-
- "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
- "oneironaut.page.spaceswap.1": "Accepts two lists of two vectors, to define two cuboids, and a Spatial Imprint. These cuboids must have the exact same dimensions and rotation.",
- "oneironaut.page.spaceswap.2": "I'm not quite sure what this one is supposed to do, it's always yelling at me about special dimensions. Perhaps it needs to use this special dimension as an intermediary?",
- "oneironaut.page.spaceswap.3": "Exchanges the blocks within the first cuboid in your current dimension (which must be within ambit) for the blocks within the second cuboid in the dimension corresponding to the Spatial Imprint. $(l:https://www.desmos.com/calculator/ydbg8zhmyp)Cost (in amethyst dust) is logarithmic for the first 1001 blocks, after which it increases linearly$(/l).$(br)Will not exchange any unbreakable blocks.$(br)One or both of the endpoint dimensions must be the noosphere.",
- "oneironaut.page.spaceswap.4": "One or both of the endpoint dimensions must be the noosphere.",
- "hexcasting.spell.oneironaut:dimteleport.samedim": "The spell does not do anything, similar to if I told someone to go home, when they were already at home.",
- "oneironaut.page.dim_iotas.1": "I've descovered a kind of iota which seems to represent a layer of reality itself. In lieu of better understanding, I've decided to call these Spatial Imprints.",
- "oneironaut.page.dim_iotas.2": "Returns a Spatial Imprint representing the dimension I am currently in. Costs a negligible amount of media.",
- "oneironaut.page.dim_iotas.3": "Returns a Spatial Imprint representing the dimension my sentinel is currently in. Costs one-tenth of an amethyst dust.",
- "oneironaut.page.dim_iotas.4": "Returns a Spatial Imprint representing the overworld. Costs one-tenth of an amethyst dust.",
- "oneironaut.page.dim_iotas.5": "Returns a Spatial Imprint representing the nether. Costs one-tenth of an amethyst dust.$(br)There seems to be some resistance when I cast this. Perhaps I'll be able to overcome it with $(#54398a)greater skill$()...",
- "oneironaut.page.dim_iotas.6": "Accepts a Spatial Imprint, and returns the lowest and highest altitudes at which blocks can exist in the corresponding dimension.",
- "oneironaut.page.dim_iotas.7": "Accepts a Spatial Imprint, and returns how many blocks you'd have to travel in the overworld to travel the equivalent of one block in the input dimension.",
- "oneironaut.page.dimteleport.1": "Accepts an entity and a Spatial Imprint and teleports the entity to its position in the proper dimension. Generally costs 20 Charged Amethyst.$(br)Will fail if supplied a player other than myself.",
- "oneironaut.page.dimteleport.2": "If I use this to return to a dimension that I previously left within the same instant, the cost drops to five amethyst dust, as the spell can take advantage of a lingering strand of media leading back to my original position. Otherwise, it will attempt to find a safe spot to deposit me, potentially conjuring a block to prevent me from falling to my doom.$(br2)Strangely, I feel an odd sense of acceleration when transporting myself this way, along some incomprehensible axis.",
- "oneironaut.page.infusemedia.1": "Accepts a vector and infuses media into the corresponding block in order to transmute it. Cost and exact effect vary depending on target.",
- "oneironaut.page.infusemedia.2": "Conceptually, this spell is quite similar to $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l).$(br)However, the media that the target block receives is far more finely-tuned, and can thus achieve far more interesting results.",
- "oneironaut.page.wisp_lanterns.1": "I've found that by using materials unique to the Noosphere, I can create a special jar capable of producing and containing a tiny wisp. While this wisp cannot cast anything, it emits quite a bit of light, and will mimic pigments shown to it.$(br)I can also craft a version with tinted glass, in case the wisp's light would disrupt my study's aesthetic.",
- "oneironaut.page.wisp_lanterns.2": "Additionally, by feeding this illumination wisp significant amounts of media, I can cause it to undergo mitosis, with the newly-created wisp being seemingly-identical to the wandering wisps produced by slipways.$(br2)The device to split the wisp in this way can be fed media-bearing items via hoppers or similar, and is capable of storing 640 charged amethyst worth of media.",
- "oneironaut.page.wisp_lanterns.3": "Simply apply a redstone signal to activate. Produces a wisp every four seconds, and consumes two charged amethyst to do so.$(br)The capacity and fill level of the phial used make no difference.",
- "oneironaut.page.wisp_lanterns.4": "Alternatively, I can create a version which does not consume (or accept) any media, but produces wisps which yield only net-zero media when consumed.$(br2)All the sparkly shiny orbs, none of the prohibitive cost!",
- "oneironaut.page.wisp_lanterns.5.originaltoolong": "Using similar principles, I've designed a device which can capture (and contain) wisps for their eventual release, though it does not work on wandering wisps due to their instability.$(br)Capturing one of my own wisps always consumes one amethyst shard worth of its (rechargable) 64-charged capacity, and capturing someone else's costs half again as much media as it contains. To capture a wisp, I must simply use the item on a wisp, and it will be sucked into the housing(assuming it has sufficient media and does not already contain a wisp).",
- "oneironaut.page.wisp_lanterns.5": "Using similar principles, I've designed a device which captures, stores, and releases wisps, though it does not work on unstable wandering wisps. Capturing one of my own wisps consumes one amethyst shard from its battery. Capturing someone else's wisp costs half again the media it contains. To capture a wisp, I must simply use the device on it, assuming it has enough media and isn't already occupied.",
- "oneironaut.page.wisp_lanterns.6": "When releasing a cyclic wisp, it is placed on the side of the block I use the item on. Projectile wisps are launched from my face, retaining their previous speed (but not direction). To discard a contained wisp, I need only use the item while crouching.",
- "oneironaut.page.wisp_lanterns.7": "To initalize the device's media battery, I must use it on one of my own wisps, which will irretrievably consume it and set the battery's capacity to the wisp's stored media value, rounded up to the nearest dust. Should I wish to reset this (along with everything else about the device), I can simply place it in a crafting grid on its own.",
-
- "oneironaut.page.noosphere_materials.1": "A strange fluid which agitates media entering it, preventing amethyst crystal formation. Stimulates my mind in pleasing ways when I immerse myself in it.",
- "oneironaut.page.noosphere_materials.2": "A rock which is primarily composed of media, somehow. Can be used to craft spell circle blocks.",
- "oneironaut.page.noosphere_materials.3.title": "Pseudoamethyst",
- "oneironaut.page.noosphere_materials.3": "A large crystal of media much like amethyst, but not quite the same. Produces a buzzing sensation under my fingers when I touch it, as if its media is stimulating the nerves. Breaking it without special care causes it to shatter into 1-4 pieces.",
- "oneironaut.page.noosphere_materials.4": "The shards can be used to fuel spells, and yield slightly more energy than a normal amethyst shard. Can also be used to craft several interesting things.",
- "oneironaut.page.noosphere_materials.5": "A solid form of media which is created when Thought Slurry freezes in a media-rich environment, or is caused to freeze by a hex.$(br)Its surface seems to have negative friction, causing anything sliding on it to accelerate indefinitely (albeit slowly).",
- "oneironaut.page.noosphere_materials.6": "An extremely viscous mass of media, capable of very basic cognition, analagous to a slime mold. While it is normally quite lethargic, it uses a spell-like ability to attempt to ensnare anything that touches it.",
- "oneironaut.page.slipway_hint.1": "The slipways, they must lead $(o)somewhere$(). Wisps do not simply manifest from nothing. No matter what I try, I cannot insert so much as a finger through that chaotic rift.$(br2)I'm going about this wrong. Perhaps rather than attempting to force my way through, I should be attempting to calm the storm.",
- "oneironaut.page.slipway_hint.2": "A large amount of harmonious media may just do it...",
- "oneironaut.page.slipway_hint.2.title": "Hmm...",
- "oneironaut.page.noosphere_main.1": "I've made it.$(br)The realm beyond the slipways. The ambient media is overwhelming. My mind is screaming at me, telling me I shouldn't be here. But I must press on. This is the next step in the journey.",
- "oneironaut.page.noosphere_main.2": "Every single thing I've examined here seems to be composed largely of media, similar to conjured matter, but orders of magnitude denser.$(br)$(o)Even the air is media. How am I breathing?$(br2)$(l)How can I even exist here?",
- "oneironaut.page.rod.1": "I've discovered that I can craft a peculiar sort of casting item, using the strange shards found in ancient cities.$(br)This item is unusual in that it casts its imbued hex twenty times per second while I concentrate on it, until it either mishaps or I cast Finale or Encore. This initiates a cooldown period, usually about one second.",
- "oneironaut.page.rod.2": "The echo shards seem to bear some bizarre form of media, with a tendency to loop back on itself while retaining a bit of the previous cast.",
- "oneironaut.page.rod.3": "Acts just like $(l:patterns/spells/hexcasting)the spells used to program conventional casting items$(). Costs 10 Charged Amethyst.",
- "oneironaut.page.rod.4": "When cast with a Reverberation Rod, returns my look vector from when I started the current cast loop.",
- "oneironaut.page.rod.5": "When cast with a Reverberation Rod, returns my eye position from when I started the current cast loop.",
- "oneironaut.page.rod.6": "When cast with a Reverberation Rod, returns the timestamp from when I started the current cast loop.",
- "oneironaut.page.rod.7": "Accepts a positive integer. When cast with a Reverberation Rod, delays the current cast loop's next cast until that many twentieths of a second have passed.",
- "oneironaut.page.rod.8": "When cast with a Reverberation Rod, forcibly halts the current cast loop.",
- "oneironaut.page.rod.9": "Accepts a positive integer. Halts the current cast loop but also reduces the cooldown period from 1 second to ((1/20) * number) seconds. Cooldown due to mishap is unaffected.",
- "oneironaut.page.rod.10": "Accepts a non-list iota, and stores it inside the current cast loop. It will be lost when the cast loop ends.",
- "oneironaut.page.rod.11": "Returns the iota stored in the current cast loop. Defaults to NULL.",
- "oneironaut.page.rod.12": "Returns a boolean corresponding to whether the current cast is making use of a rod.",
- "oneironaut.page.rod.13": "As Williams' Gambit, but can be cast from non-rod sources while a rod is in use.",
- "oneironaut.page.rod.14": "As Williams' Reflection, but can be cast from non-rod sources while a rod is in use.",
- "oneironaut.page.rod.15": "Returns whether the caster is currently using a rod, regardless of the current cast is from that rod.",
- "oneironaut.page.rod.16": "Echo shards can also be used in the construction of a staff, though it seems the only special property of such a staff is making sculk sounds.",
- "oneironaut.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
- "oneironaut.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
- "oneironaut.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
- "oneironaut.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
- "oneironaut.page.miscpatterns.5": "Returns a random number between 0 and 1, with a gaussian distribution.",
- "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
- "oneironaut.page.super_budding.1": "I've found that the amethyst-like material native to the noosphere can be imbued with a villager's mind, much like normal amethyst. What's more, the block that results from this process produces significantly more media than normal Budding Amethyst, and it can be picked up and moved if one takes special care.",
- "oneironaut.page.super_budding.2": "Pseudoamethyst requires a stronger mind than normal amethyst, but the cost is well worth it.",
- "oneironaut.page.super_budding.3": "Additionally, when cultivated in the Noosphere, budding pseudoamethyst will produce pseudoamethyst clusters rather than conventional amethyst. These clusters will of course yield pseudoamethyst shards, as well as an unstable form of pseudoamethyst containing about four times as much media as the regular shards. Unfortunately, due to this instability, it cannot be directly converted into usable media. However, it can be converted into many other forms of media crystal by simply bringing the two items together.",
- "oneironaut.page.super_budding.4": "It seems to react to my gaze, as if endowed with some form of perception.",
- "oneironaut.page.super_budding.5": "The media generation rate of budding pseudoamethyst is such that even when immersed in thought slurry to inhibit crystal formation, it will still yield usable amounts of media. While the overall supply is nigh-endless, the amount accessible to any given action is quite small, like an inch-deep ocean a million miles across. However, due to this minimal depth, the media will dissipate rapidly before reaching my staff when accessed from afar, such as when recharging an item.",
- "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I $(o)can$() hold several of these in order to gain access to more media, this results in rapidly-diminishing returns. $(br)I should be careful not to craft with the wrong phial.",
- "oneironaut.page.super_budding.7": "I can also jam one into a trinket in order to replace its media supply with an inexhaustible phial, giving it access to the endless media within. However, it cannot use any media other than that provided by the phial.",
- "oneironaut.page.super_budding.8": "Writes a hex to the bottomless trinket in my other hand. Costs ten charged amethyst.",
- "oneironaut.page.idea_inscription.1": "As the noosphere is a realm of thought, it stands to reason that it could be used for information storage. These patterns do just that, inscribing an iota into the noosphere and reading it back (regardless of my current dimension). They can also store iotas inside the minds of other beings, assuming their thoughts are as... $(o)unfettered$() as my own. In the notation for these patterns, \"key\" refers to any vector or compatible entity.",
- "oneironaut.page.idea_inscription.2": "While this is quite versatile, the noosphere's ambient media is constantly in motion, and as such any iota stored in it will eventually be lost, similar to if I poured hot water into the ocean. It seems to take about an hour before such information decays into unusable garbage.$(br2)It seems that $(l:greatwork/akashiclib)Akashic Libraries$(/l) work based on similar principles, where the shelves serve as insulation to prevent decay.",
- "oneironaut.page.idea_inscription.3": "Accepts a valid key and any iota, and stores it in the corresponding location. Costs a quarter of an amethyst dust.",
- "oneironaut.page.idea_inscription.4": "Accepts a valid key, and returns the corresponding iota. Costs one-eigth of an amethyst dust.",
- "oneironaut.page.idea_inscription.5": "Accepts a valid key, and returns when the corresponding iota was inscribed, or -1. Costs no media.",
- "oneironaut.page.idea_inscription.6": "Accepts a valid key and a player, and returns whether the corresponding iota was inscribed by that player. Costs no media.",
- "oneironaut.page.sentinel_detection.1": "By combining the noosphere's pseudoamethyst with the organic sensory apparatus native to the deep dark, I've discovered a way to detect fluctuations in ambient media. This new form of sensor detects the presence of $(l:patterns/spells/sentinels)Sentinels$(/l) within approximately 16 meters, and outputs a redstone signal based on its proximity to the closest one. Comparators attached to it will output a signal if the sentinel in question is particularly powerful.",
- "oneironaut.page.sentinel_detection.2": "$(o)I'm sure the warden won't mind.$()",
- "oneironaut.page.sentinel_detection.3": "Additionally, this sensor can be incorporated into a Cleric Impetus, allowing it to activate when a sentinel is placed in the area (albeit with a lower range than the plain sensor). I've dubbed this contraption a Seer Impetus. Though it no longer responds to redstone, the circle's hex will start with a reference to the owner of the triggering sentinel on the stack.$(br)Due to the media interference produced by the cast, the impetus cannot detect sentinels it places itself.",
- "oneironaut.page.sentinel_detection.4": "As the sensor does not care whose sentinel it sees, I should take care to avoid allowing my trap circles to target me.",
- "oneironaut.page.sentinel_detection.5": "Accepts a vector and a player, and returns either the distance from the vector to the target player's sentinel or NULL. Costs a negligible amount of media.",
- "oneironaut.page.sentinel_detection.6": "Conjures a fleeting sensor at the target coordinates, which \"listens\" to the patterns in the ambient media to seek out the telltale signature of a sentinel.",
- "oneironaut.page.detection_shielding.1": "While conventional invisibility potions work just fine for fooling human senses, they are useless against hexes, so I've yet to find any method of making oneself completely undetectable. However, this spell I've discovered allows me to get closer to that goal, scattering media around a creature like chaff, in order to interfere with hex-based detection methods.",
- "oneironaut.page.detection_shielding.2": "Accepts a living entity and a number ($(o)n$()), and shields the entity from hex-based detection for $(o)n$() seconds. Costs two amethyst dust per second.",
- "oneironaut.page.detection_shielding.3": "Also drains media from the entity at a rate of 1/10 of a dust per second, as the shielding effect collects it to produce the chaff.$(br2)I should be careful with what I apply this to, as creatures with no loose media of their own will have their very minds fractured in order to provide this media.",
- "oneironaut.page.detection_shielding.4": "While this is very effective at blocking effects such as $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l) and the various forms of $(l:patterns/entities#hexcasting:zone_entity/animal)Zone Distillation$(/l), it has no effect on $(l:patterns/entities#hexcasting:get_entity)Entity Purification$(/l) variants, as those already have a fairly precise idea of where you are. What's more, the chaff itself produces an energy signautre, which, while dim, is detectable by a specialized pattern.",
- "oneironaut.page.detection_shielding.5": "Accepts a vector and a number, and returns a list of unit vectors pointing from the initial vector to shrouded entities within a radius defined by the number.",
- "oneironaut.page.detection_shielding.6": "I've also discovered a spell which applies normal Invisibility. Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), and costs one amethyst dust per three seconds.",
- "oneironaut.page.raycast_assailant.1": "By \"threading\" pseudoamethyst through a block, I can create something which causes any raycast (including entity raycasts) that hits or passes through it to return null, as if it didn't hit anything.",
- "oneironaut.page.raycast_assailant.3": "Strangely, combining pseudoamethyst with obsidian in the same way does not confer anti-raycast properties, instead making it nigh-indestructible to hexes. However, the resultant block loses much of its durability, being no stronger than common stone (though it retains its blast resistance).",
- "oneironaut.page.mindrender.1": "I've read legends of a particularly macabre form of weapon known as a Mind Render. This weapon, sometimes used by ancient hexcasters, is capable of severing a creature's very thoughts, dealing damage that bypasses all known forms of protection. What's more, if this damage leaves the target just on the brink of true death, it will fall into a vegetative state, never to recover. I shudder to think of what the ancients may have used this property for...",
- "oneironaut.page.mindrender.2": "Accepts an item or item frame bearing the Sharpness enchantment, and converts it into Mind Render of the same level. Cost is based on enchantment level, and increases by 50%% if the item is a book.",
- "oneironaut.page.lore.treatise1.1": "While it is possible to produce most iotas on the fly, there are cases where one finds it impractical, or simply cannot (such as very large and precise numbers, or entity references), and as such must obtain the desired iota in another way. Reading it from a Focus or a similar item works just fine, but in many cases this would require a third hand, which I do not have. Other methods of fetching iotas from external locations have their own limitations as well.",
- "oneironaut.page.lore.treatise1.2": "In cases where no external reference method would work well, one must insert the desired iota into the hex itself. This may seem counterintuive to some, what with the conventional wisdom being that a hex is a list of patterns, but one must remember that patterns are just another type of iota, which $(l:patterns/meta#hexcasting:eval)Hermes' Gambit$(/l) (and similar patterns) works particularly well with.",
- "oneironaut.page.lore.treatise1.3": "While you can't just shove a number into the list and expect it to be pushed to the stack as if it was a $(l:patterns/numbers)Numerical Reflection$(/l) pattern, there are ways around this.$(br2)The simplest (and least reliable) is the $(l:patterns/patterns_as_iotas#hexcasting:escape)Consideration$(/l) pattern. Similar to its use when casting freehand, anything that comes immediately after it in a list will be escaped and pushed to the stack when it might otherwise be executed, preventing mishaps due to execution of non-patterns.",
- "oneironaut.page.lore.treatise1.4": "However, when you're more than one exeuction deep in a hex (such as with nested conditional logic, or loops), the number of Considerations required to properly escape an iota increases exponentially, making it unreliable when used in anything that could conceivably be executed by another hex.",
- "oneironaut.page.lore.treatise1.4.link": "relevant xkcd",
- "oneironaut.page.lore.treatise1.5": "A far more reliable method of escaping iotas is to use $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(/l) and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)Retrospection$(/l). When a pattern list is being evaluated and an Introspection is encountered, everything up to (but not including) its paired Retrospection is escaped and pushed to the stack in a list, regardless of iota type. You can then work with this list as you see fit, such as using $(l:patterns/lists#hexcasting:splat)Flock's Disintegration$(/l) to push all of its contents to the stack on their own.",
- "oneironaut.page.lore.treatise1.6": "If the contents of your list looks like this:$(br2)Introspection$(br)Any iota(s)$(br)Retrospection$(br)Flock's Disintegration$(br2)the state of the stack after all that is executed will simply be all the iotas that were contained within Introspection and Retrospection.",
- "oneironaut.page.lore.treatise2.1": "When one wishes to impart motion upon something, the standard method is to use $(l:patterns/spells/basic#hexcasting:add_motion)Impulse$(/l). However, this can get prohibitively expensive when one wishes to make something move extremely quickly, as the cost increases exponentially with the length of the vector. This can be mitigated by simply using a magnitude-1 Impulse many times over on a single target, turning the overall cost from n^2 to 2n-1, where n is the magnitude of the vector.",
- "oneironaut.page.lore.treatise2.2": "The easiest way to accomplish this is with $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l), by giving it a list containing many instances of the same entity reference. There are other (and often better) methods, of course, but aside from simply drawing the patterns over and over, they generally fall under the broader topic of loops, which is outside the scope of this document.",
- "oneironaut.page.lore.treatise3.1": "While $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) is perfectly-suited for casting something on many targets at once, using to it cast something on one target many times can get awkward, and short of completely halting the hex, it is not possible to add or remove targets once Thoth has begun executing.$(br)To get around these limitations, one simply needs to use a different sort of loop.",
- "oneironaut.page.lore.treatise3.2.header": "While Loop",
- "oneironaut.page.lore.treatise3.2": "A While loop is a loop that continues executing until some condition is fulfilled, such as an entity's target velocity having been reached. The most common way to accomplish this is creating a pattern list which duplicates and executes the top iota on the stack, duplicating it, then executing it. On its own this simply produces an infinite loop which does nothing but mishap.",
- "oneironaut.page.lore.treatise3.3": "However, by adding actual functionality and a bit of boolean logic, you can create a proper while loop. The code for the aforementioned infinite loop is as follows:$(br)Introspection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br)Retrospection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br2)By adding logic that changes whether the inner Hermes' Gambit gets evaluated based on a condition, you can make it stop once that condition is fulfilled.",
- "oneironaut.page.lore.treatise3.4.header": "Loop Unrolling",
- "oneironaut.page.lore.treatise3.4": "A more complex form of loop is an unrolled loop. Like Thoth's Gambit, it's created with a fixed number of iterations which can't easily be added to, but Charon's Gambit can be used to halt it early if need be. It also has the advantage that when done competently, it only ever produces one or two levels of recursion depth (not counting anything executed in the body of the loop). Loop unrolling is accomplished by creating a pattern list you want to repeat, duplicating it many times, and then combining all those lists into one.",
- "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:add)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
- "oneironaut.page.lore.treatise4.1": "Some of my, erm, \"colleagues\" have trouble transcribing long hexes.$(br)\"This is too long!\"$(br)\"The grid doesn't have enough space!\"$(br)$(bold)Skill issue$(), I say. It's not like a hex is immutable once you've drawn the last Retrospection. All you need to do is save the work-in-progress hex to a focus (though you should make sure to conserve enough grid space to actually do this).",
- "oneironaut.page.lore.treatise4.2": "Then you just use the $(l:patterns/lists)list manipulation$(/l) patterns to combine it with the other parts once you're done.$(br2)You don't even need to use multiple foci, you can just append one part to the last one as you finish them, and then save that to one focus. The multiple-focus method makes it easier to debug your finished hex, but as far as I know that's its only benefit compared to the one-focus method.",
- "oneironaut.page.lore.science1.1": "$(o)\"What is this and how do I get rid of it?\"$()$(br)A question asked by many people upon their first encounter with a slipway. I don't have a good answer for the second part of the question, but I believe I can provide a satisfactory response to the first.$(br)From what I can tell, a slipway is a tiny hole in space, the other side of which is the media realm known as the Noosphere.",
- "oneironaut.page.lore.science1.2": "The wisp-like phenomena that emerge from it are formed when the vast ambient media of the Noosphere attempts to rush through the hole (much like gas leaking into a near-vacuum) and gets tangled in a manner similar to how wisp-summoning spells weave the media which they consume.",
- "oneironaut.page.lore.science1.3": "Additionally, it seems that slipways have a sort of barrier over the entrance, preventing any matter from passing through. If this barrier could be pierced, and the hole expanded, the slipway would become capable of absorbing matter into the noosphere. It would also cease producing wisps, as the media coming through would do so far more slowly, and thus not be agitated and tangled. If one were to attempt this, they would have to be careful not to widen it too greatly, or they would risk the surrounding area being absorbed into the noosphere.",
-
- "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
-
- "oneironaut.page.lore.science2.1": "What a strange place. The liquid that comprises the ocean here is not much denser than water, but small islands float in it despite being comprised of a rock similar in density to ordinary basalt. What's more, everything seems strangely ephemeral, like a dream. But how could this be a dream, when I am more lucid than I've ever been before?",
- "oneironaut.page.lore.science2.2": "It seems this great lucidity is a product of the ambient media present here, lubricating my thoughts. These media levels even exceed those present at the cores of wisps, reducing their innate decay to infinitesimal levels. Interestingly, this has no effect on wisps which bear an imprint of someone else's soul, preventing me from using wisps as indefinite truename storage.$(br)This ambient media even leaks through sufficiently-large dimensional rifts, preserving wisps on the other side as long as they remain within a certain range of the rift.",
- "oneironaut.page.lore.science3.1": "This crystal is quite fascinating. An object formed from pure media, orders of magnitude denser than conventional conjured blocks, or even the condensed media crystals that some of my colleagues at the library have been studying. It doesn't even contain the trace amounts of silicon dioxide found in amethyst of similar media density. And when I leave it unattended for a while, dust collects in fractalline patterns, as if the crystal bears a passive spell-like effect.",
- "oneironaut.page.lore.science3.2": "Examining it more thoroughly under a microscope, it seems that these fractals extend beneath the surface of the crystal, and are constantly shifting in a consistent pattern. Could this be a time crystal?",
- "oneironaut.page.glow_ambit.1": "Despite diligent research, the source of the special properties of other hexcasters' entity references has eluded me. However, I've discovered a way to bestow one such property upon other beings, at least temporarily (and flashily).$(br)This spell allows casters to affect creatures from great distances just like the infinite-range aspect of a player reference. However, one must still be close to the target in order to perform the initial application.",
- "oneironaut.page.glow_ambit.2": "Accepts a living entity, and allows it to be accessed from anywhere for one minute. Has a base cost of one amethyst shard, plus one additional shard per application before allowing it to expire.",
- "oneironaut.page.glow_ambit.3": "It seems that this effect functions by causing the target to emit some sort of psionic resonance, strong enough to cause its outline to be \"visible\" through all manner of barriers (perhaps hexcasters naturally produce this same resonance, but much subtler?). However, this glow is distinct from that induced by spectral arrows and similar, so don't bet on things to detect that working for this.",
- "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:patterns/idea_inscription)Idea Inscription$(/l).",
- "oneironaut.page.soulprints.2": "Returns my soulprint, mishapping if cast using anything other than a staff. Costs a negligible amount of media.",
- "oneironaut.page.soulprints.3": "Invisibly engraves my soulprint onto the item in my other hand, or erases it if it is already there. Costs 1 amethyst dust.$(br)I should be careful to seal any focuses or similar that I sign, as acquiring an unsealed signed focus may allow someone to impersonate me, and Erase Item gets rid of the signature.",
- "oneironaut.page.soulprints.4": "Accepts a soulprint, and checks if the item in my other hand is engraved with it. Returns true if so, false otherwise. Costs a negligible amount of media.",
- "oneironaut.page.hover_elevator.1": "By combining materials native to the noosphere with certain ingredients associated with levitation, I can create a device which produces streams of propulsive energy capable of carrying me along them, with minimal risk of falling. To use it, it must be placed facing directly towards another one (which must be facing it in turn). Once I've done this, both ends must be activated with a",
- "oneironaut.page.hover_elevator.2": "redstone signal, and the energy stream will form between the paired emitters, assuming they are within range of each other (64 meters horizontally, or 128 vertically). By stepping into the stream, I will be held in place until I look towards either end of the stream, at which point I will be accelerated in that direction until I hit a maximum speed proportional to how closely my vision parallels the stream. Crouching causes the stream to hold me in place regardless of my gaze.",
- "oneironaut.page.hover_elevator.3": "$(o)Best to don some long fall boots the first time I try these.",
- "oneironaut.page.hover_elevator.meme":"$(o)Bad and naughty hexcasters get sent to the hover cube.",
- "oneironaut.page.hover_elevator.4": "Additionally, I can create a repeater capable of extending the range of the emitters when placed between them, such that the stream can continue on as if it had just left the emitter. Of course, such an extension requires more powerful components, and even then the stream can only be extended by three repeaters before it becomes too unstable to form.",
- "oneironaut.page.hover_elevator.5": "Fortunately, this device seems to be rather immaterial for some reason, and I can pass straight through it without having to carefully twist around it in the stream.$(br)$(o)No, it does not make the stream pause for a moment before continuing.",
- "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
- "oneironaut.page.flayrevival.2": "Accepts a flayed mob, and creates an artifical pseudo-mind to inhabit its body. Costs 16 charged amethyst when used on a villager or allay, or 10 amethyst shards for anything else.",
- "oneironaut.page.flayrevival.3": "While these pseudo-minds are capable of moving their bodies around as if they were their original inhabitants, they are too simple to be called truly sapient, even with the rather loose definition of the term that must be used when applying it to villagers. As such, any villager \"restored\" in this manner loses any professional experience it had before, and cannot gain such experience ever again.",
- "oneironaut.page.flayrevival.4": "They do, however, regain their ability to reproduce, with any children they produce being untainted by my craft.$(br2)I'm not sure why the restored villagers suddenly gain an affinity for green clothing, but at least it serves as a good indicator of which villagers will be of little further use.",
- "oneironaut.page.monkfruit.1": "I've discovered that using the $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l) spell on a Sweet Berry Bush produces a rather interesting plant. It is much like the shrub it mutates from, however its thorns are imbued with a media field which siphons the minds of pricked creatures into the plant in order to grow. It can grow without this (albeit slowly), though it still requires minds nearby to provide small amounts of media.",
- "oneironaut.page.monkfruit.2": "The fruit that this bush produces is quite sweet, and can be processed into sugar. Additionally, it releases bits of media during digestion, which seek out rechargeable items on my person. I should be wary of the thorns while picking the fruit.",
- "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
- "oneironaut.page.monkfruit.4": "$(o)It's not rocket science.$()",
- "oneironaut.page.library_card.1": "In my search for a truly universal data storage method, I have designed a small device which allows me to read from Akashic Records in other dimensions while on my person. I need only write a spatial imprint to the item, and any future akashic read operations will be redirected to the stored dimension.$(br)Unfortunately, it does not allow me to $(o)write to$() them, but this is certainly better than nothing.",
- "oneironaut.page.library_card.2": "$(o)It seems to exude some kind of sticky gloop.$()",
- "oneironaut.page.heimdall.1": "A strange pattern that appears to be a variant of Hermes' Gambit. Accepts a spatial imprint and an executable iota, and attempts to cast the iota in the corresponding dimension.",
- "oneironaut.page.heimdall.2": "While it does allow me to cast across dimensions, it is not the perfect solution that I have been searching for. For one thing, it seems to work only when cast directly by me, rather than via a spell circle or wisp. Additionally, media-consuming patterns cast in this way have their cost increased by 25%%. Finally, since I am not physically present in the target dimension, I need to use my Greater Sentinel (or other ambit-boosting effects) in order to affect anything in there.",
- "oneironaut.page.heimdall.3": "Accepts a spatial imprint, and moves my sentinel to the corresponding dimension, with its coordinates scaled appropriately. Costs one amethyst shard. Mishaps if I do not currently have a sentinel.",
-
- "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
- "oneironaut.advancements.noosphere.enter": "A Realm of Thought and Dream",
- "oneironaut.advancements.noosphere.enter.description": "Enter the Noosphere",
- "oneironaut.advancements.noosphere.find_tower": "A Timeless Classic",
- "oneironaut.advancements.noosphere.find_tower.description": "Discover the tower of an unknown hexcaster",
- "oneironaut.advancements.noosphere.find_media_lab": "Crystallized",
- "oneironaut.advancements.noosphere.find_media_lab.description": "Discover a grim experiment",
- "oneironaut.advancements.noosphere.find_garden": "Stranded",
- "oneironaut.advancements.noosphere.find_garden.description": "Discover an unfortunate soul's last reminder of home",
- "oneironaut.advancements.lore.root": "Oneironaut Lore",
- "oneironaut.advancements.lore.root.description": "Memories lost to time",
- "oneironaut.advancements.lore.treatise1": "Hexcaster's Memory #1",
- "oneironaut.advancements.lore.treatise1.description": "Reflections on iota embedding",
- "oneironaut.advancements.lore.treatise2": "Hexcaster's Memory #2",
- "oneironaut.advancements.lore.treatise2.description": "Reflections on efficient use of Impulse",
- "oneironaut.advancements.lore.treatise3": "Hexcaster's Memory #3",
- "oneironaut.advancements.lore.treatise3.description": "Reflections on repeated patterns",
- "oneironaut.advancements.lore.treatise4": "Hexcaster's Memory #4",
- "oneironaut.advancements.lore.treatise4.description": "Reflections on long hexes",
- "oneironaut.advancements.lore.science1": "Scientist's Memory #1",
- "oneironaut.advancements.lore.science1.description": "Research into the nature of slipways",
- "oneironaut.advancements.lore.science2": "Scientist's Memory #2",
- "oneironaut.advancements.lore.science2.description": "Research into the properties of the Noosphere",
- "oneironaut.advancements.lore.science3": "Scientist's Memory #3",
- "oneironaut.advancements.lore.science3.description": "Research into the structure of pseudoamethyst",
- "oneironaut.advancements.unflay": "Recycling!",
- "oneironaut.advancements.unflay.description": "Surely you weren't going to just throw that away!",
- "oneironaut.advancements.ouchie": "Ouch!",
- "oneironaut.advancements.ouchie.description": "What did you expect?",
-
- "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
- "hexcasting.mishap.oneironaut:badcuboid.mismatch": "Supplied cuboids are dissimilar.",
- "hexcasting.mishap.oneironaut:badcuboid.toobig": "Supplied cuboids are too big.",
- "hexcasting.mishap.oneironaut:badcuboid.overlap": "Supplied cuboids overlap in the same dimension.",
- "hexcasting.mishap.oneironaut:uninfusable": "Expected an infusable block at %s, but got %s.",
- "hexcasting.mishap.oneironaut:nonoosphere": "Expected one end of the transfer to be a special dimension.",
- "hexcasting.mishap.oneironaut:norod": "Expected to be cast from a Reverberation Rod.",
- "hexcasting.mishap.oneironaut:norodremote": "Expected an active Reverberation Rod in hand.",
- "hexcasting.mishap.oneironaut:missingenchant": "Expected %s to be enchanted with %s, but it is not.",
- "hexcasting.mishap.oneironaut:unhappyslime": "The slime says \"%s\"",
- "hexcasting.mishap.oneironaut:norequirediota": "The slime demands %s",
- "hexcasting.mishap.oneironaut:requiresdifferententities": "an entity different from the target",
- "hexcasting.mishap.oneironaut:nostaff": "%s expected to be cast using a staff.",
- "hexcasting.mishap.oneironaut:nosentinel": "Could not find a sentinel to move.",
- "oneironaut.mishap.noitemframe": "an item frame",
- "oneironaut.mishap.invalidideakey": "a vector, player, or soulprint",
- "oneironaut.mishap.unenlightenedtarget": "an enlightened player",
- "oneironaut.mishap.notbrainswept": "a flayed villager",
- "oneironaut.mishap.badentitykey": "an enlightened player or a flayed villager",
- "oneironaut.mishap.nolistsallowed": "a non-list iota",
- "oneironaut.mishap.entitytypelistplease": "a list of entity types",
- "oneironaut.mishap.wrongsizelist": "List is improperly sized.",
- "oneironaut.mishap.twovectorsplease": "List does not contain two vectors.",
- "oneironaut.mishap.requiresflayedmob": "%s expected a flayed mob, but got %s.",
- "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "a spatial imprint",
- "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "a soulprint",
-
- "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
- "hexcasting.iota.oneironaut:dim": "Dimension",
- "hexcasting.iota.oneironaut:uuid": "Soulprint",
- "hexcasting.iota.oneironaut:uuid.label": "Soulprint of %s",
- "biome.oneironaut.noosphere_sea": "Noosphere Sea",
- "text.oneironaut.clearIdeasResponse": "Cleared iota storage map.",
- "effect.oneironaut.detection_resistance": "Media Shroud",
- "effect.oneironaut.not_missing": "Uplifting Resonance",
- "effect.oneironaut.rumination": "Rumination",
- "enchantment.oneironaut.overcast_damage": "Mind Render",
- "itemGroup.oneironaut.oneironaut": "Oneironaut",
- "oneironaut.tooltip.wispcapturedevice.haswisp": "Contains a wisp with %s dust and hex signature %s.",
- "oneironaut.tooltip.wispcapturedevice.nowisp": "No wisp.",
- "oneironaut.tooltip.wispcapturedevice.uninitialized": "Media reservoir has not been initialized.",
- "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
- "oneironaut.tooltip.lich_media_amount": "Reservoir contains: %s/%s (%s)"
-}
diff --git a/projects/1.20-fabric/assets/oneironaut/oneironaut/packer-policy.json b/projects/1.20-fabric/assets/oneironaut/oneironaut/packer-policy.json
deleted file mode 100644
index 8108a20a6cca..000000000000
--- a/projects/1.20-fabric/assets/oneironaut/oneironaut/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/oneironaut/oneironaut"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/en_us.json b/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
deleted file mode 100644
index 8fbdf3c934eb..000000000000
--- a/projects/1.20/assets/ephemera/ephemera/lang/en_us.json
+++ /dev/null
@@ -1,189 +0,0 @@
-{
- "itemGroup.ephemera.ephemera": "Ephemera",
-
- "item.ephemera.media_helmet": "Hexformed Helmet",
- "item.ephemera.media_chestplate": "Hexformed Chestplate",
- "item.ephemera.media_leggings": "Hexformed Leggings",
- "item.ephemera.media_boots": "Hexformed Boots",
-
- "block.ephemera.relay_tp_detector": "Network Gateway Probe",
- "block.ephemera.relay_index": "Network Routing Index",
- "block.ephemera.fakeslate": "Inert Slate",
-
- "hexcasting.action.ephemera:magearmor": "Instant Aegis",
- "hexcasting.action.book.ephemera:magearmor": "Instant Aegis",
- "hexcasting.action.ephemera:networkscan": "Network Distillation",
- "hexcasting.action.book.ephemera:networkscan": "Network Dstln.",
- "hexcasting.action.ephemera:networktp": "Network Gateway",
- "hexcasting.action.book.ephemera:networktp": "Network Gateway",
- "hexcasting.action.ephemera:networkindex": "Routing Distillation",
- "hexcasting.action.book.ephemera:networkindex": "Routing Dstln.",
- "hexcasting.action.ephemera:readframerotation": "Decorator's Purification",
- "hexcasting.action.book.ephemera:readframerotation": "Decorator's Prfn.",
- "hexcasting.action.ephemera:setframerotation": "Decorator's Gambit",
- "hexcasting.action.ephemera:paintconjured": "Externalize Pigment",
- "hexcasting.action.ephemera:particleburst": "Particle Burst",
- "hexcasting.action.ephemera:invisibility": "Hidden Sun's Zenith",
- "hexcasting.action.ephemera:getstatus": "Apothecary's Purification",
- "hexcasting.action.book.ephemera:getstatus": "Apothecary's Prfn.",
- "hexcasting.action.ephemera:getstatuscategory": "Apothecary's Purification II",
- "hexcasting.action.book.ephemera:getstatuscategory": "Apothecary's Prfn. II",
- "hexcasting.action.ephemera:getstatusduration": "Pharmacist's Distillation",
- "hexcasting.action.book.ephemera:getstatusduration": "Pharmacist's Dstln.",
- "hexcasting.action.ephemera:getstatuslevel": "Pharmacist's Dstln. II",
- "hexcasting.action.book.ephemera:getstatuslevel": "Pharmacist's Distillation II",
- "hexcasting.action.ephemera:getbystatus": "Zone Exaltation: Status",
- "hexcasting.action.book.ephemera:getbystatus": "Zone Exltn.: Status",
- "hexcasting.action.ephemera:getbystatusinverse": "Zone Exaltation: Not-Status",
- "hexcasting.action.book.ephemera:getbystatusinverse": "Zone Exltn.: Not-Status",
- "hexcasting.action.ephemera:getbystatussingle": "Entity Distillation: Status",
- "hexcasting.action.ephemera:removestatus": "Cleanse Status",
- "hexcasting.action.ephemera:getabsorption": "Ablation Purification",
- "hexcasting.action.ephemera:filteredentityraycast": "Scout's Exaltation",
- "hexcasting.action.ephemera:gaussianrand": "Entropy Reflection II",
- "hexcasting.action.ephemera:hash": "Hashing Purification",
- "hexcasting.action.ephemera:hashbits": "undocumented hash-to-numbers pattern",
- "hexcasting.action.ephemera:revealtoother": "Postman's Gambit",
- "hexcasting.action.ephemera:getrevealcost": "Postage Purification",
- "hexcasting.action.ephemera:clearrevealcost": "Postman's Gambit II",
- "hexcasting.action.ephemera:repair": "Induce Mending",
- "hexcasting.action.ephemera:getdurabilitymainhand": "Menderbug's Reflection",
- "hexcasting.action.book.ephemera:getdurabilitymainhand": "Menderbug's Rfln.",
- "hexcasting.action.ephemera:getdurabilityoffhand": "Menderbug's Reflection II",
- "hexcasting.action.book.ephemera:getdurabilityoffhand": "Menderbug's Rfln. II",
- "hexcasting.action.ephemera:thothyoink": "Seshat's Gambit",
- "hexcasting.action.ephemera:thothcount": "Seshat's Reflection",
- "hexcasting.action.book.ephemera:thothcount": "Seshat's Rfln.",
- "hexcasting.action.ephemera:collisionprobe": "Clearance Purification",
- "hexcasting.action.book.ephemera:collisionprobe": "Clearance Prfn.",
- "hexcasting.action.ephemera:getiotasize": "Flock's Purification",
- "hexcasting.action.book.ephemera:getiotasize": "Flock's Prfn.",
- "hexcasting.action.ephemera:getstacksizedeep": "Flock's Reflection II",
- "hexcasting.action.book.ephemera:getstacksizedeep": "Flock's Rfln. II",
- "hexcasting.action.ephemera:no": "No",
- "hexcasting.action.ephemera:getproperties": "State Purification",
- "hexcasting.action.ephemera:getpropertyvalue": "State Distillation",
- "hexcasting.action.ephemera:ridewisp": "Ride Wisp",
- "hexcasting.action.ephemera:dismount": "Dismount",
- "hexcasting.action.ephemera:getrider": "Equestrian Purification",
- "hexcasting.action.book.ephemera:getrider": "Equestrian Prfn.",
- "hexcasting.action.ephemera:getmount": "Equestrian Purification II",
- "hexcasting.action.book.ephemera:getmount": "Equestrian Prfn. II",
- "hexcasting.action.ephemera:cancelflight": "Terminate Flight",
- "hexcasting.action.ephemera:getflight/type": "Aviator's Purification II",
- "hexcasting.action.ephemera:getflight/remaining": "Aviator's Purification III",
-
- "hexcasting.mishap.location_ephemera:inputrelaytprange": "Target entity is too far from target node at %s.",
- "hexcasting.mishap.location_ephemera:outputrelaytprange": "Could not find connected node within range of %s.",
- "hexcasting.mishap.ephemera:nonconjured": "Expected a conjured block at %s, but got %s.",
- "hexcasting.mishap.ephemera:missingeffect": "Expected %s to be affected by %s, but they are not.",
- "hexcasting.mishap.ephemera:nothoth": "Expected to be cast from inside of Thoth's Gambit.",
- "ephemera.mishap.noitemframe": "an item frame",
- "ephemera.mishap.entitytypelistplease": "a list of entity types",
- "ephemera.mishap.toolongiota": "an iota that displays as less than 256 characters",
- "hexcasting.mishap.ephemera:blacklist": "This effect has been blacklisted via tag.",
- "hexcasting.mishap.ephemera:instant": "How did you even get that iota?",
- "hexcasting.mishap.ephemera:no": "no",
-
- "item.ephemeral.media_armor.tooltip.1": "Bestows %s %s upon the wearer.",
-
- "ephemera.entry.miscpatterns": "Misc. Ephemera Patterns",
- "ephemera.entry.invisibility": "Invisibility",
- "ephemera.entry.status_iotas": "Status Iotas",
- "ephemera.entry.network": "Link Amenities",
- "ephemera.entry.revealtoother": "Messaging",
- "ephemera.entry.mending": "Induce Mending",
- "ephemera.entry.hashing": "Iota Hashing",
- "ephemera.entry.specialslates": "Modified Slates",
- "ephemera.entry.metathoth": "Accumulator Manipulation",
- "ephemera.entry.flight": "Additional Flight Patterns",
-
- "ephemera.page.paintconjured.1": "Accepts a vector and an itemtype representing a pigment. Costs a negligible amount of media if targeting my own block, or 1 Amethyst Dust if not.",
- "ephemera.page.paintconjured.2": "Sets the colors of the conjured block corresponding to the vector to the colorset represented by the passed pigment, or mine if passed a NULL iota.$(br2)Not guaranteed to work with unconventional forms of conjured matter. ",
- "ephemera.page.paintconjured.3": "Feels strangely celebratory, as if something similar was once used in grand festivals where teams would splatter their colors all over their opponents' territory in a bid for ideological dominance.",
-
- "ephemera.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
- "ephemera.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
- "ephemera.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
- "ephemera.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
- "ephemera.page.miscpatterns.5": "Returns a random number with a gaussian distribution, with a mean of zero and a standard deviation of one.",
- "ephemera.page.miscpatterns.6": "Accepts a vector, and returns whether that vector is within (or just on the edge of) the block in that space. Seems to involve the boxes I see in my mind's eye.",
- "ephemera.page.miscpatterns.7": "Returns the total size of all iotas on my stack, including the contents of lists and similar. If this number ever reaches 1024, my stack shall come crashing down into garbage.",
- "ephemera.page.miscpatterns.8": "Accepts any iota, and returns its total size.",
- "ephemera.page.miscpatterns.9": "Accepts a vector, and returns a list of strings corresponding to values contained in the state of the block at the corresponding position.",
- "ephemera.page.miscpatterns.10": "Accepts a vector and a string, and uses the string as a key to retrieve the value it corresponds to in the target block's state, or null if there is no corresponding value.",
- "ephemera.page.miscpatterns.11": "Accepts one of my wisps (or a wandering wisp), and places me atop it, similar to sitting in a minecart. I must be within the wisp's ambit, or four blocks for wandering wisps. Costs one amethyst shard.",
- "ephemera.page.miscpatterns.12": "I should take care not to accelerate too quickly when riding a wisp, as unlike with Impulse, the acceleration is not applied evenly across my body, and can thus cause significant harm. The threshold for how quickly I can accelerate safely seems to be about 98 m/s over one second.$(br)I should take care when mounting fast wisps, as the instantaneous velocity involved can contribute to this damage if I am too far from my final seated position.",
- "ephemera.page.miscpatterns.13": "Takes me off of whatever entity I may be riding when cast. Costs 1/100 of a dust.",
- "ephemera.page.miscpatterns.14": "Accepts an entity, and returns a list of entities seated atop it.",
- "ephemera.page.miscpatterns.15": "Accepts an entity, and returns the entity it is seated atop.",
-
- "ephemera.page.flight.1": "I've often found the preexisting suite of flight-related patterns to be a bit lackluster. They work perfectly well if all you want to do is cast the spell and go, but they are not well-suited to doing anything more complex. These patterns should help with that.",
- "ephemera.page.flight.2": "Cancels my current flight ability, at a cost of one tenth of an Amethyst Dust. Casting a new flight spell in the same instant allows me to continue flying, potentially with different parameters.",
- "ephemera.page.flight.3": "Returns true if the target is under the effects of Anchorite's Flight, false if Wayfarer's Flight, null if neither.",
- "ephemera.page.flight.4": "Returns how close the target is to the end of their flight spell, represented as either their distance to the boundary or how many seconds remain.",
-
- "ephemera.page.particleburst.1": "Accepts two vectors and two numbers, and uses them to define a burst of particles. Costs a negligible amount of media.",
- "ephemera.page.particleburst.2": "The first vector determines the burst's origin position, and the second vector determines its direction and speed. The first number determines the scale of random numbers added to each position component, and the second does the same for the direction vector.",
-
- "ephemera.page.invisibility.1": "Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), applying Invisibility. Costs one amethyst dust per three seconds.",
-
- "ephemera.page.status_iotas.1": "These patterns work with a type of iota that represents lingering effects on a creature, which can allow me to asses the state of a creature more thoroughly than with only Nurse's Purification.$(br)While my research suggests that status iotas representing instantaneous effects are possible, they would be very difficult to obtain, and I cannot think of any use case for them at the moment.",
- "ephemera.page.status_iotas.2": "Accepts a living entity, and returns a list of status iotas representing all effects on the target.",
- "ephemera.page.status_iotas.3": "Accepts a status effect type, and returns a number based on whether the effect is likely to be helpful, harmful, or neutral to a creature.",
- "ephemera.page.status_iotas.4": "Accepts an entity and a status effect type, and returns the effect on the target's duration in seconds.",
- "ephemera.page.status_iotas.5": "Accepts an entity and a status effect type, and returns the effect on the target's potency.",
- "ephemera.page.status_iotas.6": "Accepts a status effect type and a vector, and returns an entity at that position which has that effect.",
- "ephemera.page.status_iotas.7": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which have that effect.",
- "ephemera.page.status_iotas.8": "Accepts a status effect type, a vector, and a number ($(o)n$()), and returns a list of entities within radius $(o)n$() of the vector which do not have that effect.",
- "ephemera.page.status_iotas.9": "Accepts a living entity, and returns how much damage it can Absorb before its health is affected.",
- "ephemera.page.status_iotas.10": "Accepts an entity and a status effect type, and removes that status effect from the entity. Cost is based on the effect's innate harmfulness, its potency, and its remaining duration.",
- "ephemera.page.status_iotas.11": "Costs more if attempting to remove a positive effect from an entity other than myself.$(br2)All of the patterns which deal with a specific status effect on an entity have the side effect that if the entity does not currently have the specified effect, the pattern will fail and inflict nausea upon me.",
-
- "ephemera.page.magearmor.1": "I've discovered a rather interesting spell, capable of producing a defensive media barrier that can match and even exceed the protective abilities of many kinds of conventional armor. It can even apply a wide array of $(l:patterns/spells/status_iotas)persistent effects$(/l) to the wearer, allowing for incredible versatility.",
- "ephemera.page.magearmor.2": "Accepts a player to grant the armor to, the durability of the armor, the protection value of the armor (max 10), a status effect to apply, and that effect's level. The latter two can be replaced with any non-status iota to ignore them.",
- "ephemera.page.magearmor.3": "Of course, this barrier is by no means indestructible, and its durability decays steadily in addition to any damage it takes from hits. The base rate of this decay can be described as one \"point\" per second, plus additional points equal to the squared strength of any effect imbued into it. Additionally, it will disappear instantly if removed from the wearer, so there is no way to repair it, short of recasting the spell to overwrite its current state.",
- "ephemera.page.magearmor.4": "The media cost for this spell is a bit complicated: A base of one amethyst dust per 60 durability, multiplied by the armor's protection value raised to the power of 1.5, times the level+1 of any status effect. Thus, producing no-status strength 10 armor with one minute's worth of durability costs ~31.5 dust. Adding Regeneration 2 increases that media cost to ~94.5 dust, and causes it to only last 36 seconds.",
- "ephemera.page.magearmor.5": "This explanation assumes I am wearing no other armor, in practice the cost can be reduced to as little as 25%% of that formula's output if all but one of my armor slots is already occupied by more conventional armor.",
-
- "ephemera.page.network.1": "I've devised a suite of patterns (plus a couple of blocks) to make links a bit more useful for things other than data transmission and media sharing.$(br2)Note that the patterns which fetch information about the network make no promises regarding whether returned linkables are within ambit.",
- "ephemera.page.network.2": "Scans the link network connected to the input linkable up to a recursion depth equal to the input number (max 32), and returns a list of all connected linkables. Costs a negligible amount of media.",
- "ephemera.page.network.3": "Accepts an entity to teleport, a linkable to use for access to its network, and a destination. If the entity is within 8 blocks of the linkable, and there is a network node within 4 blocks of the destination, the entity will be teleported. Cost varies based on what entity is teleported.",
- "ephemera.page.network.4": "Outputs a brief redstone signal when an adjacent relay is used as the output for a casting of Network Gateway.",
- "ephemera.page.network.5": "When rclicked with a focus in the main hand, attempts to store its iota in the block. When the focus is in the offhand, writes the stored iota to the focus.",
- "ephemera.page.network.6": "Accepts a linkable to use for network access, and any iota. If a relay connected to the network has an adjacent Network Routing Index with the same iota, returns that relay's position. Costs half an amethyst dust.",
-
- "ephemera.page.revealtoother.1": "Accepts a player and any iota less than 256 characters long, and shows that iota to them as if they had cast Reveal, also telling them who sent the message. Cost is inversely proportional to the length of time since they were last targeted by this spell.",
- "ephemera.page.revealtoother.2": "Accepts a player and returns how much amethyst dust it would cost to send them a message via Postman's Gambit, between 1/10 of a dust and 10 dust.",
- "ephemera.page.revealtoother.3": "Resets the cost of sending me a message via Postman's Gambit back to 1/10 of a dust. Costs 1/10 of a dust.",
-
- "ephemera.page.mending.1": "Accepts a raw media item on the ground, and attempts to use it to repair a tool in my other hand.",
- "ephemera.page.mending.2": "Generally only works on items enchanted with Mending, which are already damaged. Restores twenty points of damage for each amethyst dust's worth of media.",
- "ephemera.page.mending.3": "Returns how many times the item in my other hand can be used without breaking, durability-manipulating effects notwithstanding.",
- "ephemera.page.mending.4": "As previous, targeting the item in the hand I'm casting this with. Most useful with delayed casts of one form or another.",
-
- "ephemera.page.hashing.1": "I've discovered a curious pattern which scrambles an iota into an unreadable mess. However, unlike Garbage iotas, $(o)this$() mess still contains data, and running the same iota through the pattern will always produce the same mess (known as a hash). While it is not possible to recover an iota from a hash, it can be quite useful for comparisons in situations where I cannot save the unaltered iota.",
- "ephemera.page.hashing.2": "Accepts any iota, and converts it into its hashed form.",
-
- "ephemera.page.specialslates.1": "I've designed a couple types of slate to be used in spell circles. While they don't provide any groundbreaking new functionality, they can be nice to have.",
- "ephemera.page.specialslates.2": "Works just like a normal slate, but is capable of sending the media wave into the block it is placed on.",
- "ephemera.page.specialslates.3": "Crafted with a normal slate and a stonecutter.$(br2)Looks just like a normal slate, but can't direct a media wave at all. Cannot be written to.",
-
- "ephemera.page.metathoth.1": "It seems that the list which $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) forms as it iterates over a data set functions as a stack, simply one that is a bit out of the way. As such, I have devised a couple of patterns for interacting with this hidden stack, called the accumulator.",
- "ephemera.page.metathoth.2": "Pops an iota from the accumulator and pushes it to the current stack. Mishaps if used outside of Thoth's Gambit.",
- "ephemera.page.metathoth.3": "Returns how many iotas are currently accessible via Seshat's Gambit. Returns -1 if used outside of Thoth's Gambit.",
-
- "ephemera.page.forgewarning.1": "Mod author's note for Forge users: This spell does not work on Forge. I do not know why. I've set the cost on Forge to zero so at least it won't waste media. Sorry.$(br2)I'll try to get it working eventually.",
-
- "hexcasting.iota.ephemera:potion": "Status Effect",
- "hexcasting.iota.ephemera:hash": "Hash",
- "ephemera.iota.hashlabel": "Hashed data: %s",
-
- "text.ephemera.clearHistoryResponse": "Cleared reveal history map.",
- "text.ephemera.revealIntroduction": "Transmission from %s: ",
- "text.ephemera.nosender": "unknown",
-
- "enchantment.ephemera.shame": "Curse of Shame",
-
- "death.attack.ephemera:acceleration": "%s was subjected to lethal acceleration."
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json b/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
deleted file mode 100644
index 9e50d3f88ffc..000000000000
--- a/projects/1.20/assets/ephemera/ephemera/lang/zh_cn.json
+++ /dev/null
@@ -1,189 +0,0 @@
-{
- "itemGroup.ephemera.ephemera": "Ephemera",
-
- "item.ephemera.media_helmet": "咒塑头盔",
- "item.ephemera.media_chestplate": "咒塑胸甲",
- "item.ephemera.media_leggings": "咒塑护腿",
- "item.ephemera.media_boots": "咒塑靴子",
-
- "block.ephemera.relay_tp_detector": "网络门径探测器",
- "block.ephemera.relay_index": "网络路由索引",
- "block.ephemera.fakeslate": "惰性石板",
-
- "hexcasting.action.ephemera:magearmor": "瞬时庇护",
- "hexcasting.action.book.ephemera:magearmor": "瞬时庇护",
- "hexcasting.action.ephemera:networkscan": "网络之馏化",
- "hexcasting.action.book.ephemera:networkscan": "网络之馏化",
- "hexcasting.action.ephemera:networktp": "网络门径",
- "hexcasting.action.book.ephemera:networktp": "网络门径",
- "hexcasting.action.ephemera:networkindex": "路由之馏化",
- "hexcasting.action.book.ephemera:networkindex": "路由之馏化",
- "hexcasting.action.ephemera:readframerotation": "装潢师之纯化",
- "hexcasting.action.book.ephemera:readframerotation": "装潢师之纯化",
- "hexcasting.action.ephemera:setframerotation": "装潢师之策略",
- "hexcasting.action.ephemera:paintconjured": "外化染色剂",
- "hexcasting.action.ephemera:particleburst": "粒子迸发",
- "hexcasting.action.ephemera:invisibility": "隐阳当空",
- "hexcasting.action.ephemera:getstatus": "药师之纯化",
- "hexcasting.action.book.ephemera:getstatus": "药师之纯化",
- "hexcasting.action.ephemera:getstatuscategory": "药师之纯化,第二型",
- "hexcasting.action.book.ephemera:getstatuscategory": "药师之纯化,第二型",
- "hexcasting.action.ephemera:getstatusduration": "药剂师之馏化",
- "hexcasting.action.book.ephemera:getstatusduration": "药剂师之馏化",
- "hexcasting.action.ephemera:getstatuslevel": "药剂师之馏化,第二型",
- "hexcasting.action.book.ephemera:getstatuslevel": "药剂师之馏化,第二型",
- "hexcasting.action.ephemera:getbystatus": "区域之提整:状态",
- "hexcasting.action.book.ephemera:getbystatus": "区域之提整:状态",
- "hexcasting.action.ephemera:getbystatusinverse": "区域之提整:非状态",
- "hexcasting.action.book.ephemera:getbystatusinverse": "区域之提整:非状态",
- "hexcasting.action.ephemera:getbystatussingle": "实体之馏化:状态",
- "hexcasting.action.ephemera:removestatus": "清除状态",
- "hexcasting.action.ephemera:getabsorption": "销蚀之纯化",
- "hexcasting.action.ephemera:filteredentityraycast": "侦查员之提整",
- "hexcasting.action.ephemera:gaussianrand": "熵之精思,第二型",
- "hexcasting.action.ephemera:hash": "哈希之纯化",
- "hexcasting.action.ephemera:hashbits": "未记录的哈希至数转换图案",
- "hexcasting.action.ephemera:revealtoother": "邮递员之策略",
- "hexcasting.action.ephemera:getrevealcost": "邮递员之纯化",
- "hexcasting.action.ephemera:clearrevealcost": "邮递员之策略,第二型",
- "hexcasting.action.ephemera:repair": "咒感修补",
- "hexcasting.action.ephemera:getdurabilitymainhand": "维修虫之精思",
- "hexcasting.action.book.ephemera:getdurabilitymainhand": "维修虫之精思",
- "hexcasting.action.ephemera:getdurabilityoffhand": "维修虫之精思,第二型",
- "hexcasting.action.book.ephemera:getdurabilityoffhand": "维修虫之精思,第二型",
- "hexcasting.action.ephemera:thothyoink": "塞莎特之策略",
- "hexcasting.action.ephemera:thothcount": "塞莎特之精思",
- "hexcasting.action.book.ephemera:thothcount": "塞莎特之精思",
- "hexcasting.action.ephemera:collisionprobe": "空域之纯化",
- "hexcasting.action.book.ephemera:collisionprobe": "空域之纯化",
- "hexcasting.action.ephemera:getiotasize": "群体之纯化",
- "hexcasting.action.book.ephemera:getiotasize": "群体之纯化",
- "hexcasting.action.ephemera:getstacksizedeep": "群体之精思,第二型",
- "hexcasting.action.book.ephemera:getstacksizedeep": "群体之精思,第二型",
- "hexcasting.action.ephemera:no": "不",
- "hexcasting.action.ephemera:getproperties": "状态之纯化",
- "hexcasting.action.ephemera:getpropertyvalue": "状态之馏化",
- "hexcasting.action.ephemera:ridewisp": "骑乘咒灵",
- "hexcasting.action.ephemera:dismount": "离座",
- "hexcasting.action.ephemera:getrider": "马术师之纯化",
- "hexcasting.action.book.ephemera:getrider": "马术师之纯化",
- "hexcasting.action.ephemera:getmount": "马术师之纯化,第二型",
- "hexcasting.action.book.ephemera:getmount": "马术师之纯化,第二型",
- "hexcasting.action.ephemera:cancelflight": "终止飞行",
- "hexcasting.action.ephemera:getflight/type": "飞行员之纯化,第二型",
- "hexcasting.action.ephemera:getflight/remaining": "飞行员之纯化,第三型",
-
- "hexcasting.mishap.location_ephemera:inputrelaytprange": "目标实体距%s处的目标节点过远。",
- "hexcasting.mishap.location_ephemera:outputrelaytprange": "无法在范围%s内找到已连接的节点。",
- "hexcasting.mishap.ephemera:nonconjured": "%s处本应为一个构筑的方块,而实际为%s。",
- "hexcasting.mishap.ephemera:missingeffect": "%s本应拥有%s,而实际没有。",
- "hexcasting.mishap.ephemera:nothoth": "本应在托特之策略内部施放。",
- "ephemera.mishap.noitemframe": "一个物品展示框",
- "ephemera.mishap.entitytypelistplease": "一个实体类型列表",
- "ephemera.mishap.toolongiota": "一个可用少于256个字符显示的iota",
- "hexcasting.mishap.ephemera:blacklist": "此效果已被标签禁用。",
- "hexcasting.mishap.ephemera:instant": "是如何拿到这个iota的?",
- "hexcasting.mishap.ephemera:no": "不",
-
- "item.ephemeral.media_armor.tooltip.1": "给予穿戴者%s %s。",
-
- "ephemera.entry.miscpatterns": "Ephemera:杂项图案",
- "ephemera.entry.invisibility": "隐形",
- "ephemera.entry.status_iotas": "状态 Iota",
- "ephemera.entry.network": "链接实用图案",
- "ephemera.entry.revealtoother": "信息传递",
- "ephemera.entry.mending": "咒感修补",
- "ephemera.entry.hashing": "Iota 哈希",
- "ephemera.entry.specialslates": "变种石板",
- "ephemera.entry.metathoth": "累积栈操作",
- "ephemera.entry.flight": "额外飞行图案",
-
- "ephemera.page.paintconjured.1": "接受一个向量与代表染色剂的物品类型。如果目标为我自己的方块,消耗极少量媒质;否则消耗 1 个紫水晶粉。",
- "ephemera.page.paintconjured.2": "将所给位置处构筑方块的颜色设置为所给染色剂的颜色;如果传入的是 Null,则将其设置为我意识的颜色。$(br2)不保证对非传统的构筑物质有效。",
- "ephemera.page.paintconjured.3": "这种效果有着奇怪的庆典感,就好像它曾用于某个盛大的节庆活动,与会队伍会把自己队的颜色泼洒到对手的领地上,类似于意识层面上的占领。",
-
- "ephemera.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
- "ephemera.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
- "ephemera.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
- "ephemera.page.miscpatterns.4": "与$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)类似,但能够接受一个实体类型 iota 列表。类型不在该列表内的实体会被忽略。消耗的媒质量略多于上文所提图案的“极少量”。",
- "ephemera.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布,其均值为 0,标准差为 1。",
- "ephemera.page.miscpatterns.6": "接受一个向量,并检查该向量是否在该位置方块的内部或边缘。似乎与我在意识中见到的方框有所关联。",
- "ephemera.page.miscpatterns.7": "返回我栈中所有 iota 的总大小,类列表 iota 中的各元素会拆出计算。若返回的数达到 1024,那么整个栈都将变为垃圾。",
- "ephemera.page.miscpatterns.8": "接受任意 iota,返回其总大小。",
- "ephemera.page.miscpatterns.9": "接受一个向量,以字符串列表形式返回该位置处方块各状态值。",
- "ephemera.page.miscpatterns.10": "接受一个向量和一个字符串,以该字符串为键返回目标方块的对应状态值;若无对应值则返回 Null。",
- "ephemera.page.miscpatterns.11": "接受一个属于我的咒灵或游走咒灵,并像乘坐矿车一样坐到其上。我必须处于咒灵的影响范围内,或距游走咒灵 4 格以内。消耗 1 个紫水晶碎片。",
- "ephemera.page.miscpatterns.12": "骑乘咒灵时务必小心,千万不要加速加得太快;咒灵和驱动不同,前者带来的加速不会平均作用于我的全身,也因此可能会导致严重的损伤。安全阈值应该是约 98 m/s 每秒。$(br)落座时也应注意:如果距离目标咒灵过远,落座时的瞬时速度也可能导致伤害。",
- "ephemera.page.miscpatterns.13": "让我从施法时骑乘的实体上离开。消耗 1/100 个紫水晶粉。",
- "ephemera.page.miscpatterns.14": "接受一个实体,返回在该实体上方落座的实体列表。",
- "ephemera.page.miscpatterns.15": "接受一个实体,返回其所骑乘的实体。",
-
- "ephemera.page.flight.1": "已有的飞行相关图案总是有些平淡。如果只是想施法然后飞,那已有的图案已经足够,但它们没法处理更复杂的需求。本节图案应该帮得上忙。",
- "ephemera.page.flight.2": "去除当前的飞行能力,消耗 1/10 个紫水晶粉。在同一刻施放新的飞行法术可继续飞行,可借此更改参数。",
- "ephemera.page.flight.3": "如果目标处于隐士之飞行影响下,返回 True;如果处于旅者之飞行影响下,返回 False;两者都不适用返回 Null。",
- "ephemera.page.flight.4": "返回目标距其飞行法术结束的量度,返回值的意义可变。可以是距飞行界限的距离,也可以是剩余的飞行秒数。",
-
- "ephemera.page.particleburst.1": "接受两个向量和两个数,并由其触发一束粒子。消耗极少量媒质。",
- "ephemera.page.particleburst.2": "第一个向量决定了粒子束的起始位置,第二个向量则决定其方向和速度。第一个数决定各位置向量分量附加多大的随机数,第二个数则以同种方式决定方向向量的随机性。",
-
- "ephemera.page.invisibility.1": "和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能类似,给予隐形,每 3 秒持续时间消耗 1 个紫水晶粉。",
-
- "ephemera.page.status_iotas.1": "这些图案主要操作代表生物身上长时效果的 iota,我可以用这些图案评估生物的状态,比只用护士之纯化更加深入彻底。$(br)虽然我的研究表明,代表瞬时效果的状态 iota 有存在的可能,但它们非常难以获取,而且我目前没想到它们有什么用途。",
- "ephemera.page.status_iotas.2": "接受一个生物,并返回目标当前所有效果组成的列表 iota。",
- "ephemera.page.status_iotas.3": "接受一个状态效果,并根据该效果对生物产生正面、负面,或中性影响返回一个数。",
- "ephemera.page.status_iotas.4": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的持续时间,以秒计。",
- "ephemera.page.status_iotas.5": "接受一个实体和一个状态效果,并返回目标身上所给状态效果的强度。",
- "ephemera.page.status_iotas.6": "接受一个状态效果和一个向量,并返回该处带有该状态效果的实体。",
- "ephemera.page.status_iotas.7": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有带有给定状态效果生物的列表。",
- "ephemera.page.status_iotas.8": "接受一个状态效果,一个向量和一个数($(o)n$()),返回该位置给定距离范围($(o)n$())内所有无给定状态效果生物的列表。",
- "ephemera.page.status_iotas.9": "接受一个活体实体,并返回其在生命值受影响前能吸收的伤害量。",
- "ephemera.page.status_iotas.10": "接受一个实体和一个状态效果,并移除该实体身上的所给状态效果。消耗由效果自身的伤害性、强度、剩余持续时间决定。",
- "ephemera.page.status_iotas.11": "若是要移除非自身实体身上的正面效果,则消耗会增加。$(br2)所有需要检测实体身上有无所给状态效果的图案都有副作用。如果该实体当前没有这种效果,则图案会失效,并给予我反胃。",
-
- "ephemera.page.magearmor.1": "我发现了一种比较有趣的法术,它能够产生防御性的媒质屏障,防护力媲美甚至超过许多种传统盔甲。此类屏障甚至还能给予穿戴者许多$(l:patterns/spells/status_iotas)持久效果$(/l),堪称泛用。",
- "ephemera.page.magearmor.2": "接受作为盔甲接收方的玩家,盔甲的耐久度,盔甲的护甲值(最多为 10),施加的状态效果,状态效果的等级。最后两个参数可用其他类型的 iota 代替,此时这两个参数会被忽略。",
- "ephemera.page.magearmor.3": "当然,这种屏障并非无法破坏。除去受击致损外,其耐久度还会持续减少。这种减少效应的基础速率看作每秒 1 “点”,则还需附加上其中效果等级平方个“点”。此外,穿戴者脱下后它们会立刻消失。换言之,除非重新施法覆写其状态,否则没有方法修复它们。",
- "ephemera.page.magearmor.4": "此法术的媒质消耗比较复杂:每 60 点耐久度基础消耗 1 个紫水晶粉,乘以护甲值的 1.5 次幂,再乘以任意状态效果的等级 + 1。因此,不提供状态效果、护甲值为 10、耐久度够支持 1 分钟的盔甲需消耗大约 31.5 个紫水晶粉。再令其给予生命恢复 II,消耗就来到了大约 94.5 个紫水晶粉,并且在消失前也只能坚持 36 秒。",
- "ephemera.page.magearmor.5": "这一计算结果的前提是我没有穿戴其他盔甲,实际操作中消耗可以缩减到最低 25%%,出现在所有盔甲槽位中只有 1 格空出的情况中。",
-
- "ephemera.page.network.1": "我设计了一系列图案和若干方块,旨在赋予链接更多用途,除去已有数据传输和媒质共享之外。$(br2)需要注意,对于从网络中获取信息的图案,其返回的可链接事物不一定处在影响范围之内。",
- "ephemera.page.network.2": "递归扫描与输入端可链接事物相连的链接网络,最大深度为所给数(最高为 32),并返回所有可链接事物组成的列表。消耗极少量媒质。",
- "ephemera.page.network.3": "接受需传送的实体,用于访问网络的可链接事物,以及目的地。如果实体位于所给可链接事物 8 格之内,且距目的地 4 格之内存在网络节点,则实体会被传送。消耗量由被传送实体的类型决定。",
- "ephemera.page.network.4": "如果毗邻的继链器被用作网络门径的输出端,则产生一次短时红石信号。",
- "ephemera.page.network.5": "主手持有核心右击时,会尝试将核心中的 iota 存入自身。副手持有核心时,则会将存储的 iota 写入核心。",
- "ephemera.page.network.6": "接受用于访问网络的可链接事物,以及任意 iota。如果网络中有继链器毗邻网络路由索引,且索引中存有同一 iota,则返回该继链器的位置。消耗 1/2 个紫水晶粉。",
-
- "ephemera.page.revealtoother.1": "接受一个玩家和一个长度少于 256 个字符的 iota,并向所给玩家展示该 iota,如同他们来施放揭示一般;同时也告诉他们信息的发送者。消耗与给定玩家上一次作为此法术目标后经过的时间成反比例。",
- "ephemera.page.revealtoother.2": "接受一个玩家,返回紫水晶粉的数量,对应通过邮递员之策略向其发送信息的消耗,范围在 1/10 个到 10 个之间。",
- "ephemera.page.revealtoother.3": "重置通过邮递员之策略向我发送信息的消耗,也即 1/10 个紫水晶粉。消耗 1/10 个紫水晶粉。",
-
- "ephemera.page.mending.1": "接受自然包含媒质的物品实体,用其修复我另一只手中的工具。",
- "ephemera.page.mending.2": "通常只对拥有经验修补魔咒的受损物品有效。每个紫水晶粉的媒质恢复 20 点耐久度。",
- "ephemera.page.mending.3": "返回我另一只手中物品在损毁前还能使用的次数,会影响耐久度使用的效果不计。",
- "ephemera.page.mending.4": "和前页图案类似,但它会以施法用手中的物品为目标。最适合配合各种形式的延迟施法使用。",
-
- "ephemera.page.hashing.1": "我发现了一个神奇的图案,能将 iota 变成一团读不懂的乱麻。但和垃圾 iota 不一样的是,$(o)这种$()乱麻中依然含有数据,并且同样的 iota 必定给出同样的乱麻(又称哈希)。虽然哈希后的乱麻没法还原成 iota,但很适合在无法保存未经修改的 iota 的情况下用来比对。",
- "ephemera.page.hashing.2": "接受任意 iota,转换成哈希值。",
-
- "ephemera.page.specialslates.1": "我设计了若干种可用于法术环的石板。虽然它们没有什么开创性的新功能,但有这些选择也不错。",
- "ephemera.page.specialslates.2": "和普通的石板功效一样,但它能够向其所依附的方块传递媒质波。",
- "ephemera.page.specialslates.3": "在切石机中加工普通石板而得。$(br2)和普通石板外观一致,但完全无法传导媒质波,且无法写入。",
-
- "ephemera.page.metathoth.1": "似乎$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l)在处理数据时形成的列表在功能上与栈一致,只是表现上略有差别罢了。因此,我设计了一系列图案,用以和该隐藏栈——“累积栈”交互。",
- "ephemera.page.metathoth.2": "从累积栈中弹出一个 iota 并压入当前栈。在托特之策略外部使用会招致事故。",
- "ephemera.page.metathoth.3": "返回塞莎特之策略可访问的 iota 数目。在托特之策略外部使用会返回 -1。",
-
- "ephemera.page.forgewarning.1": "模组作者给 Forge 用户的留言:此法术在 Forge 上无法运行。我不知道具体的原因。我已将 Forge 端中此法术的消耗设置为 0,避免浪费媒质。抱歉。$(br2)我会尽力让它正常运作。",
-
- "hexcasting.iota.ephemera:potion": "状态效果",
- "hexcasting.iota.ephemera:hash": "哈希",
- "ephemera.iota.hashlabel": "哈希数据:%s",
-
- "text.ephemera.clearHistoryResponse": "已清除揭示历史。",
- "text.ephemera.revealIntroduction": "来自%s的信息:",
- "text.ephemera.nosender": "未知",
-
- "enchantment.ephemera.shame": "无耻诅咒",
-
- "death.attack.ephemera:acceleration": "%s因加速过快而亡"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/oneironaut/oneironaut/README.md b/projects/1.20/assets/oneironaut/oneironaut/README.md
deleted file mode 100644
index 55d484fa1b48..000000000000
--- a/projects/1.20/assets/oneironaut/oneironaut/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/oneironaut/oneironaut)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/oneironaut/oneironaut)
\ No newline at end of file
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json b/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
deleted file mode 100644
index dab0150e6349..000000000000
--- a/projects/1.20/assets/oneironaut/oneironaut/lang/en_us.json
+++ /dev/null
@@ -1,336 +0,0 @@
-{
- "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
- "hexcasting.action.oneironaut:getdim1": "Spatial Reflection",
- "hexcasting.action.oneironaut:getdim2": "Spatial Reflection II",
- "hexcasting.action.oneironaut:getdim/overworld": "Homeland Reflection",
- "hexcasting.action.oneironaut:getdim/nether": "Inferno Reflection",
- "hexcasting.action.oneironaut:getdimheight": "Atlas' Decomposition",
- "hexcasting.action.oneironaut:getdimscale": "Ratio Purification",
- "hexcasting.action.oneironaut:dimteleport": "Noetic Gateway",
- "hexcasting.action.oneironaut:infusemedia": "Media Infusion",
- "hexcasting.action.oneironaut:swapspace": "Spatial Interchange",
- "hexcasting.action.oneironaut:craftrod": "Conduct Rod",
- "hexcasting.action.oneironaut:getrodlook": "Baton Reflection",
- "hexcasting.action.oneironaut:getrodpos": "Baton Reflection II",
- "hexcasting.action.oneironaut:getrodstamp": "Metronome Reflection",
- "hexcasting.action.oneironaut:delayrod": "Metronome Gambit",
- "hexcasting.action.oneironaut:haltrod": "Finale",
- "hexcasting.action.oneironaut:resetrod": "Encore",
- "hexcasting.action.oneironaut:readrodram": "Williams' Reflection",
- "hexcasting.action.oneironaut:writerodram": "Williams' Gambit",
- "hexcasting.action.oneironaut:readrodramremote": "Williams' Reflection II",
- "hexcasting.action.oneironaut:writerodramremote": "Williams' Gambit II",
- "hexcasting.action.oneironaut:queryrod": "Conductor's Reflection",
- "hexcasting.action.oneironaut:rodloopactive": "Conductor's Reflection II",
- "hexcasting.action.oneironaut:craftbottomlesstrinket": "Craft Bottomless Trinket",
- "hexcasting.action.oneironaut:writeidea": "Inscribe Idea",
- "hexcasting.action.oneironaut:readidea": "Retrieve Idea",
- "hexcasting.action.oneironaut:readideatime": "Metadata Purification",
- "hexcasting.action.oneironaut:readideawriter": "Metadata Distillation",
- "hexcasting.action.oneironaut:readsentinel": "Scrutinize Sentinel",
- "hexcasting.action.oneironaut:resistdetection": "Stealth Shroud",
- "hexcasting.action.oneironaut:detectshroud": "Discern Shroud",
- "hexcasting.action.oneironaut:circle": "Circle",
- "hexcasting.action.oneironaut:applymindrender": "Empower Mind Render",
- "hexcasting.action.oneironaut:reviveflayed": "Instill Psyche",
- "hexcasting.action.oneironaut:advanceautomaton": "Cellular Generation",
- "hexcasting.action.oneironaut:applynotmissing": "Uplifting Resonance",
- "hexcasting.action.oneironaut:getsoulprint": "Soulprint Reflection",
- "hexcasting.action.oneironaut:signitem": "Sign Item",
- "hexcasting.action.oneironaut:checksignature": "Signature Purification",
- "hexcasting.action.oneironaut:extradimensionaleval": "Heimdall's Gambit",
- "hexcasting.action.oneironaut:shiftsentinel": "Shift Sentinel",
-
- "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
- "item.oneironaut.pseudoamethyst_shard": "Pseudoamethyst Shard",
- "item.oneironaut.shifting_pseudoamethyst": "Shifting Pseudoamethyst",
- "item.oneironaut.thought_slurry_bucket": "Thought Slurry Bucket",
- "item.oneironaut.reverberation_rod": "Reverberation Rod",
- "item.oneironaut.endless_phial": "Inexhaustible Phial",
- "item.oneironaut.bottomless_trinket": "Bottomless Trinket",
- "item.oneironaut.echo_staff": "Echo Staff",
- "item.oneironaut.beacon_staff": "Magitech Staff",
- "item.oneironaut.spoon_staff": "Spoon",
- "item.oneironaut.pigment_flame": "Flame Pigment",
- "item.oneironaut.pigment_echo": "Echo Pigment",
- "item.oneironaut.pigment_noosphere": "Noetic Pigment",
- "item.oneironaut.pigment_frenzyflame": "Frenzy Pigment",
- "item.oneironaut.memory_fragment": "Memory Fragment",
- "item.oneironaut.memory_fragment.all": "It seems I've consumed all the memories that this crystal can offer me...",
- "item.oneironaut.wisp_capture_device": "Wisp Wrangler",
- "item.oneironaut.mind_scalpel": "Synaptic Scalpel",
- "item.oneironaut.monkfruit": "Monkfruit",
- "item.oneironaut.monkfruit_cooked": "Cooked Monkfruit",
- "item.oneironaut.hexjam": "Hex Jam",
- "item.oneironaut.rending_thorns": "Rending Thorns",
- "item.oneironaut.library_card": "Akashic Library Card",
-
- "block.oneironaut.noosphere_gate": "Inscrutable Rift",
- "block.oneironaut.pseudoamethyst_block": "Pseudoamethyst Block",
- "block.oneironaut.pseudoamethyst_cluster": "Pseudoamethyst Cluster",
- "block.oneironaut.pseudoamethyst_bud_small": "Small Pseudoamethyst Bud",
- "block.oneironaut.pseudoamethyst_bud_medium": "Medium Pseudoamethyst Bud",
- "block.oneironaut.pseudoamethyst_bud_large": "Large Pseudoamethyst Bud",
- "block.oneironaut.thought_slurry": "Thought Slurry",
- "block.oneironaut.thought_slurry_flowing": "Flowing Thought Slurry",
- "block.oneironaut.noosphere_basalt": "Noosphere Basalt",
- "block.oneironaut.wisp_lantern": "Wisp Lantern",
- "block.oneironaut.wisp_lantern_tinted": "Tinted Wisp Lantern",
- "block.oneironaut.super_budding": "Budding Pseudoamethyst",
- "block.oneironaut.sentinel_sensor": "Sentinel Sensor",
- "block.oneironaut.raycast_blocker": "Anti-Raycast Slate",
- "block.oneironaut.raycast_blocker_glass": "Anti-Raycast Glass",
- "block.oneironaut.sentinel_trap": "Seer Impetus",
- "block.oneironaut.circle": "§0§oCircle",
- "block.oneironaut.hex_resistant_block": "Hex-Warded Obsidian",
- "block.oneironaut.media_ice": "Sagely Ice",
- "block.oneironaut.media_ice_frosted": "Transient Sagely Ice",
- "block.oneironaut.media_gel": "Plasmodial Psyche",
- "block.oneironaut.cell": "Dissonant Psyche",
- "block.oneironaut.wisp_battery": "Wisp Weaver",
- "block.oneironaut.decorative_wisp_battery": "Lesser Wisp Weaver",
- "block.oneironaut.hover_elevator": "Hexcaster's Hoverlift",
- "block.oneironaut.hover_repeater": "Hoverlift Repeater",
- "block.oneironaut.monkfruit_bush": "Monkfruit Bush",
- "block.oneironaut.spacebomb": "Slipcharge",
-
- "fluid.oneironaut.thought_slurry": "Thought Slurry",
-
- "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
- "oneironaut.entry.dim_iotas": "Dimension Iotas",
- "oneironaut.entry.status_iotas": "Status Iotas",
- "oneironaut.entry.noosphere_main": "A Strange Realm",
- "oneironaut.entry.noosphere_materials": "Thoughtful Materials",
- "oneironaut.entry.wisp_lanterns": "Wisp Devices",
- "oneironaut.entry.slipway_hint": "A Reflection on Slipways",
- "oneironaut.entry.miscpatterns": "Misc. Oneironaut Patterns",
- "oneironaut.entry.super_budding": "Better Media Farming",
- "oneironaut.entry.idea_inscription": "Idea Inscription",
- "oneironaut.entry.sentinel_detection": "Sentinel Detection",
- "oneironaut.entry.detection_shielding": "Nondetection",
- "oneironaut.entry.raycast_assailant": "Anti-Hex Blocks",
- "oneironaut.entry.mindrender": "Mind Render",
- "oneironaut.entry.soulprints": "Soulprints",
- "oneironaut.entry.hover_elevator": "Hoverlifts",
- "oneironaut.entry.flayrevival": "Artificial Minds",
- "oneironaut.entry.heimdall": "Transdimensional Casting",
-
- "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
- "oneironaut.page.spaceswap.1": "Accepts two lists of two vectors, to define two cuboids, and a Spatial Imprint. These cuboids must have the exact same dimensions and rotation.",
- "oneironaut.page.spaceswap.2": "I'm not quite sure what this one is supposed to do, it's always yelling at me about special dimensions. Perhaps it needs to use this special dimension as an intermediary?",
- "oneironaut.page.spaceswap.3": "Exchanges the blocks within the first cuboid in your current dimension (which must be within ambit) for the blocks within the second cuboid in the dimension corresponding to the Spatial Imprint. $(l:https://www.desmos.com/calculator/ydbg8zhmyp)Cost (in amethyst dust) is logarithmic for the first 1001 blocks, after which it increases linearly$(/l).$(br)Will not exchange any unbreakable blocks.$(br)One or both of the endpoint dimensions must be the noosphere.",
- "oneironaut.page.spaceswap.4": "One or both of the endpoint dimensions must be the noosphere.",
- "hexcasting.spell.oneironaut:dimteleport.samedim": "The spell does not do anything, similar to if I told someone to go home, when they were already at home.",
- "oneironaut.page.dim_iotas.1": "I've descovered a kind of iota which seems to represent a layer of reality itself. In lieu of better understanding, I've decided to call these Spatial Imprints.",
- "oneironaut.page.dim_iotas.2": "Returns a Spatial Imprint representing the dimension I am currently in. Costs a negligible amount of media.",
- "oneironaut.page.dim_iotas.3": "Returns a Spatial Imprint representing the dimension my sentinel is currently in. Costs one-tenth of an amethyst dust.",
- "oneironaut.page.dim_iotas.4": "Returns a Spatial Imprint representing the overworld. Costs one-tenth of an amethyst dust.",
- "oneironaut.page.dim_iotas.5": "Returns a Spatial Imprint representing the nether. Costs one-tenth of an amethyst dust.$(br)There seems to be some resistance when I cast this. Perhaps I'll be able to overcome it with $(#54398a)greater skill$()...",
- "oneironaut.page.dim_iotas.6": "Accepts a Spatial Imprint, and returns the lowest and highest altitudes at which blocks can exist in the corresponding dimension.",
- "oneironaut.page.dim_iotas.7": "Accepts a Spatial Imprint, and returns how many blocks you'd have to travel in the overworld to travel the equivalent of one block in the input dimension.",
- "oneironaut.page.dimteleport.1": "Accepts an entity and a Spatial Imprint and teleports the entity to its position in the proper dimension. Generally costs 20 Charged Amethyst.$(br)Will fail if supplied a player other than myself.",
- "oneironaut.page.dimteleport.2": "If I use this to return to a dimension that I previously left within the same instant, the cost drops to five amethyst dust, as the spell can take advantage of a lingering strand of media leading back to my original position. Otherwise, it will attempt to find a safe spot to deposit me, potentially conjuring a block to prevent me from falling to my doom.$(br2)Strangely, I feel an odd sense of acceleration when transporting myself this way, along some incomprehensible axis.",
- "oneironaut.page.infusemedia.1": "Accepts a vector and infuses media into the corresponding block in order to transmute it. Cost and exact effect vary depending on target.",
- "oneironaut.page.infusemedia.2": "Conceptually, this spell is quite similar to $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l).$(br)However, the media that the target block receives is far more finely-tuned, and can thus achieve far more interesting results.",
- "oneironaut.page.wisp_lanterns.1": "I've found that by using materials unique to the Noosphere, I can create a special jar capable of producing and containing a tiny wisp. While this wisp cannot cast anything, it emits quite a bit of light, and will mimic pigments shown to it.$(br)I can also craft a version with tinted glass, in case the wisp's light would disrupt my study's aesthetic.",
- "oneironaut.page.wisp_lanterns.2": "Additionally, by feeding this illumination wisp significant amounts of media, I can cause it to undergo mitosis, with the newly-created wisp being seemingly-identical to the wandering wisps produced by slipways.$(br2)The device to split the wisp in this way can be fed media-bearing items via hoppers or similar, and is capable of storing 640 charged amethyst worth of media.",
- "oneironaut.page.wisp_lanterns.3": "Simply apply a redstone signal to activate. Produces a wisp every four seconds, and consumes two charged amethyst to do so.$(br)The capacity and fill level of the phial used make no difference.",
- "oneironaut.page.wisp_lanterns.4": "Alternatively, I can create a version which does not consume (or accept) any media, but produces wisps which yield only net-zero media when consumed.$(br2)All the sparkly shiny orbs, none of the prohibitive cost!",
- "oneironaut.page.wisp_lanterns.5.originaltoolong": "Using similar principles, I've designed a device which can capture (and contain) wisps for their eventual release, though it does not work on wandering wisps due to their instability.$(br)Capturing one of my own wisps always consumes one amethyst shard worth of its (rechargable) 64-charged capacity, and capturing someone else's costs half again as much media as it contains. To capture a wisp, I must simply use the item on a wisp, and it will be sucked into the housing(assuming it has sufficient media and does not already contain a wisp).",
- "oneironaut.page.wisp_lanterns.5": "Using similar principles, I've designed a device which captures, stores, and releases wisps, though it does not work on unstable wandering wisps. Capturing one of my own wisps consumes one amethyst shard from its battery. Capturing someone else's wisp costs half again the media it contains. To capture a wisp, I must simply use the device on it, assuming it has enough media and isn't already occupied.",
- "oneironaut.page.wisp_lanterns.6": "When releasing a cyclic wisp, it is placed on the side of the block I use the item on. Projectile wisps are launched from my face, retaining their previous speed (but not direction). To discard a contained wisp, I need only use the item while crouching.",
- "oneironaut.page.wisp_lanterns.7": "To initalize the device's media battery, I must use it on one of my own wisps, which will irretrievably consume it and set the battery's capacity to the wisp's stored media value, rounded up to the nearest dust. Should I wish to reset this (along with everything else about the device), I can simply place it in a crafting grid on its own.",
-
- "oneironaut.page.noosphere_materials.1": "A strange fluid which agitates media entering it, preventing amethyst crystal formation. Stimulates my mind in pleasing ways when I immerse myself in it.",
- "oneironaut.page.noosphere_materials.2": "A rock which is primarily composed of media, somehow. Can be used to craft spell circle blocks.",
- "oneironaut.page.noosphere_materials.3.title": "Pseudoamethyst",
- "oneironaut.page.noosphere_materials.3": "A large crystal of media much like amethyst, but not quite the same. Produces a buzzing sensation under my fingers when I touch it, as if its media is stimulating the nerves. Breaking it without special care causes it to shatter into 1-4 pieces.",
- "oneironaut.page.noosphere_materials.4": "The shards can be used to fuel spells, and yield slightly more energy than a normal amethyst shard. Can also be used to craft several interesting things.",
- "oneironaut.page.noosphere_materials.5": "A solid form of media which is created when Thought Slurry freezes in a media-rich environment, or is caused to freeze by a hex.$(br)Its surface seems to have negative friction, causing anything sliding on it to accelerate indefinitely (albeit slowly).",
- "oneironaut.page.noosphere_materials.6": "An extremely viscous mass of media, capable of very basic cognition, analagous to a slime mold. While it is normally quite lethargic, it uses a spell-like ability to attempt to ensnare anything that touches it.",
- "oneironaut.page.slipway_hint.1": "The slipways, they must lead $(o)somewhere$(). Wisps do not simply manifest from nothing. No matter what I try, I cannot insert so much as a finger through that chaotic rift.$(br2)I'm going about this wrong. Perhaps rather than attempting to force my way through, I should be attempting to calm the storm.",
- "oneironaut.page.slipway_hint.2": "A large amount of harmonious media may just do it...",
- "oneironaut.page.slipway_hint.2.title": "Hmm...",
- "oneironaut.page.noosphere_main.1": "I've made it.$(br)The realm beyond the slipways. The ambient media is overwhelming. My mind is screaming at me, telling me I shouldn't be here. But I must press on. This is the next step in the journey.",
- "oneironaut.page.noosphere_main.2": "Every single thing I've examined here seems to be composed largely of media, similar to conjured matter, but orders of magnitude denser.$(br)$(o)Even the air is media. How am I breathing?$(br2)$(l)How can I even exist here?",
- "oneironaut.page.rod.1": "I've discovered that I can craft a peculiar sort of casting item, using the strange shards found in ancient cities.$(br)This item is unusual in that it casts its imbued hex twenty times per second while I concentrate on it, until it either mishaps or I cast Finale or Encore. This initiates a cooldown period, usually about one second.",
- "oneironaut.page.rod.2": "The echo shards seem to bear some bizarre form of media, with a tendency to loop back on itself while retaining a bit of the previous cast.",
- "oneironaut.page.rod.3": "Acts just like $(l:patterns/spells/hexcasting)the spells used to program conventional casting items$(). Costs 10 Charged Amethyst.",
- "oneironaut.page.rod.4": "When cast with a Reverberation Rod, returns my look vector from when I started the current cast loop.",
- "oneironaut.page.rod.5": "When cast with a Reverberation Rod, returns my eye position from when I started the current cast loop.",
- "oneironaut.page.rod.6": "When cast with a Reverberation Rod, returns the timestamp from when I started the current cast loop.",
- "oneironaut.page.rod.7": "Accepts a positive integer. When cast with a Reverberation Rod, delays the current cast loop's next cast until that many twentieths of a second have passed.",
- "oneironaut.page.rod.8": "When cast with a Reverberation Rod, forcibly halts the current cast loop.",
- "oneironaut.page.rod.9": "Accepts a positive integer. Halts the current cast loop but also reduces the cooldown period from 1 second to ((1/20) * number) seconds. Cooldown due to mishap is unaffected.",
- "oneironaut.page.rod.10": "Accepts a non-list iota, and stores it inside the current cast loop. It will be lost when the cast loop ends.",
- "oneironaut.page.rod.11": "Returns the iota stored in the current cast loop. Defaults to NULL.",
- "oneironaut.page.rod.12": "Returns a boolean corresponding to whether the current cast is making use of a rod.",
- "oneironaut.page.rod.13": "As Williams' Gambit, but can be cast from non-rod sources while a rod is in use.",
- "oneironaut.page.rod.14": "As Williams' Reflection, but can be cast from non-rod sources while a rod is in use.",
- "oneironaut.page.rod.15": "Returns whether the caster is currently using a rod, regardless of the current cast is from that rod.",
- "oneironaut.page.rod.16": "Echo shards can also be used in the construction of a staff, though it seems the only special property of such a staff is making sculk sounds.",
- "oneironaut.page.miscpatterns.1": "I've found a couple patterns designed to interact with item frames. Nothing fancy, but they're nice utility for things like controlling my spell circles.$(br2)Additionally, it seems Sorter's Purification works on them just fine, so my attempts to find a dedicated frame-item pattern were pointless.",
- "oneironaut.page.miscpatterns.2": "Accepts an item frame entity, and returns its rotation, from 0 to 7.",
- "oneironaut.page.miscpatterns.3": "Accepts an item frame entity and an integer from 0 to 7, and sets its rotation to the number. Costs a negligible amount of media.",
- "oneironaut.page.miscpatterns.4": "As $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l), but also accepts a list of entity type iotas. Any entity whose type is not present in the list will be ignored. Costs an amount of media slightly less negligible than that of the aforementioned pattern.",
- "oneironaut.page.miscpatterns.5": "Returns a random number between 0 and 1, with a gaussian distribution.",
- "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
- "oneironaut.page.super_budding.1": "I've found that the amethyst-like material native to the noosphere can be imbued with a villager's mind, much like normal amethyst. What's more, the block that results from this process produces significantly more media than normal Budding Amethyst, and it can be picked up and moved if one takes special care.",
- "oneironaut.page.super_budding.2": "Pseudoamethyst requires a stronger mind than normal amethyst, but the cost is well worth it.",
- "oneironaut.page.super_budding.3": "Additionally, when cultivated in the Noosphere, budding pseudoamethyst will produce pseudoamethyst clusters rather than conventional amethyst. These clusters will of course yield pseudoamethyst shards, as well as an unstable form of pseudoamethyst containing about four times as much media as the regular shards. Unfortunately, due to this instability, it cannot be directly converted into usable media. However, it can be converted into many other forms of media crystal by simply bringing the two items together.",
- "oneironaut.page.super_budding.4": "It seems to react to my gaze, as if endowed with some form of perception.",
- "oneironaut.page.super_budding.5": "The media generation rate of budding pseudoamethyst is such that even when immersed in thought slurry to inhibit crystal formation, it will still yield usable amounts of media. While the overall supply is nigh-endless, the amount accessible to any given action is quite small, like an inch-deep ocean a million miles across. However, due to this minimal depth, the media will dissipate rapidly before reaching my staff when accessed from afar, such as when recharging an item.",
- "oneironaut.page.super_budding.6": "Constantly provides about a tenth of an amethyst dust worth of media. While I $(o)can$() hold several of these in order to gain access to more media, this results in rapidly-diminishing returns. $(br)I should be careful not to craft with the wrong phial.",
- "oneironaut.page.super_budding.7": "I can also jam one into a trinket in order to replace its media supply with an inexhaustible phial, giving it access to the endless media within. However, it cannot use any media other than that provided by the phial.",
- "oneironaut.page.super_budding.8": "Writes a hex to the bottomless trinket in my other hand. Costs ten charged amethyst.",
- "oneironaut.page.idea_inscription.1": "As the noosphere is a realm of thought, it stands to reason that it could be used for information storage. These patterns do just that, inscribing an iota into the noosphere and reading it back (regardless of my current dimension). They can also store iotas inside the minds of other beings, assuming their thoughts are as... $(o)unfettered$() as my own. In the notation for these patterns, \"key\" refers to any vector or compatible entity.",
- "oneironaut.page.idea_inscription.2": "While this is quite versatile, the noosphere's ambient media is constantly in motion, and as such any iota stored in it will eventually be lost, similar to if I poured hot water into the ocean. It seems to take about an hour before such information decays into unusable garbage.$(br2)It seems that $(l:greatwork/akashiclib)Akashic Libraries$(/l) work based on similar principles, where the shelves serve as insulation to prevent decay.",
- "oneironaut.page.idea_inscription.3": "Accepts a valid key and any iota, and stores it in the corresponding location. Costs a quarter of an amethyst dust.",
- "oneironaut.page.idea_inscription.4": "Accepts a valid key, and returns the corresponding iota. Costs one-eigth of an amethyst dust.",
- "oneironaut.page.idea_inscription.5": "Accepts a valid key, and returns when the corresponding iota was inscribed, or -1. Costs no media.",
- "oneironaut.page.idea_inscription.6": "Accepts a valid key and a player, and returns whether the corresponding iota was inscribed by that player. Costs no media.",
- "oneironaut.page.sentinel_detection.1": "By combining the noosphere's pseudoamethyst with the organic sensory apparatus native to the deep dark, I've discovered a way to detect fluctuations in ambient media. This new form of sensor detects the presence of $(l:patterns/spells/sentinels)Sentinels$(/l) within approximately 16 meters, and outputs a redstone signal based on its proximity to the closest one. Comparators attached to it will output a signal if the sentinel in question is particularly powerful.",
- "oneironaut.page.sentinel_detection.2": "$(o)I'm sure the warden won't mind.$()",
- "oneironaut.page.sentinel_detection.3": "Additionally, this sensor can be incorporated into a Cleric Impetus, allowing it to activate when a sentinel is placed in the area (albeit with a lower range than the plain sensor). I've dubbed this contraption a Seer Impetus. Though it no longer responds to redstone, the circle's hex will start with a reference to the owner of the triggering sentinel on the stack.$(br)Due to the media interference produced by the cast, the impetus cannot detect sentinels it places itself.",
- "oneironaut.page.sentinel_detection.4": "As the sensor does not care whose sentinel it sees, I should take care to avoid allowing my trap circles to target me.",
- "oneironaut.page.sentinel_detection.5": "Accepts a vector and a player, and returns either the distance from the vector to the target player's sentinel or NULL. Costs a negligible amount of media.",
- "oneironaut.page.sentinel_detection.6": "Conjures a fleeting sensor at the target coordinates, which \"listens\" to the patterns in the ambient media to seek out the telltale signature of a sentinel.",
- "oneironaut.page.detection_shielding.1": "While conventional invisibility potions work just fine for fooling human senses, they are useless against hexes, so I've yet to find any method of making oneself completely undetectable. However, this spell I've discovered allows me to get closer to that goal, scattering media around a creature like chaff, in order to interfere with hex-based detection methods.",
- "oneironaut.page.detection_shielding.2": "Accepts a living entity and a number ($(o)n$()), and shields the entity from hex-based detection for $(o)n$() seconds. Costs two amethyst dust per second.",
- "oneironaut.page.detection_shielding.3": "Also drains media from the entity at a rate of 1/10 of a dust per second, as the shielding effect collects it to produce the chaff.$(br2)I should be careful with what I apply this to, as creatures with no loose media of their own will have their very minds fractured in order to provide this media.",
- "oneironaut.page.detection_shielding.4": "While this is very effective at blocking effects such as $(l:patterns/basics#hexcasting:raycast/entity)Scout's Distillation$(/l) and the various forms of $(l:patterns/entities#hexcasting:zone_entity/animal)Zone Distillation$(/l), it has no effect on $(l:patterns/entities#hexcasting:get_entity)Entity Purification$(/l) variants, as those already have a fairly precise idea of where you are. What's more, the chaff itself produces an energy signautre, which, while dim, is detectable by a specialized pattern.",
- "oneironaut.page.detection_shielding.5": "Accepts a vector and a number, and returns a list of unit vectors pointing from the initial vector to shrouded entities within a radius defined by the number.",
- "oneironaut.page.detection_shielding.6": "I've also discovered a spell which applies normal Invisibility. Functions just like the normal $(l:patterns/great_spells/zeniths)Zeniths$(/l), and costs one amethyst dust per three seconds.",
- "oneironaut.page.raycast_assailant.1": "By \"threading\" pseudoamethyst through a block, I can create something which causes any raycast (including entity raycasts) that hits or passes through it to return null, as if it didn't hit anything.",
- "oneironaut.page.raycast_assailant.3": "Strangely, combining pseudoamethyst with obsidian in the same way does not confer anti-raycast properties, instead making it nigh-indestructible to hexes. However, the resultant block loses much of its durability, being no stronger than common stone (though it retains its blast resistance).",
- "oneironaut.page.mindrender.1": "I've read legends of a particularly macabre form of weapon known as a Mind Render. This weapon, sometimes used by ancient hexcasters, is capable of severing a creature's very thoughts, dealing damage that bypasses all known forms of protection. What's more, if this damage leaves the target just on the brink of true death, it will fall into a vegetative state, never to recover. I shudder to think of what the ancients may have used this property for...",
- "oneironaut.page.mindrender.2": "Accepts an item or item frame bearing the Sharpness enchantment, and converts it into Mind Render of the same level. Cost is based on enchantment level, and increases by 50%% if the item is a book.",
- "oneironaut.page.lore.treatise1.1": "While it is possible to produce most iotas on the fly, there are cases where one finds it impractical, or simply cannot (such as very large and precise numbers, or entity references), and as such must obtain the desired iota in another way. Reading it from a Focus or a similar item works just fine, but in many cases this would require a third hand, which I do not have. Other methods of fetching iotas from external locations have their own limitations as well.",
- "oneironaut.page.lore.treatise1.2": "In cases where no external reference method would work well, one must insert the desired iota into the hex itself. This may seem counterintuive to some, what with the conventional wisdom being that a hex is a list of patterns, but one must remember that patterns are just another type of iota, which $(l:patterns/meta#hexcasting:eval)Hermes' Gambit$(/l) (and similar patterns) works particularly well with.",
- "oneironaut.page.lore.treatise1.3": "While you can't just shove a number into the list and expect it to be pushed to the stack as if it was a $(l:patterns/numbers)Numerical Reflection$(/l) pattern, there are ways around this.$(br2)The simplest (and least reliable) is the $(l:patterns/patterns_as_iotas#hexcasting:escape)Consideration$(/l) pattern. Similar to its use when casting freehand, anything that comes immediately after it in a list will be escaped and pushed to the stack when it might otherwise be executed, preventing mishaps due to execution of non-patterns.",
- "oneironaut.page.lore.treatise1.4": "However, when you're more than one exeuction deep in a hex (such as with nested conditional logic, or loops), the number of Considerations required to properly escape an iota increases exponentially, making it unreliable when used in anything that could conceivably be executed by another hex.",
- "oneironaut.page.lore.treatise1.4.link": "relevant xkcd",
- "oneironaut.page.lore.treatise1.5": "A far more reliable method of escaping iotas is to use $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(/l) and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)Retrospection$(/l). When a pattern list is being evaluated and an Introspection is encountered, everything up to (but not including) its paired Retrospection is escaped and pushed to the stack in a list, regardless of iota type. You can then work with this list as you see fit, such as using $(l:patterns/lists#hexcasting:splat)Flock's Disintegration$(/l) to push all of its contents to the stack on their own.",
- "oneironaut.page.lore.treatise1.6": "If the contents of your list looks like this:$(br2)Introspection$(br)Any iota(s)$(br)Retrospection$(br)Flock's Disintegration$(br2)the state of the stack after all that is executed will simply be all the iotas that were contained within Introspection and Retrospection.",
- "oneironaut.page.lore.treatise2.1": "When one wishes to impart motion upon something, the standard method is to use $(l:patterns/spells/basic#hexcasting:add_motion)Impulse$(/l). However, this can get prohibitively expensive when one wishes to make something move extremely quickly, as the cost increases exponentially with the length of the vector. This can be mitigated by simply using a magnitude-1 Impulse many times over on a single target, turning the overall cost from n^2 to 2n-1, where n is the magnitude of the vector.",
- "oneironaut.page.lore.treatise2.2": "The easiest way to accomplish this is with $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l), by giving it a list containing many instances of the same entity reference. There are other (and often better) methods, of course, but aside from simply drawing the patterns over and over, they generally fall under the broader topic of loops, which is outside the scope of this document.",
- "oneironaut.page.lore.treatise3.1": "While $(l:patterns/meta#hexcasting:for_each)Thoth's Gambit$(/l) is perfectly-suited for casting something on many targets at once, using to it cast something on one target many times can get awkward, and short of completely halting the hex, it is not possible to add or remove targets once Thoth has begun executing.$(br)To get around these limitations, one simply needs to use a different sort of loop.",
- "oneironaut.page.lore.treatise3.2.header": "While Loop",
- "oneironaut.page.lore.treatise3.2": "A While loop is a loop that continues executing until some condition is fulfilled, such as an entity's target velocity having been reached. The most common way to accomplish this is creating a pattern list which duplicates and executes the top iota on the stack, duplicating it, then executing it. On its own this simply produces an infinite loop which does nothing but mishap.",
- "oneironaut.page.lore.treatise3.3": "However, by adding actual functionality and a bit of boolean logic, you can create a proper while loop. The code for the aforementioned infinite loop is as follows:$(br)Introspection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br)Retrospection$(br)Gemini Decomposition$(br)Hermes' Gambit$(br2)By adding logic that changes whether the inner Hermes' Gambit gets evaluated based on a condition, you can make it stop once that condition is fulfilled.",
- "oneironaut.page.lore.treatise3.4.header": "Loop Unrolling",
- "oneironaut.page.lore.treatise3.4": "A more complex form of loop is an unrolled loop. Like Thoth's Gambit, it's created with a fixed number of iterations which can't easily be added to, but Charon's Gambit can be used to halt it early if need be. It also has the advantage that when done competently, it only ever produces one or two levels of recursion depth (not counting anything executed in the body of the loop). Loop unrolling is accomplished by creating a pattern list you want to repeat, duplicating it many times, and then combining all those lists into one.",
- "oneironaut.page.lore.treatise3.5": "The simplest way to accomplish this is to use $(l:patterns/stackmanip#hexcasting:duplicate)Gemini Decomposition$(/l) and then $(l:patterns/lists#hexcasting:add)Combination Distillation$(/l), resulting in a doubled pattern list. This method can be repeated to achieve greater powers of 2, and only produces a single level of recursion depth, when the list is executed. A more flexible method is to use $(l:patterns/stackmanip#hexcasting:duplicate_n)Gemini Gambit$(/l) to produce $(o)n$() copies of the list, then gathering $(o)n-1$() instances of the pattern for Combination Distillation into one list and executing it, thus merging all the copies of your original list into one.",
- "oneironaut.page.lore.treatise4.1": "Some of my, erm, \"colleagues\" have trouble transcribing long hexes.$(br)\"This is too long!\"$(br)\"The grid doesn't have enough space!\"$(br)$(bold)Skill issue$(), I say. It's not like a hex is immutable once you've drawn the last Retrospection. All you need to do is save the work-in-progress hex to a focus (though you should make sure to conserve enough grid space to actually do this).",
- "oneironaut.page.lore.treatise4.2": "Then you just use the $(l:patterns/lists)list manipulation$(/l) patterns to combine it with the other parts once you're done.$(br2)You don't even need to use multiple foci, you can just append one part to the last one as you finish them, and then save that to one focus. The multiple-focus method makes it easier to debug your finished hex, but as far as I know that's its only benefit compared to the one-focus method.",
- "oneironaut.page.lore.science1.1": "$(o)\"What is this and how do I get rid of it?\"$()$(br)A question asked by many people upon their first encounter with a slipway. I don't have a good answer for the second part of the question, but I believe I can provide a satisfactory response to the first.$(br)From what I can tell, a slipway is a tiny hole in space, the other side of which is the media realm known as the Noosphere.",
- "oneironaut.page.lore.science1.2": "The wisp-like phenomena that emerge from it are formed when the vast ambient media of the Noosphere attempts to rush through the hole (much like gas leaking into a near-vacuum) and gets tangled in a manner similar to how wisp-summoning spells weave the media which they consume.",
- "oneironaut.page.lore.science1.3": "Additionally, it seems that slipways have a sort of barrier over the entrance, preventing any matter from passing through. If this barrier could be pierced, and the hole expanded, the slipway would become capable of absorbing matter into the noosphere. It would also cease producing wisps, as the media coming through would do so far more slowly, and thus not be agitated and tangled. If one were to attempt this, they would have to be careful not to widen it too greatly, or they would risk the surrounding area being absorbed into the noosphere.",
-
- "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
-
- "oneironaut.page.lore.science2.1": "What a strange place. The liquid that comprises the ocean here is not much denser than water, but small islands float in it despite being comprised of a rock similar in density to ordinary basalt. What's more, everything seems strangely ephemeral, like a dream. But how could this be a dream, when I am more lucid than I've ever been before?",
- "oneironaut.page.lore.science2.2": "It seems this great lucidity is a product of the ambient media present here, lubricating my thoughts. These media levels even exceed those present at the cores of wisps, reducing their innate decay to infinitesimal levels. Interestingly, this has no effect on wisps which bear an imprint of someone else's soul, preventing me from using wisps as indefinite truename storage.$(br)This ambient media even leaks through sufficiently-large dimensional rifts, preserving wisps on the other side as long as they remain within a certain range of the rift.",
- "oneironaut.page.lore.science3.1": "This crystal is quite fascinating. An object formed from pure media, orders of magnitude denser than conventional conjured blocks, or even the condensed media crystals that some of my colleagues at the library have been studying. It doesn't even contain the trace amounts of silicon dioxide found in amethyst of similar media density. And when I leave it unattended for a while, dust collects in fractalline patterns, as if the crystal bears a passive spell-like effect.",
- "oneironaut.page.lore.science3.2": "Examining it more thoroughly under a microscope, it seems that these fractals extend beneath the surface of the crystal, and are constantly shifting in a consistent pattern. Could this be a time crystal?",
- "oneironaut.page.glow_ambit.1": "Despite diligent research, the source of the special properties of other hexcasters' entity references has eluded me. However, I've discovered a way to bestow one such property upon other beings, at least temporarily (and flashily).$(br)This spell allows casters to affect creatures from great distances just like the infinite-range aspect of a player reference. However, one must still be close to the target in order to perform the initial application.",
- "oneironaut.page.glow_ambit.2": "Accepts a living entity, and allows it to be accessed from anywhere for one minute. Has a base cost of one amethyst shard, plus one additional shard per application before allowing it to expire.",
- "oneironaut.page.glow_ambit.3": "It seems that this effect functions by causing the target to emit some sort of psionic resonance, strong enough to cause its outline to be \"visible\" through all manner of barriers (perhaps hexcasters naturally produce this same resonance, but much subtler?). However, this glow is distinct from that induced by spectral arrows and similar, so don't bet on things to detect that working for this.",
- "oneironaut.page.soulprints.1": "A soulprint is an iota similar to my player reference in that it represents me, but significantly more limited in use. It is impossible for anyone to obtain my soulprint without my involvement, though it is not subject to the same write-restrictions as ordinary player references.$(br2)Interestingly, soulprints are valid keys for $(l:patterns/idea_inscription)Idea Inscription$(/l).",
- "oneironaut.page.soulprints.2": "Returns my soulprint, mishapping if cast using anything other than a staff. Costs a negligible amount of media.",
- "oneironaut.page.soulprints.3": "Invisibly engraves my soulprint onto the item in my other hand, or erases it if it is already there. Costs 1 amethyst dust.$(br)I should be careful to seal any focuses or similar that I sign, as acquiring an unsealed signed focus may allow someone to impersonate me, and Erase Item gets rid of the signature.",
- "oneironaut.page.soulprints.4": "Accepts a soulprint, and checks if the item in my other hand is engraved with it. Returns true if so, false otherwise. Costs a negligible amount of media.",
- "oneironaut.page.hover_elevator.1": "By combining materials native to the noosphere with certain ingredients associated with levitation, I can create a device which produces streams of propulsive energy capable of carrying me along them, with minimal risk of falling. To use it, it must be placed facing directly towards another one (which must be facing it in turn). Once I've done this, both ends must be activated with a",
- "oneironaut.page.hover_elevator.2": "redstone signal, and the energy stream will form between the paired emitters, assuming they are within range of each other (64 meters horizontally, or 128 vertically). By stepping into the stream, I will be held in place until I look towards either end of the stream, at which point I will be accelerated in that direction until I hit a maximum speed proportional to how closely my vision parallels the stream. Crouching causes the stream to hold me in place regardless of my gaze.",
- "oneironaut.page.hover_elevator.3": "$(o)Best to don some long fall boots the first time I try these.",
- "oneironaut.page.hover_elevator.meme":"$(o)Bad and naughty hexcasters get sent to the hover cube.",
- "oneironaut.page.hover_elevator.4": "Additionally, I can create a repeater capable of extending the range of the emitters when placed between them, such that the stream can continue on as if it had just left the emitter. Of course, such an extension requires more powerful components, and even then the stream can only be extended by three repeaters before it becomes too unstable to form.",
- "oneironaut.page.hover_elevator.5": "Fortunately, this device seems to be rather immaterial for some reason, and I can pass straight through it without having to carefully twist around it in the stream.$(br)$(o)No, it does not make the stream pause for a moment before continuing.",
- "oneironaut.page.flayrevival.1": "I've long been frustrated with the uselessness of the empty husk you get after flaying a villager (or nearly killing something using $(l:items/mindrender)Mind Render$(/l)). While there $(o)are$() a few tasks for which they can conduct themselves adequately, these are largely things which even simple beasts would be suitable for. Fortunately, I've discovered a spell capable of bestowing some measure of cognition upon these husks.",
- "oneironaut.page.flayrevival.2": "Accepts a flayed mob, and creates an artifical pseudo-mind to inhabit its body. Costs 16 charged amethyst when used on a villager or allay, or 10 amethyst shards for anything else.",
- "oneironaut.page.flayrevival.3": "While these pseudo-minds are capable of moving their bodies around as if they were their original inhabitants, they are too simple to be called truly sapient, even with the rather loose definition of the term that must be used when applying it to villagers. As such, any villager \"restored\" in this manner loses any professional experience it had before, and cannot gain such experience ever again.",
- "oneironaut.page.flayrevival.4": "They do, however, regain their ability to reproduce, with any children they produce being untainted by my craft.$(br2)I'm not sure why the restored villagers suddenly gain an affinity for green clothing, but at least it serves as a good indicator of which villagers will be of little further use.",
- "oneironaut.page.monkfruit.1": "I've discovered that using the $(l:patterns/spells/blockworks#hexcasting:edify)Edify Sapling$(/l) spell on a Sweet Berry Bush produces a rather interesting plant. It is much like the shrub it mutates from, however its thorns are imbued with a media field which siphons the minds of pricked creatures into the plant in order to grow. It can grow without this (albeit slowly), though it still requires minds nearby to provide small amounts of media.",
- "oneironaut.page.monkfruit.2": "The fruit that this bush produces is quite sweet, and can be processed into sugar. Additionally, it releases bits of media during digestion, which seek out rechargeable items on my person. I should be wary of the thorns while picking the fruit.",
- "oneironaut.page.monkfruit.3": "Twigs sheared off of the mature bush remain dangerous, and can be used to craft a rather ominous blade.$(br2)This blade acts much like a sword enchanted with low-level $(l:items/mindrender)Mind Render$(/l), though it is far more precise, able to rend minds while causing minimal collateral damage to the flesh. I can of course use it more like a conventional blade if I like, but this does risk killing the target outright.",
- "oneironaut.page.monkfruit.4": "$(o)It's not rocket science.$()",
- "oneironaut.page.library_card.1": "In my search for a truly universal data storage method, I have designed a small device which allows me to read from Akashic Records in other dimensions while on my person. I need only write a spatial imprint to the item, and any future akashic read operations will be redirected to the stored dimension.$(br)Unfortunately, it does not allow me to $(o)write to$() them, but this is certainly better than nothing.",
- "oneironaut.page.library_card.2": "$(o)It seems to exude some kind of sticky gloop.$()",
- "oneironaut.page.heimdall.1": "A strange pattern that appears to be a variant of Hermes' Gambit. Accepts a spatial imprint and an executable iota, and attempts to cast the iota in the corresponding dimension.",
- "oneironaut.page.heimdall.2": "While it does allow me to cast across dimensions, it is not the perfect solution that I have been searching for. For one thing, it seems to work only when cast directly by me, rather than via a spell circle or wisp. Additionally, media-consuming patterns cast in this way have their cost increased by 25%%. Finally, since I am not physically present in the target dimension, I need to use my Greater Sentinel (or other ambit-boosting effects) in order to affect anything in there.",
- "oneironaut.page.heimdall.3": "Accepts a spatial imprint, and moves my sentinel to the corresponding dimension, with its coordinates scaled appropriately. Costs one amethyst shard. Mishaps if I do not currently have a sentinel.",
-
- "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
- "oneironaut.advancements.noosphere.enter": "A Realm of Thought and Dream",
- "oneironaut.advancements.noosphere.enter.description": "Enter the Noosphere",
- "oneironaut.advancements.noosphere.find_tower": "A Timeless Classic",
- "oneironaut.advancements.noosphere.find_tower.description": "Discover the tower of an unknown hexcaster",
- "oneironaut.advancements.noosphere.find_media_lab": "Crystallized",
- "oneironaut.advancements.noosphere.find_media_lab.description": "Discover a grim experiment",
- "oneironaut.advancements.noosphere.find_garden": "Stranded",
- "oneironaut.advancements.noosphere.find_garden.description": "Discover an unfortunate soul's last reminder of home",
- "oneironaut.advancements.lore.root": "Oneironaut Lore",
- "oneironaut.advancements.lore.root.description": "Memories lost to time",
- "oneironaut.advancements.lore.treatise1": "Hexcaster's Memory #1",
- "oneironaut.advancements.lore.treatise1.description": "Reflections on iota embedding",
- "oneironaut.advancements.lore.treatise2": "Hexcaster's Memory #2",
- "oneironaut.advancements.lore.treatise2.description": "Reflections on efficient use of Impulse",
- "oneironaut.advancements.lore.treatise3": "Hexcaster's Memory #3",
- "oneironaut.advancements.lore.treatise3.description": "Reflections on repeated patterns",
- "oneironaut.advancements.lore.treatise4": "Hexcaster's Memory #4",
- "oneironaut.advancements.lore.treatise4.description": "Reflections on long hexes",
- "oneironaut.advancements.lore.science1": "Scientist's Memory #1",
- "oneironaut.advancements.lore.science1.description": "Research into the nature of slipways",
- "oneironaut.advancements.lore.science2": "Scientist's Memory #2",
- "oneironaut.advancements.lore.science2.description": "Research into the properties of the Noosphere",
- "oneironaut.advancements.lore.science3": "Scientist's Memory #3",
- "oneironaut.advancements.lore.science3.description": "Research into the structure of pseudoamethyst",
- "oneironaut.advancements.unflay": "Recycling!",
- "oneironaut.advancements.unflay.description": "Surely you weren't going to just throw that away!",
- "oneironaut.advancements.ouchie": "Ouch!",
- "oneironaut.advancements.ouchie.description": "What did you expect?",
-
- "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
- "hexcasting.mishap.oneironaut:badcuboid.mismatch": "Supplied cuboids are dissimilar.",
- "hexcasting.mishap.oneironaut:badcuboid.toobig": "Supplied cuboids are too big.",
- "hexcasting.mishap.oneironaut:badcuboid.overlap": "Supplied cuboids overlap in the same dimension.",
- "hexcasting.mishap.oneironaut:uninfusable": "Expected an infusable block at %s, but got %s.",
- "hexcasting.mishap.oneironaut:nonoosphere": "Expected one end of the transfer to be a special dimension.",
- "hexcasting.mishap.oneironaut:norod": "Expected to be cast from a Reverberation Rod.",
- "hexcasting.mishap.oneironaut:norodremote": "Expected an active Reverberation Rod in hand.",
- "hexcasting.mishap.oneironaut:missingenchant": "Expected %s to be enchanted with %s, but it is not.",
- "hexcasting.mishap.oneironaut:unhappyslime": "The slime says \"%s\"",
- "hexcasting.mishap.oneironaut:norequirediota": "The slime demands %s",
- "hexcasting.mishap.oneironaut:requiresdifferententities": "an entity different from the target",
- "hexcasting.mishap.oneironaut:nostaff": "%s expected to be cast using a staff.",
- "hexcasting.mishap.oneironaut:nosentinel": "Could not find a sentinel to move.",
- "oneironaut.mishap.noitemframe": "an item frame",
- "oneironaut.mishap.invalidideakey": "a vector, player, or soulprint",
- "oneironaut.mishap.unenlightenedtarget": "an enlightened player",
- "oneironaut.mishap.notbrainswept": "a flayed villager",
- "oneironaut.mishap.badentitykey": "an enlightened player or a flayed villager",
- "oneironaut.mishap.nolistsallowed": "a non-list iota",
- "oneironaut.mishap.entitytypelistplease": "a list of entity types",
- "oneironaut.mishap.wrongsizelist": "List is improperly sized.",
- "oneironaut.mishap.twovectorsplease": "List does not contain two vectors.",
- "oneironaut.mishap.requiresflayedmob": "%s expected a flayed mob, but got %s.",
- "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "a spatial imprint",
- "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "a soulprint",
-
- "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
- "hexcasting.iota.oneironaut:dim": "Dimension",
- "hexcasting.iota.oneironaut:uuid": "Soulprint",
- "hexcasting.iota.oneironaut:uuid.label": "Soulprint of %s",
- "biome.oneironaut.noosphere_sea": "Noosphere Sea",
- "text.oneironaut.clearIdeasResponse": "Cleared iota storage map.",
- "effect.oneironaut.detection_resistance": "Media Shroud",
- "effect.oneironaut.not_missing": "Uplifting Resonance",
- "effect.oneironaut.rumination": "Rumination",
- "enchantment.oneironaut.overcast_damage": "Mind Render",
- "itemGroup.oneironaut.oneironaut": "Oneironaut",
- "oneironaut.tooltip.wispcapturedevice.haswisp": "Contains a wisp with %s dust and hex signature %s.",
- "oneironaut.tooltip.wispcapturedevice.nowisp": "No wisp.",
- "oneironaut.tooltip.wispcapturedevice.uninitialized": "Media reservoir has not been initialized.",
- "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
- "oneironaut.tooltip.lich_media_amount": "Reservoir contains: %s/%s (%s)"
-}
diff --git a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json b/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
deleted file mode 100644
index 08236f940e6e..000000000000
--- a/projects/1.20/assets/oneironaut/oneironaut/lang/zh_cn.json
+++ /dev/null
@@ -1,336 +0,0 @@
-{
- "this.is.a.comment.1": "Pattern names--------------------------------------------------------------------------------------------",
- "hexcasting.action.oneironaut:getdim1": "空间之精思",
- "hexcasting.action.oneironaut:getdim2": "空间之精思,第二型",
- "hexcasting.action.oneironaut:getdim/overworld": "家园之精思",
- "hexcasting.action.oneironaut:getdim/nether": "狱界之精思",
- "hexcasting.action.oneironaut:getdimheight": "阿特拉斯之分解",
- "hexcasting.action.oneironaut:getdimscale": "空程之纯化",
- "hexcasting.action.oneironaut:dimteleport": "智识门径",
- "hexcasting.action.oneironaut:infusemedia": "媒质灌注",
- "hexcasting.action.oneironaut:swapspace": "空间互换",
- "hexcasting.action.oneironaut:craftrod": "指挥法杖",
- "hexcasting.action.oneironaut:getrodlook": "指挥棒之精思",
- "hexcasting.action.oneironaut:getrodpos": "指挥棒之精思,第二型",
- "hexcasting.action.oneironaut:getrodstamp": "节拍器之精思",
- "hexcasting.action.oneironaut:delayrod": "节拍器之策略",
- "hexcasting.action.oneironaut:haltrod": "终曲",
- "hexcasting.action.oneironaut:resetrod": "安可",
- "hexcasting.action.oneironaut:readrodram": "威廉姆斯之精思",
- "hexcasting.action.oneironaut:writerodram": "威廉姆斯之策略",
- "hexcasting.action.oneironaut:readrodramremote": "威廉姆斯之精思,第二型",
- "hexcasting.action.oneironaut:writerodramremote": "威廉姆斯之策略,第二型",
- "hexcasting.action.oneironaut:queryrod": "指挥家之精思",
- "hexcasting.action.oneironaut:rodloopactive": "指挥家之精思,第二型",
- "hexcasting.action.oneironaut:craftbottomlesstrinket": "制作无底缀品",
- "hexcasting.action.oneironaut:writeidea": "刻印思绪",
- "hexcasting.action.oneironaut:readidea": "收回思绪",
- "hexcasting.action.oneironaut:readideatime": "元数据之纯化",
- "hexcasting.action.oneironaut:readideawriter": "元数据之馏化",
- "hexcasting.action.oneironaut:readsentinel": "检视哨卫",
- "hexcasting.action.oneironaut:resistdetection": "隐匿遮罩",
- "hexcasting.action.oneironaut:detectshroud": "辨察遮罩",
- "hexcasting.action.oneironaut:circle": "圆",
- "hexcasting.action.oneironaut:applymindrender": "赋能意识撕裂者",
- "hexcasting.action.oneironaut:reviveflayed": "灌注精神",
- "hexcasting.action.oneironaut:advanceautomaton": "质胞生成",
- "hexcasting.action.oneironaut:applynotmissing": "扬升共振",
- "hexcasting.action.oneironaut:getsoulprint": "灵魂印记之精思",
- "hexcasting.action.oneironaut:signitem": "签印物品",
- "hexcasting.action.oneironaut:checksignature": "签印之纯化",
- "hexcasting.action.oneironaut:extradimensionaleval": "海姆达尔之策略",
- "hexcasting.action.oneironaut:shiftsentinel": "挪移哨卫",
-
- "this.is.a.comment.2": "Block/Item names--------------------------------------------------------------------------------------------",
- "item.oneironaut.pseudoamethyst_shard": "伪紫水晶碎片",
- "item.oneironaut.shifting_pseudoamethyst": "易形伪紫水晶",
- "item.oneironaut.thought_slurry_bucket": "思维浆液桶",
- "item.oneironaut.reverberation_rod": "回响之杖",
- "item.oneironaut.endless_phial": "无穷媒质之瓶",
- "item.oneironaut.bottomless_trinket": "无底缀品",
- "item.oneironaut.echo_staff": "回响法杖",
- "item.oneironaut.beacon_staff": "科技法杖",
- "item.oneironaut.spoon_staff": "勺子",
- "item.oneironaut.pigment_flame": "火焰染色剂",
- "item.oneironaut.pigment_echo": "回响染色剂",
- "item.oneironaut.pigment_noosphere": "智识染色剂",
- "item.oneironaut.pigment_frenzyflame": "狂热染色剂",
- "item.oneironaut.memory_fragment": "记忆碎片",
- "item.oneironaut.memory_fragment.all": "似乎我已经集齐了这些晶体中所有我能找到的记忆……",
- "item.oneironaut.wisp_capture_device": "咒灵牧织器",
- "item.oneironaut.mind_scalpel": "突触手术刀",
- "item.oneironaut.monkfruit": "修道果",
- "item.oneironaut.monkfruit_cooked": "熟修道果",
- "item.oneironaut.hexjam": "咒术果酱",
- "item.oneironaut.rending_thorns": "裂识荆棘",
- "item.oneironaut.library_card": "阿卡夏借书证",
-
- "block.oneironaut.noosphere_gate": "神秘裂口",
- "block.oneironaut.pseudoamethyst_block": "伪紫水晶块",
- "block.oneironaut.pseudoamethyst_cluster": "伪紫水晶簇",
- "block.oneironaut.pseudoamethyst_bud_small": "小型伪紫水晶芽",
- "block.oneironaut.pseudoamethyst_bud_medium": "中型伪紫水晶芽",
- "block.oneironaut.pseudoamethyst_bud_large": "大型伪紫水晶芽",
- "block.oneironaut.thought_slurry": "思维浆液",
- "block.oneironaut.thought_slurry_flowing": "流动的思维浆液",
- "block.oneironaut.noosphere_basalt": "智识界玄武岩",
- "block.oneironaut.wisp_lantern": "咒灵灯笼",
- "block.oneironaut.wisp_lantern_tinted": "遮光咒灵灯笼",
- "block.oneironaut.super_budding": "伪紫水晶母岩",
- "block.oneironaut.sentinel_sensor": "哨卫探测器",
- "block.oneironaut.raycast_blocker": "反射线追踪板岩",
- "block.oneironaut.raycast_blocker_glass": "反射线追踪玻璃",
- "block.oneironaut.sentinel_trap": "探察促动石",
- "block.oneironaut.circle": "§0§o圆",
- "block.oneironaut.hex_resistant_block": "咒术防护黑曜石",
- "block.oneironaut.media_ice": "贤能智冰",
- "block.oneironaut.media_ice_frosted": "暂态贤能智冰",
- "block.oneironaut.media_gel": "精神原质团",
- "block.oneironaut.cell": "失协精神",
- "block.oneironaut.wisp_battery": "咒灵编织器",
- "block.oneironaut.decorative_wisp_battery": "初等咒灵编织器",
- "block.oneironaut.hover_elevator": "咒术师的悬浮桥链",
- "block.oneironaut.hover_repeater": "悬浮桥链中继器",
- "block.oneironaut.monkfruit_bush": "修道果丛",
- "block.oneironaut.spacebomb": "质道蓄爆器",
-
- "fluid.oneironaut.thought_slurry": "思维浆液",
-
- "this.is.a.comment.3": "Book entry titles--------------------------------------------------------------------------------------------",
- "oneironaut.entry.dim_iotas": "维度 Iota",
- "oneironaut.entry.status_iotas": "状态 Iota",
- "oneironaut.entry.noosphere_main": "奇怪的领域",
- "oneironaut.entry.noosphere_materials": "富思维材料",
- "oneironaut.entry.wisp_lanterns": "咒灵设备",
- "oneironaut.entry.slipway_hint": "有关质道的精思",
- "oneironaut.entry.miscpatterns": "航梦:杂项图案",
- "oneironaut.entry.super_budding": "更好地量产媒质",
- "oneironaut.entry.idea_inscription": "思绪刻印",
- "oneironaut.entry.sentinel_detection": "哨卫侦测",
- "oneironaut.entry.detection_shielding": "侦测回避",
- "oneironaut.entry.raycast_assailant": "反咒术方块",
- "oneironaut.entry.mindrender": "意识撕裂者",
- "oneironaut.entry.soulprints": "灵魂印记",
- "oneironaut.entry.hover_elevator": "悬浮桥链",
- "oneironaut.entry.flayrevival": "人工意识",
- "oneironaut.entry.heimdall": "跨维度施法",
-
- "this.is.a.comment.4": "Book pages--------------------------------------------------------------------------------------------",
- "oneironaut.page.spaceswap.1": "接受均由两个向量组成的两个列表,用于定义两个长方体,以及一个空间印记。所定义的长方体必须保证尺寸与朝向一致。",
- "oneironaut.page.spaceswap.2": "我不太清楚这个图案具体能做什么,它总是对我喊着什么“特殊维度”。也许它需要这种特殊维度作为中介?",
- "oneironaut.page.spaceswap.3": "将我所处维度中第一个长方体包含的方块(需在影响范围内)与空间印记对应维度中第二个长方体包含的方块互换。$(l:https://www.desmos.com/calculator/ydbg8zhmyp)消耗以紫水晶粉计,前 1001 个方块遵循对数消耗,之后则按照线性关系增加$(/l)。$(br)不会互换不可破坏的方块。$(br)两维度之一或两者均需为智识界。",
- "oneironaut.page.spaceswap.4": "两维度之一或两者均需为智识界。",
- "hexcasting.spell.oneironaut:dimteleport.samedim": "这个法术什么都不会做,类似让已经在家的人回家。",
- "oneironaut.page.dim_iotas.1": "我发现了一种新 iota,它们似乎象征着现实本身的某一层面。为方便理解,我决定称其为“空间印记”。",
- "oneironaut.page.dim_iotas.2": "返回象征着我所处维度的空间印记。消耗极少量媒质。",
- "oneironaut.page.dim_iotas.3": "返回象征着我哨卫所处维度的空间印记。消耗 1/10 个紫水晶粉。",
- "oneironaut.page.dim_iotas.4": "返回象征着主世界的空间印记。消耗 1/10 个紫水晶粉。",
- "oneironaut.page.dim_iotas.5": "返回象征着下界的空间印记。消耗 1/10 个紫水晶粉。$(br)这个法术的施放总有些不够顺畅。也许我需要$(#54398a)再精进我的技术$()……",
- "oneironaut.page.dim_iotas.6": "接受一个空间印记,返回对应维度中可存在方块的最低和最高海拔。",
- "oneironaut.page.dim_iotas.7": "接受一个空间印记,返回对应维度中1格距离相当于主世界中的几格距离。",
- "oneironaut.page.dimteleport.1": "接受一个实体和一个空间印记,将所给实体传送入对应维度的同一位置。消耗 20 个充能紫水晶。$(br2)传入其他玩家时会失效。",
- "oneironaut.page.dimteleport.2": "如果在离开原先所处维度的同一时刻,用此法术返回该维度,则消耗会减少到 5 个紫水晶粉:法术会捕捉残存的媒质以将我传送回原来的位置。其他情况下,则会在目的地周围找个安全的位置作为目的地,甚至有可能构筑方块以防止坠落而亡。$(br2)我在用这个法术时总有种奇怪的加速感,但我无法理解加速度到底是朝着哪个轴的。",
- "oneironaut.page.infusemedia.1": "接受一个向量,并向该位置方块中注入媒质,以嬗变该方块。消耗量与具体效果随目标变化而变。",
- "oneironaut.page.infusemedia.2": "概念上来看,此法术与$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)类似。$(br)然而,这种方法灌注的媒质相较之下经过精细调校,因此能产生更为有意思的效果。",
- "oneironaut.page.wisp_lanterns.1": "我发现,若是使用了独属于智识界的材料,便能制造出一种特殊的罐子,它能产生并容纳一只微型咒灵。这种咒灵尽管无法施法,但能发出相当的光,还会模拟它看见的染色剂。$(br)我还能用遮光玻璃制造同类物品,避免咒灵的光亮影响到我书房的美学设计。",
- "oneironaut.page.wisp_lanterns.2": "此外,往这些照明用咒灵里注入大量的媒质,就可强令其分裂自身。新产生的咒灵与质道产生的游走咒灵几乎完全一致。$(br2)以此类方式分裂咒灵的设备接受任意存储媒质的物品,可通过漏斗一类的装置送入。它最多能存储相当于 640 个充能紫水晶的媒质。",
- "oneironaut.page.wisp_lanterns.3": "给予红石信号即可激活。它每 4 秒产生 1 个咒灵,同时消耗 2 个充能紫水晶。$(br)合成时所用媒质之瓶的容量和媒质量对产物无影响。",
- "oneironaut.page.wisp_lanterns.4": "还可制造一类完全不消耗(和接受)媒质的设备,它所生成的咒灵拆解后总媒质量为 0。$(br2)闪亮球珠仍在,不见代价惹忧!",
- "oneironaut.page.wisp_lanterns.5.originaltoolong": "参照类似原理,我设计了一种能够捕获(并容纳)咒灵的设备,之后再释放出去。不过游走咒灵太过不稳定,无法捕获。$(br)此设备的媒质容量为 64 个充能紫水晶(可重充能)。捕获我自己的咒灵消耗 1 个紫水晶碎片,捕获他人的咒灵消耗咒灵中媒质量的 1.5 倍。直接对咒灵使用即可捕获它,吸入外壳中(需有足量媒质,且其中未存有咒灵)。",
- "oneironaut.page.wisp_lanterns.5": "参照类似原理,我设计了一种能够捕获、存储、释放咒灵的设备,不过它对游走咒灵无效。捕获我自己的咒灵消耗 1 个紫水晶碎片,捕获他人的咒灵消耗相当于 1.5 倍咒灵中媒质量的媒质。直接对咒灵使用即可捕获它,设备自身需有足量媒质,且其中未存有咒灵。",
- "oneironaut.page.wisp_lanterns.6": "释放循环型咒灵时,它会出现在所指方块的旁边。弹射式咒灵则会从我的脸前发射出去,保留捕获前速度(方向不保留)。潜行时使用物品,即可丢弃存储的咒灵。",
- "oneironaut.page.wisp_lanterns.7": "初始化此装置的媒质储库时,需手持后对我自己的咒灵使用。该咒灵会消散且无法召回,装置的媒质容量会设为与该咒灵一致,按紫水晶粉向上取整。若需重设此数据(以及其他所有数据与配置),将其单独放在合成方格中合成即可。",
-
- "oneironaut.page.noosphere_materials.1": "一种奇怪的流体,会搅混进入其中的媒质,并阻止紫水晶晶体的形成。浸在其中时,它会以愉悦的方式刺激我的意识。",
- "oneironaut.page.noosphere_materials.2": "主要由媒质构成的岩石,原理不明。可合成法术环方块。",
- "oneironaut.page.noosphere_materials.3.title": "伪紫水晶",
- "oneironaut.page.noosphere_materials.3": "一大块媒质晶体,与紫水晶类似但不完全相同。触摸时会有种嗡鸣感,就好像媒质在刺激神经一般。不加以特殊措施直接破坏会将其破碎为 1 到 4 块碎片。",
- "oneironaut.page.noosphere_materials.4": "这些碎片能驱动法术,且比普通紫水晶提供的能量稍多一些。也能用来制造些有趣的物件。",
- "oneironaut.page.noosphere_materials.5": "一种固态的媒质,由思维浆液在富媒质环境中冻结而得。这种冻结也可由咒术造成。$(br)其表面的摩擦系数似乎为负,任何在其上滑动的事物会无限加速(虽然较慢)。",
- "oneironaut.page.noosphere_materials.6": "一类极其黏稠的媒质,拥有极为基础的认知能力,与黏菌类似。它通常情况下表现出惰性,但会以类似法术的能力试图困住触碰到它的事物。",
- "oneironaut.page.slipway_hint.1": "那些质道,它们一定能联通到$(o)某些地方$()。咒灵不会凭空出现。不管我怎么尝试,我最多只能让一根手指穿过那道混沌的裂口。$(br2)我大概是想错了。与其凭蛮力穿过裂口,也许还是尝试平息风暴更为有效。",
- "oneironaut.page.slipway_hint.2": "大量的调谐媒质应该就能做到……",
- "oneironaut.page.slipway_hint.2.title": "嗯……",
- "oneironaut.page.noosphere_main.1": "我成功了。$(br)质道另一端的领域。环境中的媒质多到难以想象。我的意识正朝我尖啸,叫喊着我不应该在这里。但我必须前进。这里就是旅途的下一站。",
- "oneironaut.page.noosphere_main.2": "我在此勘测的每一件事物似乎主要都由媒质构成,很像构筑物质,但浓度高出了几个数量级。$(br)$(o)就连空气都是媒质。我是怎么呼吸的?$(br2)$(l)我又是怎么能存在于此的?",
- "oneironaut.page.rod.1": "我发现我能用远古城市中找到的奇怪碎片合成一种奇异的施法物品。$(br)这件物品的奇异之处,就在于集中思维时,它能以每秒 20 次的频率施放其中的咒术,直到产生事故或者我施放终曲和安可时才停止。如此会触发一段冷却时间,通常有大约 1 秒。",
- "oneironaut.page.rod.2": "回响碎片似乎包含着某种怪异形态的媒质。因此它具有循环自身的倾向,同时会保留一部分上一次施法时的信息。",
- "oneironaut.page.rod.3": "和$(l:patterns/spells/hexcasting)用于制造传统施法物品的法术$()类似。消耗 10 个充能紫水晶。",
- "oneironaut.page.rod.4": "使用回响之杖施放时,返回当前循环开始时我的视线向量。",
- "oneironaut.page.rod.5": "使用回响之杖施放时,返回当前循环开始时我的眼部位置。",
- "oneironaut.page.rod.6": "使用回响之杖施放时,返回当前循环开始时的时间戳。",
- "oneironaut.page.rod.7": "接受一个正整数。使用回响之杖施放时,将下一次施法延迟所给数个 1/20 秒。",
- "oneironaut.page.rod.8": "使用回响之杖施放时,强制停止当前循环。",
- "oneironaut.page.rod.9": "接受一个正整数。停止当前循环,并将冷却时间从 1 秒缩短至所给数个 1/20 秒。事故造成的冷却不受影响。",
- "oneironaut.page.rod.10": "接受一个非列表 iota,并将其存入当前循环。该 iota 会在循环结束时丢失。",
- "oneironaut.page.rod.11": "返回当前循环中存储的 iota。默认为 Null。",
- "oneironaut.page.rod.12": "检查当前施法者是否正在使用回响之杖,返回一个布尔值。",
- "oneironaut.page.rod.13": "与威廉姆斯之策略类似,但可在回响之杖被占用时,由其他施法方式施放。",
- "oneironaut.page.rod.14": "与威廉姆斯之精思类似,但可在回响之杖被占用时,由其他施法方式施放。",
- "oneironaut.page.rod.15": "检查施法者是否正在使用回响之杖,不要求是在使用当前杖。",
- "oneironaut.page.rod.16": "回响碎片也可用于制造法杖,不过这种法杖唯一的特殊性质便是发出些幽匿的声音。",
- "oneironaut.page.miscpatterns.1": "我发现了一些专为物品展示框交互设计的图案。它们不是什么高端法术,但确实是控制法术环之类事物的实用手段。$(br2)此外,分拣员之纯化对它们同样有效,因此试图寻找物品展示框专用的物品图案没有意义。",
- "oneironaut.page.miscpatterns.2": "接受一个物品展示框实体,并返回其中物品的朝向,值必然在 0 到 7 之间。",
- "oneironaut.page.miscpatterns.3": "接受一个物品展示框实体与一个 0 到 7 的整数,并将物品朝向设置为该数。消耗极少量媒质。",
- "oneironaut.page.miscpatterns.4": "与$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)类似,但能够接受一个实体类型 iota 列表。类型不在该列表内的实体会被忽略。消耗的媒质量略多于上文所提图案的“极少量”。",
- "oneironaut.page.miscpatterns.5": "返回 0 与 1 之间的随机数,服从正态分布。",
- "oneironaut.page.miscpatterns.1.formerlink": "$(l:hexal:patterns/types#hexal:type/block_item)",
- "oneironaut.page.super_budding.1": "我发现智识界出产的一种类紫水晶物质会接受村民的意识,这点和普通的紫水晶一样。不过,接受意识所得方块的媒质产量相当高,远超出普通紫水晶母岩的能力,而且只要足够小心就能捡起它搬走。",
- "oneironaut.page.super_budding.2": "比起使用普通紫水晶来说,使用伪紫水晶需要更强大的意识,但得到的回报绝对值得。",
- "oneironaut.page.super_budding.3": "此外,在智识界中培育时,伪紫水晶母岩会产生伪紫水晶簇,而不是普通的紫水晶。自然,这些晶簇掉落的是伪紫水晶碎片,但同时也会掉落一种不甚稳定的伪紫水晶,其媒质含量是普通碎片的四倍。正是由于这种不稳定性,此类伪紫水晶无法直接转换为媒质。但把它和其他形态的媒质水晶放在一起,即可令其转变为那种形态。",
- "oneironaut.page.super_budding.4": "它似乎对我的凝视有了反应,就好像它有某种感知力一样。",
- "oneironaut.page.super_budding.5": "就算让伪紫水晶母岩浸没在思维浆液中,抑制晶体的形成,它的媒质生成率依然足够平常使用。尽管总供给量近乎无穷,但单个操作能使用的媒质量相当少;就像一片几十万几百万千米宽,但只有几厘米深的海洋。而由于其深度极为有限,在远距获取使用(如为物品充能等)时,其中的媒质会在抵达法杖前迅速消散殆尽。",
- "oneironaut.page.super_budding.6": "常态提供大约与 1/10 个紫水晶粉相当的媒质。虽然我$(o)可以$()同时持有好多个来获取媒质,但每个媒质瓶带来的增量会快速减少。$(br)合成时注意别用错试剂瓶了。",
- "oneironaut.page.super_budding.7": "还可以往缀品里塞一个,以让无穷媒质之瓶为其供应媒质。但是,如此操作后,缀品便不会再接受其他来源的媒质。",
- "oneironaut.page.super_budding.8": "向另一只手中的无底缀品写入咒术。消耗 10 个充能紫水晶。",
- "oneironaut.page.idea_inscription.1": "智识界是思维的领域,它能用来存储信息也就顺理成章。这些图案就能把 iota 刻印入智识界,并能读出它们(不论当前身处什么维度)。它们还能把 iota 存储到其他生物的意识中,当然它们的意识也需和我一样……$(o)无拘无束$()。在相关描述中,用于指代向量和有效实体的词是“键”/“key”。",
- "oneironaut.page.idea_inscription.2": "这种操作用途不少,但智识界的环境媒质处于常态的运动中,任何存入其中的 iota 终会消解,和往海洋中倒热水没什么区别。似乎这种信息在变为无用的垃圾前能存在一小时。$(br2)$(l:greatwork/akashiclib)阿卡夏图书馆$(/l)的原理貌似与之类似,书架则相当于用来避免消解的阻隔层。",
- "oneironaut.page.idea_inscription.3": "接受一个有效键以及任意 iota,并将所给 iota 存入相应位置。消耗大约 1/4 个紫水晶粉。",
- "oneironaut.page.idea_inscription.4": "接受一个有效键,并返回相应 iota。消耗大约 1/4 个紫水晶粉。",
- "oneironaut.page.idea_inscription.5": "接受一个有效键, 并返回刻印对应 iota 的时间,或是返回 -1。不消耗媒质。",
- "oneironaut.page.idea_inscription.6": "接受一个有效键和一个代表玩家的 iota,并检验对应 iota 是否由所给玩家刻印。不消耗媒质。",
- "oneironaut.page.sentinel_detection.1": "将智识界的伪紫水晶和深暗之域的有机感测体结合起来,就是一种检测环境媒质中扰动的方式。这种新探测器会检测大约 16 米内的$(l:patterns/spells/sentinels)哨卫$(/l),检测到则会根据最近哨卫的距离输出红石信号。如果最近的哨卫格外强大,则相邻的比较器会输出信号。",
- "oneironaut.page.sentinel_detection.2": "$(o)我相信监守者不会在意的。$()",
- "oneironaut.page.sentinel_detection.3": "除此之外,这种探测器还可整合到牧师促动石中,产物会在区域内存在哨卫时启动(不过探测半径较普通探测器较低)。我叫这种装置“探察促动石”。尽管它不再对红石信号产生反应,但会获取代表触发哨卫的所有者的 iota,并置入法术环咒术的初始栈。$(br)而由于施法时产生的媒质干扰,这种促动石无法侦测到自身放置的哨卫。",
- "oneironaut.page.sentinel_detection.4": "这种探测器不论侦测到谁的哨卫都为产生反应,我应当避免让我铺设的陷阱法术环瞄准我自己。",
- "oneironaut.page.sentinel_detection.5": "接受一个向量和一个玩家,并返回该位置到所给玩家哨卫的距离,或者返回 Null。消耗极少量媒质。",
- "oneironaut.page.sentinel_detection.6": "在所给位置坐标构筑一个短时探测器,它会“监听”环境媒质中的存在形态,以此分辨出最为明显的哨卫标记。",
- "oneironaut.page.detection_shielding.1": "传统的隐身药水足以迷惑常人的感官,但面对咒术则毫无作用,让事物完全无法侦测的方法还有待发现。然而,我找到的这个法术应当是向上述目标迈出的第一步。它能让媒质像糠皮一样盖在生物周围,以此干扰咒术的侦测手段。",
- "oneironaut.page.detection_shielding.2": "接受一个生物和一个数,并给予该实体持续所给数秒的咒术侦测护盾。每秒持续时间消耗 2 个紫水晶粉。",
- "oneironaut.page.detection_shielding.3": "同时每秒会消耗所影响实体 1/10 个紫水晶粉,护盾的构筑需要这些媒质。$(br2)我需要注意我把这种效果给予了什么事物,因为没有携带其他媒质来源的生物会消耗自身的意识来供给护盾。",
- "oneironaut.page.detection_shielding.4": "这种护盾在阻挡$(l:patterns/basics#hexcasting:raycast/entity)侦查员之馏化$(/l)和各种$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$(/l)时效果良好,但它对$(l:patterns/entities#hexcasting:get_entity)实体之纯化$(/l)的变种没有作用,那些操作已经包含所处位置的精确概念。而且,这层糠皮自身也有能量特征,尽管暗淡,依然可用特种图案侦测。",
- "oneironaut.page.detection_shielding.5": "接受一个向量和一个数,并返回以所给位置为起始,指向范围内带有遮罩的实体的单位向量列表,侦测半径为所给数。",
- "oneironaut.page.detection_shielding.6": "我还发现了能给予普通隐身效果的法术。和其他$(l:patterns/great_spells/zeniths)天顶法术$(/l)功能一致,每 3 秒持续时间消耗 1 个紫水晶粉。",
- "oneironaut.page.raycast_assailant.1": "往方块中“织入”伪紫水晶,产物便能令抵达或穿过其的射线追踪(对实体的射线追踪也有效)返回 Null,就好像射线追踪没有检测到任何事物一样。",
- "oneironaut.page.raycast_assailant.3": "奇怪的是,以同种方式加工伪紫水晶和黑曜石的产物不具备阻碍射线追踪的能力,而是变得近乎无法被咒术摧毁。不过,产物的硬度也因此大幅下降,变得和普通石头没什么两样(爆炸抗性不变)。",
- "oneironaut.page.mindrender.1": "我曾读到过一种极其可怖的武器,“意识撕裂者”。古代的咒术师偶尔会用这种武器,它能将生物的思维直接斩断,造成的伤害无视所有已知保护手段。而且,如果造成的伤害令目标离真正的死亡仅一步之遥,则其会进入植物人状态,永远无法恢复如初。想到古代人使用这种物件的原因,我不由得寒透脊骨……",
- "oneironaut.page.mindrender.2": "接受带有锋利魔咒的物品,或放有此类物品的物品展示框,并将锋利转换为同等级的意识撕裂。消耗由魔咒等级决定,目标为书时额外消耗 50%%。",
- "oneironaut.page.lore.treatise1.1": "虽然施放咒术时能直接产生大多数 iota,但总会有不够便捷的情况,甚至于无法产生(例如庞大而精确的数和实体 iota)而不得不另辟蹊径。从核心之类的物品中读取 iota 也不错,但大多数情况下这么做需要第三只手,我很明显没有。从外部位置获取 iota 的其他方法也各有各的局限性。",
- "oneironaut.page.lore.treatise1.2": "而在无外部引用手段可用的情况下,所需的 iota 必须直接插入咒术本身。对部分人而言,这么做会有些不合常理。这是因为传统上的咒术是一个图案列表,但图案自己也是一种 iota,一种与$(l:patterns/meta#hexcasting:eval)赫尔墨斯之策略$(/l)(以及同类图案)协同效果很好的 iota。",
- "oneironaut.page.lore.treatise1.3": "尽管你没法直接把数放到列表里面,然后让它和使用$(l:patterns/numbers)数字之精思$(/l)一样压入栈顶,但有方法能做到。$(br2)最简单(也是最可靠)的方法是$(l:patterns/patterns_as_iotas#hexcasting:escape)考察$(/l)。和手动施法时一样,列表中其后方的任意事物会被转义并直接压入栈顶,而非和平时一样运行,如此就可避免运行非图案导致的事故。",
- "oneironaut.page.lore.treatise1.4": "然而,当你位于咒术中超过一层运行深度处(比如循环和嵌套的条件逻辑),转义 iota 所需的考察数量会极速增长。在那些能够由另一咒术运行的事物中,这种方法便不再可靠。",
- "oneironaut.page.lore.treatise1.4.link": "相关的 xkcd",
- "oneironaut.page.lore.treatise1.5": "更为可靠的转义 iota 方法是$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(/l)和$(l:patterns/patterns_as_iotas#hexcasting:close_paren)反思$(/l)。运行图案列表时,内省后方直到相应反思之间(内省和反思不计)的事物会被转义,并以列表形式压入栈顶,不论 iota 的类型如何。然后就可以用合适方式操作此列表,比如用$(l:patterns/lists#hexcasting:splat)群体之拆解$(/l)把列表中各项分别压入栈顶。",
- "oneironaut.page.lore.treatise1.6": "如果你的列表的结构与此类似:$(br2)内省$(br)任意 iota(s)$(br)反思$(br)群体之拆解$(br2)运行这些 iota 之后,栈中会压入内省与反思之间的所有 iota。",
- "oneironaut.page.lore.treatise2.1": "推动事物的标准做法是$(l:patterns/spells/basic#hexcasting:add_motion)驱动$(/l)。但是,如果想要事物极为迅速地移动,这种方法可能会昂贵到无法使用。这是因为消耗会随向量模长增大而极速增长。对单个目标使用多次模长为 1 的驱动就能减少这种影响,总消耗会从 n^2 降到 2n-1,其中 n 是向量的模长。",
- "oneironaut.page.lore.treatise2.2": "这种方法最简单的实现方式需要$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l),传入多个重复的实体 iota 组成的列表即可。当然也有其他(且通常更好的)方法存在。但除去重复绘制图案外,这些方法大多离不开循环这一命题,这就有点超出这篇文档的范畴了。",
- "oneironaut.page.lore.treatise3.1": "虽然$(l:patterns/meta#hexcasting:for_each)托特之策略$(/l)极其适合同时对多个目标施放同一法术,但对同一目标施放多次法术就有点麻烦了。它不仅容易导致咒术的停止,运行开始后还无法添加或移除作用目标。$(br)而绕过这些局限也很简单,换用另一种循环即可。",
- "oneironaut.page.lore.treatise3.2.header": "While 循环",
- "oneironaut.page.lore.treatise3.2": "While 循环是一种在既定条件达成之前一直运行的循环,条件可以是实体的速度达到了给定值等。一个仅会复制自身再运行栈顶 iota 的图案列表就是这种循环最简单的实现方式。如果单独运行它,那么咒术会进入无限循环,除非产生事故不然不会停止。",
- "oneironaut.page.lore.treatise3.3": "向其中加入实际功能和一些布尔逻辑,就能创造出有用的 while 循环。前文所提无限循环的代码如下:$(br)内省$(br)双子之分解$(br)赫尔墨斯之策略$(br)反思$(br)双子之分解$(br)赫尔墨斯之策略$(br2)向其中加入根据条件是否运行列表内赫尔墨斯之策略的逻辑,达成相应条件后循环便会终止。",
- "oneironaut.page.lore.treatise3.4.header": "循环展开",
- "oneironaut.page.lore.treatise3.4": "“已展开循环”/“Unrolled loop”是一种更为复杂的循环。和托特之策略一样,构建时其迭代次数同样固定,难以增加修改。但如有需要,卡戎之策略可以令其提前停止。比较来看,这种循环仅产生一到两层递归深度(循环体运行所致深度不计),是其优势所在。先写定想要重复的图案列表,再多次复制,最后把所有列表合成一体,就实现了循环展开。",
- "oneironaut.page.lore.treatise3.5": "这一目标最简单的达成方式是$(l:patterns/stackmanip#hexcasting:duplicate)双子之分解$(/l)接$(l:patterns/lists#hexcasting:add)组合之馏化$(/l),运行后原列表会重复 2 次。可重复使用此方法以复制原列表 2 的幂次,所得的列表在运行时只会产生一层递归深度。更灵活的做法则是使用$(l:patterns/stackmanip#hexcasting:duplicate_n)双子之策略$(/l)产生 $(o)n$() 个副本,再将 $(o)n-1$() 个组合之馏化放入列表并运行,如此便能把所有原列表副本合为一体。",
- "oneironaut.page.lore.treatise4.1": "我的一些呃,“同事”,在抄录长咒术时遇到了麻烦。$(br)“这东西好长!”$(br)“咒术网格都不够用了!”$(br)我认为这是$(bold)能力问题$()。这又不是那些绘制完最后一个反思后没法修改咒术的麻烦。只需把未完成的咒术存到核心中即可。(不过你应该注意为存储操作留出空间。)",
- "oneironaut.page.lore.treatise4.2": "完成之后,再用$(l:patterns/lists)列表操作$(/l)图案把各部分合起来就行了。$(br2)甚至都不需要用多个核心,写完一部分后把它接到核心中列表的后方,再把所得列表存入核心即可。多核心会让调试咒术更轻松,但据我目前所知,这也是多核心相对单核心唯一的优势。",
- "oneironaut.page.lore.science1.1": "$(o)“这是什么?我该怎么把它弄走?”$()$(br)大多数人在第一次遇见质道时都会产生这些疑问。我对第二个问题暂时没有答案,但回答第一个问题还是可以的。$(br)就我所知,质道是空间中的微小孔洞,其另一侧是称作“智识界”的媒质界。",
- "oneironaut.page.lore.science1.2": "质道中逸散的类咒灵现象是智识界中巨量的环境媒质试图迅速通过孔洞的结果(就像是气体扩散入接近真空的空间),这些媒质的纠缠卷绕方式与召唤咒灵法术中编织供咒灵消耗的媒质的方式类似。",
- "oneironaut.page.lore.science1.3": "此外,质道的入口处似乎存在某种屏障,任何物质都会被阻挡不得通过。如果这一屏障可被穿透,孔洞可被扩展,质道就可将物质吸收入智识界。这么做后质道不会再产生咒灵,是媒质的通过速度大大降低,不会再受扰动而缠绕的缘故。如果想要尝试,就需小心不要过度扩展,否则周围区域都有被吸收入智识界的危险。",
-
- "not.real.translation.key.1": "TODO: Add a structure that is implied to be part of a laboratory that has been ripped from the overworld by an engorged gateway",
-
- "oneironaut.page.lore.science2.1": "真是个奇怪的地方。组成此处海洋的液体不比水致密多少,那些岛屿由密度类似玄武岩的岩石构成,却能浮在其中。而且,此处的所有事物都似乎瞬息万变,如梦似幻。但我比从前任何时候都要清醒,这又怎么会是梦境?",
- "oneironaut.page.lore.science2.2": "这种清醒感应当是此处环境媒质的效果,它会润滑我的思维。这里的媒质浓度甚至超过了咒灵的核心,它们的天然消耗也因此缩减到无穷小。有趣的是,那些带有某人灵魂印记的咒灵不会受此效应影响,因此咒灵无法用于长时存储真名。$(br)这些环境媒质甚至会从足够大的维度裂缝中渗漏出去,正是它维持了裂隙另一侧距离足够近的咒灵的形态。",
- "oneironaut.page.lore.science3.1": "这种晶体很是有趣。一件仅由媒质构成的物体,浓度超越了传统的构筑方块,甚至超越了我在图书馆中的同事们研究的那些致密媒质晶体。连媒质密度相近的紫水晶中的都有痕量二氧化硅,此晶体中却完全不存在杂质。而令其静置一段时间后,晶体粉末会以分形模式累积,就好像在持续不断地施法。",
- "oneironaut.page.lore.science3.2": "我在显微镜下详细检验了这种晶体,可观察到这些分形状结构会向晶体内部延伸,且会以固定模式一直变化。这有无可能是一种时间晶体?",
- "oneironaut.page.glow_ambit.1": "尽管经过了长久的研究,代表其他咒术师的 iota 中仍有些特殊性质的由来未能厘清。不过,我找到了一种赋予其他事物同样性质的方法,不敢说持久,但至少能暂时做到。(还很昂贵。)$(br)这种法术允许施法者跨越极远的距离影响生物,就和玩家 iota 的无限影响距离一样。但对目标施放这种法术时,依然需要离目标足够近。",
- "oneironaut.page.glow_ambit.2": "接受一个活体,在 1 分钟内即可在世界各处访问所给活体。基础消耗 1 个紫水晶碎片,在效应消退前每施放一次额外消耗 1 个紫水晶碎片。",
- "oneironaut.page.glow_ambit.3": "这种效果的原理似乎是让目标散发出某种超自然共振。这种共振相当强大,目标的轮廓隔着各种形式的障碍依然“可见”。(咒术师们也许就在持续产生这种共振,只不过是没有如此效果显著?)但是,这种辉光与光灵箭等造成的辉光不一样,不要指望监测那种辉光的仪器对这种也有效。",
- "oneironaut.page.soulprints.1": "灵魂印记和代表我自己的 iota 类似,功能中也有“代表我”这一项,但使用的限制会多出许多。除了通过我本人之外,他人没有方式获得灵魂印记,不过这些灵魂印记不受写入限制,和普通的玩家 iota 不一样。$(br2)有意思的是,灵魂印记也是$(l:patterns/idea_inscription)思绪刻印$(/l)的有效键。",
- "oneironaut.page.soulprints.2": "返回我自己的灵魂印记,使用除法杖之外的施法手段时会招致事故。消耗极少量媒质。",
- "oneironaut.page.soulprints.3": "将我的灵魂印记隐写到另一只手中的物品上,若已有灵魂印记则清除。消耗 1 个紫水晶粉。$(br)签印物品前要注意先将核心一类的物品密封,经过签印的未密封核心有身份泄露的风险,清除物品会同时去除签印。",
- "oneironaut.page.soulprints.4": "接受一个灵魂印记,并检查我另一只手中物品上是否有对应的隐写。若有,返回 True;否则返回 False。消耗极少量媒质。",
- "oneironaut.page.hover_elevator.1": "使用原产于智识界的材料,再加上与飘浮有关的原材料,做出的设备能够产生具有推动力的能量流;我站在其中也会被推动,而且很难摔出来。使用时必须令其朝向另外一个此类设备,也即两个此类设备需面对面放置。放置妥当后,两端均需以",
- "oneironaut.page.hover_elevator.2": "红石信号激活,若两者在各自范围内(水平方向 64 米,垂直方向 128 米),则其间会产生能量流。走入能量流后我会被固定在原地;往两端中的一端看时,会向该方向加速至最大速度。此最大速度与我的视线与能量流的平行程度成正比。潜行时会强制将我锁定在原地,无论往哪个方向看都是如此。",
- "oneironaut.page.hover_elevator.3": "$(o)在真的用这东西之前,我最好还是穿双远距防摔靴当保险。",
- "oneironaut.page.hover_elevator.meme":"$(o)淘气的咒术师会被送到飘浮方块里去喔。",
- "oneironaut.page.hover_elevator.4": "此外,还可以制造一个中继器,用于延长端设备的范围。经过此中继器的能量流会恢复至其刚离开端设备的状态。如此强大的器具自然需要强大的组件,但就算如此,能量流在经过 3 个中继器后,也会因太过不稳定而无法维持。",
- "oneironaut.page.hover_elevator.5": "好在由于某种原因,此设备并没有传统意义上的实体;也即在能量流中移动时可以直接穿过去,而不需要小心翼翼地绕过。$(br)$(o)不会的,它不会在延续能量流之前顿一下的。",
- "oneironaut.page.flayrevival.1": "剥离完意识的村民、或是被$(l:items/mindrender)意识撕裂者$(/l)摧残到仅剩最后一丝气息的生物,它们都变成了毫无用途的空壳,我对此相当苦恼。尽管它们$(o)确实$()能自己完成少数几种任务;但除此之外的大多数任务就连无智慧可言的野兽都能做好,它们却无能为力了。好在我发现了一个法术,能让这些空壳具有某种程度的认知能力。",
- "oneironaut.page.flayrevival.2": "接受一个已剥离意识的生物,并创造一个人工伪意识融入其中。对村民或悦灵使用时消耗 16 个充能紫水晶,其余情况消耗 10 个紫水晶碎片。",
- "oneironaut.page.flayrevival.3": "这些伪意识确实能驱动躯体,一如身体的原主人,但它们离真正的所谓智慧还差得远,换成适用于村民的宽松定义也是一样。因此,以此方法“恢复正常”的村民会失去先前的职业经验,也无法再获取此类经验了。",
- "oneironaut.page.flayrevival.4": "不过,他们依然保留了繁衍的能力。他们的后代不会受到我先前行为的影响。$(br2)我不太确定为什么村民恢复后都喜欢上了绿色的衣物,但这种性质确实方便我辨识哪些村民不堪大用。",
- "oneironaut.page.monkfruit.1": "我发现对甜浆果丛使用$(l:patterns/spells/blockworks#hexcasting:edify)启迪树苗$(/l)法术能变出一种相当有趣的植物。它和原来的灌木很像,但它的棘刺中融有媒质场,能吸走其刺中的生物的意识以让自己生长。它不刺人也能生长(虽然很慢),但仍需周围存在具有意识的生物才能结出少量媒质。",
- "oneironaut.page.monkfruit.2": "它结出的果实相当甜,且能加工处理成糖。而且,这种果实在被消化的时候似乎能释放出些许媒质,又会进一步为我身上可以重新填充媒质的物品充入媒质。摘果子时务必要小心灌木中的刺。",
- "oneironaut.page.monkfruit.3": "成熟植株上剪下的枝条依然具有这些危险的性质,可以用来合成一把不祥的刀。$(br2)这把刀和附有低等级$(l:items/mindrender)意识撕裂$(/l)魔咒的剑类似,但它更为精确:撕裂意识时能把对形体的附带损伤降到最低。如果我有这个想法,当然可以把它用作普通的冷兵器,但确实要承担杀死目标的风险。",
- "oneironaut.page.monkfruit.4": "$(o)这又不是什么高端科技。$()",
- "oneironaut.page.library_card.1": "在研究真正通用的数据存储方式时,我设计出了一个小设备,随身携带即可读取其他维度的阿卡夏记录。只需向该物品写入一个空间印记,便能将未来所有阿卡夏读取操作导向至对应维度。$(br)可惜的是,它不能用来$(o)写入$(),但有总比没有好。",
- "oneironaut.page.library_card.2": "$(o)它似乎会渗出某种黏答答的凝浆。$()",
- "oneironaut.page.heimdall.1": "奇怪的图案,似乎是赫尔墨斯之策略的变种。接受一个空间印记和一个可执行的 iota,并尝试在所给维度内施放所给 iota。",
- "oneironaut.page.heimdall.2": "它确实能帮我跨维度施法,但还不够完美。首先,它似乎只会在我直接施法时起效,法术环和咒灵都行不通。其次,有消耗的图案会额外消耗 25%% 的媒质。最后,正因为我没有真的身处目标维度,所以需要借助卓越哨卫(或其他增大影响范围的手段)才能影响那一侧的事物。",
- "oneironaut.page.heimdall.3": "接受一个空间印记,并将我的哨卫移动到对应维度,坐标相应缩放。消耗 1 个紫水晶碎片。如果我当前没有哨卫则招致事故。",
-
- "this.is.a.comment.5": "Advancements--------------------------------------------------------------------------------------------",
- "oneironaut.advancements.noosphere.enter": "思维与梦的领域",
- "oneironaut.advancements.noosphere.enter.description": "进入智识界",
- "oneironaut.advancements.noosphere.find_tower": "永存经典",
- "oneironaut.advancements.noosphere.find_tower.description": "发现一座属于身份不详的咒术师的高塔",
- "oneironaut.advancements.noosphere.find_media_lab": "结晶",
- "oneironaut.advancements.noosphere.find_media_lab.description": "发现一次结局惨淡的实验",
- "oneironaut.advancements.noosphere.find_garden": "搁浅",
- "oneironaut.advancements.noosphere.find_garden.description": "发现一个不幸灵魂最后停留之处的遗迹",
- "oneironaut.advancements.lore.root": "航梦故事",
- "oneironaut.advancements.lore.root.description": "失落于时间的记忆",
- "oneironaut.advancements.lore.treatise1": "咒术师的记忆,#1",
- "oneironaut.advancements.lore.treatise1.description": "有关iota嵌入的精思",
- "oneironaut.advancements.lore.treatise2": "咒术师的记忆,#2",
- "oneironaut.advancements.lore.treatise2.description": "有关有效利用驱动的精思",
- "oneironaut.advancements.lore.treatise3": "咒术师的记忆,#3",
- "oneironaut.advancements.lore.treatise3.description": "有关重复图案的精思",
- "oneironaut.advancements.lore.treatise4": "咒术师的记忆,#4",
- "oneironaut.advancements.lore.treatise4.description": "有关长咒术的精思",
- "oneironaut.advancements.lore.science1": "科学家的记忆,#1",
- "oneironaut.advancements.lore.science1.description": "有关质道本质的研究",
- "oneironaut.advancements.lore.science2": "科学家的记忆,#2",
- "oneironaut.advancements.lore.science2.description": "有关智识界性质的研究",
- "oneironaut.advancements.lore.science3": "科学家的记忆,#3",
- "oneironaut.advancements.lore.science3.description": "有关伪紫水晶结构的研究",
- "oneironaut.advancements.unflay": "回收!",
- "oneironaut.advancements.unflay.description": "你肯定不会直接丢掉的!",
- "oneironaut.advancements.ouchie": "好痛!",
- "oneironaut.advancements.ouchie.description": "难道觉得不会痛吗?",
-
- "this.is.a.comment.6": "Mishaps--------------------------------------------------------------------------------------------",
- "hexcasting.mishap.oneironaut:badcuboid.mismatch": "提供的长方体尺寸不相同。",
- "hexcasting.mishap.oneironaut:badcuboid.toobig": "提供的长方体尺寸过大。",
- "hexcasting.mishap.oneironaut:badcuboid.overlap": "提供的长方体在同维度内有重叠。",
- "hexcasting.mishap.oneironaut:uninfusable": "本应在%s处有一个可灌注方块,而实际为%s。",
- "hexcasting.mishap.oneironaut:nonoosphere": "互换的其中一方需为一个特殊维度。",
- "hexcasting.mishap.oneironaut:norod": "需要以回响之杖施放。",
- "hexcasting.mishap.oneironaut:norodremote": "需要手持启动的回响之杖。",
- "hexcasting.mishap.oneironaut:missingenchant": "%s本应带有%s魔咒,而实际没有。",
- "hexcasting.mishap.oneironaut:unhappyslime": "黏液说道:“%s”",
- "hexcasting.mishap.oneironaut:norequirediota": "黏液需要%s",
- "hexcasting.mishap.oneironaut:requiresdifferententities": "一个与目标不同的实体",
- "hexcasting.mishap.oneironaut:nostaff": "%s本应由法杖施放。",
- "hexcasting.mishap.oneironaut:nosentinel": "无法找到可挪移的哨卫。",
- "oneironaut.mishap.noitemframe": "一个物品展示框",
- "oneironaut.mishap.invalidideakey": "一个向量、玩家或灵魂印记",
- "oneironaut.mishap.unenlightenedtarget": "一个经过启迪的玩家",
- "oneironaut.mishap.notbrainswept": "一个剥除意识的村民",
- "oneironaut.mishap.badentitykey": "一个经过启迪的玩家或剥除意识的村民",
- "oneironaut.mishap.nolistsallowed": "一个非列表iota",
- "oneironaut.mishap.entitytypelistplease": "一个实体类型列表",
- "oneironaut.mishap.wrongsizelist": "列表长度不合适。",
- "oneironaut.mishap.twovectorsplease": "列表未包含两个向量。",
- "oneironaut.mishap.requiresflayedmob": "%s本应获取一个已剥离意识的生物,而实际为%s。",
- "hexcasting.mishap.invalid_value.class.oneironaut:imprint": "一个空间印记",
- "hexcasting.mishap.invalid_value.class.oneironaut:soulprint": "一个灵魂印记",
-
- "this.is.a.comment.7": "Other---------------------------------------------------------------------------------------------",
- "hexcasting.iota.oneironaut:dim": "维度",
- "hexcasting.iota.oneironaut:uuid": "灵魂印记",
- "hexcasting.iota.oneironaut:uuid.label": "%s的灵魂印记",
- "biome.oneironaut.noosphere_sea": "智识之海",
- "text.oneironaut.clearIdeasResponse": "已清除iota存储映射。",
- "effect.oneironaut.detection_resistance": "媒质遮罩",
- "effect.oneironaut.not_missing": "扬升共振",
- "effect.oneironaut.rumination": "反刍",
- "enchantment.oneironaut.overcast_damage": "意识撕裂",
- "itemGroup.oneironaut.oneironaut": "航梦",
- "oneironaut.tooltip.wispcapturedevice.haswisp": "包含具有%s个紫水晶粉、咒术印识为%s的咒灵。",
- "oneironaut.tooltip.wispcapturedevice.nowisp": "没有咒灵。",
- "oneironaut.tooltip.wispcapturedevice.uninitialized": "媒质储库未初始化。",
- "text.oneironaut.lorem_ipsum": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
- "oneironaut.tooltip.lich_media_amount": "储库含有:%s/%s(%s)"
-}
From 7748bf0313f0850bf23c69915d7f249b45073ce8 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 04:18:13 +0800
Subject: [PATCH 60/78] HexVR transfer
---
.../1.19/assets/hexvr/hex_vr/lang/en_us.json | 37 -------------------
.../1.19/assets/hexvr/hex_vr/lang/zh_cn.json | 37 -------------------
.../1.20-fabric/assets/hexvr/hex_vr/README.md | 1 -
.../assets/hexvr/hex_vr/lang/en_us.json | 37 -------------------
.../assets/hexvr/hex_vr/packer-policy.json | 6 ---
projects/1.20/assets/hexvr/hex_vr/README.md | 19 ----------
.../1.20/assets/hexvr/hex_vr/lang/en_us.json | 37 -------------------
.../1.20/assets/hexvr/hex_vr/lang/zh_cn.json | 37 -------------------
8 files changed, 211 deletions(-)
delete mode 100644 projects/1.19/assets/hexvr/hex_vr/lang/en_us.json
delete mode 100644 projects/1.19/assets/hexvr/hex_vr/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/hexvr/hex_vr/README.md
delete mode 100644 projects/1.20-fabric/assets/hexvr/hex_vr/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
delete mode 100644 projects/1.20/assets/hexvr/hex_vr/README.md
delete mode 100644 projects/1.20/assets/hexvr/hex_vr/lang/en_us.json
delete mode 100644 projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json
diff --git a/projects/1.19/assets/hexvr/hex_vr/lang/en_us.json b/projects/1.19/assets/hexvr/hex_vr/lang/en_us.json
deleted file mode 100644
index dcb0aef4d097..000000000000
--- a/projects/1.19/assets/hexvr/hex_vr/lang/en_us.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "key.category.hex_vr.hex_vr": "Hex VR",
- "key.hex_vr.draw_spell_l_simple": "Draw spell - Left hand - Simple",
- "key.hex_vr.draw_spell_r_simple": "Draw spell - Right hand - Simple",
- "key.hex_vr.draw_spell_l_advanced": "Draw spell - Left hand - Advanced",
- "key.hex_vr.draw_spell_r_advanced": "Draw spell - Right hand - Advanced",
-
-
-
- "hexcasting.spell.hex_vr:head_pos": "Head Purification",
- "hexcasting.spell.hex_vr:head_rot": "Seer's Purification",
-
- "hexcasting.spell.hex_vr:left_hand_pos": "Signaler's Purification",
- "hexcasting.spell.hex_vr:right_hand_pos": "Signaler's Purification II",
-
- "hexcasting.spell.hex_vr:left_hand_rot": "Pointer's Purification",
- "hexcasting.spell.hex_vr:right_hand_rot": "Pointer's Purification II",
-
- "hexcasting.spell.hex_vr:left_hand_vel": "Signer's Purification",
- "hexcasting.spell.hex_vr:right_hand_vel": "Signer's Purification II",
-
-
- "hex_vr.entry.vr_patterns": "VR patterns",
- "hex_vr.page.vr_patterns.0": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the head if it is a VR Player.",
- "hex_vr.page.vr_patterns.1": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the head is looking if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.2": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the left hand if it is a VR Player.",
- "hex_vr.page.vr_patterns.3": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the right hand if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.4": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the left hand is pointing if it is a VR Player.",
- "hex_vr.page.vr_patterns.5": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the right hand is pointing if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.6": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the left hand if it is a VR Player, with the magnitude as the velocity.",
- "hex_vr.page.vr_patterns.7": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the right hand if it is a VR Player, with the magnitude as the velocity.",
-
- "hex_vr.page.vr_patterns.note": "Developer note: None of these patterns work if the server does not have HexVR installed."
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexvr/hex_vr/lang/zh_cn.json b/projects/1.19/assets/hexvr/hex_vr/lang/zh_cn.json
deleted file mode 100644
index b08dee8e0039..000000000000
--- a/projects/1.19/assets/hexvr/hex_vr/lang/zh_cn.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "key.category.hex_vr.hex_vr": "咒法VR",
- "key.hex_vr.draw_spell_l_simple": "绘制法术 - 左手 - 简单",
- "key.hex_vr.draw_spell_r_simple": "绘制法术 - 右手 - 简单",
- "key.hex_vr.draw_spell_l_advanced": "绘制法术 - 左手 - 高级",
- "key.hex_vr.draw_spell_r_advanced": "绘制法术 - 右手 - 高级",
-
-
-
- "hexcasting.spell.hex_vr:head_pos": "头部之纯化",
- "hexcasting.spell.hex_vr:head_rot": "查看器之纯化",
-
- "hexcasting.spell.hex_vr:left_hand_pos": "信号器之纯化",
- "hexcasting.spell.hex_vr:right_hand_pos": "信号器之纯化,第二型",
-
- "hexcasting.spell.hex_vr:left_hand_rot": "指向器之纯化",
- "hexcasting.spell.hex_vr:right_hand_rot": "指向器之纯化,第二型",
-
- "hexcasting.spell.hex_vr:left_hand_vel": "手语者之纯化",
- "hexcasting.spell.hex_vr:right_hand_vel": "手语者之纯化,第二型",
-
-
- "hex_vr.entry.vr_patterns": "VR 图案",
- "hex_vr.page.vr_patterns.0": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其头部位置。",
- "hex_vr.page.vr_patterns.1": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其视线方向。",
-
- "hex_vr.page.vr_patterns.2": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手位置。",
- "hex_vr.page.vr_patterns.3": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手位置。",
-
- "hex_vr.page.vr_patterns.4": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手指向的方向。",
- "hex_vr.page.vr_patterns.5": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手指向的方向。",
-
- "hex_vr.page.vr_patterns.6": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手运动的方向,向量的模代表速度。",
- "hex_vr.page.vr_patterns.7": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手运动的方向,向量的模代表速度。",
-
- "hex_vr.page.vr_patterns.note": "开发者注释:服务端未安装 HexVR 时,这些图案均不起作用。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexvr/hex_vr/README.md b/projects/1.20-fabric/assets/hexvr/hex_vr/README.md
deleted file mode 100644
index cdfa20c4fc50..000000000000
--- a/projects/1.20-fabric/assets/hexvr/hex_vr/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/hexvr/hex_vr)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexvr/hex_vr/lang/en_us.json b/projects/1.20-fabric/assets/hexvr/hex_vr/lang/en_us.json
deleted file mode 100644
index dcb0aef4d097..000000000000
--- a/projects/1.20-fabric/assets/hexvr/hex_vr/lang/en_us.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "key.category.hex_vr.hex_vr": "Hex VR",
- "key.hex_vr.draw_spell_l_simple": "Draw spell - Left hand - Simple",
- "key.hex_vr.draw_spell_r_simple": "Draw spell - Right hand - Simple",
- "key.hex_vr.draw_spell_l_advanced": "Draw spell - Left hand - Advanced",
- "key.hex_vr.draw_spell_r_advanced": "Draw spell - Right hand - Advanced",
-
-
-
- "hexcasting.spell.hex_vr:head_pos": "Head Purification",
- "hexcasting.spell.hex_vr:head_rot": "Seer's Purification",
-
- "hexcasting.spell.hex_vr:left_hand_pos": "Signaler's Purification",
- "hexcasting.spell.hex_vr:right_hand_pos": "Signaler's Purification II",
-
- "hexcasting.spell.hex_vr:left_hand_rot": "Pointer's Purification",
- "hexcasting.spell.hex_vr:right_hand_rot": "Pointer's Purification II",
-
- "hexcasting.spell.hex_vr:left_hand_vel": "Signer's Purification",
- "hexcasting.spell.hex_vr:right_hand_vel": "Signer's Purification II",
-
-
- "hex_vr.entry.vr_patterns": "VR patterns",
- "hex_vr.page.vr_patterns.0": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the head if it is a VR Player.",
- "hex_vr.page.vr_patterns.1": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the head is looking if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.2": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the left hand if it is a VR Player.",
- "hex_vr.page.vr_patterns.3": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the right hand if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.4": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the left hand is pointing if it is a VR Player.",
- "hex_vr.page.vr_patterns.5": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the right hand is pointing if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.6": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the left hand if it is a VR Player, with the magnitude as the velocity.",
- "hex_vr.page.vr_patterns.7": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the right hand if it is a VR Player, with the magnitude as the velocity.",
-
- "hex_vr.page.vr_patterns.note": "Developer note: None of these patterns work if the server does not have HexVR installed."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json b/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
deleted file mode 100644
index cff36249ef7c..000000000000
--- a/projects/1.20-fabric/assets/hexvr/hex_vr/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/hexvr/hex_vr"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20/assets/hexvr/hex_vr/README.md b/projects/1.20/assets/hexvr/hex_vr/README.md
deleted file mode 100644
index 245268f711de..000000000000
--- a/projects/1.20/assets/hexvr/hex_vr/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-### 总概
-
-```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/hexvr/hex_vr)
-- [1.20.1](/projects/1.20/assets/hexvr/hex_vr)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/hexvr/hex_vr)
\ No newline at end of file
diff --git a/projects/1.20/assets/hexvr/hex_vr/lang/en_us.json b/projects/1.20/assets/hexvr/hex_vr/lang/en_us.json
deleted file mode 100644
index dcb0aef4d097..000000000000
--- a/projects/1.20/assets/hexvr/hex_vr/lang/en_us.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "key.category.hex_vr.hex_vr": "Hex VR",
- "key.hex_vr.draw_spell_l_simple": "Draw spell - Left hand - Simple",
- "key.hex_vr.draw_spell_r_simple": "Draw spell - Right hand - Simple",
- "key.hex_vr.draw_spell_l_advanced": "Draw spell - Left hand - Advanced",
- "key.hex_vr.draw_spell_r_advanced": "Draw spell - Right hand - Advanced",
-
-
-
- "hexcasting.spell.hex_vr:head_pos": "Head Purification",
- "hexcasting.spell.hex_vr:head_rot": "Seer's Purification",
-
- "hexcasting.spell.hex_vr:left_hand_pos": "Signaler's Purification",
- "hexcasting.spell.hex_vr:right_hand_pos": "Signaler's Purification II",
-
- "hexcasting.spell.hex_vr:left_hand_rot": "Pointer's Purification",
- "hexcasting.spell.hex_vr:right_hand_rot": "Pointer's Purification II",
-
- "hexcasting.spell.hex_vr:left_hand_vel": "Signer's Purification",
- "hexcasting.spell.hex_vr:right_hand_vel": "Signer's Purification II",
-
-
- "hex_vr.entry.vr_patterns": "VR patterns",
- "hex_vr.page.vr_patterns.0": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the head if it is a VR Player.",
- "hex_vr.page.vr_patterns.1": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the head is looking if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.2": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the left hand if it is a VR Player.",
- "hex_vr.page.vr_patterns.3": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the position of the right hand if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.4": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the left hand is pointing if it is a VR Player.",
- "hex_vr.page.vr_patterns.5": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction in which the right hand is pointing if it is a VR Player.",
-
- "hex_vr.page.vr_patterns.6": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the left hand if it is a VR Player, with the magnitude as the velocity.",
- "hex_vr.page.vr_patterns.7": "Takes the entity at the top of the stack and returns null if the entity is not a player or not in vr, or returns the direction of movement of the right hand if it is a VR Player, with the magnitude as the velocity.",
-
- "hex_vr.page.vr_patterns.note": "Developer note: None of these patterns work if the server does not have HexVR installed."
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json b/projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json
deleted file mode 100644
index b08dee8e0039..000000000000
--- a/projects/1.20/assets/hexvr/hex_vr/lang/zh_cn.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "key.category.hex_vr.hex_vr": "咒法VR",
- "key.hex_vr.draw_spell_l_simple": "绘制法术 - 左手 - 简单",
- "key.hex_vr.draw_spell_r_simple": "绘制法术 - 右手 - 简单",
- "key.hex_vr.draw_spell_l_advanced": "绘制法术 - 左手 - 高级",
- "key.hex_vr.draw_spell_r_advanced": "绘制法术 - 右手 - 高级",
-
-
-
- "hexcasting.spell.hex_vr:head_pos": "头部之纯化",
- "hexcasting.spell.hex_vr:head_rot": "查看器之纯化",
-
- "hexcasting.spell.hex_vr:left_hand_pos": "信号器之纯化",
- "hexcasting.spell.hex_vr:right_hand_pos": "信号器之纯化,第二型",
-
- "hexcasting.spell.hex_vr:left_hand_rot": "指向器之纯化",
- "hexcasting.spell.hex_vr:right_hand_rot": "指向器之纯化,第二型",
-
- "hexcasting.spell.hex_vr:left_hand_vel": "手语者之纯化",
- "hexcasting.spell.hex_vr:right_hand_vel": "手语者之纯化,第二型",
-
-
- "hex_vr.entry.vr_patterns": "VR 图案",
- "hex_vr.page.vr_patterns.0": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其头部位置。",
- "hex_vr.page.vr_patterns.1": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其视线方向。",
-
- "hex_vr.page.vr_patterns.2": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手位置。",
- "hex_vr.page.vr_patterns.3": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手位置。",
-
- "hex_vr.page.vr_patterns.4": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手指向的方向。",
- "hex_vr.page.vr_patterns.5": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手指向的方向。",
-
- "hex_vr.page.vr_patterns.6": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其左手运动的方向,向量的模代表速度。",
- "hex_vr.page.vr_patterns.7": "接受栈顶实体;若该实体不是玩家或不处于 VR 状态,则返回 Null;若该实体是 VR 玩家,则返回其右手运动的方向,向量的模代表速度。",
-
- "hex_vr.page.vr_patterns.note": "开发者注释:服务端未安装 HexVR 时,这些图案均不起作用。"
-}
\ No newline at end of file
From 9acab912d081b3dba7055563fd21960b1c130b7d Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 04:32:51 +0800
Subject: [PATCH 61/78] =?UTF-8?q?Hexlink=20HexPigmentPlus=20transfer?=
=?UTF-8?q?=EF=BC=9A#5404?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/hexlink/hexlink/lang/en_us.json | 163 ------------------
.../assets/hexlink/hexlink/lang/zh_cn.json | 163 ------------------
.../hexpigmentplus/lang/en_us.json | 3 -
.../hexpigmentplus/lang/zh_cn.json | 3 -
.../assets/hexlink/hexlink/lang/en_us.json | 154 -----------------
.../assets/hexlink/hexlink/lang/zh_cn.json | 153 ----------------
.../hexpigmentplus/lang/en_us.json | 20 ---
.../hexpigmentplus/lang/zh_cn.json | 20 ---
8 files changed, 679 deletions(-)
delete mode 100644 projects/1.19/assets/hexlink/hexlink/lang/en_us.json
delete mode 100644 projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
delete mode 100644 projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
delete mode 100644 projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/hexlink/hexlink/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/hexlink/hexlink/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
diff --git a/projects/1.19/assets/hexlink/hexlink/lang/en_us.json b/projects/1.19/assets/hexlink/hexlink/lang/en_us.json
deleted file mode 100644
index 2e57031c72de..000000000000
--- a/projects/1.19/assets/hexlink/hexlink/lang/en_us.json
+++ /dev/null
@@ -1,163 +0,0 @@
-{
- "hexlink.mishap.empty_collar": "Your focus collar is empty",
- "hexlink.mishap.no_collar_item": "You don't have any focus collar",
- "hexlink.mishap.extractor_item": "suitable extraction catalyzer item like an Extraction Crystal",
- "hexlink.mishap.spell_holder": "spell holder item",
- "hexlink.mishap.not_extractable": "This %s Spirit is not extractable with %s",
- "hexlink.mishap.not_enough_soul": "Missing %d spirits",
- "hexlink.mishap.cant_mix_at": "You cannot summon a vortex at this location, you can summon a vortex at an empty place",
- "hexlink.mishap.invalid_spirit_source": "The Spirit source is invalid, you need a valid target from where to get spirits",
- "hexlink.mishap.invalid_spirit_target": "The Spirit target is invalid, you need a valid target where to put spirits",
- "hexlink.mishap.not_manifestable": "You cannot manifeset %s on %s",
-
- "emi.category.hexlink.vortex": "Vortex Crafting",
-
-
- "hexcasting.spell.hexlink:spirit_extraction": "Spirit Extraction",
- "hexcasting.spell.hexlink:spirit_transfer": "Spirit Transfer",
- "hexcasting.spell.hexlink:spirit_transfer_look": "Spirit Storage Look",
- "hexcasting.spell.hexlink:spirit_transfer_look_all": "Spirit Storage Look All",
- "hexcasting.spell.hexlink:spirit_self_transfer_look": "Spirit Self Storage Look",
- "hexcasting.spell.hexlink:spirit_transfer_count": "Spirit Storage Count",
- "hexcasting.spell.hexlink:spirit_self_transfer_count": "Spirit Self Storage Count",
-
- "hexcasting.spell.hexlink:spirit_vortex": "Vortex Formation",
- "hexcasting.spell.hexlink:spirit_manifestation": "Spirit Manifestation",
- "hexcasting.spell.hexlink:spirit_self_manifestation": "Spirit Self Manifestation",
- "hexcasting.spell.hexlink:spirit_look": "Spirit Look",
-
-
- "hexcasting.spell.hexlink:read_trinket": "Boehmer's Reflection",
- "hexcasting.spell.hexlink:write_trinket": "Boehmer's Gambit",
- "hexcasting.spell.hexlink:write_spell": "Flem's Gambit",
- "hexcasting.spell.hexlink:get_nbt": "Samuel Purification",
- "hexcasting.spell.hexlink:find_nbt": "Gabriel Distillation",
-
-
-
- "hexlink.spirit": " Spirit",
- "hexlink.or": " or ",
- "hexlink.spirit_iota": "Spirit Iota",
- "hexlink.spirit_iota.good": "valid Spirit Iota",
-
-
- "hexlink.spirit.block": "Block Spirit",
- "hexlink.spirit.entity": "Entity Spirit",
- "hexlink.spirit.potion": "Potion Spirit",
- "hexlink.spirit.item": "Item Spirit",
- "hexlink.spirit.enchantment": "Enchantment Spirit",
- "hexlink.spirit.function": "Command Spirit",
- "hexlink.spirit.special": "Special Spirit",
- "hexlink.spirit.biome": "Biome Spirit",
-
-
- "hexlink.extractor.item": "Item",
- "hexlink.extractor.entity": "Entity",
- "hexlink.extractor.block": "Block",
- "hexlink.extractor.enchantment": "Enchantment",
- "hexlink.extractor.potion": "Potion",
- "hexlink.extractor.everything": "Anything",
- "hexlink.extractor.biome": "Biome",
-
-
- "item.hexlink.upgraded_book": "Upgraded Spellbook",
- "item.hexlink.special_staff": "Special Staff",
- "item.hexlink.mixed_pigment": "Mixed Pigment",
- "item.hexlink.focus_collar": "Forbidden Focus Collar",
- "item.hexlink.spirit": "%s Spirit",
- "item.hexlink.spirit.none": "Spirit",
-
- "item.hexlink.philosophical_crystal": "Philosophical Crystal of %s",
- "item.hexlink.philosophical_crystal.none": "Transparent Crystal",
- "item.hexlink.haunted_crystal": "Haunted Crystal of %s",
- "item.hexlink.haunted_crystal.none": "Weird Crystal",
-
- "item.hexlink.tablet": "Tablet of %s",
- "item.hexlink.tablet.none": "Empty Tablet",
- "item.hexlink.small_bag": "Soul Pocket of %s...",
- "item.hexlink.small_bag.none": "Soul Pocket",
- "item.hexlink.medium_bag": "Soul Bag of %s...",
- "item.hexlink.medium_bag.none": "Soul Bag",
- "item.hexlink.big_bag": "Large Soul Bag of %s...",
- "item.hexlink.big_bag.none": "Large Soul Bag",
- "item.hexlink.crystal": "Crystal of %s",
- "item.hexlink.crystal.none": "Empty Crystal",
-
- "item.hexlink.tablet_staff": "Tablet Staff",
- "item.hexlink.big_tablet_on_a_stick": "Big Tablet on a Stick Staff",
- "item.hexlink.spirit_staff": "Spirit Staff",
- "item.hexlink.handmade_staff": "Handmade Staff",
- "item.hexlink.pure_media_staff": "Pure Media Staff",
- "item.hexlink.snake_staff": "Snake Staff",
- "item.hexlink.cane_staff": "Cane Staff",
-
- "block.hexlink.vortex": "Media Vortex",
- "block.hexlink.big_tablet": "Big Tablet",
-
-
- "itemGroup.hexlink.hexlink": "Hexlink",
-
-
- "hexlink.category.spirits": "Spirit Spells",
- "hexlink.category.spirits.desc": "Turn anything into media spirits, then mix them and finally manifest them.",
-
-
- "tag.item.hexlink.stack_sized": "Extraction count depend on durability",
- "tag.item.hexlink.staves": "Hexlink Staves",
-
-
- "hexlink.entry.readwrite": "Hexlink Read and Write",
- "hexlink.page.write_spell": "This pattern can write a spell into a Special Wand, as an dropped item, in an item frame or in the caster hand.",
-
- "hexlink.page.spirit_extraction.desc": "This spell can extract a spirit from an entity, using a extraction catalyzer like an $(l:hexlink:items/crystals)Extraction Crystal/$, into a $(l:hexlink:items/bag)Spirit Container/$. The quantity of spirit extracted depends of the target. The items used, as a catalyzer or as a extraction target, can be dropped, in item frame, in the first slot of a container, or the offhand of the caster. I have to check the extraction conditions, it could go wrong.",
- "hexlink.page.spirit_extraction.target.desc": "The first parameter is the entity to extract from, the second parameter is an extractor catalyzer, the third parameter is a spirit container. ",
-
- "hexlink.page.spirit_transfer.desc": "These patterns are useful for manipulating and moving spirits. Spirits are stored in spirit containers. Spirit containers can be dropped items, items in frames, the caster holding a spirit container item, media vortexes, the block position of a container containing spirit container items.",
- "hexlink.page.spirit_transfer.transfer.desc": "With this pattern I can transfer spirits from a spirit container to another spirit container. The first parameter is the container to extract from, the second parameter is the container to fill into.",
- "hexlink.page.spirit_transfer.look.desc": "With this pattern I can get the type of the last Spirit stored in a spirit container or Null if the container is empty or if the entity or block is not a spirit source.",
- "hexlink.page.spirit_transfer.look_all.desc": "With this pattern I can get the type of the all Spirits stored in a spirit container or Null if the container is empty or if the entity or block is not a spirit source.",
- "hexlink.page.spirit_transfer.count.desc": "With this pattern I can count how many spirits, of a type of spirit, a container contains.",
-
- "hexlink.page.get_nbt": "NBT Manipulation",
- "hexlink.page.get_nbt.desc": "[Need MoreIotas] I see everything (In a small radius). With this pattern I can extract every property of a block or an entity into a list.",
- "hexlink.page.find_nbt.desc": "$(br)[Need MoreIotas] With this pattern I can extract a specific property of a block or an entity. I must provide the path that leads to the sought-after essence. For example, [\"Inventory\",0,\"id\"].",
-
- "hexlink.page.spirit_manifestation.desc": "With these powerful spells, I can manifest spirits in the physical world. I can manifest it through a entity catalyst or at a position.",
- "hexlink.page.spirit_manifestation.target.desc": "$(br)The first parameter is the container to extract from, the second is the type of spirit to manifest, the third is the number of spirits to manifest, and the last is the entity or location to manifest at.",
- "hexlink.page.spirit_self_manifestation.self.desc": "This shortcut variant take the spirits from an container in the caster inventory. The first parameter is the type of spirit to manifest, the second is the number of spirit to manifest, and the third is the entity or location to manifest at.",
-
- "hexlink.page.spirit_other": "Other Spells",
- "hexlink.page.spirit_vortex.desc": "With this pattern, I can summon a $(l:hexlink:items/vortex)Media Vortex/$. I can then transfer spirits into it, to store them. Spirits in a vortex can merge into new spirits.",
- "hexlink.page.spirit_look.desc": "With this pattern, I can feel the proximity of the spirit with a physical object.",
-
-
- "hexlink.page.crystals": "Extraction Crystals",
- "hexlink.page.crystals.desc": "Extraction Crystals help me to extract spirits. I can extract spirit using them with $(l:hexlink:patterns/spirits/extraction)Spirit Extraction/$. I can find these in dungeon chests.",
- "hexlink.page.crystals.block": "This type of crystal can extract the spirit of a block. With a Block Spirit, I can summon blocks and simulate interaction with one.",
- "hexlink.page.crystals.item": "This type of crystal can extract the spirit of an item. With an Item Spirit, I can simulate the use of an item.",
- "hexlink.page.crystals.entity": "This type of crystal can extract the spirit of an entity. With an Entity Spirit, I can summon an entity. The entity's health must be at or below 4.",
- "hexlink.page.crystals.potion": "This type of crystal can extract the spirit of a potion effect. With a Potion Spirit, I can give an effect to an entity or summon an effect cloud.",
- "hexlink.page.crystals.enchantment": "This type of crystal can extract the spirit of a enchanted item or enchanted book. With a Enchantment Spirit, I can enchant a item or create an enchanted book. The target can be the first item of a container, a dropped item, an item in a frame or item of the caster offhand.",
- "hexlink.page.crystals.everything": "This type of crystal can extract the spirit of anything.",
-
- "hexlink.page.vortex": "Media Vortex and Containers",
- "hexlink.page.vortex.desc": "Media vortexes can contains up to 100 spirits, and mix them to create new spirits. You can create a Media Vortex using $(l:hexlink:patterns/spirits/other)Vortex Formation/$, and then put spirits in and take spirits out using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$.",
- "hexlink.page.big_tablet.desc": "Big Tablets can contains up to 1000 spirits. You can put spirits in and take spirits out using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$.",
-
- "hexlink.page.bag": "Soul Bags",
- "hexlink.page.bag.desc": "Souls bags contain spirits that are used for $(l:hexlink:patterns/spirits/manifestation)Spirit Manifestation/$. You can fill these using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$. You can select a spirit type of a spirit container by shift scrolling while holding it like a spell book.",
- "hexlink.page.bag.small_bag": "Soul pockets can contains up to 2 different types of spirits, and 30 of each.",
- "hexlink.page.bag.medium_bag": "Soul bags can contains up to 5 different types of spirits, and 100 of each.",
- "hexlink.page.bag.big_bag": "Large soul bags can contains up to 10 different types of spirits, and 300 of each.",
- "hexlink.page.bag.tablet": "Soul tablets can contains up to 10 spirits of one type, you can them in dungeon chests.",
- "hexlink.page.bag.philosophical_crystal": "Philosophical crystals are infinite sources of spirits.",
- "hexlink.page.bag.haunted_crystal": "Haunted crystals are unstable rip-off of philosophical crystals.",
-
- "hexlink.page.upgraded_book.1": "A $(l:hexlink:items/upgraded_book)$(item)Upgraded Spellbook/$ is like an entire library of artifacts. It can call spell using my own iota stack without drawing patterns with it. If it contains a Pattern iota or a list of patterns, it is evaluated like with Hermes Gambit else the iota is added on top of my stack. You can color each of its pages using Color Spirits.",
- "hexlink.page.upgraded_book.2": "Blablabla... Magic!",
-
- "hexlink.page.special_staff.1": "I discovered how the staffs help me interfere with the surrounding media. I think I could create a customizable wand with my new knowledge. To do this, I have to write a spell in it using $(l:hexlink:patterns/readwrite)Flem's Gambit/$. Then when I'll write a pattern using this staff, the spell written in it will be cast with a stack filled with my current stack as a list and the pattern I just drawn on top. Then, the list on top of the remaining stack is taken as my new stack. A number below the list on top of the remaining stack can tell me how the pattern has been resolved.",
- "hexlink.page.special_staff.2": "I need a powerful energy to interact directly with the media realm.",
-
- "hexlink.page.focus_collar": "[TOTALLY FORBIDDEN] With this FORBIDDEN focus around my *CENSORED*, I can read from it with my FORBIDDEN left hand FORBIDDENLY empty. I *CENSORED* to use $(l:hexlink:patterns/readwrite)these patterns/$."
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json b/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
deleted file mode 100644
index 8a01fb3f394f..000000000000
--- a/projects/1.19/assets/hexlink/hexlink/lang/zh_cn.json
+++ /dev/null
@@ -1,163 +0,0 @@
-{
- "hexlink.mishap.empty_collar": "核心项圈为空",
- "hexlink.mishap.no_collar_item": "未佩戴核心项圈",
- "hexlink.mishap.extractor_item": "提取水晶之类的有效提取催化物",
- "hexlink.mishap.spell_holder": "可存有咒术的物品",
- "hexlink.mishap.not_extractable": "该%s灵体无法被%s提取",
- "hexlink.mishap.not_enough_soul": "缺少%d个灵体",
- "hexlink.mishap.cant_mix_at": "无法在此处召唤涡旋,应当在空气处召唤",
- "hexlink.mishap.invalid_spirit_source": "无效灵体来源,需要有效的灵体获取来源",
- "hexlink.mishap.invalid_spirit_target": "无效灵体目标,需要有效的灵体存放目标",
- "hexlink.mishap.not_manifestable": "无法在%2$s上使%1$s显形",
-
- "emi.category.hexlink.vortex": "涡旋合成",
-
-
- "hexcasting.spell.hexlink:spirit_extraction": "灵体提取",
- "hexcasting.spell.hexlink:spirit_transfer": "灵体转移",
- "hexcasting.spell.hexlink:spirit_transfer_look": "灵体容器探察",
- "hexcasting.spell.hexlink:spirit_transfer_look_all": "灵体容器探察全部",
- "hexcasting.spell.hexlink:spirit_self_transfer_look": "自身灵体容器探察",
- "hexcasting.spell.hexlink:spirit_transfer_count": "灵体容器计数",
- "hexcasting.spell.hexlink:spirit_self_transfer_count": "自身灵体容器计数",
-
- "hexcasting.spell.hexlink:spirit_vortex": "涡旋成型",
- "hexcasting.spell.hexlink:spirit_manifestation": "灵体显形",
- "hexcasting.spell.hexlink:spirit_self_manifestation": "自身灵体显形",
- "hexcasting.spell.hexlink:spirit_look": "灵体探察",
-
-
- "hexcasting.spell.hexlink:read_trinket": "伯默之精思",
- "hexcasting.spell.hexlink:write_trinket": "伯默之策略",
- "hexcasting.spell.hexlink:write_spell": "弗莱姆之策略",
- "hexcasting.spell.hexlink:get_nbt": "撒母耳之纯化",
- "hexcasting.spell.hexlink:find_nbt": "加百列之馏化",
-
-
-
- "hexlink.spirit": "灵体",
- "hexlink.or": "或",
- "hexlink.spirit_iota": "灵体iota",
- "hexlink.spirit_iota.good": "有效的灵体iota",
-
-
- "hexlink.spirit.block": "方块灵体",
- "hexlink.spirit.entity": "实体灵体",
- "hexlink.spirit.potion": "药水灵体",
- "hexlink.spirit.item": "物品灵体",
- "hexlink.spirit.enchantment": "魔咒灵体",
- "hexlink.spirit.function": "命令灵体",
- "hexlink.spirit.special": "特殊灵体",
- "hexlink.spirit.biome": "生物群系灵体",
-
-
- "hexlink.extractor.item": "物品",
- "hexlink.extractor.entity": "实体",
- "hexlink.extractor.block": "方块",
- "hexlink.extractor.enchantment": "魔咒",
- "hexlink.extractor.potion": "药水",
- "hexlink.extractor.everything": "任意",
- "hexlink.extractor.biome": "生物群系",
-
-
- "item.hexlink.upgraded_book": "升级法术书",
- "item.hexlink.special_staff": "特殊法杖",
- "item.hexlink.mixed_pigment": "混合染色剂",
- "item.hexlink.focus_collar": "禁忌的核心项圈",
- "item.hexlink.spirit": "%s灵体",
- "item.hexlink.spirit.none": "灵体",
-
- "item.hexlink.philosophical_crystal": "%s之贤者水晶",
- "item.hexlink.philosophical_crystal.none": "透明水晶",
- "item.hexlink.haunted_crystal": "%s之缠魂水晶",
- "item.hexlink.haunted_crystal.none": "奇异水晶",
-
- "item.hexlink.tablet": "%s之石板",
- "item.hexlink.tablet.none": "空灵魂石板",
- "item.hexlink.small_bag": "%s之灵魂口袋",
- "item.hexlink.small_bag.none": "灵魂口袋",
- "item.hexlink.medium_bag": "%s之灵魂袋",
- "item.hexlink.medium_bag.none": "灵魂袋",
- "item.hexlink.big_bag": "%s之大灵魂袋",
- "item.hexlink.big_bag.none": "大灵魂袋",
- "item.hexlink.crystal": "%s之水晶",
- "item.hexlink.crystal.none": "空提取水晶",
-
- "item.hexlink.tablet_staff": "石板法杖",
- "item.hexlink.big_tablet_on_a_stick": "镶大石板法杖",
- "item.hexlink.spirit_staff": "灵体法杖",
- "item.hexlink.handmade_staff": "手工法杖",
- "item.hexlink.pure_media_staff": "纯媒质法杖",
- "item.hexlink.snake_staff": "蛇形法杖",
- "item.hexlink.cane_staff": "棍状法杖",
-
- "block.hexlink.vortex": "媒质涡旋",
- "block.hexlink.big_tablet": "大石板",
-
-
- "itemGroup.hexlink.hexlink": "Hexlink",
-
-
- "hexlink.category.spirits": "灵体法术",
- "hexlink.category.spirits.desc": "将事物变为媒质灵体,混合交融再令其显形。",
-
-
- "tag.item.hexlink.stack_sized": "提取量由耐久度决定",
- "tag.item.hexlink.staves": "Hexlink 法杖",
-
-
- "hexlink.entry.readwrite": "Hexlink 读取与写入",
- "hexlink.page.write_spell": "此图案可将咒术写入特殊法杖。法杖可为物品实体、物品展示框中物品,或施法者手持。",
-
- "hexlink.page.spirit_extraction.desc": "此法术可通过$(l:hexlink:items/crystals)提取水晶/$等提取催化物从实体中提取灵体,并将其存入$(l:hexlink:items/bag)灵体容器/$。提出灵体的数量由被提取目标决定。此法术中的物品可以是物品实体、物品展示框中的物品、容器首格中的物品,或者施法者副手中的物品。使用时务必小心,一着不慎满盘皆输。",
- "hexlink.page.spirit_extraction.target.desc": "第一参数为被提取对象;第二参数为提取催化物,如提取水晶;第三参数则为灵体容器。",
-
- "hexlink.page.spirit_transfer.desc": "这些图案是操纵和移动灵体的好帮手。灵体存储于灵体容器。物品实体、物品展示框中的物品、施法者手持物品、媒质涡旋,装有灵体容器的容器位置向量等均可视为灵体容器。",
- "hexlink.page.spirit_transfer.transfer.desc": "此图案可将灵体在两灵体容器间转移。第一参数为转移起点,第二参数为转移终点。",
- "hexlink.page.spirit_transfer.look.desc": "此图案可查看灵体容器中上一灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
- "hexlink.page.spirit_transfer.look_all.desc": "此图案可查看灵体容器中的所有灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
- "hexlink.page.spirit_transfer.count.desc": "此图案可统计灵体容器中某种灵体的存储数量。",
-
- "hexlink.page.get_nbt": "NBT 操纵",
- "hexlink.page.get_nbt.desc": "[需要安装更多 Iota] 我能在较短距离内看到所有事物。此图案能将方块或实体的所有属性提取为列表。",
- "hexlink.page.find_nbt.desc": "$(br)[需要安装更多 Iota] 此图案能提取某个方块或实体的特定属性。提取时必须要给定所探寻的灵魂本质的路径。例如,[\"Inventory\",0,\"id\"]。",
-
- "hexlink.page.spirit_manifestation.desc": "这个强力法术能将灵体显形至物理世界。我能通过某实体或在某位置令其显形。",
- "hexlink.page.spirit_manifestation.target.desc": "$(br)第一参数为被提取的容器,第二参数为需显形灵体的类型,第三参数为需显形灵体的数量,最末参数则是显形实体或显形位置。",
- "hexlink.page.spirit_self_manifestation.self.desc": "此快捷变种会从施法者物品栏中的灵体容器抽取灵体。第一参数为需显形灵体的类型,第二参数为需显形灵体的数量,第三参数则是显形实体或显形位置。",
-
- "hexlink.page.spirit_other": "其他法术",
- "hexlink.page.spirit_vortex.desc": "此图案可召唤$(l:hexlink:items/vortex)媒质涡旋/$。可向其中放入灵体以存储。涡旋中的灵体也有可能融合出新灵体。",
- "hexlink.page.spirit_look.desc": "此图案可使我感受灵体与某物体的接近程度。",
-
-
- "hexlink.page.crystals": "提取水晶",
- "hexlink.page.crystals.desc": "提取水晶有助于提取灵体。将其与$(l:hexlink:patterns/spirits/extraction)灵体提取/$配合使用就能提出灵体。这类水晶会出现在地牢箱子中。",
- "hexlink.page.crystals.block": "此类水晶可以装入方块灵体。可通过此类灵体召唤方块,或是模拟与其的交互。",
- "hexlink.page.crystals.item": "此类水晶可以装入物品灵体。可通过此类灵体模拟使用物品。",
- "hexlink.page.crystals.entity": "此类水晶可以装入实体灵体。可通过此类灵体召唤实体。实体的生命值必须小于等于 4。",
- "hexlink.page.crystals.potion": "此类水晶可以装入药水效果灵体。可通过此类灵体给予实体效果,或是召唤效果云。",
- "hexlink.page.crystals.enchantment": "此类水晶可以装入附魔物品和附魔书的灵体。可通过此类灵体附魔物品或制作附魔书。容器中的首个物品、物品实体、物品展示框中的物品,施法者副手中物品等均可视为提取目标。",
- "hexlink.page.crystals.everything": "此类水晶可以装入任意灵体。",
-
- "hexlink.page.vortex": "媒质涡旋与容器",
- "hexlink.page.vortex.desc": "媒质涡旋最多可装有 100 个灵体,也能将其混合以制造新灵体。$(l:hexlink:patterns/spirits/other)涡旋成型/$可产生媒质涡旋,$(l:hexlink:patterns/spirits/transfer)灵体转移/$则能放入或取出灵体。",
- "hexlink.page.big_tablet.desc": "大石板最多可装有 1000 个灵体。可用$(l:hexlink:patterns/spirits/transfer)灵体转移/$放入或取出灵体。",
-
- "hexlink.page.bag": "灵魂袋",
- "hexlink.page.bag.desc": "灵魂袋可装下用于$(l:hexlink:patterns/spirits/manifestation)灵体显形/$的灵体。可用$(l:hexlink:patterns/spirits/transfer)灵体转移/$填充它们。还可在手持时潜行滚动滚轮以选择灵体类型,就和法术书一样。",
- "hexlink.page.bag.small_bag": "灵魂口袋可装下最多 2 种灵体,每种最多 30 个。",
- "hexlink.page.bag.medium_bag": "灵魂袋可装下最多 5 种灵体,每种最多 100 个。",
- "hexlink.page.bag.big_bag": "大灵魂袋可装下最多 10 种灵体,每种最多 300 个。",
- "hexlink.page.bag.tablet": "灵魂石板可装下最多 10 个单种灵体,且能在地牢箱子中找到。",
- "hexlink.page.bag.philosophical_crystal": "贤者水晶是灵体的无限来源。",
- "hexlink.page.bag.haunted_crystal": "缠魂水晶则是贤者水晶的不稳定仿制品。",
-
- "hexlink.page.upgraded_book.1": "$(l:hexlink:items/upgraded_book)$(item)升级法术书/$有如一整个图书馆的造物。它不需要绘制图案就能使用我的栈来施法。若其中存有图案 iota 或列表,则会像赫尔墨斯之策略一样运行,否则会将 iota 压入栈顶。可用颜色灵体为各页染色。",
- "hexlink.page.upgraded_book.2": "以下省略!",
-
- "hexlink.page.special_staff.1": "我发现了法杖与周遭媒质交互的奥秘。也许我能用这些新知识制造一个可定制的法杖。我需要用$(l:hexlink:patterns/readwrite)弗莱姆之策略/$向其中写入法术。此后用这种法杖绘制图案时,写入的法术便会以我当前栈和压入栈顶的所绘制图案施放。完毕后,栈上方的列表视作栈的新状态,下方的数则表明图案的解析方式。",
- "hexlink.page.special_staff.2": "直接与媒质域交互会需要大量能量。",
-
- "hexlink.page.focus_collar": "[完全禁忌]有了这个戴在[数据屏蔽]上的[禁忌],我就可以在[禁忌]左手[禁忌]不拿物品时从[数据屏蔽]读取了。但[数据屏蔽]使用$(l:hexlink:patterns/readwrite)这些图案/$。"
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json b/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
deleted file mode 100644
index 4c1d4d5a0395..000000000000
--- a/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "item.hexpigmentplus.magician_hat": "Magician Hat"
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
deleted file mode 100644
index 8a8282f3ca4d..000000000000
--- a/projects/1.19/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "item.hexpigmentplus.magician_hat": "魔法师帽"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexlink/hexlink/lang/en_us.json b/projects/1.20-fabric/assets/hexlink/hexlink/lang/en_us.json
deleted file mode 100644
index 5d719b1dbd7a..000000000000
--- a/projects/1.20-fabric/assets/hexlink/hexlink/lang/en_us.json
+++ /dev/null
@@ -1,154 +0,0 @@
-{
- "hexlink.mishap.empty_collar": "Your focus collar is empty",
- "hexlink.mishap.no_collar_item": "You don't have any focus collar",
- "hexlink.mishap.extractor_item": "suitable extraction catalyzer item like an Extraction Crystal",
- "hexlink.mishap.spell_holder": "spell holder item",
- "hexlink.mishap.not_extractable": "This %s Spirit is not extractable with %s",
- "hexlink.mishap.not_enough_soul": "Missing %d spirits",
- "hexlink.mishap.cant_mix_at": "You cannot summon a vortex at this location, you can summon a vortex at an empty place",
- "hexlink.mishap.invalid_spirit_source": "The Spirit source is invalid, you need a valid target from where to get spirits",
- "hexlink.mishap.invalid_spirit_target": "The Spirit target is invalid, you need a valid target where to put spirits",
- "hexlink.mishap.not_manifestable": "You cannot manifeset %s on %s",
-
- "emi.category.hexlink.vortex": "Vortex Crafting",
-
-
- "hexcasting.action.hexlink:spirit_extraction": "Spirit Extraction",
- "hexcasting.action.hexlink:spirit_transfer": "Spirit Transfer",
- "hexcasting.action.hexlink:spirit_transfer_look": "Spirit Storage Look",
- "hexcasting.action.hexlink:spirit_transfer_look_all": "Spirit Storage Look All",
- "hexcasting.action.hexlink:spirit_self_transfer_look": "Spirit Self Storage Look",
- "hexcasting.action.hexlink:spirit_transfer_count": "Spirit Storage Count",
- "hexcasting.action.hexlink:spirit_self_transfer_count": "Spirit Self Storage Count",
-
- "hexcasting.action.hexlink:spirit_vortex": "Vortex Formation",
- "hexcasting.action.hexlink:spirit_manifestation": "Spirit Manifestation",
- "hexcasting.action.hexlink:spirit_self_manifestation": "Spirit Self Manifestation",
- "hexcasting.action.hexlink:spirit_look": "Spirit Look",
-
-
- "hexcasting.action.hexlink:read_trinket": "Boehmer's Reflection",
- "hexcasting.action.hexlink:write_trinket": "Boehmer's Gambit",
- "hexcasting.action.hexlink:write_spell": "Flem's Gambit",
- "hexcasting.action.hexlink:get_nbt": "Samuel Purification",
- "hexcasting.action.hexlink:find_nbt": "Gabriel Distillation",
-
-
-
- "hexlink.spirit": " Spirit",
- "hexlink.or": " or ",
- "hexlink.spirit_iota": "Spirit Iota",
- "hexlink.spirit_iota.good": "valid Spirit Iota",
-
-
- "hexlink.spirit.block": "Block Spirit",
- "hexlink.spirit.entity": "Entity Spirit",
- "hexlink.spirit.potion": "Potion Spirit",
- "hexlink.spirit.item": "Item Spirit",
- "hexlink.spirit.enchantment": "Enchantment Spirit",
- "hexlink.spirit.function": "Command Spirit",
- "hexlink.spirit.special": "Special Spirit",
- "hexlink.spirit.biome": "Biome Spirit",
-
-
- "hexlink.extractor.item": "Item",
- "hexlink.extractor.entity": "Entity",
- "hexlink.extractor.block": "Block",
- "hexlink.extractor.enchantment": "Enchantment",
- "hexlink.extractor.potion": "Potion",
- "hexlink.extractor.everything": "Anything",
- "hexlink.extractor.biome": "Biome",
-
-
- "item.hexlink.upgraded_book": "Upgraded Spellbook",
- "item.hexlink.special_staff": "Special Staff",
- "item.hexlink.mixed_pigment": "Mixed Pigment",
- "item.hexlink.focus_collar": "Forbidden Focus Collar",
- "item.hexlink.spirit": "%s Spirit",
- "item.hexlink.spirit.none": "Spirit",
-
- "item.hexlink.philosophical_crystal": "Philosophical Crystal of %s",
- "item.hexlink.philosophical_crystal.none": "Transparent Crystal",
- "item.hexlink.haunted_crystal": "Haunted Crystal of %s",
- "item.hexlink.haunted_crystal.none": "Weird Crystal",
-
- "item.hexlink.tablet": "Tablet of %s",
- "item.hexlink.tablet.none": "Empty Tablet",
- "item.hexlink.small_bag": "Soul Pocket of %s...",
- "item.hexlink.small_bag.none": "Soul Pocket",
- "item.hexlink.medium_bag": "Soul Bag of %s...",
- "item.hexlink.medium_bag.none": "Soul Bag",
- "item.hexlink.big_bag": "Large Soul Bag of %s...",
- "item.hexlink.big_bag.none": "Large Soul Bag",
- "item.hexlink.crystal": "Crystal of %s",
- "item.hexlink.crystal.none": "Empty Crystal",
-
- "item.hexlink.tablet_staff": "Tablet Staff",
- "item.hexlink.big_tablet_on_a_stick": "Big Tablet on a Stick Staff",
- "item.hexlink.spirit_staff": "Spirit Staff",
- "item.hexlink.handmade_staff": "Handmade Staff",
- "item.hexlink.pure_media_staff": "Pure Media Staff",
- "item.hexlink.snake_staff": "Snake Staff",
- "item.hexlink.cane_staff": "Cane Staff",
-
- "block.hexlink.vortex": "Media Vortex",
- "block.hexlink.big_tablet": "Big Tablet",
-
-
- "itemGroup.hexlink.hexlink": "Hexlink",
-
-
- "hexlink.category.spirits": "Spirit Spells",
- "hexlink.category.spirits.desc": "I have learned to extract spirits from anything, blend them, then manifest them into the world.",
-
- "tag.item.hexlink.stack_sized": "Extraction count depend on durability",
- "tag.item.hexlink.staves": "Hexlink Staves",
-
-
- "hexlink.entry.readwrite": "Hexlink Read and Write",
- "hexlink.page.write_spell": "This pattern writes a spell into a Special Wand — whether it’s dropped, placed in an item frame, or held by the caster.",
-
- "hexlink.page.spirit_extraction.desc": "This spell allows me to extract a spirit from a living entity, using an extraction catalyst — like an $(l:hexlink:items/crystals)Extraction Crystal/$ — and store it into a $(l:hexlink:items/bag)Spirit Container/$. The amount I can extract depends on the entity. I may place the catalyst and the target as dropped items, in item frames, in a container’s first slot, or hold them in my offhand. I must be cautious — if the conditions aren't right, the extraction may fail… or worse.",
- "hexlink.page.spirit_extraction.target.desc": "The first parameter is the entity to extract from, the second is the extraction catalyst, and the third is the spirit container that will receive the spirit.",
-
- "hexlink.page.spirit_transfer.desc": "These patterns are used to manipulate and move spirits stored in spirit containers. A spirit container can take many forms: a dropped item, an item in an item frame, a caster holding an item, a media vortex, or a position of a block containing an item.",
- "hexlink.page.spirit_transfer.transfer.desc": "With this pattern, I can transfer spirits from one spirit container into another. The first parameter is the source container, and the second is the destination.",
- "hexlink.page.spirit_transfer.look.desc": "With this pattern, I can read the type of the last Spirit stored in a spirit container. If the container is empty, or if the target entity or block isn’t a valid spirit source, the result is Null.",
- "hexlink.page.spirit_transfer.look_all.desc": "With this pattern, I can retrieve the types of all Spirits stored in a spirit container. If the container is empty, or if the target entity or block isn't a valid spirit source, the result is Null.",
- "hexlink.page.spirit_transfer.count.desc": "With this pattern, I can count how many spirits of a given type are stored in a container.",
-
- "hexlink.page.get_nbt": "NBT Manipulation",
- "hexlink.page.get_nbt.desc": "[Need MoreIotas] I see everything (In a small radius). With this pattern I can extract every property of a block or an entity into a list.",
- "hexlink.page.find_nbt.desc": "$(br)[Need MoreIotas] With this pattern I can extract a specific property of a block or an entity. I must provide the path that leads to the sought-after essence. For example, [\"Inventory\",0,\"id\"].",
-
- "hexlink.page.spirit_manifestation.desc": "With these powerful spells, I can manifest spirits into the physical world, either through an entity catalyst or at a specific location.",
- "hexlink.page.spirit_manifestation.target.desc": "$(br)The first parameter is the source container, the second specifies the type of spirit to manifest, the third sets the number of spirits, and the last defines the target entity or location for manifestation.",
- "hexlink.page.spirit_self_manifestation.self.desc": "This shortcut variant takes spirits from a container in the caster’s inventory. The first parameter specifies the type of spirit to manifest, the second sets the number of spirits, and the third defines the target entity or location for manifestation.",
-
- "hexlink.page.spirit_other": "Other Spells",
- "hexlink.page.spirit_vortex.desc": "With this pattern, I can summon a temporary $(l:hexlink:items/vortex)Media Vortex/$ in the world. After summoning it, spirits can be transferred into the vortex for temporary storage. Spirits stored inside can merge to create new spirits.",
- "hexlink.page.spirit_look.desc": "With this pattern, I can sense how close a spirit is to a physical object.",
-
- "hexlink.page.crystals": "Extraction Crystals",
- "hexlink.page.crystals.desc": "Extraction Crystals assist me in extracting spirits. Using them with $(l:hexlink:patterns/spirits/extraction)Spirit Extraction/$ allows me to capture spirits. These crystals can be found in dungeon chests.",
- "hexlink.page.crystals.block": "This type of crystal extracts the spirit of a block. Using a Block Spirit, I can summon blocks and simulate interactions with them.",
- "hexlink.page.crystals.item": "This type of crystal extracts the spirit of an item. Using an Item Spirit, I can simulate the use of that item.",
- "hexlink.page.crystals.entity": "This type of crystal extracts the spirit of an entity. The entity must have health at or below 4 to extract its spirit. Using an Entity Spirit, I can summon that entity.",
- "hexlink.page.crystals.potion": "This type of crystal extracts the spirit of a potion effect. Using a Potion Spirit, I can apply the effect to an entity or summon an effect cloud.",
- "hexlink.page.crystals.enchantment": "This type of crystal extracts the spirit of an enchanted item or enchanted book. Using an Enchantment Spirit, I can enchant an item or create an enchanted book. The target can be the first item in a container, a dropped item, an item in a frame, or the caster’s offhand item.",
- "hexlink.page.crystals.everything": "This type of crystal extracts the spirit of anything.",
-
- "hexlink.page.vortex": "Media Vortex and Containers",
- "hexlink.page.vortex.desc": "Media Vortexes can contain up to 100 spirits and mix them to create new spirits. You create a Media Vortex using $(l:hexlink:patterns/spirits/other)Vortex Formation/$, then transfer spirits in and out with $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$.",
- "hexlink.page.big_tablet.desc": "Big Tablets can contain up to 1000 spirits. Spirits can be added or removed using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$.",
-
- "hexlink.page.bag": "Soul Bags",
- "hexlink.page.bag.desc": "Soul bags contain spirits used for $(l:hexlink:patterns/spirits/manifestation)Spirit Manifestation/$. They can be filled using $(l:hexlink:patterns/spirits/transfer)Spirit Transfer/$. While holding a soul bag like a spell book, you can select the spirit type by shift-scrolling.",
- "hexlink.page.bag.small_bag": "Soul pockets can contains up to 2 different types of spirits, and 30 of each.",
- "hexlink.page.bag.medium_bag": "Soul bags can contains up to 5 different types of spirits, and 100 of each.",
- "hexlink.page.bag.big_bag": "Large soul bags can contains up to 10 different types of spirits, and 300 of each.",
- "hexlink.page.bag.tablet": "Soul tablets can contains up to 10 spirits of one type, you can find them in dungeon chests.",
- "hexlink.page.bag.philosophical_crystal": "Philosophical crystals are infinite sources of spirits.",
- "hexlink.page.bag.haunted_crystal": "Haunted crystals are unstable ersatz versions of philosophical crystals."
-
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexlink/hexlink/lang/zh_cn.json b/projects/1.20-fabric/assets/hexlink/hexlink/lang/zh_cn.json
deleted file mode 100644
index ad5209817a37..000000000000
--- a/projects/1.20-fabric/assets/hexlink/hexlink/lang/zh_cn.json
+++ /dev/null
@@ -1,153 +0,0 @@
-{
- "hexlink.mishap.empty_collar": "核心项圈为空",
- "hexlink.mishap.no_collar_item": "未佩戴核心项圈",
- "hexlink.mishap.extractor_item": "提取水晶之类的有效提取催化物",
- "hexlink.mishap.spell_holder": "可存有咒术的物品",
- "hexlink.mishap.not_extractable": "该%s灵体无法被%s提取",
- "hexlink.mishap.not_enough_soul": "缺少%d个灵体",
- "hexlink.mishap.cant_mix_at": "无法在此处召唤涡旋,应当在空气处召唤",
- "hexlink.mishap.invalid_spirit_source": "无效灵体来源,需要有效的灵体获取来源",
- "hexlink.mishap.invalid_spirit_target": "无效灵体目标,需要有效的灵体存放目标",
- "hexlink.mishap.not_manifestable": "无法在%2$s上使%1$s显形",
-
- "emi.category.hexlink.vortex": "涡旋合成",
-
-
- "hexcasting.action.hexlink:spirit_extraction": "灵体提取",
- "hexcasting.action.hexlink:spirit_transfer": "灵体转移",
- "hexcasting.action.hexlink:spirit_transfer_look": "灵体容器探察",
- "hexcasting.action.hexlink:spirit_transfer_look_all": "灵体容器探察全部",
- "hexcasting.action.hexlink:spirit_self_transfer_look": "自身灵体容器探察",
- "hexcasting.action.hexlink:spirit_transfer_count": "灵体容器计数",
- "hexcasting.action.hexlink:spirit_self_transfer_count": "自身灵体容器计数",
-
- "hexcasting.action.hexlink:spirit_vortex": "涡旋成型",
- "hexcasting.action.hexlink:spirit_manifestation": "灵体显形",
- "hexcasting.action.hexlink:spirit_self_manifestation": "自身灵体显形",
- "hexcasting.action.hexlink:spirit_look": "灵体探察",
-
-
- "hexcasting.action.hexlink:read_trinket": "伯默之精思",
- "hexcasting.action.hexlink:write_trinket": "伯默之策略",
- "hexcasting.action.hexlink:write_spell": "弗莱姆之策略",
- "hexcasting.action.hexlink:get_nbt": "撒母耳之纯化",
- "hexcasting.action.hexlink:find_nbt": "加百列之馏化",
-
-
-
- "hexlink.spirit": "灵体",
- "hexlink.or": "或",
- "hexlink.spirit_iota": "灵体iota",
- "hexlink.spirit_iota.good": "有效的灵体iota",
-
-
- "hexlink.spirit.block": "方块灵体",
- "hexlink.spirit.entity": "实体灵体",
- "hexlink.spirit.potion": "药水灵体",
- "hexlink.spirit.item": "物品灵体",
- "hexlink.spirit.enchantment": "魔咒灵体",
- "hexlink.spirit.function": "命令灵体",
- "hexlink.spirit.special": "特殊灵体",
- "hexlink.spirit.biome": "生物群系灵体",
-
-
- "hexlink.extractor.item": "物品",
- "hexlink.extractor.entity": "实体",
- "hexlink.extractor.block": "方块",
- "hexlink.extractor.enchantment": "魔咒",
- "hexlink.extractor.potion": "药水",
- "hexlink.extractor.everything": "任意",
- "hexlink.extractor.biome": "生物群系",
-
-
- "item.hexlink.upgraded_book": "升级法术书",
- "item.hexlink.special_staff": "特殊法杖",
- "item.hexlink.mixed_pigment": "混合染色剂",
- "item.hexlink.focus_collar": "禁忌的核心项圈",
- "item.hexlink.spirit": "%s灵体",
- "item.hexlink.spirit.none": "灵体",
-
- "item.hexlink.philosophical_crystal": "%s之贤者水晶",
- "item.hexlink.philosophical_crystal.none": "透明水晶",
- "item.hexlink.haunted_crystal": "%s之缠魂水晶",
- "item.hexlink.haunted_crystal.none": "奇异水晶",
-
- "item.hexlink.tablet": "%s之石板",
- "item.hexlink.tablet.none": "空灵魂石板",
- "item.hexlink.small_bag": "%s之灵魂口袋",
- "item.hexlink.small_bag.none": "灵魂口袋",
- "item.hexlink.medium_bag": "%s之灵魂袋",
- "item.hexlink.medium_bag.none": "灵魂袋",
- "item.hexlink.big_bag": "%s之大灵魂袋",
- "item.hexlink.big_bag.none": "大灵魂袋",
- "item.hexlink.crystal": "%s之水晶",
- "item.hexlink.crystal.none": "空提取水晶",
-
- "item.hexlink.tablet_staff": "石板法杖",
- "item.hexlink.big_tablet_on_a_stick": "镶大石板法杖",
- "item.hexlink.spirit_staff": "灵体法杖",
- "item.hexlink.handmade_staff": "手工法杖",
- "item.hexlink.pure_media_staff": "纯媒质法杖",
- "item.hexlink.snake_staff": "蛇形法杖",
- "item.hexlink.cane_staff": "棍状法杖",
-
- "block.hexlink.vortex": "媒质涡旋",
- "block.hexlink.big_tablet": "大石板",
-
-
- "itemGroup.hexlink.hexlink": "Hexlink",
-
-
- "hexlink.category.spirits": "灵体法术",
- "hexlink.category.spirits.desc": "将事物变为媒质灵体,混合交融再令其显形。",
-
- "tag.item.hexlink.stack_sized": "提取量由耐久度决定",
- "tag.item.hexlink.staves": "Hexlink 法杖",
-
-
- "hexlink.entry.readwrite": "Hexlink 读取与写入",
- "hexlink.page.write_spell": "此图案可将咒术写入特殊法杖。法杖可为物品实体、物品展示框中物品,或施法者手持。",
-
- "hexlink.page.spirit_extraction.desc": "此法术可通过$(l:hexlink:items/crystals)提取水晶/$等提取催化物从实体中提取灵体,并将其存入$(l:hexlink:items/bag)灵体容器/$。提出灵体的数量由被提取目标决定。此法术中的物品可以是物品实体、物品展示框中的物品、容器首格中的物品,或者施法者副手中的物品。使用时务必小心,一着不慎满盘皆输。",
- "hexlink.page.spirit_extraction.target.desc": "第一参数为被提取对象;第二参数为提取催化物,如提取水晶;第三参数则为灵体容器。",
-
- "hexlink.page.spirit_transfer.desc": "这些图案可用于操纵和移动灵体,将它们存储于灵体容器。物品实体、物品展示框中的物品、施法者手持物品、媒质涡旋,装有灵体容器的容器的位置向量等均可视为灵体容器。",
- "hexlink.page.spirit_transfer.transfer.desc": "此图案可将灵体在两灵体容器间转移。第一参数为转移起点,第二参数为转移终点。",
- "hexlink.page.spirit_transfer.look.desc": "此图案可查看灵体容器中上一灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
- "hexlink.page.spirit_transfer.look_all.desc": "此图案可查看灵体容器中的所有灵体的类型。若容器为空,或者所给实体或位置向量不是灵体来源,则返回 Null。",
- "hexlink.page.spirit_transfer.count.desc": "此图案可统计灵体容器中某种灵体的存储数量。",
-
- "hexlink.page.get_nbt": "NBT 操纵",
- "hexlink.page.get_nbt.desc": "[需要安装更多 Iota] 我能在较短距离内看到所有事物。此图案能将方块或实体的所有属性提取为列表。",
- "hexlink.page.find_nbt.desc": "$(br)[需要安装更多 Iota] 此图案能提取某个方块或实体的特定属性。提取时必须要给定所探寻的灵魂本质的路径。例如,[\"Inventory\",0,\"id\"]。",
-
- "hexlink.page.spirit_manifestation.desc": "这个强力法术能将灵体显形至物理世界。我能通过某实体或在某位置令其显形。",
- "hexlink.page.spirit_manifestation.target.desc": "$(br)第一参数为被提取的容器,第二参数为需显形灵体的类型,第三参数为需显形灵体的数量,最末参数则是显形实体或显形位置。",
- "hexlink.page.spirit_self_manifestation.self.desc": "此快捷变种会从施法者物品栏中的灵体容器抽取灵体。第一参数为需显形灵体的类型,第二参数为需显形灵体的数量,第三参数则是显形实体或显形位置。",
-
- "hexlink.page.spirit_other": "其他法术",
- "hexlink.page.spirit_vortex.desc": "此图案可召唤出会消散的$(l:hexlink:items/vortex)媒质涡旋/$。可向其中放入灵体以暂时存储。涡旋中的灵体也有可能融合出新灵体。",
- "hexlink.page.spirit_look.desc": "此图案可使我感受灵体与某物体的接近程度。",
-
- "hexlink.page.crystals": "提取水晶",
- "hexlink.page.crystals.desc": "提取水晶有助于提取灵体。将其与$(l:hexlink:patterns/spirits/extraction)灵体提取/$配合使用就能提出灵体。这类水晶会出现在地牢箱子中。",
- "hexlink.page.crystals.block": "此类水晶可以装入方块灵体。可通过此类灵体召唤方块,或是模拟与其的交互。",
- "hexlink.page.crystals.item": "此类水晶可以装入物品灵体。可通过此类灵体模拟使用物品。",
- "hexlink.page.crystals.entity": "此类水晶可以装入实体灵体。可通过此类灵体召唤实体。实体的生命值必须小于等于 4。",
- "hexlink.page.crystals.potion": "此类水晶可以装入药水效果灵体。可通过此类灵体给予实体效果,或是召唤效果云。",
- "hexlink.page.crystals.enchantment": "此类水晶可以装入附魔物品和附魔书的灵体。可通过此类灵体附魔物品或制作附魔书。容器中的首个物品、物品实体、物品展示框中的物品,施法者副手中物品等均可视为提取目标。",
- "hexlink.page.crystals.everything": "此类水晶可以装入任意灵体。",
-
- "hexlink.page.vortex": "媒质涡旋与容器",
- "hexlink.page.vortex.desc": "媒质涡旋最多可装有 100 个灵体,也能将其混合以制造新灵体。$(l:hexlink:patterns/spirits/other)涡旋成型/$可产生媒质涡旋,$(l:hexlink:patterns/spirits/transfer)灵体转移/$则能放入或取出灵体。",
- "hexlink.page.big_tablet.desc": "大石板最多可装有 1000 个灵体。可用$(l:hexlink:patterns/spirits/transfer)灵体转移/$放入或取出灵体。",
-
- "hexlink.page.bag": "灵魂袋",
- "hexlink.page.bag.desc": "灵魂袋可装下用于$(l:hexlink:patterns/spirits/manifestation)灵体显形/$的灵体。可用$(l:hexlink:patterns/spirits/transfer)灵体转移/$填充它们。还可在手持时潜行滚动滚轮以选择灵体类型,就和法术书一样。",
- "hexlink.page.bag.small_bag": "灵魂口袋可装下最多 2 种灵体,每种最多 30 个。",
- "hexlink.page.bag.medium_bag": "灵魂袋可装下最多 5 种灵体,每种最多 100 个。",
- "hexlink.page.bag.big_bag": "大灵魂袋可装下最多 10 种灵体,每种最多 300 个。",
- "hexlink.page.bag.tablet": "灵魂石板可装下最多 10 个单种灵体,且能在地牢箱子中找到。",
- "hexlink.page.bag.philosophical_crystal": "贤者水晶是灵体的无限来源。",
- "hexlink.page.bag.haunted_crystal": "缠魂水晶则是贤者水晶的仿制品。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
deleted file mode 100644
index 775fe0d2056c..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/en_us.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "item.hexpigmentplus.magician_hat.0": "Magician Hat",
- "item.hexpigmentplus.magician_hat.1": "Magician High Hat",
- "item.hexpigmentplus.magician_hat.2": "Magician Lutin Hat",
- "item.hexpigmentplus.magician_hat.3": "Magician Medieval Hat",
- "item.hexpigmentplus.magician_hat.4": "Magician Round Hat",
- "item.hexpigmentplus.magician_hat.5": "Magician Clown Hat",
- "item.hexpigmentplus.magician_hat.6": "Magician Large Hat",
- "item.hexpigmentplus.magician_hat.7": "Magician Cap",
- "item.hexpigmentplus.magician_hat.8": "Merlin Hat",
- "item.hexpigmentplus.magician_hat.9": "The Cube By HatInc.(c)",
- "item.hexpigmentplus.magician_hat.10": "Rabbit Cage",
- "item.hexpigmentplus.magician_hat.11": "Magician Wide Hat",
- "item.hexpigmentplus.magician_hat.12": "Magician Falling Hat",
- "item.hexpigmentplus.magician_hat.13": "Old Magician Hat",
-
- "item.hexpigmentplus.magician_cloak.0": "Magician Cape",
- "item.hexpigmentplus.magician_cloak.1": "Magician Cloak",
- "item.hexpigmentplus.magician_cloak.2": "Magician Scarf"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
deleted file mode 100644
index 92e60339c733..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexpigmentplus/hexpigmentplus/lang/zh_cn.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "item.hexpigmentplus.magician_hat": "魔法师帽",
- "item.hexpigmentplus.magician_hat.1": "魔法师尖顶帽",
- "item.hexpigmentplus.magician_hat.2": "魔法师妖精帽",
- "item.hexpigmentplus.magician_hat.3": "魔法师中世纪帽",
- "item.hexpigmentplus.magician_hat.4": "魔法师圆顶帽",
- "item.hexpigmentplus.magician_hat.5": "魔法师弄臣帽",
- "item.hexpigmentplus.magician_hat.6": "魔法师大帽",
- "item.hexpigmentplus.magician_hat.7": "魔法师鸭舌帽",
- "item.hexpigmentplus.magician_hat.8": "梅林帽",
- "item.hexpigmentplus.magician_hat.9": "冠帽股份有限公司出品立方帽©",
- "item.hexpigmentplus.magician_hat.10": "兔笼帽",
- "item.hexpigmentplus.magician_hat.11": "魔法师宽帽",
- "item.hexpigmentplus.magician_hat.12": "魔法师垂顶帽",
- "item.hexpigmentplus.magician_hat.13": "老式魔法师帽",
-
- "item.hexpigmentplus.magician_cloak.0": "魔法师披风",
- "item.hexpigmentplus.magician_cloak.1": "魔法师斗篷",
- "item.hexpigmentplus.magician_cloak.2": "魔法师围巾"
-}
\ No newline at end of file
From 3f3d388bfa2937cc8b3e8d3bf07a8084ef07bf52 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 04:49:48 +0800
Subject: [PATCH 62/78] =?UTF-8?q?HexTweaks=20HexSkies=20HexxyDimensions=20?=
=?UTF-8?q?transfer=EF=BC=9A#5405?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../hextweaks/lang/en_us.json | 78 -------------------
.../hextweaks/lang/zh_cn.json | 78 -------------------
.../modrinth-hexdim/hexdim/lang/en_us.json | 53 -------------
.../modrinth-hexdim/hexdim/lang/zh_cn.json | 53 -------------
.../assets/modrinth-hexsky/hexsky/README.md | 1 -
.../modrinth-hexsky/hexsky/lang/en_us.json | 76 ------------------
.../modrinth-hexsky/hexsky/packer-policy.json | 6 --
.../modrinth-hextweaks/hextweaks/README.md | 1 -
.../hextweaks/lang/en_us.json | 66 ----------------
.../hextweaks/packer-policy.json | 6 --
.../assets/modrinth-hexsky/hexsky/README.md | 16 ----
.../modrinth-hexsky/hexsky/lang/en_us.json | 76 ------------------
.../modrinth-hexsky/hexsky/lang/zh_cn.json | 76 ------------------
.../modrinth-hextweaks/hextweaks/README.md | 16 ----
.../hextweaks/lang/en_us.json | 66 ----------------
.../hextweaks/lang/zh_cn.json | 66 ----------------
16 files changed, 734 deletions(-)
delete mode 100644 projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
delete mode 100644 projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexsky/hexsky/README.md
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexsky/hexsky/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexsky/hexsky/packer-policy.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/README.md
delete mode 100644 projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/packer-policy.json
delete mode 100644 projects/1.20/assets/modrinth-hexsky/hexsky/README.md
delete mode 100644 projects/1.20/assets/modrinth-hexsky/hexsky/lang/en_us.json
delete mode 100644 projects/1.20/assets/modrinth-hexsky/hexsky/lang/zh_cn.json
delete mode 100644 projects/1.20/assets/modrinth-hextweaks/hextweaks/README.md
delete mode 100644 projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
delete mode 100644 projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
diff --git a/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/en_us.json b/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
deleted file mode 100644
index 7ad502748a18..000000000000
--- a/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "hexcasting.spell.hextweaks:nausea": "Nadir of Nausea",
- "hextweaks.page.spell.nausea": "Inflicts $(thing)nausea/$. Base cost is one Amethyst Dust per 4 seconds.$(br2)totally not a weed joke $(l:https://discord.com/channels/936370934292549712/1011455473528098857/1098374462333788242)link$(/l)",
-
- "hextweaks.entry.grand_spells": "Grand Spells",
- "hextweaks.entry.grand_spells.desc": "This section contains spells that have truly been lost to time. As such. I can only find small, sparse details about them. Perhaps I'd have better luck $(l:hextweaks:patterns/great_spells/craftgrandscroll)$(action)coaxing them from nature herself/$...",
- "hextweaks.entry.mass_mindflay": "Mass Mindflay Rituals",
- "hextweaks.entry.mass_mindflay.desc": "Spells that seem to require me to flay minds en masse. I assume I'd need a mass of living media to attempt such a feat.$(br)Villagers, from experience, serve as a good high-density source of media. Minimally-trained villagers contribute minimally to the ritual, with each level they gain doubling their contribution.$(br)It also appears that there is a natural order, with the ones requiring the most sacrifices being performed over lower-cost ones.$(br)It also appears that only one ritual can be performed per cast.",
-
- "hextweaks.page.spell.craft.grandscroll": "Takes an Ancient Scroll and the position of a Budding Amethyst, and searches for a random Grand Spell.",
- "hexcasting.spell.hextweaks:craft/grandscroll": "Natural Search",
-
- "block.hextweaks.crystallizedbookblock": "Grand Spell Dropper Block",
- "item.hextweaks.crystallized_scroll": "Crystallized Scroll",
- "item.hextweaks.crystallized_scroll.of": "Crystallized Scroll of %s",
- "item.scroll.great_or_better": "A Great Spell's Scroll, or better",
-
- "hexcasting.spell.hextweaks:grand/reroll": "Reroll Pattern",
- "hextweaks.entry.grand.reroll": "Reroll Pattern",
- "hextweaks.page.grand.reroll": "I've accrued quite a few Ancient Scrolls I no longer have need for. Fortunately, this spell lets me search the world for new patterns. Unfortunately, I can't do this forever, as its cost scales exponentially... $(br)Takes an Entity (Ancient/Crystallized Scroll), and rerolls the pattern upon it.$(br)Costs 10*1.25^[Number of times I've rerolled] Charged Amethyst.",
-
- "hexcasting.spell.hextweaks:grand/massbrainsweep": "Mass Mindflay",
- "hextweaks.page.grand.massmindflay": "All I've been able to find is that it takes a list of Entities, and another value I may have to figure out myself.$(br)$(l:patterns/great_spells/brainsweep)$(action)I think I have some notes on this./$ However, I should be careful — this feels like too much power to be wielded by one hand.",
- "hextweaks.page.mass_mindflay.create_slipway": "Create Slipway",
- "hextweaks.page.mass_mindflay.create_slipway.content": "Takes a position which is where the slipway will be created. It must be empty air, otherwise nothing will happen.$(br)Consumes 5 Masters.",
- "hextweaks.page.mass_mindflay.destroy_slipway": "Collapse Slipway",
- "hextweaks.page.mass_mindflay.destroy_slipway.content": "Takes a position where the slipway is located. $(br)Consumes a Master.",
-
- "hextweaks.entry.hextweaks_utility": "Hextweaks Utility",
- "hextweaks.entry.hextweaks.dict": "Hextweaks Dictionary",
-
- "hexcasting.spell.hextweaks:page/right": "Progress Gambit",
- "hexcasting.spell.hextweaks:page/left": "Regress Gambit",
- "hextweaks.page.hextweaks_utility.page/right": "Turns the spellbook that you are holding one page to the right.",
- "hextweaks.page.hextweaks_utility.page/left": "Turns the spellbook that you are holding one page to the left.",
-
- "hexcasting.spell.hextweaks:suicide": "Suspicious Glyph",
- "hextweaks.page.spell.suicide": "It appears to be a pattern, I wonder what happens if I cast it",
- "death.attack.hextweaks.death.sus": "%s was called sus",
-
- "hextweaks.iota.dictionary": "{%s}",
- "hextweaks.mishap.notadict": "is not a dictionary",
- "hextweaks.mishap.cannotbekey": "cannot be a dictionary key",
- "hextweaks.mishap.cannotbevalue": "cannot be a dictionary value",
- "hextweaks.mishap.dicttoolarge": "%s cannot have a value inserted, as it is too big",
-
- "note.dictionary.name": "Clerk's ",
- "hexcasting.spell.hextweaks:dict/new": "Clerk's Vacant Reflection",
- "hexcasting.spell.hextweaks:dict/from": "Clerk's Distillation",
- "hexcasting.spell.hextweaks:dict/break": "Clerk's Decomposition",
- "hexcasting.spell.hextweaks:dict/size": "Clerk's Abacus Purification",
- "hexcasting.spell.hextweaks:dict/set": "Clerk's Integration Exaltation",
- "hexcasting.spell.hextweaks:dict/get": "Clerk's Surgeon's Exaltation",
- "hexcasting.spell.hextweaks:dict/remove": "Clerk's Excisor's Distillation",
- "hexcasting.spell.hextweaks:dict/thoths": "Clerk's Thoth's Gambit",
- "hexcasting.spell.hextweaks:dict/break/single": "Clerk's Decomposition II",
-
- "hexcasting.action.book.hextweaks:dict/new": "Clerk's Vacant Rfln.",
- "hexcasting.action.book.hextweaks:dict/size": "Clerk's Abacus Prfn.",
- "hexcasting.action.book.hextweaks:dict/set": "Clerk's Integration Exln.",
- "hexcasting.action.book.hextweaks:dict/get": "Clerk's Surgeon's Exln.",
- "hexcasting.action.book.hextweaks:dict/remove": "Clerk's Excisor's Dstl.",
-
- "hextweaks.page.hextweaks.dict.info": "Dictionaries are a type of iota added by HexTweaks, similar to a portable akashic record (although limited to 32 indexes).$(br)The type key indicates any type - except dictionaries or lists, as they cannot be used as keys.",
- "hextweaks.page.hextweaks.dict.new": "Pushes a new, empty dictionary to the stack.",
- "hextweaks.page.hextweaks.dict.from": "Turns two lists into a dictionary. Invalid keys get their values dropped.",
- "hextweaks.page.hextweaks.dict.break": "Breaks a dictionary into list of keys and values.",
- "hextweaks.page.hextweaks.dict.break.single": "Breaks only the first value, and drops the others.",
- "hextweaks.page.hextweaks.dict.size": "Pops a dictionary and returns its size.",
- "hextweaks.page.hextweaks.dict.set": "Adds a key/value pair to the dictionary. The dictionary iota remains on the stack.",
- "hextweaks.page.hextweaks.dict.get": "Gets a value from the dictionary using a key. The dictionary iota remains on the stack.",
- "hextweaks.page.hextweaks.dict.remove": "Removes a key from the dictionary.",
- "hextweaks.page.hextweaks.dict.thoths": "A corollary of Thoth's Gambit for dictionaries.$(br) Pushes [key,value] to the top of the stack instead of a single value.",
-
-
- "hexcasting.spell.hextweaks:itter": "Pebbles' Purification",
- "hextweaks.page.hextweaks.utility.itter": "Takes a number and returns all numbers 0 to n-1, producing n values. I should be careful as to not flood my stack."
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json b/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
deleted file mode 100644
index aacfaeb0ce23..000000000000
--- a/projects/1.19/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "hexcasting.spell.hextweaks:nausea": "反胃之西沉",
- "hextweaks.page.spell.nausea": "给予$(thing)反胃/$。每 4 秒持续时间的基础消耗为 1 个紫水晶粉。$(br2)完全不是“weed”笑话$(l:https://discord.com/channels/936370934292549712/1011455473528098857/1098374462333788242)链接$(/l)",
-
- "hextweaks.entry.grand_spells": "卓伟法术",
- "hextweaks.entry.grand_spells.desc": "本节记载着真正遗落散尽的法术。正因此,我只能搜寻到少量有关细节,难以知全貌。也许我能到$(l:hextweaks:patterns/great_spells/craftgrandscroll)$(action)自然那里碰碰运气/$……",
- "hextweaks.entry.mass_mindflay": "群体剥离意识仪式",
- "hextweaks.entry.mass_mindflay.desc": "此处记载着似乎需要大量剥离意识的法术。我认为施放如此宏大的法术,需要极大量的活体媒质。$(br)村民的熟练度是不错的高密度媒质源。交易极少的村民对仪式的贡献也极少,熟练度每增一级贡献就会翻倍。$(br)而且似乎仪式间存在着某种自然顺序,所需较多的仪式会优先于所需较少的仪式执行。$(br)并且每次施法貌似只能执行一次仪式。",
-
- "hextweaks.page.spell.craft.grandscroll": "接受一份远古卷轴、和一个紫水晶母岩的位置,并随机搜索出一个卓伟法术。",
- "hexcasting.spell.hextweaks:craft/grandscroll": "自然搜索",
-
- "block.hextweaks.crystallizedbookblock": "卓伟法术生成方块",
- "item.hextweaks.crystallized_scroll": "晶化卷轴",
- "item.hextweaks.crystallized_scroll.of": "%s之晶化卷轴",
- "item.scroll.great_or_better": "远古卷轴或更高级的卷轴",
-
- "hexcasting.spell.hextweaks:grand/reroll": "重骰图案",
- "hextweaks.entry.grand.reroll": "重骰图案",
- "hextweaks.page.grand.reroll": "没有收集需要的远古卷轴已经堆积如山,好在这个法术能在世界中搜索新图案。可惜我没法永远这么做,不然它的消耗会指数式增长……$(br)接受一个远古卷轴或晶化卷轴实体,并重骰其上图案。$(br)消耗 10 * 1.25 ^ (重骰次数) 个充能紫水晶。",
-
- "hexcasting.spell.hextweaks:grand/massbrainsweep": "群体剥离意识",
- "hextweaks.page.grand.massmindflay": "需要一个由实体组成的列表,还有一个参量应自行推断,我目前就发现这么多了……$(br)$(l:patterns/great_spells/brainsweep)$(action)我应该记下了些相关的笔记。/$即使如此,也务必万分注意,这些法术的力量不像是常人所能掌控的。",
- "hextweaks.page.mass_mindflay.create_slipway": "创造质道",
- "hextweaks.page.mass_mindflay.create_slipway.content": "接受一个位置向量,并在该位置处创造质道,且该位置需无方块,否则什么都不会发生。$(br)消耗 5 个大师村民。",
- "hextweaks.page.mass_mindflay.destroy_slipway": "坍缩质道",
- "hextweaks.page.mass_mindflay.destroy_slipway.content": "接受质道位置向量,并将其摧毁。$(br)消耗 1 个大师村民。",
-
- "hextweaks.entry.hextweaks_utility": "咒法调整:实用",
- "hextweaks.entry.hextweaks.dict": "咒法调整:字典",
-
- "hexcasting.spell.hextweaks:page/right": "页进之策略",
- "hexcasting.spell.hextweaks:page/left": "页退之策略",
- "hextweaks.page.hextweaks_utility.page/right": "将我所持的法术书向右翻一页。",
- "hextweaks.page.hextweaks_utility.page/left": "将我所持的法术书向左翻一页。",
-
- "hexcasting.spell.hextweaks:suicide": "可疑的图案",
- "hextweaks.page.spell.suicide": "似乎是某种图案,真想知道它有什么效果。",
- "death.attack.hextweaks.death.sus": "%s被认为相当可疑",
-
- "hextweaks.iota.dictionary": "{%s}",
- "hextweaks.mishap.notadict": "一个字典",
- "hextweaks.mishap.cannotbekey": "一个有效字典键",
- "hextweaks.mishap.cannotbevalue": "一个有效字典值",
- "hextweaks.mishap.dicttoolarge": "%s过大,因此无法新加入键值对",
-
- "note.dictionary.name": "书记员之",
- "hexcasting.spell.hextweaks:dict/new": "书记员空无之精思",
- "hexcasting.spell.hextweaks:dict/from": "书记员之馏化",
- "hexcasting.spell.hextweaks:dict/break": "书记员之分解",
- "hexcasting.spell.hextweaks:dict/size": "书记员算盘之纯化",
- "hexcasting.spell.hextweaks:dict/set": "书记员整合之提整",
- "hexcasting.spell.hextweaks:dict/get": "书记员外科医师之提整",
- "hexcasting.spell.hextweaks:dict/remove": "书记员切除器之馏化",
- "hexcasting.spell.hextweaks:dict/thoths": "书记员托特之策略",
- "hexcasting.spell.hextweaks:dict/break/single": "书记员之分解,第二型",
-
- "hexcasting.action.book.hextweaks:dict/new": "书记员空无之精思",
- "hexcasting.action.book.hextweaks:dict/size": "书记员算盘之纯化",
- "hexcasting.action.book.hextweaks:dict/set": "书记员整合之提整",
- "hexcasting.action.book.hextweaks:dict/get": "书记员外科医师之提整",
- "hexcasting.action.book.hextweaks:dict/remove": "书记员切除器之馏化",
-
- "hextweaks.page.hextweaks.dict.info": "字典是咒法调整新增的一种 iota,类似便携式阿卡夏记录,但最多只能包含 32 条记录。$(br)key(键)类型代表除字典和列表外的所有 iota 类型,字典和列表不可出现于字典内。",
- "hextweaks.page.hextweaks.dict.new": "压入一个空的新字典。",
- "hextweaks.page.hextweaks.dict.from": "将两个列表组合为一个字典,无效键对应的值会被丢弃。",
- "hextweaks.page.hextweaks.dict.break": "将一个字典拆解为键列表和值列表。",
- "hextweaks.page.hextweaks.dict.break.single": "仅将字典中第一对键值拆出,其余丢弃。",
- "hextweaks.page.hextweaks.dict.size": "弹出字典,并返回其大小。",
- "hextweaks.page.hextweaks.dict.set": "将键值对加入字典,字典会留在栈内。",
- "hextweaks.page.hextweaks.dict.get": "返回字典中键对应的值,字典会留在栈内。",
- "hextweaks.page.hextweaks.dict.remove": "从字典中移除键。",
- "hextweaks.page.hextweaks.dict.thoths": "适用于字典的托特之策略。$(br)会将键值对分别压入栈顶,而非仅压入值。",
-
-
- "hexcasting.spell.hextweaks:itter": "石子之纯化",
- "hextweaks.page.hextweaks.utility.itter": "接受一个数,并返回从 0 开始至 n - 1 的所有数,共计 n 个。务必小心,以免往栈中塞进太多 iota。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/en_us.json
deleted file mode 100644
index 19c4a011f27e..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/en_us.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "hexdim.mishap.invalidenv": "Invalid Casting Environment. Try casting in a different dimension.",
- "hexdim.iota.room": "Room Iota",
- "hexdim.iota.permissions.execute": "Room Iota with Execute Permissions",
- "hexdim.iota.permissions.write": "Room Iota with Write Permissions",
- "hexdim.iota.permissions.read": "Room Iota with Read Permissions",
-
- "hexdim.entry.dim": "Hexxy Dimensions",
- "hexdim.page.dim.1": "When I saw $(l:greatwork/the_work)IT$().$(br)I realized it could be shaped by my will.$(br)I just need the right $(l:patterns/great_spells/dimension#hexdim:dim/create)pattern$().$(br)There also appear to be a few new mishaps I can encounter, most of which involve the room not being ready yet or no longer existing.$(br2)$(l)I shouldn't punch the walls for too long - that may draw $(thing)their$(nocolor) attention, resulting in a painful expulsion from the room.$()",
- "hexdim.page.dim.2": "To work with this power I have developed a new iota type, which I call a $(thing)room$(). $(br)A room iota appears to give me extensive powers over an extradimensional room, which can be created and manipulated by the spells below. Note that for all of these spells, unless a media cost is specified, there is no cost at all. $(br2)To restrict the powers granted by a given room iota (such as if I want to give partial access to a friend) I have access to three permission settings (R, W, and X) all of which are enabled by default. The R permission allows me to enter the room, the W permission allows me to delete the room, and the X permission allows me to $(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)transfer my casting into the room$(). These permissions can be revoked using $(l:patterns/great_spells/dimension#hexdim:dim/perm/remove)Everett's Authority$().$(br2)(If it wasn't clear, you can \"break\" the walls of a room. Doing so will deal some non-lethal damage and return you to the Overworld.)",
-
- "hexcasting.action.hexdim:dim/create": "Everett's Exaltation",
- "hexdim.page.dim.create": "Creates a new room for me, with the provided width, height, and depth. Costs six Charged Amethyst per block.",
- "hexdim.page.dim.create.extend": "When I first make a room it appears I must wait for it to be \"carved\".$(br)I am unable to do anything practical in the room until I let nature carve it out.$(br2)Carving takes place at around 20 blocks per second. I can $(l:patterns/great_spells/dimension#hexdim:dim/time)figure out how many are left$() with a simple pattern.",
-
- "hexcasting.action.hexdim:dim/kidnap": "Everett's Abduction",
- "hexdim.page.dim.kidnap": "You are going to $(m)Brazil$(), $(m)My Domain$(), $(o)T H E F U N Z O N E",
- "hexdim.page.dim.kidnap.extend": "Transports the provided entity/entities (willing or otherwise!) to the provided room, at the cost of one Amethyst Shard per entity. $(br)$(o)There is no will save. I should probally prepare countermeasures for if I find myself taken.$()",
-
- "hexcasting.action.hexdim:dim/cast/activate": "Everett's Environment",
- "hexdim.page.dim.cast.activate": "My own personal casting space!",
- "hexdim.page.dim.cast.activate.extend": "Mutates my $(thing)casting environment$() for the rest of the current spell, allowing me to cast as though I was located in the provided room. While this effect is active, my $(thing)ambit$() within the room extends to the entirety of the space.$(br)Trying to cast this pattern using a room iota with the X permission disabled, or while the effect is already active, results in a $(thing)Mishap$().$(br)Also, my staff appears to actively conflict with the effect, ignoring it unless I $(l:patterns/meta#hexcasting:eval)execute a spell all at once$().",
-
- "hexcasting.action.hexdim:dim/cast/deactivate": "Everett's Environment II",
- "hexdim.page.dim.cast.deactivate": "Look Ma, two dimensions!",
- "hexdim.page.dim.cast.deactivate.extend": "Undoes the current $(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)mutation to my environment$().$(br)This can be useful if, for example, I want to briefly swap to my personal space to access information and then return to casting in my actual location.",
-
- "hexcasting.action.hexdim:dim/kick": "Everett's Expulsion",
- "hexdim.page.dim.kick": "G E T O U T",
- "hexdim.page.dim.kick.extend": "Expels entities from a room to the overworld. This will only function if I'm casting from within the room the entities are located in, either physically or via $(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)Everett's Environment$().",
-
- "hexcasting.action.hexdim:dim/rel/to": "Everett's Relative Prfn.",
- "hexdim.page.dim.rel.to": "This should make things easier.",
- "hexdim.page.dim.rel.to.extend": "Given a room and an absolute position, this will convert the position to be relative to the northwest corner of the room. Does not affect the Y coordinate of the position.$(br)This may be helpful for determining offsets within a room.",
-
- "hexcasting.action.hexdim:dim/rel/from": "Everett's Relative Prfn. II",
- "hexdim.page.dim.rel.from": "This should also make things easier.",
- "hexdim.page.dim.rel.from.extend": "Given a room and a positon relative to the room's northwest corner, this will convert the position to absolute coordinates. Does not affect the Y coordinate of the position.$(br)This may be helpful when accessing block or entities within the room.$(br)Only positive relative offsets will become positions that are actually inside the room. Negative offsets will produce a position in the \"wall\" between rooms.",
-
- "hexcasting.action.hexdim:dim/pos/set": "Everett's Location",
- "hexdim.page.dim.pos.set": "Sets the position you arrive at when you warp into this room, relative to the northwest corner.$(br)Requires W permission on the room.",
-
- "hexcasting.action.hexdim:dim/perm/remove": "Everett's Authority",
- "hexdim.page.dim.perm.remove": "Disables the specified permission for this room iota. 0 refers to R, 1 refers to W, and 2 refers to X.",
-
- "hexcasting.action.hexdim:dim/time": "Everett's Timing Prfn.",
- "hexdim.page.dim.time": "How much longer must I wait?",
- "hexdim.page.dim.time.extend": "Given a room iota, tells me the number of blocks remaining to be carved.$(br)This can be used to determine how much progress has been made on carving the room, and how much longer it will take to finish.",
-
- "hexcasting.action.hexdim:dim/carved": "Everett's Carving Prfn.",
- "hexdim.page.dim.carved": "Are we done yet?",
- "hexdim.page.dim.carved.extend": "Given a room iota, tells me whether it is finished carving and ready to be used."
-}
diff --git a/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/zh_cn.json
deleted file mode 100644
index 0fcdc602c4d0..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexdim/hexdim/lang/zh_cn.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "hexdim.mishap.invalidenv": "施法环境无效。试试看换个维度施法。",
- "hexdim.iota.room": "维室iota",
- "hexdim.iota.permissions.execute": "具有执行权限的维室iota",
- "hexdim.iota.permissions.write": "具有写入权限的维室iota",
- "hexdim.iota.permissions.read": "具有读取权限的维室iota",
-
- "hexdim.entry.dim": "咒法维度",
- "hexdim.page.dim.1": "在看到$(l:greatwork/the_work)那样的事物$()时。$(br)我便意识到,我能随我心意将其塑形。$(br)我只是需要正确的$(l:patterns/great_spells/dimension#hexdim:dim/create)图案$()。$(br)我似乎还会遇到几种新事故,大多数都是因为维室未准备好、或是已不再存在。$(br2)$(l)我不应大肆破坏周围的墙壁,不然可能会引起$(thing)它们$(nocolor)的注意,结果就是我被扔出维室$()。",
- "hexdim.page.dim.2": "为操作这种力量,我设计了一种新 iota,叫做$(thing)维室$()。$(br)维室 iota 似乎会给予我对某片超维空间强大的控制力,后页的法术就是创建和操纵这片空间的工具。需注意,除非标明媒质消耗量,就无需消耗媒质。$(br2)为限制维室 iota 的操纵功能(比如说只给朋友部分权限),这种 iota 带有 3 种权限设置(R、W、X),默认均启用。R 权限允许进入维室,W 权限允许删除维室,X 权限允许我将$(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)影响范围转移到维室中$()。$(l:patterns/great_spells/dimension#hexdim:dim/perm/remove)埃弗雷特之权限$()可以禁用这些权限。$(br2)(再明确一下,你其实可以“破坏”墙壁,这么做后你会受到非致命伤害,并返回主世界。)",
-
- "hexcasting.action.hexdim:dim/create": "埃弗雷特之提整",
- "hexdim.page.dim.create": "按照给定的长宽高制造一个新维室。每方块消耗 6 个充能紫水晶。",
- "hexdim.page.dim.create.extend": "每次新造维室时,似乎必须先等其“雕琢”完毕。$(br)在自然雕琢完毕之前,我无法在其中做任何有实际效果的事。$(br2)雕琢的速度约为每秒 20 个方块。可以用一个简单图案$(l:patterns/great_spells/dimension#hexdim:dim/time)查看还有多少仍待雕琢$()。",
-
- "hexcasting.action.hexdim:dim/kidnap": "埃弗雷特之劫持",
- "hexdim.page.dim.kidnap": "即将前往:$(m)巴西$(),$(m)我的领域$(),$(o)欢 乐 的 地 方",
- "hexdim.page.dim.kidnap.extend": "将给定实体(情不情愿都没关系!)送入给定维室,每个实体效果 1 个紫水晶碎片。$(br)$(o)此法术没有效果豁免。最好为我自己被劫持准备些反制手段。$()",
-
- "hexcasting.action.hexdim:dim/cast/activate": "埃弗雷特之环境",
- "hexdim.page.dim.cast.activate": "独属我自己的施法空间!",
- "hexdim.page.dim.cast.activate.extend": "在咒术剩下的部分里变换我的$(thing)施法环境$(),如同在给定维室中施放一样。起效后$(thing)影响范围/$会囊括整个维室。$(br)尝试对禁用 X 权限的维室施放,或此法术已起效,则会招致$(thing)事故/$。$(br)此外,我的法杖似乎会主动排斥这种效应,除非$(l:patterns/meta#hexcasting:eval)在同一时刻运行所有/$法术。",
-
- "hexcasting.action.hexdim:dim/cast/deactivate": "埃弗雷特之环境,第二型",
- "hexdim.page.dim.cast.deactivate": "双维度在手!",
- "hexdim.page.dim.cast.deactivate.extend": "移除$(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)我施法环境上的变换$()。$(br)如果需要临时换到个人空间获取信息,再返回实际位置施法,这个图案就很有用了。",
-
- "hexcasting.action.hexdim:dim/kick": "埃弗雷特之驱逐",
- "hexdim.page.dim.kick": "滚 出 去",
- "hexdim.page.dim.kick.extend": "将实体从维室驱逐到主世界。此法术只在我的施法环境和给定实体同处一个维室时有效,物理上同处、或是通过$(l:patterns/great_spells/dimension#hexdim:dim/cast/activate)埃弗雷特之环境$()同处均可。",
-
- "hexcasting.action.hexdim:dim/rel/to": "埃弗雷特相对之纯化",
- "hexdim.page.dim.rel.to": "应该能让事情更简单些。",
- "hexdim.page.dim.rel.to.extend": "给定维室和绝对位置,此图案会将所给位置转换为对所给维室西北角的相对位置。不会改变 Y 坐标。$(br)在计算维室中坐标的时候应该很有用。",
-
- "hexcasting.action.hexdim:dim/rel/from": "埃弗雷特相对之纯化,二型",
- "hexdim.page.dim.rel.from": "应该能让事情更简单些。",
- "hexdim.page.dim.rel.from.extend": "给定维室和对其西北角的相对位置,此图案会将所给位置转换为绝对位置。不会改变 Y 坐标。$(br)在访问该维室中方块和实体的时候应该很有用。$(br)正数坐标指向房间内部。负数则对应着维室之间的“墙壁”。",
-
- "hexcasting.action.hexdim:dim/pos/set": "埃弗雷特之位置",
- "hexdim.page.dim.pos.set": "设定传入维室时的目的地,坐标相对西北角。$(br)需要拥有维室的 W 权限。",
-
- "hexcasting.action.hexdim:dim/perm/remove": "埃弗雷特之权限",
- "hexdim.page.dim.perm.remove": "禁用维室的给定权限。0 为 R 权限,1 为 W 权限,2 为 X 权限。",
-
- "hexcasting.action.hexdim:dim/time": "埃弗雷特计时之纯化",
- "hexdim.page.dim.time": "我还要等多久?",
- "hexdim.page.dim.time.extend": "接受一个维室,返回仍需雕琢的方块数。$(br)可以用来确定维室的雕琢进度,以及还需多久才能完成。",
-
- "hexcasting.action.hexdim:dim/carved": "埃弗雷特雕琢之纯化",
- "hexdim.page.dim.carved": "我们完成了吗?",
- "hexdim.page.dim.carved.extend": "接受一个维室,检验其否已雕琢完毕可供使用。"
-}
diff --git a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/README.md b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/README.md
deleted file mode 100644
index 9e8163252705..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/modrinth-hexsky/hexsky)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/lang/en_us.json
deleted file mode 100644
index d7974bf73b76..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/lang/en_us.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "hexsky.iota.ship": "Ship: \"%s\"",
- "hexsky.mishap.invalid": "Ship is Invalid spell because: %s",
- "hexsky.mishap.invalid.reason.null": "Ship does not exist!",
-
- "hexsky.entry.navimancy": "Ship Navimancy",
- "hexsky.page.navimancy": "While various biological, mechanical, or otherwise media-infused creations are able to break from the environment, they are either physically restrained or unable to host solid construction. With the helping hand of the Naval Corps, I have devised methods of assembling and controlling portions of the world as rigid, separated objects.",
- "hexsky.page.navimancy.terms": "These objects can move untethered, and allow for an enormous range of invention. $(li)$(thing)Ships$() are freely-moving objects which have separated from the world.$(li)$(thing)Force$() is an $(l:patterns/spells/basic#hexcasting:add_motion)impulse$() in a specific direction.$(li)$(thing)Torque$() is akin to Force, but concerns rotation exclusively.$(li)$(thing)Variant$() forces are based on the ship's axes.$(li)$(thing)Invariant$() forces are applied based on the world's.$()",
-
- "hexsky.entry.complexhex": "Complex Navimancy",
- "hexsky.page.complexhex.entry": "In the course of my research, I have found simpler representations of rotation inadequate. As such, I developed patterns that allow for the use of more useful representations of rotation. These patterns are for applying such representations to ships.",
- "hexcasting.action.hexsky:ship_rot_quat": "Bearings Purification",
- "hexsky.page.complexhex.ship_rot_quat": "Returns a ship's rotation as a $(thing)Quaternion$().",
- "hexcasting.action.hexsky:ship_rot_quat_set": "Bearings Distillation",
- "hexsky.page.complexhex.ship_rot_quat_set": "Sets a ship's rotation to the provided $(thing)Quaternion$(). The ship must not be cloaked, and the $(thing)Quaternion must be valid.",
-
- "hexsky.entry.hexal": "Wisp Navimancy",
- "hexsky.page.hexal.wisp.entry": "Ships are often difficult for simpler beings to comprehend on their own, so I created these patterns to direct wisps between them.",
- "hexcasting.action.hexsky:embark": "Embark",
- "hexsky.page.hexal.wisp.embark": "Attaches the wisp to the ship. It must be near. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
- "hexcasting.action.hexsky:disembark": "Disembark",
- "hexsky.page.hexal.wisp.disembark": "Detaches the wisp from a ship. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
-
- "hexsky.entry.moreiotas": "More Navimancy",
- "hexsky.page.moreiotas.entry": "Developments in manipulating information justify appropriate ship-related patterns.",
- "hexcasting.action.hexsky:ship_slug_get": "Boatwright's Prfn.",
- "hexsky.page.moreiotas.ship_slug_get": "Returns the name of a ship.",
- "hexcasting.action.hexsky:ship_slug_set": "Boatwright's Dstl.",
- "hexsky.page.moreiotas.ship_slug_set": "Sets the name of a ship. The ship must be uncloaked.",
- "hexcasting.action.hexsky:world_to_ship_matrix": "Windward Purification",
- "hexsky.page.moreiotas.world_to_ship_matrix": "Returns the $(thing)World-to-Ship$() transform matrix of the targeted ship",
- "hexcasting.action.hexsky:ship_to_world_matrix": "Leeward Purification",
- "hexsky.page.moreiotas.ship_to_world_matrix": "Returns the $(thing)Ship-to-World$() transform matrix of the targeted ship",
-
- "hexsky.entry.navimancy.basic": "Basic Navimancy",
- "hexcasting.action.hexsky:cloak": "Cloaking Purification",
- "hexsky.page.navimancy.basic.cloak": "Toggles and returns the state of a ship's cloak. This pattern acts as security for a ship, obscuring new references from being obtained. Exercise caution.",
- "hexcasting.action.hexsky:p2s": "Deckhand's Purification",
- "hexsky.page.navimancy.basic.p2s": "Takes a position and returns the ship that it corresponds to. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
- "hexcasting.action.hexsky:ship_pos": "Ship Compass Prfn.",
- "hexsky.page.navimancy.basic.ship_pos": "Analogous to $(l:patterns/basics#hexcasting:entity_pos/eye)Compass Purification$(), but instead returns the position of a ship's Center of Mass.",
- "hexcasting.action.hexsky:ship_rot": "Heading Purification",
- "hexsky.page.navimancy.basic.ship_rot": "Analogous to $(l:patterns/basics#hexcasting:get_entity_look)Alidade's Purification$(), but instead gets the ship's forward direction",
- "hexcasting.action.hexsky:ship_raycast": "Crow's Distillation",
- "hexsky.page.navimancy.basic.ship_raycast": "Analogous to $(l:patterns/basics#hexcasting:raycast)Archer's Distillation$(), but instead returns a ship. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
- "hexcasting.action.hexsky:zone_ships": "Zone Dstl.: Ship",
- "hexsky.page.navimancy.basic.zone_ships": "Analogous to $(l:patterns/entities#hexcasting:zone_entity)Zone Distillation$(), but instead returns a list of ships. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
- "hexcasting.action.hexsky:ship_weight": "Tonnage Purification",
- "hexsky.page.navimancy.basic.ship_weight": "Takes a ship and returns its total mass.$(br)Forces applied by Hexes are to be multiplied by this number.",
- "hexcasting.action.hexsky:ship_scale": "Magnification Prfn.",
- "hexsky.page.navimancy.basic.ship_scale": "Takes a ship and returns its current scale.",
- "hexcasting.action.hexsky:shiptoworldpos": "Worldly Purification",
- "hexsky.page.navimancy.basic.shiptoworldpos": "Takes a position originating from a ship and transforms it into its worldly equivalent.",
- "hexcasting.action.hexsky:block_mass": "Deadweight Purification",
- "hexsky.page.navimancy.basic.block_mass": "Takes a position of a Block and adds its current mass to the stack.",
-
-
-
- "hexsky.entry.navimancy.applied": "Applied Navimancy",
- "hexcasting.action.hexsky:assemble": "Assemble",
- "hexsky.page.navimancy.applied.assemble": "Takes a list of vectors corresponding to static blocks in the world, and transforms them into a separated free-floating object. Blocks outside of my ambit are ignored.",
- "hexcasting.action.hexsky:force_variant": "Helmsman's Push",
- "hexsky.page.navimancy.applied.force_variant": "Applies a $(thing)Variant Force$() to the ship in the specified direction",
- "hexcasting.action.hexsky:torque_variant": "Helmsman's Twist",
- "hexsky.page.navimancy.applied.torque_variant": "Applies a $(thing)Variant Torque$() to the ship in the specified direction",
- "hexcasting.action.hexsky:force_invariant": "Nature's Push",
- "hexsky.page.navimancy.applied.force_invariant": "Applies an $(thing)Invariant Force$() to the ship in the specified direction",
- "hexcasting.action.hexsky:torque_invariant": "Nature's Twist",
- "hexsky.page.navimancy.applied.torque_invariant": "Applies an $(thing)Invariant Torque$() to the ship in the specified direction",
- "hexcasting.action.hexsky:force_invariant_pos": "Nature's Yeet II",
- "hexsky.page.navimancy.applied.force_invariant_pos": "Applies an $(thing)Invariant Force$() to the ship in the specified direction with a specified offset from the $(l:patterns/basic_navimancy#hexsky:ship_pos)Center of Mass$()",
- "hexcasting.action.hexsky:force_variant_pos": "Helmsman's Yeet II",
- "hexsky.page.navimancy.applied.force_variant_pos": "Applies an $(thing)Variant Force$() to the ship in the specified direction with a specified offset from the $(l:patterns/basic_navimancy#hexsky:ship_pos)Center of Mass$()",
- "hexcasting.action.hexsky:ship_scaling": "Nature's Amusement",
- "hexsky.page.navimancy.applied.ship_scaling": "Alters the scale of a ship."
-}
diff --git a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/packer-policy.json b/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/packer-policy.json
deleted file mode 100644
index 96b9756d44b9..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexsky/hexsky/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/modrinth-hexsky/hexsky"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/README.md b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/README.md
deleted file mode 100644
index 3d3dcb1c2a8f..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/modrinth-hextweaks/hextweaks)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
deleted file mode 100644
index 59e44b42213d..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "hexcasting.action.hextweaks:grand_spell": "Unknown Grand Spell",
- "hexcasting.action.hextweaks:infusion": "Infuse Will",
- "hextweaks.page.infusion.1": "Takes a pattern and makes it unique to me by injecting patterns that I cannot draw by hand$(br)also seems to put more power into certain spells",
-
- "hextweaks.action.lackwill": "The action appears to work but lacks a ",
- "hextweaks.action.lackwill.will": "Will",
-
- "hextweaks.handler.grand": "Grand Spell",
-
- "death.attack.hextweaks.death.sus": "%s was called sus",
-
- "hextweaks.entry.interop.cc": "Computercraft",
- "hextweaks.page.interop.cc.1": "Thanks to my extensive research I have discovered that I can give the turtles and pocket computers a Mindsplice staff to have them perform menial task in my place",
- "hextweaks.page.interop.cc.2": "there also appears to be a new event when a staff is equipped $(o)reveal() which just has a string sent via patterns like reveal.$(br)and $(o)mishap) that contains the mishap's class,the pattern's name, and the hex pattern as string",
- "hextweaks.page.interop.cc.3": "Turtles cast as no one and have normal ambit. pocket computers cast as the player holding them. also having full ambit",
-
- "hextweaks.category.grand_spells.desc": "It appears that there is another layer of spells. I must infuse my will inorder to find them. I will document what I find out about them here",
- "hextweaks.category.grand_spells": "Grand Spells",
-
- "hextweaks.category.grand_spells.mindflay_rituals": "Mass Mindflay Rituals",
- "hextweaks.category.grand_spells.mindflay_rituals.desc": "Here I have compiled every rituals known to me.$(br)\"On The Bulk Flaying Of Minds\"$(br)$(br)Seems to operate on a \"Point\" system. with each villager being worth double the previous",
-
- "hextweaks.entry.patterns.grand.fireball": "Fireball",
- "hextweaks.page.patterns.grand.fireball.1": "It is fireball but with double the maximum power",
-
- "hextweaks.entry.patterns.grand.explode": "Explode",
- "hextweaks.page.patterns.grand.explode.1": "It is explosion but with double the maximum power",
-
- "hextweaks.entry.patterns.grand.mindflay": "Grand Mindflay",
- "hextweaks.page.patterns.grand.mindflay.1": "As it's parent would have you believe it takes the will of mobs and puts them in something else.$(br) this version acts in bulk taking a $(br)[entity], vec3|entity -> $(br)and performing various rituals",
-
- "hextweaks.entry.rituals.slipways": "Create and Collapse Slipways",
- "hextweaks.page.rituals.slipways.1": "Create slipway.$(br)[villager (80 points)],wisp -> $(br)takes some villagers and turns the wisp into a slipway",
- "hextweaks.page.rituals.slipways.2": "Collapse slipway.$(br)[villager (16 points)],pos -> $(br)takes some villagers and collapses the slipway into 10-20 wandering wisp",
-
- "hextweaks.entry.rituals.titration": "Titration Time Skip",
- "hextweaks.page.rituals.titration.1": "$(br)[villager + witch (8 points per witch)],pos -> $(br)takes some villager and witches and tries to skip 12 hours for each witch sacrificed",
-
- "hextweaks.entry.rituals.restock": "Restock Trades",
- "hextweaks.page.rituals.restock.1": "[Villager (1 point per trade)],Villager$(br)Restocks all of the targeted villagers trades.$(br)Consumes 1 point for each trade offered by the target villager",
-
- "hextweaks.entry.rituals.reset": "Reset Chunk",
- "hextweaks.page.rituals.reset.1": "[Mason (128 points)], Position ->$(br)Starts a ritual to reset a chunk. it takes 30 minutes total (20 stages of 1-minute and 10-minute countdown)$(br)consumes $(o)98304$() quenched shards per stage. The ritual will not start if any entity aside from Mason villagers is present in the input list",
-
- "hextweaks.entry.hextweaks_utility": "Hextweaks Utility",
- "hexcasting.action.hextweaks:page/right": "Progress Gambit",
- "hexcasting.action.hextweaks:page/left": "Regress Gambit",
- "hextweaks.page.hextweaks_utility.page/right": "Turns the spellbook that your are holding one page to the right",
- "hextweaks.page.hextweaks_utility.page/left": "Turns the spellbook that your are holding one page to the left",
-
- "hexcasting.action.hextweaks:while": "Heket's Gambit",
- "hextweaks.page.hextweaks_utility.while": "Removes a pattern list from the stack. Examines (but does not remove) the iota beneath it, and evaluates the pattern list if and only if $(l:patterns/logic#hexcasting:bool_coerce)Augur's Purification$() would respond to that iota with True. Examination and evaluation repeats until the iota would no longer create truth.",
-
- "hextweaks.entry.hextweaks_pe": "Hextweaks Post Enlightenment",
-
- "hexcasting.action.hextweaks:wave": "Wave Reflection",
- "hextweaks.page.hextweaks_pe.wave": "Returns the posistion of the $(item)Wave$() of media passing through a $(l:greatwork/impetus)Spell Circle$()",
-
- "hexcasting.action.hextweaks:normal": "Normals reflection",
- "hextweaks.page.hextweaks_pe.normal": "Returns the $(item)normal$() of the $(item)slate$() the $(item)Wave$() is on in the $(l:greatwork/impetus)Spell Circle$()",
-
- "hextweaks.entity.sbe": "Ritual Beacon",
- "hextweaks.ritual.reset": "Ritual of Resetting",
- "hextweaks.page.hextweaks_utility.sbe": "Gets all Active ritual entities within the specified range$(br)$(br)HexTweaks also makes a mixin so Compass Prfn's no longer do a ambit check"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/packer-policy.json b/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/packer-policy.json
deleted file mode 100644
index 4f3845f6a020..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/modrinth-hextweaks/hextweaks"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexsky/hexsky/README.md b/projects/1.20/assets/modrinth-hexsky/hexsky/README.md
deleted file mode 100644
index efe359d30069..000000000000
--- a/projects/1.20/assets/modrinth-hexsky/hexsky/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/modrinth-hexsky/hexsky)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/modrinth-hexsky/hexsky)
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexsky/hexsky/lang/en_us.json b/projects/1.20/assets/modrinth-hexsky/hexsky/lang/en_us.json
deleted file mode 100644
index d7974bf73b76..000000000000
--- a/projects/1.20/assets/modrinth-hexsky/hexsky/lang/en_us.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "hexsky.iota.ship": "Ship: \"%s\"",
- "hexsky.mishap.invalid": "Ship is Invalid spell because: %s",
- "hexsky.mishap.invalid.reason.null": "Ship does not exist!",
-
- "hexsky.entry.navimancy": "Ship Navimancy",
- "hexsky.page.navimancy": "While various biological, mechanical, or otherwise media-infused creations are able to break from the environment, they are either physically restrained or unable to host solid construction. With the helping hand of the Naval Corps, I have devised methods of assembling and controlling portions of the world as rigid, separated objects.",
- "hexsky.page.navimancy.terms": "These objects can move untethered, and allow for an enormous range of invention. $(li)$(thing)Ships$() are freely-moving objects which have separated from the world.$(li)$(thing)Force$() is an $(l:patterns/spells/basic#hexcasting:add_motion)impulse$() in a specific direction.$(li)$(thing)Torque$() is akin to Force, but concerns rotation exclusively.$(li)$(thing)Variant$() forces are based on the ship's axes.$(li)$(thing)Invariant$() forces are applied based on the world's.$()",
-
- "hexsky.entry.complexhex": "Complex Navimancy",
- "hexsky.page.complexhex.entry": "In the course of my research, I have found simpler representations of rotation inadequate. As such, I developed patterns that allow for the use of more useful representations of rotation. These patterns are for applying such representations to ships.",
- "hexcasting.action.hexsky:ship_rot_quat": "Bearings Purification",
- "hexsky.page.complexhex.ship_rot_quat": "Returns a ship's rotation as a $(thing)Quaternion$().",
- "hexcasting.action.hexsky:ship_rot_quat_set": "Bearings Distillation",
- "hexsky.page.complexhex.ship_rot_quat_set": "Sets a ship's rotation to the provided $(thing)Quaternion$(). The ship must not be cloaked, and the $(thing)Quaternion must be valid.",
-
- "hexsky.entry.hexal": "Wisp Navimancy",
- "hexsky.page.hexal.wisp.entry": "Ships are often difficult for simpler beings to comprehend on their own, so I created these patterns to direct wisps between them.",
- "hexcasting.action.hexsky:embark": "Embark",
- "hexsky.page.hexal.wisp.embark": "Attaches the wisp to the ship. It must be near. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
- "hexcasting.action.hexsky:disembark": "Disembark",
- "hexsky.page.hexal.wisp.disembark": "Detaches the wisp from a ship. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
-
- "hexsky.entry.moreiotas": "More Navimancy",
- "hexsky.page.moreiotas.entry": "Developments in manipulating information justify appropriate ship-related patterns.",
- "hexcasting.action.hexsky:ship_slug_get": "Boatwright's Prfn.",
- "hexsky.page.moreiotas.ship_slug_get": "Returns the name of a ship.",
- "hexcasting.action.hexsky:ship_slug_set": "Boatwright's Dstl.",
- "hexsky.page.moreiotas.ship_slug_set": "Sets the name of a ship. The ship must be uncloaked.",
- "hexcasting.action.hexsky:world_to_ship_matrix": "Windward Purification",
- "hexsky.page.moreiotas.world_to_ship_matrix": "Returns the $(thing)World-to-Ship$() transform matrix of the targeted ship",
- "hexcasting.action.hexsky:ship_to_world_matrix": "Leeward Purification",
- "hexsky.page.moreiotas.ship_to_world_matrix": "Returns the $(thing)Ship-to-World$() transform matrix of the targeted ship",
-
- "hexsky.entry.navimancy.basic": "Basic Navimancy",
- "hexcasting.action.hexsky:cloak": "Cloaking Purification",
- "hexsky.page.navimancy.basic.cloak": "Toggles and returns the state of a ship's cloak. This pattern acts as security for a ship, obscuring new references from being obtained. Exercise caution.",
- "hexcasting.action.hexsky:p2s": "Deckhand's Purification",
- "hexsky.page.navimancy.basic.p2s": "Takes a position and returns the ship that it corresponds to. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
- "hexcasting.action.hexsky:ship_pos": "Ship Compass Prfn.",
- "hexsky.page.navimancy.basic.ship_pos": "Analogous to $(l:patterns/basics#hexcasting:entity_pos/eye)Compass Purification$(), but instead returns the position of a ship's Center of Mass.",
- "hexcasting.action.hexsky:ship_rot": "Heading Purification",
- "hexsky.page.navimancy.basic.ship_rot": "Analogous to $(l:patterns/basics#hexcasting:get_entity_look)Alidade's Purification$(), but instead gets the ship's forward direction",
- "hexcasting.action.hexsky:ship_raycast": "Crow's Distillation",
- "hexsky.page.navimancy.basic.ship_raycast": "Analogous to $(l:patterns/basics#hexcasting:raycast)Archer's Distillation$(), but instead returns a ship. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
- "hexcasting.action.hexsky:zone_ships": "Zone Dstl.: Ship",
- "hexsky.page.navimancy.basic.zone_ships": "Analogous to $(l:patterns/entities#hexcasting:zone_entity)Zone Distillation$(), but instead returns a list of ships. Blocked by $(l:patterns/basic_navimancy#hexsky:cloak)Cloak$().",
- "hexcasting.action.hexsky:ship_weight": "Tonnage Purification",
- "hexsky.page.navimancy.basic.ship_weight": "Takes a ship and returns its total mass.$(br)Forces applied by Hexes are to be multiplied by this number.",
- "hexcasting.action.hexsky:ship_scale": "Magnification Prfn.",
- "hexsky.page.navimancy.basic.ship_scale": "Takes a ship and returns its current scale.",
- "hexcasting.action.hexsky:shiptoworldpos": "Worldly Purification",
- "hexsky.page.navimancy.basic.shiptoworldpos": "Takes a position originating from a ship and transforms it into its worldly equivalent.",
- "hexcasting.action.hexsky:block_mass": "Deadweight Purification",
- "hexsky.page.navimancy.basic.block_mass": "Takes a position of a Block and adds its current mass to the stack.",
-
-
-
- "hexsky.entry.navimancy.applied": "Applied Navimancy",
- "hexcasting.action.hexsky:assemble": "Assemble",
- "hexsky.page.navimancy.applied.assemble": "Takes a list of vectors corresponding to static blocks in the world, and transforms them into a separated free-floating object. Blocks outside of my ambit are ignored.",
- "hexcasting.action.hexsky:force_variant": "Helmsman's Push",
- "hexsky.page.navimancy.applied.force_variant": "Applies a $(thing)Variant Force$() to the ship in the specified direction",
- "hexcasting.action.hexsky:torque_variant": "Helmsman's Twist",
- "hexsky.page.navimancy.applied.torque_variant": "Applies a $(thing)Variant Torque$() to the ship in the specified direction",
- "hexcasting.action.hexsky:force_invariant": "Nature's Push",
- "hexsky.page.navimancy.applied.force_invariant": "Applies an $(thing)Invariant Force$() to the ship in the specified direction",
- "hexcasting.action.hexsky:torque_invariant": "Nature's Twist",
- "hexsky.page.navimancy.applied.torque_invariant": "Applies an $(thing)Invariant Torque$() to the ship in the specified direction",
- "hexcasting.action.hexsky:force_invariant_pos": "Nature's Yeet II",
- "hexsky.page.navimancy.applied.force_invariant_pos": "Applies an $(thing)Invariant Force$() to the ship in the specified direction with a specified offset from the $(l:patterns/basic_navimancy#hexsky:ship_pos)Center of Mass$()",
- "hexcasting.action.hexsky:force_variant_pos": "Helmsman's Yeet II",
- "hexsky.page.navimancy.applied.force_variant_pos": "Applies an $(thing)Variant Force$() to the ship in the specified direction with a specified offset from the $(l:patterns/basic_navimancy#hexsky:ship_pos)Center of Mass$()",
- "hexcasting.action.hexsky:ship_scaling": "Nature's Amusement",
- "hexsky.page.navimancy.applied.ship_scaling": "Alters the scale of a ship."
-}
diff --git a/projects/1.20/assets/modrinth-hexsky/hexsky/lang/zh_cn.json b/projects/1.20/assets/modrinth-hexsky/hexsky/lang/zh_cn.json
deleted file mode 100644
index 7e9c0e8effbb..000000000000
--- a/projects/1.20/assets/modrinth-hexsky/hexsky/lang/zh_cn.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "hexsky.iota.ship": "船只:“%s”",
- "hexsky.mishap.invalid": "船只有关法术无效:%s",
- "hexsky.mishap.invalid.reason.null": "船只不存在!",
-
- "hexsky.entry.navimancy": "船只航行术",
- "hexsky.page.navimancy": "虽然许多生物性、机械性、媒质融注性构造都能从环境中独立出来,但它们仍受到诸多物理限制,或是无法具有物理实体、无法搭载其他构造。在海军军团的帮助下,我成功地将世界的一部分组装为了刚性的独立物体,且能控制它们。",
- "hexsky.page.navimancy.terms": "这些物体的移动不需外物协助,因此具有近乎无限的可塑性。$(li)$(thing)船只$()是独立于世界的、能自由移动的物体。$(li)$(thing)力$()是朝向特定方向的$(l:patterns/spells/basic#hexcasting:add_motion)驱动$()。$(li)$(thing)力矩$()与力类似,但只涉及旋转。$(li)$(thing)相对$()力以船只的轴为参照。$(li)$(thing)绝对$()力则以世界的轴为参照。$()",
-
- "hexsky.entry.complexhex": "ComplexHex 航行术",
- "hexsky.page.complexhex.entry": "我在的研究过程中发现简单的旋转表示方式难以堪用。因此,我开发了适配高效旋转表示方式的图案。它们能够将这些表示方式作用于船只。",
- "hexcasting.action.hexsky:ship_rot_quat": "轴承之纯化",
- "hexsky.page.complexhex.ship_rot_quat": "将船只的朝向返回为$(thing)四元数$()。",
- "hexcasting.action.hexsky:ship_rot_quat_set": "轴承之馏化",
- "hexsky.page.complexhex.ship_rot_quat_set": "将船只的朝向设定为所给$(thing)四元数$()。船只的遮篷需被禁用,且$(thing)四元数$()必须有效。",
-
- "hexsky.entry.hexal": "咒灵航行术",
- "hexsky.page.hexal.wisp.entry": "构造更简单的事物常常难以独自理解船只的存在,因此我制造了这些图案,用以在船只处引导咒灵。",
- "hexcasting.action.hexsky:embark": "登船",
- "hexsky.page.hexal.wisp.embark": "将咒灵连接至船只。咒灵和船只必须足够靠近。此操作必须由咒灵执行,尝试用法杖执行会招致可怖的事故。",
- "hexcasting.action.hexsky:disembark": "下船",
- "hexsky.page.hexal.wisp.disembark": "解开咒灵和船只的连接。此操作必须由咒灵执行,尝试用法杖执行会招致可怖的事故。",
-
- "hexsky.entry.moreiotas": "MoreIotas 航行术",
- "hexsky.page.moreiotas.entry": "在信息处理方面上的发展带来的是配套的船只图案。",
- "hexcasting.action.hexsky:ship_slug_get": "造船工之纯化",
- "hexsky.page.moreiotas.ship_slug_get": "返回船只的名称。",
- "hexcasting.action.hexsky:ship_slug_set": "造船工之馏化",
- "hexsky.page.moreiotas.ship_slug_set": "设置船只的名称。船只的遮篷需被禁用。",
- "hexcasting.action.hexsky:world_to_ship_matrix": "迎风之纯化",
- "hexsky.page.moreiotas.world_to_ship_matrix": "返回目标船只的$(thing)世界至船只$()变换矩阵。",
- "hexcasting.action.hexsky:ship_to_world_matrix": "背风之纯化",
- "hexsky.page.moreiotas.ship_to_world_matrix": "返回目标船只的$(thing)船只至世界$()变换矩阵。",
-
- "hexsky.entry.navimancy.basic": "基础航行术",
- "hexcasting.action.hexsky:cloak": "遮篷之纯化",
- "hexsky.page.navimancy.basic.cloak": "切换并返回船只的遮篷状态。此图案可用作船只的安全措施,能阻止外部对象获取代表它的 iota。使用需谨慎。",
- "hexcasting.action.hexsky:p2s": "甲板水手之纯化",
- "hexsky.page.navimancy.basic.p2s": "接受一个位置,返回对应的船只。会被$(l:patterns/basic_navimancy#hexsky:cloak)遮篷$()阻挡。",
- "hexcasting.action.hexsky:ship_pos": "船用罗经之纯化",
- "hexsky.page.navimancy.basic.ship_pos": "与$(l:patterns/basics#hexcasting:entity_pos/eye)指南针之纯化$()类似,但会返回船只的质心位置。",
- "hexcasting.action.hexsky:ship_rot": "航向之纯化",
- "hexsky.page.navimancy.basic.ship_rot": "与$(l:patterns/basics#hexcasting:get_entity_look)照准仪之纯化$()类似,但会获取船只的前方方向。",
- "hexcasting.action.hexsky:ship_raycast": "瞭望鸦之馏化",
- "hexsky.page.navimancy.basic.ship_raycast": "与$(l:patterns/basics#hexcasting:raycast)弓箭手之馏化$()类似,但会返回船只 iota。会被$(l:patterns/basic_navimancy#hexsky:cloak)遮篷$()阻挡。",
- "hexcasting.action.hexsky:zone_ships": "区域之馏化:船只",
- "hexsky.page.navimancy.basic.zone_ships": "与$(l:patterns/entities#hexcasting:zone_entity)区域之馏化$()类似,但会返回船只 iota 列表。会被$(l:patterns/basic_navimancy#hexsky:cloak)遮篷$()阻挡。",
- "hexcasting.action.hexsky:ship_weight": "吨位之纯化",
- "hexsky.page.navimancy.basic.ship_weight": "接受一个船只,返回其总质量。$(br)咒术产生的力会乘以此数。",
- "hexcasting.action.hexsky:ship_scale": "放大之纯化",
- "hexsky.page.navimancy.basic.ship_scale": "接受一个船只,返回其当前缩放倍率。",
- "hexcasting.action.hexsky:shiptoworldpos": "世间之纯化",
- "hexsky.page.navimancy.basic.shiptoworldpos": "接受一个相对船只的位置,并将其转换为世界位置。",
- "hexcasting.action.hexsky:block_mass": "载重之纯化",
- "hexsky.page.navimancy.basic.block_mass": "接受一个方块位置,返回其当前质量。",
-
-
-
- "hexsky.entry.navimancy.applied": "应用航行术",
- "hexcasting.action.hexsky:assemble": "组装",
- "hexsky.page.navimancy.applied.assemble": "接受对应世界中静态方块的位置向量列表,将其组装为可自由移动的独立物体。超出我影响范围的方块会被忽略。",
- "hexcasting.action.hexsky:force_variant": "舵手之推动",
- "hexsky.page.navimancy.applied.force_variant": "沿给定方向对船只施加一个$(thing)相对力$()。",
- "hexcasting.action.hexsky:torque_variant": "舵手之扭转",
- "hexsky.page.navimancy.applied.torque_variant": "沿给定方向对船只施加一个$(thing)相对力矩$()。",
- "hexcasting.action.hexsky:force_invariant": "自然之推动",
- "hexsky.page.navimancy.applied.force_invariant": "沿给定方向对船只施加一个$(thing)绝对力$()。",
- "hexcasting.action.hexsky:torque_invariant": "自然之扭转",
- "hexsky.page.navimancy.applied.torque_invariant": "沿给定方向对船只施加一个$(thing)绝对力矩$()。",
- "hexcasting.action.hexsky:force_invariant_pos": "自然之掷抛,第二型",
- "hexsky.page.navimancy.applied.force_invariant_pos": "沿给定方向对船只施加一个$(thing)绝对力$(),根据相对$(l:patterns/basic_navimancy#hexsky:ship_pos)质心$()位置的偏移向量移动作用点。",
- "hexcasting.action.hexsky:force_variant_pos": "舵手之掷抛,第二型",
- "hexsky.page.navimancy.applied.force_variant_pos": "沿给定方向对船只施加一个$(thing)相对力$(),根据相对$(l:patterns/basic_navimancy#hexsky:ship_pos)质心$()位置的偏移向量移动作用点。",
- "hexcasting.action.hexsky:ship_scaling": "自然之欢愉",
- "hexsky.page.navimancy.applied.ship_scaling": "更改船只的缩放倍率。"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hextweaks/hextweaks/README.md b/projects/1.20/assets/modrinth-hextweaks/hextweaks/README.md
deleted file mode 100644
index 20d46fff1e9e..000000000000
--- a/projects/1.20/assets/modrinth-hextweaks/hextweaks/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/modrinth-hextweaks/hextweaks)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/modrinth-hextweaks/hextweaks)
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/en_us.json b/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
deleted file mode 100644
index 59e44b42213d..000000000000
--- a/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/en_us.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "hexcasting.action.hextweaks:grand_spell": "Unknown Grand Spell",
- "hexcasting.action.hextweaks:infusion": "Infuse Will",
- "hextweaks.page.infusion.1": "Takes a pattern and makes it unique to me by injecting patterns that I cannot draw by hand$(br)also seems to put more power into certain spells",
-
- "hextweaks.action.lackwill": "The action appears to work but lacks a ",
- "hextweaks.action.lackwill.will": "Will",
-
- "hextweaks.handler.grand": "Grand Spell",
-
- "death.attack.hextweaks.death.sus": "%s was called sus",
-
- "hextweaks.entry.interop.cc": "Computercraft",
- "hextweaks.page.interop.cc.1": "Thanks to my extensive research I have discovered that I can give the turtles and pocket computers a Mindsplice staff to have them perform menial task in my place",
- "hextweaks.page.interop.cc.2": "there also appears to be a new event when a staff is equipped $(o)reveal() which just has a string sent via patterns like reveal.$(br)and $(o)mishap) that contains the mishap's class,the pattern's name, and the hex pattern as string",
- "hextweaks.page.interop.cc.3": "Turtles cast as no one and have normal ambit. pocket computers cast as the player holding them. also having full ambit",
-
- "hextweaks.category.grand_spells.desc": "It appears that there is another layer of spells. I must infuse my will inorder to find them. I will document what I find out about them here",
- "hextweaks.category.grand_spells": "Grand Spells",
-
- "hextweaks.category.grand_spells.mindflay_rituals": "Mass Mindflay Rituals",
- "hextweaks.category.grand_spells.mindflay_rituals.desc": "Here I have compiled every rituals known to me.$(br)\"On The Bulk Flaying Of Minds\"$(br)$(br)Seems to operate on a \"Point\" system. with each villager being worth double the previous",
-
- "hextweaks.entry.patterns.grand.fireball": "Fireball",
- "hextweaks.page.patterns.grand.fireball.1": "It is fireball but with double the maximum power",
-
- "hextweaks.entry.patterns.grand.explode": "Explode",
- "hextweaks.page.patterns.grand.explode.1": "It is explosion but with double the maximum power",
-
- "hextweaks.entry.patterns.grand.mindflay": "Grand Mindflay",
- "hextweaks.page.patterns.grand.mindflay.1": "As it's parent would have you believe it takes the will of mobs and puts them in something else.$(br) this version acts in bulk taking a $(br)[entity], vec3|entity -> $(br)and performing various rituals",
-
- "hextweaks.entry.rituals.slipways": "Create and Collapse Slipways",
- "hextweaks.page.rituals.slipways.1": "Create slipway.$(br)[villager (80 points)],wisp -> $(br)takes some villagers and turns the wisp into a slipway",
- "hextweaks.page.rituals.slipways.2": "Collapse slipway.$(br)[villager (16 points)],pos -> $(br)takes some villagers and collapses the slipway into 10-20 wandering wisp",
-
- "hextweaks.entry.rituals.titration": "Titration Time Skip",
- "hextweaks.page.rituals.titration.1": "$(br)[villager + witch (8 points per witch)],pos -> $(br)takes some villager and witches and tries to skip 12 hours for each witch sacrificed",
-
- "hextweaks.entry.rituals.restock": "Restock Trades",
- "hextweaks.page.rituals.restock.1": "[Villager (1 point per trade)],Villager$(br)Restocks all of the targeted villagers trades.$(br)Consumes 1 point for each trade offered by the target villager",
-
- "hextweaks.entry.rituals.reset": "Reset Chunk",
- "hextweaks.page.rituals.reset.1": "[Mason (128 points)], Position ->$(br)Starts a ritual to reset a chunk. it takes 30 minutes total (20 stages of 1-minute and 10-minute countdown)$(br)consumes $(o)98304$() quenched shards per stage. The ritual will not start if any entity aside from Mason villagers is present in the input list",
-
- "hextweaks.entry.hextweaks_utility": "Hextweaks Utility",
- "hexcasting.action.hextweaks:page/right": "Progress Gambit",
- "hexcasting.action.hextweaks:page/left": "Regress Gambit",
- "hextweaks.page.hextweaks_utility.page/right": "Turns the spellbook that your are holding one page to the right",
- "hextweaks.page.hextweaks_utility.page/left": "Turns the spellbook that your are holding one page to the left",
-
- "hexcasting.action.hextweaks:while": "Heket's Gambit",
- "hextweaks.page.hextweaks_utility.while": "Removes a pattern list from the stack. Examines (but does not remove) the iota beneath it, and evaluates the pattern list if and only if $(l:patterns/logic#hexcasting:bool_coerce)Augur's Purification$() would respond to that iota with True. Examination and evaluation repeats until the iota would no longer create truth.",
-
- "hextweaks.entry.hextweaks_pe": "Hextweaks Post Enlightenment",
-
- "hexcasting.action.hextweaks:wave": "Wave Reflection",
- "hextweaks.page.hextweaks_pe.wave": "Returns the posistion of the $(item)Wave$() of media passing through a $(l:greatwork/impetus)Spell Circle$()",
-
- "hexcasting.action.hextweaks:normal": "Normals reflection",
- "hextweaks.page.hextweaks_pe.normal": "Returns the $(item)normal$() of the $(item)slate$() the $(item)Wave$() is on in the $(l:greatwork/impetus)Spell Circle$()",
-
- "hextweaks.entity.sbe": "Ritual Beacon",
- "hextweaks.ritual.reset": "Ritual of Resetting",
- "hextweaks.page.hextweaks_utility.sbe": "Gets all Active ritual entities within the specified range$(br)$(br)HexTweaks also makes a mixin so Compass Prfn's no longer do a ambit check"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json b/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
deleted file mode 100644
index 24fe0bfe678f..000000000000
--- a/projects/1.20/assets/modrinth-hextweaks/hextweaks/lang/zh_cn.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "hexcasting.action.hextweaks:grand_spell": "未知卓伟法术",
- "hexcasting.action.hextweaks:infusion": "融注意志",
- "hextweaks.page.infusion.1": "接受一个图案,并以此生成一个无法手动绘制的、因人而异的图案。$(br)似乎会给予某些法术更多能量。",
-
- "hextweaks.action.lackwill": "此操作似乎有用,但缺少了",
- "hextweaks.action.lackwill.will": "的意志",
-
- "hextweaks.handler.grand": "卓伟法术",
-
- "death.attack.hextweaks.death.sus": "%s被认为相当可疑",
-
- "hextweaks.entry.interop.cc": "ComputerCraft",
- "hextweaks.page.interop.cc.1": "我进行了大量研究,最终发现我可以给海龟和掌上电脑配备一杆制念法杖,以让它们替我执行些琐事。",
- "hextweaks.page.interop.cc.2": "它们持有法杖时还有一些新事件(event)可用。$(o)reveal$() 会像揭示那样通过图案返回字符串。$(br)$(o)mishap$() 则会包含事故的类名、图案的名称,以及字符串形式的咒术图案。",
- "hextweaks.page.interop.cc.3": "海龟的施法不具有施法者,影响范围正常。掌上电脑施法的施法者为手持它的玩家,影响范围同样正常。",
-
- "hextweaks.category.grand_spells.desc": "似乎法术还有另一个层次,必须向其中融注意志才能找到它们。我会将我找到的法术记录在此。",
- "hextweaks.category.grand_spells": "卓伟法术",
-
- "hextweaks.category.grand_spells.mindflay_rituals": "群体剥离意识仪式",
- "hextweaks.category.grand_spells.mindflay_rituals.desc": "这里是我所知的所有仪式。$(br)“关于意识的群体剥离”$(br)$(br)这些仪式似乎依照某种“点数”系统运作,村民熟练度每增一级,点数贡献就会翻倍。",
-
- "hextweaks.entry.patterns.grand.fireball": "火球",
- "hextweaks.page.patterns.grand.fireball.1": "与火球类似,但强度上限变为了 2 倍。",
-
- "hextweaks.entry.patterns.grand.explode": "爆炸",
- "hextweaks.page.patterns.grand.explode.1": "与爆炸类似,但强度上限变为了 2 倍。",
-
- "hextweaks.entry.patterns.grand.mindflay": "卓伟剥离意识",
- "hextweaks.page.patterns.grand.mindflay.1": "和前人讲述的一样,此法术会剥离生物的意识并存入其他事物。$(br)这一版本的法术能够批量剥离,接受$(br)[entity], vec3|entity -> $(br)而后以此执行各种仪式",
-
- "hextweaks.entry.rituals.slipways": "创造与坍缩质道",
- "hextweaks.page.rituals.slipways.1": "创造一个质道。$(br)[村民(80 点)], 咒灵 -> $(br)接受一些村民,并将目标咒灵变为质道。",
- "hextweaks.page.rituals.slipways.2": "坍缩一个质道。$(br)[村民(16 点)], pos -> $(br)接受一些村民,并将质道坍缩为 10 到 20 个游走咒灵。",
-
- "hextweaks.entry.rituals.titration": "定量时间跳跃",
- "hextweaks.page.rituals.titration.1": "$(br)[村民 + 女巫(每个 8 点)], pos -> $(br)接受一些村民和女巫,每献祭一个女巫,即尝试向前跳过 12 小时的时间。",
-
- "hextweaks.entry.rituals.restock": "交易补货",
- "hextweaks.page.rituals.restock.1": "[村民(每项交易 1 点)], 村民 ->$(br)为目标村民的所有交易补货。$(br)目标村民每有 1 项交易,即消耗 1 点点数。",
-
- "hextweaks.entry.rituals.reset": "重置区块",
- "hextweaks.page.rituals.reset.1": "[石匠(128 点)], pos ->$(br)启动重置区块的仪式。此仪式共需花费 30 分钟,分为 20 个 1 分钟阶段和 10 分钟冷却。$(br)每个阶段消耗 $(o)98304$() 个淬灵晶。送入的列表中若存在不是石匠村民的实体,仪式便不会启动。",
-
- "hextweaks.entry.hextweaks_utility": "咒法调整:实用",
- "hexcasting.action.hextweaks:page/right": "页进之策略",
- "hexcasting.action.hextweaks:page/left": "页退之策略",
- "hextweaks.page.hextweaks_utility.page/right": "将我所持的法术书向右翻一页。",
- "hextweaks.page.hextweaks_utility.page/left": "将我所持的法术书向左翻一页。",
-
- "hexcasting.action.hextweaks:while": "海奎特之策略",
- "hextweaks.page.hextweaks_utility.while": "移除栈顶的图案列表。检视而不移除其下方的 iota,并运行被移除的图案列表,当且仅当$(l:patterns/logic#hexcasting:bool_coerce)占卜师之纯化$()会对被检视的 iota 返回 True。检视和运行会一直持续,直至被检视的 iota 不再返回 True。",
-
- "hextweaks.entry.hextweaks_pe": "咒法调整:启迪之后",
-
- "hexcasting.action.hextweaks:wave": "波之精思",
- "hextweaks.page.hextweaks_pe.wave": "返回$(l:greatwork/impetus)法术环$()中$(item)媒质波$()的未知。",
-
- "hexcasting.action.hextweaks:normal": "法向之精思",
- "hextweaks.page.hextweaks_pe.normal": "返回$(l:greatwork/impetus)法术环$()中$(item)媒质波$()所处$(item)石板$()的$(item)法向量$()。",
-
- "hextweaks.entity.sbe": "仪式信标",
- "hextweaks.ritual.reset": "重置仪式",
- "hextweaks.page.hextweaks_utility.sbe": "获取范围内所有已启动的仪式实体。$(br)$(br)咒法拓展还通过 Mixin 让指南针之纯化不再检查影响范围。"
-}
\ No newline at end of file
From 139aecc3fb9805cbb9d1801983240c7e61caa932 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:00:01 +0800
Subject: [PATCH 63/78] =?UTF-8?q?HextendedStaves=20MovesTheMind=20ComplexH?=
=?UTF-8?q?ex=20Hexportation=20transfer=EF=BC=9A#5406?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../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, 2 insertions(+), 688 deletions(-)
delete mode 100644 projects/1.19/assets/hextended-staves/lanishextendedstaves/README.md
delete mode 100644 projects/1.20-fabric/assets/hextended-staves/hextended/README.md
delete mode 100644 projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/zh_cn.json
delete mode 100644 projects/1.20/assets/hextended-staves/hextended/README.md
delete mode 100644 projects/1.20/assets/hextended-staves/hextended/lang/en_us.json
delete 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
deleted file mode 100644
index 531f3c5d70c8..000000000000
--- a/projects/1.19/assets/hextended-staves/lanishextendedstaves/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/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 d1a016d91ac3..86b45e04d5b3 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. Though, of course, you cannot have your gleaming purple cake and eat it too, not more before the rapacious hands of Nature!",
+ "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.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 5638c0a4f8b1..1cab5c726b89 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
deleted file mode 100644
index 531f3c5d70c8..000000000000
--- a/projects/1.20-fabric/assets/hextended-staves/hextended/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/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
deleted file mode 100644
index e8d5d98f75a3..000000000000
--- a/projects/1.20-fabric/assets/hextended-staves/hextended/lang/en_us.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "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
deleted file mode 100644
index 61f3942c17a9..000000000000
--- a/projects/1.20-fabric/assets/hextended-staves/hextended/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "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
deleted file mode 100644
index e2db9e9f9e92..000000000000
--- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/en_us.json
+++ /dev/null
@@ -1,126 +0,0 @@
-{
- "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
deleted file mode 100644
index b48d5a9aa191..000000000000
--- a/projects/1.20-fabric/assets/modrinth-complex-hex/complexhex/lang/zh_cn.json
+++ /dev/null
@@ -1,126 +0,0 @@
-{
- "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
deleted file mode 100644
index e51dfd32fa34..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/en_us.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "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
deleted file mode 100644
index e8ef134489af..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexportation/hexportation/lang/zh_cn.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "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
deleted file mode 100644
index 5c2686463820..000000000000
--- a/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/en_us.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "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
deleted file mode 100644
index 4105e92c265f..000000000000
--- a/projects/1.20-fabric/assets/moves-the-mind/movesthemind/lang/zh_cn.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "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
deleted file mode 100644
index bb3b15a18ffd..000000000000
--- a/projects/1.20/assets/hextended-staves/hextended/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-### 总概
-
-```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
deleted file mode 100644
index e8d5d98f75a3..000000000000
--- a/projects/1.20/assets/hextended-staves/hextended/lang/en_us.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "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
deleted file mode 100644
index 62ca4943e4f5..000000000000
--- a/projects/1.20/assets/hextended-staves/hextended/lang/zh_cn.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "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 da880a408edb50c8b54e136131186e81fd1d3c1b Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:06:19 +0800
Subject: [PATCH 64/78] CleanSlate delete
---
.../assets/1UNKNOWN/cleanslate/lang/en_us.json | 14 --------------
.../assets/1UNKNOWN/cleanslate/lang/zh_cn.json | 14 --------------
2 files changed, 28 deletions(-)
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/en_us.json
deleted file mode 100644
index aaee5faa3cf9..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/en_us.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "block.cleanslate.withered_slate": "Withered Slate",
- "block.cleanslate.flat_looking_impetus": "Flat Fletcher Impetus",
- "block.cleanslate.flat_redstone_impetus": "Flat Cleric Impetus",
- "block.cleanslate.flat_right_click_impetus": "Flat Toolsmith Impetus",
-
- "cleanslate.page.flat.title": "Flat Circles",
- "cleanslate.page.flat.0": "I find it odd how my $(l:greatwork/impetus)$(thing)Impeti$() jut out of my neat, flush circuit of $(l:items/slate)$(item)slates$(). This egregious anomaly $(o)can not$() be tolerated. By dropping an $(item)Anvil$() on top of an $(l:greatwork/impetus)$(thing)Impetus$(), I can flatten it to the thickness of a regular $(l:items/slate)$(item)Slate$(). It $(o)probably$() doesn't hurt the villager inside. I can discreetly fuel it by placing it over a $(thing)Dropper$() or $(thing)Dispenser$().",
- "cleanslate.page.flat.1": "I can also run my $(l:items/slate)$(item)Slates$() from the floor onto walls, onto the ceiling, and back down! I seem to be able to place multiple $(l:items/slate)$(item)Slates$() in one block to change the direction of flow as I please, although these \"multi-slates\" can not have any patterns on them. Should I need to run them over a ledge, I can place an $(l:greatwork/impetus)$(thing)Empty Impetus$() under them or make the wave flow straight into it in order to redirect the stream into another plane.",
-
- "cleanslate.page.withered_slates.title": "Withered Slates",
- "cleanslate.page.withered_slates.0": "$(l:greatwork/spellcircles)$(thing)Spell circles$() are unable to extend upwards past their $(item)$(l:items/slate)slates$() and while I can use $(l:greatwork/directrix)$(item)Directrices$() in order to redirect the wave upwards, that is often an eyesore. Rumors have it that a $(o)flower$() related to a $(thing)Beacon$() can help extend the ambit of $(l:greatwork/spellcircles)$(thing)circles$() upwards and downwards to essentially infinity after the wave passes over it.",
- "cleanslate.page.withered_slates.1": "$(o)Keep calm and stay inside the salt circle.$()"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
deleted file mode 100644
index 13ce43884dbd..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/cleanslate/lang/zh_cn.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "block.cleanslate.withered_slate": "凋零石板",
- "block.cleanslate.flat_looking_impetus": "平板型制箭师促动石",
- "block.cleanslate.flat_redstone_impetus": "平板型牧师促动石",
- "block.cleanslate.flat_right_click_impetus": "平板型工具匠促动石",
-
- "cleanslate.page.flat.title": "平板型法术环",
- "cleanslate.page.flat.0": "平整的$(l:items/slate)$(item)石板$()回路中总是会有$(l:greatwork/impetus)$(thing)促动石$()凸出来,真是相当引人不适。这种为人所不齿的差错绝$(o)不可$()容忍。让$(item)铁砧$()坠落到$(l:greatwork/impetus)$(thing)促动石$()上,就可把促动石拍到和一般的$(l:items/slate)$(item)石板$()一样扁。其中的村民$(o)大概$()不会受损。把此类促动石放到$(thing)漏斗$()或$(thing)发射器$()上即可为其充能。",
- "cleanslate.page.flat.1": "还可以直接把$(l:items/slate)$(item)石板$()从地板铺到墙上,再铺到天花板上,最后铺回来!同一格里也能放下多个$(l:items/slate)$(item)石板$();可借此随意改变媒质流的方向,不过这种“多重石板”上不可刻入图案。如果要让媒质流转过凸角,可以在石板下方放置$(l:greatwork/impetus)$(thing)空白促动石$(),也可让媒质流直接进入促动石。",
-
- "cleanslate.page.withered_slates.title": "凋零石板",
- "cleanslate.page.withered_slates.0": "$(l:greatwork/spellcircles)$(thing)法术环$()垂直方向上的作用范围无法超出其$(item)$(l:items/slate)石板$()的位置。虽然可以用$(l:greatwork/directrix)$(item)导向石$()把媒质流导向上方,但不太美观。有传言称,媒质流在经过某种与$(thing)信标$()有关的$(o)花$()后,$(l:greatwork/spellcircles)$(thing)法术环$()的影响范围即会向上方和下方扩展到无限远。",
- "cleanslate.page.withered_slates.1": "$(o)保持冷静,待在盐环里不要四处走动。$()"
-}
\ No newline at end of file
From 6c4474e63d399cfd0650892f46a9db8a733505fe Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:11:04 +0800
Subject: [PATCH 65/78] =?UTF-8?q?Hexical=20transfer=EF=BC=9A#5407?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../modrinth-hexical/hexical/lang/en_us.json | 679 ----------------
.../modrinth-hexical/hexical/lang/zh_cn.json | 679 ----------------
.../modrinth-hexical/hexical/lang/en_us.json | 730 ------------------
.../modrinth-hexical/hexical/lang/zh_cn.json | 730 ------------------
4 files changed, 2818 deletions(-)
delete mode 100644 projects/1.19/assets/modrinth-hexical/hexical/lang/en_us.json
delete mode 100644 projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
diff --git a/projects/1.19/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.19/assets/modrinth-hexical/hexical/lang/en_us.json
deleted file mode 100644
index 872ae011c8fb..000000000000
--- a/projects/1.19/assets/modrinth-hexical/hexical/lang/en_us.json
+++ /dev/null
@@ -1,679 +0,0 @@
-{
- "advancements.hexical.arch_lamp.title": "Daemon",
- "advancements.hexical.arch_lamp.description": "Acquire an archgenie lamp.",
-
- "advancements.hexical.reload_lamp.title": "Phenomenal Cosmic Powers!",
- "advancements.hexical.reload_lamp.description": "Reload the lamp.",
- "advancements.hexical.educate_genie.title": "New Order",
- "advancements.hexical.educate_genie.description": "Educate the genie with new instructions.",
- "advancements.hexical.lamp.title": "Diamond in the Rough",
- "advancements.hexical.lamp.description": "Acquire a genie lamp.",
- "advancements.hexical.augmented_reality.title": "Augmented Reality",
- "advancements.hexical.augmented_reality.description": "Conjure a speck.",
- "advancements.hexical.diy_conjuring.title": "DIY Conjuring!",
- "advancements.hexical.diy_conjuring.description": "Add a custom modifier to a mage block.",
- "advancements.hexical.conjure_hexxy.title": "Conjure Hexxy",
- "advancements.hexical.conjure_hexxy.description": "Give Hexxy a physical form in your world.",
- "advancements.hexical.hallucinate.title": "Only In My Head",
- "advancements.hexical.hallucinate.description": "Play a sound only you can hear!",
- "advancements.hexical.media_slurp.title": "Tripping",
- "advancements.hexical.media_slurp.description": "\"You sense that something is off.\"",
-
- "block.hexical.hex_candle": "Hex Candle",
- "block.hexical.mage_block": "Mage Block",
- "block.hexical.media_jar": "Media Jar",
- "death.attack.magic_missile": "%1$s was magically pierced by %2$s",
- "death.attack.magic_missile.item": "%1$s was magically pierced by %2$s using %3$s",
- "death.attack.spike": "%1$s was skewered by %2$s",
- "death.attack.spike.item": "%1$s was skewered by %2$s using %3$s",
- "entity.hexical.living_scroll": "Living Scroll",
- "entity.hexical.magic_missile": "Magic Missile",
- "entity.hexical.mesh": "Mesh",
- "entity.hexical.speck": "Speck",
- "entity.hexical.spike": "Amethyst Spike",
- "key.categories.hexical": "Hexical",
- "key.hexical.evoke": "Evoke",
- "key.hexical.telepathy": "Telepathy",
- "item.hexical.arch_lamp": "Archgenie Lamp",
- "item.hexical.conjured_compass": "Conjured Compass",
- "item.hexical.conjured_staff": "Conjured Staff",
- "item.hexical.grimoire": "Grimoire",
- "item.hexical.hexburst": "Hexburst",
- "item.hexical.hextito": "Hextito",
- "item.hexical.lamp": "Hand Genie Lamp",
- "item.hexical.gauntlet_staff": "Gauntlet Staff",
- "item.hexical.lightning_rod_staff": "Lightning Rod Staff",
- "item.hexical.living_scroll_small": "Small Living Scroll",
- "item.hexical.living_scroll_medium": "Medium Living Scroll",
- "item.hexical.living_scroll_large": "Large Living Scroll",
- "itemGroup.hexical.general": "Hexical",
- "subtitles.hexical.evoking_murmur": "Player chants",
- "subtitles.hexical.evoking_casts": "Player casts",
- "subtitles.hexical.lamp_activate": "Lamp activates",
- "subtitles.hexical.lamp_deactivate": "Lamp deactivates",
- "subtitles.hexical.sudden_realization": "Idea pops",
- "subtitles.hexical.player_slurp": "Player slurps",
- "subtitles.hexical.candle_flares": "Candle crackles",
- "subtitles.hexical.replenish_air": "Air appears",
- "tooltip.hexical.scroll_aged": "Aged",
- "tooltip.hexical.scroll_glow": "Glowing",
- "tooltip.hexical.scroll_vanished": "Vanished",
- "particle.minecraft.soul_7": "",
- "misc.hexical.media_vision": "",
-
- "hexical.autograph.header": "Autographed by:",
-
- "hexical.fortune.0": "It is certain.",
- "hexical.fortune.1": "It is decidedly so.",
- "hexical.fortune.2": "Without a doubt.",
- "hexical.fortune.3": "Yes definitely.",
- "hexical.fortune.4": "You may rely on it.",
- "hexical.fortune.5": "As I see it, yes.",
- "hexical.fortune.6": "Most likely.",
- "hexical.fortune.7": "Outlook good.",
- "hexical.fortune.8": "Yes.",
- "hexical.fortune.9": "Signs point to yes.",
- "hexical.fortune.10": "Reply hazy, try again.",
- "hexical.fortune.11": "Ask again later.",
- "hexical.fortune.12": "Better not tell you now.",
- "hexical.fortune.13": "Cannot predict.",
- "hexical.fortune.14": "Concentrate and ask again.",
- "hexical.fortune.15": "Don't count on it.",
- "hexical.fortune.16": "My reply is no.",
- "hexical.fortune.17": "My sources say no.",
- "hexical.fortune.18": "Outlook not so good.",
- "hexical.fortune.19": "Very doubtful.",
-
- "hexcasting.mishap.bad_block.akashic_bookshelf": "an akashic bookshelf",
- "hexcasting.mishap.bad_block.mage_block": "a mage block",
- "hexcasting.mishap.bad_block.prestidigitation": "a prestidigitation-sensitive block",
- "hexcasting.mishap.bad_item.grimoire": "a grimoire",
- "hexcasting.mishap.bad_item.firework_star": "a firework star",
- "hexcasting.mishap.bad_item.has_brain": "a villager capable of thought",
- "hexcasting.mishap.bad_item.smart_villager": "a Journeyman or greater level villager",
- "hexcasting.mishap.bad_item.lamp_full": "a lamp with media",
- "hexcasting.mishap.bad_item.lamp": "a lamp",
- "hexcasting.mishap.bad_item.living_scroll": "a living scroll",
- "hexcasting.mishap.bad_item.prestidigitation": "a prestidigitation-sensitive entity",
- "hexcasting.mishap.bad_item.mesh": "a mesh",
- "hexcasting.mishap.bad_item.speck": "a speck",
- "hexcasting.mishap.bad_item.specklike": "a specklike entity",
- "hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
- "hexcasting.mishap.invalid_value.solid_block": "a non-air block",
- "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
- "hexcasting.mishap.invalid_value.pattern_list": "a list with only patterns",
- "hexcasting.mishap.invalid_value.mesh_design": "a list of up to 32 vectors with magnitudes less than 10",
- "hexcasting.mishap.invalid_value.class.dye": "a dye",
- "hexcasting.mishap.invalid_value.class.identifier": "an identifier",
- "hexcasting.mishap.invalid_value.class.pigment": "a pigment",
- "hexcasting.mishap.invalid_value.true_dye": "a colored dye",
- "hexcasting.mishap.invalid_value.to_pigment": "a colored dye, identifier of a pigment item, an item entity containing a pigment, or a player",
- "hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
- "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
- "hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
- "hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
- "hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
- "hexcasting.mishap.invalid_value.potion_holding": "a food, potion, or tipped arrow item entity",
- "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
- "hexcasting.mishap.invalid_value.integer_natural": "an integer greater than 0",
- "hexcasting.mishap.invalid_value.recognizable": "a target with extra information",
- "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
- "hexcasting.mishap.invalid_value.nonempty_list": "a non-empty list",
- "hexcasting.mishap.invalid_value.true_dye_list": "a list of colored dyes",
- "hexcasting.mishap.hexical:active_arch_lamp": "Expected an active Arch Lamp in the inventory.",
- "hexcasting.mishap.hexical:can_not_dye": "Expected a dyeable target",
- "hexcasting.mishap.hexical:inedible": "Wristpocketed item is not edible.",
- "hexcasting.mishap.hexical:needs_chorus_fruit": "Needs chorus fruit within inventory.",
- "hexcasting.mishap.hexical:needs_conjured_staff": "Expected to be cast by a Conjured Staff.",
- "hexcasting.mishap.hexical:needs_lamp": "Expected to be cast by a Genie Lamp.",
- "hexcasting.mishap.hexical:needs_hand_lamp": "Expected to be cast by a Hand Genie Lamp.",
- "hexcasting.mishap.hexical:needs_arch_lamp": "Expected to be cast by a Archgenie Lamp.",
- "hexcasting.mishap.hexical:needs_skippable": "Expected to be run inside of Sisyphus' Gambit or Thoth's Gambit.",
- "hexcasting.mishap.hexical:needs_thoth": "Expected to be run inside of Thoth's Gambit.",
- "hexcasting.mishap.hexical:outside_circle": "Spell exceeds the domain of the spell circle.",
- "hexcasting.mishap.hexical:themis": "Expected a number at the top of the pseudo-stack.",
-
- "hexcasting.spell.book.hexical:theodolite": "Theodolite Purif.",
- "hexcasting.spell.book.hexical:damage_stack": "Deterioration Purif.",
- "hexcasting.spell.book.hexical:get_arch_lamp_position": "Arch. Refl.: Spatial",
- "hexcasting.spell.book.hexical:get_arch_lamp_rotation": "Arch. Refl.: Rotational",
- "hexcasting.spell.book.hexical:get_arch_lamp_velocity": "Arch. Refl.: Kinetic",
- "hexcasting.spell.book.hexical:get_arch_lamp_use_time": "Arch. Refl.: Temporal",
- "hexcasting.spell.book.hexical:get_arch_lamp_media": "Arch. Refl.: Media",
- "hexcasting.spell.book.hexical:get_arch_lamp_storage": "Arch. Refl.: Memory",
- "hexcasting.spell.book.hexical:get_effect_amplifier": "Concentration Dstl.",
- "hexcasting.spell.book.hexical:get_effects_item": "Prescription Purif.",
- "hexcasting.spell.book.hexical:get_enchantments": "Thaumaturgist's Purif.",
- "hexcasting.spell.book.hexical:breedable": "Reproduction Purif.",
- "hexcasting.spell.book.hexical:get_hand_lamp_position": "Genie Refl.: Spatial",
- "hexcasting.spell.book.hexical:get_hand_lamp_rotation": "Genie Refl.: Rotational",
- "hexcasting.spell.book.hexical:get_hand_lamp_velocity": "Genie Refl.: Kinetic",
- "hexcasting.spell.book.hexical:get_hand_lamp_use_time": "Genie Refl.: Temporal",
- "hexcasting.spell.book.hexical:get_hand_lamp_media": "Genie Refl.: Media",
- "hexcasting.spell.book.hexical:get_hand_lamp_storage": "Genie Refl.: Memory",
- "hexcasting.spell.book.hexical:get_biome": "Geographical Purif.",
- "hexcasting.spell.book.hexical:get_weather": "Meterologist's Refl.",
- "hexcasting.spell.book.hexical:recognize": "Recognizer's Purif.",
- "hexcasting.spell.book.hexical:shuffle_pattern": "Glyphmaker's Dstl.",
- "hexcasting.spell.book.hexical:zone_specklike": "Zone Dstl.: Specklike",
- "hexcasting.spell.book.hexical:modify_block_bouncy": "Bouncy",
- "hexcasting.spell.book.hexical:modify_block_energized": "Energized",
- "hexcasting.spell.book.hexical:modify_block_ephemeral": "Ephemeral",
- "hexcasting.spell.book.hexical:modify_block_invisible": "Invisible",
- "hexcasting.spell.book.hexical:modify_block_replaceable": "Replaceable",
- "hexcasting.spell.book.hexical:modify_block_semipermeable": "Semi-Permeable",
- "hexcasting.spell.book.hexical:modify_block_volatile": "Volatile",
- "hexcasting.spell.book.hexical:read_shelf": "Librarian's Purif. II",
-
- "hexical.page.hexical_changes.title": "Hexical Changes",
- "hexical.page.hexical_changes.0": "I feel strangely more in tune with the ambient _media around me. It feels $(o)friendlier$() somehow... I can even feel it rippling around me, responding to my actions, as if suggesting new spells to me. The _media itself also feels more malleable, more $(o)workable$(), allowing me to manipulate it into precise specialized effects.",
- "hexical.page.hexical_changes.1": "I also find my tools more familiar. I notice I require less concentration with my $(l:items/staff)$(item)staff$() and can move around while using it, handy for chasing down targets that get out of my line of sight before I can finish my raycast. I shouldn't become too relaxed though, Nature has not become more forgiving of my mistakes. I can also write directly into my $(l:items/abacus)$(item)abacus$() with $(l:patterns/readwrite#hexcasting:write)Scribe's Gambit$().",
- "hexical.page.lightning_rod_staff.0": "By fixing a block of amethyst to some lightning rods, I can make quite the impressive $(l:items/staff)$(item)staff$(). It is quite weighty to wield but feels absolutely $(o)electrifying$() to use.",
- "hexical.page.lightning_rod_staff.1": "$(o)I learned there are troubles$(br)Of more than one kind.$(br)Some come from ahead$(br)And some come from behind.$(br2)But I've bought a big bat.$(br)I'm all ready, you see.$(br)Now my troubles are going$(br)To have troubles with $(l)me!$()",
- "hexical.page.gauntlet_staff.0": "Staffs are quite heavy to wield and finnicky to hold. In case I tire of them, I can construct a gauntlet-like \"$(l:items/staff)$(item)staff$()\" to grasp and warp the media to my will with my own fingers.",
- "hexical.page.gauntlet_staff.1": "$(o)Wait, what are fingers??$()",
-
- "hexical.page.grimoire.title": "Grimoires",
- "hexical.page.grimoire.0": "By encrusting an $(item)enchanted book$() with charged amethyst and $(l:items/edified)$(item)edified wood$()$(), it traps _media within the pages like an echo chamber. I can then introduce a pattern-to-pattern-list binding for the $(item)grimoire$() to keep bouncing endlessly inside.",
- "hexical.page.grimoire.1": "When I then cast the $(l:patterns/patterns_as_iotas)pattern$() associated with a pattern list with my $(l:items/staff)$(item)staff$() and the $(item)grimoire$() in my inventory, the pattern $(o)expands$() with a faint sound of a _Hex being cast. I create shortcuts for tedious tasks with this, like the raycast mantra or large patterns. The $(item)grimoire$() can even hijack Nature's patterns, to overwrite or add extra functionality.$(br2)$(o)If there's a book that you want to read, but it hasn't been written yet, then you must write it.$()",
- "hexcasting.spell.hexical:write_grimoire": "Write Grimoire",
- "hexical.page.write_grimoire.summary": "Writes a pattern-to-pattern-list binding into the $(item)grimoire$() in my offhand.",
- "hexcasting.spell.hexical:erase_grimoire": "Erase Grimoire",
- "hexical.page.erase_grimoire.summary": "Erases the pattern-list binding to the pattern in the $(item)grimoire$() in my offhand if it exists.",
- "hexcasting.spell.hexical:index_grimoire": "Archivist Reflection",
- "hexical.page.index_grimoire.summary": "Gets a list of all patterns stored in the $(item)grimoire$().",
-
- "hexical.page.hex_candle.title": "Hex Candles",
- "hexical.page.hex_candle.0": "When ignited for the first time, either $(l:hexical:patterns/spells/prestidigitation)magically$() or with a $(item)flint and steel$(), these delightful little candles have pale white flames. When someone interacts with it though, it happily copies their pigment. I can also right-click it with a pigment item to change its color directly. To extinguish, sneak right-click.",
-
- "hexical.page.living_scroll.title": "Living Scrolls",
- "hexical.page.living_scroll.0": "Living scrolls are mixed with a pinch of amethyst, enchanting the ink to move and wiggle like the patterns I draw with my $(l:items/staff)$(item)staff$(). Not only that, living scrolls can display lists of patterns.$(br2)$(o)You can't be a proper writer without a touch of madness, can you?$()",
- "hexical.page.living_scroll.1": "I can freely write and rewrite the scroll's patterns at any time, along with reading it back out. The scroll accepts only a list of pattern iotas, or a pattern iota which is automatically wrapped in a list. When displaying a list of patterns, a living scroll shows one pattern at a time. It changes once per second. Even when I write the same pattern list to two of them at two different moments of their cycle, they end up in sync.",
- "hexical.page.living_scroll.2": "What follows are some spells I've found for manipulation of living scrolls. The changes caused by these most enchantments can be reverted by casting the spell on the scroll again. They are all free.",
- "hexcasting.spell.hexical:age_scroll": "Age Scroll",
- "hexical.page.age_scroll.summary": "Yellows the parchment of the scroll, making it bear striking semblance to some ancient scrolls I've been finding.",
- "hexcasting.spell.hexical:glow_scroll": "Illuminate Ink",
- "hexical.page.glow_scroll.summary": "Causes the ink of a living scroll to brightly glow in the dark.",
- "hexcasting.spell.hexical:color_scroll": "Dye Ink",
- "hexical.page.color_scroll.summary": "Changes the color of a living scroll's ink to the color specified by the vector, with the components being 0 to 1 values of red, green, and blue respectively.",
- "hexcasting.spell.hexical:vanish_scroll": "Vanish Scroll",
- "hexical.page.vanish_scroll.summary": "Causes the scroll paper to become invisible, leaving only the pattern, making it appear as though the pattern were magically etched into the surface.",
-
- "hexical.page.media_jar.title": "Media Jar",
- "hexical.page.media_jar.0": "I can craft this little decorative jar of liquid _media that glows quite brightly. Unfortunately, it seems the glass is too thick for me to draw _media through it, although I have read tales that ancient _Hexcasters were able to solve this issue and being able to bottle up liquid _media and use it for their _Hexes.",
- "hexical.page.media_jar.1": "A similar item was built by prior _Hexcasters and they seemed to use it as crystal ball by sipping the fluid. Holding the energy of thought that permeates existence, perhaps its answers hold some merit.$(br2)$(o)Signs point to yes.$()",
-
- "hexical.category.lamp": "Genie Lamp",
- "hexical.category.lamp.desc": "I have heard tales from the villagers about a magical artifact. Legends say it contains a spirit that grants wishes, but I suspect that is just embellishment evolved over centuries of storytelling. However, legends must arise from something and I dedicate this section to my pursuit and research of it.",
-
- "hexcasting.spell.hexical:lamp_finale": "Finale Reflection",
- "hexical.page.lamp_finale.hand": "The instant I let go of my lamp, it casts an additional time. I can use this pattern to recognize whether a cast is that finale, and react accordingly.",
- "hexical.page.lamp_finale.arch": "When an archgenie lamp is turned off, it casts an additional time. I can use this pattern to recognize when whether a cast is that last burst of energy.",
-
- "hexical.page.mysterious_lamp.title": "Mysterious Lamp",
- "hexical.page.mysterious_lamp.0": "At last I've obtained the subject of a thousand years of rumor! To think a mere wandering trader was in possession of such a strong artifact. The oil lamp emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow media structure$() of a $(l:items/focus)$(item)focus$() that allows it to store iota. There is also a presence inside with casting capabilities similar to my own.",
- "hexcasting.spell.hexical:educate_genie": "Educate Genie",
- "hexical.page.educate_genie.summary": "Teaches the presence my intentions. Because I am $(o)teaching$() an entity rather than $(o)etching$() a $(l:items/hexcasting)$(item)casting device$(), I can freely revise the _Hex and reteach the genie any time without losing the _media.",
-
- "hexical.page.new_possibilities.title": "New Possibilities",
- "hexical.page.new_possibilities.0": "It casts $(o)$(l)EVERY INSTANT$(). After writing a spell into it, I was treated to a splendid unceasing gush of _media. I estimate the casting speed must be around twenty times every second. The genie performs the casting with extraordinary efficiency, producing little of the sounds and particles that accompany other casting methods.",
- "hexical.page.new_possibilities.1": "I have developed some useful patterns to communicate with the genie for information, documented on the next few pages. These patterns must only be cast by the genie within the lamp, lest I succumb to the Impersonate Genie mishap, which emits red sparks and yanks my casting item from my hand.$(br2)$(o)Yeah, but your $(l)$(o)hexcasters$()$(o) were so preoccupied with whether or not they could, they didn't stop to think if they should.$()",
- "hexcasting.spell.hexical:get_hand_lamp_position": "Genie Reflection: Spatial",
- "hexical.page.get_hand_lamp_position.summary": "Pushes my original position when I began using the lamp.",
- "hexcasting.spell.hexical:get_hand_lamp_rotation": "Genie Reflection: Rotational",
- "hexical.page.get_hand_lamp_rotation.summary": "Pushes my original rotation when I began using the lamp.",
- "hexcasting.spell.hexical:get_hand_lamp_velocity": "Genie Reflection: Kinetic",
- "hexical.page.get_hand_lamp_velocity.summary": "Pushes my original velocity when I began using the lamp.",
- "hexcasting.spell.hexical:get_hand_lamp_use_time": "Genie Reflection: Temporal",
- "hexical.page.get_hand_lamp_use_time.summary": "Pushes how many times the lamp has cast. Divided by 20, it is the number of seconds since I began using the lamp.",
- "hexcasting.spell.hexical:get_hand_lamp_media": "Genie Reflection: Media",
- "hexical.page.get_hand_lamp_media.summary": "Pushes the remaining _media of the lamp, in units of dust.",
- "hexcasting.spell.hexical:with_hand_lamp": "Genie Reflection",
- "hexical.page.with_hand_lamp.summary": "Pushes whether this _Hex is being cast by a handheld genie lamp.",
- "hexcasting.spell.hexical:get_hand_lamp_storage": "Genie Reflection: Memory",
- "hexical.page.set_hand_lamp_storage.summary": "Sets an internal storage of my lamp to any iota. Strangely allows bypassing the Transgress Others mishap, perhaps because it requires my active concentration to use this lamp.",
- "hexcasting.spell.hexical:set_hand_lamp_storage": "Genie Gambit",
- "hexical.page.get_hand_lamp_storage.summary": "Retrieves an iota from my hand lamp's internal storage, returns null by default.",
-
- "hexical.page.offerings.title": "Offerings",
- "hexical.page.offerings.0": "Hex casting burns out the mind from the energy of thought, flooding the consciousness, inundating every neuron... it's euphoric. For $(l:items/staff)$(item)staves$(), $(l:items/hexcasting)$(item)casting devices$(), and spell circles, the rate of casting is slow enough that a mind can recuperate; I will never need to replace an impetus. With the speeds lamps operates at, though, even an optimized mind can feel strain.",
- "hexical.page.offerings.1": "The lamp traps the genie and any attempts to refuel it will free it. Thus, the only way to recharge a genie lamp is to simultaneously replace the _media $(o)and$() the genie, forcing a new mind to work in its stead. A villager will do quite nicely. That is the spell that I have devised.$(br2)$(o)My name? My name is... oh god, why can't I remember my name?$()",
- "hexcasting.spell.hexical:offer_mind": "Offer Mind",
- "hexical.page.offer_mind.summary": "Can be cast by me to $(o)borrow$() the experiences and memory of a villager and give it to the lamp in my offhand. The spell itself costs one charged amethyst, plus the _media I'm giving.",
- "hexical.page.offerings.2": "Notably, this spell will $(o)not$() kill the villager. It splinters off a section of their mind to serve as the genie and for the villager's main consciousness only results in amnesia. I have heard rumors of ancient Hexcasters $(o)growing$() villager minds like crops using this property, consuming them to recharge their lamps, and allowing them to regenerate their lost knowledge in between.",
- "hexical.page.offerings.3": "Not all villagers can be a genie. I estimate there is so little media potential in any villager lesser than Journeyman-grade that the spell would simply fail. Having most of its workings $(o)optimized$() purely for casting, I doubt an Expert villager will perform any better than a Journeyman. However, certain skills may still affect the quality of casting. My notes on that on the next page.",
- "hexical.page.offerings.4": "Ingrained memories and inherent abilities seem to be able to survive the optimization process. A master villager who has honed its craft to perfection has internalized its knowledge so deeply, that it casts differently. A wandering villager who has spent its life travelling the world may be so attuned to exploration that the way it casts reflects its experience.",
-
- "hexical.page.arch_lamps.title": "Archgenie Lamps",
- "hexical.page.arch_lamps.0": "Rather just losing memories, the master villager's mind exited its body and completely supplanted the original genie. Because a separate entity casts my spells, a lamp should be able to cast even without me holding it. These archgenie lamps are activated and deactivated rather than used and while active in my inventory, they cast every moment even without my input.",
- "hexical.page.arch_lamps.1": "The output of an archgenie lamp is so grand that it saturates the air around me with _media... it's incredible. Unfortunately, if two lamps are active at once within my inventory, the resonances clash and deactivate both lamps, as well as rendering every archgenie lamp in my inventory useless for a few seconds. I should only have one archgenie lamp active at once, although I can still simultaneously use a regular lamp.",
- "hexical.page.arch_lamps.2": "$(o)I am a great soft jelly thing. Smoothly rounded, with no mouth, with pulsing white holes filled by fog where my eyes used to be. Rubbery appendages that were once my arms; bulks rounding down into legless humps of soft slippery matter.$(br2)I have no mouth. And I must scream.$()",
- "hexcasting.spell.hexical:activate_arch_lamp": "Activate Archgenie",
- "hexical.page.activate_arch_lamp.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)staff$(), or within an arch lamp. Deactivates any archgenie lamp and activates a previously inactive one.",
- "hexcasting.spell.hexical:terminate_arch_lamp": "Terminate Archgenie",
- "hexical.page.terminate_arch_lamp.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)staff$(), or within the arch lamp itself. Deactivates the currently active archgenie lamp.",
- "hexcasting.spell.hexical:has_arch_lamp": "Archgenie Purification",
- "hexical.page.has_arch_lamp.summary": "Pushes whether a player currently has an active arch lamp.",
- "hexcasting.spell.hexical:get_arch_lamp_position": "Archgenie Reflection: Spatial",
- "hexical.page.get_arch_lamp_position.summary": "Pushes the original position of the caster when the arch lamp started casting.",
- "hexcasting.spell.hexical:get_arch_lamp_rotation": "Archgenie Reflection: Rotational",
- "hexical.page.get_arch_lamp_rotation.summary": "Pushes the original rotation of the caster when the arch lamp started casting.",
- "hexcasting.spell.hexical:get_arch_lamp_velocity": "Archgenie Reflection: Kinetic",
- "hexical.page.get_arch_lamp_velocity.summary": "Pushes the original velocity of the caster when the arch lamp started casting.",
- "hexcasting.spell.hexical:get_arch_lamp_use_time": "Archgenie Reflection: Temporal",
- "hexical.page.get_arch_lamp_use_time.summary": "Pushes how many times the lamp has cast. Divided by 20, it returns how many times in seconds the lamp has been in use.",
- "hexcasting.spell.hexical:get_arch_lamp_media": "Archgenie Reflection: Media",
- "hexical.page.get_arch_lamp_media.summary": "Pushes the remaining amount of _media left in the lamp, in units of dust.",
- "hexcasting.spell.hexical:with_arch_lamp": "Archgenie Reflection",
- "hexical.page.with_arch_lamp.summary": "Pushes whether this _Hex is currently being cast by an arch lamp.",
- "hexcasting.spell.hexical:get_arch_lamp_storage": "Archgenie Reflection: Memory",
- "hexical.page.get_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)staff$(), or within an arch lamp. Gets the lamp's iota storage.",
- "hexcasting.spell.hexical:set_arch_lamp_storage": "Archgenie Gambit",
- "hexical.page.set_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)staff$(), or within an arch lamp. Sets the lamp's iota storage. Subject to Transgress Others mishap.",
-
- "hexical.page.enlightened_patterns.title": "Enlightened Patterns",
- "hexical.page.enlightened_patterns.0": "After my enlightenment, I find myself acutely aware of certain patterns that seem to aid with my newfound abilities to perceive and manipulate _media. These patterns don't seem to require anything new from me, perhaps I've always been able to cast them but was unaware of their existence.",
- "hexcasting.spell.hexical:am_enlightened": "Epiphany Purification",
- "hexical.page.am_enlightened.summary": "Pushes whether the given player has achieved enlightenment like I have.",
- "hexcasting.spell.hexical:is_brainswept": "Sentience Purification",
- "hexical.page.is_brainswept.summary": "Pushes whether an entity \"has been magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
-
- "hexical.page.simple_patterns.title": "Hexical Patterns",
- "hexcasting.spell.hexical:entity_width": "Caliper's Purification",
- "hexical.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
- "hexcasting.spell.hexical:theodolite": "Theodolite's Purification",
- "hexical.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
- "hexcasting.spell.hexical:swap_one_three": "Reflecting Gambit",
- "hexical.page.swap_one_three.summary": "Reflects the order of the top three iota, turning A, B, C into C, B, A. Essentially swaps the top and the third-from-the-top iota.",
- "hexcasting.spell.hexical:swap_two_three": "Bubbling Gambit",
- "hexical.page.swap_two_three.summary": "Causes the third-from-the-top iota to bubble up over the second-from-the-top iota, essentially swapping them.",
- "hexcasting.spell.hexical:similar": "Similarity Distillation",
- "hexical.page.similar.summary": "Pushes whether two iota are of the same type.",
- "hexcasting.spell.hexical:congruent": "Congruence Distillation",
- "hexical.page.congruent.summary": "Pushes whether two patterns have the same shape and orientation.",
- "hexcasting.spell.hexical:dup_many": "Dioscuri Gambit II",
- "hexical.page.dup_many.summary": "Takes a number and duplicates that many elements of the stack while preserving order.",
- "hexcasting.spell.hexical:shuffle_pattern": "Glyphmaker's Distillation",
- "hexical.page.shuffle_pattern.summary": "Takes in a pattern and a number and produces a pattern of the same shape, but different stroke order. My notes reveal that ancient hexcasters used this for some $(o)grand library$().",
-
- "hexical.page.perlin.title": "Quasirandomness",
- "hexical.page.perlin.0": "In certain regions of the world, ambient _media is more concentrated. I can measure that concentration and even extrapolate backwards and forwards in time to get a quasi-random number between 0 and 1, corresponding to that location at that time. Points in time and space that are close to each other often have similar values.",
- "hexcasting.spell.hexical:perlin": "Perlin Distillation",
- "hexical.page.perlin.summary": "Measures the concentration of ambient at that point in space and time, normalized between 0 and 1.",
-
- "hexical.page.special_raycasts.title": "Special Raycasts",
- "hexcasting.spell.hexical:fluid_raycast": "Naval Distillation",
- "hexical.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
- "hexcasting.spell.hexical:fluid_surface_raycast": "Lilypad Distillation",
- "hexical.page.fluid_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but targets only liquids, piercing through all other blocks.",
- "hexcasting.spell.hexical:piercing_raycast": "Railgun Exaltation",
- "hexical.page.piercing_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
- "hexcasting.spell.hexical:piercing_surface_raycast": "Laser Exaltation",
- "hexical.page.piercing_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
-
- "hexical.page.telepathy.title": "Telepathy",
- "hexical.page.telepathy": "_Media is the energy of thought and consequently, it can interact with thoughts as well. Unfortunately or perhaps fortunately for me, the minds of players are too resistant to be swayed by _Hexes and even the minds of villagers resist tampering. There is a notable exception though: my own mind is open to my own _media, allowing me to read and write thoughts.",
- "hexcasting.spell.hexical:get_telepathy": "Telepathic Reflection",
- "hexical.page.get_telepathy.summary": "By focusing on a particular image, I can detect that concentration via this pattern. Pushes how long I have been holding down the telepathy key, or -1 if I am not holding it.",
- "hexcasting.spell.hexical:send_telepathy": "Send Thought",
- "hexical.page.send_telepathy.summary": "Momentarily displays the iota above my hotbar. If cast repeatedly, each cast overwrites the previous message instantly.",
- "hexcasting.spell.hexical:shout_telepathy": "Shout Thought",
- "hexical.page.shout_telepathy.summary": "Displays a iota across my screen. It obstructs my vision and takes some time to fade in, so I shall only use it sparingly.",
- "hexcasting.spell.hexical:pling": "Hallucinate Pling",
- "hexical.page.pling.summary": "Causes me to hear a pling that is inaudible to other players.",
- "hexcasting.spell.hexical:click": "Hallucinate Click",
- "hexical.page.click.summary": "Causes me to hear a click that is inaudible to other players.",
- "hexcasting.spell.hexical:moving_up": "Charge Reflection",
- "hexical.page.moving_up.summary": "Pushes how long I've been intending to move forwards, or -1 if I am not pressing the forwards key.",
- "hexcasting.spell.hexical:moving_down": "Retreat Reflection",
- "hexical.page.moving_down.summary": "Pushes how long I've been intending to move backwards, or -1 if I am not pressing the backwards key.",
- "hexcasting.spell.hexical:moving_left": "Dodge Reflection",
- "hexical.page.moving_left.summary": "Pushes how long I've been intending to move leftwards, or -1. Can be easily differentiated from Evade Reflection because d comes to the left of e.",
- "hexcasting.spell.hexical:moving_right": "Evade Reflection",
- "hexical.page.moving_right.summary": "Pushes how long I've been intending to move rightwards, or -1. Can be easily differentiated from Dodge Reflection because e comes to the right of d.",
- "hexcasting.spell.hexical:jumping": "Leaping Reflection",
- "hexical.page.jumping.summary": "Pushes how long I've been intending to jump, or -1 if I am not pressing the jump key.",
-
- "hexical.page.soroban.title": "Soroban Patterns",
- "hexical.page.soroban.0": "These patterns manipulate an imaginary counter. I shall find them useful when my $(l:patterns/readwrite#hexcasting:local)Ravenmind$() is occupied or overkill, for example to count iterations in a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() loop. Some ancient scraps recommend its use for some sort of $(o)recursive depth$().$(br2)I shall also note that they don't work properly when drawn by themselves with my staff. It seems memory is maintained only for an instant.",
- "hexcasting.spell.hexical:soroban_increment": "Soroban Reflection",
- "hexical.page.soroban_increment.summary": "Pushes the current soroban counter and then increases it.",
- "hexcasting.spell.hexical:soroban_decrement": "Soroban Reflection II",
- "hexical.page.soroban_decrement.summary": "Pushes the current soroban counter and then decreases it.",
- "hexcasting.spell.hexical:soroban_reset": "Soroban Gambit",
- "hexical.page.soroban_reset.summary": "Resets the soroban counter.",
-
- "hexical.page.metas.title": "Hexical Metaevals",
- "hexcasting.spell.hexical:janus": "Janus' Gambit",
- "hexical.page.janus.0": "Instantly terminates the _Hex regardless of current circumstances, breaking even through $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() and $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().",
- "hexical.page.janus.1": "It's useful to end a _Hex early once it has reached some desired state, without the difficulty of using $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() because $(l:hexical:patterns/metaevals#hexical:janus)$(action)Janus'$() can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes'$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$().$(br2)$(o)It is always important to know when something has reached its end.$()",
- "hexcasting.spell.hexical:nephthys": "Nephthys' Gambit",
- "hexical.page.nephthys.0": "Pops a pattern or pattern list and dives down an amount corresponding to the tail length to cast the pattern list. Useful for surgery-like operations.",
- "hexical.page.nephthys.1": "It's extremely versatile and I can mend almost any error in my stack using $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit$(), pushing iota after a dive, and transforming surfaced iota. It was named after a goddess of mourning and rivers, lending to how it buries/dives down into the stack.$(br2)$(o)... the unknowns of time travel... is akin to descending blindly into the depths of the freezing water and reappearing as an acorn.$()",
- "hexcasting.spell.hexical:sekhmet": "Sekhmet's Gambit",
- "hexical.page.sekhmet.0": "Voids the entire stack except for the top n iota, determined by tail length. In the examples above, zero, one, and two iota are left untouched respectively. $(o)Not$() a meta-evaluation on its own.",
- "hexical.page.sekhmet.1": "This simple gambit can be accomplished via $(l:patterns/stackmanip#hexcasting:stack_len)$(action)Flock's Reflection$(), $(l:patterns/lists#hexcasting:last_n_list)$(action)Flock's Gambit$(), $(l:patterns/lists#hexcasting:slice)$(action)Selection Exaltation$(), and $(l:patterns/lists#hexcasting:splat)$(action)Flock's Disintegration$() but this serves as a handy short pattern for clearing up my stack. It also pairs extremely well with Thoth's Gambit, letting me clean up the pseudo-stack should I want to only operate on and return first few iota.$(br2)$(o)Everything is possible, but not everything is necessary.$()",
- "hexcasting.spell.hexical:atalanta": "Atalanta's Gambit",
- "hexical.page.atalanta.0": "Should only be run inside $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() or $(l:hexical:patterns/metaevals#hexical:sisyphus)$(action)Sisyphus' Gambit$(). Acts similarly to $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() except does not end the iterator, only skips the rest of the current iteration.",
- "hexical.page.atalanta.1": "This pattern can be useful to implement \"guard clauses\" for multiconditional loops. For example, after getting a list of entities, you may want to only target entities based on some large list of conditions. Rather than a mess of deeply nested conditionals, you can simply $(o)continue$() to the next iteration if any of the conditions fail, skipping the action.$(br2)$(o)You shall not pass!$()",
- "hexcasting.spell.hexical:castor": "Castor's Gambit",
- "hexical.page.castor.0": "Should only be run within a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$(). Details on the next page. Beware of triggering the Delve Too Deep mishap.",
- "hexical.page.castor.1": "This pattern pops an iota and schedules a new iteration of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to come right after the current one, with the popped iota being the top of the stack. It may be helpful to imagine it as the iota being added to the front of the list that I provided for $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to iterate over.$(br2)$(o)Do not go where the path may lead, go instead where there is no path... and leave a trail.$()",
- "hexcasting.spell.hexical:pollux": "Pollux's Gambit",
- "hexical.page.pollux.0": "Sibling pattern to $(l:hexical:patterns/metaevals#hexical:castor)$(action)Castor's Gambit$(), this pattern schedules the additional iteration for the end instead. Carries the same risk of encountering the Delve Too Deep mishap.",
- "hexical.page.pollux.1": "Acts almost identically to its sibling pattern, but places the iteration at the end. I have read scrolls detailing techniques using these twin patterns called $(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)depth-first search$() and $(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)breadth-first search$().$(br2)$(o)Explore the surface before diving deep.$()",
- "hexcasting.spell.hexical:sisyphus": "Sisyphus' Gambit",
- "hexical.page.sisyphus.0": "Takes a pattern list and casts it over and over forever until it encounters either a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() or a $(l:hexical:patterns/metaevals#hexical:janus)$(action)Janus' Gambit$().",
- "hexical.page.sisyphus.1": "While I have heard of self-producing _Hexes called $(o)quines$() used to make infinite loops, they can be slightly unwieldy to work with. This gambit simplifies that process by just repeatedly casting a list until it runs out of evaluations or encounters a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(). The $(l:patterns/readwrite#hexcasting:local)Ravenmind$() is persisted between iterations and it always casts with the base stack.$(br2)$(o)One always finds one's burden again... One must imagine Sisyphus happy.$()",
- "hexcasting.spell.hexical:themis": "Themis' Gambit",
- "hexical.page.themis.0": "Takes a list and a pattern or pattern list which is used to sort the list by casting over every iota similar to $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$().",
- "hexical.page.themis.1": "After each iteration, it demands a number at the top of the stack which will correspond to that iota. At the end of the gambit, a list is pushed with the iota sorted by that number in increasing order. The order of identically numbered iota are kept. If it encounters $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(), it will create a sorted list with only the iota it has come across.$(br2)$(o)Shuffling is the only thing which Nature cannot undo.$()",
-
- "hexical.page.akashic_utils.title": "Akashic Utilities",
- "hexical.page.akashic_utils.0": "I have discovered some conveniences for akashic libraries! I can right-click or $(l:hexical:patterns/spells/prestidigitation)magically interact$() with a filled akashic bookshelf to copy its iota into my stack. I can also right-click with a scroll to copy the pattern of the bookshelf onto the scroll. Finally, I have discovered patterns that can read and write directly to a bookshelf within ambit for free.",
- "hexcasting.spell.hexical:key_shelf": "Librarian's Purification",
- "hexical.page.key_shelf.summary": "Reads the pattern key of an akashic bookshelf within ambit. Free to cast.",
- "hexcasting.spell.hexical:read_shelf": "Librarian's Purification II",
- "hexical.page.read_shelf.summary": "Reads the iota from an akashic bookshelf within ambit. Free to cast.",
- "hexcasting.spell.hexical:write_shelf": "Librarian's Gambit",
- "hexical.page.write_shelf.summary": "Writes an iota under a pattern to an akashic bookshelf within ambit. Free to cast.",
- "hexcasting.spell.hexical:clear_shelf": "Librarian's Gambit II",
- "hexical.page.clear_shelf.summary": "Clears an akashic bookshelf within ambit. Free to cast.",
-
- "hexical.page.mage_block.title": "Mage Blocks",
- "hexical.page.mage_block": "The blocks from $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjure Block$() last forever, are consequently a pain to clean up, and are not too versatile. Luckily, Nature offers an elegant and flexible alternative. These mage blocks come with a suite of $(o)modifiers$(). I could even stack multiple modifiers on one block or reapply a modifier to toggle it off.",
- "hexcasting.spell.hexical:conjure_mage_block": "Conjure Mage Block",
- "hexical.page.conjure_mage_block.summary": "Conjures a mage block at the location. Costs three dust.$(br2)$(o)I can create a city out of nothing, or I can cover it in volcanic rock.$()",
- "hexcasting.spell.hexical:modify_block_bouncy": "Modify Block: Bouncy",
- "hexical.page.modify_block_bouncy.summary": "This modifier makes the block delightfully fun to bounce on! It returns more force to me than regular slime blocks and I notice even if I sneak, the block bounces me regardless.",
- "hexcasting.spell.hexical:modify_block_energized": "Modify Block: Energized",
- "hexical.page.modify_block_energized.summary": "This modifier makes the block emit a Redstone signal, with the number corresponding to the power level of the output.",
- "hexcasting.spell.hexical:modify_block_ephemeral": "Modify Block: Ephemeral",
- "hexical.page.modify_block_ephemeral.summary": "This modifier takes in a number in addition to a position and shatters the block after many twentieths of a second. Subsequent casts can lengthen or shorten the duration.",
- "hexcasting.spell.hexical:modify_block_invisible": "Modify Block: Invisible",
- "hexical.page.modify_block_invisible.summary": "This modifier prevents the block from emitting the telltale particles that accompany my casting, even when being stood on.",
- "hexcasting.spell.hexical:modify_block_replaceable": "Modify Block: Replaceable",
- "hexical.page.modify_block_replaceable.summary": "This modifier is useful for construction! With this modifier applied, I find I can easily place another block in the place of the mage block.",
- "hexcasting.spell.hexical:modify_block_semipermeable": "Modify Block: Semi-Permeable",
- "hexical.page.modify_block_semipermeable.summary": "This modifier makes the block semi-permeable, only allowing the last caster of it to pass through while all other entities can not.",
- "hexcasting.spell.hexical:modify_block_volatile": "Modify Block: Volatile",
- "hexical.page.modify_block_volatile.summary": "This modifier makes the block break other mage blocks it's touching. Notably, if it breaks another volatile block, that block breaks and so on until every volatile block shatters.",
-
- "hexical.page.dyes.title": "Dyes",
- "hexical.page.dyes.0": "The dye spell and its specialized iota allows me to alter the color of blocks and entities. The dye iota represents a color, but also seems to represent the $(o)potential$() to be colored. For example, attempting to get the dye of grass returns null but getting the dye of undyed terracotta returns $(thing)uncolored$(), which I can use to \"bleach\" dyeable blocks.",
- "hexcasting.spell.hexical:get_dye": "Chromatic Purification",
- "hexical.page.get_dye.summary": "Gets the dye of a block, entity, or item identifier.",
- "hexcasting.spell.hexical:dye": "Dye",
- "hexical.page.dye.summary": "Dyes a dyeable block or entity. Costs an eighth of a dust.",
- "hexical.page.dyes.1": "The valid block targets for this spell include beds, candles, cakes with candles, carpets, concrete, concrete powder, glazed terracotta, sand into red sand and vice versa, sandstone and all blocks derived from it into its red variant and vice versa, shulker boxes, stained glass, stained glass panes, terracotta, tulips into their multiple colors, and wool blocks. As for entities, cat collars, dog collars, specklikes, shulkers, and item entities of all of the above blocks are valid.",
- "hexcasting.spell.hexical:translate_dye": "Vision Purification",
- "hexical.page.translate_dye.summary": "Translates a dye color into a vector, where each component is from 0 to 1 and represents the red, green, and blueness of the dye respectively.",
-
- "hexical.page.pigments.title": "Pigment Manipulation",
- "hexical.page.pigments.0": "Like how I can manipulate dyes with patterns, I can also manipulate pigments. I can even store multiple of them and have my hexes randomly choose one to give me for example.",
- "hexcasting.spell.hexical:to_pigment": "Pigment Purification",
- "hexical.page.to_pigment.summary": "Takes a colored dye iota and transforms it into a pigment, takes a player and returns their pigment, or takes an item containing a pigment and returns its pigment.",
- "hexcasting.spell.hexical:sample_pigment": "Pigment Exaltation",
- "hexical.page.sample_pigment.summary": "Samples the pigment at a certain place and time as a vector, where each component is from 0 to 1 and represents the red, green, and blueness respectively.",
- "hexcasting.spell.hexical:take_on_pigment": "Internalize Pigment II",
- "hexical.page.take_on_pigment.summary": "Takes a pigment iota and internalizes it for an eighth of a dust.",
-
- "hexcasting.spell.hexical:magic_missile": "Magic Missile",
- "hexical.page.magic_missile.summary": "Conjures a small silver of amethyst that always deals a full heart of damage and decent knockback. Costs one amethyst dust.",
- "hexical.page.magic_missile.0": "The projectile has a few interesting properties. It automatically disappears after roughly ten seconds or shatters upon hitting an entity or block. It pierces all forms of armor and protection. It is also unaffected by gravity and water drag.$(br2)$(o)A weak but enchanting sparkling projectile.$()",
- "hexical.page.magic_missile.1": "The conjuration location is quite esoteric: no wonder most users stick to conjuring it in front of them. The basic gist is a vector, where my head's position is the origin, my facing is the Z+ axis, the vector pointing up from my head is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
-
- "hexcasting.spell.hexical:prestidigitation": "Prestidigitation",
- "hexical.page.prestidigitation.summary": "Causes a small magical effect on the block or entity, usually not too distinct from the original nature or function of the block or entity. Costs 1/10th dust.",
- "hexical.page.prestidigitation.0": "This spell differs from all others I've seen. Rather than a single specific effect, this spell seems to combine dozens of small effects into a single spell. It targets a vast array of blocks and entities, and I am constantly finding uses for it. I have documented them on the following pages.",
- "hexcasting.spell.hexical:can_prestidigitate": "Alteration Purification",
- "hexical.page.can_prestidigitate.summary": "Pushes whether an entity or location is able to be manipulated with Prestidigitation.",
- "hexical.page.prestidigitation.1": "I've compiled all of its recorded uses from my notes: opens and close fence gates, trapdoors, and doors of all materials; flicks levers and presses buttons; holds down and releases pressure plates; extinguishes fire and soul fire; lights and extinguishes candles and campfires; rings bells; strips wood; carves pumpkins; makes a note block play its sound; triggers dispensers and droppers; dries mud into clay; turns most soil blocks into path blocks and path blocks into tilled soil...",
- "hexical.page.prestidigitation.2": "toggles Redstone lamps; drain cauldrons; modifies the state of Redstone repeaters, comparators, and daylight sensors, ignites and deprimes TNT and creepers; shear sheep; give and take arms from armor stands; makes squid squirt ink; makes pandas sneeze; removes the helmet of a snow golem; make pufferfish instantly swell up; take honeycomb from beehives and nests, and activates some kind of \"great work\" whatever that is.",
-
- "hexical.page.wristpocket.title": "Wristpocket",
- "hexical.page.wristpocket.0": "I can perform the standard magic trick of vanishing an item and bringing it back. The item hides in the $(o)wristpocket$(), where I can use _media to manipulate it. Wristpocketed items stay with me even after death and I can recall them once I have a $(l:items/staff)staff$() again.$(br2)$(o)Because making something disappear isn't enough; you have to bring it back.$()",
- "hexcasting.spell.hexical:wristpocket": "Wristpocket",
- "hexical.page.wristpocket.summary": "This spell vanishes the stack of items in my other hand, or conjures it back, swapping if my other hand is holding something. Costs 1/8th of a dust.",
- "hexcasting.spell.hexical:wristpocket_item": "Pocket Reflection",
- "hexical.page.wristpocket_item.summary": "Returns the identifier of the item in my wristpocket, or null if it is empty.",
- "hexcasting.spell.hexical:wristpocket_count": "Pocket Reflection II",
- "hexical.page.wristpocket_count.summary": "Returns how many items I have in my wristpocket, or 0 if it is empty.",
- "hexcasting.spell.hexical:sleight": "Sleight",
- "hexical.page.sleight.summary": "Performs an act of magical sleight of hand to steal items into my wristpocket or expel my wristpocket back into the world. Costs 1/4th of a dust.",
- "hexical.page.sleight.0": "- if taking a vector, it conjures my wristpocketed item at that vector.$(br)-if taking an item entity, if my wristpocket is empty, it is pulled into my wristpocket. If my wristpocket is not empty, the items are swapped.$(br2)$(o)If your sleight of hand causes you to break eye contact with your audience, it is too advanced for your skill level.$()",
- "hexcasting.spell.hexical:mage_hand": "Mage Hand",
- "hexical.page.mage_hand.summary": "Conjures a magical hand that uses my wristpocketed item to interact with the world. If my wristpocket is empty, acts as though I had interacted with the world.",
- "hexical.page.mage_hand.0": "- if taking an entity, interacts with the entity with the item.$(br)- if taking a vector, interacts with the block with the item.$(br2)$(o)A spectral, floating hand appears at a point you choose within range.$()",
- "hexcasting.spell.hexical:ingest": "Assimilate Food",
- "hexical.page.ingest.summary": "This spell makes me eat my wristpocketed item, nourishing or applying potions to me. Regardless of the item's time to eat or if I'm full, this spell makes me consume it instantly.",
-
- "hexical.page.specks.title": "Specks",
- "hexical.page.specks.0": "I can conjure an image of an iota into the world, called a $(thing)speck$(). Nature allows me to customize them quite extensively, altering their size, thickness of stroke, and more. They also take on my pigment color. Once they are in the world, I can move, rotate, and otherwise alter them for free, regardless of range.",
- "hexcasting.spell.hexical:conjure_speck": "Conjure Speck",
- "hexical.page.conjure_speck.summary": "Conjures a speck with the iota, position, and rotation. Costs one-hundredth of a dust. Pushes the speck iota to the stack.",
- "hexcasting.spell.hexical:move_specklike": "Move Speck",
- "hexical.page.move_specklike.summary": "Moves a speck entity to the position.",
- "hexcasting.spell.hexical:rotate_specklike": "Rotate Speck",
- "hexical.page.rotate_specklike.summary": "Rotates a speck entity to face the vector.",
- "hexcasting.spell.hexical:roll_specklike": "Roll Speck",
- "hexical.page.roll_specklike.summary": "Accepts a number between 0 and 1, representing a fraction of a full rotation, and rotates the speck's image by that amount.",
- "hexcasting.spell.hexical:iota_speck": "Alter Speck",
- "hexical.page.iota_speck.summary": "Changes the speck's iota.",
- "hexcasting.spell.hexical:lifetime_specklike": "Time Speck",
- "hexical.page.lifetime_specklike.summary": "Commands the speck to disappear after that many twentieths of a second.",
- "hexcasting.spell.hexical:size_specklike": "Resize Speck",
- "hexical.page.size_specklike.summary": "Scales the speck, can range from 0 to 10. Represents size in blocks and is zero by default.",
- "hexcasting.spell.hexical:thickness_specklike": "Thicken Speck",
- "hexical.page.thickness_specklike.summary": "Changes the stroke thickness of a pattern speck, can range from 0 to 10. Represents twentieths of a block, and is zero by default.",
- "hexcasting.spell.hexical:pigment_specklike": "Paint Speck",
- "hexical.page.pigment_specklike.summary": "Splashes a pigment iota onto the speck, changing its color after creation.",
- "hexcasting.spell.hexical:kill_specklike": "Dismiss Speck",
- "hexical.page.kill_specklike.summary": "Forces a speck to disappear.",
- "hexcasting.spell.hexical:zone_specklike": "Zone Distillation: Speck",
- "hexical.page.zone_specklike.summary": "Returns specks similarly to other $(l:patterns/entities#hexcasting:zone_entity/animal)zone distillation$() patterns.",
-
- "hexical.page.simple_spells.title": "Hexical Spells",
- "hexcasting.spell.hexical:autograph": "Autograph",
- "hexical.page.autograph.summary": "Permanently autographs the item in my offhand with my name and pigment. Costs nothing.",
- "hexical.page.autograph.description": "An autographed item holds a list of the names people who have casted this spell on it, in order and in shimmering pigmented text. It becomes unstackable with unautographed items, even of the same type, and the same person can sign it multiple times. It may be used as a secure method of ensuring an item was approved of by a person.$(br2)$(o)Success is when your signature becomes an autograph.$()",
- "hexcasting.spell.hexical:conjure_hexburst": "Conjure Hexburst",
- "hexical.page.conjure_hexburst.summary": "Conjures a hexburst at the location with the given iota. Costs one dust. Is subject to the Transgress Others mishap.",
- "hexical.page.conjure_hexburst.description": "Hexbursts are edible items created by taking an iota and wrapping _media around it, over and over until it gains size. When eaten, a hexburst instantly adds the iota it was made from to the consumer's stack. I shall find this property considerably useful if I ever want to trade my entity reference.",
- "hexcasting.spell.hexical:conjure_hextito": "Conjure Hextito",
- "hexical.page.conjure_hextito.summary": "Conjures a hextito at the location. Costs two dust. Is subject to the Transgress Others mishap.",
- "hexical.page.conjure_hextito.description": "Hextitos are triangular crunchy snacks I can conjure. When consumed, I feel the sudden desire to cast the _Hex used in its creation, using my caster's stack rather than an isolated stack like a regular $(l:items/hexcasting)$(item)casting device$(). I shall find it useful to make simple actions like raycasts, especially in conjunction with hexbursts. If a consumer's stack has an unclosed Introspection, it will not cast, making it quite safe to hand out to other people.",
- "hexcasting.spell.hexical:ghast_fireball": "Conjure Fireball",
- "hexical.page.ghast_fireball.summary": "Conjures an explosive fireball that can be punched and damages blocks. Costs three dust.",
- "hexical.page.ghast_fireball.description": "The conjured fireball simply hangs in the air. It must be propelled via punching it or $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$(). It can also be deflected via similar methods.$(br2)$(o)What's the good of having mastery over cosmic balance and knowing the secrets of fate if you can't blow something up?$()",
- "hexcasting.spell.hexical:gasp": "Gasp",
- "hexical.page.gasp.summary": "Instantly replenishes a creature's air bubbles, always costs one dust.",
- "hexical.page.gasp.description": "Regardless of amount of breath restored, this spell costs exactly one dust so I should ideally wait as long as I safely can before casting this spell. I will find it useful while diving, being teleported into a block, or even keeping sea creatures alive on land.$(br2)$(o)The best way to observe a fish is to become a fish.$()",
- "hexcasting.spell.hexical:chorus_blink": "Chorus Blink",
- "hexical.page.chorus_blink.summary": "Between $(l:patterns/spells/basic#hexcasting:blink)$(action)Blink$(), $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), $(item)ender pearls$(), and $(item)chorus fruit$(), this spell serves a harmonious midpoint for safe, precise, and cheap teleportation.",
- "hexical.page.chorus_blink.description": "It consumes a $(item)chorus fruit$() from my inventory and teleports me up to 16 blocks using an offset vector. The cost is a single dust whether I teleport the full 16 blocks or less, and has no penalty for multiple casts in one hex. Ambit works strangely with repeated casts of this spell because each $(o)blink$() shifts my ambit to my new position.$(br2)$(o)I could be there in a heartbeat.$()",
-
- "hexical.page.conjure_compass.title": "Conjure Compasses",
- "hexcasting.spell.hexical:conjure_compass": "Conjure Compass",
- "hexical.page.conjure_compass.summary": "Conjures a compass at the location pointing towards the second vector. Costs three dust.",
- "hexical.page.conjure_compass.description": "The compass does not remember the dimension it was formed in, so regardless of dimension, it points towards the same location. If read with Scribe's Reflection, it returns a unit vector pointing towards the location inside it.$(br2)$(o)Aye, the compass doesn't point North. But we're not trying to find North, are we?$()",
-
- "hexical.page.spike.title": "Conjure Spike",
- "hexical.page.spike.0": "I hear rumors of a sorcerer illager that can summon fangs from the ground. While I find it hard to believe that villagers can shift _media, I have taken inspiration from those myths and created this spell that brings forth spikes from the ground to skewer targets.",
- "hexcasting.spell.hexical:spike": "Conjure Spike",
- "hexical.page.spike.summary": "Takes a non-air position, an axis vector, and a delay in seconds up to ten seconds long and conjures a spike at that location. Costs one shard.",
- "hexical.page.spike.1": "Each spike takes about a half second to strike and deal a hefty three full hearts of damage. If I attempt to cast this spell where a spike has already been primed, it will do nothing. Spikes will also throw back targets in the direction they were conjured.",
-
- "hexical.page.conjure_staff.title": "Conjure Staves",
- "hexical.page.conjure_staff.0": "Conjured staves are not unlike $(l:items/hexcasting)$(item)cyphers$(). They have a battery for casting and when they run out, unable to consume my health or my inventory's stash for _media. They are not rechargable or reprogrammable, and using $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() on it simply destroys it. However, its true power is $(o)input interception$().",
- "hexcasting.spell.hexical:conjure_staff": "Conjure Staff",
- "hexical.page.conjure_staff.summary": "Conjures a $(item)staff$() at the location with the amount of _media, rank, and _Hex respectively.$(br2)$(o)This is my $(l)staff$()$(o). There are many like it, but this one is mine.$()",
- "hexical.page.conjure_staff.1": "When I use my primary or secondary use keys while holding a $(item)conjured staff$(), it intercepts my click, preventing me from interacting with the world while holding it. After a number of clicks corresponding to the rank I assigned at conjuration, it casts the _Hex I gave it, starting the stack with false and true, corresponding to the left and right clicks respectively. If I pause for too long between clicks, it simply cancels the current \"cast\".",
- "hexical.page.conjure_staff.2": "The spell is not too expensive, requiring only an amethyst shard and the _media for the battery. The result is a speedy and versatile $(l:items/hexcasting)$(item)casting device$(), with infinitely more possibilities and no cooldown compared to other $(l:items/hexcasting)$(item)casting devices$().$(br2)Not only that, conjured staves feature an iota storage that can only be edited from the staff itself.",
- "hexcasting.spell.hexical:read_staff": "Staff Reflection",
- "hexical.page.read_staff.summary": "Reads the iota from the $(item)conjured staff's$() inner storage.",
- "hexcasting.spell.hexical:write_staff": "Staff Gambit",
- "hexical.page.write_staff.summary": "Writes an iota to the $(item)conjured staff's$() inner storage. Does not allow player references.",
- "hexcasting.spell.hexical:with_conjured_staff": "Wand Reflection",
- "hexical.page.with_conjured_staff.summary": "Pushes whether this _Hex is currently being cast by a conjured staff.",
- "hexical.page.conjure_staff.3": "By holding certain items in my offhand while conjuring a $(item)conjured staff$(), the $(item)staff$() will take on a similar appearance to that item. The items and their corresponding transformations that I have discovered so far are wheat (a four-leafed clover), nautilus shells (a conch), bells (a handbell), tripwire hooks (a key), and glass blocks (a mirror).",
-
- "hexical.page.pyrotechnics.title": "Pyrotechnics",
- "hexical.page.pyrotechnics.0": "I have stumbled across some spells all about conjuring fireworks. The _media hums quite festively around the patterns, as if they were once used for grand celebrations, although I shudder to imagine how effective they'd be as a weaponized projectile.$(br2)$(o)You don’t need to say anything. Just watch the fireworks.$()",
- "hexcasting.spell.hexical:simulate_firework": "Simulate Firework",
- "hexical.page.simulate_firework.summary": "Analyzes the firework star in my other hand and conjures a firework, with position, velocity, and flight time related to gunpowder amount. Costs one shard plus one dust for each additional gunpowder.",
- "hexcasting.spell.hexical:conjure_firework": "Conjure Firework",
- "hexical.page.conjure_firework.summary": "$(br)Conjures a firework of my exact specifications. It is one of the most complex spells I've discovered. Costs the same as the other firework spell.",
- "hexical.page.conjure_firework.0": "$(o)Basic Theory$()$(br2)The first two parameters of the spell are simple position and velocity. The third parameter dictates flight duration, a number from 1 to 3. I can imagine it as being the amount of gunpowder I would add to a firework rocket.$(br2)The remaining parameters can be imagined as specifications for a virtual firework star.",
- "hexical.page.conjure_firework.1": "$(o)Shape$()$(br2)The fourth parameter controls the shape of the explosion, based off a number 0 to 3.$(br)- 0 is a simple, small ball-shaped explosion.$(br)- 1 is a large ball-shaped explosion.$(br)- 2 is a star-shaped explosion.$(br)- 3 is a large creeper face-shaped explosion.",
- "hexical.page.conjure_firework.2": "$(o)Colors$()$(br2)The fifth and sixth parameters are lists of $(l:hexical:patterns/spells/dyes)dyes$(). The first list controls the colors of the firework's initial burst, while the second controls the colors that the first particles fade into. There must be at least one dye specified for the first list, but the second list can be empty if I do not want any fades.",
- "hexical.page.conjure_firework.3": "$(o)Special Effects$()$(br2)The seventh parameter controls whether the particles of the firework flicker, as if adding glowstone to the virtual firework star.$(br2)The eighth parameter controls whether the particles of the firework leave trails, as if adding a diamond to the virtual firework star.",
-
- "hexical.page.circle_spells.title": "Circle Spells",
- "hexical.page.circle_spells.0": "When the _media courses through the boundaries of a circle, it saturates the domain inside the circle with _media, allowing me to manipulate the environment inside far more flexibly than I am used to. The following are some spells I've come across or developed, which are to only be cast by a $(l:greatwork/spellcircles)spell circle$().",
- "hexcasting.spell.hexical:displace": "Displace",
- "hexical.page.displace.summary": "For absolutely free, I can teleport an entity in my circle to anywhere else inside within the same circle. Unlike $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), takes in world coordinates rather than an offset.",
-
- "hexical.page.evocation.title": "Evocation",
- "hexical.page.evocation.0": "Media is the energy of thought, so it stands to reason that I should be able to simply $(o)think$() magic into existence rather than waving around a staff. After all, I have two chunks' worth of charged amethyst in me at my prime, double that of a $(l:items/staff)$(item)staff$(). I am not yet great enough to shift arbitrary effects into reality but I can bring it forth a prepared _Hex into existence, taking _media from my inventory.",
- "hexcasting.spell.hexical:internalize_hex": "Internalize Hex",
- "hexical.page.internalize_hex.summary": "Internalizes a _Hex, allowing me to cast it by holding the R key for one second even without a staff. Costs one charged amethyst for the etching process.",
- "hexcasting.spell.hexical:is_evoking": "Evoker Reflection",
- "hexical.page.is_evoking.summary": "Pushes how long since a player has been evoking. Is -1 if they are not currently evoking.",
- "hexcasting.spell.hexical:with_evocation": "Evocation Reflection",
- "hexical.page.with_evocation.summary": "Pushes whether evocation is being used to cast this pattern.",
- "hexical.page.evocation.1": "The ancient texts I have learned this technique from reveals many other interesting trifles: _Hexcasters used to perform evocation without casting a _Hex, as some kind of greeting or group ritual, chanting in unison. Experiments have also been done to see if the spell could etch a _Hex into $(o)villagers$() to grant them the ability to shift _media but the results of those experiments were either never documented or have been lost to time.",
-
- "hexcasting.spell.hexical:greater_blink": "Greater Blink",
- "hexical.page.greater_blink.0": "Greater Blink is a significantly cheaper alternative to Greater Teleport. It also does not carry the risk of splattering your items upon arrival. However, it only has pitiful range compared to Greater Teleport and its destination calculations are... esoteric. I also can not specify a target other than myself.",
- "hexical.page.greater_blink.summary": "Teleports me up to 128 blocks away, relative to my position and rotation. Costs two dust.",
- "hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in the direction I'm facing. A vector of (0, 1, 0) would teleport me one block \"up\" in the direction of the top of my head. A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head.",
- "hexical.page.greater_blink.2": "Peculiarly, it moves my feet to the location, perhaps could be helpful to make a raycast simply teleport me right onto the target block rather than submerged into the floor. If I have to do multiple jumps, this property must be accounted for.$(br2)$(o)Long Jaunt! Longer than you think-$()",
-
- "hexical.page.meshes.title": "Meshes",
- "hexical.page.meshes.0": "Meshes are the natural evolution of $(l:hexical:patterns/spells/specks)specks$(). Rather than being restricted to the figure of iotas and patterns, stuck in a two-dimensional plane, meshes accept a list of vectors in three-dimensional space and connect them with lines, allowing for infinite creative constructions. It's also responsive to most patterns used for manipulation of specks.",
- "hexcasting.spell.hexical:conjure_mesh": "Conjure Mesh",
- "hexical.page.conjure_mesh.summary": "Conjures a mesh with the location and leaves a mesh entity on the stack. Cost one dust.",
- "hexical.page.meshes.1": "The mesh must be woven to have any appearance. The constraints for the list of vectors provided to a mesh are quite minimal. The list must be no more than 32 vectors long, and those vectors must have magnitudes less than 10. The mesh will then connect each of those points, defined by the relative offset, to each other.",
- "hexcasting.spell.hexical:weave_mesh": "Weave Mesh",
- "hexical.page.weave_mesh.summary": "Takes a list of vectors, with constraints defined on the prior page, and weaves the mesh into that shape for free.",
- "hexcasting.spell.hexical:read_mesh": "Tangle Purification",
- "hexical.page.read_mesh.summary": "Reads the shape of a mesh as a list of relative vectors. Can be used to copy meshes.",
-
- "hexical.category.scrying": "Scrying",
- "hexical.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world. These patterns can divine a surprising amount of information like types of blocks, status effects, the weather, the nutritional value of food, whether I am sprinting, $(o)block explosion resistance$(), and more. While likely not too useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
-
- "hexical.page.blocks.title": "Blocks",
- "hexcasting.spell.hexical:block_hardness": "Miner's Purification",
- "hexical.page.block_hardness.summary": "Pushes how difficult blocks of that block type are to mine.",
- "hexcasting.spell.hexical:block_blast_resistance": "Demoman's Purification",
- "hexical.page.block_blast_resistance.summary": "Pushes how resistant blocks of that block type are to explosions.",
- "hexcasting.spell.hexical:blockstate_waterlogged": "Plumber's Purification",
- "hexical.page.blockstate_waterlogged.summary": "Pushes whether the block is waterlogged, or null if the block can not be waterlogged.",
- "hexcasting.spell.hexical:blockstate_rotation": "Orientation Purification",
- "hexical.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or null if the block does not have a facing direction.",
- "hexcasting.spell.hexical:blockstate_crop": "Farmer's Purification",
- "hexical.page.blockstate_crop.summary": "Pushes a number 0 to 1, corresponding to how grown that crop is, as well as beehives, composters, and cauldrons. Strangely works on cakes too.",
- "hexcasting.spell.hexical:blockstate_glow": "Glowing Purification",
- "hexical.page.blockstate_glow.summary": "Pushes a boolean for whether the block is in a \"lit\" state, for example furnaces, Redstone torches, lamps, and campfires.",
- "hexcasting.spell.hexical:blockstate_lock": "Lock Purification",
- "hexical.page.blockstate_lock.summary": "Pushes a boolean for whether the block is currently in a \"open\" state, for example doors, trapdoors, fence gates, and open barrels.",
- "hexcasting.spell.hexical:blockstate_turn": "Angle Purification",
- "hexical.page.blockstate_turn.summary": "Pushes a number corresponding to the rotation of signs, skulls, and banners.",
- "hexcasting.spell.hexical:blockstate_bunch": "Bunching Purification",
- "hexical.page.blockstate_bunch.summary": "Pushes how many are in a bunch block, or null otherwise. Useful only for candles, sea pickles, and turtle eggs.",
- "hexcasting.spell.hexical:blockstate_book": "Book Purification",
- "hexical.page.blockstate_book.summary": "Pushes a boolean for whether lecterns or jukeboxes have a book/music disc in them respectively. Rumors say it works for some kind of magic bookshelf too.",
-
- "hexical.page.enchantments.title": "Enchantments",
- "hexcasting.spell.hexical:get_enchantments": "Thaumaturgist's Purification",
- "hexical.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
- "hexcasting.spell.hexical:get_enchantment_strength": "Charm Distillation",
- "hexical.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
-
- "hexical.page.entities.title": "Entities",
- "hexcasting.spell.hexical:get_health": "Vitality Purification",
- "hexical.page.get_health.summary": "Pushes how close an entity is to death. I can think of these in terms of half-hearts.",
- "hexcasting.spell.hexical:get_max_health": "Fitness Purification",
- "hexical.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
- "hexcasting.spell.hexical:get_air": "Suffocation Purification",
- "hexical.page.get_air.summary": "Pushes how many seconds before an entity starts to suffocate. This applies to fish out of water as well as land creatures in water.",
- "hexcasting.spell.hexical:get_max_air": "Lung Purification",
- "hexical.page.get_max_air.summary": "Pushes how many seconds an entity can last outside their normal breathing environment before they start suffocating.",
- "hexcasting.spell.hexical:get_player_hunger": "Hunger Purification",
- "hexical.page.get_player_hunger.summary": "Pushes how full a player is. I can imagine this as individual hunger hunches.",
- "hexcasting.spell.hexical:get_player_saturation": "Stamina Purification",
- "hexical.page.get_player_saturation.summary": "Pushes my saturation, which roughly correlates to how long the player will remain full.",
- "hexcasting.spell.hexical:is_burning": "Inferno Purification",
- "hexical.page.is_burning.summary": "Pushes whether the entity is burning. Also applies to entities that are visually on fire, even if they are immune to fire like blazes attacking.",
- "hexcasting.spell.hexical:burning_time": "Inferno Purification II",
- "hexical.page.burning_time.summary": "Pushes how long in seconds the entity will continue burning if not put out.",
- "hexcasting.spell.hexical:is_wet": "Enderman's Purification",
- "hexical.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
- "hexcasting.spell.hexical:is_baby": "Youth Purification",
- "hexical.page.is_baby.summary": "Pushes whether a living creature is in its baby form. Also works on armor stands oddly.",
- "hexcasting.spell.hexical:breedable": "Reproduction Purification",
- "hexical.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or null if that creature is not capable of that type of reproduction.",
- "hexcasting.spell.hexical:is_sleeping": "Sloth's Purification",
- "hexical.page.is_sleeping.summary": "Pushes whether the entity is sleeping. Applies to players, cats, foxes, and a variety of other creatures.",
- "hexcasting.spell.hexical:is_sprinting": "Racer's Purification",
- "hexical.page.is_sprinting.summary": "Pushes whether the entity is sprinting. Includes if I am swimming or if I have left the ground since sprinting and extends to cats, foxes, and more.",
-
- "hexical.page.food.title": "Food",
- "hexcasting.spell.hexical:edible": "Edibility Purification",
- "hexical.page.edible.summary": "Takes in an item identifier and pushes whether you can eat it.",
- "hexcasting.spell.hexical:get_hunger": "Calorie Purification",
- "hexical.page.get_hunger.summary": "Takes in an item identifier and pushes the amount it will fill you.",
- "hexcasting.spell.hexical:get_saturation": "Satiation Purification",
- "hexical.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill you.",
- "hexcasting.spell.hexical:is_meat": "Flesh Purification",
- "hexical.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat (wolves can eat it).",
- "hexcasting.spell.hexical:is_snack": "Dessert Purification",
- "hexical.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack (you can eat it really quickly).",
-
- "hexical.page.identifiers.title": "Identifiers",
- "hexical.page.identifiers.0": "My _Hexes has so far been quite blind to the world. I can get a creature's height, velocity, and more but I can't directly identify that entity. Nature's solution to the problem is the $(o)identifier iota$(). Every entity, block, status effect, enchantment, sound, etc... has a unique identifier that my _Hexes can identify. Once I have two identifiers, I can compare them with each other.",
- "hexcasting.spell.hexical:identify": "Detective's Purification",
- "hexical.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
- "hexical.page.identifiers.1": "I notice that if I were to use Detective's Purification on an item, it returns that it's an item entity, but if I were to use Recognizer's Purification on that same entity, it would return the type of item. This type of item matches with a block identifier returned by Detective's Purification. I can imagine Recognizer's as returning $(o)additional$() information if possible.",
- "hexcasting.spell.hexical:recognize": "Recognizer's Purification",
- "hexical.page.recognize.summary": "Pushes extra identifier information of an entity, mainly the item type of an item entity or the item type inside an item frame entity.",
- "hexcasting.spell.hexical:get_mainhand_stack": "Tool Purification",
- "hexical.page.get_mainhand_stack.summary": "Returns the type of item in my mainhand.",
- "hexcasting.spell.hexical:get_offhand_stack": "Accessory Purification",
- "hexical.page.get_offhand_stack.summary": "Returns the type of item in my offhand.",
-
- "hexical.page.item.title": "Items",
- "hexcasting.spell.hexical:count_stack": "Storage Purification",
- "hexical.page.count_stack.summary": "Takes in an item entity and pushes how many items are in it.",
- "hexcasting.spell.hexical:count_max_stack": "Warehouse Purification",
- "hexical.page.count_max_stack.summary": "Takes in an item entity and pushes how many items that can stack in it.",
- "hexcasting.spell.hexical:damage_stack": "Deterioration Purification",
- "hexical.page.damage_stack.summary": "Takes in an item entity and pushes how much damage the item has sustained.",
- "hexcasting.spell.hexical:damage_max_stack": "Fragility Purification",
- "hexical.page.damage_max_stack.summary": "Takes in an item entity and pushes how much durability the item can have at its peak.",
-
- "hexical.page.status_effects.title": "Status Effects",
- "hexcasting.spell.hexical:get_effects_entity": "Diagnosis Purification",
- "hexical.page.get_effects_entity.summary": "Pushes a list of status effects the entity is afflicted with.",
- "hexcasting.spell.hexical:get_effects_item": "Prescription Purification",
- "hexical.page.get_effects_item.summary": "Pushes a list of status effects the food or potion will bestow.",
- "hexcasting.spell.hexical:get_effect_category": "Condition Purification",
- "hexical.page.get_effect_category.summary": "Pushes the general \"goodness\" of the effect towards the afflicted. -1 for harmful, 0 for neutral, and 1 for beneficial.",
- "hexcasting.spell.hexical:get_effect_amplifier": "Concentration Distillation",
- "hexical.page.get_effect_amplifier.summary": "Pushes the potency of the specific effect acting on the entity or null if the entity doesn't have it.",
- "hexcasting.spell.hexical:get_effect_duration": "Clearance Distillation",
- "hexical.page.get_effect_duration.summary": "Pushes how long the effect will last in seconds or null if the entity doesn't have it.",
-
- "hexical.page.world.title": "World",
- "hexcasting.spell.hexical:get_light": "Luminance Purification",
- "hexical.page.get_light.summary": "Pushes the light level at the position as a number 0 to 15. If inside a nontransparent block, it returns zero.",
- "hexcasting.spell.hexical:get_weather": "Meterologist's Reflection",
- "hexical.page.get_weather.summary": "Pushes a number corresponding to the weather. 0 for clear, 1 for rain, and 2 for thundering.",
- "hexcasting.spell.hexical:get_time": "Temporal Reflection",
- "hexical.page.get_time.summary": "Pushes the age of the world in seconds.",
- "hexcasting.spell.hexical:get_biome": "Geographical Purification",
- "hexical.page.get_biome.summary": "Pushes the identifier of the biome type that the vector is within.",
- "hexcasting.spell.hexical:get_dimension": "Plane Reflection",
- "hexical.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in."
-}
diff --git a/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
deleted file mode 100644
index 07fb7d9dfea7..000000000000
--- a/projects/1.19/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ /dev/null
@@ -1,679 +0,0 @@
-{
- "advancements.hexical.arch_lamp.title": "守护进程",
- "advancements.hexical.arch_lamp.description": "获得大精灵神灯。",
-
- "advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
- "advancements.hexical.reload_lamp.description": "为神灯重新充能。",
- "advancements.hexical.educate_genie.title": "新秩序",
- "advancements.hexical.educate_genie.description": "向精灵传授新的指示。",
- "advancements.hexical.lamp.title": "可造之材",
- "advancements.hexical.lamp.description": "获得精灵神灯。",
- "advancements.hexical.augmented_reality.title": "增强现实",
- "advancements.hexical.augmented_reality.description": "构筑一个视斑。",
- "advancements.hexical.diy_conjuring.title": "构筑DIY!",
- "advancements.hexical.diy_conjuring.description": "为术士方块附加改进。",
- "advancements.hexical.conjure_hexxy.title": "构筑Hexxy",
- "advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态。",
- "advancements.hexical.hallucinate.title": "只在我的脑海里",
- "advancements.hexical.hallucinate.description": "播放一段只有你能听见的声音!",
- "advancements.hexical.media_slurp.title": "迷幻",
- "advancements.hexical.media_slurp.description": "“你觉得有些东西不太对劲。”",
-
- "block.hexical.hex_candle": "咒术蜡烛",
- "block.hexical.mage_block": "术师方块",
- "block.hexical.media_jar": "媒质罐",
- "death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
- "death.attack.magic_missile.item": "%1$s的魔法存在被%2$s用%3$s刺穿了",
- "death.attack.spike": "%1$s被%2$s刺穿了",
- "death.attack.spike.item": "%1$s被%2$s用%3$s刺穿了",
- "entity.hexical.living_scroll": "活线卷轴",
- "entity.hexical.magic_missile": "魔法飞弹",
- "entity.hexical.mesh": "网斑",
- "entity.hexical.speck": "视斑",
- "entity.hexical.spike": "紫水晶尖刺",
- "key.categories.hexical": "Hexical",
- "key.hexical.evoke": "唤咒",
- "key.hexical.telepathy": "心灵感应",
- "item.hexical.arch_lamp": "大精灵神灯",
- "item.hexical.conjured_compass": "构筑的指南针",
- "item.hexical.conjured_staff": "构筑的法杖",
- "item.hexical.grimoire": "咒典",
- "item.hexical.hexburst": "咒术星爆糖",
- "item.hexical.hextito": "咒力多滋",
- "item.hexical.lamp": "手持式精灵神灯",
- "item.hexical.gauntlet_staff": "护手法杖",
- "item.hexical.lightning_rod_staff": "避雷针法杖",
- "item.hexical.living_scroll_small": "小型活线卷轴",
- "item.hexical.living_scroll_medium": "中型活线卷轴",
- "item.hexical.living_scroll_large": "大型活线卷轴",
- "itemGroup.hexical.general": "Hexical",
- "subtitles.hexical.evoking_murmur": "玩家:吟唱",
- "subtitles.hexical.evoking_casts": "玩家:施法",
- "subtitles.hexical.lamp_activate": "神灯:启动",
- "subtitles.hexical.lamp_deactivate": "神灯:终止",
- "subtitles.hexical.sudden_realization": "点子:出现",
- "subtitles.hexical.player_slurp": "玩家:啜饮",
- "subtitles.hexical.candle_flares": "蜡烛:噼啪作响",
- "subtitles.hexical.replenish_air": "空气:出现",
- "tooltip.hexical.scroll_aged": "陈化",
- "tooltip.hexical.scroll_glow": "发光",
- "tooltip.hexical.scroll_vanished": "隐消",
- "particle.minecraft.soul_7": "",
- "misc.hexical.media_vision": "",
-
- "hexical.autograph.header": "由以下人士亲笔签名:",
-
- "hexical.fortune.0": "必然如此。",
- "hexical.fortune.1": "绝对可以。",
- "hexical.fortune.2": "毫无疑问。",
- "hexical.fortune.3": "当然。",
- "hexical.fortune.4": "大可放心。",
- "hexical.fortune.5": "我想是的。",
- "hexical.fortune.6": "很有可能。",
- "hexical.fortune.7": "前景很好。",
- "hexical.fortune.8": "是。",
- "hexical.fortune.9": "如你所想。",
- "hexical.fortune.10": "回应不太清晰,再试一次吧。",
- "hexical.fortune.11": "请稍后再问。",
- "hexical.fortune.12": "天机不可泄露。",
- "hexical.fortune.13": "无法预测。",
- "hexical.fortune.14": "集中注意力,再问一遍。",
- "hexical.fortune.15": "想得美。",
- "hexical.fortune.16": "我看不行。",
- "hexical.fortune.17": "资料表明不行。",
- "hexical.fortune.18": "前景不太好。",
- "hexical.fortune.19": "很悬。",
-
- "hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
- "hexcasting.mishap.bad_block.mage_block": "一个术师方块",
- "hexcasting.mishap.bad_block.prestidigitation": "一个对戏法敏感的方块",
- "hexcasting.mishap.bad_item.grimoire": "一个咒典",
- "hexcasting.mishap.bad_item.firework_star": "一个烟火之星",
- "hexcasting.mishap.bad_item.has_brain": "一个能够思考的村民",
- "hexcasting.mishap.bad_item.smart_villager": "一个老手或更高等级的村民",
- "hexcasting.mishap.bad_item.lamp_full": "一个带有媒质的神灯",
- "hexcasting.mishap.bad_item.lamp": "一个空神灯",
- "hexcasting.mishap.bad_item.living_scroll": "一个活线卷轴",
- "hexcasting.mishap.bad_item.prestidigitation": "一个对戏法敏感的实体",
- "hexcasting.mishap.bad_item.mesh": "一个网斑",
- "hexcasting.mishap.bad_item.speck": "一个视斑",
- "hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
- "hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
- "hexcasting.mishap.invalid_value.solid_block": "一个非空气方块",
- "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
- "hexcasting.mishap.invalid_value.pattern_list": "一个仅由图案组成的列表",
- "hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
- "hexcasting.mishap.invalid_value.class.dye": "一个染料",
- "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
- "hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
- "hexcasting.mishap.invalid_value.true_dye": "一个有色染料",
- "hexcasting.mishap.invalid_value.to_pigment": "一个有色染料、一个代表染色剂物品的标识、一个含有染色剂的物品实体,或一个玩家",
- "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
- "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
- "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
- "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
- "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
- "hexcasting.mishap.invalid_value.potion_holding": "一个食物、药水、或药箭物品实体",
- "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
- "hexcasting.mishap.invalid_value.integer_natural": "一个大于0的整数",
- "hexcasting.mishap.invalid_value.recognizable": "一个带有额外信息的目标",
- "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
- "hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
- "hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
- "hexcasting.mishap.hexical:active_arch_lamp": "物品栏中本应有一个启动的大精灵神灯。",
- "hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
- "hexcasting.mishap.hexical:inedible": "魔袋中的物品无法食用。",
- "hexcasting.mishap.hexical:needs_chorus_fruit": "物品栏中需有紫颂果。",
- "hexcasting.mishap.hexical:needs_conjured_staff": "本应由构筑的法杖施放。",
- "hexcasting.mishap.hexical:needs_lamp": "本应由精灵神灯施放。",
- "hexcasting.mishap.hexical:needs_hand_lamp": "本应由手持式精灵神灯施放。",
- "hexcasting.mishap.hexical:needs_arch_lamp": "本应由大精灵神灯施放。",
- "hexcasting.mishap.hexical:needs_skippable": "本应使用于西西弗斯之策略或托特之策略中。",
- "hexcasting.mishap.hexical:needs_thoth": "本应使用于托特之策略中。",
- "hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
- "hexcasting.mishap.hexical:themis": "伪栈栈顶本应存在一个数。",
-
- "hexcasting.spell.book.hexical:theodolite": "经纬仪之纯化",
- "hexcasting.spell.book.hexical:damage_stack": "损耗之纯化",
- "hexcasting.spell.book.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
- "hexcasting.spell.book.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
- "hexcasting.spell.book.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
- "hexcasting.spell.book.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
- "hexcasting.spell.book.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
- "hexcasting.spell.book.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
- "hexcasting.spell.book.hexical:get_effect_amplifier": "浓度之馏化",
- "hexcasting.spell.book.hexical:get_effects_item": "处方之纯化",
- "hexcasting.spell.book.hexical:get_enchantments": "奇术师之纯化",
- "hexcasting.spell.book.hexical:breedable": "繁衍之纯化",
- "hexcasting.spell.book.hexical:get_hand_lamp_position": "精灵之精思:空间型",
- "hexcasting.spell.book.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
- "hexcasting.spell.book.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
- "hexcasting.spell.book.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
- "hexcasting.spell.book.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
- "hexcasting.spell.book.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
- "hexcasting.spell.book.hexical:get_biome": "地理之纯化",
- "hexcasting.spell.book.hexical:get_weather": "天气学家之精思",
- "hexcasting.spell.book.hexical:recognize": "识别器之纯化",
- "hexcasting.spell.book.hexical:shuffle_pattern": "图案制作师之馏化",
- "hexcasting.spell.book.hexical:zone_specklike": "区域之馏化:类视斑",
- "hexcasting.spell.book.hexical:modify_block_bouncy": "弹性",
- "hexcasting.spell.book.hexical:modify_block_energized": "激能",
- "hexcasting.spell.book.hexical:modify_block_ephemeral": "消逝",
- "hexcasting.spell.book.hexical:modify_block_invisible": "隐形",
- "hexcasting.spell.book.hexical:modify_block_replaceable": "可替",
- "hexcasting.spell.book.hexical:modify_block_semipermeable": "半透",
- "hexcasting.spell.book.hexical:modify_block_volatile": "失稳",
- "hexcasting.spell.book.hexical:read_shelf": "图书管理员之纯化,第二型",
-
- "hexical.page.hexical_changes.title": "Hexical 中的改动",
- "hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()……甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()本身也变得更可塑、更$(o)可操纵$(),产生更为精确精细的媒质效果已不是难事。",
- "hexical.page.hexical_changes.1": "我的工具也更顺手了。我注意到,使用$(l:items/staff)$(item)法杖$()时耗费的注意力减少了,我也能在使用时四处走动;之后射线追踪的时候目标就再也跑不出我的视线范围了。不过我也不能太过放松,自然对我失误的惩罚力度依然如旧。我现在还可以用$(l:patterns/readwrite#hexcasting:write)书吏之策略$()直接向$(l:items/abacus)$(item)算盘$()写入。",
- "hexical.page.lightning_rod_staff.0": "我往一支避雷针的末端嵌了一整块紫水晶,就得到了这种造型令人印象深刻的$(l:items/staff)$(item)法杖$()。它拿起来有些沉重,但用起来仿佛在$(o)号令闪电$()。",
- "hexical.page.lightning_rod_staff.1": "$(o)我知道世上有困难$(br)而且不止一种。$(br)有些自前路而来$(br)有些从身后接近。$(br2)但我买了根球棍。$(br)你看,我已经准备完毕。$(br)现在我的那些麻烦事$(br)马上就要有$(l)麻烦$()了!",
- "hexical.page.gauntlet_staff.0": "法杖很重,拿着也不趁手。如果对其失去了兴趣,可以换成这个护手一样的“$(l:items/staff)$(item)法杖$()”,以此亲手感知、亲手操控媒质。",
- "hexical.page.gauntlet_staff.1": "$(o)等等,手指是什么东西?$()",
-
- "hexical.page.grimoire.title": "咒典",
- "hexical.page.grimoire.0": "以充能紫水晶和$(l:items/edified)$(item)启迪木$()$()给$(item)附魔书$()装面,$(item)附魔书$()便能将$(media)媒质$()困在书页内部,就像一间回音室。之后可向其中引入图案至图案列表的绑定关系,以让$(item)咒典$()内部的$(media)媒质$()无限反弹。",
- "hexical.page.grimoire.1": "在物品栏中放有$(item)咒典$(),再通过$(l:items/staff)$(item)法杖$()绘制其中与图案列表关联的$(l:patterns/patterns_as_iotas)图案$(),该图案会$(o)扩展$()成对应列表,同时发出一阵微弱的$(hex)咒术$()施放声。如此就为繁重的咒术(比如射线追踪曼怛罗和大型图案)创建了捷径。$(item)咒典$()甚至能截获自然提供的图案,可以完全覆写,也可加入额外功能。$(br2)$(o)要是想读一本还没写出来的书,那就亲自去写。$()",
- "hexcasting.spell.hexical:write_grimoire": "写入咒典",
- "hexical.page.write_grimoire.summary": "向副手$(item)咒典$()写入一个图案至图案列表的绑定关系。",
- "hexcasting.spell.hexical:erase_grimoire": "擦除咒典",
- "hexical.page.erase_grimoire.summary": "若副手持有$(item)咒典$(),擦除其中相应的图案列表绑定。",
- "hexcasting.spell.hexical:index_grimoire": "档案员之精思",
- "hexical.page.index_grimoire.summary": "获取$(item)咒典$()中所有图案的列表。",
-
- "hexical.page.hex_candle.title": "咒术蜡烛",
- "hexical.page.hex_candle.0": "首次以$(l:hexical:patterns/spells/prestidigitation)魔法$()或$(item)打火石$()点燃后,这些漂亮的小蜡烛上会燃起苍白色的火焰。若有人与其交互,它会复制该人的染色剂。也可以手持染色剂物品右击直接改变它的颜色。熄灭则需潜行右击。",
-
- "hexical.page.living_scroll.title": "活线卷轴",
- "hexical.page.living_scroll.0": "活线卷轴中混有一小份紫水晶,其上墨迹会像$(l:items/staff)$(item)法杖$()绘制出的图案那样颤动。活线卷轴的神奇之处还不止于此,它还能展示图案列表。$(br2)$(o)不带点疯劲,怎么能叫作家呢?$()",
- "hexical.page.living_scroll.1": "卷轴上的图案可随意重绘,也可从卷轴中读出图案。这类卷轴只接受图案列表,单个图案 iota 会自动置入列表之中。写有图案列表时,活线卷轴会依次展示单个图案。图案每秒切换一次,所有活线卷轴都会同步切换。就算是在不同时间点向两份卷轴写入同一图案列表,最后两者也会建立同步。",
- "hexical.page.living_scroll.2": "后页记录了一些用来操纵活线卷轴的法术。再次施放法术就能消除大部分此类法术产生的效果。它们都无需消耗媒质。",
- "hexcasting.spell.hexical:age_scroll": "陈化卷轴",
- "hexical.page.age_scroll.summary": "令卷轴的纸页泛黄,产物和我找到的一些远古卷轴极为相似。",
- "hexcasting.spell.hexical:glow_scroll": "点亮墨迹",
- "hexical.page.glow_scroll.summary": "使得活线卷轴的墨迹在暗处发光。",
- "hexcasting.spell.hexical:color_scroll": "色染墨迹",
- "hexical.page.color_scroll.summary": "改变活线卷轴墨迹的颜色,具体由所给向量决定;各分量对应红、绿、蓝,取值范围为 0 到 1。",
- "hexcasting.spell.hexical:vanish_scroll": "隐消卷轴",
- "hexical.page.vanish_scroll.summary": "使得卷轴的纸张隐形,图案保留不变,看上去就像图案被蚀刻在方块表面一样。",
-
- "hexical.page.media_jar.title": "媒质罐",
- "hexical.page.media_jar.0": "我制作了这个能盛液态$(media)媒质$()的小装饰件,它会闪闪发光。但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,从而造出了瓶装的液态$(media)媒质$()。",
- "hexical.page.media_jar.1": "之前的$(hex)咒术师们$()还制造了一种类似的物品,他们通常会饮用其中液体,以此预知未来。瓶中装着的可是浸润于万事万物的思维能量,它给出的答案也许值得一听。$(br2)$(o)如你所想。$()",
-
- "hexical.category.lamp": "精灵神灯",
- "hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。传说中有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,因此我分出了这一章,用于记录我对它的研究。",
-
- "hexcasting.spell.hexical:lamp_finale": "终局之精思",
- "hexical.page.lamp_finale.hand": "放下神灯的那一刹那,神灯会额外施法一次。这个图案能判断精灵的施法是否是最后一次,并据此做出反应。",
- "hexical.page.lamp_finale.arch": "停止大精灵神灯时,它会额外施法一次。我可以使用这个图案来判断某一次施法是否是最后的残响。",
-
- "hexical.page.mysterious_lamp.title": "神秘的灯壶",
- "hexical.page.mysterious_lamp.0": "我终于找到了上千年传言中说的东西了!如此强大的物件居然是在一位流浪商人的手里。这件神灯仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。神灯里还有一个实体,它的施法能力与我相当。",
- "hexcasting.spell.hexical:educate_genie": "教导精灵",
- "hexical.page.educate_genie.summary": "将我的想法教给实体。而因为我是在$(o)教导$()实体,而非$(o)蚀刻$()$(l:items/hexcasting)$(item)施法物品$(),交予精灵的$(hex)咒术$()可在后续任意时刻任意修改,而不会因此损失$(media)媒质$()。",
-
- "hexical.page.new_possibilities.title": "全新的可能性",
- "hexical.page.new_possibilities.0": "$(o)$(l)每一时刻$()它都在施法。往里写入法术后,迎面而来的是一束精确而又永不停歇的$(media)媒质$()流。我估计施法速度大概是在每秒二十次。神灯中的存在会以极高的效率施法,并且不会像其他施法手段那样产生大量声音和粒子。",
- "hexical.page.new_possibilities.1": "我设计了一些配合神灯的有用图案,见后续页。这些图案只应该由神灯中的精灵运行,否则招致的便是“冒充精灵”事故,施法物品会脱手,并产生红色火花。$(br2)$(o)是的,但你的$(l)$(o)咒术师$()$(o)总是关注能不能做到,而不想想应不应该这么做。$()",
- "hexcasting.spell.hexical:get_hand_lamp_position": "精灵之精思:空间型",
- "hexical.page.get_hand_lamp_position.summary": "将我开始使用神灯时的位置压入栈顶。",
- "hexcasting.spell.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
- "hexical.page.get_hand_lamp_rotation.summary": "将我开始使用神灯时的朝向压入栈顶。",
- "hexcasting.spell.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
- "hexical.page.get_hand_lamp_velocity.summary": "将我开始使用神灯时的速度压入栈顶。",
- "hexcasting.spell.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
- "hexical.page.get_hand_lamp_use_time.summary": "将神灯使用的时间压入栈顶。该数除以 20 后即为开始使用神灯后经过的秒数。",
- "hexcasting.spell.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
- "hexical.page.get_hand_lamp_media.summary": "将神灯中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
- "hexcasting.spell.hexical:with_hand_lamp": "精灵之精思",
- "hexical.page.with_hand_lamp.summary": "检验当前$(hex)咒术$()是否由手持式精灵神灯施放。",
- "hexcasting.spell.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
- "hexical.page.set_hand_lamp_storage.summary": "将神灯的内部存储设为任意 iota。奇特的是,这个图案不会招致“违犯他人”事故,也许是因为使用神灯时需要我维持注意力集中吧。",
- "hexcasting.spell.hexical:set_hand_lamp_storage": "精灵之策略",
- "hexical.page.get_hand_lamp_storage.summary": "取出手持式神灯内部存储的 iota,默认返回 Null。",
-
- "hexical.page.offerings.title": "仪献意识",
- "hexical.page.offerings.0": "施放咒术会使得意识失去思考的能量,镇定知觉,麻痹神经元……真是叫人欲罢不能。对于$(l:items/staff)$(item)法杖$()、$(l:items/hexcasting)$(item)施法物品$()、法术环来说,施法的速度足够缓慢,能给意识喘息的时间;促动石则一经校准无需再次更换。不过论及神灯的施法速度,那就算是最高效的意识也难以为继。",
- "hexical.page.offerings.1": "神灯会困住精灵,向里面重新充能就会将其释放出来。因此,为精灵神灯重新充能的唯一手段,便是同时替换$(media)媒质$()$(o)和$()精灵,强令一个全新的意识代替原有的工作。用一个村民就可以了。这也是我所制造的法术的用途。$(br2)$(o)我的名字?我的名字是……哦天哪,我为什么记不起我的名字了?$()",
- "hexcasting.spell.hexical:offer_mind": "制造精灵",
- "hexical.page.offer_mind.summary": "可由我施放,能从村民那里$(o)借来$()经验和记忆,交给我副手中的神灯。图案本身需要消耗 1 个充能紫水晶,同时消耗我给予精灵的$(media)媒质$()。",
- "hexical.page.offerings.2": "值得留意的是,这个法术$(o)不会$()杀死村民,而是会从其意识中分出一部分用作精灵的替代品。村民的主意识则只会失去一部分记忆。我听过传言称,古代的$(hex)咒术师们$()会以此像种庄稼一样$(o)培育$()村民的意识,再消耗育成的意识给神灯充能,并留出时间供村民重新学习他们失去的意识。",
- "hexical.page.offerings.3": "不是所有村民都能变成精灵。我推测,那些不及老手等级的村民不具有值得使用的媒质,对他们施放的法术也会直接失效。而在将村民的大部分知识$(o)优化$()到施法方向后,专家大概不会比老手强出多少。不过,某些技能应该还是会影响到施法的质量。笔记见下页。",
- "hexical.page.offerings.4": "根深蒂固的意识和生来具有的能力似乎不受优化流程的影响。大师村民们的技艺已臻完美,知识也已烂熟于心,因此他们的施法能力有了质的飞跃。一生都在周游世界的流浪商人则极其熟稔于探索,由他们制成的神灯也会反应出这一特质。",
-
- "hexical.page.arch_lamps.title": "大精灵神灯",
- "hexical.page.arch_lamps.0": "大师级村民的意识不只是丢失意识,而是会离开身体,完全取代原本的精灵。而因为施放法术的是独立的实体,神灯应该能在我没手持的时候施法。这些大精灵神灯对应的操作是“启动”和“停止”,而非“使用”。而当其处于我物品栏中时,就算没有我的输入,它们也会每时每刻施法。",
- "hexical.page.arch_lamps.1": "大精灵神灯的输出太过庞大,甚至能令我周围的空气进入$(media)媒质$()饱和状态……不可思议。不幸的是,若在我物品栏中有两个神灯同时处于启动状态,它们的回响会相互碰撞,致使其停止,并使得物品栏中所有大精灵神灯几秒内无法使用。同一时刻应当只有一个大精灵神灯启动,但此时还可以使用一个普通神灯。",
- "hexical.page.arch_lamps.2": "$(o)我是一大团肉乎乎的东西,体表圆滑,没有嘴。原来曾经是眼睛的地方如今是两个冒着白烟的洞,两根橡胶棒似的东西曾经是我的双臂。肉向四周摊开变成一堆没有腿的肉团,柔软滑腻。$(br2)我没有嘴,但我必须呐喊。$()",
- "hexcasting.spell.hexical:activate_arch_lamp": "启动大精灵",
- "hexical.page.activate_arch_lamp.summary": "此图案可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。停止所有大精灵神灯,并启动一个先前未启动的。",
- "hexcasting.spell.hexical:terminate_arch_lamp": "终止大精灵",
- "hexical.page.terminate_arch_lamp.summary": "此图案可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。停止当前启动的大精灵神灯。",
- "hexcasting.spell.hexical:has_arch_lamp": "大精灵之纯化",
- "hexical.page.has_arch_lamp.summary": "判断玩家当前是否已启动大精灵神灯。",
- "hexcasting.spell.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
- "hexical.page.get_arch_lamp_position.summary": "将我开始使用大精灵神灯时的位置压入栈顶。",
- "hexcasting.spell.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
- "hexical.page.get_arch_lamp_rotation.summary": "将我开始使用大精灵神灯时的朝向压入栈顶。",
- "hexcasting.spell.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
- "hexical.page.get_arch_lamp_velocity.summary": "将我开始使用大精灵神灯时的速度压入栈顶。",
- "hexcasting.spell.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
- "hexical.page.get_arch_lamp_use_time.summary": "将神灯使用的时间压入栈顶。该数除以 20 后即为开始使用神灯后经过的秒数。",
- "hexcasting.spell.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
- "hexical.page.get_arch_lamp_media.summary": "将神灯中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
- "hexcasting.spell.hexical:with_arch_lamp": "大精灵之精思",
- "hexical.page.with_arch_lamp.summary": "检验当前$(hex)咒术$()是否由大精灵神灯施放。",
- "hexcasting.spell.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
- "hexical.page.get_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。获取神灯的 iota 存储。",
- "hexcasting.spell.hexical:set_arch_lamp_storage": "大精灵之策略",
- "hexical.page.set_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及大精灵神灯自身运行。设定神灯的 iota 存储。可能招致“违犯他人”事故。",
-
- "hexical.page.enlightened_patterns.title": "启迪后图案",
- "hexical.page.enlightened_patterns.0": "在经过启迪之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。",
- "hexcasting.spell.hexical:am_enlightened": "显圣之纯化",
- "hexical.page.am_enlightened.summary": "检验所给玩家是否和我一样经过启迪。",
- "hexcasting.spell.hexical:is_brainswept": "感知之纯化",
- "hexical.page.is_brainswept.summary": "检验实体“是否经由魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
-
- "hexical.page.simple_patterns.title": "Hexical 图案",
- "hexcasting.spell.hexical:entity_width": "卡尺之纯化",
- "hexical.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
- "hexcasting.spell.hexical:theodolite": "经纬仪之纯化",
- "hexical.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
- "hexcasting.spell.hexical:swap_one_three": "反照之策略",
- "hexical.page.swap_one_three.summary": "反照栈顶三个 iota 的顺序,将 A, B, C 变为 C, B, A。相当于交换栈顶元素和栈顶往下第三元素。",
- "hexcasting.spell.hexical:swap_two_three": "泡浮之策略",
- "hexical.page.swap_two_three.summary": "使得栈顶往下第三元素上浮过栈顶往下第二元素,相当于交换它们。",
- "hexcasting.spell.hexical:similar": "相似之馏化",
- "hexical.page.similar.summary": "检验两个 iota 是否类型相同。",
- "hexcasting.spell.hexical:congruent": "全等之馏化",
- "hexical.page.congruent.summary": "检验两个图案是否外形相同且方向相同。",
- "hexcasting.spell.hexical:dup_many": "狄俄斯库里之策略,第二型",
- "hexical.page.dup_many.summary": "接受一个数,并复制栈顶开始所给数个元素,保留顺序。",
- "hexcasting.spell.hexical:shuffle_pattern": "图案制作师之馏化",
- "hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代咒术师会把这些图案用在某种$(o)庞大的图书馆$()中。",
-
- "hexical.page.perlin.title": "准随机",
- "hexical.page.perlin.0": "某些地点的环境$(media)媒质$()密度比其他位置高。这种密度可以测量;甚至能在时间上回溯或前进,以获取与该位置和该时间对应的、在 0 到 1 之间的准随机数。时间和空间上距离较近的点得到的结果也相近。",
- "hexcasting.spell.hexical:perlin": "柏林之馏化",
- "hexical.page.perlin.summary": "测量所给空间和时间的环境$(media)媒质$()密度,结果在 0 到 1 之间。",
-
- "hexical.page.special_raycasts.title": "特殊射线追踪",
- "hexcasting.spell.hexical:fluid_raycast": "海军之馏化",
- "hexical.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.spell.hexical:fluid_surface_raycast": "睡莲之馏化",
- "hexical.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.spell.hexical:piercing_raycast": "轨道炮之提整",
- "hexical.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
- "hexcasting.spell.hexical:piercing_surface_raycast": "激光之提整",
- "hexical.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
-
- "hexical.page.telepathy.title": "心灵感应",
- "hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于玩家的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取或向其写入思维。",
- "hexcasting.spell.hexical:get_telepathy": "心灵感应之精思",
- "hexical.page.get_telepathy.summary": "对某种影像保持注意力,就可通过此图案探测到注意力的强度。压入我按下“心灵感应”键的时间,如果未按下则返回 -1。",
- "hexcasting.spell.hexical:send_telepathy": "传递思维",
- "hexical.page.send_telepathy.summary": "将 iota 暂时显示在快捷栏上方。如果持续施放,则每次施放都会立刻覆盖上一次的结果。",
- "hexcasting.spell.hexical:shout_telepathy": "喊出思维",
- "hexical.page.shout_telepathy.summary": "在屏幕中央显示 iota。这么做会阻碍视野,消散也要时间,因此不应经常使用。",
- "hexcasting.spell.hexical:pling": "幻听扣弦",
- "hexical.page.pling.summary": "使我听到一段扣弦声,其他玩家无法听见。",
- "hexcasting.spell.hexical:click": "幻听咔哒",
- "hexical.page.click.summary": "使我听到一段咔哒声,其他玩家无法听见。",
- "hexcasting.spell.hexical:moving_up": "突进之精思",
- "hexical.page.moving_up.summary": "压入我试图向前移动的时间,未按下“向前移动”则返回 -1。",
- "hexcasting.spell.hexical:moving_down": "后撤之精思",
- "hexical.page.moving_down.summary": "压入我试图向后移动的时间,未按下“向后移动”则返回 -1。",
- "hexcasting.spell.hexical:moving_left": "左躲之精思",
- "hexical.page.moving_left.summary": "压入我试图向左移动的时间,或返回 -1。很容易和右避之精思区分,因为左躲之精思名字里有个“左”。",
- "hexcasting.spell.hexical:moving_right": "右避之精思",
- "hexical.page.moving_right.summary": "压入我试图向右移动的时间,或返回 -1。很容易和左躲之精思区分,因为右避之精思名字里有个“右”。",
- "hexcasting.spell.hexical:jumping": "腾跃之精思",
- "hexical.page.jumping.summary": "压入我试图跳跃的时间,未按下“跳跃”则返回 -1。",
-
- "hexical.page.soroban.title": "珠算图案",
- "hexical.page.soroban.0": "这些图案能操纵一个虚计数器。在$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()被占用或用得太多时,这些图案就能派上用场,比如维护$(l:patterns/meta#hexcasting:for_each)$(action)托特$()循环的迭代次数。一些远古时代的残本推荐将其用于某种$(o)递归深度$()的统计。$(br2)需注意,它们直接用法杖绘制时无法正常工作。似乎这些存储量只会存在一瞬。",
- "hexcasting.spell.hexical:soroban_increment": "珠算之精思",
- "hexical.page.soroban_increment.summary": "压入珠算计数器当前值,而后令计数器增加 1。",
- "hexcasting.spell.hexical:soroban_decrement": "珠算之精思,第二型",
- "hexical.page.soroban_decrement.summary": "压入珠算计数器当前值,而后令计数器减少 1。",
- "hexcasting.spell.hexical:soroban_reset": "珠算之策略",
- "hexical.page.soroban_reset.summary": "重置珠算计数器。",
-
- "hexical.page.metas.title": "Hexical 元运行",
- "hexcasting.spell.hexical:janus": "雅努斯之策略",
- "hexical.page.janus.0": "立即终止当前$(hex)咒术$(),无视所有限制。不同于$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),它甚至能跳出$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()和$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()。",
- "hexical.page.janus.1": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限;$(l:hexical:patterns/metaevals#hexical:janus)$(action)雅努斯之策略$()不受$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()影响。$(br2)$(o)理解事物已然终结非常重要。$()",
- "hexcasting.spell.hexical:nephthys": "奈芙蒂斯之策略",
- "hexical.page.nephthys.0": "弹出一个图案或图案列表,在栈顶往下一定位置处施放所给图案或列表,向下的元素数即是图案尾部的长度。达成的效果与外科医师之提整类似。",
- "hexical.page.nephthys.1": "这个图案非常好用,与$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()配合几乎能处理栈中的所有问题,潜入栈中后压入 iota,再处理“栈顶”的 iota。这一操作的名字来源于哀悼和河流的女神,意指其“深埋”或“潜入”栈中的操作。$(br2)$(o)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()",
- "hexcasting.spell.hexical:sekhmet": "塞赫麦特之策略",
- "hexical.page.sekhmet.0": "清除栈,栈顶若干元素除外,具体数量由图案的尾部长度决定。上方的示例分别会保留 0 个、1 个、2 个 iota。直接绘制时$(o)不是$()元运行。",
- "hexical.page.sekhmet.1": "此策略的效果可通过$(l:patterns/stackmanip#hexcasting:stack_len)$(action)群体之精思$()、$(l:patterns/lists#hexcasting:last_n_list)$(action)群体之策略$()、$(l:patterns/lists#hexcasting:slice)$(action)选择之提整$()、$(l:patterns/lists#hexcasting:splat)$(action)群体之拆解$()序列简单达成,但这个策略使用起来相当方便。它和托特之策略相性极佳,适合对付那些只需返回栈顶若干元素、其余 iota 仅参与施放的伪栈。$(br2)$(o)凡事都可能,但不都有必要。$()",
- "hexcasting.spell.hexical:atalanta": "阿塔兰忒之策略",
- "hexical.page.atalanta.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()或$(l:hexical:patterns/metaevals#hexical:sisyphus)$(action)西西弗斯之策略$()内部使用。效果与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()类似,但不会完全停止迭代,而只是会跳过当前迭代剩余的部分。",
- "hexical.page.atalanta.1": "此图案常用作多重条件循环的“卫语句”。比如,在获取到实体列表后,可能只需根据一长串条件挑出一部分作为目标。使用此图案,即可避免造出层层嵌套的条件判断,而是在判断不通过时直接“$(o)continue$()”/“$(o)继续$()”到下一迭代,如此就无需执行本迭代内后续的语句了。$(br2)$(o)You shall not pass!$()",
- "hexcasting.spell.hexical:castor": "卡斯托耳之策略",
- "hexical.page.castor.0": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()内部使用。详情见下一页。小心“钻研过深”事故。",
- "hexical.page.castor.1": "此图案会出栈一个 iota,并将其作为$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()的一个新迭代项,在当前迭代结束后立即开始。该迭代的栈顶元素即为所出栈的元素。想成把 iota 放到$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()所接受的迭代列表的开头,可能会更好理解。$(br2)$(o)不要永远沿着路走,而要走无路之处……并留下你的足迹。$()",
- "hexcasting.spell.hexical:pollux": "波吕克斯之策略",
- "hexical.page.pollux.0": "$(l:hexical:patterns/metaevals#hexical:castor)$(action)卡斯托耳之策略$()的兄弟图案,此图案会将新迭代置于所有迭代的末尾。同样有风险招致“钻研过深”事故。",
- "hexical.page.pollux.1": "效果与其兄弟图案基本一致,但新的迭代置于末尾。我曾阅读过详细记载使用这对图案的技术的卷轴,技术的名字是$(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)深度优先搜索$()和$(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)广度优先搜索$()。$(br2)$(o)深入之前应先探索表面。$()",
- "hexcasting.spell.hexical:sisyphus": "西西弗斯之策略",
- "hexical.page.sisyphus.0": "接受一个图案列表,并持续不断运行,直至遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()或$(l:hexical:patterns/metaevals#hexical:janus)$(action)雅努斯之策略$()。",
- "hexical.page.sisyphus.1": "我曾听过有些能够自我复制的$(hex)咒术$(),叫做“$(o)自产生程序$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()会在迭代间保留,且每次施放均以基础栈起始。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()",
- "hexcasting.spell.hexical:themis": "忒弥斯之策略",
- "hexical.page.themis.0": "接受一个列表和一个图案列表,或一个列表与单个图案;在第一参数处运行第二参数,并排序结果,运行的过程与$(l:patterns/meta#hexcasting:for_each)托特之策略$()类似。",
- "hexical.page.themis.1": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()",
-
- "hexical.page.akashic_utils.title": "阿卡夏实用法术",
- "hexical.page.akashic_utils.0": "我发现了阿卡夏图书馆的便捷操作!右击或是$(l:hexical:patterns/spells/prestidigitation)以魔法方式$()与有内容物的阿卡夏书架交互,即可将其 iota 压入我的法杖栈。以卷轴右击可以把对应的图案复制到卷轴上。最后,我还发现了两个图案,可以直接向影响范围内的书架读写,无需消耗媒质。",
- "hexcasting.spell.hexical:key_shelf": "图书管理员之纯化",
- "hexical.page.key_shelf.summary": "读取影响范围内阿卡夏书架的键。无需消耗媒质。",
- "hexcasting.spell.hexical:read_shelf": "图书管理员之纯化,第二型",
- "hexical.page.read_shelf.summary": "读取影响范围内阿卡夏书架的 iota。无需消耗媒质。",
- "hexcasting.spell.hexical:write_shelf": "图书管理员之策略",
- "hexical.page.write_shelf.summary": "向影响范围内的阿卡夏书架写入 iota。无需消耗媒质。",
- "hexcasting.spell.hexical:clear_shelf": "图书管理员之策略,第二型",
- "hexical.page.clear_shelf.summary": "清除影响范围内给定的阿卡夏书架。无需消耗媒质。",
-
- "hexical.page.mage_block.title": "术师方块",
- "hexical.page.mage_block": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
- "hexcasting.spell.hexical:conjure_mage_block": "构筑术师方块",
- "hexical.page.conjure_mage_block.summary": "在所给位置构筑一个术师方块。消耗 3 个紫水晶粉。$(br2)$(o)我可以凭空造出一座城市,也可令其沉没于火山熔岩之中。$()",
- "hexcasting.spell.hexical:modify_block_bouncy": "改进方块:弹性",
- "hexical.page.modify_block_bouncy.summary": "此改进使得方块弹性十足!如此制成的方块的弹性比黏液块更好。同时我注意到,潜行时它也会把我弹起来。",
- "hexcasting.spell.hexical:modify_block_energized": "改进方块:激能",
- "hexical.page.modify_block_energized.summary": "带有此改进的术士方块能发出红石信号,信号强度即为所给数。",
- "hexcasting.spell.hexical:modify_block_ephemeral": "改进方块:消逝",
- "hexical.page.modify_block_ephemeral.summary": "此改进需要一个数和一个位置向量,在所给数个二十分之一秒后打碎所给位置处的方块。后续再次施法可延长或缩短等待时间。",
- "hexcasting.spell.hexical:modify_block_invisible": "改进方块:隐形",
- "hexical.page.modify_block_invisible.summary": "此改进阻止方块散发出类似施法时产生的粒子,就算站在上面也一样。",
- "hexcasting.spell.hexical:modify_block_replaceable": "改进方块:可替",
- "hexical.page.modify_block_replaceable.summary": "此改进非常适合建筑!其他方块可以直接放置在带有此改进的术师方块处。",
- "hexcasting.spell.hexical:modify_block_semipermeable": "改进方块:半透",
- "hexical.page.modify_block_semipermeable.summary": "此改进令方块变得半透,也即只会允许最后一个与其交互的施法者通过,所有其他实体则不行。",
- "hexcasting.spell.hexical:modify_block_volatile": "改进方块:失稳",
- "hexical.page.modify_block_volatile.summary": "此改进促使方块破坏与之相邻的术师方块。而当其破坏另一个失稳方块时,与其相连的所有失稳方块都会消失。",
-
- "hexical.page.dyes.title": "染料",
- "hexical.page.dyes.0": "染色法术和专用的 iota 可以用来改变方块和实体的颜色。染料 iota 代表一种颜色,也似乎同时象征着染色的$(o)可能性$()。例如,尝试获取草丛的染料会返回 Null,但获取未染色陶瓦的染料会返回$(thing)uncolored$()/$(thing)无色$(),这种染料能够“漂白”可染色方块。",
- "hexcasting.spell.hexical:get_dye": "色彩之纯化",
- "hexical.page.get_dye.summary": "获取方块、实体、标识的染料。",
- "hexcasting.spell.hexical:dye": "染色",
- "hexical.page.dye.summary": "为可染色的方块或实体染色。消耗 1/8 个紫水晶粉。",
- "hexical.page.dyes.1": "此法术的有效目标如下:床、蜡烛、插上蜡烛的蛋糕、地毯、混凝土、混凝土粉末、带釉陶瓦、沙和红沙互换、砂岩类和红砂岩类方块互换、潜影盒、染色玻璃、染色玻璃板、陶瓦、郁金香、羊毛。实体有:猫的项圈、狗的项圈、类视斑实体、潜影贝、前述方块的物品实体。",
- "hexcasting.spell.hexical:translate_dye": "视色之纯化",
- "hexical.page.translate_dye.summary": "将染料的颜色转换为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
-
- "hexical.page.pigments.title": "染色剂操纵",
- "hexical.page.pigments.0": "和通过图案操纵染料一样,染色剂也可操纵。比如说,我甚至能存储多个染色剂,再让咒术随机挑选一个给我。",
- "hexcasting.spell.hexical:to_pigment": "染色剂之纯化",
- "hexical.page.to_pigment.summary": "接受一个有色染料 iota,并转换为染色剂;接受一个玩家并返回其染色剂;或是接受一个内含染色剂的物品,并返回其染色剂。",
- "hexcasting.spell.hexical:sample_pigment": "染色剂之提整",
- "hexical.page.sample_pigment.summary": "在给定位置和时间获取染色剂颜色,返回为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
- "hexcasting.spell.hexical:take_on_pigment": "内化染色剂,第二型",
- "hexical.page.take_on_pigment.summary": "接受一个染色剂 iota 并内化它,消耗 1/8 个紫水晶粉。",
-
- "hexcasting.spell.hexical:magic_missile": "魔法飞弹",
- "hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时产生较强的击退。消耗 1 个紫水晶粉。",
- "hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
- "hexical.page.magic_missile.1": "构筑的位置本身也相当奇妙:怪不得大多数使用者都只选择在面前构筑它们。这一参数是向量,以我的头部位置为原点,我面朝的方向是 X 轴正向,头顶向上的方向是 Y 轴正向,头部向右的方向是 Z 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
-
- "hexcasting.spell.hexical:prestidigitation": "戏法",
- "hexical.page.prestidigitation.summary": "通过魔法令方块或实体产生一定回应,这种回应不会偏离方块或实体本身的性质和功能太远。消耗 1/10 个紫水晶粉。",
- "hexical.page.prestidigitation.0": "此类法术和我之前遇到过的那些很不一样。它们的效果并不单一固定,而是类似于将许多不同的简单效果综合在单个法术中。它们的有效目标涵盖了许多方块和实体,我也在积极寻找它们的用途。具体内容记在后页。",
- "hexcasting.spell.hexical:can_prestidigitate": "改易之纯化",
- "hexical.page.can_prestidigitate.summary": "检验所给实体或位置是否可受戏法操纵。",
- "hexical.page.prestidigitation.1": "我在此整理了一份经验证适用于此类法术的对象列表:打开或关闭各种材质的栅栏门、活板门、门;拨动拉杆,按压按钮;压下或松开压力板;熄灭火和灵魂火;点燃或熄灭蜡烛和营火;敲钟;为原木等去皮;雕刻南瓜;使音符盒发出声音;触发发射器和投掷器;将泥巴烤干为黏土;将大部分土壤方块变为土径,将土径变为耕地……",
- "hexical.page.prestidigitation.2": "打开或关闭红石灯;消耗炼药锅的内容物;更改红石中继器、红石比较器、阳光探测器的状态;触发或解除 TNT 和苦力怕的爆炸;为绵羊剪毛;装上或卸下盔甲架的手臂部分;使得鱿鱼喷墨;使得熊猫打喷嚏;去除雪傀儡的头套;令河豚立刻膨胀到最大;从蜂巢和蜂箱中取出蜜脾;以及触发某种“宏伟之作”,不太清楚这是在说什么。",
-
- "hexical.page.wristpocket.title": "魔袋",
- "hexical.page.wristpocket.0": "让物品消失,再让物品回来的普通魔术把戏现在已易如反掌。这些物品藏在了$(o)魔袋$()之中,可用$(media)媒质$()操控。藏入魔袋的物品在我死后依然保留,拿到$(l:items/staff)$(item)法杖$()就能取回。$(br2)$(o)因为就让事物消失是不够的;你还要把它变回来。$()",
- "hexcasting.spell.hexical:wristpocket": "藏入魔袋",
- "hexical.page.wristpocket.summary": "此法术会令另一只手中的物品组消失;也可重新让其出现,如果手中已经持有物品则会交换。消耗 1/8 个紫水晶粉。",
- "hexcasting.spell.hexical:wristpocket_item": "魔袋之精思",
- "hexical.page.wristpocket_item.summary": "返回魔袋中物品的标识,如果魔袋为空则返回 Null。",
- "hexcasting.spell.hexical:wristpocket_count": "魔袋之精思,第二型",
- "hexical.page.wristpocket_count.summary": "返回魔袋中的物品数,如果魔袋为空则返回 0。",
- "hexcasting.spell.hexical:sleight": "花招",
- "hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗 1/4 个紫水晶粉。",
- "hexical.page.sleight.0": "- 传入向量:将魔袋中的物品投放到对应位置。$(br)- 传入物品实体:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
- "hexcasting.spell.hexical:mage_hand": "法师之手",
- "hexical.page.mage_hand.summary": "构筑一只魔法手,以在世界中使用魔袋中的物品交互。如果魔袋为空,则表现为我自己与世界交互。",
- "hexical.page.mage_hand.0": "- 传入实体:使用物品与该实体交互。$(br)- 传入向量:使用物品与该处方块交互。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
- "hexcasting.spell.hexical:ingest": "同化食物",
- "hexical.page.ingest.summary": "此法术能让我吃下魔袋中的物品,填饱我的肚子,或是给予我药水效果。无论我是否吃饱,也不管食物本身要花多久才能吃下,此法术都会瞬间完成食用。",
-
- "hexical.page.specks.title": "视斑",
- "hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受影响范围限制。",
- "hexcasting.spell.hexical:conjure_speck": "构筑视斑",
- "hexical.page.conjure_speck.summary": "按照所给 iota、位置、朝向构筑视斑。消耗 1/100 个紫水晶粉。压入视斑 iota。",
- "hexcasting.spell.hexical:move_specklike": "移动视斑",
- "hexical.page.move_specklike.summary": "将视斑实体移动至所给位置。",
- "hexcasting.spell.hexical:rotate_specklike": "旋转视斑",
- "hexical.page.rotate_specklike.summary": "令视斑实体的朝向变为所给向量。",
- "hexcasting.spell.hexical:roll_specklike": "滚转视斑",
- "hexical.page.roll_specklike.summary": "接受一个 0 与 1 之间的数,用作旋转圈数,并依此旋转视斑。",
- "hexcasting.spell.hexical:iota_speck": "更改视斑",
- "hexical.page.iota_speck.summary": "更改视斑对应的 iota。",
- "hexcasting.spell.hexical:lifetime_specklike": "计时视斑",
- "hexical.page.lifetime_specklike.summary": "令视斑在所给数个二十分之一秒后消失。",
- "hexcasting.spell.hexical:size_specklike": "缩放视斑",
- "hexical.page.size_specklike.summary": "更改视斑的大小,接受 0 与 10 之间的数。此数表示以格计的大小,默认为 0。",
- "hexcasting.spell.hexical:thickness_specklike": "增粗视斑",
- "hexical.page.thickness_specklike.summary": "更改图案视斑笔触的粗细,接受 0 与 10 之间的数。此数表示以 1/20 格计的大小,默认为 0。",
- "hexcasting.spell.hexical:pigment_specklike": "染色视斑",
- "hexical.page.pigment_specklike.summary": "将染色剂施加于视斑,可在构筑后更改其颜色。",
- "hexcasting.spell.hexical:kill_specklike": "驱散视斑",
- "hexical.page.kill_specklike.summary": "强令视斑实体消失。",
- "hexcasting.spell.hexical:zone_specklike": "区域之馏化:类视斑",
- "hexical.page.zone_specklike.summary": "返回视斑实体,效果与其他$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$()类似。",
-
- "hexical.page.simple_spells.title": "Hexical 法术",
- "hexcasting.spell.hexical:autograph": "签名",
- "hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的染色剂为颜色。无需消耗媒质。",
- "hexical.page.autograph.description": "所有对物品施放过此法术的人,其名字会依次保留在物品上,且保留对应的染色剂。签过名的物品无法与未签名的物品堆叠,同种的物品也不能。同一人能给同一物品多次签名。可以当作某人认可某物的实证。$(br2)$(o)何谓成功?成功就是你的签名变成了名人签名。$()",
- "hexcasting.spell.hexical:conjure_hexburst": "构筑咒术星爆糖",
- "hexical.page.conjure_hexburst.summary": "使用所给 iota 在给定位置构筑一枚咒术星爆糖。消耗 1 个紫水晶粉。可能招致“违犯他人”事故。",
- "hexical.page.conjure_hexburst.description": "取出一个 iota,再在周围包裹$(media)媒质$(),直至它具备物理形态,就得到了可食用的咒术星爆糖。食用时,这种糖会将其中的 iota 压入食用者的栈。如果我想要交易代表我的 iota,咒术星爆糖应该会很有用。",
- "hexcasting.spell.hexical:conjure_hextito": "构筑咒力多滋",
- "hexical.page.conjure_hextito.summary": "在给定位置构筑一片咒力多滋。消耗 2 个紫水晶粉。可能招致“违犯他人”事故。",
- "hexical.page.conjure_hextito.description": "咒力多滋是一种三角形的酥脆零食。食用时,我会突然生出施放其中$(hex)咒术$()的想法,使用的是我的施法栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合简单的操作集合,比如射线追踪,和咒术星爆糖配合进行构筑更是如此。如果食用者的栈存在未闭合的内省,其中咒术便不会施放,以此保障他人使用的安全。",
- "hexcasting.spell.hexical:ghast_fireball": "构筑火球",
- "hexical.page.ghast_fireball.summary": "构筑一个易爆火球,敲击发射后能够摧毁方块。消耗 3 个紫水晶粉。",
- "hexical.page.ghast_fireball.description": "构筑出的火球只会停在空中,必须敲击或通过$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()发射出去。当然也可用同种手段更改其飞行方向。$(br2)$(o)要是不能炸坏什么东西的话,掌控宇宙平衡和知晓命运之秘又有什么好处呢?$()",
- "hexcasting.spell.hexical:gasp": "喘息",
- "hexical.page.gasp.summary": "立即填满生物的氧气条,消耗 1 个紫水晶粉。",
- "hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个紫水晶粉,因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
- "hexcasting.spell.hexical:chorus_blink": "紫颂闪现",
- "hexical.page.chorus_blink.summary": "$(l:patterns/spells/basic#hexcasting:blink)$(action)闪现$()、$(l:patterns/great_spells/teleport)$(action)卓越传送$()、$(item)末影珍珠$()、$(item)紫颂果$(),这一法术处于上述几种传送方式的中间,平衡而和谐,以其安全、精确、低消耗的传送著称。",
- "hexical.page.chorus_blink.description": "此图案需消耗物品栏中的一个$(item)紫颂果$(),并根据偏移向量传送最多 16 格。无论传送满 16 格还是不到 16 格,消耗均为 1 个紫水晶粉,且单个咒术中使用多次不会有惩罚。神奇的是,重复施放此法术不会因为超出影响范围而终止咒术,这是因为每次$(o)闪现$()都会将影响范围移至新位置。$(br2)$(o)我一眨眼就能到了。$()",
-
- "hexical.page.conjure_compass.title": "构筑指南针",
- "hexcasting.spell.hexical:conjure_compass": "构筑指南针",
- "hexical.page.conjure_compass.summary": "在给定位置构筑一个指南针,它指向第二向量处。消耗 3 个紫水晶粉。",
- "hexical.page.conjure_compass.description": "指南针并不会记忆它构筑时所处的维度,也即在所有维度中,它都指向同一位置。以书吏之精思读取,会获得指向目标位置的单位向量。$(br2)$(o)对头,指北针不指北方。但我们根本没在找北方啊!$()",
-
- "hexical.page.spike.title": "构筑尖刺",
- "hexical.page.spike.0": "我曾听过有一位灾厄村民术士能在地上构筑尖牙。要相信“村民能操控$(media)媒质$()”这种说法很难,但从其中获取灵感还是可行的。我依此制造出了这条法术,能够从地下升起尖刺刺穿目标。",
- "hexcasting.spell.hexical:spike": "构筑尖刺",
- "hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗 1 个紫水晶碎片。",
- "hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会造成高达三颗心的伤害。在已经触发尖刺的位置试图重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
-
- "hexical.page.conjure_staff.title": "构筑法杖",
- "hexical.page.conjure_staff.0": "构筑的法杖和$(l:items/hexcasting)$(item)杂件$()比较相像。它们都有施法用的媒质储库,该储库耗尽后也不会消耗我的生命值和物品栏中的$(media)媒质$()物品。它们都无法重新充能,无法重新写入,对其使用$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()也都会将其毁灭。这种法杖的真正力量在于$(o)输入拦截$()。",
- "hexcasting.spell.hexical:conjure_staff": "构筑法杖",
- "hexical.page.conjure_staff.summary": "在所给位置处使用给定$(media)媒质$()量、位阶、$(hex)咒术$()构筑$(item)法杖$()。$(br2)$(o)这是我的$(l)法杖$()$(o)。虽有很多相似的,但这一把是我的。$()",
- "hexical.page.conjure_staff.1": "手持构筑法杖时,它会拦截按下首选或次选“使用”按键的事件,阻止我与世界交互。拦截次数达到构筑时给定的位阶后,它便会施放给定的$(hex)咒术$(),同时根据按下左键或右键分别以 False 或 True 作为起始栈。如果按键之间间隔过久,当次“施法”便会直接取消。",
- "hexical.page.conjure_staff.2": "此法术并不昂贵,仅需消耗 1 个紫水晶碎片,同时消耗媒质储库所需的$(media)媒质$()量。所得产物操作便捷、反应迅速,具有多种用途,变化的可能性无穷无尽,且不像其他$(l:items/hexcasting)$(item)施法物品$()那样需要冷却时间。$(br2)这种法杖的能力还不止于此,它们还拥有一个仅对法杖自身开放的 iota 存储位置。",
- "hexcasting.spell.hexical:read_staff": "法杖之精思",
- "hexical.page.read_staff.summary": "从$(item)构筑的法杖$()的内部存储读出 iota。",
- "hexcasting.spell.hexical:write_staff": "法杖之策略",
- "hexical.page.write_staff.summary": "向$(item)构筑的法杖$()的内部存储写入 iota,不接受代表玩家的 iota。",
- "hexcasting.spell.hexical:with_conjured_staff": "魔杖之精思",
- "hexical.page.with_conjured_staff.summary": "检验当前$(hex)咒术$()是否由构筑的法杖施放。",
- "hexical.page.conjure_staff.3": "副手持有特定物品时构筑$(item)法杖$(),则所得$(item)法杖$()的外形会与该物品靠拢。目前我发现的物品与外形对应关系为:小麦(四叶草),鹦鹉螺壳(螺壳),钟(手摇铃),绊线钩(钥匙),玻璃(镜子)。",
-
- "hexical.page.pyrotechnics.title": "烟花工艺",
- "hexical.page.pyrotechnics.0": "我发现了一些构筑烟花的法术。$(media)媒质$()在这些图案周围欢欣地嗡鸣着,就好像它们曾用于庆典一样;它们用作武器的威力也可谓令人震悚。$(br2)$(o)什么都别说了。先欣赏烟花吧。$()",
- "hexcasting.spell.hexical:simulate_firework": "模拟烟花",
- "hexical.page.simulate_firework.summary": "分析另一只手中的烟火之星,并构筑一道烟花,位置、速度、与火药量有关的飞行时间均由烟火之星决定。消耗 1 个紫水晶碎片,每份火药额外消耗 1 个紫水晶粉。",
- "hexcasting.spell.hexical:conjure_firework": "构筑烟花",
- "hexical.page.conjure_firework.summary": "$(br)根据我给定的参数构筑一道烟花。这是我迄今为止发现的最复杂的法术之一。消耗量与其他烟花法术一致。",
- "hexical.page.conjure_firework.0": "$(o)基础理论$()$(br2)前两个参数分别是位置和速度。第三个参数决定其飞行时间,需是 1 与 3 之间的数。可以认为是加入烟花火箭的火药份数。$(br2)剩余的参数可看作虚拟烟火之星的各特征。",
- "hexical.page.conjure_firework.1": "$(o)形状效果$()$(br2)第四个参数控制烟花的形状,需是 0 与 3 之间的数。$(br)- 0 对应简单的小型球状效果。$(br)- 1 对应大型球状效果。$(br)- 2 对应星形效果。$(br)- 3 对应大型苦力怕状效果。",
- "hexical.page.conjure_firework.2": "$(o)颜色$()$(br2)第五和第六个参数是$(l:hexical:patterns/spells/dyes)染料$()列表。第一个列表控制烟花的“初始”颜色,第二个列表控制烟花消散时的“渐变”颜色。第一列表中需至少含有一个染料;若不需“渐变”,第二个列表可以留空。",
- "hexical.page.conjure_firework.3": "$(o)附加效果$()$(br2)第七个参数控制烟花粒子是否闪烁,相当于加入荧石与否。$(br2)第八个参数控制烟花粒子是否留下踪迹,相当于加入钻石与否。",
-
- "hexical.page.circle_spells.title": "法术环法术",
- "hexical.page.circle_spells.0": "媒质流穿梭于法术环中,法术环囊括的区域因而充盈着$(media)媒质$(),灵活控制其中事物也就不再是难事。我将我所遇到或创造的法术记在后页,它们只可由$(l:greatwork/spellcircles)法术环$()施放。",
- "hexcasting.spell.hexical:displace": "转移",
- "hexical.page.displace.summary": "无需任何媒质,就可将实体传送至环中任意一处。与$(l:patterns/great_spells/teleport)$(action)卓越传送$()不同在于,此法术接受的是绝对坐标。",
-
- "hexical.page.evocation.title": "唤咒",
- "hexical.page.evocation.0": "媒质是思维的能量,则逻辑推理可得,我应当能够直接把$(o)脑海中$()的魔法变为现实,而不需要挥舞法杖,毕竟我在最优状态下相当于 2 个充能紫水晶,是$(l:items/staff)$(item)法杖$()的两倍。我的意识目前还不够强大,无法随意将想法化作现实,不过已蚀刻入意识的$(hex)咒术$()还是可以的。这么做会消耗我物品栏中的$(media)媒质$()。",
- "hexcasting.spell.hexical:internalize_hex": "内化咒术",
- "hexical.page.internalize_hex.summary": "内化一份$(hex)咒术$(),此后按住“R”键 1 秒即可唤咒施放,不需持有法杖。内化过程消耗 1 个充能紫水晶。",
- "hexcasting.spell.hexical:is_evoking": "唤魔者之精思",
- "hexical.page.is_evoking.summary": "压入玩家唤咒的时间,未在唤咒则为 -1。",
- "hexcasting.spell.hexical:with_evocation": "唤咒之精思",
- "hexical.page.with_evocation.summary": "检验当前咒术是否使用唤咒施放。",
- "hexical.page.evocation.1": "记载有这项技术的古代文本还写有其他琐事。曾经的$(hex)咒术师们$()唤咒时无需施放$(hex)咒术$(),而是会在某种集会或集体仪式中合唱。也有人曾试验过,是否有法术能将$(hex)咒术$()蚀刻入$(o)村民$(),以给予他们操控$(media)媒质$()的手段。但这些试验的结果从未见诸文献,抑或是已经散佚殆尽。",
-
- "hexcasting.spell.hexical:greater_blink": "卓越闪现",
- "hexical.page.greater_blink.0": "卓越闪现比卓越传送要便宜许多。它不具有抵达时全身物品散落的风险。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
- "hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗 2 个紫水晶粉。",
- "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往我面朝的方向传送 1 格。向量 (0, 1, 0) 会往我头顶的法向传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。",
- "hexical.page.greater_blink.2": "奇特的是,这一闪现会将我的足部移动至该位置,也许能够少去射线追踪后传送到方块内部的麻烦。如果我需要进行多次闪现,则这一特性必须纳入考量范围。$(br2)$(o)长跳特!比你想的还要久——$()",
-
- "hexical.page.meshes.title": "网斑",
- "hexical.page.meshes.0": "网斑是$(l:hexical:patterns/spells/specks)视斑$()的进化形态。不会再受 iota 和图案的限制,也无需屈居于二维平面,网斑接受三维空间中的向量列表,由此带来的创意无穷无尽。网斑也会对大多数操纵视斑的图案有反应。",
- "hexcasting.spell.hexical:conjure_mesh": "构筑网斑",
- "hexical.page.conjure_mesh.summary": "在所给位置构筑一个网斑,并压入一个网斑实体。消耗 1 个紫水晶粉。",
- "hexical.page.meshes.1": "网斑只在编织后才有外形。用以构筑网斑的向量列表无需遵守太多规则:列表的长度不能超出 32 个向量,向量的模长也必须小于 10。网斑会将各向量识别为相对向量,而后依次连接它们。",
- "hexcasting.spell.hexical:weave_mesh": "编织网斑",
- "hexical.page.weave_mesh.summary": "接受一个向量列表,需遵守前页指定的规则,并将网斑编织成所给形状,无需消耗媒质。",
- "hexcasting.spell.hexical:read_mesh": "纠缠之纯化",
- "hexical.page.read_mesh.summary": "读取网斑的外形,返回相对向量列表。可用于复制网斑。",
-
- "hexical.category.scrying": "探知",
- "hexical.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。这些图案可用来卜取一系列信息,方块和实体的类型、药水效果、天气、食物的营养、我在疾跑与否、$(o)方块的爆炸抗性$()等都在其列。虽然这些操作可能不如其他大多数$(hex)咒术$()用处大,但有它们在也不错,我将来也许会用到。",
-
- "hexical.page.blocks.title": "方块",
- "hexcasting.spell.hexical:block_hardness": "矿工之纯化",
- "hexical.page.block_hardness.summary": "压入挖掘给定方块的难易程度。",
- "hexcasting.spell.hexical:block_blast_resistance": "爆破兵之纯化",
- "hexical.page.block_blast_resistance.summary": "压入方块对爆炸的抗性。",
- "hexcasting.spell.hexical:blockstate_waterlogged": "管道工之纯化",
- "hexical.page.blockstate_waterlogged.summary": "检验方块是否含水。若方块无法含水,则返回 Null。",
- "hexcasting.spell.hexical:blockstate_rotation": "方向之纯化",
- "hexical.page.blockstate_rotation.summary": "压入方块的朝向向量。若方块无朝向向量,则返回 Null。",
- "hexcasting.spell.hexical:blockstate_crop": "农夫之纯化",
- "hexical.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的成熟程度,对蜂巢、堆肥桶、炼药锅同样有效。奇怪的是,对蛋糕也有效。",
- "hexcasting.spell.hexical:blockstate_glow": "发光之纯化",
- "hexical.page.blockstate_glow.summary": "检验方块是否处于“点燃”状态,有效方块有熔炉、红石火把、灯笼、营火等。",
- "hexcasting.spell.hexical:blockstate_lock": "锁之纯化",
- "hexical.page.blockstate_lock.summary": "检验方块是否处于“打开”状态,有效方块有门、活板门、栅栏门、木桶等。",
- "hexcasting.spell.hexical:blockstate_turn": "角度之纯化",
- "hexical.page.blockstate_turn.summary": "压入一个数,对应告示牌、头颅、旗帜的旋转方向。",
- "hexcasting.spell.hexical:blockstate_bunch": "叠放之纯化",
- "hexical.page.blockstate_bunch.summary": "返回方块的叠放数,无法叠放则返回 Null。仅对蜡烛、海泡菜、海龟蛋有效。",
- "hexcasting.spell.hexical:blockstate_book": "书之纯化",
- "hexical.page.blockstate_book.summary": "检验讲台中是否有书,唱片机中是否有唱片。有传言称对某种奇妙的书架也有效。",
-
- "hexical.page.enchantments.title": "魔咒",
- "hexcasting.spell.hexical:get_enchantments": "奇术师之纯化",
- "hexical.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
- "hexcasting.spell.hexical:get_enchantment_strength": "咒能之馏化",
- "hexical.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
-
- "hexical.page.entities.title": "实体",
- "hexcasting.spell.hexical:get_health": "生命力之纯化",
- "hexical.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
- "hexcasting.spell.hexical:get_max_health": "健康之纯化",
- "hexical.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
- "hexcasting.spell.hexical:get_air": "窒息之纯化",
- "hexical.page.get_air.summary": "压入实体距离窒息剩余的秒数。对脱水的鱼和溺水的陆地生物均有效。",
- "hexcasting.spell.hexical:get_max_air": "双肺之纯化",
- "hexical.page.get_max_air.summary": "返回实体在离开其呼吸环境后需多少秒开始窒息。",
- "hexcasting.spell.hexical:get_player_hunger": "饥饿之纯化",
- "hexical.page.get_player_hunger.summary": "返回玩家实体的饥饿值。",
- "hexcasting.spell.hexical:get_player_saturation": "耐力之纯化",
- "hexical.page.get_player_saturation.summary": "返回我的饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.spell.hexical:is_burning": "炼狱之纯化",
- "hexical.page.is_burning.summary": "检验实体是否在燃烧。对看上去着火的实体也有效,包括免疫火焰的实体,比如攻击状态的烈焰人。",
- "hexcasting.spell.hexical:burning_time": "炼狱之纯化,第二型",
- "hexical.page.burning_time.summary": "压入实体身上的火焰距自然熄灭剩余的时间。",
- "hexcasting.spell.hexical:is_wet": "末影人之纯化",
- "hexical.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
- "hexcasting.spell.hexical:is_baby": "青春之纯化",
- "hexical.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对盔甲架也有效。",
- "hexcasting.spell.hexical:breedable": "繁衍之纯化",
- "hexical.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 Null。",
- "hexcasting.spell.hexical:is_sleeping": "树懒之纯化",
- "hexical.page.is_sleeping.summary": "检验实体是否在睡眠状态。对玩家、猫、狐狸、以及一系列其他生物有效。",
- "hexcasting.spell.hexical:is_sprinting": "赛车手之纯化",
- "hexical.page.is_sprinting.summary": "检验实体是否在疾跑。速泳和疾跑后离地均算作疾跑,对猫、狐狸等也有效。",
-
- "hexical.page.food.title": "食物",
- "hexcasting.spell.hexical:edible": "可食性之纯化",
- "hexical.page.edible.summary": "接受一个物品标识,检验它是否可食用。",
- "hexcasting.spell.hexical:get_hunger": "卡路里之纯化",
- "hexical.page.get_hunger.summary": "接受一个物品标识,返回它带来的饱腹感的量。",
- "hexcasting.spell.hexical:get_saturation": "饱和之纯化",
- "hexical.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.spell.hexical:is_meat": "肉类之纯化",
- "hexical.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类(狼能否食用)。",
- "hexcasting.spell.hexical:is_snack": "甜点之纯化",
- "hexical.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食(可以迅速食用)。",
-
- "hexical.page.identifiers.title": "标识",
- "hexical.page.identifiers.0": "我的$(hex)咒术$()仍对世界视而不能见。我能够获取生物的高度、速度等信息……但还无法标识某个实体。自然的解决方案是$(o)标识 iota$()。每一个实体、方块、状态效果、魔咒、声音……都拥有可被$(hex)咒术$()识别的唯一标识,而标识两两之间可以比较。",
- "hexcasting.spell.hexical:identify": "侦探之纯化",
- "hexical.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
- "hexical.page.identifiers.1": "我注意到,对物品使用侦探之纯化时,会返回物品实体;而对其使用识别器之纯化时,返回的是物品的类型。这种物品类型和侦探之纯化返回的方块类型类似。可以认为识别器之纯化还会返回$(o)额外$()信息。",
- "hexcasting.spell.hexical:recognize": "识别器之纯化",
- "hexical.page.recognize.summary": "压入实体的额外标识信息,主要是物品实体的物品类型,以及物品展示框中物品的类型。",
- "hexcasting.spell.hexical:get_mainhand_stack": "工具之纯化",
- "hexical.page.get_mainhand_stack.summary": "返回主手物品的类型。",
- "hexcasting.spell.hexical:get_offhand_stack": "配饰之纯化",
- "hexical.page.get_offhand_stack.summary": "返回副手物品的类型。",
-
- "hexical.page.item.title": "物品",
- "hexcasting.spell.hexical:count_stack": "仓储之纯化",
- "hexical.page.count_stack.summary": "接受一个物品实体,返回其中物品数量。",
- "hexcasting.spell.hexical:count_max_stack": "库房之纯化",
- "hexical.page.count_max_stack.summary": "接受一个物品实体,返回其中最多可堆叠多少物品。",
- "hexcasting.spell.hexical:damage_stack": "损耗之纯化",
- "hexical.page.damage_stack.summary": "接受一个物品实体,返回物品剩余的耐久度。",
- "hexcasting.spell.hexical:damage_max_stack": "脆弱性之纯化",
- "hexical.page.damage_max_stack.summary": "接受一个物品实体,返回物品的耐久度上限。",
-
- "hexical.page.status_effects.title": "状态效果",
- "hexcasting.spell.hexical:get_effects_entity": "诊断之纯化",
- "hexical.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
- "hexcasting.spell.hexical:get_effects_item": "处方之纯化",
- "hexical.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
- "hexcasting.spell.hexical:get_effect_category": "药性之纯化",
- "hexical.page.get_effect_category.summary": "获取某效果对承受者造成效应“良性”与否。-1 为负面,0 为中性,1 为正面。",
- "hexcasting.spell.hexical:get_effect_amplifier": "浓度之馏化",
- "hexical.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 Null。",
- "hexcasting.spell.hexical:get_effect_duration": "效除之馏化",
- "hexical.page.get_effect_duration.summary": "获取效果的持续时间,以秒计,无给定效果则返回 Null。",
-
- "hexical.page.world.title": "世界",
- "hexcasting.spell.hexical:get_light": "光照之纯化",
- "hexical.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
- "hexcasting.spell.hexical:get_weather": "天气学家之精思",
- "hexical.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
- "hexcasting.spell.hexical:get_time": "时间之精思",
- "hexical.page.get_time.summary": "压入世界经过的时间,以秒计。",
- "hexcasting.spell.hexical:get_biome": "地理之纯化",
- "hexical.page.get_biome.summary": "返回给定位置向量处生物群系的标识。",
- "hexcasting.spell.hexical:get_dimension": "位面之精思",
- "hexical.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。"
-}
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
deleted file mode 100644
index 363f43529c67..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/en_us.json
+++ /dev/null
@@ -1,730 +0,0 @@
-{
- "advancement.hexical:root.title": "A Hexical Day",
- "advancement.hexical:root.description": "Begin your exploration of Hexical!",
- "advancements.hexical.acquire_arch_lamp.title": "Guardian Genie",
- "advancements.hexical.acquire_arch_lamp.description": "Acquire an archgenie lamp.",
- "advancements.hexical.acquire_hand_lamp.title": "Diamond in the Rough",
- "advancements.hexical.acquire_hand_lamp.description": "Acquire a hand genie lamp.",
- "advancements.hexical.reload_lamp.title": "Phenomenal Cosmic Powers!",
- "advancements.hexical.reload_lamp.description": "Reload the lamp.",
- "advancements.hexical.educate_lamp.title": "New Order",
- "advancements.hexical.educate_lamp.description": "Educate the genie with new instructions.",
- "advancements.hexical.specklike.title": "Integrated Reality",
- "advancements.hexical.specklike.description": "Like augmented reality, but real.",
- "advancements.hexical.diy_conjuring.title": "DIY Conjuring!",
- "advancements.hexical.diy_conjuring.description": "Add a custom modifier to a mage block.",
- "advancements.hexical.conjure_hexxy.title": "Conjure Hexxy",
- "advancements.hexical.conjure_hexxy.description": "Give Hexxy a physical form in your world.",
- "advancements.hexical.conjure_cake.title": "The Cake is a Lie",
- "advancements.hexical.conjure_cake.description": "Summon a free cake from a mysterious benefactor.",
- "advancements.hexical.hallucinate.title": "Only In My Head",
- "advancements.hexical.hallucinate.description": "Play a sound only you can hear!",
-
- "block.hexical.hex_candle_cake": "Hex Candle Cake",
- "block.hexical.casting_carpet": "Casting Carpet",
- "block.hexical.hex_candle": "Hex Candle",
- "block.hexical.mage_block": "Mage Block",
- "block.hexical.media_jar": "Media Jar",
- "block.hexical.pedestal": "Pedestal",
- "block.hexical.periwinkle": "Periwinkle",
- "block.hexical.sentinel_bed": "Sentinel Bed",
- "death.attack.magic_missile": "%1$s was struck with arcane force by %2$s",
- "death.attack.magic_missile.item": "%1$s was struck with arcane force by %2$s using %3$s",
- "death.attack.spike": "%1$s was punctured by %2$s",
- "death.attack.spike.item": "%1$s was punctured by %2$s using %3$s",
- "effect.hexical.wooleyed": "Wooleyed",
- "effect.hexical.wooleyed.description": "Helps me unsee some of the horrors I have seen.",
- "entity.hexical.animated_scroll": "Animated Scroll",
- "entity.hexical.magic_missile": "Magic Missile",
- "entity.hexical.mesh": "Mesh",
- "entity.hexical.speck": "Speck",
- "entity.hexical.spike": "Amethyst Spike",
- "key.categories.hexical": "Hexical",
- "key.hexical.evoke": "Evoke",
- "key.hexical.open_hexbook": "Open Hex Notebook",
- "key.hexical.telepathy": "Call Telepathy",
- "item.hexical.animated_scroll_small": "Small Animated Scroll",
- "item.hexical.animated_scroll_medium": "Medium Animated Scroll",
- "item.hexical.animated_scroll_large": "Large Animated Scroll",
- "item.hexical.arch_lamp": "Archgenie Lamp",
- "item.hexical.curio_beauty": "Beauty Curio",
- "item.hexical.curio_bismuth": "Bismuth Curio",
- "item.hexical.curio_charm": "Charm Curio",
- "item.hexical.curio_clover": "Clover Curio",
- "item.hexical.curio_compass": "Compass Curio",
- "item.hexical.curio_conch": "Conch Curio",
- "item.hexical.curio_cube": "Cube Curio",
- "item.hexical.curio_down": "Down Curio",
- "item.hexical.curio_flute": "Flute Curio",
- "item.hexical.curio_handbell": "Handbell Curio",
- "item.hexical.curio_heart": "Heart Curio",
- "item.hexical.curio_interlock": "Interlock Curio",
- "item.hexical.curio_key": "Key Curio",
- "item.hexical.curio_staff": "Staff Curio",
- "item.hexical.curio_strange": "Strange Curio",
- "item.hexical.curio_truth": "Truth Curio",
- "item.hexical.curio_up": "Up Curio",
- "item.hexical.grimoire": "Grimoire",
- "item.hexical.hand_lamp": "Hand Genie Lamp",
- "item.hexical.hex_gummy": "Hex Gummy",
- "item.hexical.hexburst": "Hexburst",
- "item.hexical.hextito": "Hextito",
- "item.hexical.gauntlet_staff": "Gauntlet Staff",
- "item.hexical.media_log.0": "Media Log",
- "item.hexical.media_log.1": "Error Log",
- "item.hexical.lei": "Lei",
- "item.hexical.lightning_rod_staff": "Lightning Rod Staff",
- "item.hexical.plush_hexxy": "Hexxy",
- "item.hexical.plush_irissy": "Irissy",
- "item.hexical.plush_pentxxy": "Pentxxy",
- "item.hexical.plush_quadxxy": "Quadxxy",
- "item.hexical.plush_thothy": "Thothy",
- "item.hexical.plush_flexxy": "Flexxy",
- "item.hexical.scarab_beetle": "Scarab Beetle",
- "item.hexical.tchotchke": "Tchotchke",
- "item.minecraft.potion.effect.wooleyed": "Potion of Wooleyeing",
- "item.minecraft.splash_potion.effect.wooleyed": "Splash Potion of Wooleyeing",
- "item.minecraft.lingering_potion.effect.wooleyed": "Lingering Potion of Wooleyeing",
- "item.minecraft.tipped_arrow.effect.wooleyed": "Arrow of Wooleyeing",
- "item.minecraft.potion.effect.long_wooleyed": "Potion of Wooleyeing",
- "item.minecraft.splash_potion.effect.long_wooleyed": "Splash Potion of Wooleyeing",
- "item.minecraft.lingering_potion.effect.long_wooleyed": "Lingering Potion of Wooleyeing",
- "item.minecraft.tipped_arrow.effect.long_wooleyed": "Arrow of Wooleyeing",
- "item.minecraft.potion.effect.strong_wooleyed": "Potion of Wooleyeing",
- "item.minecraft.splash_potion.effect.strong_wooleyed": "Splash Potion of Wooleyeing",
- "item.minecraft.lingering_potion.effect.strong_wooleyed": "Lingering Potion of Wooleyeing",
- "item.minecraft.tipped_arrow.effect.strong_wooleyed": "Arrow of Wooleyeing",
- "itemGroup.hexical.general": "Hexical",
- "stat.hexical.evocation": "Times Wololoed",
- "subtitles.hexical.amethyst_melt": "Amethyst melts",
- "subtitles.hexical.item_dunks": "Item submerges",
- "subtitles.hexical.evoking_murmur": "Player chants",
- "subtitles.hexical.evoking_casts": "Player casts",
- "subtitles.hexical.lamp_activate": "Lamp activates",
- "subtitles.hexical.lamp_deactivate": "Lamp deactivates",
- "subtitles.hexical.player_slurp": "Player slurps",
- "subtitles.hexical.replenish_air": "Lungs inflate",
- "subtitles.hexical.scarab_chirps": "Scarab chirps",
- "subtitles.hexical.sudden_realization": "Idea pops",
- "tooltip.hexical.scroll_glow": "Glowing",
-
- "hexical.autograph.header": "Autographed by:",
- "hexical.charmed": "Charmed",
- "hexical.cracked.cracked": "Cracked",
- "hexical.cracked.program": "Hex: ",
- "hexical.grimoire.contains": "Contains bindings for ",
- "hexical.scarab.program": "Contains %s",
- "hexical.recipe.transmute.media_free": "Free",
- "hexical.recipe.transmute.media_cost": "Costs %s dust",
- "hexical.recipe.transmute.media_yield": "Yields %s dust",
- "hexical.ledger.stack": "Last Stack Before Mishap:",
- "hexical.ledger.mishap": "Last Mishap Message:",
-
- "hexcasting.mishap.bad_block.akashic_bookshelf": "an akashic bookshelf",
- "hexcasting.mishap.bad_block.mage_block": "a mage block",
- "hexcasting.mishap.bad_block.pedestal": "a pedestal",
- "hexcasting.mishap.bad_block.flower_spawnable": "air or a flower pot",
- "hexcasting.mishap.bad_block.rotatable": "a block with direction",
- "hexcasting.mishap.bad_block.solid_platform": "a solid platform",
- "hexcasting.mishap.bad_item.animated_scroll": "an animated scroll",
- "hexcasting.mishap.bad_item.anything": "any item",
- "hexcasting.mishap.bad_item.casting_device": "a device capable of casting Hexes",
- "hexcasting.mishap.bad_item.firework_star": "a firework star",
- "hexcasting.mishap.bad_item.grimoire": "a grimoire",
- "hexcasting.mishap.bad_item.nonfull_grimoire": "a grimoire with less than 512 bindings",
- "hexcasting.mishap.bad_item.has_brain": "a villager capable of thought",
- "hexcasting.mishap.bad_item.autographed": "an autographed item",
- "hexcasting.mishap.bad_item.hand_lamp": "a Hand Genie Lamp",
- "hexcasting.mishap.bad_item.lamp": "a lamp",
- "hexcasting.mishap.bad_item.mesh": "a mesh",
- "hexcasting.mishap.bad_item.scarab_beetle": "a scarab beetle",
- "hexcasting.mishap.bad_item.smart_villager": "a Journeyman or greater level villager",
- "hexcasting.mishap.bad_item.sniffer": "a sniffer",
- "hexcasting.mishap.bad_item.speck": "a speck",
- "hexcasting.mishap.bad_item.specklike": "a specklike entity",
- "hexcasting.mishap.bad_item.target.smelting": "an item able to be smelted in a furnace",
- "hexcasting.mishap.bad_item.target.roasting": "an item able to be smelted in a campfire",
- "hexcasting.mishap.bad_item.target.smoking": "an item able to be smelted in a smoker",
- "hexcasting.mishap.bad_item.target.blasting": "an item able to be smelted in a blast furnace",
- "hexcasting.mishap.bad_item.target.stonecutting": "an item able to be cut in a stonecutter",
- "hexcasting.mishap.bad_item.uncharmed": "an uncharmed item",
- "hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
- "hexcasting.mishap.invalid_value.horizontal_axis_vector": "a horizontal axis vector",
- "hexcasting.mishap.invalid_value.class.dye": "a dye",
- "hexcasting.mishap.invalid_value.class.pigment": "a pigment",
- "hexcasting.mishap.invalid_value.conjurable_flower_id": "an identifier of a conjurable flower type",
- "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
- "hexcasting.mishap.invalid_value.hopper_source": "an iota that represents a source of items",
- "hexcasting.mishap.invalid_value.hopper_destination": "an iota that represents a receiver of items",
- "hexcasting.mishap.invalid_value.inventory": "an iota that represents an inventory",
- "hexcasting.mishap.invalid_value.lesser_sentinel_list": "a list of vectors",
- "hexcasting.mishap.invalid_value.mesh_design": "a list of up to 32 vectors with magnitudes less than 10",
- "hexcasting.mishap.invalid_value.nonempty_list": "a non-empty list",
- "hexcasting.mishap.invalid_value.number_list": "a non-empty list of numbers",
- "hexcasting.mishap.invalid_value.number_or_vector": "a number or a vector",
- "hexcasting.mishap.invalid_value.small_vector": "a vector of length 2 or less",
- "hexcasting.mishap.invalid_value.text_list": "a list of text iota",
- "hexcasting.mishap.invalid_value.to_pigment": "a colored dye, identifier of a pigment item, an item entity containing a pigment, or a player",
- "hexcasting.mishap.invalid_value.true_dye": "a colored dye",
- "hexcasting.mishap.invalid_value.true_dye_list": "a list of colored dyes",
- "hexcasting.mishap.hexical:active_arch_lamp": "Expected to be cast by an Archgenie Lamp or an Archgenie Lamp in the caster's inventory.",
- "hexcasting.mishap.hexical:can_not_dye": "Expected a dyeable target",
- "hexcasting.mishap.hexical:inedible_wristpocket": "Wristpocketed item is not edible.",
- "hexcasting.mishap.hexical:magic_missile_coordinates": "Could not identify any form of spatial axis.",
- "hexcasting.mishap.hexical:needs_charmed_item": "Expected to be cast by a charmed item.",
- "hexcasting.mishap.hexical:needs_lamp": "Expected to be cast by a genie.",
- "hexcasting.mishap.hexical:needs_hand_lamp": "Expected to be cast by a hand genie.",
- "hexcasting.mishap.hexical:needs_staff": "Expected to be cast by a staff.",
- "hexcasting.mishap.hexical:outside_circle": "Spell exceeds the domain of the spell circle.",
- "hexcasting.mishap.hexical:illegal_jailbreak": "Attempted to crack a casting device with a Hex in it.",
- "hexcasting.mishap.hexical:not_enough_slots": "%d does not fit in the capabilities of the inventory specified by %s.",
-
- "hexcasting.action.book.hexical:get_arch_lamp_position": "Arch. Refl.: Spatial",
- "hexcasting.action.book.hexical:get_arch_lamp_rotation": "Arch. Refl.: Rotational",
- "hexcasting.action.book.hexical:get_arch_lamp_velocity": "Arch. Refl.: Kinetic",
- "hexcasting.action.book.hexical:get_arch_lamp_use_time": "Arch. Refl.: Temporal",
- "hexcasting.action.book.hexical:get_arch_lamp_media": "Arch. Refl.: Media",
- "hexcasting.action.book.hexical:get_arch_lamp_storage": "Arch. Refl.: Memory",
- "hexcasting.action.book.hexical:get_hand_lamp_position": "Genie Refl.: Spatial",
- "hexcasting.action.book.hexical:get_hand_lamp_rotation": "Genie Refl.: Rotational",
- "hexcasting.action.book.hexical:get_hand_lamp_velocity": "Genie Refl.: Kinetic",
- "hexcasting.action.book.hexical:get_hand_lamp_use_time": "Genie Refl.: Temporal",
- "hexcasting.action.book.hexical:get_hand_lamp_media": "Genie Refl.: Media",
- "hexcasting.action.book.hexical:get_hand_lamp_storage": "Genie Refl.: Memory",
- "hexcasting.action.book.hexical:has_autograph": "Authenticator's Dstl.",
- "hexcasting.action.book.hexical:serialize_pattern": "Chirographer's Purif.",
- "hexcasting.action.book.hexical:deserialize_pattern": "Calligrapher's Purif.",
- "hexcasting.action.book.hexical:shuffle_pattern": "Glyphmaker's Dstl.",
- "hexcasting.action.book.hexical:read_shelf": "Librarian's Purif. II",
- "hexcasting.action.book.hexical:zone_specklike": "Zone Dstl.: Specklike",
- "hexcasting.action.book.hexical:modify_block_bouncy": "Bouncy",
- "hexcasting.action.book.hexical:modify_block_energized": "Energized",
- "hexcasting.action.book.hexical:modify_block_ephemeral": "Ephemeral",
- "hexcasting.action.book.hexical:modify_block_invisible": "Invisible",
- "hexcasting.action.book.hexical:modify_block_replaceable": "Replaceable",
- "hexcasting.action.book.hexical:modify_block_volatile": "Volatile",
-
- "hexical.page.hexical_changes.title": "Hexical Changes",
- "hexical.page.hexical_changes.0": "I feel strangely more in tune with the ambient _media around me. It feels $(o)friendlier$() somehow. I can even feel it rippling around me, responding to my actions, as if engaging with me. The _media also feels more malleable, more $(o)workable$(); I sense I am able to manipulate it into more precise and specific specialized effects. I can also bring up my $(item)Hex Notebook$() by pressing $(thing)$(k:hexical.open_hexbook).",
- "hexical.page.hexical_changes.1": "I also find my tools more familiar. I don't require the same level of caution with my $(l:items/staff)$(item)Staff$() and can move around during casting, handy for chasing down targets that get out of my line of sight before I can finish my raycast. I shouldn't become too inattentive though, Nature has not become more forgiving of my miscalculations. I can also write directly into my $(l:items/abacus)$(item)Abacus$() with $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$().",
- "hexical.page.lightning_rod_staff.0": "By fixing a $(item)Block of Amethyst$() to some $(item)Lightning Rods$(), I can make quite the impressive $(l:items/staff)$(item)Staff$(). It is quite weighty to wield but feels absolutely $(o)electrifying$() to use.",
- "hexical.page.lightning_rod_staff.1": "$(o)I learned there are troubles$(br)Of more than one kind.$(br)Some come from ahead$(br)And some come from behind.$(br2)But I've bought a big bat.$(br)I'm all ready, you see.$(br)Now my troubles are going$(br)To have troubles with $(l)me!$()",
- "hexical.page.gauntlet_staff.0": "$(l:items/staff)$(item)Staves$() are quite heavy to wield and finnicky to hold. Should I tire of them, I can construct a gauntlet-like device that will allow me to grasp and warp the _media to my will with my own hands.",
- "hexical.page.gauntlet_staff.1": "$(o)Even the wand itself seems impractical to me. If you need something to grasp and shape the aura, it should be something appropriate. Something like a glove.$()$(br2)- Strange notes I have recovered from an odd book. Clearly this \"aura\" they speak of is _media.",
-
- "hexical.page.grimoire.title": "Grimoires",
- "hexical.page.grimoire.0": "By encrusting an $(item)Enchanted Book$() with $(l:items/amethyst)$(item)Charged Amethyst$() and $(l:items/edified)$(item)Edified Wood$()$(), it traps _media within the pages like an echo chamber. I can then introduce up to 512 pattern-to-pattern-list bindings for the $(item)Grimoire$() to keep bouncing endlessly inside.",
- "hexical.page.grimoire.1": "When I then cast a $(l:patterns/patterns_as_iotas)pattern$() associated with a list using my $(l:items/staff)$(item)Staff$() with the $(item)Grimoire$() in my inventory, Nature acts as though I had drawn the full list, allowing me to create shortcuts for tedious tasks like the raycast mantra or large patterns. In addition to adding new $(l:patterns/patterns_as_iotas)patterns$(), the $(item)Grimoire$() can even overwrite Nature's $(l:patterns/patterns_as_iotas)patterns$().$(br2)$(o)If there's a book that you want to read, but it hasn't been written yet, then you must write it.$()",
- "hexcasting.action.hexical:write_grimoire": "Write Grimoire",
- "hexical.page.write_grimoire.summary": "Associates a pattern to a list of patterns in the $(item)Grimoire$() in my offhand.",
- "hexcasting.action.hexical:erase_grimoire": "Erase Grimoire",
- "hexical.page.erase_grimoire.summary": "Erases any associations for a pattern that may exist in the $(item)Grimoire$() in my offhand.",
- "hexcasting.action.hexical:index_grimoire": "Archivist Reflection",
- "hexical.page.index_grimoire.summary": "Gets a list of all patterns modified by the $(item)Grimoire$() in my offhand.",
-
- "hexical.page.scarab.title": "Scarab Beetle",
- "hexical.page.scarab.0": "A $(item)Scarab Beetle$() is an adorable little amulet that is highly sensitive to _media. When activated, they can intercept patterns rejected by Nature.$(br2)Specifically anything connected to my person casts a pattern that has no meaning to Nature, the scarab steps in and prevents the mishap.$(br2)$(o)Whatever. Go my scarab.$()",
- "hexical.page.scarab.1": "I can instruct my scarab how to judge these \"illegal\" patterns and how to replace it with a different set of patterns instead. This allows me to make $(o)new$() patterns that work seamlessly for only me, even in $(l:items/hexcasting)$(item)casting devices$().",
- "hexical.page.scarab.2": "Teaching them involves $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit$() to teach a _Hex to them. While scarabs proudly display their learned _Hex, they resist mind-reading from $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(). I can reteach them at any time.$(br2)When an illegal pattern is cast, an active scarab will push the rejected pattern to the stack rather than allowing a mishap. It will then cast its learned _Hex and allow the remainder of the original _Hex to continue.",
- "hexical.page.scarab.3": "The power scarabs allow is to create my own patterns that will work seamlessly in my $(l:items/staff)$(item)Staff$() or the $(l:items/hexcasting)$(item)casting devices$() I wield.$(br2)I shall find these patterns concerning the $(l:patterns/pattern_manipulation)meta-manipulation of patterns$() useful if I want to implement advanced processing. I could theoretically create entire infinite families of patterns, similar to the $(l:patterns/numbers)number literals$() and $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambits$().",
-
- "hexical.page.animated_scroll.title": "Animated Scrolls",
- "hexical.page.animated_scroll.0": "$(item)Animated Scrolls$() are mixed with a pinch of $(l:items/amethyst)$(item)Amethyst Dust$(), enchanting the ink to move and wiggle like the patterns I draw with my $(l:items/staff)$(item)Staff$(). Not only that, they can display lists of patterns.$(br2)$(o)You can't be a proper writer without a touch of madness, can you?$()",
- "hexical.page.animated_scroll.1": "I can freely write and rewrite the scroll's patterns at any time, along with reading it back out. The scroll accepts only a list of $(l:patterns/patterns_as_iotas)pattern iotas$() or a lone $(l:patterns/patterns_as_iotas)pattern iota$(), which is automatically wrapped in a list. The $(item)Animated Scroll$() shows one pattern at a time which cycles to the next one once per second. Even when I write the same list to two of them at different moments of their cycle, they display in sync.",
- "hexical.page.animated_scroll.2": "The $(l:items/amethyst)$(item)Amethyst$() seeped into the paper allows me to modify these $(item)Animated Scrolls$() in a variety of aesthetic ways entirely for free.$(br2)I have documented these patterns on the following pages.$(br2)Of note, I can also read and write to these scrolls remotely using the standard patterns.",
- "hexcasting.action.hexical:normalize_scroll": "Restore Scroll",
- "hexical.page.normalize_scroll.summary": "Restores the parchment of a scroll to an unmodified state.",
- "hexcasting.action.hexical:age_scroll": "Age Scroll",
- "hexical.page.age_scroll.summary": "Yellows the parchment of an $(item)Animated Scroll$(), making it bear striking semblance to some ancient scrolls I've been finding.",
- "hexcasting.action.hexical:vanish_scroll": "Vanish Scroll",
- "hexical.page.vanish_scroll.summary": "Causes the $(item)Animated Scroll$() to become invisible leaving only the pattern, making it appear as though the pattern were magically etched into the surface the scroll is on.",
- "hexcasting.action.hexical:color_scroll": "Dye Ink",
- "hexical.page.color_scroll.summary": "Changes the color of an $(item)Animated Scroll's$() ink to the color specified by the vector, with the components being 0 to 1 values of red, green, and blue respectively.",
- "hexcasting.action.hexical:glow_scroll": "Illuminate Ink",
- "hexical.page.glow_scroll.summary": "Causes the ink of an $(item)Animated Scroll$() to brightly glow, regardless of lighting conditions.",
-
- "hexical.page.hex_candle.title": "Hex Candles",
- "hexical.page.hex_candle.0": "When ignited for the first time, either $(l:patterns/spells/prestidigitation)magically$() or with a $(item)Flint and Steel$(), these delightful little candles have pale white flames. They also seem to not extinguish when flooded. When someone interacts with it though, it copies their pigment. I can also give it with a pigment item to change its color directly. To extinguish, $(thing)$(k:sneak) $(k:use)$().",
- "hexical.page.hex_candle.1": "$(o)The doctor found himself in an immense cave lined with countless quivering candles, each representing the duration of a life.$()",
-
- "hexical.page.media_jar.title": "Media Jar",
- "hexical.page.media_jar.0": "I can melt down all my $(l:items/amethyst)$(item)Amethyst$() in this little jar! Unfortunately, the glass is too thick for me to draw _media through it, although I have read tales that ancient _Hexcasters were able to solve this issue and were able to bottle up liquid _media in some kind of flask to use in their _Hexes. However, this $(item)Media Jar$() also has some fascinating properties for recycling _media.",
- "hexical.page.media_jar.description": "$(o)There, sure enough, she saw the faint translucent outline of something aboout the size of a hen's egg. There was just a touch of color in it, a pale sea-green, soft and shimmering and very beautiful.",
- "hexical.page.media_jar.1": "I can dunk items into the $(item)Jar$() to fill or imbue it with _media. Items not designed for the containment of _media are vulnerable to seepage, allowing the _media to soak in and $(o)transmute$() the item in a variety of unpredictable and surprising ways.$(br2)This can be done in-world by using an item on the $(item)Jar$(), in my inventory just like a $(item)Bundle$(), a $(item)Hopper$() to insert and extract items, or the $(l:patterns/spells/hopper)$(action)Hopper$() spell.",
- "hexical.recipe.alchemists_take_this.header": "Make Gold",
- "hexical.recipe.alchemists_take_this.text": "Transforms copper ingots to gold.",
- "hexical.recipe.thoughtknot.header": "Weave Thought-Knot",
- "hexical.recipe.thoughtknot.text": "Crafts $(l:items/thought_knot)$(item)Thought-Knots$() by submerging $(item)String$() in a large volume of _media rather than brushing an $(l:items/amethyst)$(item)Amethyst Dust$() on it. A slightly more efficient recipe.",
- "hexical.recipe.unthoughtknot.header": "Release Memory",
- "hexical.recipe.unthoughtknot.text": "Sucks the _media out of a $(l:items/thought_knot)$(item)Thought-Knot$(). Loses _media compared to the crafting recipe, but useful for recycling the little bit of _media.",
- "hexical.recipe.cry_obsidian.header": "Sadden Obsidian",
- "hexical.recipe.cry_obsidian.text": "Infuses $(item)Obsidian$() with _media which leaks out of it, giving it a distinctive crying appearance.",
- "hexical.recipe.uncry_obsidian.header": "Calm Obsidian",
- "hexical.recipe.uncry_obsidian.text": "Returns the _media from $(item)Crying Obsidian$().$(br2)$(o)Therapy! :D$()",
- "hexical.recipe.fossil_fuel.header": "Coal",
- "hexical.recipe.fossil_fuel.text": "Transforms $(item)Charcoal$() into $(item)Coal$() by infusing thought into it and then immediately killing it. Good for compacting.",
- "hexical.recipe.renewable_fuel.header": "Charcoal",
- "hexical.recipe.renewable_fuel.text": "Transforms $(item)Coal$() into $(item)Charcoal$(). Why?",
-
- "hexical.page.casting_carpet.title": "Casting Carpets",
- "hexical.page.casting_carpet.0": "I can weave $(l:items/amethyst)$(item)Amethyst$() into any ordinary rug to create this wonderfully comfy rug. Stepping on the carpet, I can feel the _media coursing under my feet. It feels disorienting but surprisingly puts me at peace.$(br2)I feel very inspired, as if I were wearing a $(l:items/lens)$(item)Scrying Lens$() although weaker. My _Hexcasting vision seems to have been expanded.",
- "hexical.page.casting_carpet.recipe": "$(o)Why is the red carpet red? It can be any color.$()",
-
- "hexical.page.media_log.title": "Media Logs",
- "hexical.page.media_log.0": "With _Hexes casting _Hexes, it is easy to lose track of my patterns and Nature is all too happy to punish my carelessness. _Hexcasters of old had a device they called an $(item)$(m)Error$() $(item)Media Log$() that recorded the last few patterns cast even by other $(l:patterns/meta)patterns$(), the last mishap, and the stack right before mishap in order to help them track down their errors. All $(item)Media Logs$() share the same memory.",
- "hexical.page.media_log.1": "Sneak-$(k:use)ing clears the $(item)Media Log$() and starts recording until the next mishap.$(br2)$(o)Now you may only see a pile of receipts, but I see a story. I can see where this story is going. It does not look good.$()",
-
- "hexical.page.sentinel_bed.title": "Sentinel Beds",
- "hexical.page.sentinel_bed.0": "The $(item)Lodestone$() inside seems to make this block $(o)and the entities shoved in it$() always within my _Hexes' ambit, although I prefer to believe the $(item)Wool$() invites my $(l:patterns/spells/sentinels)$(thing)Sentinel$(). Cats seem to find it cozy too, like a lit furnace or a bed.$(br2)I hear rumors of ancient _Hexcasters using this as some kind of iota storage from any range but I struggle to imagine how.",
- "hexical.page.sentinel_bed.1": "$(o)A comfy bed for my sentinel, it always seems eager to return to it.$()",
-
- "hexical.page.periwinkle.title": "Periwinkle",
- "hexical.page.periwinkle.0": "There is an long-extinct species of flowers called $(item)Periwinkles$(). In addition to looking pretty, they have great calming abilities; ancient _Hexcasters used them to cope with the great horrors that comes with the Art.$(br2)$(o)A special flower for a special person.$()",
- "hexcasting.action.hexical:periwinkle": "Induce Digging",
- "hexical.page.periwinkle.summary": "Fortunately, the Art of _Hexcasting is a versatile one and provides the means to bring back near anything.",
- "hexical.page.periwinkle.1": "I believe that there is a certain creature capable of $(o)sniffing$() out these flowers. I can cast the previous spell on these $(thing)Sniffers$() to compel them to immediately drop down and unearth these flowers for me.$(br2)Such a perversion of free will comes at a cost, around three $(l:items/amethyst)$(item)Charged Amethyst$(). There may also be the occasional harmless mental $(o)error$(); I am not infallible after all, especially working with something as complex as the mind.",
- "hexical.page.periwinkle.2": "Some magic must be at play here: $(thing)Sniffers$() can dig up $(item)Periwinkles$() from any block at all, even inorganic ones or ones orginating from other planes of reality.$(br2)I imagine that the spell doesn't just \"ask\" the $(thing)Sniffer$() to find the flowers; it $(o)conjures$() them. It fishes around in the brain for the memory of $(item)Periwinkle$() and from that, it receives a template which it instantiates and allows the $(thing)Sniffer$() to dig up. And if it can do it, so $(l:patterns/spells/hexical_spells#hexical:flower)can I$().",
- "hexical.page.lei.summary": "Once I have recovered some $(item)Periwinkles$(), I can craft the flowers into a $(item)Lei$()! The $(item)Lei$() gives a small boost to my _Hexcasting reach, not unlike a $(l:items/lens)$(item)Scrying Lens$() although without the same ability to perceive extra information.",
- "hexical.page.lei.description": "When worn, a $(item)Lei$() prevents Nature from claiming my life as payment for _Hexes.$(br2)Unlike other armor, a $(item)Lei$() can be placed on others if they are not currently wearing anything. Ancient _Hexcasters did this as a sign of endearment and affection due to the $(item)Lei$()'s protective and calming abilities, as well as the effort of obtaining the flowers.",
-
- "hexical.page.plushies.title": "Plushies",
- "hexical.page.plushies.0": "The ancient _Hexcasters have created these delightful $(item)Plushies$()! They seem to be references to some of the patterns I use in _Hexcasting. I'm not sure if they do anything, but they are a lovely little collector's item.$(br2)The occasional wandering merchant might have picked up one or two during their travels.",
- "hexical.page.plushies.hexxy": "This one looks slightly deranged. I feel slightly anxious having it in my inventory.",
- "hexical.page.plushies.thothy": "This one seems to sleeping. I feel strangely assured with it on me, as if it were watching over me.",
- "hexical.page.plushies.irissy": "This one seems to stare directly at me no matter where I put it. What have you seen, great Irissy?",
- "hexical.page.plushies.quadxxy": "This one might have been made by a bad craftsman. It's not even on a hexagonal grid!",
- "hexical.page.plushies.pentxxy": "... I'm starting to think these were made intentionally.",
- "hexical.page.plushies.flexxy": "The $(o)detail$() on this plushie is unnaturally good. Flexxy must have been quite the idol for this much effort to be poured into its effigy.",
-
- "hexical.page.wooleyed_potion.title": "Potions of Wooleyeing",
- "hexical.page.wooleyed_potion.0": "These $(item)Potions$() let me forget some of the eldritch knowledge _Hexcasting provides. A base dose removes my ability to trade my own life for _media, useful if I do not want to be carried off from a mere miscalculation. Higher potencies remove the ability to cast great spells entirely, possibly useful as an offensive tool.$(br2)$(o)It is unseen.$()",
- "hexical.page.wooleyed_potion.header": "Potion of Wooleyeing",
- "hexical.page.wooleyed_potion.1": "I can brew one by boiling a $(l:items/periwinkle)$(item)Periwinkle$() into a simple $(item)Awkward Potion$(). $(item)Glowstone Dust$() and $(item)Redstone Dust$() have their standard amplifying and lengthening effects, as with most potions.",
-
- "hexical.page.pedestal.title": "Pedestals",
- "hexical.page.pedestal.0": "A $(item)Pedestal$() can keep an item suspended safely for me. Unlike an $(item)Item Frame$() or a $(item)Chest$() though, my _Hexes can still interact with the item as though it were just dropped on the floor. An empty $(item)Pedestal$() can pull items near it and it interacts with $(item)Hoppers$() about how I would expect. It works even if the item is swapped out.",
- "hexical.page.pedestal.1": "$(o)A pedestal is as much a prison as any small, confined space.$()",
-
- "hexical.category.lamp": "Genie Lamp",
- "hexical.category.lamp.desc": "I have heard some tales from the villagers about a magical artifact. The villagers say it contains a spirit that grants wishes, but I suspect that is just grand embellishment evolved over centuries of storytelling. However, legends must arise from something and this item must be exceptionally powerful, and so I dedicate this section to my pursuit and research of it.",
-
- "hexcasting.action.hexical:lamp_finale": "Finale Reflection",
- "hexical.page.lamp_finale.hand": "The instant I let go of my $(item)Hand Lamp$(), it casts an additional time. I can use this pattern to recognize whether a cast is that finale, and react accordingly.",
- "hexical.page.lamp_finale.arch": "When an $(item)Archgenie Lamp$() is turned off, it casts an additional time. Like with a regular $(l:items/hand_lamps)$(item)Hand Lamp$(), I can use $(l:lamp/hand_lamps#hexical:lamp_finale)$(action)Finale Reflection$() to recognize whether a cast is that last burst of energy.",
-
- "hexical.page.hand_lamps.title": "Hand Lamps",
- "hexical.page.hand_lamps.0": "So this is the subject of a thousand years of rumor! To think a mere wandering trader could be in possession of such an artifact. The $(item)Hand Lamp$() emanates a vague residue of _media, vacuous in feeling... it reminds me of the $(o)hollow _media structure$() of a $(l:items/focus)$(item)Focus$() that allows it to store iota. I can also sense a presence inside the $(item)Lamp$() with similar magical capabilities to my own.",
- "hexical.page.hand_lamps.1": "The signs are unmistakable; within the $(item)Lamp$() is a $(o)living, sentient$() mind, kept alive and trapped via means not yet known to me. The $(item)Lamp$()'s design is simply ingenious, if its use weren't so horrible. When I hold down the trigger, my patterns are revealed to the \"genie\" as I will be calling it, and it, out of desperation and boredom, casts.",
- "hexcasting.action.hexical:wish": "Wish",
- "hexical.page.wish.summary": "Wish the genie to cast a _Hex for me. Because I am $(o)teaching$() a mind rather than $(o)etching$() a $(l:items/hexcasting)$(item)casting device$(), I can freely reteach the genie a new _Hex any time without losing _media.",
- "hexical.page.hand_lamps.2": "To say it casts is an understatement. It casts $(o)$(l)EVERY INSTANT$(). When holding the switch after wishing, I am treated to a splendid unceasing gush of _media. I can only estimate it must be around twenty times every second. The genie performs the casting with incredible efficiency, producing little of the sounds and particles that accompany other casting methods.",
- "hexical.page.hand_lamps.3": "I have developed some useful patterns to communicate with the genie for information, documented on the next few pages. These patterns must only be cast by the genie within the $(item)Lamp$(), lest I succumb to the Impersonate Genie mishap.$(br2)$(o)I am not a tool for your convenience.$()$(br)Strange murmuring occasionally emitted from the $(item)Lamp$(). Likely disregardable.",
- "hexcasting.action.hexical:get_hand_lamp_position": "Genie Reflection: Spatial",
- "hexical.page.get_hand_lamp_position.summary": "Pushes my original position when I began using the $(item)Hand Lamp$().",
- "hexcasting.action.hexical:get_hand_lamp_rotation": "Genie Reflection: Rotational",
- "hexical.page.get_hand_lamp_rotation.summary": "Pushes my original rotation when I began using the $(item)Hand Lamp$().",
- "hexcasting.action.hexical:get_hand_lamp_velocity": "Genie Reflection: Kinetic",
- "hexical.page.get_hand_lamp_velocity.summary": "Pushes my original velocity when I began using the $(item)Hand Lamp$().",
- "hexcasting.action.hexical:get_hand_lamp_use_time": "Genie Reflection: Temporal",
- "hexical.page.get_hand_lamp_use_time.summary": "Pushes how many times the $(item)Hand Lamp$() has cast since I began using the $(item)Hand Lamp$(). I can divide by by 20 to convert to seconds.",
- "hexcasting.action.hexical:get_hand_lamp_media": "Genie Reflection: Media",
- "hexical.page.get_hand_lamp_media.summary": "Pushes the remaining _media of the $(item)Hand Lamp$(), in units of dust.",
- "hexcasting.action.hexical:set_hand_lamp_storage": "Genie Gambit",
- "hexical.page.set_hand_lamp_storage.summary": "Asks the genie to remember an iota for me. Strangely, the genie seems able to bypass the Transgress Others mishap, perhaps because it requires my active concentration to use this $(item)Hand Lamp$().",
- "hexcasting.action.hexical:get_hand_lamp_storage": "Genie Reflection: Memory",
- "hexical.page.get_hand_lamp_storage.summary": "Requests the iota I had saved to the genie to be pushed to the top of the stack. If I had not previously saved anything, the genie pushes $(l:casting/influences)$(thing)Null$().",
-
- "hexical.page.genie_lore.title": "On Genies",
- "hexical.page.genie_lore.0": "_Hexcasting burns out the mind from the energy of thought, flooding the consciousness, inundating every neuron... it's euphoric. For $(l:items/staff)$(item)Staves$(), $(l:items/hexcasting)$(item)casting devices$(), and $(l:greatwork/spellcircles)grand constructs$(), the rate of casting is slow enough that a mind can recuperate; I will never hurt myself just by casting too many patterns. With the speeds that $(item)Lamps$() operate at, though, even a mind perfected for _Hexcasting can feel strain.",
- "hexical.page.genie_lore.1": "Fortunately, the $(item)Lamp$() captures the _media that a lesser $(l:items/hexcasting)$(item)casting device$() would have wasted creating noises and particles, and uses that to repair the genie's mind. Almost zero _media is wasted; truly incredible. My only concern is when the $(item)Lamp$() runs dry. Fortunately, I can refill them with _media.",
- "hexcasting.action.hexical:recharge_lamp": "Refuel Lamp",
- "hexical.page.recharge_lamp.summary": "Refuels the $(item)Lamp$() in my offhand by the given amount in $(l:items/amethyst)$(item)Amethyst Dust$(). Costs just the _media I'm giving the $(item)Lamp$().",
- "hexical.page.genie_lore.2": "The $(item)Lamp$() seems capable of holding a near endless amount of _media. If I fuel it past its current bounds, it simply expands its storage reservior to accommodate. Truly a marvel of technology.",
- "hexical.page.genie_lore.3": "Upon closer inspiration, the genie within the $(item)Lamp$() seems to just be an extremely minimal, almost artificial network of thought and _media. I hesitate to call it a creature, more of a $(o)wisp$(). Perhaps if I replaced it with a more complex, $(o)sentient$() mind, I can induce some great change. The mind must be of upmost quality to survive the process and still retain a shred of talent; a villager that has spent its life honing a craft to perfection will do quite nicely.",
- "hexcasting.action.hexical:promote_lamp": "Promote Lamp",
- "hexical.page.promote_lamp.summary": "Hold the lamp in my other hand and cast. Costs about ten $(l:items/amethyst)$(item)Charged Amethyst$() and requires the sacrifice.",
-
- "hexical.page.arch_lamps.title": "Archgenie Lamps",
- "hexical.page.arch_lamps.0": "The $(l:items/hand_lamps)$(item)Hand Lamp$() $(o)merged with$() the sacrifice. I can feel it still breathing. I shall refer to my creation as an $(item)Archgenie Lamp$().$(br2)Now that I've.. upgraded the processing component of my $(item)Lamp$(), it requires far less supervision: I can simply command it to be active and while in my inventory, they will cast every instant, as though I were always holding down on a $(l:items/hand_lamps)$(item)Hand Lamp$().",
- "hexical.page.arch_lamps.1": "The genie stops casting when it determine when it is in the hands of new casters. No one can force me to cast.$(br2)$(o)I am a great soft jelly thing. Smoothly rounded, with no mouth, with pulsing white holes filled by fog where my eyes used to be. Rubbery appendages that were once my arms; bulks rounding down into legless humps of soft slippery matter.$(br2)I have no mouth. And I must scream.$()",
- "hexcasting.action.hexical:has_arch_lamp": "Archgenie Purification",
- "hexical.page.has_arch_lamp.summary": "Pushes whether a player currently has an active $(l:lamp/arch_lamps)$(item)Archgenie Lamp$().",
- "hexcasting.action.hexical:get_arch_lamp_position": "Archgenie Reflection: Spatial",
- "hexical.page.get_arch_lamp_position.summary": "Pushes my original position when the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() started casting.",
- "hexcasting.action.hexical:get_arch_lamp_rotation": "Archgenie Reflection: Rotational",
- "hexical.page.get_arch_lamp_rotation.summary": "Pushes my original rotation when the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() started casting.",
- "hexcasting.action.hexical:get_arch_lamp_velocity": "Archgenie Reflection: Kinetic",
- "hexical.page.get_arch_lamp_velocity.summary": "Pushes my original velocity when the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() started casting.",
- "hexcasting.action.hexical:get_arch_lamp_use_time": "Archgenie Reflection: Temporal",
- "hexical.page.get_arch_lamp_use_time.summary": "Pushes how many times the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() has cast since its activation. I can divide by by 20 to convert to seconds.",
- "hexcasting.action.hexical:get_arch_lamp_media": "Archgenie Reflection: Media",
- "hexical.page.get_arch_lamp_media.summary": "Pushes the remaining amount of _media left in the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$(), in units of dust.",
- "hexcasting.action.hexical:set_arch_lamp_storage": "Archgenie Gambit",
- "hexical.page.set_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)Staff$(), or within the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() to remember an iota. Unlike $(item)Hand Lamp$(), this is subject to Transgress Others mishap.",
- "hexcasting.action.hexical:get_arch_lamp_storage": "Archgenie Reflection: Memory",
- "hexical.page.get_arch_lamp_storage.summary": "Can be cast by a $(l:items/hexcasting)$(item)casting device$(), $(l:items/staff)$(item)Staff$(), or within the $(l:lamp/arch_lamps)$(item)Archgenie Lamp$() to push the stored iota.",
-
- "hexical.page.pedestal_circles.title": "Pedestals in Circles",
- "hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)Pedestals$() have magical abilities!$(br2)If they are holding $(l:patterns/readwrite#hexcasting:write)$(item)an item that contains information$() and the $(l:greatwork/spellcircles)$(thing)spell circle$()'s wave passes over them as if they were a $(l:items/slate)$(item)Slate$(), they push the iota onto the stack. If the $(l:items/pedestals)$(thing)Pedestal$() happens to processed inside an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), the iota appears inside the constructed list.",
- "hexical.page.pedestal_circles.1": "An $(l:greatwork/spellcircles)$(item)Impetus$() can also $(l:patterns/spells/circle_spells#hexical:absorb_arm)use$() a $(l:items/pedestals)$(item)Pedestal$() as its $(o)other hand$(), useful for spells such as the $(l:patterns/spells/hexcasting)casting device crafting spells$(), $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge Item$(), and $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().$(br2)This is useful for creating automated constructions to $(l:patterns/spells/hexcasting#hexcasting:recharge)recharge$() my $(l:items/hexcasting)casting devices$().",
-
- "hexical.page.patterns.title": "Pattern Manipulation",
- "hexical.page.patterns.0": "I have discovered a set of patterns that concern the construction and manipulation of other $(l:patterns/patterns_as_iotas)patterns$(). Strangely, they can be used to construct patterns that are $(o)impossible$() to draw with a $(l:items/staff)$(item)Staff$(), although fortunately I don't believe Nature has associated an effect with any of these \"illegal\" patterns. They can be considered free to use with my $(l:items/scarab)$(item)Scarab Beetle$().",
- "hexcasting.action.hexical:shuffle_pattern": "Glyphmaker's Distillation",
- "hexical.page.shuffle_pattern.summary": "Uses the number to shuffle the pattern into one of the same shape, but different stroke order. My notes hint that ancient _Hexcasters used this for some $(o)grand library$().",
- "hexcasting.action.hexical:congruent": "Congruence Distillation",
- "hexical.page.congruent.summary": "Pushes whether two patterns have the same shape, stroke order, and orientation.",
- "hexcasting.action.hexical:similar": "Similarity Distillation",
- "hexical.page.similar.summary": "Pushes whether two patterns have same shape but not necessarily the same stroke order.",
- "hexcasting.action.hexical:serialize_pattern": "Chirographer's Purification",
- "hexical.page.serialize_pattern.summary": "Turns a pattern into a list of numbers for my splitting, analysis, and dissection. The inverse of $(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)Calligrapher's Purification$().",
- "hexcasting.action.hexical:deserialize_pattern": "Calligrapher's Purification",
- "hexical.page.deserialize_pattern.summary": "Turns a list of numbers into a pattern for my viewing and execution. The inverse of $(l:patterns/pattern_manipulation#hexical:serialize_pattern)$(action)Chirographer's Purification$().",
- "hexical.page.patterns.1": "The numbers returned by $(l:patterns/pattern_manipulation#hexical:serialize_pattern)$(action)Chirographer's Purification$() correspond to individual strokes in the pattern. The diagonal stroke that travels upwards and rightwards is labeled 0 and all the other strokes are labelled incrementally in a clockwise manner.$(br2)If I pass in a list of numbers outside the 0-5 range into $(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)Calligrapher's Purification$(), it will apply a $(l:patterns/math#hexcasting:modulo)modulo$() to coerce numbers into the 0-5 range.",
- "hexical.page.patterns.2": "These lists have multiple fascinating properties. By adding or subtracting constant values, I can rotate the pattern. I can splice off the beginning and ends to check for pattern prefixes and suffixes. In cyclical patterns, I can rotate the list by moving the first element to the end or vice versa to cycle the starting position. By carefully altering numbers with list manipulation, I can also make some kind of $(o)backwards stroke$().",
- "hexcasting.action.hexical:draw_pattern": "Handwriting Distillation",
- "hexical.page.draw_pattern.summary": "Takes a pattern and produces a normalized list of vectors. The z-component of these vectors is zero. I feel this may be useful for artistic _Hexes.",
-
- "hexical.page.telepathy.title": "Telepathy",
- "hexical.page.telepathy": "_Media is the energy of thought and consequently, it can interact with thoughts as well. Unfortunately or perhaps fortunately for me, the minds of _Hexcasters are too resistant to be swayed by _Hexes and even the minds of villagers resist tampering. There is a notable exception though: my own mind is open to my own _media, allowing me to read my own intentions and write thoughts to myself.",
- "hexcasting.action.hexical:get_telepathy": "Telepathic Reflection",
- "hexical.page.get_telepathy.summary": "By focusing on a particular image, I can detect that concentration via this pattern. Pushes how many twentieths of a second I've been intending to $(thing)$(k:hexical.telepathy)$(), or -1 if I am not.",
- "hexcasting.action.hexical:send_telepathy": "Send Thought",
- "hexical.page.send_telepathy.summary": "Momentarily displays an iota above my hotbar. If cast repeatedly, each cast overwrites the previous instantly.",
- "hexcasting.action.hexical:shout_telepathy": "Shout Thought",
- "hexical.page.shout_telepathy.summary": "Grandly flashes an iota across my vision. It obstructs my vision and takes some time to fade in, so I shall only use it sparingly.",
- "hexcasting.action.hexical:pling": "Hallucinate Pling",
- "hexical.page.pling.summary": "Causes me to hear a pling that is inaudible to others.",
- "hexcasting.action.hexical:click": "Hallucinate Click",
- "hexical.page.click.summary": "Causes me to hear a click that is inaudible to others.",
- "hexcasting.action.hexical:left_click": "Offensive Reflection",
- "hexical.page.left_click.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:attack)$(), or -1 if I am not.",
- "hexcasting.action.hexical:right_click": "Manipulative Reflection",
- "hexical.page.right_click.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:use)$(), or -1 if I am not.",
- "hexcasting.action.hexical:moving_up": "Charge Reflection",
- "hexical.page.moving_up.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:forward)$(), or -1 if I am not.",
- "hexcasting.action.hexical:moving_down": "Retreat Reflection",
- "hexical.page.moving_down.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:back)$(), or -1 if I am not.",
- "hexcasting.action.hexical:moving_left": "Dodge Reflection",
- "hexical.page.moving_left.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:left)$(), or -1 if I am not. Can be differentiated from Evade Reflection because d comes to the left of e.",
- "hexcasting.action.hexical:moving_right": "Evade Reflection",
- "hexical.page.moving_right.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:right)$(), or -1 if I am not. Can be differentiated from Dodge Reflection because e comes to the right of d.",
- "hexcasting.action.hexical:jumping": "Leaping Reflection",
- "hexical.page.jumping.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:jump)$(), or -1 if I am not.",
- "hexcasting.action.hexical:sneaking": "Stealthy Reflection",
- "hexical.page.sneaking.summary": "Pushes how many twentieths of a second I've been intending to $(thing)$(k:sneak)$(), or -1 if I am not.",
- "hexcasting.action.hexical:scroll": "Rolling Reflection",
- "hexical.page.scroll.summary": "Pushes the change in scrolling I have performed since I have invoked $(thing)Telepathy$().",
-
- "hexical.page.akashic_conveniences.title": "Akashic Utilities",
- "hexical.page.akashic_conveniences.0": "Being designed to be receptive to _media and store information, it should not surprise me that there are more conveniences than meets the eye. I can $(thing)$(k:use)$() or $(l:patterns/spells/prestidigitation)magically interact$() with a filled $(l:greatwork/akashiclib)$(item)Bookshelf$() to copy its iota onto my stack. I can also $(thing)$(k:use)$() with a $(l:items/scroll)$(item)Scroll$() to copy the pattern key onto it. There are also a set of patterns to read and write directly to a $(l:greatwork/akashiclib)$(item)Bookshelf$() within ambit for free.",
- "hexcasting.action.hexical:key_shelf": "Librarian's Purification",
- "hexical.page.key_shelf.summary": "Reads the pattern key of an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
- "hexcasting.action.hexical:read_shelf": "Librarian's Purification II",
- "hexical.page.read_shelf.summary": "Reads the iota from an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
- "hexcasting.action.hexical:write_shelf": "Librarian's Gambit",
- "hexical.page.write_shelf.summary": "Writes an iota under a pattern key to an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
- "hexcasting.action.hexical:clear_shelf": "Librarian's Gambit II",
- "hexical.page.clear_shelf.summary": "Clears an $(l:greatwork/akashiclib)$(item)Akashic Bookshelf$().",
-
- "hexical.page.mage_block.title": "Mage Blocks",
- "hexical.page.mage_block.0": "The blocks from $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjure Block$() last forever, are consequently a pain to clean up, and are not too versatile. Luckily, Nature offers an elegant and flexible alternative. These mage blocks come with a suite of $(o)modifiers$(). I could even stack multiple modifiers on one block or reapply a modifier to toggle it off.",
- "hexcasting.action.hexical:conjure_mage_block": "Conjure Mage Block",
- "hexical.page.conjure_mage_block.summary": "Conjures a mage block at the location. Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().$(br2)$(o)I can create a city out of nothing, or I can cover it in volcanic rock.$()",
- "hexcasting.action.hexical:modify_block_bouncy": "Modify Block: Bouncy",
- "hexical.page.modify_block_bouncy.summary": "This modifier makes the block delightfully fun to bounce on! It returns more force to me than regular slime blocks and I notice even if I sneak, the block bounces me regardless.",
- "hexcasting.action.hexical:modify_block_energized": "Modify Block: Energized",
- "hexical.page.modify_block_energized.summary": "This modifier makes the block emit a Redstone signal, with the number corresponding to the power level of the output.",
- "hexcasting.action.hexical:modify_block_ephemeral": "Modify Block: Ephemeral",
- "hexical.page.modify_block_ephemeral.summary": "This modifier takes in a number in addition to a position and shatters the block after many twentieths of a second. Subsequent casts can lengthen or shorten the duration.",
- "hexcasting.action.hexical:modify_block_invisible": "Modify Block: Invisible",
- "hexical.page.modify_block_invisible.summary": "This modifier prevents the block from emitting the telltale particles that accompany my casting, even when being stood on.",
- "hexcasting.action.hexical:modify_block_replaceable": "Modify Block: Replaceable",
- "hexical.page.modify_block_replaceable.summary": "This modifier is useful for construction! With this modifier applied, I find I can easily place another block in the place of the mage block.",
- "hexcasting.action.hexical:modify_block_volatile": "Modify Block: Volatile",
- "hexical.page.modify_block_volatile.summary": "This modifier makes the block break other mage blocks it's touching. Notably, if it breaks another volatile block, that block breaks and so on until every volatile block shatters.",
-
- "hexical.page.rotation.title": "Rotation",
- "hexical.page.rotation.0": "Rotation is done via with stationary teleportation at a different orientation. The sudden perspective change is already highly disorienting; the floor leaving your feet only to be shoved back onto it again is more so.$(br2)For this reason, Nature abhors entity rotation... or perhaps it trivializes Nature's carefully constructed schemes.",
- "hexcasting.action.hexical:rotate_block": "Rotate Block",
- "hexical.page.rotate_block.summary": "Rotates a block to face a certain vector direction. Requires a rotatable block. Costs about an eighth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcasting.action.hexical:rotate_entity": "Rotate Entity",
- "hexical.page.rotate_entity.summary": "Rotates an entity by a given change in pitch and yaw, expressed in radians.",
- "hexical.page.rotate_entity.description": "Nature seems to be against entity rotation. Rather than a straightforward vector, Nature demands measurements in radians by which to turn horizontally and vertically.$(br2)The cost is strange and multilayered too. Free if cast on myself, about half of an $(l:items/amethyst)$(item)Amethyst Dust$() for other entities, and the natural aura of _media surrounding a player elevates the cost to about a whole $(l:items/amethyst)$(item)Charged Amethyst$().",
-
- "hexical.page.autographs.title": "Autographs",
- "hexical.page.autographs.0": "Using precise manipulation of _media, I can magically $(o)etch$() my signature onto any item! It must be done with my $(l:items/staff)$(item)Staff$() as proof of intentionality.$(br2)An autographed item proudly displays every autographer's name in shimmering $(l:items/pigments)$(item)Pigment$().$(br2)$(o)I disagree strongly with whatever work this quote is attached to.$()",
- "hexcasting.action.hexical:autograph": "Autograph",
- "hexical.page.autograph.summary": "Autographs the item in my offhand with my name and $(l:items/pigments)$(item)Pigment$(). Autographing an item with my name already on it moves my name to the top of the list.",
- "hexical.page.autographs.1": "Because an autograph is strongly imprinted on an item, $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$() is insufficient to remove it; a specialized spell is required to extripate autographs.$(br2)However, a spell capable of doing by its very nature will also destroy a $(l:items/focus)$(item)Focus$()'s contents or a $(l:items/hexcasting)$(item)casting device$()'s _Hex and _media. Perhaps that is for the better—my autographed _Hexcasting gifts can be uniquely assured to be untampered.",
- "hexcasting.action.hexical:unautograph": "Unautograph",
- "hexical.page.unautograph.summary": "A more destructive form of $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$(), capable of burning off autographs. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() similar to $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item$().",
- "hexcasting.action.hexical:has_autograph": "Authenticator's Distillation",
- "hexical.page.has_autograph.summary": "Pushes whether a given player has signed a given item stack.",
-
- "hexical.page.dyes.title": "Dyes",
- "hexical.page.dyes.0": "The dye spell and its specialized iota allows me to alter the color of blocks and entities. The dye iota represents a color, but also seems to represent the $(o)potential$() to be colored. For example, attempting to get the dye of grass returns $(l:casting/influences)$(thing)Null$() but getting the dye of undyed terracotta returns $(thing)uncolored$(), which I can use to \"bleach\" dyeable blocks.",
- "hexcasting.action.hexical:get_dye": "Chromatic Purification",
- "hexical.page.get_dye.summary": "Gets the dye of a block, entity, or block/item identifier.",
- "hexcasting.action.hexical:dye": "Dye",
- "hexical.page.dye.summary": "Dyes a dyeable block or entity. Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.dyes.1": "The valid block targets for this spell include beds, candles, cakes with candles, carpets, concrete, concrete powder, glazed terracotta, sand into red sand and vice versa, sandstone and all blocks derived from it into its red variant and vice versa, shulker boxes, stained glass, stained glass panes, terracotta, tulips into their multiple colors, and wool blocks. As for entities, cat collars, dog collars, specklikes, shulkers, and item entities of all of the above blocks are valid.",
- "hexcasting.action.hexical:translate_dye": "Vision Purification",
- "hexical.page.translate_dye.summary": "Translates a dye color into a vector, where each component is from 0 to 1 and represents the red, green, and blueness of the dye respectively.",
-
- "hexical.page.pigments.title": "Pigment Manipulation",
- "hexical.page.pigments.0": "Like how I can manipulate $(l:patterns/spells/dyes)dyes$() with _Hexcasting, I can also manipulate pigments. I can even store multiple of them and have my _Hexes randomly choose one to give me for example.",
- "hexcasting.action.hexical:to_pigment": "Pigment Purification",
- "hexical.page.to_pigment.summary": "Takes a colored dye iota and transforms it into a pigment, takes a player and returns their pigment, or takes an item containing a pigment and returns its pigment.",
- "hexcasting.action.hexical:sample_pigment": "Pigment Exaltation",
- "hexical.page.sample_pigment.summary": "Samples the pigment at a certain place and time as a vector, where each component is from 0 to 1 and represents the red, green, and blueness respectively.",
- "hexcasting.action.hexical:take_on_pigment": "Internalize Pigment II",
- "hexical.page.take_on_pigment.summary": "Internalizes a pigment iota.",
-
- "hexcasting.action.hexical:magic_missile": "Magic Missile",
- "hexical.page.magic_missile.summary": "Conjures a small silver of amethyst that always deals a full heart of damage and forces the target backwards. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.magic_missile.0": "The projectile has a few interesting properties. It automatically disappears after roughly ten seconds or shatters upon hitting an entity or block. It pierces all forms of armor and protection. It is also unaffected by gravity and water drag.$(br2)$(o)A weak but enchanting sparkling projectile.$()",
- "hexical.page.magic_missile.1": "The first vector is conjuration location and is quite esoteric: no wonder most _Hexcasters conjure it in front of them. The basic gist is a vector, where my head's position is the origin, $(l:patterns/basics#hexcasting:get_entity_look)$(action)my facing$() is the Z+ axis, $(l:patterns/scrying/entities#hexpose:theodolite)$(action)the vector pointing up from my head$() is the Y+ axis, and the vector from my head pointing rightwards is the X+ axis. For basic purposes, the zero vector conjures it inside my head and a vector resembling (0, 0, n) conjures it n blocks in front of me.",
- "hexical.page.magic_missile.2": "The second vector is velocity and thankfully much less complicated. It is a simple offset vector, similar to the one that $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() takes in. Unlike $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse$() though, this vector can be of arbitrary magnitude without incurring additional costs.$(br2)Unlike $(item)Arrows$() though, $(item)Magic Missiles$() will not increase in damage simply by travelling faster. They also apply an odd knockback effect that ignores the entity's mass or the projectile's speed.",
-
- "hexcasting.action.hexical:prestidigitation": "Prestidigitation",
- "hexical.page.prestidigitation.0": "Rather than a specific effect, this spell performs dozens of minor magical feats. It interacts with a vast array of blocks and entities, and I always discovering new applications for it.$(br2)Notes simply describes it as \"do magic\"; the general rule of thumb is any small effect a wizard can effortlessly will into existence, this spell can replicate.",
- "hexical.page.prestidigitation.summary": "Causes a small magical effect, not too distinct from the original nature or function of the target. Costs about a tenth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.prestidigitation.1": "I've compiled all of its recorded uses but there is no guarantee all have been found: opens and closes fence gates, trapdoors, and doors of any materials; flicks levers and presses buttons; holds down and releases pressure plates; extinguishes fires of all kinds; lights and extinguishes candles, candle cakes, and campfires; ignites soul fire on blocks that support it; rings bells; strips wood; carves pumpkins; makes a note block play its sound; dries mud into clay; toggles Redstone lamps;",
- "hexical.page.prestidigitation.2": "triggers dispensers and droppers; turns most soil blocks into path blocks and path blocks into tilled soil; drain cauldrons; modifies the state of Redstone repeaters, comparators, and daylight sensors; ignites and deprimes TNT and creepers; shears sheep; toggles armor stand arms; squirts squid; makes pandas sneeze; removes the helmet of a snow golem; inflates pufferfish; takes honeycomb from beehives and nests, and activates some grand _Hexcasting work.",
-
- "hexical.page.wristpocket.title": "Wristpocket",
- "hexical.page.wristpocket.0": "I can perform the standard magic trick of vanishing an item and bringing it back. The item hides in the $(o)wristpocket$(), where I can use _media to manipulate it. The wristpocketed item stays with me even after death and I can recall it once I can cast again.$(br2)$(o)Because making something disappear isn't enough; you have to bring it back.$()",
- "hexcasting.action.hexical:wristpocket": "Wristpocket",
- "hexical.page.wristpocket.summary": "This spell vanishes the stack of items in my other hand, or conjures it back, swapping if my other hand is holding something. Costs about a eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcasting.action.hexical:wristpocket_item": "Wristpocket Reflection",
- "hexical.page.wristpocket_item.summary": "Returns the item in my wristpocket, or $(l:casting/influences)$(thing)Null$() if it is empty.",
- "hexical.page.wristpocket.1": "While the items disappear from reality in almost all measurable aspects, certain items' effects can still function even when hidden in the wristpocket.$(br2)I hear of certain $(item)Totems$() that still function within the wristpocket. $(l:items/phials)$(item)Phials$() also can still provide for my _Hexes within the wristpocket.",
- "hexcasting.action.hexical:sleight": "Sleight",
- "hexical.page.sleight.summary": "Performs an act of magical sleight of hand to steal items into my wristpocket or expel my wristpocket back into the world. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.sleight.description": "If given a vector, it conjures my wristpocketed item at that vector. If given an item entity, my wristpocket either pulls in or swaps with the item, depending on whether it is empty.$(br2)$(o)If your sleight of hand causes you to break eye contact with your audience, it is too advanced for your skill level.$()",
- "hexcasting.action.hexical:mage_hand": "Mage Hand",
- "hexical.page.mage_hand.summary": "Projects my mind's hand forward to use my wristpocketed item and interact with the world. If my wristpocket is empty, acts as though a plain hand had reached out. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.mage_hand.description": "If given an entity, it interacts with the entity using the wristpocketed item. If given a vector, it interacts with the block or $(o)space$() with the item.$(br2)Because it only brings forth a mind's hand, it is still tied to me and will not work for casting methods not attached to a player. I can however use it to open $(item)Chests$().$(br2)$(o)A spectral, floating hand appears at a point you choose within range.$()",
- "hexcasting.action.hexical:mage_mouth": "Mage Mouth",
- "hexical.page.mage_mouth.summary": "Makes me eat my wristpocketed item, nourishing me or applying potions to me. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() and mishaps if the item is not edible.",
- "hexical.page.mage_mouth.description": "Regardless of the time required to usually eat the item, its special effects, my own dietary restrictions, cooldowns on eating the item, or if I'm full, this spell makes me consume it instantly.$(br2)$(o)Let food be thy medicine and medicine be thy food.$()",
-
- "hexical.page.specks.title": "Specks",
- "hexical.page.specks.0": "I can conjure an image of an iota into the world, called a $(thing)speck$(). Nature allows me to customize them quite extensively, altering their size, thickness of stroke, and more. They also take on my pigment color. Once they are in the world, I can move, rotate, and otherwise alter them for free, regardless of range.",
- "hexcasting.action.hexical:conjure_speck": "Conjure Speck",
- "hexical.page.conjure_speck.summary": "Conjures a speck with the iota, position, and rotation. Costs a negligible amount of _media. Pushes the speck iota to the stack.",
- "hexcasting.action.hexical:move_specklike": "Move Speck",
- "hexical.page.move_specklike.summary": "Moves a speck entity to the position.",
- "hexcasting.action.hexical:rotate_specklike": "Rotate Speck",
- "hexical.page.rotate_specklike.summary": "Rotates a speck entity to face the vector.",
- "hexcasting.action.hexical:roll_specklike": "Roll Speck",
- "hexical.page.roll_specklike.summary": "Accepts a number between 0 and 1, representing a fraction of a full rotation, and rotates the speck's image by that amount.",
- "hexcasting.action.hexical:iota_speck": "Alter Speck",
- "hexical.page.iota_speck.summary": "Changes the speck's iota.",
- "hexcasting.action.hexical:lifetime_specklike": "Time Speck",
- "hexical.page.lifetime_specklike.summary": "Commands the speck to disappear after that many twentieths of a second.",
- "hexcasting.action.hexical:size_specklike": "Resize Speck",
- "hexical.page.size_specklike.summary": "Scales the speck, can range from 0 to 10. Represents size in blocks and is zero by default.",
- "hexcasting.action.hexical:thickness_specklike": "Thicken Speck",
- "hexical.page.thickness_specklike.summary": "Changes the stroke thickness of a pattern speck, can range from 0 to 10. Represents twentieths of a block, and is zero by default.",
- "hexcasting.action.hexical:pigment_specklike": "Paint Speck",
- "hexical.page.pigment_specklike.summary": "Splashes a pigment iota onto the speck, changing its color after creation.",
- "hexcasting.action.hexical:kill_specklike": "Dismiss Speck",
- "hexical.page.kill_specklike.summary": "Forces a speck to disappear.",
- "hexcasting.action.hexical:zone_specklike": "Zone Distillation: Speck",
- "hexical.page.zone_specklike.summary": "Returns specks similarly to other $(l:patterns/entities#hexcasting:zone_entity/animal)zone distillation$() patterns.",
-
- "hexical.page.projectiles.title": "Projectiles",
- "hexical.page.projectiles.0": "While conjuring projectiles from pure _media manipulation would be prohibitively expensive, Nature offers a set of cheaper spells for some projectiles.$(br2)These spells push the conjured entity to the stack, which I must manually $(l:patterns/spells/basic#hexcasting:add_motion)$(action)propel$() in my desired direction.$(br2)$(o)Can I offer you a nice egg in this trying time?$()",
- "hexcasting.action.hexical:egg": "Conjure Egg",
- "hexical.page.egg.summary": "Conjures an egg. May be fertile. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcasting.action.hexical:llama_spit": "Conjure Spit",
- "hexical.page.llama_spit.summary": "Conjures a sticky low-damaging projectile. Costs about a fourth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcasting.action.hexical:snowball": "Conjure Snowball",
- "hexical.page.snowball.summary": "Conjures a harmless snowball. Costs about half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcasting.action.hexical:ghast_fireball": "Conjure Fireball",
- "hexical.page.ghast_fireball.summary": "Conjures an explosive fireball that can be $(o)percussively propelled$(). Costs about three $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.projectiles.1": "There exist other spells too complex to be given justice in this chapter—I have dedicated other chapters to them.$(br2)$(l:patterns/spells/magic_missile#hexical:magic_missile)$(action)Magic Missile$() is a standard quick and versatile spear of amethyst that can be produced and fired at arbitrary speed.$(br2)I can also utilize $(l:patterns/spells/pyrotechnics)fireworks$() for battle.$(br2)Finally, a $(l:patterns/spells/block_mimicry#hexical:dispense)$(action)certain spell$() allows the ability to fire potions and arrows.",
-
- "hexical.page.hexical_spells.title": "Hexical Spells",
- "hexcasting.action.hexical:confetti": "Confetti",
- "hexical.page.confetti.summary": "Creates a loud bang similar to that of $(l:patterns/spells/pyrotechnics)Fireworks$() and a burst of colorful particles, either in a direction or in a radial blast. Costs about half of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.confetti.description": "The particles are harmless and flutter through the air for quite long until they reach the ground. The first vector is a position and the second controls direction. If it is a number, it indicates speed to explode in in all directions; a vector makes the particles tend towards the given direction. Both the number and the vector's magnitude may not exceed 2.$(br2)$(o)The rest is confetti.$()",
- "hexcasting.action.hexical:vibration": "Vibrate",
- "hexical.page.vibration.summary": "Causes a visible pulse of vibration from a vector to an entity or vector over a number of seconds. Costs about a sixteenth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.vibration.description": "The effect, while resembling the pulses produced by $(item)Sculk Sensors$(), is entirely distinct. It is a purely visual effect.$(br2)The duration can range anywhere from zero seconds to ten seconds.$(br2)$(o)If a tree falls in a forest and no one is around to hear it, does it make a sound?$()",
- "hexcasting.action.hexical:sparkle": "Sparkle",
- "hexical.page.sparkle.summary": "Produces a small sparkling particle of my desired position, color, and lifespan. Costs a negligible amount of _media.",
- "hexical.page.sparkle.description": "The first vector controls position and the second vector controls color. Each component should range from 0 to 1 and corresponds to red, green, and blueness respectively. The final number dictates how long the sparkle should remain in twentieths of a second, up to five seconds.$(br2)$(o)All that glitters is not gold.$()",
- "hexcasting.action.hexical:crack_device": "Crack Device",
- "hexical.page.crack_device.summary": "When casted on a $(l:items/hexcasting)$(item)casting device$() without a _Hex, $(o)cracks it$(). Cracked casting devices proudly display their _Hexes. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$().",
- "hexical.page.crack_device.description": "This spell will blind me for a quite a duration if I attempt to expose the innerworkings of an already-written device. For a moment though, I believe I had glimpsed the _Hex before my eyes and brain filled with _media.$(br2)$(o)Nowadays time runs by electricity and vibrating crystals of quarts and goodness know what else.$().$(br)- clearly a reference to $(l:items/amethyst)$(item)Amethyst$().",
- "hexcasting.action.hexical:flower": "Conjure Flower",
- "hexical.page.flower.summary": "Conjures a flower of my choosing at a location. I must have identified this flower at some point before. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.flower.description": "The block under the target position must have a flat top surface to allow rooting. It does not necessarily need to be able to support the flower naturally, although any little movement may cause the flower to break if conjured on an incompatible block. Alternatively, the spell will fill a flower pot if possible.$(br2)$(o)There was a fool who praised me for the magic I acquired. That's all.$()",
- "hexcasting.action.hexical:light": "Illuminate",
- "hexical.page.light.summary": "Conjures a completely invisible light with illumination strength of my choosing at a location. Costs about a quarter of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.light.description": "The block that it is into must be empty or extremely weak. The illumination strength can be a number between 1 and 15, inclusive. If I target a space where a light already exists, the spell is free and particleless.$(br2)By holding a $(l:items/lens)$(item)Scrying Lens$(), I can see the lights and place a block in their place to remove them.$(br2)$(o)The light blinds us. It is only in the dark that we see clearly.$()",
- "hexcasting.action.hexical:gasp": "Gasp",
- "hexical.page.gasp.summary": "Instantly replenishes a creature's air bubbles. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.gasp.description": "Regardless of amount of breath restored, this spell costs exactly one dust so I should ideally wait as long as I safely can before casting this spell. I will find it useful while diving, being teleported into a block, or even keeping sea creatures alive on land.$(br2)$(o)The best way to observe a fish is to become a fish.$()",
- "hexcasting.action.hexical:parrot": "Squawk",
- "hexical.page.parrot.summary": "Emits a sound associated with a mob near a location, as though a parrot had imitated that mob. Costs about a half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.parrot.description": "This spell does nothing but still consumes my _media if a parrot can not replicate the sound.$(br2)I can already imagine this spell's use for playing practical jokes on my friends and enemies. Perhaps Nature does permit me to have fun occasionally with my _Hexes.$(br2)$(o)Hisss...$()",
-
- "hexical.page.break_special.title": "Specialized Breaking",
- "hexcasting.action.hexical:break_fortune": "Extract Block",
- "hexical.page.break_fortune.summary": "Targets structural faults in a block, resulting in a higher yield. Costs about one, three, and five $(l:items/amethyst)$(item)Amethyst Dust$() when power input is 0, 1, and 2 respectively.",
- "hexcasting.action.hexical:break_silk": "Collect Block",
- "hexical.page.break_silk.summary": "Breaks a block gently, perserving the block better than standard mining. Costs about half of an $(l:items/amethyst)$(item)Amethyst Dust$().",
-
- "hexical.page.conjurable_delights.title": "Conjurable Delights",
- "hexical.page.conjurable_delights.0": "Ancient _Hexcasters seem to have devised spells to conjure a multitude of items, to both further their Art and to convenience their collaboration. I can only link these items together by their being $(o)vaguely$() edible.$(br2)$(o)What nicer thing can you do for somebody than make them breakfast?$()",
- "hexcasting.action.hexical:conjure_gummy": "Hex Gummy",
- "hexical.page.conjure_gummy.summary": "Conjures a $(item)Hex Gummy$(): a delightful light snack that also provides about a tenth of an $(l:items/amethyst)$(item)Amethyst Dust$()'s worth of _media. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcasting.action.hexical:conjure_hexburst": "Conjure Hexburst",
- "hexical.page.conjure_hexburst.summary": "Conjures a $(item)Hexburst$() of the given iota at the location. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
- "hexical.page.conjure_hexburst.description": "$(item)Hexbursts$() are edible items created by taking an iota and wrapping _media around it, over and over until it gains size. When eaten, a $(item)Hexburst$() instantly adds its iota to the consumer's stack. I shall find this property considerably useful if I ever want to trade my entity reference. Should my stack have an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it pushes it into the forming list.",
- "hexcasting.action.hexical:conjure_hextito": "Conjure Hextito",
- "hexical.page.conjure_hextito.summary": "Conjures a $(item)Hextito$() of the given _Hex at the location. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$() and is subject to the Transgress Others mishap.",
- "hexical.page.conjure_hextito.description": "$(item)Hextitos$() are triangular crunchy snacks I can conjure. When consumed, the consumer immediately casts its _Hex, using their $(item)$(l:items/staff)Staff$()'s stack unlike a regular $(l:items/hexcasting)$(item)casting device$(). I shall find them useful to make simple actions like raycasts or to give out limited uses of a _Hex I have designed. If a consumer's stack has an unclosed $(l:patterns/patterns_as_iotas#hexcasting:open_paren)Introspection$(), it will not cast, making it quite safe to hand out.",
-
- "hexical.page.spike.title": "Conjure Spike",
- "hexical.page.spike.0": "I hear rumors of a sorcerer illager that can summon fangs from the ground. While I find it hard to believe that villagers can shift _media, I have taken inspiration from those myths and created this spell that brings forth spikes from the ground to skewer targets.",
- "hexcasting.action.hexical:spike": "Conjure Spike",
- "hexical.page.spike.summary": "Takes a non-air position, an axis vector, and a delay in seconds up to ten seconds long and conjures a spike at that location. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.spike.1": "Each spike takes about a half second to strike and deal a hefty three full hearts of damage before slowly sinking back into the ground. If I cast this spell where a spike has not yet disappeared, it will do nothing. Spikes will also throw back targets in the direction they were conjured.",
-
- "hexical.page.block_mimicry.title": "Block Mimicry",
- "hexical.page.block_mimicry.0": "The Art of _Hexcasting is a versatile craft; I can use _media to simulate a lot of the actions that I rely on blocks to perform without requiring any physical infrastructure. With just my staff, I can $(l:patterns/spells/block_mimicry#hexical:stonecut)cut stone into stairs$(), $(l:patterns/spells/block_mimicry#hexical:dispense)launch arrows$(), and $(l:patterns/spells/block_mimicry#hexical:smelt)cook$() my items for me.",
- "hexical.page.block_mimicry.1": "Tales speak of ancient _Hexcasters that have set up entire magical factories without placing a single block.$(br2)$(o)And I need a bigger office, I need a bigger chair$(br)A bigger desk, a bigger staff$(br)A bigger hat to wear",
- "hexcasting.action.hexical:dispense": "Dispense",
- "hexical.page.dispense.summary": "Takes an item entity, a position, and an axis vector and dispenses the item. For most applications, costs about half of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.dispense.description": "More specifically, this spell acts as though a dispenser suddenly appears with the item loaded and fires the dispenser.$(br2)If this spell is used for any type of $(item)Arrow$(), the price increases to a full $(l:items/amethyst)$(item)Charged Amethyst$(). I wonder why Nature would have such an adverse reaction to this specific application. Perhaps I would be too powerful?$(br2)$(o)Upon request, I can also perform a hug.$()",
- "hexcasting.action.hexical:smelt": "Cook",
- "hexical.page.smelt.summary": "Takes an item entity and cooks it as if in a $(item)Furnace$(). Costs about one $(l:items/amethyst)$(item)Amethyst Dust$() for every ten seconds that the $(item)Furnace$() would need to have been active.",
- "hexcasting.action.hexical:roast": "Roast",
- "hexical.page.roast.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Campfire$() instead. This has a much more limited set of possibilities; I am unsure why I would ever use this.",
- "hexcasting.action.hexical:smoke": "Smoke",
- "hexical.page.smoke.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Smoker$() instead, making it unable to process anything but foods but at a faster rate, making the spell cheaper.",
- "hexcasting.action.hexical:blast": "Blast",
- "hexical.page.blast.summary": "A specialized variant of $(l:patterns/spells/block_mimicry#hexical:smelt)$(action)Cook$() that simulates a $(item)Blast Furnace$() instead, making it unable to process anything but ores but at a faster rate, making the spell cheaper.",
- "hexcasting.action.hexical:stonecut": "Cut Stone",
- "hexical.page.stonecut.summary": "Takes an item entity and cuts the item into the shape of an item identifier. Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.stonecut.description": "The target item must be possible to carve from the source item in a $(item)Stonecutter$(). For instance, $(item)Stone$() can be cut into all manners of stairs, slabs, and walls.$(br2)$(o)I saw the angel in the marble and carved until I set him free.$()",
-
- "hexical.page.circle_spells.title": "Circle Spells",
- "hexical.page.circle_spells.0": "When the _media courses through the boundaries of a $(l:greatwork/spellcircles)$(thing)circle$(), it saturates the domain inside with _media, allowing far greater magical effects and flexibility of _media manipulation than I am used to. The following are some spells which rely on that increased density of _media or properties of the $(l:greatwork/spellcircles)circle$() itself and are to only be cast by an $(l:greatwork/impetus)$(item)Impetus$().",
- "hexcasting.action.hexical:displace": "Displace",
- "hexical.page.displace.summary": "Teleports an entity within the $(l:greatwork/spellcircles)circle$() to another point within the same $(l:greatwork/spellcircles)$(thing)circle$(). Unlike $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(), this spell takes in world coordinates rather than an offset. Free.",
- "hexcasting.action.hexical:absorb_arm": "Appendage",
- "hexical.page.absorb_arm.summary": "Allows a $(l:greatwork/spellcircles)circle$() to hook onto a $(l:items/pedestal)$(item)Pedestal$() within ambit to use as its $(o)other arm$(). Useful for certain spells that demand an item held in my other hand. Free.",
- "hexcasting.action.hexical:create_dust": "Export Media",
- "hexical.page.create_dust.summary": "Exports _media out of an $(l:greatwork/impetus)$(item)Impetus$() at a rate of about eleven $(l:items/amethyst)$(item)Amethyst Dust$() spent per ten $(l:items/amethyst)$(item)Amethyst Dust$() created. Takes a location and a number of up to a stack of $(l:items/amethyst)$(item)Amethyst Dust$().",
-
- "hexical.page.evocation.title": "Evocation",
- "hexical.page.evocation.0": "_Media is the energy of thought, so it stands to reason that I should be able to simply $(o)think$() magic into existence rather than waving around a $(item)$(l:items/staff)Staff$(). After all, I have roughly two chunks' worth of $(l:items/amethyst)$(item)Charged Amethyst$() in me at my prime, double that of my $(l:items/staff)$(item)Staff$(). While I can not yet shift arbitrary effects into reality, I can bring it forth a prepared _Hex with a mere gesture, taking _media from my inventory.",
- "hexcasting.action.hexical:set_evocation": "Inculcate",
- "hexical.page.set_evocation.summary": "Etches a _Hex, allowing me to cast it by holding $(thing)$(k:hexical.evoke)$() for one second. Costs about one $(l:items/amethyst)$(item)Charged Amethyst$().$(br2)$(o)Anthony thought at it, and it turned a flip-flop on the grass, and lay trembling, its eyes gleaming in small black terror.$()",
- "hexcasting.action.hexical:get_evocation": "Evocation Reflection",
- "hexical.page.get_evocation.summary": "Pushes the _Hex etched into my mind.",
- "hexcasting.action.hexical:is_evoking": "Evoker Reflection",
- "hexical.page.is_evoking.summary": "Pushes how long since a player has been evoking. Is -1 if they are not currently evoking.",
- "hexical.page.evocation.1": "The ancient texts I have learned this technique from reveals many other interesting trifles: _Hexcasters used to perform evocation without any a _Hex, as a greeting or group ritual by waving their arms and chanting in unison. Experiments have also been done to see if a villager could be granted the ability to shift _media but the results of those experiments were either never documented or have been lost to time.",
-
- "hexical.page.hotbar.title": "Hotbar",
- "hexcasting.action.hexical:get_hotbar": "Handy Reflection",
- "hexical.page.get_hotbar.summary": "Pushes a number relating to which of my current items I am currently holding.",
- "hexcasting.action.hexical:set_hotbar": "Switch",
- "hexical.page.set_hotbar.summary": "Takes a number 0 to 8 and switches my current item to it.$(br2)$(o)Remember, switching to your pistol is always faster than reloading.$()",
-
- "hexical.page.lesser_sentinels.title": "Lesser Sentinels",
- "hexical.page.lesser_sentinels.0": "A bit of sentinel theory: a $(l:patterns/spells/sentinels)$(thing)Sentinel$() is metaphysically-detached shard of my $(thing)Self$(). I can banish, query, and summon it via link but each interaction requires a bit of _media to facilitate the \"handshake\". I can $(l:patterns/great_spells/greater_sentinel)$(action)give even more of my $(thing)Self$(), essentially creating a separate yet near-equally conscious fragment that can cast _Hexes beyond my regular reach and even \"walk\".",
- "hexical.page.lesser_sentinels.1": "$(thing)Lesser Sentinels$() are a more diminutive construction: little more than a tagged pocket of _media blessed with a whisper of my $(thing)Self$(). They are just enough to hold their ground where deployed and to be visible to me.$(br2)Due to their lesser sentience, I can establish connections, reposition, banish, and bring forth more of them with ease. I can only have one $(l:patterns/spells/sentinels)$(thing)Sentinel$() out at once; I can have a virtually endless number of $(thing)Lesser Sentinels$().",
- "hexcasting.action.hexical:set_lesser_sentinels": "Deploy Sentinels",
- "hexical.page.set_lesser_sentinels.summary": "Dismisses any existing $(thing)Lesser Sentinels$() and deploys a $(thing)Lesser Sentinel$() at every position in the list.",
- "hexcasting.action.hexical:get_lesser_sentinels": "Infiltration Reflection",
- "hexical.page.get_lesser_sentinels.summary": "Returns a list of vectors corresponding to the positions of all my $(thing)Lesser Sentinels$().",
-
- "hexical.page.pyrotechnics.title": "Pyrotechnics",
- "hexical.page.pyrotechnics.0": "I have stumbled across some spells related to pyrotechnics. The _media hums quite festively around the patterns, as if they were once used for grand celebrations, although I shudder to imagine how effective they'd be as a weaponized projectile.$(br2)$(o)You don’t need to say anything. Just watch the fireworks.$()",
- "hexcasting.action.hexical:simulate_firework": "Simulate Firework",
- "hexical.page.simulate_firework.summary": "Analyzes the $(item)Firework Star$() in my other hand and conjures a firework of that star, with the position, velocity, and gunpowder amount specified. Costs about one $(l:items/amethyst)$(item)Amethyst Shard$().",
- "hexcasting.action.hexical:conjure_firework": "Conjure Firework",
- "hexical.page.conjure_firework.summary": "$(br)Conjures a firework of my $(o)exact$() specifications. It may be one of the most complex spells in existence. Costs equivalently to the other firework spell.",
- "hexical.page.conjure_firework.0": "$(o)Basic Theory$()$(br2)The first two parameters of the spell are simple position and velocity. The third parameter dictates flight duration as a number from 1 to 3. I can imagine it as being the amount of $(item)Gunpowder$() I would add to a firework rocket.$(br2)The remaining parameters can be imagined as specifications for a $(thing)virtual firework star.$()",
- "hexical.page.conjure_firework.1": "$(o)Shape$()$(br2)The fourth parameter controls the shape of the explosion, based off a number 0 to 3.$(br)- 0 is a simple, small ball-shaped explosion.$(br)- 1 is a large ball-shaped explosion.$(br)- 2 is a star-shaped explosion.$(br)- 3 is a large creeper face-shaped explosion.",
- "hexical.page.conjure_firework.2": "$(o)Colors$()$(br2)The fifth and sixth parameters are lists of $(l:patterns/spells/dyes)dyes$(). The first list controls the colors of the firework's initial burst, while the second controls the colors that the first particles fade into. There must be at least one dye specified for the first list, but the second list can be empty if I do not want any colors to fade into.",
- "hexical.page.conjure_firework.3": "$(o)Special Effects$()$(br2)The seventh parameter controls whether the particles of the firework flicker, as if adding glowstone to the $(item)virtual Firework Star$().$(br2)The eighth parameter controls whether the particles of the firework leave trails, as if adding a diamond to the $(item)virtual Firework Star$().",
-
- "hexical.page.rename.title": "Item Renaming",
- "hexcasting.action.hexical:item_name": "Name Item",
- "hexical.page.item_name.summary": "Takes an item and renames it to the text given. Resets name if given $(l:casting/influences)$(thing)Null$(). Free.",
- "hexcasting.action.hexical:item_lore": "Describe Item",
- "hexical.page.item_lore.summary": "Takes an item and a list of text to append as a description. Clears if given $(l:casting/influences)$(thing)Null$(). Free.",
-
- "hexical.page.shaders.title": "Shaders",
- "hexical.page.shaders.0": "These spells revolve around manipulating my light receptors, allowing me to alter my vision for utility and fun. These spells break upon death or me leaving this world and returning at a later date.$(br2)$(o)You sense that something is off. You feel in harmony with the magic. Maan, that color smells interesting. Usual concepts don't apply.$()",
- "hexcasting.action.hexical:shader_clear": "Clear Vision",
- "hexical.page.shader_clear.summary": "Breaks any shader spell currently applied to me. Useful for \"bleaching\" my eyes after too much experimentation.",
- "hexcasting.action.hexical:shader_owl": "Pierce Darkness",
- "hexical.page.shader_owl.summary": "Greatly augments my ability to see in the dark, although the light resultingly becomes extremely blinding.",
- "hexcasting.action.hexical:shader_lines": "Visualize Forms",
- "hexical.page.shader_lines.summary": "Transforms the world into a thin outline of black and white. Possibly useful for identifying subtle contrasts.",
- "hexcasting.action.hexical:shader_tv": "Broadcast Vision",
- "hexical.page.shader_tv.summary": "Alters my vision to contain strange lines and make objects towards the center of my vision bulge \"towards\" me. Seems to be in reference to something...",
- "hexcasting.action.hexical:shader_media": "Identify Importance",
- "hexical.page.shader_media.summary": "Transforms my vision to perceive only the most important things...",
- "hexcasting.action.hexical:shader_spider": "Split Vision",
- "hexical.page.shader_spider.summary": "Splits my vision into multiple sections, similar to what a spider might see. I am unsure whether it actually grants me more vision...",
-
- "hexical.page.hopper.title": "Hopper",
- "hexical.page.hopper.0": "This spell is explicitly designed for the precise and mass transport of items from place to place, supporting a wide array of blocks and entities to pull and push to.$(br2)$(o)allows arbitrary objects to be retrieved... and instantiated in reality... arbitrary information between arbitrary data sources$()",
- "hexcasting.action.hexical:hopper": "Hopper",
- "hexical.page.hopper.summary": "Instantly transports all items from $(thing)source$() to $(thing)destination$(). Costs about one $(l:items/amethyst)$(item)Amethyst Shard$() regardless of mass transferred. Numbers are optional; details later.",
- "hexical.page.hopper.1": "Entity references to the caster, an $(thing)Armor Stand$(), a $(thing)Minecart with a Chest$(), a $(thing)Hopper Minecart$(), or a $(thing)Boat with a Chest$() within ambit are valid $(thing)sources$() that refer to the respective inventory. They also serve as valid $(thing)destinations$().$(br2)Entity references to $(thing)Item Frames$() and dropped $(thing)Items$() are also valid $(thing)sources$() and $(thing)destinations$(). For $(thing)Items$(), pushes will attempt to stack onto it.",
- "hexical.page.hopper.2": "Vectors are also possible $(thing)sources$() and $(thing)destinations$(). If a block with an inventory does not exist at a location, it is a valid $(thing)destination$() to push items out into the world.$(br2)If a block with an inventory does exist, it serves as both a $(thing)source$() and a $(thing)destination$(). If the vector is closest to the center, it pushes and pulls from any inventory slot; if it is instead closer to a face, it will only push to and pull from that face, similar to $(thing)Hoppers$().",
- "hexical.page.hopper.3": "If I pass in $(l:casting/influences)$(thing)Null$(), it seems to refer to my $(thing)Ender Chest$()'s inventory. Naturally, this means it will only work for humans casting this spell.$(br2)Because $(thing)sources$() and $(thing)destinations$() can never be numbers, it is distinguishable to pass an optional number after a $(thing)source$() or $(thing)destination$(). This is the num? in the pattern signature and correlates to $(o)slot$().",
- "hexical.page.hopper.4": "Slots are a slightly esoteric way that Nature has chosen to represent specific spaces in the inventory. For example, 0, 1, 2, and 3 corresponds to boots, leggings, chestplate, and helmet spaces of an $(thing)Armor Stand$() $(thing)source$() respectively. Passing in slots allows me to dictate to $(l:patterns/spells/hopper#hexical:hopper)$(action)Hopper$() which space to take items from and move items to.$(br2)For quick reference, my hotbar is 0-8, my offhand is 40, and my $(l:patterns/spells/wristpocket)Wristpocket$() is -1.",
- "hexcasting.action.hexical:index_hopper": "Hopper Purification",
- "hexical.page.index_hopper.summary": "Applies to $(thing)sources$() that support slots; inventories. Returns a list of the item stacks contained within them, with their index in the list being their slot number.",
- "hexical.page.index_hopper.description": "While the slot number is generally fairly logical, it can feel arbitrary for storages such as a player's inventory.$(br2)This pattern will be useful in ascertaining the slot number of any given location in a $(thing)source$() or $(thing)destination$()'s inventory. It can also be useful for processing: scanning a $(thing)source$() for what items it contains, evaluating them based on some metrics, and from there deciding whether and where to move them.",
-
- "hexical.page.horrible.title": "Horrible",
- "hexical.page.horrible.0": "Of all the spells I have discovered in my exploration of ancient _Hexcasting notes, there has not been a single pattern remotely like this one. I believe its existence is proof of some greater force that had compelled _Hexcasters to draw it.$(br2)$(o)How does one even begin to draw this, let alone discover it?$()",
- "hexcasting.action.hexical:horrible": "Horrible",
- "hexical.page.horrible.summary": "Judging by the pattern signature, I can only imagine that it summons something.",
-
- "hexcasting.action.hexical:charm": "Charm",
- "hexical.page.charm.0": "The $(l:patterns/great_spells/charm)$(action)Charm$() spell transforms any item into a self-contained magical item, not unlike a $(l:items/hexcasting)$(item)Cypher$(). They have a battery of _media, disenchant when empty, and can't be recharged or reprogrammed.$(br2)$(o)Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.$()",
- "hexical.page.charm.1": "Charmed items also have a few special features that distinguish them from any other $(l:items/hexcasting)$(item)casting device$().$(br2)They have two patterns for interfacing with an internal iota storage within them. This storage can only be read from and written to within the charmed item.$(br2)They also have the power of input interception.",
- "hexical.page.charm.summary": "$(br)Charms an item. Takes the _Hex and the amount of _media to bestow in $(l:items/amethyst)$(item)Amethyst Dust$(). Consumes the battery and about three $(l:items/amethyst)$(item)Charged Amethyst$().",
- "hexical.page.charm.description": "The four booleans correspond to attacking, sneak-attacking, using, and sneak-using.$(br2)When I use a charmed item with an intent set as true, the charm casts the _Hex in place of the original function. It starts the stack with a number corresponding to the button pressed, 0 for attacking and 1 for using.$(br2)Charmed items can also pick up additional intents, pushing numbers up to seven.",
- "hexcasting.action.hexical:write_charmed": "Charmed Gambit",
- "hexical.page.write_charmed.summary": "Writes an iota to the charmed item’s internal storage. Subject to the Transgress Others mishap.",
- "hexcasting.action.hexical:read_charmed": "Charmed Reflection",
- "hexical.page.read_charmed.summary": "Pushes the stored iota from the charmed item’s internal storage.",
- "hexcasting.action.hexical:write_charmed_proxy": "Charmed Gambit II",
- "hexical.page.write_charmed_proxy.summary": "If the item charged features an iota storage by default, such as a $(l:items/focus)$(item)Focus$(), writes an iota into it.",
- "hexcasting.action.hexical:read_charmed_proxy": "Charmed Reflection II",
- "hexical.page.read_charmed_proxy.summary": "If the item charged features an iota storage by default, such as a $(l:items/focus)$(item)Focus$(), reads an iota from it.",
- "hexcasting.action.hexical:discharm": "Discharm",
- "hexical.page.discharm.summary": "Removes a charm from an item without affecting any other property. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
-
- "hexcasting.action.hexical:greater_blink": "Greater Blink",
- "hexical.page.greater_blink.0": "Greater Blink is a significantly cheaper alternative to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$(). It also does not carry the risk of splattering my items upon arrival. However, it only has pitiful range compared to $(l:patterns/great_spells/teleport)$(action)Greater Teleport$() and its destination calculations are... esoteric. Its target is also exclusively myself.",
- "hexical.page.greater_blink.summary": "Teleports me up to 128 blocks away, relative to my position and rotation. Costs about two $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.greater_blink.1": "A vector of (0, 0, 1) would teleport me one block in $(l:patterns/basics#hexcasting:get_entity_look)$(thing)the direction I'm facing$(). A vector of (0, 1, 0) would teleport me one block $(l:patterns/scrying/entities#hexpose:theodolite)$(thing)\"up\" from the top of my head$(). A vector of (0, 1, 10) would teleport me ten blocks forward in the direction I'm facing and one block upwards from the top of my head. A vector of (1, 0, 0) teleports me one block to my right.",
- "hexical.page.greater_blink.2": "$(o)I felt three numerical axes perfectly pierce all six faces of my head. For a moment, I was skewered—suspended midair—and then at my specifications, I was violently dragged along the geometrical scaffolds at speeds indistinguishable from instantaneousness.$(br2)I must have been no longer a part of the world, for I was yanked through walls without causing even the smallest disturbance.$()",
-
- "hexical.page.meshes.title": "Meshes",
- "hexical.page.meshes.0": "Meshes are the natural evolution of $(l:patterns/spells/specks)specks$(). Rather than being restricted to iotas and patterns on a two-dimensional plane, meshes accept a list of vectors in three-dimensional space and connect them with lines, allowing for infinite creative constructions. It's also responsive to most patterns used for manipulation of specks.",
- "hexcasting.action.hexical:conjure_mesh": "Conjure Mesh",
- "hexical.page.conjure_mesh.summary": "Conjures a mesh with the location and leaves a mesh entity on the stack. Costs about one $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexical.page.meshes.1": "When initally conjured, the mesh is invisible and must be woven to gain form. The constraints for the list of vectors provided to a mesh are quite minimal. The list must be no more than 32 vectors long, and those vectors must have magnitudes less than 10. The mesh will then connect each of those points.",
- "hexcasting.action.hexical:weave_mesh": "Weave Mesh",
- "hexical.page.weave_mesh.summary": "Takes a list of vectors, with constraints defined on the prior page, and weaves the mesh into that shape. Free.",
- "hexcasting.action.hexical:read_mesh": "Tangle Purification",
- "hexical.page.read_mesh.summary": "Pushes the shape of a mesh as a list of vectors."
-}
diff --git a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
deleted file mode 100644
index b9a55928416e..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexical/hexical/lang/zh_cn.json
+++ /dev/null
@@ -1,730 +0,0 @@
-{
- "advancement.hexical:root.title": "咒术满满的一天",
- "advancement.hexical:root.description": "开始你在Hexical中的探索吧!",
- "advancements.hexical.acquire_arch_lamp.title": "守护精灵",
- "advancements.hexical.acquire_arch_lamp.description": "获得大精灵神灯",
- "advancements.hexical.acquire_hand_lamp.title": "可造之材",
- "advancements.hexical.acquire_hand_lamp.description": "获得精灵神灯",
- "advancements.hexical.reload_lamp.title": "举世无双的非凡魔力!",
- "advancements.hexical.reload_lamp.description": "为神灯重新充能",
- "advancements.hexical.educate_lamp.title": "新秩序",
- "advancements.hexical.educate_lamp.description": "向精灵传授新的指示",
- "advancements.hexical.specklike.title": "集成现实",
- "advancements.hexical.specklike.description": "和增强现实差不多,只不过更加现实",
- "advancements.hexical.diy_conjuring.title": "构筑DIY!",
- "advancements.hexical.diy_conjuring.description": "为术士方块附加改进",
- "advancements.hexical.conjure_hexxy.title": "构筑Hexxy",
- "advancements.hexical.conjure_hexxy.description": "给予Hexxy适用于你的世界的物理形态",
- "advancements.hexical.conjure_cake.title": "蛋糕是个谎言",
- "advancements.hexical.conjure_cake.description": "从一位神秘的恩人那里召来一块免费的蛋糕",
- "advancements.hexical.hallucinate.title": "只在我的脑海里",
- "advancements.hexical.hallucinate.description": "播放一段只有你能听见的声音!",
-
- "block.hexical.hex_candle_cake": "插有咒术蜡烛的蛋糕",
- "block.hexical.casting_carpet": "施法地毯",
- "block.hexical.hex_candle": "咒术蜡烛",
- "block.hexical.mage_block": "术师方块",
- "block.hexical.media_jar": "媒质罐",
- "block.hexical.pedestal": "支座",
- "block.hexical.periwinkle": "长春花",
- "block.hexical.sentinel_bed": "哨卫床",
- "death.attack.magic_missile": "%1$s的魔法存在被%2$s刺穿了",
- "death.attack.magic_missile.item": "%1$s的魔法存在被%2$s用%3$s刺穿了",
- "death.attack.spike": "%1$s被%2$s刺穿了",
- "death.attack.spike.item": "%1$s被%2$s用%3$s刺穿了",
- "effect.hexical.wooleyed": "毡障",
- "effect.hexical.wooleyed.description": "帮助我忘记先前看到的可怖景象。",
- "entity.hexical.animated_scroll": "活线卷轴",
- "entity.hexical.magic_missile": "魔法飞弹",
- "entity.hexical.mesh": "网斑",
- "entity.hexical.speck": "视斑",
- "entity.hexical.spike": "紫水晶尖刺",
- "key.categories.hexical": "Hexical",
- "key.hexical.evoke": "唤咒",
- "key.hexical.open_hexbook": "打开咒术笔记",
- "key.hexical.telepathy": "唤起心灵感应",
- "item.hexical.animated_scroll_small": "小型活线卷轴",
- "item.hexical.animated_scroll_medium": "中型活线卷轴",
- "item.hexical.animated_scroll_large": "大型活线卷轴",
- "item.hexical.arch_lamp": "大精灵神灯",
- "item.hexical.curio_beauty": "宝珠饰品",
- "item.hexical.curio_bismuth": "铋晶饰品",
- "item.hexical.curio_charm": "护符饰品",
- "item.hexical.curio_clover": "四叶草饰品",
- "item.hexical.curio_compass": "指南针饰品",
- "item.hexical.curio_conch": "螺壳饰品",
- "item.hexical.curio_cube": "立方饰品",
- "item.hexical.curio_down": "下箭头饰品",
- "item.hexical.curio_flute": "笛子饰品",
- "item.hexical.curio_handbell": "手铃饰品",
- "item.hexical.curio_heart": "爱心饰品",
- "item.hexical.curio_interlock": "环纽饰品",
- "item.hexical.curio_key": "钥匙饰品",
- "item.hexical.curio_staff": "法杖饰品",
- "item.hexical.curio_strange": "怪异饰品",
- "item.hexical.curio_truth": "真实饰品",
- "item.hexical.curio_up": "上箭头饰品",
- "item.hexical.grimoire": "咒典",
- "item.hexical.hand_lamp": "手持式精灵神灯",
- "item.hexical.hex_gummy": "咒术软糖",
- "item.hexical.hexburst": "咒术星爆糖",
- "item.hexical.hextito": "咒力多滋",
- "item.hexical.gauntlet_staff": "护手法杖",
- "item.hexical.media_log.0": "媒质木志",
- "item.hexical.media_log.1": "错误木志",
- "item.hexical.lei": "花冠",
- "item.hexical.lightning_rod_staff": "避雷针法杖",
- "item.hexical.plush_hexxy": "Hexxy",
- "item.hexical.plush_irissy": "Irissy",
- "item.hexical.plush_pentxxy": "Pentxxy",
- "item.hexical.plush_quadxxy": "Quadxxy",
- "item.hexical.plush_thothy": "Thothy",
- "item.hexical.plush_flexxy": "Flexxy",
- "item.hexical.scarab_beetle": "圣甲虫",
- "item.hexical.tchotchke": "杂饰",
- "item.minecraft.potion.effect.wooleyed": "毡障药水",
- "item.minecraft.splash_potion.effect.wooleyed": "喷溅型毡障药水",
- "item.minecraft.lingering_potion.effect.wooleyed": "滞留型毡障药水",
- "item.minecraft.tipped_arrow.effect.wooleyed": "毡障之箭",
- "item.minecraft.potion.effect.long_wooleyed": "毡障药水",
- "item.minecraft.splash_potion.effect.long_wooleyed": "喷溅型毡障药水",
- "item.minecraft.lingering_potion.effect.long_wooleyed": "滞留型毡障药水",
- "item.minecraft.tipped_arrow.effect.long_wooleyed": "毡障之箭",
- "item.minecraft.potion.effect.strong_wooleyed": "毡障药水",
- "item.minecraft.splash_potion.effect.strong_wooleyed": "喷溅型毡障药水",
- "item.minecraft.lingering_potion.effect.strong_wooleyed": "滞留型毡障药水",
- "item.minecraft.tipped_arrow.effect.strong_wooleyed": "毡障之箭",
- "itemGroup.hexical.general": "Hexical",
- "stat.hexical.evocation": "受毡障次数",
- "subtitles.hexical.amethyst_melt": "紫水晶:融化",
- "subtitles.hexical.item_dunks": "物品:浸入",
- "subtitles.hexical.evoking_murmur": "玩家:吟唱",
- "subtitles.hexical.evoking_casts": "玩家:施法",
- "subtitles.hexical.lamp_activate": "神灯:启动",
- "subtitles.hexical.lamp_deactivate": "神灯:终止",
- "subtitles.hexical.player_slurp": "玩家:啜饮",
- "subtitles.hexical.replenish_air": "肺:充气",
- "subtitles.hexical.scarab_chirps": "圣甲虫:吱吱",
- "subtitles.hexical.sudden_realization": "点子:出现",
- "tooltip.hexical.scroll_glow": "发光",
-
- "hexical.autograph.header": "由以下人士亲笔签名:",
- "hexical.charmed": "咒符",
- "hexical.cracked.cracked": "已破解",
- "hexical.cracked.program": "咒术:",
- "hexical.grimoire.contains": "含有以下图案的绑定:",
- "hexical.scarab.program": "含有:%s",
- "hexical.recipe.transmute.media_free": "无需消耗",
- "hexical.recipe.transmute.media_cost": "消耗%s个紫水晶粉",
- "hexical.recipe.transmute.media_yield": "产出%s个紫水晶粉",
- "hexical.ledger.stack": "事故前最后记录到的栈:",
- "hexical.ledger.mishap": "最后一次事故的信息:",
-
- "hexcasting.mishap.bad_block.akashic_bookshelf": "一个阿卡夏书架",
- "hexcasting.mishap.bad_block.mage_block": "一个术师方块",
- "hexcasting.mishap.bad_block.pedestal": "一个支座",
- "hexcasting.mishap.bad_block.flower_spawnable": "空气或一个花盆",
- "hexcasting.mishap.bad_block.rotatable": "一个有朝向区分的方块",
- "hexcasting.mishap.bad_block.solid_platform": "一个固体平台",
- "hexcasting.mishap.bad_item.animated_scroll": "一个活线卷轴",
- "hexcasting.mishap.bad_item.anything": "任意物品",
- "hexcasting.mishap.bad_item.casting_device": "一个可施放咒术的设备",
- "hexcasting.mishap.bad_item.firework_star": "一个烟火之星",
- "hexcasting.mishap.bad_item.grimoire": "一个咒典",
- "hexcasting.mishap.bad_item.nonfull_grimoire": "一个拥有少于512条绑定的咒典",
- "hexcasting.mishap.bad_item.has_brain": "一个能够思考的村民",
- "hexcasting.mishap.bad_item.autographed": "一个经过签名的物品",
- "hexcasting.mishap.bad_item.hand_lamp": "一个手持式精灵神灯",
- "hexcasting.mishap.bad_item.lamp": "一个空神灯",
- "hexcasting.mishap.bad_item.mesh": "一个网斑",
- "hexcasting.mishap.bad_item.scarab_beetle": "一个圣甲虫",
- "hexcasting.mishap.bad_item.smart_villager": "一个老手或更高等级的村民",
- "hexcasting.mishap.bad_item.sniffer": "一只嗅探兽",
- "hexcasting.mishap.bad_item.speck": "一个视斑",
- "hexcasting.mishap.bad_item.specklike": "一个类视斑实体",
- "hexcasting.mishap.bad_item.target.smelting": "一个可在熔炉中烧炼的物品",
- "hexcasting.mishap.bad_item.target.roasting": "一个可在营火中烧炼的物品",
- "hexcasting.mishap.bad_item.target.smoking": "一个可在烟熏炉中烧炼的物品",
- "hexcasting.mishap.bad_item.target.blasting": "一个可在高炉中烧炼的物品",
- "hexcasting.mishap.bad_item.target.stonecutting": "一个可在切石机中切制的物品",
- "hexcasting.mishap.bad_item.uncharmed": "一个非咒符物品",
- "hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
- "hexcasting.mishap.invalid_value.horizontal_axis_vector": "一个水平轴向向量",
- "hexcasting.mishap.invalid_value.class.dye": "一个染料",
- "hexcasting.mishap.invalid_value.class.pigment": "一个染色剂",
- "hexcasting.mishap.invalid_value.conjurable_flower_id": "一个代表可构筑花卉的标识",
- "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
- "hexcasting.mishap.invalid_value.hopper_source": "一个代表物品来源的iota",
- "hexcasting.mishap.invalid_value.hopper_destination": "一个代表物品目的的iota",
- "hexcasting.mishap.invalid_value.inventory": "一个代表物品栏、存储空间的iota",
- "hexcasting.mishap.invalid_value.lesser_sentinel_list": "一个向量列表",
- "hexcasting.mishap.invalid_value.mesh_design": "一个由最多32个模长小于10的向量组成的列表",
- "hexcasting.mishap.invalid_value.nonempty_list": "一个非空列表",
- "hexcasting.mishap.invalid_value.number_list": "一个由数组成的非空列表",
- "hexcasting.mishap.invalid_value.number_or_vector": "一个数或向量",
- "hexcasting.mishap.invalid_value.small_vector": "一个长度小于等于2的向量",
- "hexcasting.mishap.invalid_value.text_list": "一个文本iota列表",
- "hexcasting.mishap.invalid_value.to_pigment": "一个有色染料、一个代表染色剂物品的标识、一个含有染色剂的物品实体,或一个玩家",
- "hexcasting.mishap.invalid_value.true_dye": "一个有色染料",
- "hexcasting.mishap.invalid_value.true_dye_list": "一个有色染料列表",
- "hexcasting.mishap.hexical:active_arch_lamp": "物品栏中本应有一个启动的大精灵神灯。",
- "hexcasting.mishap.hexical:can_not_dye": "本应提供可染色目标。",
- "hexcasting.mishap.hexical:inedible_wristpocket": "魔袋中的物品无法食用。",
- "hexcasting.mishap.hexical:magic_missile_coordinates": "无法辨识出空间轴。",
- "hexcasting.mishap.hexical:needs_charmed_item": "本应由咒符物品施放。",
- "hexcasting.mishap.hexical:needs_lamp": "本应由精灵施放。",
- "hexcasting.mishap.hexical:needs_hand_lamp": "本应由手持式精灵神灯施放。",
- "hexcasting.mishap.hexical:needs_staff": "本应由法杖施放。",
- "hexcasting.mishap.hexical:outside_circle": "法术超出了法术环的边界。",
- "hexcasting.mishap.hexical:illegal_jailbreak": "试图破解内含咒术的施法物品。",
- "hexcasting.mishap.hexical:not_enough_slots": "%d不适用于%s指定的存储空间。",
-
- "hexcasting.action.book.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
- "hexcasting.action.book.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
- "hexcasting.action.book.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
- "hexcasting.action.book.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
- "hexcasting.action.book.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
- "hexcasting.action.book.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
- "hexcasting.action.book.hexical:get_hand_lamp_position": "精灵之精思:空间型",
- "hexcasting.action.book.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
- "hexcasting.action.book.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
- "hexcasting.action.book.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
- "hexcasting.action.book.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
- "hexcasting.action.book.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
- "hexcasting.action.book.hexical:has_autograph": "验证器之馏化",
- "hexcasting.action.book.hexical:serialize_pattern": "笔迹师之纯化",
- "hexcasting.action.book.hexical:deserialize_pattern": "书法师之纯化",
- "hexcasting.action.book.hexical:shuffle_pattern": "图案制作师之馏化",
- "hexcasting.action.book.hexical:read_shelf": "图书管理员之纯化,第二型",
- "hexcasting.action.book.hexical:zone_specklike": "区域之馏化:类视斑",
- "hexcasting.action.book.hexical:modify_block_bouncy": "弹性",
- "hexcasting.action.book.hexical:modify_block_energized": "激能",
- "hexcasting.action.book.hexical:modify_block_ephemeral": "消逝",
- "hexcasting.action.book.hexical:modify_block_invisible": "隐形",
- "hexcasting.action.book.hexical:modify_block_replaceable": "可替",
- "hexcasting.action.book.hexical:modify_block_volatile": "失稳",
-
- "hexical.page.hexical_changes.title": "Hexical 中的改动",
- "hexical.page.hexical_changes.0": "我和周围环境中的$(media)媒质$()貌似更同调了。也可以说是更$(o)友好$()。我甚至可以感受到它们在我身边流动,对我的操作做出回应,就像是在向我展示新的法术。$(media)媒质$()也变得更可塑、更$(o)可操纵$(),令媒质产生更精确精细的效果已不是难事。我还可以按下$(thing)$(k:hexical.open_hexbook)$()就打开$(item)咒术笔记$()。",
- "hexical.page.hexical_changes.1": "我的工具也更顺手了。我无需再全神贯注地使用$(l:items/staff)$(item)法杖$(),而是可在使用时四处走动;之后射线追踪的时候目标就再也跑不出我的视线范围了。不过我也不能太过放松,自然对我失误的惩罚力度依然如旧。我现在还可以用$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()直接向$(l:items/abacus)$(item)算盘$()写入。",
- "hexical.page.lightning_rod_staff.0": "我往一支避雷针的末端嵌了一整块紫水晶,就得到了这种造型令人印象深刻的$(l:items/staff)$(item)法杖$()。它拿起来有些沉重,但用起来仿佛在$(o)号令闪电$()。",
- "hexical.page.lightning_rod_staff.1": "$(o)我知道世上有困难$(br)而且不止一种。$(br)有些自前路而来$(br)有些从身后接近。$(br2)但我买了根球棍。$(br)你看,我已经准备完毕。$(br)现在我的那些麻烦事$(br)马上就要有$(l)麻烦$()了!",
- "hexical.page.gauntlet_staff.0": "$(l:items/staff)$(item)法杖$()很重,拿着也不趁手。要是对其失去了兴趣,可以换成这个护手一样的设备,以此亲手感知、亲手操控$(media)媒质$()。",
- "hexical.page.gauntlet_staff.1": "$(o)况且一根法杖对我而言似乎也是天方夜谭。如果你需要一个合适的工具来控制并操纵灵气,我想手套就是个不错的选择。$()$(br2)- 我从一本古怪的书里复原出的笔记。很明显书中所谓“灵气”就是指$(media)媒质$()。",
-
- "hexical.page.grimoire.title": "咒典",
- "hexical.page.grimoire.0": "以$(l:items/amethyst)$(item)充能紫水晶$()和$(l:items/edified)$(item)启迪木$()$()给$(item)附魔书$()装面,$(item)附魔书$()便能将$(media)媒质$()困在书页内部,就像一间回音室。之后可向其中引入最多 512 条图案至图案列表的绑定关系,以让$(item)咒典$()内部的$(media)媒质$()无限反弹。",
- "hexical.page.grimoire.1": "在物品栏中放有$(item)咒典$(),再通过$(l:items/staff)$(item)法杖$()绘制其中与列表关联的$(l:patterns/patterns_as_iotas)图案$(),自然即会如同我绘制了整个列表一般进行回应;这能简化射线追踪曼怛罗和大型图案等繁重的$(hex)咒术$()。除去创造新$(l:patterns/patterns_as_iotas)图案$()外,$(item)咒典$()甚至还能覆盖自然提供的$(l:patterns/patterns_as_iotas)patterns$()。$(br2)$(o)要是想读一本还没写出来的书,那就亲自去写。$()",
- "hexcasting.action.hexical:write_grimoire": "写入咒典",
- "hexical.page.write_grimoire.summary": "向副手$(item)咒典$()写入一个图案至图案列表的绑定关系。",
- "hexcasting.action.hexical:erase_grimoire": "擦除咒典",
- "hexical.page.erase_grimoire.summary": "若副手持有$(item)咒典$(),擦除其中相应的图案列表绑定。",
- "hexcasting.action.hexical:index_grimoire": "档案员之精思",
- "hexical.page.index_grimoire.summary": "获取副手$(item)咒典$()中所有图案的列表。",
-
- "hexical.page.scarab.title": "圣甲虫",
- "hexical.page.scarab.0": "$(item)圣甲虫$()是个可爱的护符,对$(media)媒质$()相当敏感;在启动后,它们能拦截被自然排斥的图案。$(br2)特别来说,与我有关联的任何事物运行了对自然无意义的图案时,圣甲虫即会前来处理,规避事故。$(br2)$(o)我不管了,上吧圣甲虫。$()",
- "hexical.page.scarab.1": "我可以向圣甲虫下达指令,告诉它该如何处理这些“无效”图案,以及如何将它们替换为另一套图案。我可借此制造$(o)新$()图案——它们甚至在$(l:items/hexcasting)$(item)施法物品$()里都能用。",
- "hexical.page.scarab.2": "$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略$()可以教导圣甲虫一则$(hex)咒术$()。虽然它们会自豪地展示那则$(hex)咒术$(),但它们不受$(l:patterns/readwrite#hexcasting:read)$(action)书吏之精思$()等读心手段的影响。我可以随时教导它们$(hex)咒术$()。$(br2)运行无效图案时,激活的圣甲虫会将该图案压入栈顶,从而规避事故。然后它会施放所学的$(hex)咒术$(),并继续执行事故处之后的部分。",
- "hexical.page.scarab.3": "圣甲虫带来的新造图案能力对$(l:items/staff)$(item)法杖$()和$(l:items/hexcasting)$(item)施法物品$()等各类事物都有效。它很适合制造$(br2)$(l:patterns/pattern_manipulation)能操纵图案的元操作图案$(),可借此实现高阶的处理功能。理论上来说,我可以创造出一整族无限个图案,类似$(l:patterns/numbers)数字面量$()和$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()等。",
-
- "hexical.page.animated_scroll.title": "活线卷轴",
- "hexical.page.animated_scroll.0": "$(item)活线卷轴$()中混有一小份紫水晶,其上墨迹会像$(l:items/staff)$(item)法杖$()绘制出的图案那样颤动。$(item)活线卷轴$()的神奇之处还不止于此,它还能展示图案列表。$(br2)$(o)不带点疯劲,怎么能叫作家呢?$()",
- "hexical.page.animated_scroll.1": "卷轴上的图案可随意重绘,也可从卷轴中读出图案。这类卷轴只接受$(l:patterns/patterns_as_iotas)图案列表$(),单个$(l:patterns/patterns_as_iotas)图案 iota$() 会自动置入列表之中。$(item)活线卷轴$()会依次展示单个图案,图案每秒切换一次。就算是在不同时间点向两份卷轴写入同一图案列表,最后两者也会建立同步。",
- "hexical.page.animated_scroll.2": "纸页里渗入的$(l:items/amethyst)$(item)紫水晶$()可用于操纵$(item)活线卷轴$()的样式,而且无需消耗$(media)媒质$()。$(br2)我在后页记录了这些图案。$(br2)再补充一遍,常规的读写图案就可远程读写此类卷轴。",
- "hexcasting.action.hexical:normalize_scroll": "恢复卷轴",
- "hexical.page.normalize_scroll.summary": "将卷轴的纸页恢复到未经改动的状态。",
- "hexcasting.action.hexical:age_scroll": "陈化卷轴",
- "hexical.page.age_scroll.summary": "令$(item)活线卷轴$()的纸页泛黄,产物和我找到的一些远古卷轴极为相似。",
- "hexcasting.action.hexical:vanish_scroll": "隐消卷轴",
- "hexical.page.vanish_scroll.summary": "使得$(item)活线卷轴$()的纸张隐形,图案保留不变,看上去就像图案被蚀刻在方块表面一样。",
- "hexcasting.action.hexical:color_scroll": "色染墨迹",
- "hexical.page.color_scroll.summary": "改变$(item)活线卷轴$()墨迹的颜色,具体由所给向量决定;各分量对应红、绿、蓝,取值范围为 0 到 1。",
- "hexcasting.action.hexical:glow_scroll": "点亮墨迹",
- "hexical.page.glow_scroll.summary": "使得$(item)活线卷轴$()的墨迹在所有光照条件下均发光。",
-
- "hexical.page.hex_candle.title": "咒术蜡烛",
- "hexical.page.hex_candle.0": "首次以$(l:patterns/spells/prestidigitation)魔法$()或$(item)打火石$()点燃后,这些漂亮的小蜡烛上会燃起苍白色的火焰。把它泡在水里也似乎无法让其熄灭。若有人与其交互,它会复制该人的染色剂。也可以手持染色剂物品右击直接改变它的颜色。熄灭则需$(thing)$(k:sneak)+$(k:use)$()。",
- "hexical.page.hex_candle.1": "$(o)医生发现自己身处一个巨大的洞穴之中,那里面排满了无数颤动着火焰的蜡烛,每一支都代表了一个生命的长短。$()",
-
- "hexical.page.media_jar.title": "媒质罐",
- "hexical.page.media_jar.0": "我成功把我手头的$(l:items/amethyst)$(item)紫水晶$()全部融化到这个小罐里了!但对于从中汲取$(media)媒质$()来说,它的玻璃外壁还是太厚了。我也曾听过故事称古代$(hex)咒术师们$()解决了这个难题,成功把液态$(media)媒质$()装到了某种瓶子里去供$(hex)咒术$()使用。不过,这个$(item)媒质罐$()也有回收媒质的神奇功能。",
- "hexical.page.media_jar.description": "$(o)就在那儿,她看见了一团浅浅的雾:那东西只有鸡蛋大小。它在柔和的淡海绿色之外几乎不带什么颜色,闪闪发光,非常漂亮。",
- "hexical.page.media_jar.1": "我可以把物品浸到$(item)罐$()中,以向其中注入$(media)媒质$()。没有$(media)媒质$()容纳能力的物品会受$(media)媒质$()外渗的影响,从而产生$(o)嬗变$(),转化的终点千奇百怪、无法预测,却能带来惊喜。$(br2)可以对放置出来的$(item)媒质罐$()使用物品,也可在物品栏中用跟$(item)收纳袋$()一样的方式操作,还可用$(item)漏斗$()存入和取出物品,$(l:patterns/spells/hopper)$(action)漏斗$()法术也是一样。",
- "hexical.recipe.alchemists_take_this.header": "制金",
- "hexical.recipe.alchemists_take_this.text": "将铜变形成金。",
- "hexical.recipe.thoughtknot.header": "编织结念绳",
- "hexical.recipe.thoughtknot.text": "往大量$(media)媒质$()里进入$(item)线$()就可制成$(l:items/thought_knot)$(item)结念绳$(),而无需往上刷$(l:items/amethyst)$(item)紫水晶粉$()。效率稍微高些。",
- "hexical.recipe.unthoughtknot.header": "释放念结",
- "hexical.recipe.unthoughtknot.text": "吸出$(l:items/thought_knot)$(item)结念绳$()的媒质。相较合成配方来说会损耗$(media)媒质$(),却是回收点滴$(media)媒质$()的好方法。",
- "hexical.recipe.cry_obsidian.header": "感伤黑曜石",
- "hexical.recipe.cry_obsidian.text": "向$(item)黑曜石$()中注入$(media)媒质$()。这些$(media)媒质$()会从中溢出,看上去就好像在流泪。",
- "hexical.recipe.uncry_obsidian.header": "安慰黑曜石",
- "hexical.recipe.uncry_obsidian.text": "返还$(item)哭泣的黑曜石$()中的$(media)媒质$()。$(br2)$(o)心理咨询!:D$()",
- "hexical.recipe.fossil_fuel.header": "煤炭",
- "hexical.recipe.fossil_fuel.text": "向$(item)木炭$()注入思维并立刻杀灭,将其转化成$(item)煤炭$()。方便压缩存储。",
- "hexical.recipe.renewable_fuel.header": "木炭",
- "hexical.recipe.renewable_fuel.text": "将$(item)煤炭$()转化成$(item)木炭$()。为什么啊?",
-
- "hexical.page.casting_carpet.title": "施法地毯",
- "hexical.page.casting_carpet.0": "我可以将$(l:items/amethyst)$(item)紫水晶$()编织到普通的地毯里去,得到的就是这张柔软舒适的地毯。站在地毯上就能感受到$(media)媒质$()在我脚下流动。让人有些迷糊,但也能为人安神。$(br2)有种醍醐灌顶的感受,就好像带着一片$(l:items/lens)$(item)探知透镜$(),只是效果偏弱。我的$(hex)咒法学$()视野似乎得到了扩展。",
- "hexical.page.casting_carpet.recipe": "$(o)红地毯为什么非要是红色?它可以是任何颜色的。$()",
-
- "hexical.page.media_log.title": "媒质木志",
- "hexical.page.media_log.0": "让$(hex)咒术$()去施放$(hex)咒术$(),图案就变得很难追踪;自然则乐于惩罚我的粗心大意。古代的$(hex)咒术师$()有一件“$(item)$(m)错误$()$(item)媒质木志$()”:它能记录最后几个运行的图案,连$(l:patterns/meta)图案$()运行的图案都行;它还能显示最后一次事故,以及事故前的栈,方便追踪错误。所有$(item)媒质木志$()共享同一个存储空间。",
- "hexical.page.media_log.1": "潜行按下$(k:use)可清空$(item)媒质木志$(),可让它继续记录至下一次事故。$(br2)$(o)你看到的可能只是一堆收据,我却看到的是一则故事。我看得出来这个故事的走向,而且这个走向不是很好。$()",
-
- "hexical.page.sentinel_bed.title": "哨卫床",
- "hexical.page.sentinel_bed.0": "这张床里的$(item)磁石$()似乎能让它自身和$(o)其上的实体$()一直处于我$(hex)咒术$()的影响范围内;不过我更倾向于认为,我的$(l:patterns/spells/sentinels)$(thing)哨卫$()是因为喜欢$(item)羊毛$()才这样的。猫也觉得这张床很舒服,就和燃烧中的熔炉和床一样。$(br2)我听过些传言,说古代的$(hex)咒术师们$()会把它当成无视距离的 iota 仓储方块,但我想不出来是怎么做到的。",
- "hexical.page.sentinel_bed.1": "$(o)为我的哨卫准备的舒适床铺,它似乎总想趴回上面。$()",
-
- "hexical.page.periwinkle.title": "长春花",
- "hexical.page.periwinkle.0": "有一种灭绝已久的花朵,叫作$(item)长春花$()。它们很漂亮,还有安神的作用;古代的$(hex)咒术师$()会用它们来抚平$(hex)咒法学$()带来的莫大恐惧。$(br2)$(o)特别的花送给特别的人。$()",
- "hexcasting.action.hexical:periwinkle": "引发挖掘",
- "hexical.page.periwinkle.summary": "好在,$(hex)咒法学$()是门适用面很广的技艺,有寻回几乎任何事物的能力。",
- "hexical.page.periwinkle.1": "我认为有一种生物能够$(o)嗅探$()出这种花。我可以对这些$(thing)嗅探兽$()施放前页的法术,让它们立刻低头挖出这种花。$(br2)对自由意志的扭曲有代价,需要消耗大约 3 个$(l:items/amethyst)$(item)充能紫水晶$()。这么做偶尔会产生无害的精神$(o)错误$();毕竟人无完人,在处理和意识一样复杂的事物时就更是这样了。",
- "hexical.page.periwinkle.2": "挖掘的过程一定有魔法的参与:$(thing)嗅探兽$()能从所有方块里挖出$(item)长春花$(),无机物方块、甚至连来自其他现实位面的方块都可以。$(br2)我猜,这个法术并不只是“让”$(thing)嗅探兽$()挖出了花,而是$(o)构筑$()了花。法术从大脑中搜出有关$(item)长春花$()的记忆,再据找到的模板实际创造出花朵,$(thing)嗅探兽$()才能挖出来。而如果它能挖到,那$(l:patterns/spells/hexical_spells#hexical:flower)我也可以$()。",
- "hexical.page.lei.summary": "成功复原几簇$(item)长春花$()之后,即可用它们制作$(item)花冠$()了!$(item)花冠$()会小幅增强我的$(hex)咒法学$()视野,和$(l:items/lens)$(item)探知透镜$()比较像,只不过没有读取额外信息的功能。",
- "hexical.page.lei.description": "佩戴后,$(item)花冠$()还能阻止自然把我的生命抽去施放$(hex)咒术$()。$(br2)和其他盔甲不同的是,如果其他玩家没有穿戴任何东西,就可直接为他们戴上$(item)花冠$()。古代的$(hex)咒术师$()将这种行为视作表达亲昵和爱慕;这是因为$(item)花冠$()具有防御和安神功能,也是因为需要费一番功夫才能采到长春花。",
-
- "hexical.page.plushies.title": "玩偶",
- "hexical.page.plushies.0": "古代的$(hex)咒术师们$()还制造了这些好看的$(item)玩偶$()!它们的外形和我在$(hex)咒法学$()中遇到的图案很相似。不太清楚它们有没有实际作用,但它们确实是不错的收藏品。$(br2)偶来拜访的流浪商人可能会在旅途中捡到一两个。",
- "hexical.page.plushies.hexxy": "看着有些呆。放在物品栏里总给我种焦虑感。",
- "hexical.page.plushies.thothy": "好像在睡觉。带着它的时候会有种奇特的确定感,就好像它在守护我一样。",
- "hexical.page.plushies.irissy": "不管放在哪里都像在盯着我。伟大的 Irissy 啊,你曾见过何物?",
- "hexical.page.plushies.quadxxy": "可能是手不够巧的人做的。拼都拼不进六边形网格啊!",
- "hexical.page.plushies.pentxxy": "……这些玩意会不会是故意做成这样的。",
- "hexical.page.plushies.flexxy": "这个玩偶的$(o)细节$()处理好到吓人。Flexxy 肯定是很多人的偶像,不然怎么会有人花这么大力气做它的造像呢。",
-
- "hexical.page.wooleyed_potion.title": "毡障药水",
- "hexical.page.wooleyed_potion.0": "这些$(item)药水$()能让我遗忘$(hex)咒法学$()的部分骇人知识。基础效力的药水能阻止我用生命交换$(media)媒质$(),很适合防止一个小小的计算失误造成严重后果。效力更强的药水会阻断所有卓越法术,大概可以用作攻击性武器。$(br2)$(o)未曾有人见过。$()",
- "hexical.page.wooleyed_potion.header": "毡障药水",
- "hexical.page.wooleyed_potion.1": "将$(l:items/periwinkle)$(item)长春花$()酿造入$(item)粗制的药水$()即可获得这种药水。$(item)荧石粉$()和$(item)红石粉$()依然具有强化和延时功效,和大多数药水一样。",
-
- "hexical.page.pedestal.title": "支座",
- "hexical.page.pedestal.0": "$(item)支座$()可让物品安全地悬浮起来。它和$(item)物品展示框$()还有$(item)箱子$()不一样——我的$(hex)咒术$()仍可和物品交互,就好像物品还掉在地上一样。空$(item)支座$()会吸引物品,它和$(item)漏斗$()的交互也基本如我预期。甚至替换物品也行。",
- "hexical.page.pedestal.1": "$(o)支座和所有狭小局促的空间一样——都和监狱差不多。$()",
-
- "hexical.category.lamp": "精灵神灯",
- "hexical.category.lamp.desc": "我曾在村民讲述的故事中听到过一个魔法物件。村民说有一个能实现愿望的精灵住在里面,但我怀疑这不过是数百年来口口相传所生的附会罢了。不过传说必然不会毫无来由,这件物品必然有强大之处;因此我分出了这一章,用于记录我对它的研究。",
-
- "hexcasting.action.hexical:lamp_finale": "终局之精思",
- "hexical.page.lamp_finale.hand": "放下$(item)神灯$()的那一刹那,它会额外施法一次。这个图案能判断精灵的施法是否是最后一次,并据此做出反应。",
- "hexical.page.lamp_finale.arch": "停止$(item)大精灵神灯$()时,它会额外施法一次。和普通的$(l:items/hand_lamps)$(item)手持式精灵神灯$()一样,我可以使用$(l:lamp/hand_lamps#hexical:lamp_finale)$(action)终局之精思$()来判断某一次施法是否是最后的残响。",
-
- "hexical.page.hand_lamps.title": "手持式灯壶",
- "hexical.page.hand_lamps.0": "我终于找到了上千年传言中说的东西了!如此物件居然是在一位流浪商人的手里。这件$(item)手持式神灯$()仍带有难以捉摸的残存$(media)媒质$()气息,就好像里面缺了什么东西……很像$(l:items/focus)$(item)核心$()里用来存储 iota 的$(o)媒质空腔结构$()。我还感受到$(item)神灯$()里有一个存在,它的施法能力与我相当。",
- "hexical.page.hand_lamps.1": "感觉没错,$(item)神灯$()里有一个$(o)活着的、有智慧的$()意识,但究竟是何物维持了它的生命又把它困在灯里,我不得而知。若不管$(item)神灯$()的可怖用途,它的设计可谓巧如天工。按住触发按钮时,我的图案会送至所召唤的灯内“精灵”,它便会施放,出于绝望和无聊。",
- "hexcasting.action.hexical:wish": "许愿",
- "hexical.page.wish.summary": "向精灵许愿,希望它能为我施放$(hex)咒术$()。而因为我是在$(o)教导$()意识,而非$(o)蚀刻$()$(l:items/hexcasting)$(item)施法物品$(),可在后续任意时刻教导精灵新$(hex)咒术$(),不会因此损失$(media)媒质$()。",
- "hexical.page.hand_lamps.2": "说它是在施法有些低估它了。$(o)$(l)每一时刻$()它都在施法。许愿后拿着它,一束精确而又永不停歇的$(media)媒质$()流迎面而来。我只能估计施法速度大概是在每秒二十次。$(item)神灯$()中的存在会以极高的效率施法,并且不会像其他施法手段那样产生大量声音和粒子。",
- "hexical.page.hand_lamps.3": "我设计了一些配合$(item)神灯$()的有用图案,见后续页。这些图案只应该由$(item)神灯$()中的精灵运行,否则招致的便是“冒充精灵”事故。$(br2)$(o)我不是任你摆布的工具。$()$(br)灯中传来奇异的微弱人声,大概不用管吧。",
- "hexcasting.action.hexical:get_hand_lamp_position": "精灵之精思:空间型",
- "hexical.page.get_hand_lamp_position.summary": "将我开始使用$(item)神灯$()时的位置压入栈顶。",
- "hexcasting.action.hexical:get_hand_lamp_rotation": "精灵之精思:旋转型",
- "hexical.page.get_hand_lamp_rotation.summary": "将我开始使用$(item)神灯$()时的朝向压入栈顶。",
- "hexcasting.action.hexical:get_hand_lamp_velocity": "精灵之精思:运动型",
- "hexical.page.get_hand_lamp_velocity.summary": "将我开始使用$(item)神灯$()时的速度压入栈顶。",
- "hexcasting.action.hexical:get_hand_lamp_use_time": "精灵之精思:时间型",
- "hexical.page.get_hand_lamp_use_time.summary": "将$(item)神灯$()开始使用后经过的时间压入栈顶。该数除以 20 即为秒数。",
- "hexcasting.action.hexical:get_hand_lamp_media": "精灵之精思:媒质型",
- "hexical.page.get_hand_lamp_media.summary": "将$(item)神灯$()中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
- "hexcasting.action.hexical:set_hand_lamp_storage": "精灵之策略",
- "hexical.page.get_hand_lamp_storage.summary": "请求精灵为我记忆一个 iota。奇特的是,这个图案不会招致“违犯他人”事故,也许是因为使用$(item)神灯$()时需要我维持注意力集中吧。",
- "hexcasting.action.hexical:get_hand_lamp_storage": "精灵之精思:记忆型",
- "hexical.page.set_hand_lamp_storage.summary": "取出手持式$(item)神灯$()内部存储的 iota 压入栈顶。先前若未进行保存,则返回 $(l:casting/influences)$(thing)Null$()。",
-
- "hexical.page.genie_lore.title": "关于精灵",
- "hexical.page.genie_lore.0": "$(hex)咒法学$()的技艺会使得意识失去思考的能力,镇定知觉,麻痹神经元……真是叫人欲罢不能。对于$(l:items/staff)$(item)法杖$()、$(l:items/hexcasting)$(item)施法物品$()、$(l:greatwork/spellcircles)卓伟构造$()来说,施法的速度足够缓慢,能给意识喘息的时间;只是运行很多图案伤不到我自己。不过要是论及$(item)神灯$()的施法速度,那就算是为$(hex)咒法学$()而生的意识也很难招架。",
- "hexical.page.genie_lore.1": "低等级$(l:items/hexcasting)$(item)施法物品$()通常会把一部分$(media)媒质$()浪费到噪声和粒子中去;好在$(item)神灯$()不会浪费,而是会捕获用来修复精灵的意识。实际过程基本没有浪费$(media)媒质$(),真是难以置信。但$(item)神灯$()终究还是会枯竭,幸运的是,直接充入$(media)媒质$()就能解决。",
- "hexcasting.action.hexical:recharge_lamp": "神灯充能",
- "hexical.page.recharge_lamp.summary": "为我副手中的$(item)神灯$()充能,以$(l:items/amethyst)$(item)紫水晶粉$()计。只消耗我送入$(item)神灯$()的$(media)媒质$()。",
- "hexical.page.genie_lore.2": "$(item)神灯$()似乎能够存下无限多的$(media)媒质$()。要是充能充得超过上限,它的容量则会相应增加。真可谓是技术奇物。",
- "hexical.page.genie_lore.3": "在进一步的考察后,我发现$(item)神灯$()中的精灵似乎只是极为简单的思维与$(media)媒质$()网络,简单到甚至像人力所为。我认为这不太能叫生物,更像是$(o)咒灵$()。把它换成更加复杂、具有$(o)感知力$()的意识,带来的或许就是质变。所需的意识必须品质极高,经过处理后还需保留些许能力;花费一生精进手艺的村民应该足够。",
- "hexcasting.action.hexical:promote_lamp": "晋升神灯",
- "hexical.page.promote_lamp.summary": "在另一只手中持有神灯时施放。消耗大约 10 个$(l:items/amethyst)$(item)充能紫水晶$()和所需祭品。",
-
- "hexical.page.arch_lamps.title": "大精灵神灯",
- "hexical.page.arch_lamps.0": "$(l:items/hand_lamps)$(item)神灯$()和祭品$(o)融合$()了。我还能听见祭品的气息。我将产物称作$(item)大精灵神灯$()。$(br2)我已经……成功升级了$(item)神灯$()的处理器件,它的运作所需的注意力也大幅降低:我可在物品栏内启用它,此后它们会每时每刻施法,就好像我一直握着一盏$(l:items/hand_lamps)$(item)手持式神灯$()一样。",
- "hexical.page.arch_lamps.1": "精灵会在它认为持有者换人时停止施法。没人能强迫我施法。$(o)我是一大团肉乎乎的东西,体表圆滑,没有嘴。原来曾经是眼睛的地方如今是两个冒着白烟的洞,两根橡胶棒似的东西曾经是我的双臂。肉向四周摊开变成一堆没有腿的肉团,柔软滑腻。$(br2)我没有嘴,但我必须呐喊。$()",
- "hexcasting.action.hexical:has_arch_lamp": "大精灵之纯化",
- "hexical.page.has_arch_lamp.summary": "判断玩家当前是否已启动$(l:lamp/arch_lamps)$(item)大精灵神灯$()。",
- "hexcasting.action.hexical:get_arch_lamp_position": "大精灵之精思:空间型",
- "hexical.page.get_arch_lamp_position.summary": "将我开始使用$(l:lamp/arch_lamps)$(item)大精灵神灯$()时的位置压入栈顶。",
- "hexcasting.action.hexical:get_arch_lamp_rotation": "大精灵之精思:旋转型",
- "hexical.page.get_arch_lamp_rotation.summary": "将我开始使用$(l:lamp/arch_lamps)$(item)大精灵神灯$()时的朝向压入栈顶。",
- "hexcasting.action.hexical:get_arch_lamp_velocity": "大精灵之精思:运动型",
- "hexical.page.get_arch_lamp_velocity.summary": "将我开始使用$(l:lamp/arch_lamps)$(item)大精灵神灯$()时的速度压入栈顶。",
- "hexcasting.action.hexical:get_arch_lamp_use_time": "大精灵之精思:时间型",
- "hexical.page.get_arch_lamp_use_time.summary": "将$(l:lamp/arch_lamps)$(item)大精灵神灯$()开始使用后经过的时间压入栈顶。该数除以 20 即为秒数。",
- "hexcasting.action.hexical:get_arch_lamp_media": "大精灵之精思:媒质型",
- "hexical.page.get_arch_lamp_media.summary": "将$(l:lamp/arch_lamps)$(item)大精灵神灯$()中剩余的$(media)媒质$()量压入栈顶,以紫水晶粉计。",
- "hexcasting.action.hexical:set_arch_lamp_storage": "大精灵之策略",
- "hexical.page.set_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及$(l:lamp/arch_lamps)$(item)大精灵神灯$()自身运行。设定神灯的 iota 存储。和$(item)手持式神灯$()不同,这个图案可能招致“违犯他人”事故。",
- "hexcasting.action.hexical:get_arch_lamp_storage": "大精灵之精思:记忆型",
- "hexical.page.get_arch_lamp_storage.summary": "可由$(l:items/hexcasting)$(item)施法物品$()、$(l:items/staff)$(item)法杖$(),以及$(l:lamp/arch_lamps)$(item)大精灵神灯$()自身运行。获取神灯的 iota 存储。",
-
- "hexical.page.pedestal_circles.title": "法术环中的支座",
- "hexical.page.pedestal_circles.0": "$(l:items/pedestals)$(thing)支座$()有魔力!$(br2)如果其中存在$(l:patterns/readwrite#hexcasting:write)$(item)带有信息的物品$(),同时还有$(l:greatwork/spellcircles)$(thing)法术环$()的媒质波如穿过$(l:items/slate)$(item)石板$()一样流过,那么它就会把物品中的 iota 压入栈顶。如果$(l:items/pedestals)$(thing)支座$()恰好处于未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$()中,该 iota 便会出现在所创建的列表内。",
- "hexical.page.pedestal_circles.1": "$(l:greatwork/spellcircles)$(item)促动石$()会将$(l:items/pedestals)$(item)支座$()$(l:patterns/spells/circle_spells#hexical:absorb_arm)用作$()法术环的$(o)另一只手$(),适用于$(l:patterns/spells/hexcasting)合成施法物品等法术$()、$(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)重新充能$(),以及$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()。$(br2)很适合用于自动为$(l:items/hexcasting)施法物品$()$(l:patterns/spells/hexcasting#hexcasting:recharge)充能$()。",
-
- "hexical.page.patterns.title": "图案操作",
- "hexical.page.patterns.0": "我发现了一系列图案,主要用于操纵及构造$(l:patterns/patterns_as_iotas)图案$()。奇怪的是,这些图案也能构造出$(l:items/staff)$(item)法杖$()$(o)无法$()绘制的图案,好在自然应该不会为这些“非法”图案分配实际作用。可以认为$(l:items/scarab)$(item)圣甲虫$()能随意使用它们。",
- "hexcasting.action.hexical:shuffle_pattern": "图案制作师之馏化",
- "hexical.page.shuffle_pattern.summary": "接受一个图案和一个数,返回同外形不同笔顺的图案。我找到的一些笔记中称古代的$(hex)咒术师们$()会把这些图案用在某种$(o)庞大的图书馆$()中。",
- "hexcasting.action.hexical:congruent": "全等之馏化",
- "hexical.page.congruent.summary": "检验两个图案的外形、笔顺、方向是否相同。",
- "hexcasting.action.hexical:similar": "相似之馏化",
- "hexical.page.similar.summary": "检验两个图案的外形是否相同,笔顺不考虑。",
- "hexcasting.action.hexical:serialize_pattern": "笔迹师之纯化",
- "hexical.page.serialize_pattern.summary": "将图案转换为数列表,以供拆分与分析。是$(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)书法师之纯化$()的逆法术。",
- "hexcasting.action.hexical:deserialize_pattern": "书法师之纯化",
- "hexical.page.deserialize_pattern.summary": "将数列表转换回图案,以供检视与运行。是$(l:patterns/pattern_manipulation#hexical:serialize_pattern)$(action)笔迹师之纯化$()的逆法术。",
- "hexical.page.patterns.1": "$(l:patterns/pattern_manipulation#hexical:serialize_pattern)$(action)笔迹师之纯化$()返回的数对应图案中的笔画。向右上方延伸的笔画对应 0,其余方向按逆时针依次递增。$(br2)$(l:patterns/pattern_manipulation#hexical:deserialize_pattern)$(action)书法师之纯化$()会对超出 0 到 5 范围的数求$(l:patterns/math#hexcasting:modulo)余数$()以转换到该范围内。",
- "hexical.page.patterns.2": "这些列表有多种良好性质。加上或减去某个常量,即可旋转图案。为列表首部和尾部切片,可提取出图案的前后缀。对于旋转对称的图案而言,将首个元素移至末尾或将最末元素移至首部,即可旋转开始位置。而通过列表操作小心更改其中元素,还可制造出$(o)向后延伸的笔画$()。",
- "hexcasting.action.hexical:draw_pattern": "手写之馏化",
- "hexical.page.draw_pattern.summary": "接受一个图案,并将其转换为长度为 1 的向量列表。这些向量的 Z 分量为 0。也许对某些艺术性$(hex)咒术$()很有用。",
-
- "hexical.page.telepathy.title": "心灵感应",
- "hexical.page.telepathy": "$(media)媒质$()是思维的能量,因此可和思维发生反应。不幸但或许也算幸运之处,在于$(hex)咒术师$()的意识对$(hex)咒术$()的扭曲有极高的抗性,就连村民的意识都会反抗操纵。但有一个重要的例外:我自己的意识是对我的$(media)媒质$()开放的,我可以从其读取意图或向其写入思维。",
- "hexcasting.action.hexical:get_telepathy": "心灵感应之精思",
- "hexical.page.get_telepathy.summary": "对某种影像保持注意力,就可通过此图案探测到注意力的强度。压入我按下$(thing)$(k:hexical.telepathy)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
- "hexcasting.action.hexical:send_telepathy": "传递思维",
- "hexical.page.send_telepathy.summary": "将 iota 暂时显示在快捷栏上方。如果持续施放,则每次施放都会立刻覆盖上一次的结果。",
- "hexcasting.action.hexical:shout_telepathy": "喊出思维",
- "hexical.page.shout_telepathy.summary": "在屏幕中央显示 iota。这么做会阻碍视野,消散也要时间,因此不应经常使用。",
- "hexcasting.action.hexical:pling": "幻听扣弦",
- "hexical.page.pling.summary": "使我听到一段扣弦声,其他事物无法听见。",
- "hexcasting.action.hexical:click": "幻听咔哒",
- "hexical.page.click.summary": "使我听到一段咔哒声,其他事物无法听见。",
- "hexcasting.action.hexical:left_click": "进攻之精思",
- "hexical.page.left_click.summary": "压入我按下$(thing)$(k:attack)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
- "hexcasting.action.hexical:right_click": "操纵之精思",
- "hexical.page.right_click.summary": "压入我按下$(thing)$(k:use)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
- "hexcasting.action.hexical:moving_up": "突进之精思",
- "hexical.page.moving_up.summary": "压入我按下$(thing)$(k:forward)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
- "hexcasting.action.hexical:moving_down": "后撤之精思",
- "hexical.page.moving_down.summary": "压入我按下$(thing)$(k:back)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
- "hexcasting.action.hexical:moving_left": "左躲之精思",
- "hexical.page.moving_left.summary": "压入我按下$(thing)$(k:left)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。很容易和右避之精思区分,因为左躲之精思名字里有个“左”。",
- "hexcasting.action.hexical:moving_right": "右避之精思",
- "hexical.page.moving_right.summary": "压入我按下$(thing)$(k:right)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。很容易和左躲之精思区分,因为右避之精思名字里有个“右”。",
- "hexcasting.action.hexical:jumping": "腾跃之精思",
- "hexical.page.jumping.summary": "压入我按下$(thing)$(k:jump)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
- "hexcasting.action.hexical:sneaking": "潜行之精思",
- "hexical.page.sneaking.summary": "压入我按下$(thing)$(k:sneak)$()键的时间,以 1/20 秒计,如果未按下则返回 -1。",
- "hexcasting.action.hexical:scroll": "滚动之精思",
- "hexical.page.scroll.summary": "压入我在$(thing)心灵感应$()后滚轮滚动的量。",
-
- "hexical.page.akashic_conveniences.title": "阿卡夏实用图案",
- "hexical.page.akashic_conveniences.0": "阿卡夏图书馆正是为用$(media)媒质$()存储信息而建,深入研究后能发现更多便捷操作也就不足为奇。我可以对经过写入的$(l:greatwork/akashiclib)$(item)书架$()按下$(thing)$(k:use)$()或使用$(l:patterns/spells/prestidigitation)魔法交互$(),以将其中 iota 复制到栈中。也可手持$(l:items/scroll)$(item)卷轴$()按下$(thing)$(k:use)$(),以将其图案键复制到其上。还有一系列图案能向影响范围内的$(l:greatwork/akashiclib)$(item)书架$()和$(l:items/slate)$(item)石板$()写入与读取,无需消耗$(media)媒质$()。",
- "hexcasting.action.hexical:key_shelf": "图书管理员之纯化",
- "hexical.page.key_shelf.summary": "读取$(l:greatwork/akashiclib)$(item)阿卡夏书架$()的键。",
- "hexcasting.action.hexical:read_shelf": "图书管理员之纯化,第二型",
- "hexical.page.read_shelf.summary": "读取$(l:greatwork/akashiclib)$(item)阿卡夏书架$()的 iota。",
- "hexcasting.action.hexical:write_shelf": "图书管理员之策略",
- "hexical.page.write_shelf.summary": "以图案键向$(l:greatwork/akashiclib)$(item)阿卡夏书架$()写入 iota。",
- "hexcasting.action.hexical:clear_shelf": "图书管理员之策略,第二型",
- "hexical.page.clear_shelf.summary": "清除给定的$(l:greatwork/akashiclib)$(item)阿卡夏书架$()。",
-
- "hexical.page.mage_block.title": "术师方块",
- "hexical.page.mage_block.0": "$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑方块$()产生的方块会永久存在,清理它们就变得非常麻烦,并且这种方块的用处也不算大。好在自然提供了一种优雅灵活的替代方案。这些术师方块带有一系列的$(o)改进$()。多个改进甚至能同时应用在一个方块上,重复应用改进则可将其移除。",
- "hexcasting.action.hexical:conjure_mage_block": "构筑术师方块",
- "hexical.page.conjure_mage_block.summary": "在所给位置构筑一个术师方块。消耗 3 个$(l:items/amethyst)$(item)紫水晶粉$()。$(br2)$(o)我可以凭空造出一座城市,也可令其沉没于火山熔岩之中。$()",
- "hexcasting.action.hexical:modify_block_bouncy": "改进方块:弹性",
- "hexical.page.modify_block_bouncy.summary": "此改进使得方块弹性十足!如此制成的方块的弹性比黏液块更好。同时我注意到,潜行时它也会把我弹起来。",
- "hexcasting.action.hexical:modify_block_energized": "改进方块:激能",
- "hexical.page.modify_block_energized.summary": "带有此改进的术士方块能发出红石信号,信号强度即为所给数。",
- "hexcasting.action.hexical:modify_block_ephemeral": "改进方块:消逝",
- "hexical.page.modify_block_ephemeral.summary": "此改进需要一个数和一个位置向量,在所给数个二十分之一秒后打碎所给位置处的方块。后续再次施法可延长或缩短等待时间。",
- "hexcasting.action.hexical:modify_block_invisible": "改进方块:隐形",
- "hexical.page.modify_block_invisible.summary": "此改进阻止方块散发出类似施法时产生的粒子,就算站在上面也一样。",
- "hexcasting.action.hexical:modify_block_replaceable": "改进方块:可替",
- "hexical.page.modify_block_replaceable.summary": "此改进非常适合建筑!其他方块可以直接放置在带有此改进的术师方块处。",
- "hexcasting.action.hexical:modify_block_volatile": "改进方块:失稳",
- "hexical.page.modify_block_volatile.summary": "此改进促使方块破坏与之相邻的术师方块。而当其破坏另一个失稳方块时,与其相连的所有失稳方块都会消失。",
-
- "hexical.page.rotation.title": "旋转",
- "hexical.page.rotation.0": "旋转可由更改朝向的原地传送实现。视角的突然变化已经能造成强烈的晕眩感,再加上双脚离地后又着地,真是难以想象的晕。$(br2)正因此,自然厌恶实体旋转……或者说,只是因为实体旋转破坏了自然精心建构的某种图景。",
- "hexcasting.action.hexical:rotate_block": "旋转方块",
- "hexical.page.rotate_block.summary": "将方块旋转为朝向给定向量。需方块可旋转。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:rotate_entity": "旋转实体",
- "hexical.page.rotate_entity.summary": "根据所给俯仰角和偏航角旋转实体,需以弧度为量度。",
- "hexical.page.rotate_entity.description": "自然似乎不待见实体旋转。因此,相较于简单易懂的向量,自然要求你提供旋转弧度,再据此进行水平向和垂直向旋转。$(br2)此法术的消耗分了很多类别,而且也很奇怪。对自身施放时不消耗媒质,对其他实体则消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$(),而玩家周围的$(media)媒质$()气场则会把消耗抬到大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
-
- "hexical.page.autographs.title": "亲笔签名",
- "hexical.page.autographs.0": "只要精细操纵$(media)媒质$(),就可将我的签名以魔法方式$(o)蚀刻$()到物品上去!此类法术必须通过$(l:items/staff)$(item)法杖$()施法,以作强烈意图之证明。$(br2)被签名的物品会用流光溢彩的$(l:items/pigments)$(item)染色剂$()显示各位署名人的名字。$(br2)$(o)“我没说过这句话。”——鲁迅$()",
- "hexcasting.action.hexical:autograph": "签名",
- "hexical.page.autograph.summary": "为副手中的物品永久签上我的名字,以我的$(l:items/pigments)$(item)染色剂$()为颜色。对我已签过名的物品再次签名,会将我的签名移至首位。",
- "hexical.page.autographs.1": "因为签名的刻印极深,$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()无法去除签名,而是需要专用的法术来抹除。$(br2)不过,能完成这项任务的法术本身就可以清空$(l:items/focus)$(item)核心$()的内容物,以及$(l:items/hexcasting)$(item)施法物品$()的$(hex)咒术$()和$(media)媒质$()。也许这也算是长处:我的$(hex)咒法学$()赠礼若带有我的亲笔签名,就表明没人做过手脚。",
- "hexcasting.action.hexical:unautograph": "撤回签名",
- "hexical.page.unautograph.summary": "更暴力的$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$(),甚至能抹掉签名。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$(),与$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)清除物品$()类似。",
- "hexcasting.action.hexical:has_autograph": "验证器之馏化",
- "hexical.page.has_autograph.summary": "检验给定玩家是否为所给物品组签过名。",
-
- "hexical.page.dyes.title": "染料",
- "hexical.page.dyes.0": "染色法术和专用的 iota 可以用来改变方块和实体的颜色。染料 iota 代表一种颜色,也似乎同时象征着染色的$(o)可能性$()。例如,尝试获取草丛的染料会返回 $(l:casting/influences)$(thing)Null$(),但获取未染色陶瓦的染料会返回$(thing)uncolored$()/$(thing)无色$(),这种染料能够“漂白”可染色方块。",
- "hexcasting.action.hexical:get_dye": "色彩之纯化",
- "hexical.page.get_dye.summary": "获取方块、实体、方块标识、物品标识的染料。",
- "hexcasting.action.hexical:dye": "染色",
- "hexical.page.dye.summary": "为可染色的方块或实体染色。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.dyes.1": "此法术的有效目标如下:床、蜡烛、插上蜡烛的蛋糕、地毯、混凝土、混凝土粉末、带釉陶瓦、沙子和红沙互换、砂岩类和红砂岩类方块互换、潜影盒、染色玻璃、染色玻璃板、陶瓦、郁金香、羊毛。实体有:猫的项圈、狗的项圈、类视斑实体、潜影贝、前述方块的物品实体。",
- "hexcasting.action.hexical:translate_dye": "视色之纯化",
- "hexical.page.translate_dye.summary": "将染料的颜色转换为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
-
- "hexical.page.pigments.title": "染色剂操纵",
- "hexical.page.pigments.0": "和通过$(hex)咒法学$()操纵$(l:patterns/spells/dyes)染料$()一样,染色剂也可操纵。比如说,我甚至能存储多个染色剂,再让$(hex)咒术$()随机挑选一个给我。",
- "hexcasting.action.hexical:to_pigment": "染色剂之纯化",
- "hexical.page.to_pigment.summary": "接受一个有色染料 iota,并转换为染色剂;接受一个玩家并返回其染色剂;或是接受一个内含染色剂的物品,并返回其染色剂。",
- "hexcasting.action.hexical:sample_pigment": "染色剂之提整",
- "hexical.page.sample_pigment.summary": "在给定位置和时间获取染色剂颜色,返回为向量,各分量对应红、绿、蓝,取值范围为 0 到 1。",
- "hexcasting.action.hexical:take_on_pigment": "内化染色剂,第二型",
- "hexical.page.take_on_pigment.summary": "接受一个染色剂 iota 并内化它。",
-
- "hexcasting.action.hexical:magic_missile": "魔法飞弹",
- "hexical.page.magic_missile.summary": "构筑一小片紫水晶,对命中目标固定造成 1 颗心的伤害,同时强令目标退后。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.magic_missile.0": "弹射物有种几项特别的性质。它在存在大约 10 秒后会自动消失,击中实体或方块后会碎裂。它会穿过所有形式的盔甲和保护,也不受重力和水的影响。$(br2)$(o)晶莹闪亮的弹射物,不算很强,但非常迷人……$()",
- "hexical.page.magic_missile.1": "第一个向量是构筑的位置,其性质相当奇妙:怪不得大多数$(hex)咒术师$()都只选择在面前构筑它们。这一参数以我的头部位置为原点,我$(l:patterns/basics#hexcasting:get_entity_look)$(action)面朝的方向$()是 Z 轴正向,$(l:patterns/scrying/entities#hexpose:theodolite)$(action)头顶向上的方向$()是 Y 轴正向,头部向右的方向是 X 轴正向。平常使用时,零向量对应在我的头颅内部构筑,形如 (0, 0, n) 的向量则会在我面前 n 格处构筑。",
- "hexical.page.magic_missile.2": "第二个向量是速率,好在比第一参数简单不少。它就是简单的偏移向量,与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()接受的向量类似。而与$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()不同的是,本法术的向量没有模长限制,也不会因模长增加而增大消耗。$(br2)$(item)魔法飞弹$()与$(item)箭$()的不同之处在于,前者不会因为飞行速度快而造成更多伤害。飞弹还会产生一种奇怪的击退效果,无视实体的质量和弹射物的速度。",
-
- "hexcasting.action.hexical:prestidigitation": "戏法",
- "hexical.page.prestidigitation.0": "此法术的效果并不单一固定,而是会执行许多不同的简单效果。它能与许多方块和实体交互,我也一直在发现它们的新用途。$(br2)文献中只将其简单描述为“施魔法”;按经验来看,只要是巫师能通过念力轻易实现的效果,这则法术都可复刻。",
- "hexical.page.prestidigitation.summary": "产生一类小型魔法效果,这种效果与目标的性质和功能基本一致。消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.prestidigitation.1": "我在此整理了一份此法术的功效列表,不保证完备:打开或关闭各种材质的栅栏门、活板门、门;拨动拉杆,按压按钮;压下或松开压力板;熄灭各类火;点燃或熄灭蜡烛、蛋糕上的蜡烛、营火;在可引燃灵魂火的方块上点火;敲钟;为木材去皮;雕刻南瓜;使音符盒发出声音;将泥巴烤干为黏土;打开或关闭红石灯;",
- "hexical.page.prestidigitation.2": "触发发射器和投掷器;将大部分土壤方块变为土径,将土径变为耕地;消耗炼药锅的内容物;更改红石中继器、红石比较器、阳光探测器的状态;触发或解除 TNT 和苦力怕的爆炸;为绵羊剪毛;装上或卸下盔甲架的手臂;使得鱿鱼喷墨;使得熊猫打喷嚏;去除雪傀儡的头套;令河豚膨胀;从蜂巢和蜂箱中取出蜜脾;以及触发某种$(hex)咒法学$()的“宏伟之作”。",
-
- "hexical.page.wristpocket.title": "魔袋",
- "hexical.page.wristpocket.0": "让物品消失,再让物品回来的普通魔术把戏现在已易如反掌。这些物品藏在了$(o)魔袋$()之中,可用$(media)媒质$()操控。藏入魔袋的物品在我死后依然保留,只要能施法就能取回。$(br2)$(o)因为就让事物消失是不够的;你还要把它变回来。$()",
- "hexcasting.action.hexical:wristpocket": "藏入魔袋",
- "hexical.page.wristpocket.summary": "此法术会令另一只手中的物品组消失;也可重新让其出现,如果手中已经持有物品则会交换。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:wristpocket_item": "魔袋之精思",
- "hexical.page.wristpocket_item.summary": "返回魔袋中的物品,如果魔袋为空则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexical.page.wristpocket.1": "虽然物品已经消失,而且是消失到几乎无法被探测,魔袋中物品的某些功能依然能够运作。$(br2)我听说某些$(item)图腾$()可在魔袋内运作。魔袋中的$(l:items/phials)$(item)媒质之瓶$()也仍能为$(hex)咒术$()提供媒质。",
- "hexcasting.action.hexical:sleight": "花招",
- "hexical.page.sleight.summary": "表演一次魔法花招,将物品偷来放入魔袋,或是将魔袋中的物品扔出来。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.sleight.description": "传入向量时:将魔袋中的物品投放到对应位置。传入物品实体时:若魔袋为空,将其放入魔袋;若不为空,交换魔袋内容物和所给物品。$(br2)$(o)使用手法时如果不能将视线一直保持在观众身上,那最好还是再去练练。$()",
- "hexcasting.action.hexical:mage_hand": "法师之手",
- "hexical.page.mage_hand.summary": "将我意识中的魔法手投射出来,以在世界中使用魔袋中的物品交互。如果魔袋为空,则表现为空手交互。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.mage_hand.description": "传入实体时:使用魔袋中物品与该实体交互。传入向量时:使用物品与该处方块或$(o)空间$()交互。$(br2)而因为这只手仅是意识的投射,它仍与我相连,且无法使用仅限玩家的施法方式。我倒是还可以拿来打开$(item)箱子$()。$(br2)$(o)一只漂浮的幽灵手出现在施法距离内你指定的一点。$()",
- "hexcasting.action.hexical:mage_mouth": "法师之口",
- "hexical.page.mage_mouth.summary": "此法术能让我吃下魔袋中的物品,填饱我的肚子,或是给予我药水效果。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$(),若物品无法食用则招致事故。",
- "hexical.page.mage_mouth.description": "无论食用通常需要多少时间、食物有何种特殊效果、我在饮食中有无限制、食用行为有无冷却、还是我是否吃饱,此法术都会瞬间完成食用。$(br2)$(o)食即药,药即食。$()",
-
- "hexical.page.specks.title": "视斑",
- "hexical.page.specks.0": "我可以在世界中显现出 iota 的影像,也即$(item)视斑$()。自然给予我对其极大的掌控力,大小、笔迹粗细等都可随意修改。它们也会继承我染色剂的颜色。而在它们实际显现在世界上后,我便能移动、旋转,或是以其他手段随意更改它们,不受影响范围限制。",
- "hexcasting.action.hexical:conjure_speck": "构筑视斑",
- "hexical.page.conjure_speck.summary": "按照所给 iota、位置、朝向构筑视斑。消耗极少量$(media)媒质$()。压入视斑 iota。",
- "hexcasting.action.hexical:move_specklike": "移动视斑",
- "hexical.page.move_specklike.summary": "将视斑实体移动至所给位置。",
- "hexcasting.action.hexical:rotate_specklike": "旋转视斑",
- "hexical.page.rotate_specklike.summary": "令视斑实体的朝向变为所给向量。",
- "hexcasting.action.hexical:roll_specklike": "滚转视斑",
- "hexical.page.roll_specklike.summary": "接受一个 0 与 1 之间的数,用作旋转圈数,并依此旋转视斑。",
- "hexcasting.action.hexical:iota_speck": "更改视斑",
- "hexical.page.iota_speck.summary": "更改视斑对应的 iota。",
- "hexcasting.action.hexical:lifetime_specklike": "计时视斑",
- "hexical.page.lifetime_specklike.summary": "令视斑在所给数个二十分之一秒后消失。",
- "hexcasting.action.hexical:size_specklike": "缩放视斑",
- "hexical.page.size_specklike.summary": "更改视斑的大小,接受 0 与 10 之间的数。此数表示以格计的大小,默认为 0。",
- "hexcasting.action.hexical:thickness_specklike": "增粗视斑",
- "hexical.page.thickness_specklike.summary": "更改图案视斑笔触的粗细,接受 0 与 10 之间的数。此数表示以 1/20 格计的大小,默认为 0。",
- "hexcasting.action.hexical:pigment_specklike": "染色视斑",
- "hexical.page.pigment_specklike.summary": "将染色剂施加于视斑,可在构筑后更改其颜色。",
- "hexcasting.action.hexical:kill_specklike": "驱散视斑",
- "hexical.page.kill_specklike.summary": "强令视斑实体消失。",
- "hexcasting.action.hexical:zone_specklike": "区域之馏化:类视斑",
- "hexical.page.zone_specklike.summary": "返回视斑实体,效果与其他$(l:patterns/entities#hexcasting:zone_entity/animal)区域之馏化$()类似。",
-
- "hexical.page.projectiles.title": "弹射物",
- "hexical.page.projectiles.0": "虽然直接用纯净的$(media)媒质$()构筑弹射物贵到发指,自然还是为部分弹射物提供了相较便宜些的法术。$(br2)这些法术会将构筑的实体压入栈顶,此后必须手动向某方向$(l:patterns/spells/basic#hexcasting:add_motion)$(action)驱动$()它们。$(br2)$(o)值此困境,你想要枚上好的蛋吗?$()",
- "hexcasting.action.hexical:egg": "构筑蛋",
- "hexical.page.egg.summary": "构筑一枚蛋。可能可以孵出小鸡。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:llama_spit": "构筑唾沫",
- "hexical.page.llama_spit.summary": "构筑一个能造成少量伤害的黏性弹射物。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:snowball": "构筑雪球",
- "hexical.page.snowball.summary": "构筑一个不会造成伤害的雪球。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:ghast_fireball": "构筑火球",
- "hexical.page.ghast_fireball.summary": "构筑一个易爆的火球,$(o)敲击可发射$()。消耗大约 3 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.projectiles.1": "还有其他法术也可以构筑弹射物;但它们太过复杂,超出了此章范畴。它们在对应的专论章节内。$(br2)$(l:patterns/spells/magic_missile#hexical:magic_missile)$(action)魔法飞弹$()是一类快捷多用的标准紫水晶矛,可使用任意速度发射。$(br2)还可在战斗中善用$(l:patterns/spells/pyrotechnics)烟花$()。$(br2)此外,还有$(l:patterns/spells/block_mimicry#hexical:dispense)$(action)一个法术$()能够发射药水和箭。",
-
- "hexical.page.hexical_spells.title": "Hexical 法术",
- "hexcasting.action.hexical:confetti": "彩花",
- "hexical.page.confetti.summary": "在给定位置以给定方向、速率、速度制造一阵类似$(l:patterns/spells/pyrotechnics)烟花$()的响声及一簇色彩鲜艳的粒子。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.confetti.description": "这些粒子不会造成伤害,且在触地前会四处飘动。第一个向量控制位置。第二个参数控制方向;若传入数,则表示向所有方向爆炸的速度;若传入向量,则会令粒子偏向该方向。数的绝对值和向量的模长均不可超过 2。$(br2)$(o)剩下的不过是些彩花。$()",
- "hexcasting.action.hexical:vibration": "振动",
- "hexical.page.vibration.summary": "产生一道可视的振动波,其会从一个位置向量处到一个实体或另一个位置向量处飞行,总计所给数秒。消耗大约 1/16 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.vibration.description": "这种效果和$(item)幽匿感测体$()产生的振动看上去很相似,但实质上完全不同。前者只是视觉效果。$(br2)飞行时间可为 0 秒到 10 秒间任选。$(br2)$(o)如果森林里有棵树倒了,但附近没人听见,那它还算是发出了声音吗?$()",
- "hexcasting.action.hexical:sparkle": "烁星",
- "hexical.page.sparkle.summary": "在给定位置以给定颜色和持续时间制造一颗闪光的小粒子。消耗极少量$(media)媒质$()。",
- "hexical.page.sparkle.description": "第一个向量控制位置,第二个控制颜色。第二向量各分量应为 0 到 1 的数,分别对应红、绿、蓝三色。最后的数代表烁星应存在多少个 1/20 秒,最多可存在 5 秒。$(br2)$(o)闪光的不一定是金子。$()",
- "hexcasting.action.hexical:crack_device": "破解设备",
- "hexical.page.crack_device.summary": "对不包含$(hex)咒术$()的$(l:items/hexcasting)$(item)施法物品$()使用时,$(o)将其破解$()。经破解的施法物品会自豪地展现它们的$(hex)咒术$()。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
- "hexical.page.crack_device.description": "如果试图破解已经写入过的设备的内部结构,法术便会让我眼盲一段时间。不过,我认为好像有一瞬,我看到了$(hex)咒术$()显现在我的眼前,$(media)媒质$()填满了我的大脑。$(br2)$(o)现在时间都要靠电啦、振荡的石英晶体啦,鬼知道什么东西来走。$()$(br)——明显是在说$(l:items/amethyst)$(item)紫水晶$()。",
- "hexcasting.action.hexical:flower": "构筑花卉",
- "hexical.page.flower.summary": "在给定位置构筑一株花,品种任选。所需的花卉必须先经过标识。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.flower.description": "构筑处四周必须存在足够支撑植物的平坦表面。不要求它可以种植花卉;但如果不可种植,那么任何轻微的动作都会让花朵掉落。还可以在花盆处使用:法术会先尝试在其中构筑。$(br2)$(o)杂草不过是还未得人青睐的鲜花。$()",
- "hexcasting.action.hexical:light": "荧亮",
- "hexical.page.light.summary": "在给定位置构筑一个给定光照强度的隐形光源。消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.light.description": "构筑的位置必须腾空,或需该处方块极为脆弱。光照强度为 1 到 15 的数,两端闭。如果对应位置处已有光源,则法术变为无消耗,也不会产生粒子。$(br2)持有$(l:items/lens)$(item)探知透镜$()可让光源显形,在光源所在处放置方块可消除它们。$(br2)$(o)光明使人盲目。只有身处黑暗才能洞悉本质。$()",
- "hexcasting.action.hexical:gasp": "喘息",
- "hexical.page.gasp.summary": "立即填满生物的氧气条,消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.gasp.description": "无论回复多少氧气,此法术均消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$(),因此在快要无法安全呼吸时施法是最优选择。从潜水,到传送进方块内部,甚至于在陆地上维持海洋生物的生命,此法术都相当有用。$(br2)$(o)子非鱼,安知鱼之乐?$()",
- "hexcasting.action.hexical:parrot": "啼鸣",
- "hexical.page.parrot.summary": "在某位置附近发出一阵与某生物有关的声音,就好像鹦鹉模仿了那个生物的声音一样。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.parrot.description": "如果鹦鹉无法模仿声音,此法术便不会有功效,但仍会消耗$(media)媒质$()。$(br2)我觉得这大概只能用来给朋友和敌人开玩笑。也许自然真的允许我偶尔用$(hex)咒术$()找找乐子。$(br2)$(o)嘶嘶嘶嘶嘶……$()",
-
- "hexical.page.break_special.title": "特种破坏",
- "hexcasting.action.hexical:break_fortune": "提取方块",
- "hexical.page.break_fortune.summary": "瞄准方块结构中的弱电,从而提供产量。强度参数为 0、1、2 时相应消耗大约 1、3、5 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:break_silk": "采集方块",
- "hexical.page.break_silk.summary": "轻柔地破坏方块,从而更好地保留方块构造。消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
-
- "hexical.page.conjurable_delights.title": "构筑小物件",
- "hexical.page.conjurable_delights.0": "古代的$(hex)咒术师们$()似乎研究过多种构筑物品的法术,以精进自身的技艺,或是方便多人合作。所得的物品大多只能笼统归入$(o)也许$()可食用的范畴。$(br2)$(o)若要向其他人表善意,没有什么比为他们端上热腾腾的早餐更合适的了。$()",
- "hexcasting.action.hexical:conjure_gummy": "构筑咒术软糖",
- "hexical.page.conjure_gummy.summary": "构筑一个$(item)咒术软糖$():一种小零食,能提供大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()的$(media)媒质$()。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:conjure_hexburst": "构筑咒术星爆糖",
- "hexical.page.conjure_hexburst.summary": "使用所给 iota 在给定位置构筑一枚$(item)咒术星爆糖$()。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
- "hexical.page.conjure_hexburst.description": "取出一个 iota,再在周围包裹$(media)媒质$(),直至它具备物理形态,就得到了可食用的$(item)咒术星爆糖$()。食用时,这种糖会将其中的 iota 压入食用者的栈。如果我想要交易代表我的 iota,它应该会很有用。如果栈中有未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),则其会进入所构造的列表。",
- "hexcasting.action.hexical:conjure_hextito": "构筑咒力多滋",
- "hexical.page.conjure_hextito.summary": "在给定位置构筑一片$(hex)咒力多滋$()。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。可能招致“违犯他人”事故。",
- "hexical.page.conjure_hextito.description": "$(hex)咒力多滋$()是一种三角形的酥脆零食。食用时会立即施放其中$(hex)咒术$();它使用的是$(item)$(l:items/staff)法杖$()栈,而非和普通$(l:items/hexcasting)$(item)施法物品$()那样使用独立的栈。它大概很适合射线追踪之类的简单操作集合,也方便我与他人分享我设计的$(hex)咒术$()。如果食用者的栈存在未闭合的$(l:patterns/patterns_as_iotas#hexcasting:open_paren)内省$(),其中咒术便不会施放,以此保障他人使用的安全。",
-
- "hexical.page.spike.title": "构筑尖刺",
- "hexical.page.spike.0": "我曾听过有一位灾厄村民术士能在地上构筑尖牙。要相信“村民能操控$(media)媒质$()”这种说法很难,但从其中获取灵感还是可行的。我依此制造出了这条法术,能够从地下升起尖刺刺穿目标。",
- "hexcasting.action.hexical:spike": "构筑尖刺",
- "hexical.page.spike.summary": "接受一个非空气位置,一个轴向向量,按秒延迟最长 10 秒后,在给定位置构筑一个尖刺。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.spike.1": "尖刺在造成伤害前会准备大约半秒,且会在缓慢缩回前造成高达三颗心的伤害。若在已经触发尖刺的位置重复施放法术,则不会有任何效果。尖刺同时会向构筑的方向击退目标。",
-
- "hexical.page.block_mimicry.title": "方块模仿",
- "hexical.page.block_mimicry.0": "$(hex)咒法学$()是项多用途的技艺。比如说,原本需要方块才能执行的操作,现在可以用$(media)媒质$()模拟,无需任何外物。仅用法杖,就可$(l:patterns/spells/block_mimicry#hexical:stonecut)把石头切成楼梯$(),$(l:patterns/spells/block_mimicry#hexical:dispense)发射箭矢$(),$(l:patterns/spells/block_mimicry#hexical:smelt)烧炼$()物品。",
- "hexical.page.block_mimicry.1": "传说中古代的$(hex)咒术师们$()一方一块都没有放置就建立起了一整座魔法工厂。$(br2)$(o)我要更大的办公室,要更大的椅子$(br)要更大的桌子,要更大的法杖$(br)还要顶更好的帽子",
- "hexcasting.action.hexical:dispense": "发射",
- "hexical.page.dispense.summary": "接受一个物品实体、一个位置、一个轴向向量,并依此发射物品。对大多数使用环境而言,消耗大约 1/2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.dispense.description": "具体而言,此法术相当于触发一个装有所给物品的发射器。$(br2)如果此法术涉及到任意种类的$(item)箭$(),消耗便涨至 1 个$(l:items/amethyst)$(item)充能紫水晶$()。不知道为什么自然对此类应用的反应如此剧烈。也许是不想让我变得太强?$(br2)$(o)如有要求,我也会执行拥抱。$()",
- "hexcasting.action.hexical:smelt": "烧炼",
- "hexical.page.smelt.summary": "接受一个物品实体,并像$(item)熔炉$()一样烧炼它。$(item)熔炉$()每需烧炼 10 秒消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcasting.action.hexical:roast": "烤制",
- "hexical.page.roast.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)营火$()。它的适用范围更窄;大概是永远都用不上了。",
- "hexcasting.action.hexical:smoke": "烟熏",
- "hexical.page.smoke.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)烟熏炉$()。它只能处理食物,但速度更快,变相降低消耗。",
- "hexcasting.action.hexical:blast": "高炉烧炼",
- "hexical.page.blast.summary": "特种化的$(l:patterns/spells/block_mimicry#hexical:smelt)$(action)烧炼$(),会模拟$(item)高炉$()。它只能处理矿石,但速度更快,变相降低消耗。",
- "hexcasting.action.hexical:stonecut": "切石",
- "hexical.page.stonecut.summary": "接受一个物品实体,将所给物品实体切制为目标物品的形状。消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.stonecut.description": "目标物品必须可由所给物品在$(item)切石机$()中加工而成。比如说,$(item)石头$()可切制为楼梯、台阶、墙。$(br2)$(o)我在大理石中看见天使,于是我不停地雕刻,直至使他自由。$()",
-
- "hexical.page.circle_spells.title": "法术环法术",
- "hexical.page.circle_spells.0": "媒质流穿梭于$(l:greatwork/spellcircles)$(thing)法术环$()中,其囊括的区域因而充盈着$(media)媒质$(),产生强大魔法效果和灵活控制其中$(media)媒质$()也就不再是难事。后页记载了需要这种增浓媒质场或$(l:greatwork/spellcircles)$(thing)法术环$()自身属性的法术,它们只可由$(l:greatwork/impetus)$(item)促动石$()施放。",
- "hexcasting.action.hexical:displace": "转移",
- "hexical.page.displace.summary": "无需任何媒质,就可将$(l:greatwork/spellcircles)$(thing)环$()中实体传送至同一$(l:greatwork/spellcircles)$(thing)法术环$()中任意一处。与$(l:patterns/great_spells/teleport)$(action)卓越传送$()不同在于,此法术接受的是绝对坐标。无需消耗$(media)媒质$()。",
- "hexcasting.action.hexical:absorb_arm": "附肢",
- "hexical.page.absorb_arm.summary": "将$(l:greatwork/spellcircles)法术环$()连接至影响范围内的$(l:items/pedestal)$(item)支座$(),以将其视作$(o)另一只手$()。适合需要另一只手中持有物品的法术。无需消耗$(media)媒质$()。",
- "hexcasting.action.hexical:create_dust": "导出媒质",
- "hexical.page.create_dust.summary": "导出$(l:greatwork/impetus)$(item)促动石$()中的$(media)媒质$(),每清除大约 11 个$(l:items/amethyst)$(item)紫水晶粉$()产出 10 个$(l:items/amethyst)$(item)紫水晶粉$()。需提供一个位置和代表$(l:items/amethyst)$(item)紫水晶粉$()数量的数,最多接受一组。",
-
- "hexical.page.evocation.title": "唤咒",
- "hexical.page.evocation.0": "$(media)媒质$()是思维的能量,则逻辑推理可得,我应当能够直接把$(o)脑海中$()的魔法变为现实,而不需要挥舞$(item)$(l:items/staff)法杖$(),毕竟我在最优状态下大约相当于 2 个$(l:items/amethyst)$(item)充能紫水晶$(),是$(l:items/staff)$(item)法杖$()的两倍。我的意识目前还不够强大,无法随意将想法化作现实,不过挥挥手唤出已蚀刻入意识的$(hex)咒术$()还是可以的。这么做会消耗我物品栏中的$(media)媒质$()。",
- "hexcasting.action.hexical:set_evocation": "加深印象",
- "hexical.page.set_evocation.summary": "刻入一份$(hex)咒术$(),此后按住$(thing)$(k:hexical.evoke)$()键 1 秒即可唤咒施放。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。$(br2)$(o)但是安东尼动了动念头,结果它在草地上做了个后滚翻,然后浑身颤抖地躺着,小小的黑眼睛中闪烁的全是恐惧。$()",
- "hexcasting.action.hexical:get_evocation": "唤咒之精思",
- "hexical.page.get_evocation.summary": "返回刻入我意识的$(hex)咒术$()。",
- "hexcasting.action.hexical:is_evoking": "唤魔者之精思",
- "hexical.page.is_evoking.summary": "压入玩家唤咒的时间,未在唤咒则为 -1。",
- "hexical.page.evocation.1": "记载有这项技术的古代文本还写有其他琐事。曾经的$(hex)咒术师们$()唤咒时无需施放$(hex)咒术$(),而是会在某种集会或集体仪式中挥动手臂合唱。也有人曾试验过,是否有法术能将$(hex)咒术$()蚀刻入$(o)村民$(),以给予他们操控$(media)媒质$()的手段。但这些试验的结果从未见诸文献,抑或是已经散佚殆尽。",
-
- "hexical.page.hotbar.title": "快捷栏",
- "hexcasting.action.hexical:get_hotbar": "趁手之精思",
- "hexical.page.get_hotbar.summary": "将我当前持有物品的组别返回为数。",
- "hexcasting.action.hexical:set_hotbar": "换手",
- "hexical.page.set_hotbar.summary": "接受一个 0 到 8 的数,并将我当前持有的物品放至该栏位。$(br2)$(o)记住,换把枪比换弹夹快。$()",
-
- "hexical.page.lesser_sentinels.title": "初等哨卫",
- "hexical.page.lesser_sentinels.0": "先插入一段哨卫理论:$(l:patterns/spells/sentinels)$(thing)哨卫$()是$(thing)自我$()在形而上学层面上剥离出的碎片。我可通过此关系驱除、请求、召唤哨卫,但每次交互都需要些许$(media)媒质$()用来“握手”。我可以$(l:patterns/great_spells/greater_sentinel)$(action)剥出更多的$(thing)自我$(),本质上相当于制造出了独立且近乎具有意识的碎片——它们能在我常规的影响范围之外施放$(hex)咒术$(),甚至还可“移动”。",
- "hexical.page.lesser_sentinels.1": "$(thing)初等哨卫$()则更为简单:它基本就是带有一丝$(thing)自我$()的$(media)媒质$()口袋,大概只够在部署后维持存在,也大概只够它被我看见。$(br2)由于其感知力较弱,我可轻松与多个此类哨卫建立连接,也可轻易移动、驱除、构筑更多。$(l:patterns/spells/sentinels)$(thing)哨卫$()同一时刻只能存在一个,$(thing)初等哨卫$()则几乎没有数量限制。",
- "hexcasting.action.hexical:set_lesser_sentinels": "部署哨卫",
- "hexical.page.set_lesser_sentinels.summary": "驱除已有的全部$(thing)初等哨卫$(),再在列表中各位置处部署一个$(thing)初等哨卫$()。",
- "hexcasting.action.hexical:get_lesser_sentinels": "渗透之精思",
- "hexical.page.get_lesser_sentinels.summary": "返回我所有全部$(thing)初等哨卫$()的位置列表。",
-
- "hexical.page.pyrotechnics.title": "烟花工艺",
- "hexical.page.pyrotechnics.0": "我发现了一些构筑烟花的法术。$(media)媒质$()在这些图案周围欢欣地嗡鸣着,就好像它们曾用于庆典一样;它们用作武器的威力也可谓令人震悚。$(br2)$(o)什么都别说了。先欣赏烟花吧。$()",
- "hexcasting.action.hexical:simulate_firework": "模拟烟花",
- "hexical.page.simulate_firework.summary": "分析另一只手中的$(item)烟火之星$(),并构筑一道烟花,位置、速度、与火药量有关的飞行时间均由烟火之星决定。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。",
- "hexcasting.action.hexical:conjure_firework": "构筑烟花",
- "hexical.page.conjure_firework.summary": "$(br)根据我$(o)详细$()给定的参数构筑一道烟花。这是我迄今为止发现的最复杂的法术之一。消耗量与其他烟花法术一致。",
- "hexical.page.conjure_firework.0": "$(o)基础理论$()$(br2)前两个参数分别是位置和速度。第三个参数决定其飞行时间,需是 1 与 3 之间的数。可以认为是加入烟花火箭的$(item)火药$()份数。$(br2)剩余的参数可看作$(thing)虚拟烟火之星$()的各特征。",
- "hexical.page.conjure_firework.1": "$(o)形状效果$()$(br2)第四个参数控制烟花的形状,需是 0 与 3 之间的数。$(br)- 0 对应简单的小型球状效果。$(br)- 1 对应大型球状效果。$(br)- 2 对应星形效果。$(br)- 3 对应大型苦力怕状效果。",
- "hexical.page.conjure_firework.2": "$(o)颜色$()$(br2)第五和第六个参数是$(l:patterns/spells/dyes)染料$()列表。第一个列表控制烟花的“初始”颜色,第二个列表控制烟花消散时的“渐变”颜色。第一列表中需至少含有一个染料;若不需“渐变”,第二个列表可以留空。",
- "hexical.page.conjure_firework.3": "$(o)附加效果$()$(br2)第七个参数控制烟花粒子是否闪烁,相当于加入荧石与否。$(br2)第八个参数控制烟花粒子是否留下踪迹,相当于加入钻石与否。",
-
- "hexical.page.rename.title": "物品重命名",
- "hexcasting.action.hexical:item_name": "命名物品",
- "hexical.page.item_name.summary": "接受一个物品,将其重命名为给定文本。传入 $(l:casting/influences)$(thing)Null$() 时重置名称。无需消耗$(media)媒质$()。",
- "hexcasting.action.hexical:item_lore": "描述物品",
- "hexical.page.item_lore.summary": "接受一个物品和一个文本列表,将文本列表加至物品作为描述。传入 $(l:casting/influences)$(thing)Null$() 时清除描述。无需消耗$(media)媒质$()。",
-
- "hexical.page.shaders.title": "着色器",
- "hexical.page.shaders.0": "这些法术作用于我的光感受体,能更改我的视野,也许是为实际用途,也许只是好玩。这些法术的效果会在死亡或暂离世界时消散。$(br2)$(o)你感觉得到了解放。你感觉你与魔力和谐共处。挖,这颜色闻起来真有意思。通常的概念已经不起作用。$()",
- "hexcasting.action.hexical:shader_clear": "清空视野",
- "hexical.page.shader_clear.summary": "终止我当前拥有的所有着色器法术。很适合在过度实验后“缓缓”眼睛。",
- "hexcasting.action.hexical:shader_owl": "穿透黑暗",
- "hexical.page.shader_owl.summary": "大幅改善我在暗处的视野,不过光照会同时变得极为刺眼。",
- "hexcasting.action.hexical:shader_lines": "显现形体",
- "hexical.page.shader_lines.summary": "将世界变为黑白细线。很适合用来辨别微妙的差异。",
- "hexcasting.action.hexical:shader_tv": "广播视野",
- "hexical.page.shader_tv.summary": "令我的视野中出现奇怪的线条,且视野的中心“向我”突出。大概是有所致敬……",
- "hexcasting.action.hexical:shader_media": "辨识重点",
- "hexical.page.shader_media.summary": "让我只能看见最为重要的事物……",
- "hexcasting.action.hexical:shader_spider": "分裂视野",
- "hexical.page.shader_spider.summary": "将我的视野分裂为多个小块,和蜘蛛的视野大概差不多。不太清楚为什么这么做能让我看得更清晰……",
-
- "hexical.page.hopper.title": "漏斗",
- "hexical.page.hopper.0": "这个法术专为点对点精确运输和批量运输物品而存在,取出和存入操作适用于许多方块和实体。$(br2)$(o)允许回收任意物品……再在现实中实例化……在任意数据源间传递任意信息$()",
- "hexcasting.action.hexical:hopper": "漏斗",
- "hexical.page.hopper.summary": "立即将所有物品从$(thing)来源$()传输到$(thing)目的$()。无论传输多少物质,均消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。数可选,详情见后页。",
- "hexical.page.hopper.1": "代表施法者,或影响范围内$(thing)盔甲架$()、$(thing)运输矿车$()、$(thing)漏斗矿车$()、$(thing)运输船$()的 iota 均是有效$(thing)来源$(),它们分别指向相应的物品存储空间。这些 iota 也是有效的$(thing)目的$()。$(br2)代表$(thing)物品展示框$()和掉落的$(thing)物品$()的 iota 同样是有效$(thing)来源$()和$(thing)目的$()。对$(thing)物品$()来说,送出物品时会尝试将物品加入物品组。",
- "hexical.page.hopper.2": "向量也是可用的$(thing)来源$()和$(thing)目的$()。即便对应位置处不存在容器方块,其仍可作为有效$(thing)目的$(),可用于向世界送出物品。$(br2)当确实存在容器方块时,它可作为$(thing)来源$(),也可作为$(thing)目的$()。如果向量指向的位置接近中心,则会对所有槽位抽取和存入;如果接近某一面,则与$(thing)漏斗$()类似,只会对该面抽取和存入。",
- "hexical.page.hopper.3": "如果传入 $(l:casting/influences)$(thing)Null$(),就似乎会指向我的$(thing)末影箱$()物品栏。自然,只有人类施法时才对此起效。$(br2)因为不管$(thing)来源$()还是$(thing)目的$()都不可能是数,在$(thing)来源$()或$(thing)目的$()后方传入可选的数不会造成歧义。这也是图案签名中 num? 的由来,这一参数与$(o)槽位$()有关。",
- "hexical.page.hopper.4": "槽位是自然选定的表示物品栏中特定空间的方法,相较之下可能稍难理解。例如,0、1、2、3 分别对应$(thing)盔甲架来源$()的靴子、护腿、胸甲、头盔槽位。传入槽位可以指定$(l:patterns/spells/hopper#hexical:hopper)$(action)漏斗$()抽取和存入物品的空间小块。$(br2)为便于快速查阅,我的快捷栏是 0 到 8,我的副手是 40,我的$(l:patterns/spells/wristpocket)魔袋$()是 -1。",
- "hexcasting.action.hexical:index_hopper": "漏斗之纯化",
- "hexical.page.index_hopper.summary": "适用于支持槽位的$(thing)来源$(),即常见的物品存储空间。返回其中所有物品组组成的列表,列表索引即为其槽位数。",
- "hexical.page.index_hopper.description": "大体上来看,槽位数还算有逻辑;但玩家物品栏等存储空间的槽位数就显得很怪异了。$(br2)此图案可以用来查找$(thing)来源$()和$(thing)目的$()存储空间中某一位置的槽位数。处理加工时这个图案也很有用:扫描$(thing)来源$(),查看其中物品,根据某种度量方式加以运算,再据此决定要不要传输和传输到哪里。",
-
- "hexical.page.horrible.title": "可怕的东西",
- "hexical.page.horrible.0": "就我在$(hex)咒法学$()中遇到的所有法术而言,我都还没遇见过这种东西。$(o)到底要怎么画啊?$()",
- "hexcasting.action.hexical:horrible": "召唤?",
- "hexical.page.horrible.summary": "从图案的参数签名来看,我只能推测出它是会召唤个什么。",
-
- "hexcasting.action.hexical:charm": "咒符",
- "hexical.page.charm.0": "$(l:patterns/great_spells/charm)$(action)咒符$()法术可将任意物品变为独立的魔法物品,也即,和$(l:items/hexcasting)$(item)杂件$()类似。它们有一个$(media)媒质$()储库,耗尽即咒符消散,无法重新充能和重新写入。$(br2)$(o)达到完美,并不是好得不能再好,而是好得一点不多余。$()",
- "hexical.page.charm.1": "咒符物品相较其他$(l:items/hexcasting)$(item)施法物品$()有若干特殊之处。$(br2)有两个图案可与其包含的 iota 交互。该 iota 存储空间只可通过该咒符物品读取和写入。$(br2)它们还能拦截输入。",
- "hexical.page.charm.summary": "$(br)施加所给$(hex)咒术$()的咒符。接受一个$(hex)咒术$(),还需提供存入的$(media)媒质$()量,以$(l:items/amethyst)$(item)紫水晶粉$()计。消耗相应媒质量和额外 3 个$(l:items/amethyst)$(item)充能紫水晶$()。",
- "hexical.page.charm.description": "四个布尔值参数对应攻击、潜行攻击、使用、潜行使用。$(br2)通过设为 True 的使用意图激活咒符物品,其中$(hex)咒术$()即会覆盖物品原有的功能。栈以代表所按键位的数起始,0 为攻击,1 为使用。$(br2)咒符物品还能被其他使用意图触发,该数最多可达到 7。",
- "hexcasting.action.hexical:write_charmed": "咒符之策略",
- "hexical.page.write_charmed.summary": "向咒符物品内部的存储空间写入 iota。可能会招致“违犯他人”事故。",
- "hexcasting.action.hexical:read_charmed": "咒符之精思",
- "hexical.page.read_charmed.summary": "将咒符物品内部存有的 iota 压入栈顶。",
- "hexcasting.action.hexical:write_charmed_proxy": "咒符之策略,第二型",
- "hexical.page.write_charmed_proxy.summary": "如果咒符物品本身就可以存储 iota(如$(l:items/focus)$(item)核心$()),则向该存储空间写入 iota。",
- "hexcasting.action.hexical:read_charmed_proxy": "咒符之精思,第二型",
- "hexical.page.read_charmed_proxy.summary": "如果咒符物品本身就可以存储 iota(如$(l:items/focus)$(item)核心$()),则从该存储空间读取 iota。",
- "hexcasting.action.hexical:discharm": "解除咒符",
- "hexical.page.discharm.summary": "解除咒符而不影响其他属性。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
-
- "hexcasting.action.hexical:greater_blink": "卓越闪现",
- "hexical.page.greater_blink.0": "卓越闪现比$(l:patterns/great_spells/teleport)$(action)卓越传送$()要便宜许多。它不会在抵达时让我全身的物品散落。但相比之下,它的运作范围小得可怜,目标位置的计算也比较……奇妙。我也无法对我自己之外的事物使用这个法术。",
- "hexical.page.greater_blink.summary": "将我传送最多 128 格,传送目的以我的位置和朝向为参照。消耗大约 2 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.greater_blink.1": "向量 (0, 0, 1) 会往$(l:patterns/basics#hexcasting:get_entity_look)$(thing)我面朝的方向$()传送 1 格。向量 (0, 1, 0) 会往$(l:patterns/scrying/entities#hexpose:theodolite)$(thing)我头顶的法向$()传送 1 格。向量 (0, 1, 10) 会往我面朝方向传送 10 格,再往头顶法向传送 1 格。向量 (1, 0, 0) 会往我的右侧传送 1 格。",
- "hexical.page.greater_blink.2": "$(o)我感到三根数轴精准地穿过我头颅的六面。在刹那之间,我仿佛被尖桩扎穿——吊在空中——然后随我先前的指示,我被猛烈地拽动——就沿着那些几何轴——移动如同在瞬间完成。$(br2)我肯定已经不是世界的一部分了——就算穿墙也不会留下哪怕一丁点痕迹。$()",
-
- "hexical.page.meshes.title": "网斑",
- "hexical.page.meshes.0": "网斑是$(l:patterns/spells/specks)视斑$()的进化形态。不会再受 iota 和图案的限制,也无需屈居于二维平面,网斑接受三维空间中的向量列表并在其间连线,由此带来的创意无穷无尽。网斑也会对大多数操纵视斑的图案有反应。",
- "hexcasting.action.hexical:conjure_mesh": "构筑网斑",
- "hexical.page.conjure_mesh.summary": "在所给位置构筑一个网斑,并压入一个网斑实体。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexical.page.meshes.1": "网斑只在编织后才有外形。用以构筑网斑的向量列表无需遵守太多规则:只要列表的长度不超出 32 个向量,且向量的模长小于 10 即可。而后,网斑会依次连接它们。",
- "hexcasting.action.hexical:weave_mesh": "编织网斑",
- "hexical.page.weave_mesh.summary": "接受一个向量列表,需遵守前页指定的规则,并将网斑编织成所给形状,无需消耗$(media)媒质$()。",
- "hexcasting.action.hexical:read_mesh": "纠缠之纯化",
- "hexical.page.read_mesh.summary": "将网斑的外形返回为向量列表。可用于复制网斑。"
-}
From 2b8db3b6c87605b90dbdb0a4c58aada3a43070dc Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:19:33 +0800
Subject: [PATCH 66/78] =?UTF-8?q?Hexcassettes=20Hexcellular=20SpecialEfhex?=
=?UTF-8?q?s=20Hexodus=20Overevaluate=20Scryglass=20Hexpose=20transfer?=
=?UTF-8?q?=EF=BC=9A#5408?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../hexcassettes/lang/en_us.json | 39 ---
.../hexcassettes/lang/zh_cn.json | 39 ---
.../hexcellular/lang/en_us.json | 18 --
.../hexcellular/lang/zh_cn.json | 18 --
.../assets/1UNKNOWN/efhexs/lang/en_us.json | 47 ---
.../assets/1UNKNOWN/efhexs/lang/zh_cn.json | 47 ---
.../assets/1UNKNOWN/hexodus/lang/en_us.json | 31 --
.../assets/1UNKNOWN/hexodus/lang/zh_cn.json | 31 --
.../assets/1UNKNOWN/hexpose/lang/en_us.json | 296 ------------------
.../assets/1UNKNOWN/hexpose/lang/zh_cn.json | 295 -----------------
.../1UNKNOWN/overevaluate/lang/en_us.json | 78 -----
.../1UNKNOWN/overevaluate/lang/zh_cn.json | 78 -----
.../assets/1UNKNOWN/scryglass/lang/en_us.json | 24 --
.../assets/1UNKNOWN/scryglass/lang/zh_cn.json | 24 --
.../hexcassettes/lang/en_us.json | 42 ---
.../hexcassettes/lang/zh_cn.json | 42 ---
.../hexcellular/lang/en_us.json | 23 --
.../hexcellular/lang/zh_cn.json | 23 --
18 files changed, 1195 deletions(-)
delete mode 100644 projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
delete mode 100644 projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
delete mode 100644 projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
delete mode 100644 projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
diff --git a/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json b/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
deleted file mode 100644
index 1de9dc9a7f06..000000000000
--- a/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "advancements.hexcassettes.quinio.title": "QUINIO",
- "advancements.hexcassettes.quinio.description": "Make a Hex cast a Hex.",
- "advancements.hexcassettes.tape_worm.title": "Tape Worm?",
- "advancements.hexcassettes.tape_worm.description": "Consume a cassette tape.",
- "advancements.hexcassettes.full_arsenal.title": "Full Album",
- "advancements.hexcassettes.full_arsenal.description": "Acquire a full arsenal of cassettes.",
-
- "subtitles.hexcassettes.cassette_eject": "Cassette ejects",
- "subtitles.hexcassettes.cassette_fail": "Cassette clicks",
- "subtitles.hexcassettes.cassette_insert": "Cassette inserted",
- "subtitles.hexcassettes.cassette_loop": "Cassette whirrs",
-
- "item.hexcassettes.cassette": "Cassette",
-
- "hexcasting.mishap.hexcassettes:too_many_cassettes": "Attempted to schedule more Hexes than owned cassettes.",
-
- "hexcassettes.page.async.title": "Asynchronous Hexes",
- "hexcassettes.page.async.0": "As part of their nature, _Hexes evaluate in their entirety instantly. To delay _Hexes, Nature has devised a quite the whimsical solution: a cassette tape that must be crafted and then \"consumed\". Each _Hex I request to delay takes up one cassette \"slot\" until it fires. These cassettes slots can be viewed when chatting or casting with a staff and I can simply click them to abort the _Hex.",
- "hexcassettes.page.async.craft": "After crafting it by plating a music disc with a hefty amount of charged amethyst to facilitate the assimilation, I can $(o)consume$() it to add it to my mind's collection. I can only have six cassettes at a time and any more eaten will simply be wasted.",
- "hexcasting.spell.hexcassettes:enqueue": "Enqueue",
- "hexcassettes.page.enqueue.summary": "Enqueues a _Hex to cast after that many twentieths of a second. It takes an iota to use as the label for the cassette.",
- "hexcassettes.page.async.1": "The label iota is used to distinguish cassettes from each other and only the first 32 characters are kept. Enqueuing two _Hexes with the same label overwrites the older one. If I attempt to enqueue more _Hexes than I have cassettes, I incur the Parallel Processing mishap which kills all my currently active cassettes.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
- "hexcassettes.page.async.2": "Once a _Hex has been enqueued, I can open my chat screen to see all the cassettes I have eaten. Queued _Hexes are represented as inserted cassettes with their label rendered to the side, and by pressing an cassette, I can cancel the corresponding _Hex.$(br2)Dying also forcibly kills all of my cassettes so I can rest easy that I will not trap myself in an endless death cycle.",
- "hexcassettes.page.async.3": "If a _Hex casts a near-identical copy of itself, a phenomenon emerges that ancient _Hexcasters call a daemon, which allow for passive _Hexcasting. Study into this branch of _Hexcasting seems limited and I shall be careful if I want to delve in: this type of casting uses exclusively the media from my inventory and if left unchecked, rapid automated casting can easily drain all my media and with nothing else to consume, my life.",
- "hexcasting.spell.hexcassettes:dequeue": "Dequeue",
- "hexcassettes.page.dequeue.summary": "I can also automate killing cassettes with this pattern. It takes an iota and dequeues the cassette with that label if it exists.",
- "hexcasting.spell.hexcassettes:killall": "Disqueue",
- "hexcassettes.page.killall.summary": "Terminates all cassettes, similar to the effects of the Parallel Processing mishap.",
- "hexcasting.spell.hexcassettes:specs": "Threading Reflection",
- "hexcassettes.page.specs.summary": "Pushes the total number of cassettes slots that I currently have.",
- "hexcasting.spell.hexcassettes:free": "Threading Reflection II",
- "hexcassettes.page.free.summary": "Pushes the number of non-busy cassette slots that I currently have.",
- "hexcasting.spell.hexcassettes:inspect": "Program Purification",
- "hexcassettes.page.inspect.summary": "Pushes null if I do not have an active cassette with that label, or the cassette's _Hex if I do. I hear rumors of this being used for iota storage and passing information between _Hexes.",
- "hexcasting.spell.hexcassettes:foretell": "Program Purification II",
- "hexcassettes.page.foretell.summary": "Pushes null if I do not have an active cassette with that label, or how many twentieths of a second until that cassette fires if I do.",
- "hexcassettes.page.async.4": "I shall also note that rapidly changing cassette names (for example a cassette that enqueues itself with a different name) may be difficult to terminate. I can always resort to $(l:hexcassettes:async#hexcassettes:killall)$(action)Disqueue$() in such cases."
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
deleted file mode 100644
index bacc31a260be..000000000000
--- a/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "advancements.hexcassettes.quinio.title": "QUINIO",
- "advancements.hexcassettes.quinio.description": "让咒术施放咒术",
- "advancements.hexcassettes.tape_worm.title": "磁带长得像虫子?",
- "advancements.hexcassettes.tape_worm.description": "吃下一盒磁带。",
- "advancements.hexcassettes.full_arsenal.title": "完整专辑",
- "advancements.hexcassettes.full_arsenal.description": "填满磁带库。",
-
- "subtitles.hexcassettes.cassette_eject": "磁带:弹出",
- "subtitles.hexcassettes.cassette_fail": "磁带:咔哒",
- "subtitles.hexcassettes.cassette_insert": "磁带:插入",
- "subtitles.hexcassettes.cassette_loop": "磁带:嗡嗡作响",
-
- "item.hexcassettes.cassette": "磁带",
-
- "hexcasting.mishap.hexcassettes:too_many_cassettes": "试图调度的咒术总数超出磁带的数量上限。",
-
- "hexcassettes.page.async.title": "异步咒术",
- "hexcassettes.page.async.0": "$(hex)咒术$()会瞬时完全施放,这是它们的本性。而为延迟$(hex)咒术$(),自然设计了一套有些奇怪的方案:一盒磁带,需要合成后“食用”的磁带。让一个$(hex)咒术$()延迟执行时,其会占用一个磁带“槽”,直至执行后再释放。可以在聊天栏中或用法杖施法时查看这些槽位,点击它们即可终止$(hex)咒术$()。",
- "hexcassettes.page.async.craft": "为促使音乐唱片与媒质结合,我为其镀上了相当多的充能紫水晶,最终合成了磁带;$(o)食用$()即可收作己用。我最多只能同时持有六盒磁带,在此情况下再食用只会浪费。",
- "hexcasting.spell.hexcassettes:enqueue": "入队列",
- "hexcassettes.page.enqueue.summary": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。还需一个 iota 作为磁带的标签。",
- "hexcassettes.page.async.1": "磁带间使用标签区分,且标签仅保留前 32 个字符。若令两个$(hex)咒术$()按照同一标签入队列,则新的会覆盖旧的。若我试图让入队$(hex)咒术$()的数量超出磁带的数量,那么就会招致“并行处理”事故,导致当前所有磁带终止。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
- "hexcassettes.page.async.2": "所有入过队列的$(hex)咒术$()可在聊天栏处查看。队列中的$(hex)咒术$()表现为插入的磁带,其标签会出现在磁带侧面;按压磁带即可取消对应$(hex)咒术$()。$(br2)死亡时,所有磁带都会强制被终止;如此就能避免陷入无尽的死亡循环了。",
- "hexcassettes.page.async.3": "如果一个$(hex)咒术$()施放了与其自身近乎相同的$(hex)咒术$(),便能达成常态$(hex)施法$()。古代的$(hex)咒术师$()称这种现象为“守护进程”。$(hex)咒法学$()的此分支似乎尚未得到深入研究,亲自深入时务必当心:此类施法方式只会使用物品栏中的媒质;若不加监管,快速的自动施法会轻松耗尽媒质储备,当什么都不剩的时候,抽取的就是生命力了。",
- "hexcasting.spell.hexcassettes:dequeue": "出队列",
- "hexcassettes.page.dequeue.summary": "还可用此图案自动终止磁带。接受一个 iota,若存在标签为所给 iota 的磁带,则令其出队列。",
- "hexcasting.spell.hexcassettes:killall": "终止队列",
- "hexcassettes.page.killall.summary": "终止所有磁带,效果与“并行处理”事故类似。",
- "hexcasting.spell.hexcassettes:specs": "线程之精思",
- "hexcassettes.page.specs.summary": "返回我目前的磁带槽总数。",
- "hexcasting.spell.hexcassettes:free": "线程之精思,第二型",
- "hexcassettes.page.free.summary": "返回我目前的空闲磁带槽总数。",
- "hexcasting.spell.hexcassettes:inspect": "程序之纯化",
- "hexcassettes.page.inspect.summary": "若所给标签无对应活动中磁带,返回 Null;若有,返回磁带的$(hex)咒术$()。我听传言称,这个图案能用来存储 iota,也可用来在$(hex)咒术$()间传递信息。",
- "hexcasting.spell.hexcassettes:foretell": "程序之纯化,第二型",
- "hexcassettes.page.foretell.summary": "若所给标签无对应活动中磁带,返回 Null;若有,返回其还需多少个 1/20 秒才启动。",
- "hexcassettes.page.async.4": "名称快速切换的磁带会很难终止;比如,会使用新标签将自身入队列的磁带。此类情况需格外注意,但无论如何都有$(l:hexcassettes:async#hexcassettes:killall)$(action)终止队列$()作为兜底。"
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/en_us.json b/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
deleted file mode 100644
index d307c782b527..000000000000
--- a/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "hexcasting.spell.book.hexcellular:create_property": "Schrödinger's Refl.",
- "hexcasting.spell.book.hexcellular:observe_property": "Observation Purif.",
- "hexcasting.spell.book.hexcellular:set_property": "Schrödinger's Gambit",
-
- "hexcasting.mishap.invalid_value.class.property": "a property iota",
-
- "hexcellular.page.properties.title": "Property Iota",
- "hexcellular.page.properties.0": "Using Hexcasting, I can etch information into the laws of the universe themselves. These artificial bits of information are fittingly called properties and they can be accessed from anywhere with a property iota. Two hexcasters with copies of the same property can set the property's iota and read it to instantly share the iota with each other.",
- "hexcellular.page.properties.1": "I can also use it to communicate $(o)state$() within and between my Hexcasting appliances. For instance, a $(l:items/hexcasting)casting device$() that uses a property that it increments in order to keep track of how many times it has been used and do something different each time.$(br2)$(o)Spooky action from a distance...$()",
- "hexcasting.spell.hexcellular:create_property": "Schrödinger's Reflection",
- "hexcellular.page.create_property.summary": "Pushes a reference to a random property. Costs one charged amethyst to burn this property into the universe.",
- "hexcellular.page.properties.2": "When creating a property, the spell pushes a property iota with a randomly generated name. This name is the only reference to the created property. I should immediately store these property iota for safe-keeping because there is no way to recover one once all references to it have been lost and the only ways to interact with a property is through its iota.",
- "hexcasting.spell.hexcellular:observe_property": "Observation Purification",
- "hexcellular.page.observe_property.summary": "Observes the current value of the property iota. Free to use.",
- "hexcasting.spell.hexcellular:set_property": "Schrödinger's Gambit",
- "hexcellular.page.set_property.summary": "Sets the property iota. Costs about a tenth of a dust. All future observations of the property iota return the new value."
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
deleted file mode 100644
index 4261cbad38eb..000000000000
--- a/projects/1.19/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "hexcasting.spell.book.hexcellular:create_property": "薛定谔之精思",
- "hexcasting.spell.book.hexcellular:observe_property": "观测之纯化",
- "hexcasting.spell.book.hexcellular:set_property": "薛定谔之策略",
-
- "hexcasting.mishap.invalid_value.class.property": "一个质性iota",
-
- "hexcellular.page.properties.title": "质性 Iota",
- "hexcellular.page.properties.0": "借助咒法学的力量,即可向宇宙的法则中直接刻入信息。这种信息粒有个相当恰当的名字——“质性”/“property”,可以在世界各处通过质性 iota 访问。持有同一质性的副本的两位咒术师在对质性写入后立即读取,即能共享写入的 iota。",
- "hexcellular.page.properties.1": "还可用其在咒法学设备间共享$(o)状态$()。比如说,$(l:items/hexcasting)施法设备$()使用的质性可以不断递增,以此记录设备的使用次数,以便在不同次数时做出不同操作。$(br2)$(o)鬼魅般的超距作用……$()",
- "hexcasting.spell.hexcellular:create_property": "薛定谔之精思",
- "hexcellular.page.create_property.summary": "压入一个代表随机质性的 iota。向宇宙烧录质性需要消耗 1 个充能紫水晶。",
- "hexcellular.page.properties.2": "创建质性时会随机生成一个名称,此名称是该质性的唯一引用。为保险起见,创建后应当立刻存下一份副本;否则所有代表此质性的 iota 丢失,质性即无法找回,而此该质性的交互只能经由该 iota 进行。",
- "hexcasting.spell.hexcellular:observe_property": "观测之纯化",
- "hexcellular.page.observe_property.summary": "观测质性 iota 当前的值。无需消耗媒质。",
- "hexcasting.spell.hexcellular:set_property": "薛定谔之策略",
- "hexcellular.page.set_property.summary": "设置质性 iota 的值。消耗大约 1/10 个紫水晶粉。此后所有对其的观测都会返回新设置的值。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
deleted file mode 100644
index 56d1d9f2b4c4..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "hexcasting.mishap.invalid_value.entity_list": "a list of entities",
- "hexcasting.mishap.invalid_value.particle_id": "an identifier of a particle type",
- "hexcasting.mishap.invalid_value.sound_id": "an identifier of a sound type",
- "hexcasting.mishap.invalid_value.simple_particle_id": "an identifier of a simple particle type",
-
- "efhexs.microphone.active": "Recording particles and sound",
- "efhexs.microphone.inactive": "Particles and sounds saved",
-
- "efhexs.page.microphone.title": "Microphone",
- "item.efhexs.microphone": "Microphone",
- "efhexs.page.microphone.0": "The $(item)Microphone$() is an all-in-one tool for sounds and particles! I simply turn it on near a source of sounds and particles, and when I turn it off, the particles and sounds are streamed for my _Hexes to analyze and use.",
- "efhexs.page.microphone.1": "I need to get up close and personally experience particles or sound to utilize it in my _Hexes.$(br2)$(o)Check, check, is this thing on?$()",
-
- "efhexs.page.targetted.title": "Haunting",
- "efhexs.page.targetted.0": "I have discovered various spells for creating $(l:patterns/spells/particles)particles$() and $(l:patterns/spells/sounds)sounds$() but initially, these are plainly visible to everyone. What if instead, I wanted to only create effects for myself or haunt a specific player? That's where this pattern comes in. For the remainder of the _Hex, I can choose only certain players to be made privy.",
- "hexcasting.action.efhexs:set_target": "Haunt",
- "efhexs.page.set_target.summary": "Sets a list of players to be exclusively influenced by my special effects. If $(l:casting/influences)$(thing)Null$(), all can see my effects again.",
-
- "efhexs.page.particles.title": "Particles",
- "efhexs.page.particles.0": "Somehow, my $(l:items/microphone)$(item)Microphone$() is able to record the particles in the air! I can query and replay them to add a bit of flair to my _Hexes for essentially free.$(br2)$(o)All those moments will be lost in time, like tears in rain.$()",
- "hexcasting.action.efhexs:get_particles": "Particulate Reflection",
- "efhexs.page.get_particles.summary": "Pushes the last sixteen unique particles picked up by my $(l:items/microphone)$(item)Microphone$().",
- "hexcasting.action.efhexs:play_particle": "Conjure Particle",
- "efhexs.page.play_particle.summary": "Conjures a particular particle with a specified position and velocity (blocks per twentieth of a second). Costs about 1/32th of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "efhexs.page.play_particle.description": "This spell only works for \"simple\" particles, which are the majority. The remaining are too complicated to be boiled down into just a position and velocity but fortunately, I have documented various patterns for these more complicated effects.$(br2)They are all priced like the general spell and take a position and a velocity (compressed as \"...\") along with extra parameters.",
- "hexcasting.action.efhexs:play_dust_particle": "Conjure Dust",
- "efhexs.page.play_dust_particle.summary": "Conjures a small mote of dust of a given color. The number relates vaguely to scale and lifespan.",
- "hexcasting.action.efhexs:play_dust_transition_particle": "Conjure Sparkly Dust",
- "efhexs.page.play_dust_transition_particle.summary": "Conjures a gradient-like mote of dust, which smoothly transitions between the two colors given over the given number of seconds.",
- "hexcasting.action.efhexs:play_block_particle": "Conjure Debris",
- "efhexs.page.play_block_particle.summary": "Conjures a visual bit of debris, similar to that caused by breaking a block. Takes in a block identifier.",
- "hexcasting.action.efhexs:play_falling_dust_particle": "Conjure Sediment",
- "efhexs.page.play_falling_dust_particle.summary": "Conjures particles similar to that caused by suspended gravity-affected blocks. Takes in a block identifier.",
- "hexcasting.action.efhexs:play_item_particle": "Conjure Fragments",
- "efhexs.page.play_item_particle.summary": "Conjures a visual bit of fragments, similar to that caused by a tool breaking after wearing. Takes in an item iota.",
- "hexcasting.action.efhexs:play_hex_particle": "Conjure Media",
- "efhexs.page.play_hex_particle.summary": "Conjures a blob of visible _media, not unlike the waste product of my _Hexes. Takes in a color.",
-
- "efhexs.page.sounds.title": "Sounds",
- "efhexs.page.sounds.0": "Using the $(l:items/microphone)$(item)Microphone$(), I can query the sounds that I have been close to. After that, I am able to replay them to add fun sound effects to my _Hexes.$(br2)$(o)If a tree falls in a forest and no one is around to hear it, does it make a sound?$()",
- "hexcasting.action.efhexs:get_sounds": "Audio Reflection",
- "efhexs.page.get_sounds.summary": "Pushes the last sixteen unique sounds picked up by my $(l:items/microphone)$(item)Microphone$().",
- "hexcasting.action.efhexs:play_sound": "Play Sound",
- "efhexs.page.play_sound.summary": "Plays a sound at a particular location, volume, and pitch. Costs about a sixteenth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "efhexs.page.play_sound.description": "Volume and pitch are all numbers that range between 0 and 2. Volume controls both loudness and distance that sound can be heard. Meanwhile, pitch controls the \"speed\" the sound is played.$(br2)The sound is entirely disembodied to any body or event. It seems that the spell essentially uses tiny bits of _media manipulation to vibrate the air precisely into a given sound."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
deleted file mode 100644
index 16baf932d85f..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "hexcasting.mishap.invalid_value.entity_list": "一个实体列表",
- "hexcasting.mishap.invalid_value.particle_id": "一个粒子类型标识",
- "hexcasting.mishap.invalid_value.sound_id": "一个声音类型标识",
- "hexcasting.mishap.invalid_value.simple_particle_id": "一个简单粒子类型的标识",
-
- "efhexs.microphone.active": "正在录制粒子和声音",
- "efhexs.microphone.inactive": "粒子和声音已保存",
-
- "efhexs.page.microphone.title": "麦克风",
- "item.efhexs.microphone": "麦克风",
- "efhexs.page.microphone.0": "$(item)麦克风$()是能捕获声音和粒子事件的多用途工具!在声源和粒子源旁打开;当关闭时,捕获到的粒子和声音就会进入$(hex)咒术$()以供分析和使用。",
- "efhexs.page.microphone.1": "需要本人靠近并亲身听见声音或看见粒子才能捕获供$(hex)咒术$()所用。$(br2)$(o)喂、喂喂,麦开了吗?$()",
-
- "efhexs.page.targetted.title": "萦音",
- "efhexs.page.targetted.0": "我发现了制造$(l:patterns/spells/particles)粒子$()和$(l:patterns/spells/sounds)声音$()的法术,但刚开始时它们造出的东西所有人都能看见听见。要是我只给自己制造效果,或是只让效果呈现给某个玩家,会怎么样呢?这就是这个图案的用武之地了。这条法术之后,便只有我指定的玩家能看见我制造的粒子和听见我制造的声音。",
- "hexcasting.action.efhexs:set_target": "萦音",
- "efhexs.page.set_target.summary": "只让玩家列表内的玩家受我制造的特殊效果影响。若传入 $(l:casting/influences)$(thing)Null$(),可让所有人都能感受到我的效果。",
-
- "efhexs.page.particles.title": "粒子",
- "efhexs.page.particles.0": "不知怎的,我的$(l:items/microphone)$(item)麦克风$()还能记录空气中的粒子!记录后就能在$(hex)咒术$()中使用,给它们加点风味,而且还几乎无需消耗。$(br2)$(o)所有这些时刻终会在时光中消失,就像泪水消失在雨中。$()",
- "hexcasting.action.efhexs:get_particles": "粒子之精思",
- "efhexs.page.get_particles.summary": "返回$(l:items/microphone)$(item)麦克风$()捕获的最近 16 种新粒子。",
- "hexcasting.action.efhexs:play_particle": "构筑粒子",
- "efhexs.page.play_particle.summary": "在给定位置以给定速度(格每 1/20 秒)构筑特定粒子。消耗大约 1/32 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "efhexs.page.play_particle.description": "此法术只对“简单”的粒子有效。大多数粒子都是简单粒子,剩余的那些太过复杂,无法仅以位置和速度描述。不过好在我记录了这些复杂效果专用的若干图案。$(br2)它们的消耗与通用法术类似,且都接受一个位置和一个速度(缩写为“...”),也同时需提供额外参数。",
- "hexcasting.action.efhexs:play_dust_particle": "构筑尘埃",
- "efhexs.page.play_dust_particle.summary": "构筑给定颜色的尘埃。参数中的数大致对应量级和持续时间。",
- "hexcasting.action.efhexs:play_dust_transition_particle": "构筑闪亮尘埃",
- "efhexs.page.play_dust_transition_particle.summary": "构筑渐变色的尘埃,它会在给定秒数内在两种颜色间平滑过渡。",
- "hexcasting.action.efhexs:play_block_particle": "构筑残屑",
- "efhexs.page.play_block_particle.summary": "构筑可视的残屑,与破坏方块时产生的粒子类似。需要接受方块标识。",
- "hexcasting.action.efhexs:play_falling_dust_particle": "构筑积尘",
- "efhexs.page.play_falling_dust_particle.summary": "构筑积尘粒子,这些粒子与受重力影响但悬浮的方块所产生的类似。需要接受方块标识。",
- "hexcasting.action.efhexs:play_item_particle": "构筑碎屑",
- "efhexs.page.play_item_particle.summary": "构筑可视的碎屑,与工具损毁时产生的粒子类似。需要一个物品 iota。",
- "hexcasting.action.efhexs:play_hex_particle": "构筑媒质",
- "efhexs.page.play_hex_particle.summary": "构筑一团可视的$(media)媒质$(),和我的$(hex)咒术$()出的纰漏类似。需要一个颜色。",
-
- "efhexs.page.sounds.title": "声音",
- "efhexs.page.sounds.0": "$(l:items/microphone)$(item)麦克风$()可以探测声源离我较近的声音。此后可重放它们,给$(hex)咒术$()加些好玩的音效。$(br2)$(o)如果森林里有棵树倒了,但附近没人听见,那它还算是发出了声音吗?$()",
- "hexcasting.action.efhexs:get_sounds": "音频之精思",
- "efhexs.page.get_sounds.summary": "返回$(l:items/microphone)$(item)麦克风$()最后获取到的 16 种新声音。",
- "hexcasting.action.efhexs:play_sound": "播放声音",
- "efhexs.page.play_sound.summary": "在给定位置以给定音量和音高播放声音。消耗大约 1/16 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "efhexs.page.play_sound.description": "音量和音高都是介于 0 和 2 之间的数。音量控制响度和声音的传播距离。音高则控制音频的播放“速度”。$(br2)如此发出的声音并不与实体声源或声音事件相关。法术似乎只是操纵$(media)媒质$()来让空气振动,从而发出完全一致的声音。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
deleted file mode 100644
index 7df32df5597e..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "hexcasting.mishap.invalid_value.axis_vector": "an axis vector",
-
- "item.hexodus.ballast": "Ballast",
- "hexodus.ballast.tooltip": "Pointing towards %s with a strength scalar of %s",
-
- "hexodus.page.ballast.title": "Ballasts",
- "hexodus.page.ballast.0": "$(item)Ballasts$() are simple in concept: an extremely heavy mass encased in $(l:items/amethyst)$(item)Charged Amethyst$() to allow for its manipulation via _Hexcasting.$(br2)Once created, I can command a $(item)Ballast$()'s $(thing)Gravity$() with any direction or intensity I please and with it in my inventory, it simply drags me along with it.",
- "hexodus.page.ballast.1": "The mass of a $(item)Ballast$() is so great that so long as it's active, its gravitational effects overpower that of nearly all $(thing)Gravity$()-generating or affecting phenomena such as the $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() spell.$(br2)Fortunately, I can turn it on and off should I lose control of my _Hexes and they will disable automatically upon leaving my body. I will not lose a $(item)Ballast$() to the sky, nor will I be dragged upwards by a maliciously planted $(item)Ballast$().",
- "hexodus.page.ballast.2": "A $(item)Ballast$() seems to generate its own forces. $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() can only scale and redirect existing forces; a $(item)Ballast$() can restore order even regular forces do not apply.",
- "hexcasting.action.hexodus:alter_ballast": "Alter Ballast",
- "hexodus.page.alter_ballast.summary": "Commands a $(item)Ballast$() on my person to fall in a given direction with a given strength strength. Free.",
-
- "hexodus.page.gravity.title": "Gravitation",
- "hexodus.page.gravity.0": "While I can use a $(l:items/ballast)$(item)Ballast$() to alter $(thing)Gravity$()'s effects on my own body, I have also discovered a spell capable of adjusting $(thing)Gravity$()'s pull on $(o)any$() entity, albeit very shortly.$(br2)$(o)There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss$().",
- "hexcasting.action.hexodus:change_gravity": "Gravitate",
- "hexodus.page.change_gravity.summary": "Takes an entity, an axial vector for new gravity, and a strength scalar relative to standard pull. Specifics are detailed on the next page.",
- "hexodus.page.change_gravity.description": "The scalar can be any number 0 to 5 inclusive.$(br2)If the target is myself, this spell costs about one-fourth of an $(l:items/amethyst)$(item)Amethyst Dust$(). If the target is another player, costs about one $(l:items/amethyst)$(item)Amethyst Shard$(). Otherwises, costs about one $(l:items/amethyst)$(item)Amethyst Dust$().$(br2)Each cast of the spell only lasts for about two and a half seconds; for sustained gravitation, I will need some kind of automated _Hexcasting to periodically reapply the effects.",
- "hexcasting.action.hexodus:get_duration": "Grasp Purification",
- "hexodus.page.get_duration.summary": "Pushes the remaining twentieths of a second that $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() will affect an entity. Zero if the entity is not under the effects of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$().",
- "hexcasting.action.hexodus:get_direction": "Falling Purification",
- "hexodus.page.get_direction.summary": "Pushes the direction that $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() is attempting to drag an entity, or $(l:casting/influences)$(thing)Null$() if the entity is not under the effects of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$().",
- "hexcasting.action.hexodus:get_strength": "Impact Purification",
- "hexodus.page.get_strength.summary": "Pushes the scaling factor of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$()'s gravity compared to baseline, or $(l:casting/influences)$(thing)Null$() if the entity is not under the effects of $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$().",
- "hexodus.page.gravity.2": "I have discovered some theorywork about $(thing)Gravity$(). It appears every $(thing)Gravity$()-generating phenomenon has a numerical $(o)priority$(). The direction $(thing)Gravity$() pulls a given entity along is dictated by whichever force has most priority upon that entity.$(br2)The $(thing)Gravity$() created by $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$() is notably rather weak; other sources of $(thing)Gravity$() often overpower it. I can use this to anchor myself against hostile _Hexcasters.",
- "hexodus.page.gravity.3": "Gravitational strength is settled through a much more democratic process. Each source of $(thing)Gravity$() declares some scaling factor. For $(l:patterns/spells/gravity#hexodus:change_gravity)$(action)Gravitate$(), that is a number between and including 0 and 5.$(br2)When pulling, $(thing)Gravity$() multiplies all the provided scaling factors together to determine the force with which to pull.$(br2)On the next few pages are some patterns used to measure \"true\" gravity.",
- "hexcasting.action.hexodus:get_true_direction": "Falling Purification II",
- "hexodus.page.get_true_direction.summary": "Pushes the direction of $(thing)Gravity$() acting on an entity.",
- "hexcasting.action.hexodus:get_true_strength": "Impact Purification II",
- "hexodus.page.get_true_strength.summary": "Pushes strength of $(thing)Gravity$() acting on an entity compared to baseline."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
deleted file mode 100644
index 819880ba0ac2..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "hexcasting.mishap.invalid_value.axis_vector": "一个轴向向量",
-
- "item.hexodus.ballast": "压载",
- "hexodus.ballast.tooltip": "指向%s,力度标量为%s",
-
- "hexodus.page.ballast.title": "压载",
- "hexodus.page.ballast.0": "$(item)压载$()的概念很简单:一件质量极大的物品,包在$(l:items/amethyst)$(item)充能紫水晶$()中方便$(hex)咒法学$()操纵。$(br2)制造完成后,我可随意修改$(item)压载$()所提供的$(thing)重力$()方向与强度。把它放在物品栏中即会把我往给定的方向拖动。",
- "hexodus.page.ballast.1": "$(item)压载$()的质量极大,大到只要激活,它提供的$(thing)重力$()就能覆盖掉几乎所有其他事物产生的$(thing)重力$()和对$(thing)重力$()的影响效果,例如$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()法术。$(br2)好在,我可以随意开关它,以免我的$(hex)咒术$()失控;它也会在失去与我身体的接触时自动关闭。$(item)压载$()不会向上飘走一去不返,我也不会被其他人的$(item)压载$()阴到而往上飞离地面。",
- "hexodus.page.ballast.2": "$(item)压载$()似乎自身就能产生力。$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()只是修改已经存在的力的大小和方向,而就算其他力全部失常,$(item)压载$()也能恢复秩序。",
- "hexcasting.action.hexodus:alter_ballast": "修改压载",
- "hexodus.page.alter_ballast.summary": "命令我所持的$(item)压载$()向给定方向以给定力度坠落。无需消耗$(media)媒质$()。",
-
- "hexodus.page.gravity.title": "重力",
- "hexodus.page.gravity.0": "我可以使用$(l:items/ballast)$(item)压载$()来改变$(thing)重力$()对我的影响;同时我还发现了一个法术,可以用来调整$(thing)重力$()对$(o)任意$()实体的影响,虽然持续时间不长。$(br2)$(o)据说,飞行是有技巧的,或者更应该说,是有窍门的。这窍门就在于向地面扑去而错过地面。$()",
- "hexcasting.action.hexodus:change_gravity": "施重力",
- "hexodus.page.change_gravity.summary": "接受一个实体,一个代表新重力方向的轴向向量,以及相对于标准重力强度的倍数。细节见后页。",
- "hexodus.page.change_gravity.description": "倍数可从 0 到 5 任选,包括 0 和 5。$(br2)若目标是我自己,消耗大约 1/4 个$(l:items/amethyst)$(item)紫水晶粉$()。如果目标是其他玩家,消耗大约 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。其他情况下消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉$()。$(br2)每次施法的效果会持续大约 2.5 秒;为让这种重力长久存在,需要某种自动化$(hex)咒法学$()施法方式以不断重新赋予效果。",
- "hexcasting.action.hexodus:get_duration": "抓握之纯化",
- "hexodus.page.get_duration.summary": "返回$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()的效果在所给实体上还会持续多少个 1/20 秒。若实体未受$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()影响,则返回 0。",
- "hexcasting.action.hexodus:get_direction": "坠落之纯化",
- "hexodus.page.get_direction.summary": "返回$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()对实体的施力方向。若实体未受$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()影响,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexodus:get_strength": "冲击之纯化",
- "hexodus.page.get_strength.summary": "返回$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()的效果强度相对基线的倍数。若实体未受$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()影响,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexodus.page.gravity.2": "我发现了一些有关$(thing)重力$()的理论文献。似乎每个产生$(thing)重力$()的现象都有以数表示的$(o)优先级$()。$(thing)重力$()对某实体的施力方向只由优先级最高的效果决定。$(br2)$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()产生的$(thing)重力$()显著较弱,其他来源的$(thing)重力$()通常能盖过它。面对敌对的$(hex)咒法师$()时,我可以利用这一点来锚定自身。",
- "hexodus.page.gravity.3": "重力强度则更像是平等讨论决定的。$(thing)重力$()的各个来源都会声明其施力倍数。对$(l:patterns/spells/gravity#hexodus:change_gravity)$(action)施重力$()来说,是 0 到 5 之间的数,包括 0 和 5。$(br2)产生效果时,$(thing)重力$()会将所有倍数乘算,以此决定最终的施力强度。$(br2)后页会介绍用于测量“真正”的重力的若干图案。",
- "hexcasting.action.hexodus:get_true_direction": "坠落之纯化,第二型",
- "hexodus.page.get_true_direction.summary": "返回$(thing)重力$()对实体的实力方向。",
- "hexcasting.action.hexodus:get_true_strength": "冲击之纯化,第二型",
- "hexodus.page.get_true_strength.summary": "返回实体所受$(thing)重力$()的强度相对基线的倍数。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
deleted file mode 100644
index 6354d787fe42..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/en_us.json
+++ /dev/null
@@ -1,296 +0,0 @@
-{
- "hexcasting.mishap.invalid_value.class.identifier": "an identifier",
- "hexcasting.mishap.invalid_value.class.item_stack": "an item stack",
- "hexcasting.mishap.invalid_value.class.text": "a text iota",
- "hexcasting.mishap.invalid_value.cat": "a cat",
- "hexcasting.mishap.invalid_value.creeper": "a creeper",
- "hexcasting.mishap.invalid_value.painting": "a painting",
- "hexcasting.mishap.invalid_value.item_frame": "an item frame",
- "hexcasting.mishap.invalid_value.block_id": "an identifier of a block type",
- "hexcasting.mishap.invalid_value.entity_id": "an identifier of an entity type",
- "hexcasting.mishap.invalid_value.enchantment_id": "an identifier of an enchantment type",
- "hexcasting.mishap.invalid_value.food_id": "an identifier of a food item type",
- "hexcasting.mishap.invalid_value.identifiable": "an identifiable target",
- "hexcasting.mishap.invalid_value.item_id": "an identifier of an item type",
- "hexcasting.mishap.invalid_value.status_effect_id": "an identifier of a status effect type",
- "hexcasting.mishap.invalid_value.entity_or_vector": "an entity or a vector",
- "hexcasting.mishap.invalid_value.lenient_living": "a living entity or an armor stand",
- "hexcasting.mishap.invalid_value.media_holding": "a media holding item or entity",
- "hexcasting.mishap.invalid_value.potion_holding": "a potion holding item or entity",
- "hexcasting.mishap.invalid_value.tamable": "a tameable entity",
-
- "hexpose.item_stack.format": " | %s (%d)",
- "hexpose.item_stack.null": "Null Item",
-
- "hexcasting.action.book.hexpose:get_effect_amplifier": "Concentration Dstl.",
- "hexcasting.action.book.hexpose:get_effects_item": "Prescription Purif.",
- "hexcasting.action.book.hexpose:get_enchantments": "Thaumaturgist's Purif.",
- "hexcasting.action.book.hexpose:breedable": "Reproduction Purif.",
- "hexcasting.action.book.hexpose:theodolite": "Theodolite Purif.",
- "hexcasting.action.book.hexpose:get_air": "Suffocation Purif.",
- "hexcasting.action.book.hexpose:is_wet": "Enderman's Purif.",
- "hexcasting.action.book.hexpose:identify": "Detective's Purif.",
- "hexcasting.action.book.hexpose:damage_stack": "Deterioration Purif.",
- "hexcasting.action.book.hexpose:book_source": "Bibliography Purif.",
- "hexcasting.action.book.hexpose:classify": "Modicum Purif.",
- "hexcasting.action.book.hexpose:villager_profession": "Professional Purif.",
- "hexcasting.action.book.hexpose:get_biome": "Geographical Purif.",
- "hexcasting.action.book.hexpose:get_weather": "Meterologist's Refl.",
-
- "hexpose.page.enlightened_patterns.title": "Enlightened Patterns",
- "hexpose.page.enlightened_patterns.0": "After $(thing)Enlightenment$(), I find myself acutely aware of certain patterns that aid with my newfound abilities. These patterns don't seem to require anything from me that I didn't have before; perhaps I was always able to cast them but was simply unaware of their existence. An unenlightened player will be able to use $(l:items/hexcasting)$(item)casting devices$() with these patterns.",
- "hexcasting.action.hexpose:am_enlightened": "Epiphany Purification",
- "hexpose.page.am_enlightened.summary": "Pushes whether the given player has achieved $(thing)Enlightenment$().",
- "hexcasting.action.hexpose:is_brainswept": "Sentience Purification",
- "hexpose.page.is_brainswept.summary": "Pushes whether an entity has been \"magically relieved of its mind\". I feel this is strongly related to $(l:patterns/great_spells/brainsweep)$(action)Flay Mind$() somehow...",
-
- "hexpose.page.text_iotas.title": "Text Iota",
- "hexpose.page.text_iotas.0": "$(thing)Text iotas$() represent textual information. Not only does it encode all the information required for reading, it also contains styles such as $(#ff0000)coloring$() and $(o)italics$().$(br2)They can also encode an incredible amount of information in one iota. With how dense they are, they can quickly collapse into meaninglessness.",
- "hexcasting.action.hexpose:create_text": "Reading Purification",
- "hexpose.page.create_text.summary": "Takes an iota and returns a $(l:patterns/text_iotas)$(thing)text iota$() representing it. If taking a $(l:patterns/text_iotas)$(thing)text iota$(), strips all the styles of it.",
- "hexpose.page.add_text.summary": "Pushes a $(l:patterns/text_iotas)$(thing)text iota$() of the first followed immediately by the second.",
- "hexpose.page.abs_text.summary": "Pushes the length of the $(l:patterns/text_iotas)$(thing)text iota$().",
- "hexcasting.action.hexpose:split_text": "Glyph Purification",
- "hexpose.page.split_text.summary": "Splits a $(l:patterns/text_iotas)$(thing)text iota$() into a list of individual glyphs.",
- "hexcasting.action.hexpose:combine_text": "Collage Purification",
- "hexpose.page.combine_text.summary": "Transforms all the elements of a list into text (or keeps them if they were) and pastes it all together.",
- "hexpose.page.index_text.summary": "Pushes the nth glyph in the text.",
- "hexpose.page.slice_text.summary": "Pushes the specified slice of the text.",
- "hexpose.page.replace_text.summary": "Replaces the glyph at the nth position in the text with another segment of text. Replacement can be longer than one glyph.",
- "hexpose.page.remove_text.summary": "Removes the nth glyph in the text.",
- "hexpose.page.rev_text.summary": "Reverses the text.",
- "hexpose.page.unique_text.summary": "Keeps only the first instance of any glyph in the text. Styling is enough to distinguish a glyph.",
- "hexpose.page.text_iotas.1": "The following are a set of patterns involving the styling of the text. Despite resembling distillations, they are actually $(o)gambits$() due to their unique argument structure.$(br2)If the regular arguments are passed in, they will style the text according to their speciality (example of modification included).$(br2)If passed in just a text however, they will return the current value of the setting that they target.",
- "hexcasting.action.hexpose:text_color": "Lumière Gambit",
- "hexpose.page.text_color.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and a color encoded as a vector whose components range from 0 to 1, and produces a $(l:patterns/text_iotas)$(thing)text iota$() of that $(#ff0000)color$().",
- "hexcasting.action.hexpose:text_bold": "Gothic Gambit",
- "hexpose.page.text_bold.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it is $(l)bold$().",
- "hexcasting.action.hexpose:text_italics": "Manutius' Gambit",
- "hexpose.page.text_italics.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it is in $(o)italics$().",
- "hexcasting.action.hexpose:text_underline": "Notetaker's Gambit",
- "hexpose.page.text_underline.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it is $(n)underlined$().",
- "hexcasting.action.hexpose:text_strikethrough": "Editor's Gambit",
- "hexpose.page.text_strikethrough.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it has been $(m)struck through$().",
- "hexcasting.action.hexpose:text_obfuscated": "Censor's Gambit",
- "hexpose.page.text_obfuscated.summary": "Takes a $(l:patterns/text_iotas)$(thing)text iota$() and sets whether it is obfusca$(k)ted$().",
-
- "hexpose.page.special_raycasts.title": "Special Raycasts",
- "hexcasting.action.hexpose:fluid_raycast": "Dousing Distillation",
- "hexpose.page.fluid_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but targets only liquids, piercing through all other blocks.",
- "hexcasting.action.hexpose:fluid_surface_raycast": "Lilypad Distillation",
- "hexpose.page.fluid_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but targets only liquids, piercing through all other blocks.",
- "hexcasting.action.hexpose:piercing_raycast": "Railgun Exaltation",
- "hexpose.page.piercing_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
- "hexcasting.action.hexpose:piercing_surface_raycast": "Laser Exaltation",
- "hexpose.page.piercing_surface_raycast.summary": "Works similar to $(l:patterns/basics#hexcasting:raycast/axis)$(action)Architect's Distillation$() but accepts an additional identifier. It will pierce all blocks until it hits the block specified by the identifier.",
-
- "hexpose.category.scrying": "Scrying",
- "hexpose.category.scrying.desc": "I have stumbled upon a branch of manipulating _media entirely focused around information about the world.$(br2)While likely not useful for the majority of _Hexes, these will be convenient to have, should I ever need them.",
-
- "hexpose.page.blocks.title": "Blocks",
- "hexcasting.action.hexpose:block_hardness": "Miner's Purification",
- "hexpose.page.block_hardness.summary": "Pushes how difficult blocks of this type are to mine.",
- "hexcasting.action.hexpose:block_blast_resistance": "Demoman's Purification",
- "hexpose.page.block_blast_resistance.summary": "Pushes how resistant blocks of this type are to explosions.",
- "hexcasting.action.hexpose:blockstate_rotation": "Orientation Purification",
- "hexpose.page.blockstate_rotation.summary": "Pushes the vector of the block's facing direction, or $(l:casting/influences)$(thing)Null$() if blocks of its type do not have an orientation.",
- "hexcasting.action.hexpose:blockstate_crop": "Farmer's Purification",
- "hexpose.page.blockstate_crop.summary": "Pushes a number 0 to 1 corresponding to the growth progress of that block. Works for crops, $(item)Beehives$(), $(item)Composters$(), $(item)Cauldrons$(), and strangely $(item)Cakes$() too.",
- "hexpose.page.get_blockstates.description":
- "Every block has a list of $(o)facets$(): simple aspects that distinguish them from other blocks of the same type. For example, orientation, how far along a crop is to growing, and whether a door is open or shut are all facets.$(br2)Nature provides two patterns that allow _Hexcasting to read and analyze facets of any blocks within ambit.",
- "hexcasting.action.hexpose:get_blockstates": "Facet Purification",
- "hexpose.page.get_blockstates.summary": "Pushes a list of all facets of that block.",
- "hexcasting.action.hexpose:query_blockstate": "Facet Distillation",
- "hexpose.page.query_blockstate.summary": "Takes a block and a facet and pushes that facet's value.",
- "hexpose.page.query_blockstate.description": "If the block does not have the given facet, the pattern pushes $(l:casting/influences)$(thing)Null$(). For the most part, it is quite intuitive: the pattern produces booleans, directional vectors, and integers, whichever matches the facet best.$(br2)For certain facets that deal with a state among a variety of them, it will produce a seemingly random yet consistent integer. If a facet is too alien, a senseless iota is produced.",
- "hexcasting.action.hexpose:block_map_color": "Cartographer's Purification",
- "hexpose.page.block_map_color.summary": "Pushes the color blocks of this type appear as on a map.",
-
- "hexpose.page.chat.title": "Chat",
- "hexcasting.action.hexpose:get_message": "News Reflection",
- "hexpose.page.get_message.summary": "Pushes a $(l:patterns/text_iotas)$(thing)text iota$() of the last person to use chat, a $(l:patterns/text_iotas)$(thing)text iota$() of the message, and a number of twenieths of a second since that message sent.",
- "hexcasting.action.hexpose:get_chat": "Newspaper Reflection",
- "hexpose.page.get_chat.summary": "Applies $(l:patterns/scrying/chat#hexpose:get_message)$(action)News Reflection$() to the last up to 32 messages in chat, wraps each in a list, and pushes a list of those lists.",
-
- "hexpose.page.entities.title": "Entities",
- "hexcasting.action.hexpose:entity_width": "Caliper's Purification",
- "hexpose.page.entity_width.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_height)$(action)Stadiometer's Purification$() but pushes the width of an entity rather than its height.",
- "hexcasting.action.hexpose:theodolite": "Theodolite's Purification",
- "hexpose.page.theodolite.summary": "Similar to $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade's Purification$() but pushes the vector that points upwards from their head rather than the entity's facing vector.",
- "hexcasting.action.hexpose:get_health": "Vitality Purification",
- "hexpose.page.get_health.summary": "Pushes how close an entity is to death. I can think of these in terms of half-hearts.",
- "hexcasting.action.hexpose:get_max_health": "Fitness Purification",
- "hexpose.page.get_max_health.summary": "Pushes how much health an entity can have at its prime. I can think of these in terms of half-hearts.",
- "hexcasting.action.hexpose:get_air": "Suffocation Purification",
- "hexpose.page.get_air.summary": "Pushes the number of seconds before an entity will start to suffocate. This applies to marine creatures out of water as well as land creatures in water.",
- "hexcasting.action.hexpose:get_max_air": "Lung Purification",
- "hexpose.page.get_max_air.summary": "Pushes the number of seconds a regular entity of that type can last outside their normal breathing environment before they start suffocating.",
- "hexcasting.action.hexpose:burning": "Inferno Purification",
- "hexpose.page.burning.summary": "Pushes the number of seconds the burning entity will continue burning if not put out. -1 if the entity is not burning currently.",
- "hexcasting.action.hexpose:is_wet": "Enderman's Purification",
- "hexpose.page.is_wet.summary": "Pushes whether the entity is touching rain, water, or in a bubble column.",
- "hexcasting.action.hexpose:is_baby": "Youth Purification",
- "hexpose.page.is_baby.summary": "Pushes whether a living creature is a baby. Also works on $(item)Armor Stands$() oddly.",
- "hexcasting.action.hexpose:breedable": "Reproduction Purification",
- "hexpose.page.breedable.summary": "Pushes whether an animal creature is in love and ready to mate, or $(l:casting/influences)$(thing)Null$() if that creature is not capable of that type of reproduction.",
- "hexcasting.action.hexpose:is_sleeping": "Sloth's Purification",
- "hexpose.page.is_sleeping.summary": "Pushes whether the $(item)Player$(), $(item)Cat$(), $(item)Fox$(), or other entity is sleeping.",
- "hexcasting.action.hexpose:is_sprinting": "Racer's Purification",
- "hexpose.page.is_sprinting.summary": "Pushes whether the $(item)Player$(), $(item)Cat$(), $(item)Fox$(), or other entity is sprinting. Swimming and leaving the ground after starting to sprint are still included.",
- "hexcasting.action.hexpose:entity_vehicle": "Vehicle Purification",
- "hexpose.page.entity_vehicle.summary": "Pushes the entity the given entity is riding or $(l:casting/influences)$(thing)Null$() if it is not riding in or on anything.",
- "hexcasting.action.hexpose:entity_passengers": "Jockey Purification",
- "hexpose.page.entity_passengers.summary": "Pushes a list of entities that are riding the given entity.",
- "hexcasting.action.hexpose:shooter": "Shooter Purification",
- "hexpose.page.shooter.summary": "Pushes the shooter of the given projectile entity or $(l:casting/influences)$(thing)Null$() if it has no shooter or isn't a projectile. It also pushes $(l:casting/influences)$(thing)Null$() if the shooter is outside my ambit.",
- "hexcasting.action.hexpose:pet_owner": "Adoration Purification",
- "hexpose.page.pet_owner.summary": "Pushes the player that has tamed this animal, or $(l:casting/influences)$(thing)Null$() if it is untamed or the player is out of ambit.",
- "hexcasting.action.hexpose:entity_name": "Name Purification",
- "hexpose.page.entity_name.summary": "Pushes a $(l:patterns/text_iotas)$(thing)text iota$() with the formatted name of the entity.",
- "hexcasting.action.hexpose:absorption_hearts": "Absorption Purification",
- "hexpose.page.absorption_hearts.summary": "Pushes the number of magical hearts this player has. I can think of these in terms of half-hearts.",
-
- "hexpose.page.environment.title": "Environment",
- "hexpose.page.environment.0": "These patterns are meta: they concern properties of the magical environment they are cast in. Mostly useful in avoiding $(l:casting/mishaps)$(thing)mishaps$().",
- "hexcasting.action.hexpose:env_ambit": "Ambit Purification",
- "hexpose.page.env_ambit.summary": "Pushes whether a location or entity is in ambit.",
- "hexcasting.action.hexpose:env_staff": "Staff Reflection",
- "hexpose.page.env_staff.summary": "Pushes whether a $(l:items/staff)$(item)Staff$() is being used to cast this pattern.",
- "hexcasting.action.hexpose:env_offhand": "Dexterity Reflection",
- "hexpose.page.env_offhand.summary": "Pushes whether the dominant hand of the caster is being used to cast this pattern. May return strange results for casters without hands.",
- "hexcasting.action.hexpose:env_packaged_hex": "Device Reflection",
- "hexpose.page.env_packaged_hex.summary": "Pushes whether any form of $(l:items/hexcasting)$(item)casting device$() is being used to cast this pattern.",
- "hexcasting.action.hexpose:env_circle": "Constructed Reflection",
- "hexpose.page.env_circle.summary": "Pushes whether some form of $(l:greatwork/spellcircles)$(thing)$(o)grand work$() is being used to cast this pattern.",
-
- "hexpose.page.food.title": "Food",
- "hexcasting.action.hexpose:get_player_hunger": "Hunger Purification",
- "hexpose.page.get_player_hunger.summary": "Pushes how full a $(item)Player$() is. I can think of this in terms of half-hunches.",
- "hexcasting.action.hexpose:get_player_saturation": "Stamina Purification",
- "hexpose.page.get_player_saturation.summary": "Pushes a $(item)Player$()'s saturation, which roughly correlates to how long the $(item)Player$() will remain full.",
- "hexcasting.action.hexpose:edible": "Edibility Purification",
- "hexpose.page.edible.summary": "Takes in an item identifier and pushes whether I can eat it.",
- "hexcasting.action.hexpose:get_hunger": "Calorie Purification",
- "hexpose.page.get_hunger.summary": "Takes in an item identifier and pushes the amount it will fill me.",
- "hexcasting.action.hexpose:get_saturation": "Satiation Purification",
- "hexpose.page.get_saturation.summary": "Takes in an item identifier and pushes the saturation value, which roughly affects how long it will fill me.",
- "hexcasting.action.hexpose:is_meat": "Flesh Purification",
- "hexpose.page.is_meat.summary": "Takes in an item identifier and pushes whether it's considered a meat. $(item)Wolves$() can eat meats.",
- "hexcasting.action.hexpose:is_snack": "Dessert Purification",
- "hexpose.page.is_snack.summary": "Takes in an item identifier and pushes whether it's a snack.",
-
- "hexpose.page.identifiers.title": "Identifiers",
- "hexpose.page.identifiers.0": "The identifier iota is Nature's solution to allowing _Hexes to specifically identify types. Every type of entity, block, status effect, enchantment, sound, and more has a unique identifier attached which a _Hex can retrieve and compare.",
- "hexcasting.action.hexpose:identify": "Detective's Purification",
- "hexpose.page.identify.summary": "Pushes the identifier of an entity or block at a vector.",
- "hexcasting.action.hexpose:classify": "Modicum Purification",
- "hexpose.page.classify.summary": "Pushes the identifier of an iota's type. Can be used to determine whether two iota are the same type.",
-
- "hexpose.page.item.title": "Items",
- "hexpose.page.item.0": "An item iota holds nearly all information that distinguish a stack of items from another and _Hexes can use them to query specifics. There is one exception: an item iota loses any item iota contained within the item. The already intricate folds of _media that form item iota simply unravel when nested within even more layers of abstraction.",
- "hexpose.page.item.1": "$(item)Players$() manipulate _media idly just as a byproduct of being sentient. This aura of _media is mostly inert but strikes back, often violently at attempts of in-depth scrying. Externally exposed items such as armor and held items can be spied on, but attempts to deeply analyze their inventory will fail.$(br2)Nature respects boundaries.",
- "hexcasting.action.hexpose:get_stack": "Item Purification",
- "hexpose.page.get_stack.summary": "Pushes the item that an $(item)Item$() in the world is.",
- "hexcasting.action.hexpose:create_stack": "Offer Purification",
- "hexpose.page.create_stack.summary": "Creates an item iota from an item identifier and the number of items in the stack.",
- "hexcasting.action.hexpose:get_mainhand": "Tool Purification",
- "hexpose.page.get_mainhand.summary": "Returns the item in the entity's mainhand.",
- "hexcasting.action.hexpose:get_offhand": "Accessory Purification",
- "hexpose.page.get_offhand.summary": "Returns the item in the entity's offhand.",
- "hexcasting.action.hexpose:get_inventory": "Cart Purification",
- "hexpose.page.get_inventory.summary": "Returns a list of all items the entity is carrying, or $(l:casting/influences)$(thing)Null$() if the entity can not hold items. Trying to access another $(item)Player$()'s inventory will incur a mishap.",
- "hexcasting.action.hexpose:get_block_inventory": "Chest Purification",
- "hexpose.page.get_block_inventory.summary": "Returns a list of all items in the container, or $(l:casting/influences)$(thing)Null$() if the block can not contain items.",
- "hexcasting.action.hexpose:get_armor": "Aegis Purification",
- "hexpose.page.get_armor.summary": "Returns a list of all items the entity is wearing, from feet up.",
- "hexcasting.action.hexpose:get_ender_chest": "Pocket Reflection",
- "hexpose.page.get_ender_chest.summary": "Returns a list of all items in my ender chest.",
- "hexcasting.action.hexpose:count_stack": "Storage Purification",
- "hexpose.page.count_stack.summary": "Takes in an item and pushes how many items are in it.",
- "hexcasting.action.hexpose:count_max_stack": "Warehouse Purification",
- "hexpose.page.count_max_stack.summary": "Takes in an item and pushes how many items that can stack in it.",
- "hexcasting.action.hexpose:damage_stack": "Deterioration Purification",
- "hexpose.page.damage_stack.summary": "Takes in an item and pushes how much damage the item has sustained.",
- "hexcasting.action.hexpose:damage_max_stack": "Fragility Purification",
- "hexpose.page.damage_max_stack.summary": "Takes in an item and pushes how much durability the item can have at its peak.",
- "hexcasting.action.hexpose:get_enchantments": "Thaumaturgist's Purification",
- "hexpose.page.get_enchantments.summary": "Gets a list of enchantments the item has.",
- "hexcasting.action.hexpose:get_enchantment_strength": "Charm Distillation",
- "hexpose.page.get_enchantment_strength.summary": "Gets the strength of the specific enchantment on the item.",
- "hexcasting.action.hexpose:item_name": "Appellation Purification",
- "hexpose.page.item_name.summary": "Gets the name given to this item.",
- "hexcasting.action.hexpose:item_lore": "Legacy Purification",
- "hexpose.page.item_lore.summary": "Gets the lore written into this item.",
- "hexcasting.action.hexpose:item_variant": "Glamour Purification",
- "hexpose.page.item_variant.summary": "If this item is subceptible to $(l:patterns/spells/cyclevariant)$(action)Caster's Glamour$(), pushes the index of the current form it's taking on. Otherwise pushes $(l:casting/influences)$(thing)Null$().",
- "hexcasting.action.hexpose:item_variant_max": "Glamour Purification II",
- "hexpose.page.item_variant_max.summary": "If this item is subceptible to $(l:patterns/spells/cyclevariant)$(action)Caster's Glamour$(), pushes the number of forms it's capable of. Otherwise pushes $(l:casting/influences)$(thing)Null$().",
- "hexcasting.action.hexpose:read_book": "Reading Purification",
- "hexpose.page.read_book.summary": "Pushes a list of $(l:patterns/text_iotas)$(thing)text iotas$() contained inside a book or $(l:casting/influences)$(thing)Null$() if it isn't a book.",
- "hexcasting.action.hexpose:book_sources": "Bibliography Purification",
- "hexpose.page.book_sources.summary": "Pushes the author of a book and its generation number.",
- "hexcasting.action.hexpose:item_rarity": "Collector Purification",
- "hexpose.page.item_rarity.summary": "Gauges the rarity of an item as a number, with greater values corresponding to a rarer item. Certain aspects such as enchantments can also elevate an item's rarity.",
-
- "hexpose.page.media.title": "Media",
- "hexcasting.action.hexpose:env_media": "Media Reflection",
- "hexpose.page.env_media.summary": "Pushes the _media available to the current cast.",
- "hexcasting.action.hexpose:get_media": "Media Purification",
- "hexpose.page.get_media.summary": "Pushes the amount of _media inside an item, that a creature contains or holds, or that a specialized _media-holding block contains.",
- "hexcasting.action.hexpose:media_max_stack": "Potential Purification",
- "hexpose.page.media_max_stack.summary": "Takes in an item and pushes either $(l:casting/influences)$(thing)Null$() if the item does not have any _media-holding potential, or the amount of _media it is capable of holding at its peak.",
-
- "hexpose.page.status_effects.title": "Status Effects",
- "hexcasting.action.hexpose:get_effects_entity": "Diagnosis Purification",
- "hexpose.page.get_effects_entity.summary": "Pushes a list of status effects the entity is afflicted with.",
- "hexcasting.action.hexpose:get_effects_item": "Prescription Purification",
- "hexpose.page.get_effects_item.summary": "Pushes a list of status effects the food or potion will bestow.",
- "hexcasting.action.hexpose:get_effect_category": "Condition Purification",
- "hexpose.page.get_effect_category.summary": "Pushes the general \"goodness\" of the effect towards the afflicted. -1 for harmful, 0 for neutral, and 1 for beneficial.",
- "hexcasting.action.hexpose:get_effect_amplifier": "Concentration Distillation",
- "hexpose.page.get_effect_amplifier.summary": "Pushes how potent the effect type is acting on the entity or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
- "hexcasting.action.hexpose:get_effect_duration": "Clearance Distillation",
- "hexpose.page.get_effect_duration.summary": "Pushes how long the effect type will affect the entity in twentieths of a second or $(l:casting/influences)$(thing)Null$() if the entity doesn't have it.",
-
- "hexpose.page.villager.title": "Villagers",
- "hexcasting.action.hexpose:villager_level": "Tier Purification",
- "hexpose.page.villager_level.summary": "Pushes how advanced a villager is as a number, encoding mastery of their craft.",
- "hexcasting.action.hexpose:villager_profession": "Professional Purification",
- "hexpose.page.villager_profession.summary": "Pushes the profession of a villager as an identifier",
- "hexcasting.action.hexpose:villager_type": "Culture Purification",
- "hexpose.page.villager_type.summary": "Pushes the ambient cultural aspect tied to the villager’s origin, such as desert or taiga roots.",
- "hexcasting.action.hexpose:biome_to_villager": "Nurture Purification",
- "hexpose.page.biome_to_villager.summary": "Projects the villager archetype most attuned to the essence of the specified biome, or $(l:casting/influences)$(thing)Null$() if none can be drawn.",
-
- "hexpose.page.world.title": "World",
- "hexcasting.action.hexpose:get_light": "Luminance Purification",
- "hexpose.page.get_light.summary": "Pushes the light level at the position as a number 0 to 15. If inside a nontransparent block, it returns zero.",
- "hexcasting.action.hexpose:get_weather": "Meterologist's Reflection",
- "hexpose.page.get_weather.summary": "Pushes a number corresponding to the weather. 0 for clear, 1 for rain, and 2 for thundering.",
- "hexcasting.action.hexpose:get_power": "Battery Purification",
- "hexpose.page.get_power.summary": "Pushes the Redstone power that a position receives.",
- "hexcasting.action.hexpose:get_comparator": "Peripheral Purification",
- "hexpose.page.get_comparator.summary": "Pushes the power level a $(item)Comparator$() would output if pressed against a position.",
- "hexcasting.action.hexpose:get_day": "Circadian Reflection",
- "hexpose.page.get_day.summary": "Pushes the progress of the day as a number between 0 (start) and 1 (end) of the day.",
- "hexcasting.action.hexpose:get_time": "Temporal Reflection",
- "hexpose.page.get_time.summary": "Pushes the twentieths of a second since the creation of the world, unaffected by events such as sleeping.",
- "hexcasting.action.hexpose:get_biome": "Geographical Purification",
- "hexpose.page.get_biome.summary": "Pushes the identifier of the type of biome the vector is within.",
- "hexcasting.action.hexpose:get_dimension": "Plane Reflection",
- "hexpose.page.get_dimension.summary": "Pushes the identifier of the dimension the _Hex is being cast in.",
- "hexcasting.action.hexpose:get_moon": "Lunar Reflection",
- "hexpose.page.get_moon.summary": "Pushes the current phase of the $(thing)Moon$() as a fraction of its size.",
- "hexcasting.action.hexpose:get_einstein": "Distortion Reflection",
- "hexpose.page.get_einstein.summary": "Pushes whether $(item)Compasses$() and $(item)Clocks$() will work in this dimension.",
-
- "hexpose.page.misc.title": "Miscellaneous",
- "hexcasting.action.hexpose:cat_variant": "Feline Purification",
- "hexpose.page.cat_variant.summary": "Pushes the variant of the $(thing)Cat$().",
- "hexcasting.action.hexpose:creeper_fuse": "Anger Purification",
- "hexpose.page.creeper_fuse.summary": "Pushes the progress of a $(thing)Creeper$() to explosion.",
- "hexcasting.action.hexpose:item_frame_rotation": "Showcase Purification",
- "hexpose.page.item_frame_rotation.summary": "Pushes the rotation of an $(item)Item Frame$() as an integer 0 to 7.",
- "hexcasting.action.hexpose:painting_variant": "Artistic Purification",
- "hexpose.page.painting_variant.summary": "Pushes the variant of the $(thing)Painting$()."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
deleted file mode 100644
index 38663d75b343..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexpose/lang/zh_cn.json
+++ /dev/null
@@ -1,295 +0,0 @@
-{
- "hexcasting.mishap.invalid_value.class.identifier": "一个标识",
- "hexcasting.mishap.invalid_value.class.item_stack": "一个物品组",
- "hexcasting.mishap.invalid_value.class.text": "一个文本iota",
- "hexcasting.mishap.invalid_value.cat": "一只猫",
- "hexcasting.mishap.invalid_value.creeper": "一只苦力怕",
- "hexcasting.mishap.invalid_value.painting": "一幅画",
- "hexcasting.mishap.invalid_value.item_frame": "一个物品展示框",
- "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识",
- "hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识",
- "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识",
- "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识",
- "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标",
- "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识",
- "hexcasting.mishap.invalid_value.status_effect_id": "一个代表状态效果的标识",
- "hexcasting.mishap.invalid_value.entity_or_vector": "一个实体或向量",
- "hexcasting.mishap.invalid_value.lenient_living": "一个活体或盔甲架",
- "hexcasting.mishap.invalid_value.media_holding": "一个装有媒质的物品或实体",
- "hexcasting.mishap.invalid_value.potion_holding": "一个装有药水的物品或实体",
- "hexcasting.mishap.invalid_value.tamable": "一个可驯服实体",
-
- "hexpose.item_stack.format": " | %s(%d)",
- "hexpose.item_stack.null": "Null物品",
-
- "hexcasting.action.book.hexpose:get_effect_amplifier": "浓度之馏化",
- "hexcasting.action.book.hexpose:get_effects_item": "处方之纯化",
- "hexcasting.action.book.hexpose:get_enchantments": "奇术师之纯化",
- "hexcasting.action.book.hexpose:breedable": "繁衍之纯化",
- "hexcasting.action.book.hexpose:theodolite": "经纬仪之纯化",
- "hexcasting.action.book.hexpose:get_air": "窒息之纯化",
- "hexcasting.action.book.hexpose:is_wet": "末影人之纯化",
- "hexcasting.action.book.hexpose:identify": "侦探之纯化",
- "hexcasting.action.book.hexpose:damage_stack": "损耗之纯化",
- "hexcasting.action.book.hexpose:book_source": "书目之纯化",
- "hexcasting.action.book.hexpose:classify": "抵量之纯化",
- "hexcasting.action.book.hexpose:villager_profession": "职业之纯化",
- "hexcasting.action.book.hexpose:get_biome": "地理之纯化",
- "hexcasting.action.book.hexpose:get_weather": "天气学家之精思",
-
- "hexpose.page.enlightened_patterns.title": "启迪后图案",
- "hexpose.page.enlightened_patterns.0": "在经过$(thing)启迪$()之后,我敏锐地意识到,世上真的存在协助我感知和操纵$(media)媒质$()的图案。这些图案并无其他更进一步的需求,也许我一直都能运行它们,但也一直浑然不觉。这也意味着,我可以给未经$(thing)启迪$()的玩家带有这些图案的$(l:items/hexcasting)$(item)施法物品$(),他们在施放过程中不会受到阻碍。",
- "hexcasting.action.hexpose:am_enlightened": "显圣之纯化",
- "hexpose.page.am_enlightened.summary": "检验所给玩家是否和我一样经过$(thing)启迪$()。",
- "hexcasting.action.hexpose:is_brainswept": "感知之纯化",
- "hexpose.page.is_brainswept.summary": "检验实体是否“被魔法手段去除了意识”。我总觉得它和$(l:patterns/great_spells/brainsweep)$(action)剥离意识$()之间有种紧密的联系……",
-
- "hexpose.page.text_iotas.title": "文本 Iota",
- "hexpose.page.text_iotas.0": "$(thing)文本 iota$() 代表着文本信息。它不只编码了字面的信息,还包含了$(#ff0000)颜色$()和$(o)斜体$()等样式。$(br2)它们可在单个 iota 中存下很多信息。而正因其信息密度高,它们可能很快就会崩解为无意义的东西。",
- "hexcasting.action.hexpose:create_text": "阅读之纯化",
- "hexpose.page.create_text.summary": "接受一个 iota,返回代表其的$(l:patterns/text_iotas)$(thing)文本 iota$()。如果接受的是$(l:patterns/text_iotas)$(thing)文本 iota$(),则清除其样式。",
- "hexpose.page.add_text.summary": "返回第一文本和第二文本首尾相接的$(l:patterns/text_iotas)$(thing)文本 iota$()。",
- "hexpose.page.abs_text.summary": "返回$(l:patterns/text_iotas)$(thing)文本 iota$() 的长度。",
- "hexcasting.action.hexpose:split_text": "字符之纯化",
- "hexpose.page.split_text.summary": "将$(l:patterns/text_iotas)$(thing)文本 iota$() 拆分成各个字符。",
- "hexcasting.action.hexpose:combine_text": "拼贴之纯化",
- "hexpose.page.combine_text.summary": "将列表中各元素转换为文本(原来就是文本则保留不变),并拼接结果。",
- "hexpose.page.index_text.summary": "返回文本中第 n 个字符。",
- "hexpose.page.slice_text.summary": "返回文本的指定切片。",
- "hexpose.page.replace_text.summary": "将文本中第 n 个字符替换为另一段文本。用于替换的文本可长于 1 个字符。",
- "hexpose.page.remove_text.summary": "移除文本中第 n 个字符。",
- "hexpose.page.rev_text.summary": "倒排文本。",
- "hexpose.page.unique_text.summary": "只保留文本中各字符的第一处实例。样式不同的字符视作不同字符。",
- "hexpose.page.text_iotas.1": "后续的图案涉及到文本的样式。由于其参数结构,它们和馏化很相似,但它们实际上是$(o)策略$()。$(br2)如果传入的是常规参数,则它们会根据自身专长为文本设置样式(样例见说明)。$(br2)如果只传入一个文本,则会返回该文本中该样式的设置情况。",
- "hexcasting.action.hexpose:text_color": "卢米埃尔之策略",
- "hexpose.page.text_color.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本 iota$() 和一个颜色;颜色由各分量为 0 到 1 的向量定义。返回设置为该$(#ff0000)颜色$()的文本。",
- "hexcasting.action.hexpose:text_bold": "哥特式之策略",
- "hexpose.page.text_bold.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否为$(l)粗体$()。",
- "hexcasting.action.hexpose:text_italics": "马努提乌斯之策略",
- "hexpose.page.text_italics.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否为$(o)斜体$()。",
- "hexcasting.action.hexpose:text_underline": "记录员之策略",
- "hexpose.page.text_underline.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否有$(n)下划线$()。",
- "hexcasting.action.hexpose:text_strikethrough": "编辑员之策略",
- "hexpose.page.text_strikethrough.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否有$(m)删除线$()。",
- "hexcasting.action.hexpose:text_obfuscated": "屏蔽之策略",
- "hexpose.page.text_obfuscated.summary": "接受一个$(l:patterns/text_iotas)$(thing)文本$(),设置其是否显示为随机$(k)文本$()。",
-
- "hexpose.page.special_raycasts.title": "特殊射线追踪",
- "hexcasting.action.hexpose:fluid_raycast": "占水之馏化",
- "hexpose.page.fluid_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.action.hexpose:fluid_surface_raycast": "睡莲之馏化",
- "hexpose.page.fluid_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但只会瞄准液体,无视其余方块。",
- "hexcasting.action.hexpose:piercing_raycast": "轨道炮之提整",
- "hexpose.page.piercing_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast)$(action)弓箭手之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
- "hexcasting.action.hexpose:piercing_surface_raycast": "激光之提整",
- "hexpose.page.piercing_surface_raycast.summary": "与$(l:patterns/basics#hexcasting:raycast/axis)$(action)建筑师之馏化$()类似,但会额外接受一个标识。在抵达标识对应的方块前,此操作会无视其他方块。",
-
- "hexpose.category.scrying": "探知",
- "hexpose.category.scrying.desc": "我偶然间触及了一条完全将$(media)媒质$()用于获取和处理世界信息的学术分支。$(br2)虽然这些操作在大多数$(hex)咒术$()中没什么大用处,但有它们在也不错,我将来也许会用到。",
-
- "hexpose.page.blocks.title": "方块",
- "hexcasting.action.hexpose:block_hardness": "矿工之纯化",
- "hexpose.page.block_hardness.summary": "压入挖掘给定类型方块的难易程度。",
- "hexcasting.action.hexpose:block_blast_resistance": "爆破兵之纯化",
- "hexpose.page.block_blast_resistance.summary": "压入给定类型方块对爆炸的抗性。",
- "hexcasting.action.hexpose:blockstate_rotation": "方向之纯化",
- "hexpose.page.blockstate_rotation.summary": "压入方块的朝向向量。若该类方块不区分朝向,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:blockstate_crop": "农夫之纯化",
- "hexpose.page.blockstate_crop.summary": "压入一个 0 到 1 的数,对应农作物的生长进度,对$(item)蜂巢$()、$(item)堆肥桶$()、$(item)炼药锅$()同样有效。奇怪的是,对$(item)蛋糕$()也有效。",
- "hexpose.page.get_blockstates.description": "每个方块都有很多$(o)侧征$()——将其与其他同种方块区分开来的简单特征,例如朝向、农作物的成熟度、门的开闭等。$(br2)自然提供了两个图案,允许$(hex)咒法学$()读取和分析影响范围内各方块的侧征。",
- "hexcasting.action.hexpose:get_blockstates": "侧征之纯化",
- "hexpose.page.get_blockstates.summary": "返回所给方块的侧征列表。",
- "hexcasting.action.hexpose:query_blockstate": "侧征之馏化",
- "hexpose.page.query_blockstate.summary": "接收一个方块和一个侧征,返回该侧征的值。",
- "hexpose.page.query_blockstate.description": "若方块没有给定侧征,则返回 $(l:casting/influences)$(thing)Null$()。大多数情况下,返回的结果很好理解:布尔值、方向向量、整数,总之是最合乎侧征的 iota。$(br2)某些关系到状态等方面的侧征给出的是看似随机但恒定的整数。如果侧征太过生僻,即会返回无意义的 iota。",
- "hexcasting.action.hexpose:block_map_color": "制图师之纯化",
- "hexpose.page.block_map_color.summary": "返回所给方块在地图上的颜色。",
-
- "hexpose.page.chat.title": "聊天栏",
- "hexcasting.action.hexpose:get_message": "新闻之精思",
- "hexpose.page.get_message.summary": "以$(l:patterns/text_iotas)$(thing)文本$()形式返回最近一次使用聊天栏的玩家,同时以$(l:patterns/text_iotas)$(thing)文本$()形式返回该消息,以及发送时间距现在有多少个 1/20 秒。",
- "hexcasting.action.hexpose:get_chat": "报纸之精思",
- "hexpose.page.get_chat.summary": "对最近最多 32 条聊天栏消息执行$(l:patterns/scrying/chat#hexpose:get_message)$(action)新闻之精思$();每个消息的执行结果各自组为列表,再将这些列表组为列表返回。",
-
- "hexpose.page.entities.title": "实体",
- "hexcasting.action.hexpose:entity_width": "卡尺之纯化",
- "hexpose.page.entity_width.summary": "类似$(l:patterns/basics#hexcasting:get_entity_height)$(action)测高仪之纯化$(),但返回的不是实体的高度,而是实体的宽度。",
- "hexcasting.action.hexpose:theodolite": "经纬仪之纯化",
- "hexpose.page.theodolite.summary": "类似$(l:patterns/basics#hexcasting:get_entity_look)$(action)照准仪之纯化$(),但返回向量并不指向实体的视线,而是自其头部指向上方。",
- "hexcasting.action.hexpose:get_health": "生命力之纯化",
- "hexpose.page.get_health.summary": "压入实体距离死亡还有多远。使用半颗心作为单位。",
- "hexcasting.action.hexpose:get_max_health": "健康之纯化",
- "hexpose.page.get_max_health.summary": "压入实体处于完全健康状态时的生命值。使用半颗心作为单位。",
- "hexcasting.action.hexpose:get_air": "窒息之纯化",
- "hexpose.page.get_air.summary": "压入实体距离窒息剩余多少秒。对脱水的海洋生物和溺水的陆地生物均有效。",
- "hexcasting.action.hexpose:get_max_air": "双肺之纯化",
- "hexpose.page.get_max_air.summary": "返回给定类型实体在离开其呼吸环境后需多少秒开始窒息。",
- "hexcasting.action.hexpose:burning": "炼狱之纯化",
- "hexpose.page.burning.summary": "返回实体身上的火焰距自然熄灭剩余多少秒,实体未在燃烧则返回 -1。",
- "hexcasting.action.hexpose:is_wet": "末影人之纯化",
- "hexpose.page.is_wet.summary": "检验实体是否身处雨中、水中、或气泡柱中。",
- "hexcasting.action.hexpose:is_baby": "青春之纯化",
- "hexpose.page.is_baby.summary": "检验活体是否处于幼年状态。奇怪的是对$(item)盔甲架$()也有效。",
- "hexcasting.action.hexpose:breedable": "繁衍之纯化",
- "hexpose.page.breedable.summary": "检验动物是否处于热恋状态,准备繁衍生息;若该生物无法进行此类繁殖行为,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:is_sleeping": "树懒之纯化",
- "hexpose.page.is_sleeping.summary": "检验$(item)玩家$()、$(item)猫$()、$(item)狐狸$()、以及其他实体是否处于睡眠状态。",
- "hexcasting.action.hexpose:is_sprinting": "赛车手之纯化",
- "hexpose.page.is_sprinting.summary": "检验$(item)玩家$()、$(item)猫$()、$(item)狐狸$()、以及其他实体是否在疾跑。速泳和疾跑后离地均算作疾跑。",
- "hexcasting.action.hexpose:entity_vehicle": "载具之纯化",
- "hexpose.page.entity_vehicle.summary": "检验所给实体是否处于骑乘状态,若未在骑乘或未乘坐载具,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:entity_passengers": "骑士之纯化",
- "hexpose.page.entity_passengers.summary": "返回骑乘所给实体的实体列表。",
- "hexcasting.action.hexpose:shooter": "射手之纯化",
- "hexpose.page.shooter.summary": "返回所给弹射物实体的发射者,若无发射者或不是弹射物,则返回 $(l:casting/influences)$(thing)Null$()。如果发射者在我影响范围之外,也会返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:pet_owner": "挚宠之纯化",
- "hexpose.page.pet_owner.summary": "检验玩家是否驯服了所给动物,若未驯服或玩家在影响范围之外,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:entity_name": "名称之纯化",
- "hexpose.page.entity_name.summary": "以$(l:patterns/text_iotas)$(thing)文本$()形式返回所给实体的名称,带格式。",
- "hexcasting.action.hexpose:absorption_hearts": "吸收之纯化",
- "hexpose.page.absorption_hearts.summary": "返回玩家的魔法心数。使用半颗心作为单位。",
-
- "hexpose.page.environment.title": "环境",
- "hexpose.page.environment.0": "本节的图案比较“元”:它们会检验其所处的施法环境。主要适合用来规避$(l:casting/mishaps)$(thing)事故$()。",
- "hexcasting.action.hexpose:env_ambit": "影响范围之纯化",
- "hexpose.page.env_ambit.summary": "检验所给位置或实体是否处于影响范围中。",
- "hexcasting.action.hexpose:env_staff": "法杖之精思",
- "hexpose.page.env_staff.summary": "检验该图案是否由$(l:items/staff)$(item)法杖$()施放。",
- "hexcasting.action.hexpose:env_offhand": "敏捷之精思",
- "hexpose.page.env_offhand.summary": "检验该图案是否由施法者的主手施放。在没有手的施法者身上可能会产生奇怪的效果。",
- "hexcasting.action.hexpose:env_packaged_hex": "设备之精思",
- "hexpose.page.env_packaged_hex.summary": "检验该图案是否由任意$(l:items/hexcasting)$(item)施法物品$()施放。",
- "hexcasting.action.hexpose:env_circle": "建构之精思",
- "hexpose.page.env_circle.summary": "检验该图案是否由某种$(l:greatwork/spellcircles)$(thing)$(o)卓伟之作$()施放。",
-
- "hexpose.page.food.title": "食物",
- "hexcasting.action.hexpose:get_player_hunger": "饥饿之纯化",
- "hexpose.page.get_player_hunger.summary": "返回$(item)玩家$()的饥饿值。使用半个火腿作为单位。",
- "hexcasting.action.hexpose:get_player_saturation": "耐力之纯化",
- "hexpose.page.get_player_saturation.summary": "返回$(item)玩家$()的饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.action.hexpose:edible": "可食性之纯化",
- "hexpose.page.edible.summary": "接受一个物品标识,检验它是否可被我食用。",
- "hexcasting.action.hexpose:get_hunger": "卡路里之纯化",
- "hexpose.page.get_hunger.summary": "接受一个物品标识,返回它为我带来的饱腹感的量。",
- "hexcasting.action.hexpose:get_saturation": "饱和之纯化",
- "hexpose.page.get_saturation.summary": "接受一个物品标识,返回其饱和度。这一数据大致与饱腹感的持续时间对应。",
- "hexcasting.action.hexpose:is_meat": "肉类之纯化",
- "hexpose.page.is_meat.summary": "接受一个物品标识,检验它是否是肉类,也即$(item)狼$()能否食用。",
- "hexcasting.action.hexpose:is_snack": "甜点之纯化",
- "hexpose.page.is_snack.summary": "接受一个物品标识,检验它是否算作小食。",
-
- "hexpose.page.identifiers.title": "标识",
- "hexpose.page.identifiers.0": "标识 iota 是自然对“$(hex)咒术$()如何指定类型”的解决方案。每一个实体类型、方块类型、状态效果类型、魔咒类型、声音类型等都拥有可被$(hex)咒术$()识别的唯一标识,此标识可获取,也可比较。",
- "hexcasting.action.hexpose:identify": "侦探之纯化",
- "hexpose.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。",
- "hexcasting.action.hexpose:classify": "抵量之纯化",
- "hexpose.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。",
-
- "hexpose.page.item.title": "物品",
- "hexpose.page.item.0": "物品 iota 中含有的信息几乎足以唯一确定一个物品组,且$(hex)咒术$()可通过它们查询其状态。不过此类 iota 有一个例外:如果某个物品内部存有物品 iota,则它的物品 iota 中不会保留存储内容。物品 iota 的精细$(media)媒质$()结构在经多次抽象后即会消散殆尽。",
- "hexpose.page.item.1": "$(item)玩家$()具有智能,也似乎因此在常态操控$(media)媒质$()。这种$(media)媒质$()气场在大部分情况下保持惰性,但并非不会产生反应;在深入探知的情况下,这一反应通常相当剧烈。盔甲和手持物品等暴露于外界的物品可被探知,但对其物品栏的深入分析不会起效。$(br2)自然尊重界限。",
- "hexcasting.action.hexpose:get_stack": "物品之纯化",
- "hexpose.page.get_stack.summary": "返回所给$(item)物品$()实体对应的物品。",
- "hexcasting.action.hexpose:create_stack": "献物之纯化",
- "hexpose.page.create_stack.summary": "由物品标识和组内物品数制造物品。",
- "hexcasting.action.hexpose:get_mainhand": "工具之纯化",
- "hexpose.page.get_mainhand.summary": "返回实体主手的物品。",
- "hexcasting.action.hexpose:get_offhand": "配件之纯化",
- "hexpose.page.get_offhand.summary": "返回实体副手的物品。",
- "hexcasting.action.hexpose:get_inventory": "矿车之纯化",
- "hexpose.page.get_inventory.summary": "返回实体装有的全部物品组成的列表;若实体无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。试图访问其他$(item)玩家$()的物品栏会招致事故。",
- "hexcasting.action.hexpose:get_block_inventory": "箱子之纯化",
- "hexpose.page.get_block_inventory.summary": "返回容器装有的全部物品组成的列表;若方块无法容纳物品,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:get_armor": "埃癸斯之纯化",
- "hexpose.page.get_armor.summary": "返回实体穿着的全部物品组成的列表,顺序自下向上。",
- "hexcasting.action.hexpose:get_ender_chest": "口袋之精思",
- "hexpose.page.get_ender_chest.summary": "返回我末影箱中全部物品组成的列表。",
- "hexcasting.action.hexpose:count_stack": "仓储之纯化",
- "hexpose.page.count_stack.summary": "接受一个物品,返回其中物品数量。",
- "hexcasting.action.hexpose:count_max_stack": "库房之纯化",
- "hexpose.page.count_max_stack.summary": "接受一个物品,返回其中最多可堆叠多少物品。",
- "hexcasting.action.hexpose:damage_stack": "损耗之纯化",
- "hexpose.page.damage_stack.summary": "接受一个物品,返回物品所受的损坏值。",
- "hexcasting.action.hexpose:damage_max_stack": "脆弱性之纯化",
- "hexpose.page.damage_max_stack.summary": "接受一个物品,返回物品的耐久度上限。",
- "hexcasting.action.hexpose:get_enchantments": "奇术师之纯化",
- "hexpose.page.get_enchantments.summary": "获取物品上魔咒组成的列表。",
- "hexcasting.action.hexpose:get_enchantment_strength": "咒能之馏化",
- "hexpose.page.get_enchantment_strength.summary": "获取物品中给定魔咒的强度。",
- "hexcasting.action.hexpose:item_name": "称谓之纯化",
- "hexpose.page.item_name.summary": "获取物品的名称。",
- "hexcasting.action.hexpose:item_lore": "传承之纯化",
- "hexpose.page.item_lore.summary": "获取物品的说明。",
- "hexcasting.action.hexpose:item_variant": "魅力之纯化",
- "hexpose.page.item_variant.summary": "如果物品会受到$(l:patterns/spells/cyclevariant)$(action)施法者之魅力$()的影响,则返回其当前外形对应的索引;否则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:item_variant_max": "魅力之纯化,第二型",
- "hexpose.page.item_variant_max.summary": "如果物品会受到$(l:patterns/spells/cyclevariant)$(action)施法者之魅力$()的影响,则返回其可变化的外形总数;否则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:read_book": "阅读之纯化",
- "hexpose.page.read_book.summary": "将书中记载组为$(l:patterns/text_iotas)$(thing)文本$()列表返回;如所给参数不是书,则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:book_sources": "书目之纯化",
- "hexpose.page.book_sources.summary": "返回书的作者及书的复制代数。",
- "hexcasting.action.hexpose:item_rarity": "收藏家之纯化",
- "hexpose.page.item_rarity.summary": "测量物品的稀有度,返回为数,值越大越稀有。魔咒等特殊性质可能会提升物品的稀有度。",
-
- "hexpose.page.media.title": "媒质",
- "hexcasting.action.hexpose:env_media": "媒质之精思",
- "hexpose.page.env_media.summary": "返回当前施放可用的$(media)媒质$()的量。",
- "hexcasting.action.hexpose:get_media": "媒质之纯化",
- "hexpose.page.get_media.summary": "返回物品中的,或生物含有的,或生物持有的,或特种$(media)媒质$()存储方块含有的$(media)媒质$()。",
- "hexcasting.action.hexpose:media_max_stack": "潜能之纯化",
- "hexpose.page.media_max_stack.summary": "接受一个物品实体,若其无法存储$(media)媒质$(),返回 $(l:casting/influences)$(thing)Null$();否则返回其$(media)媒质$()存储上限。",
-
- "hexpose.page.status_effects.title": "状态效果",
- "hexcasting.action.hexpose:get_effects_entity": "诊断之纯化",
- "hexpose.page.get_effects_entity.summary": "获取实体当前状态效果组成的列表。",
- "hexcasting.action.hexpose:get_effects_item": "处方之纯化",
- "hexpose.page.get_effects_item.summary": "获取食物或药水提供的状态效果列表。",
- "hexcasting.action.hexpose:get_effect_category": "药性之纯化",
- "hexpose.page.get_effect_category.summary": "获取某效果对承受者造成的效应是“良性”与否。-1 为负面,0 为中性,1 为正面。",
- "hexcasting.action.hexpose:get_effect_amplifier": "浓度之馏化",
- "hexpose.page.get_effect_amplifier.summary": "获取实体身上某效果的强度,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcasting.action.hexpose:get_effect_duration": "效除之馏化",
- "hexpose.page.get_effect_duration.summary": "获取效果的持续时间,以 1/20 秒计,无给定效果则返回 $(l:casting/influences)$(thing)Null$()。",
-
- "hexpose.page.villager.title": "村民",
- "hexcasting.action.hexpose:villager_level": "职级之纯化",
- "hexpose.page.villager_level.summary": "返回代表村民技艺功底和精通程度的数。",
- "hexcasting.action.hexpose:villager_profession": "职业之纯化",
- "hexpose.page.villager_profession.summary": "将村民的职业返回为标识。",
- "hexcasting.action.hexpose:villager_type": "文化之纯化",
- "hexpose.page.villager_type.summary": "返回村民生长环境的文化类别,如沙漠、针叶林等。",
- "hexcasting.action.hexpose:biome_to_villager": "养育之纯化",
- "hexpose.page.biome_to_villager.summary": "返回最适宜所给生物群系的村民文化类别,若无则返回 $(l:casting/influences)$(thing)Null$()。",
-
- "hexpose.page.world.title": "世界",
- "hexcasting.action.hexpose:get_light": "光照之纯化",
- "hexpose.page.get_light.summary": "返回给定位置的光照等级,返回值在 0 到 15 之间。如果位置处于不透明方块内部,返回 0。",
- "hexcasting.action.hexpose:get_weather": "天气学家之精思",
- "hexpose.page.get_weather.summary": "压入一个代表天气的数。0 为晴天,1 为降雨,2 为雷暴。",
- "hexcasting.action.hexpose:get_power": "电池之纯化",
- "hexpose.page.get_power.summary": "返回给定位置的红石信号强度。",
- "hexcasting.action.hexpose:get_comparator": "外设之纯化",
- "hexpose.page.get_comparator.summary": "返回$(item)比较器$()对准给定位置时会输出的红石信号强度。",
- "hexcasting.action.hexpose:get_day": "昼夜之精思",
- "hexpose.page.get_day.summary": "返回当天时间的进程,返回值在 0(一天刚开始)到 1(一天要结束)之间。",
- "hexcasting.action.hexpose:get_time": "时间之精思",
- "hexpose.page.get_time.summary": "压入世界经过的时间,主要用来计时,不受睡觉等事件的影响。以 1/20 秒计。",
- "hexcasting.action.hexpose:get_biome": "地理之纯化",
- "hexpose.page.get_biome.summary": "返回给定位置向量处生物群系类别的标识。",
- "hexcasting.action.hexpose:get_dimension": "位面之精思",
- "hexpose.page.get_dimension.summary": "压入$(hex)咒术$()施放时所处维度的标识。",
- "hexcasting.action.hexpose:get_moon": "月相之精思",
- "hexpose.page.get_moon.summary": "返回当前的月相,返回值为可见的$(item)月亮$()照亮区域的占比。",
- "hexcasting.action.hexpose:get_einstein": "扭曲之精思",
- "hexpose.page.get_einstein.summary": "检验$(item)指南针$()和$(item)钟$()可否在此维度运作。",
-
- "hexpose.page.misc.title": "杂项",
- "hexcasting.action.hexpose:cat_variant": "猫咪之纯化",
- "hexpose.page.cat_variant.summary": "返回$(thing)猫$()的品种。",
- "hexcasting.action.hexpose:creeper_fuse": "怒气之纯化",
- "hexpose.page.creeper_fuse.summary": "返回$(thing)苦力怕$()爆炸的进度。",
- "hexcasting.action.hexpose:item_frame_rotation": "展示之纯化",
- "hexpose.page.item_frame_rotation.summary": "返回$(item)物品展示框$()的旋转方向,为 0 到 7 的整数。",
- "hexcasting.action.hexpose:painting_variant": "艺术之纯化",
- "hexpose.page.painting_variant.summary": "返回$(thing)画$()的类型。"
-}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
deleted file mode 100644
index 680e0b43d778..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "hexcasting.mishap.overevaluate:assert": "Assertion failed: %s.",
- "hexcasting.mishap.overevaluate:needs_skippable": "Expected to be run inside of a skippable context.",
- "hexcasting.mishap.overevaluate:needs_thoth": "Expected to be run inside of Thoth's Gambit.",
- "hexcasting.mishap.overevaluate:apep": "Expected an iota at the top of the Apep pseudo-stack.",
- "hexcasting.mishap.overevaluate:themis": "Expected a number at the top of the Themis pseudo-stack.",
-
- "overevaluate.page.extra_stack.title": "Extra Stack Manipulation",
- "special.overevaluate.sekhmet": "Sekhmet's Gambit: %s",
- "hexcasting.action.overevaluate:sekhmet": "Sekhmet' Gambit",
- "hexcasting.special.overevaluate:sekhmet": "Sekhmet' Gambit: %s",
- "overevaluate.page.sekhmet.0": "Voids the entire stack except for the top n iota, determined by tail length. In the examples above, zero, one, and two iota are left untouched respectively.",
- "overevaluate.page.sekhmet.1": "This simple gambit serves as a convenient wrapper around a specific combination of $(l:patterns/stackmanip#hexcasting:stack_len)$(action)Flock's Reflection$(), $(l:patterns/lists#hexcasting:last_n_list)$(action)Flock's Gambit$(), $(l:patterns/lists#hexcasting:slice)$(action)Selection Exaltation$(), and $(l:patterns/lists#hexcasting:splat)$(action)Flock's Disintegration$(). It also pairs extremely well with $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$() to leave only the iotas I am interested in on the pseudo-stack.$(br2)$(o)Everything is possible, but not everything is necessary.$()",
- "special.overevaluate.geb": "Geb's Gambit: %s",
- "hexcasting.action.overevaluate:geb": "Geb's Gambit",
- "hexcasting.special.overevaluate:geb": "Geb's Gambit: %s",
- "overevaluate.page.geb": "Yanks the iota n from the top up to the top, determined by tail length. In the examples above, the iota second, third, and fourth from the top are yanked respectively.",
- "special.overevaluate.nut": "Nut's Gambit: %s",
- "hexcasting.action.overevaluate:nut": "Nut's Gambit",
- "hexcasting.special.overevaluate:nut": "Nut's Gambit: %s",
- "overevaluate.page.nut": "Sinks the top iota n from the top, determined by tail length. In the examples above, the iota is moved to the second, third, and fourth place from the top respectively.",
- "hexcasting.action.overevaluate:swap_one_three": "Reflecting Gambit",
- "overevaluate.page.swap_one_three.summary": "Reflects the order of the top three iota, turning A, B, C into C, B, A. Essentially swaps the top and the third-from-the-top iota.",
- "hexcasting.action.overevaluate:swap_two_three": "Bubbling Gambit",
- "overevaluate.page.swap_two_three.summary": "Causes the third-from-the-top iota to bubble up over the second-from-the-top iota, essentially swapping them.",
- "hexcasting.action.overevaluate:dup_many": "Dioscuri Gambit II",
- "overevaluate.page.dup_many.summary": "Takes a number and duplicates that many elements of the stack while preserving order.",
-
- "overevaluate.page.soroban.title": "Soroban",
- "overevaluate.page.soroban.0": "These patterns perform simple integer operations on an imaginary counter called the soroban. They may be useful when $(l:patterns/readwrite#hexcasting:local)Ravenmind$() is occupied or unnecessarily complicated, for example to count iterations in a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() loop.",
- "hexcasting.action.overevaluate:soroban_increment": "Soroban Reflection",
- "overevaluate.page.soroban_increment.summary": "Pushes soroban's current value and then increases it. Starts at 0.",
- "hexcasting.action.overevaluate:soroban_decrement": "Soroban Reflection II",
- "overevaluate.page.soroban_decrement.summary": "Pushes soroban's current value and then decreases it.",
- "hexcasting.action.overevaluate:soroban_reset": "Soroban Gambit",
- "overevaluate.page.soroban_reset.summary": "Resets the soroban to 0.",
-
- "overevaluate.page.metas.title": "Advanced Metaevaluation",
- "hexcasting.action.overevaluate:athena": "Athena's Gambit",
- "overevaluate.page.athena.summary": "Casts a list of patterns similar to $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() but allows for handling of mishaps.",
- "overevaluate.page.athena.description": "If the provided pattern list mishaps while being cast, the remainder of the list will be skipped and the main _Hex continues without incurring the effects of the mishap. Pushes whether the pattern list mishapped.$(br2)Patterns documented on the next pages can request further information on the specific mishap.$(br2)$(o)Keep moving forward.$()",
- "hexcasting.action.overevaluate:athena_print": "Athena's Revelation",
- "overevaluate.page.athena_print.summary": "Reveals to me the last mishap caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$() within this _Hex.",
- "hexcasting.action.overevaluate:athena_log": "Athena's Reflection",
- "overevaluate.page.athena_log.summary": "Pushes the last mishap caught by $(l:metaevals#overevaluate:athena)$(action)Athena's Gambit$() as $(o)text$() if the appropriate powers are active in this world.",
- "hexcasting.action.overevaluate:apep": "Apep's Gambit",
- "overevaluate.page.apep.summary": "Folds across the first list using the _Hex in the second list.",
- "overevaluate.page.apep.description": "Starts with the first two elements of the list and casts the _Hex on them. Then, the top iota remaining after casting and the next element in the list are placed on the stack and casted upon, repeating until the entire list has been exhausted. The top iota after all that is finally pushed onto the stack.$(br2)$(o)Euler did music too, you know$()",
- "hexcasting.action.overevaluate:tutu": "Tutu's Gambit",
- "overevaluate.page.tutu.summary": "Does nothing.",
- "overevaluate.page.tutu.description": "This pattern seems useless but is helpful in conjunction with $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() or $(l:metaevals#overevaluate:janus)$(action)Janus' Gambit$() as the \"other branch\". Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.$(br2)$(o)The only winning move is not to play.$()",
- "hexcasting.action.overevaluate:janus": "Janus' Gambit",
- "overevaluate.page.janus.summary": "Instantly terminates the _Hex regardless of current circumstances.",
- "overevaluate.page.janus.description": "It's useful to end a _Hex early once it has reached some desired state because it can bypass the \"containment\" of $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit$() and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$() unlike $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$().$(br2)$(o)It is always important to know when something has reached its end.$()",
- "hexcasting.action.overevaluate:maat": "Ma'at's Gambit",
- "overevaluate.page.maat.summary": "Takes a boolean and any iota. If the boolean is false, mishaps and prints the iota.",
- "overevaluate.page.maat.description": "This pattern is useful in order to break out of _Hexes if certain programmed conditions are not met.$(br2)$(o)Order in the court.$()",
- "special.overevaluate.nephthys": "Nephthys' Gambit: %s",
- "hexcasting.action.overevaluate:nephthys": "Nephthys' Gambit",
- "hexcasting.special.overevaluate:nephthys": "Nephthys' Gambit: %s",
- "overevaluate.page.nephthys.summary": "Pops a pattern or pattern list and dives down an amount corresponding to the tail length to cast the pattern list. Useful for surgery-like operations.",
- "overevaluate.page.nephthys.description": "It's extremely versatile and I can mend almost any error in my stack using $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit$(), pushing iota after a dive, and transforming surfaced iota. It was named after a goddess of mourning and rivers, lending to how it buries/dives down into the stack.$(br2)$(o)... the unknowns of time travel... is akin to descending blindly into the depths of the freezing water and reappearing as an acorn.$()",
- "hexcasting.action.overevaluate:atalanta": "Atalanta's Gambit",
- "overevaluate.page.atalanta.summary": "Should only be run inside $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() or $(l:metaevals#overevaluate:sisyphus)$(action)Sisyphus' Gambit$(). Acts similarly to $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() except does not end the iterator, only skips the rest of the current iteration.",
- "overevaluate.page.atalanta.description": "This pattern can be useful to implement \"guard clauses\" for multiconditional loops. For example, after getting a list of entities, I may want to only target entities based on some large list of conditions. Rather than a mess of deeply nested conditionals, I can simply $(o)continue$() to the next iteration if any of the conditions fail, skipping the action.$(br2)$(o)You shall not pass!$()",
- "hexcasting.action.overevaluate:castor": "Castor's Gambit",
- "overevaluate.page.castor.summary": "Should only be run within a $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$(). Details on the next page. Beware of triggering the Delve Too Deep mishap.",
- "overevaluate.page.castor.description": "This pattern pops an iota and schedules a new iteration of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to come right after the current one, with the popped iota being the top of the stack. It may be helpful to imagine it as the iota being added to the front of the list that I provided for $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's$() to iterate over.$(br2)$(o)Do not go where the path may lead, go instead where there is no path... and leave a trail.$()",
- "hexcasting.action.overevaluate:pollux": "Pollux's Gambit",
- "overevaluate.page.pollux.summary": "Sibling pattern to $(l:metaevals#overevaluate:castor)$(action)Castor's Gambit$(), this pattern schedules the additional iteration for the end instead. Carries the same risk of encountering the Delve Too Deep mishap.",
- "overevaluate.page.pollux.description": "Acts almost identically to its sibling pattern, but places the iteration at the end. I have read scrolls detailing techniques using these twin patterns called $(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)depth-first search$() and $(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)breadth-first search$().$(br2)$(o)Explore the surface before diving deep.$()",
- "hexcasting.action.overevaluate:sisyphus": "Sisyphus' Gambit",
- "overevaluate.page.sisyphus.summary": "Takes a pattern list and casts it over and over forever until it encounters either a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$() or a $(l:metaevals#overevaluate:janus)$(action)Janus' Gambit$().",
- "overevaluate.page.sisyphus.description": "While I have heard of self-producing _Hexes called $(o)quines$() used to make infinite loops, they can be slightly unwieldy to work with. This gambit simplifies that process by just repeatedly casting a list until it runs out of evaluations or encounters a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(). The $(l:patterns/readwrite#hexcasting:local)Ravenmind$() and stack are carried across iterations.$(br2)$(o)One always finds one's burden again... One must imagine Sisyphus happy.$()",
- "hexcasting.action.overevaluate:themis": "Themis' Gambit",
- "overevaluate.page.themis.summary": "Takes a list and a pattern or pattern list which is used to sort the list by casting over every iota similar to $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$().",
- "overevaluate.page.themis.description": "After each iteration, it demands a number at the top of the stack which will correspond to that iota. At the end of the gambit, a list is pushed with the iota sorted by that number in increasing order. The order of identically numbered iota are kept. If it encounters $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit$(), it will create a sorted list with only the iota it has come across.$(br2)$(o)Shuffling is the only thing which Nature cannot undo.$()"
-}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
deleted file mode 100644
index e9d73762513a..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "hexcasting.mishap.overevaluate:assert": "断言失败:%s。",
- "hexcasting.mishap.overevaluate:needs_skippable": "本应在可跳过的上下文内运行。",
- "hexcasting.mishap.overevaluate:needs_thoth": "本应在托特之策略内运行。",
- "hexcasting.mishap.overevaluate:apep": "阿佩普之策略的伪栈栈顶本应存在一个iota。",
- "hexcasting.mishap.overevaluate:themis": "忒弥斯之策略的伪栈栈顶本应存在一个数。",
-
- "overevaluate.page.extra_stack.title": "栈操作附加",
- "special.overevaluate.sekhmet": "塞赫麦特之策略:%s",
- "hexcasting.action.overevaluate:sekhmet": "塞赫麦特之策略",
- "hexcasting.special.overevaluate:sekhmet": "塞赫麦特之策略:%s",
- "overevaluate.page.sekhmet.0": "清除栈,栈顶 n 个元素除外,具体由图案的尾部长度决定。上方的示例分别会保留 0 个、1 个、2 个 iota。",
- "overevaluate.page.sekhmet.1": "此策略的效果可通过$(l:patterns/stackmanip#hexcasting:stack_len)$(action)群体之精思$()、$(l:patterns/lists#hexcasting:last_n_list)$(action)群体之策略$()、$(l:patterns/lists#hexcasting:slice)$(action)选择之提整$()、$(l:patterns/lists#hexcasting:splat)$(action)群体之拆解$()序列简单达成,但它用起来很方便。它和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()相性极佳,适合对付那些只需返回栈顶若干元素的伪栈。$(br2)$(o)凡事都可能,但不都有必要。$()",
- "special.overevaluate.geb": "盖布之策略:%s",
- "hexcasting.action.overevaluate:geb": "盖布之策略",
- "hexcasting.special.overevaluate:geb": "盖布之策略:%s",
- "overevaluate.page.geb": "剔除栈顶往下第 n 个元素,具体由图案的尾部长度决定。上方的示例分别会剔除第 2 个、第 3 个、第 4 个 iota。",
- "special.overevaluate.nut": "努特之策略:%s",
- "hexcasting.action.overevaluate:nut": "努特之策略",
- "hexcasting.special.overevaluate:nut": "努特之策略:%s",
- "overevaluate.page.nut": "将栈顶元素沉至栈顶往下第 n 个元素处,具体由图案的尾部长度决定。上方的示例分别会沉至第 2 个、第 3 个、第 4 个 iota 处。",
- "hexcasting.action.overevaluate:swap_one_three": "反照之策略",
- "overevaluate.page.swap_one_three.summary": "反照栈顶三个 iota 的顺序,将 A, B, C 变为 C, B, A。相当于交换栈顶元素和栈顶往下第三元素。",
- "hexcasting.action.overevaluate:swap_two_three": "泡浮之策略",
- "overevaluate.page.swap_two_three.summary": "使得栈顶往下第三元素上浮过栈顶往下第二元素,相当于交换它们。",
- "hexcasting.action.overevaluate:dup_many": "狄俄斯库里之策略,第二型",
- "overevaluate.page.dup_many.summary": "接受一个数,并复制栈顶开始所给数个元素,保留顺序。",
-
- "overevaluate.page.soroban.title": "珠算",
- "overevaluate.page.soroban.0": "这些图案能操纵一个虚计数器,称作“珠算计数器”。在$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()被占用或使用起来太麻烦时,这些图案就能派上用场,比如维护$(l:patterns/meta#hexcasting:for_each)$(action)托特$()循环的迭代次数。",
- "hexcasting.action.overevaluate:soroban_increment": "珠算之精思",
- "overevaluate.page.soroban_increment.summary": "压入珠算计数器的当前值,而后令其增加 1。计数器自 0 起始。",
- "hexcasting.action.overevaluate:soroban_decrement": "珠算之精思,第二型",
- "overevaluate.page.soroban_decrement.summary": "压入珠算计数器的当前值,而后令其减少 1。",
- "hexcasting.action.overevaluate:soroban_reset": "珠算之策略",
- "overevaluate.page.soroban_reset.summary": "将珠算计数器重置为 0。",
-
- "overevaluate.page.metas.title": "高阶元运行",
- "hexcasting.action.overevaluate:athena": "雅典娜之策略",
- "overevaluate.page.athena.summary": "运行一个图案列表,方式类似$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$(),但能够处理事故。",
- "overevaluate.page.athena.description": "如果所给图案列表在运行时出现事故,则会跳过触发点后方的列表内容,继续$(hex)咒术$()的主循环,不产生事故的效果。会返回图案列表是否招致了事故。$(br2)后页图案可进一步查询事故的信息。$(br2)$(o)勇往直前。$()",
- "hexcasting.action.overevaluate:athena_print": "雅典娜之揭示",
- "overevaluate.page.athena_print.summary": "揭示所处$(hex)咒术$()内$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。",
- "hexcasting.action.overevaluate:athena_log": "雅典娜之精思",
- "overevaluate.page.athena_log.summary": "如果世界中有对应的特殊力量,则会以$(o)文本$()形式返回$(l:metaevals#overevaluate:athena)$(action)雅典娜之策略$()最后一次捕获到的事故。",
- "hexcasting.action.overevaluate:apep": "阿佩普之策略",
- "overevaluate.page.apep.summary": "用第二列表指定的$(hex)咒术$()“折叠”/“fold”第一列表。",
- "overevaluate.page.apep.description": "第一次施放会将$(hex)咒术$()作用于第一和第二个 iota,结果暂存于栈顶。下一次施放作用于第一次暂存的 iota 和原本的第三个 iota,同样暂存于栈顶元素。重复此过程,直至穷尽第一列表。最后,返回最后一次暂存的 iota。$(br2)$(o)欧拉也玩过音乐。$()",
- "hexcasting.action.overevaluate:tutu": "图图之策略",
- "overevaluate.page.tutu.summary": "什么都不会做。",
- "overevaluate.page.tutu.description": "此图案看上去可能没什么用,但它很适合作为$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()和$(l:metaevals#overevaluate:janus)$(action)雅努斯之策略$()的“另一分支”。运行此图案不会消耗执行深度和媒质,不会产生粒子,也不会对世界产生任何影响。$(br2)$(o)唯一的取胜之道就是不要参与。$()",
- "hexcasting.action.overevaluate:janus": "雅努斯之策略",
- "overevaluate.page.janus.summary": "立即终止当前$(hex)咒术$(),无视所有限制。",
- "overevaluate.page.janus.description": "此策略适合在$(hex)咒术$()抵达期望状态时提前结束它,而不需考虑$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略$()、$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()、$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()的种种局限。$(br2)$(o)咒术之将亡,其媒质也善。$()",
- "hexcasting.action.overevaluate:maat": "玛阿特之策略",
- "overevaluate.page.maat.summary": "接受一个布尔值和任意 iota。若布尔值为 False,则产生事故并打印 iota。",
- "overevaluate.page.maat.description": "此图案很适合在某些条件未满足时跳出$(hex)咒术$()。$(br2)$(o)法庭内保持肃静。$()",
- "special.overevaluate.nephthys": "奈芙蒂斯之策略:%s",
- "hexcasting.action.overevaluate:nephthys": "奈芙蒂斯之策略",
- "hexcasting.special.overevaluate:nephthys": "奈芙蒂斯之策略:%s",
- "overevaluate.page.nephthys.summary": "弹出一个图案或图案列表,在栈顶往下一定位置处施放所给图案或列表,向下的元素数即是图案尾部的长度。达成的效果与外科医师之提整类似。",
- "overevaluate.page.nephthys.description": "这个图案非常好用,与$(l:patterns/stackmanip#hexcasting:mask)$(action)簿记员之策略$()配合几乎能处理栈中的所有问题,潜入栈中后压入 iota,再处理“栈顶”的 iota。这一操作的名字来源于哀悼和河流的女神,意指其“深埋”或“潜入”栈中的操作。$(br2)$(o)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()",
- "hexcasting.action.overevaluate:atalanta": "阿塔兰忒之策略",
- "overevaluate.page.atalanta.summary": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()或$(l:metaevals#overevaluate:sisyphus)$(action)西西弗斯之策略$()内部使用。效果与$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()类似,但不会完全停止迭代,而只是会跳过当前迭代剩余的部分。",
- "overevaluate.page.atalanta.description": "此图案常用作多重条件循环的“卫语句”。比如,在获取到实体列表后,可能只需根据一长串条件挑出一部分作为目标。使用此图案,即可避免造出层层嵌套的条件判断,而是在判断不通过时直接“$(o)continue$()”/“$(o)继续$()”到下一迭代,如此就无需执行本迭代内后续的语句了。$(br2)$(o)You shall not pass!$()",
- "hexcasting.action.overevaluate:castor": "卡斯托耳之策略",
- "overevaluate.page.castor.summary": "只应在$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()内部使用。详情见下一页。小心“钻研过深”事故。",
- "overevaluate.page.castor.description": "此图案会出栈一个 iota,并将其作为$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()的一个新迭代项,在当前迭代结束后立即开始。该迭代的栈顶元素即为所出栈的元素。想成把 iota 放到$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()所接受的迭代列表的开头,可能会更好理解。$(br2)$(o)不要永远沿着路走,而要走无路之处……并留下你的足迹。$()",
- "hexcasting.action.overevaluate:pollux": "波吕克斯之策略",
- "overevaluate.page.pollux.summary": "$(l:metaevals#overevaluate:castor)$(action)卡斯托耳之策略$()的兄弟图案,此图案会将新迭代置于所有迭代的末尾。同样有风险招致“钻研过深”事故。",
- "overevaluate.page.pollux.description": "效果与其兄弟图案基本一致,但新的迭代置于末尾。我曾阅读过详细记载使用这对图案的技术的卷轴,技术的名字是$(o)$(l:https://en.wikipedia.org/wiki/Depth-first_search)深度优先搜索$()和$(o)$(l:https://en.wikipedia.org/wiki/Breadth-first_search)广度优先搜索$()。$(br2)$(o)深入之前应先探索表面。$()",
- "hexcasting.action.overevaluate:sisyphus": "西西弗斯之策略",
- "overevaluate.page.sisyphus.summary": "接受一个图案列表,并持续不断运行,直至遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()或$(l:metaevals#overevaluate:janus)$(action)雅努斯之策略$()。",
- "overevaluate.page.sisyphus.description": "我曾听过有些能够自我复制的$(hex)咒术$(),叫做“$(o)自产生程序$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()和栈会在迭代间保留。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()",
- "hexcasting.action.overevaluate:themis": "忒弥斯之策略",
- "overevaluate.page.themis.summary": "接受一个列表和一个图案列表,或一个列表与单个图案;在第一参数处运行第二参数,并排序结果,运行的过程与$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略$()类似。",
- "overevaluate.page.themis.description": "在每次迭代过后,此法术要求在栈顶有一个数对应该 iota。在策略结束时,它会按照 iota 对应数升序排列 iota,并组为列表返回。对应数一致的 iota 保留相对位置。如果遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$(),返回的经排序列表中将仅包括处理过的 iota。$(br2)$(o)重排——自然唯一无法抵消的变化。$()"
-}
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
deleted file mode 100644
index f01542e875e4..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "scryglass.page.scryglass.title": "Viewforming",
- "scryglass.page.scryglass.0": "I can use _Hexcasting to conjure small strands of visible _media just before my eyes using a family of spells called the oculus spells. The small strand of _media—called an $(thing)Icon$()—dissolves in just about a second after conjuration, but if I had some method to automatically cast a _Hex, I could permanently augment my own vision to suit my needs.",
- "scryglass.page.scryglass.1": "All oculus spells take an integer henceforth referred to as an index, which will be used to refer to and distinguish $(thing)Icons$$(). Using a used index in an oculus spell will destroy the old $(thing)Icon$() and reassign it to the new one.$(br2)$(o)Virtual instruments spread out in front of her like playing cards show her relative position and velocity, her airspeed and orientation, her oxygen levels, mana levels, and her degree of concentration.$()",
- "scryglass.page.scryglass.2": "Oculus spells also typically want a position to draw to, in the form of a vector. The x and y-components of the vector I pass in are coordinates on a coordinate plane whose origin is at the center of my vision. $(l:scryglass#scryglass:get_window_size)$(action)Periphery Reflection$() can be used to determine the full range of my vision. The z-component is used to determine which $(thing)Icons$() appear over others.",
- "hexcasting.action.scryglass:get_window_size": "Periphery Reflection",
- "scryglass.page.get_window_size.summary": "Returns the full width and height of my vision as a vector.",
- "hexcasting.action.scryglass:get_icons": "Icons Reflection",
- "scryglass.page.get_icons.summary": "Pushes a list of the indices of all the $(thing)Icons$() I have. This appears as a list of numbers.",
- "hexcasting.action.scryglass:remove_icon": "Clear Icon",
- "scryglass.page.remove_icon.summary": "Immediately clears an $(thing)Icon$().",
- "scryglass.page.scryglass.3": "Some oculus spells also want a color, which is taken as a vector where the components correspond to red, green, and blueness of an intended color, ranging from 0 to 1.",
- "hexcasting.action.scryglass:draw_text": "Draw Text",
- "scryglass.page.draw_text.summary": "Takes an index, a position, a number, and any iota. Conjures an $(thing)Icon$() displaying that iota.",
- "scryglass.page.draw_text.description": "The number determines the mode of text justification. 0 centers the text at the position given, 1 aligns the left side to the position given, and 2 aligns the right side to the position given.",
- "hexcasting.action.scryglass:rotate_icon": "Rotate Icon",
- "scryglass.page.rotate_icon.summary": "Takes an index and an amount of rotation counterclockwise in terms of a full circle. Rotates the icon.",
- "hexcasting.action.scryglass:scale_icon": "Scale Icon",
- "scryglass.page.scale_icon.summary": "Takes an index and a scaling factor. Scales the icon.",
- "hexcasting.action.scryglass:draw_rect": "Draw Rectangle",
- "scryglass.page.draw_rect.summary": "Takes an index, a position, a size, and a color. Conjures an $(thing)Icon$() displaying that rectangle.",
- "hexcasting.action.scryglass:draw_line": "Draw Line",
- "scryglass.page.draw_line.summary": "Takes an index, a position, a size, and a color. Conjures an $(thing)Icon$() that joins between the two with a thin line."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
deleted file mode 100644
index 5e22dc7f5f3f..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "scryglass.page.scryglass.title": "视野塑影",
- "scryglass.page.scryglass.0": "$(hex)咒法学$()可在眼前构筑可视的$(media)媒质$()丝,用到的一系列法术统称为“眼眸法术”。这种$(media)媒质$()丝称作$(thing)像图$(),且会在构筑完毕约 1 秒后消散。如果有自动施放$(hex)咒术$()的方法,也许就能永久性按需求增强我的视觉了。",
- "scryglass.page.scryglass.1": "所有眼眸法术都会接受一个整数用作索引,以此引用和区分$(thing)像图$()。在眼眸法术中使用已被占用的索引,会销毁原有的$(thing)像图$()再重新分配。$(br2)$(o)虚拟的仪器在她的眼前铺开,仿佛纸牌一般展示着她的相对位置和速度,她的空速和朝向,她的氧气水平、魔力水平,还有她精神的集中度。$()",
- "scryglass.page.scryglass.2": "眼眸法术通常还会需要一个用于绘制的位置向量。所给向量的 X 和 Y 坐标对应视野中的坐标位置,该坐标平面以视野中央为原点。$(l:scryglass#scryglass:get_window_size)$(action)边缘之精思$()可用于检测视野的范围。Z 分量则用于决定哪些$(thing)像图$()出现在其他$(thing)像图$()之上。",
- "hexcasting.action.scryglass:get_window_size": "边缘之精思",
- "scryglass.page.get_window_size.summary": "以向量返回我视野的全宽和全高。",
- "hexcasting.action.scryglass:get_icons": "像图之精思",
- "scryglass.page.get_icons.summary": "返回我拥有的所有$(thing)像图$()的索引列表。返回的似乎是一个数列表。",
- "hexcasting.action.scryglass:remove_icon": "清除像图",
- "scryglass.page.remove_icon.summary": "立刻清除所给$(thing)像图$()。",
- "scryglass.page.scryglass.3": "部分眼眸法术还需一个颜色,需以向量形式提供,各分量代表目标颜色的红、绿、蓝浓度,取值范围为 0 到 1。",
- "hexcasting.action.scryglass:draw_text": "绘制文本",
- "scryglass.page.draw_text.summary": "接受一个索引、一个位置、一个数、一个任意 iota。将该 iota 构筑显示为$(thing)像图$()。",
- "scryglass.page.draw_text.description": "提供的数用于对齐文本。0 为居中至给定位置,1 为左对齐至给定位置,2 为右对齐。",
- "hexcasting.action.scryglass:rotate_icon": "旋转像图",
- "scryglass.page.rotate_icon.summary": "接受一个索引,和一个代表逆时针旋转量的数,以整圆计。旋转像图。",
- "hexcasting.action.scryglass:scale_icon": "缩放像图",
- "scryglass.page.scale_icon.summary": "接受一个索引、一个缩放因数。缩放像图。",
- "hexcasting.action.scryglass:draw_rect": "绘制长方形",
- "scryglass.page.draw_rect.summary": "接受一个索引、一个位置、一个尺寸、一个颜色。构筑一个显示所定义长方形的$(thing)像图$()。",
- "hexcasting.action.scryglass:draw_line": "绘制线段",
- "scryglass.page.draw_line.summary": "接受一个索引、两个位置、一个颜色。构筑连接两点的细线$(thing)像图$()。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
deleted file mode 100644
index 9e0fcc64c06c..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "advancements.hexcassettes.quinio.title": "QUINIO",
- "advancements.hexcassettes.quinio.description": "Create a daemon.",
- "advancements.hexcassettes.tape_worm.title": "Tape Worm?",
- "advancements.hexcassettes.tape_worm.description": "Consume a cassette tape.",
- "advancements.hexcassettes.full_arsenal.title": "Full Album",
- "advancements.hexcassettes.full_arsenal.description": "Acquire a full arsenal of cassettes.",
- "key.categories.hexcassettes": "Hexcassettes",
- "key.hexcassettes.ponder_cassette": "Ponder Cassettes",
- "item.hexcassettes.cassette": "Cassette",
- "subtitles.hexcassettes.cassette_eject": "Cassette ejects",
- "subtitles.hexcassettes.cassette_fail": "Cassette clicks",
- "subtitles.hexcassettes.cassette_insert": "Cassette inserted",
- "subtitles.hexcassettes.cassette_loop": "Cassette whirrs",
-
- "hexcasting.mishap.hexcassettes:no_free_cassettes": "Could not queue Cassette.",
-
- "hexcassettes.page.async.title": "Asynchronous Hexes",
- "hexcassettes.page.async.0": "As part of their nature, _Hexes evaluate in their entirety in one instant. To postpone _Hexes for later, Nature has devised quite the whimsical solution: a $(item)Cassettes$() that must be crafted and then $(o)subsumed$(). I may have up to six at any time. Each one holds a _Hex I requested to delay until that _Hex is ready to cast. After casting, the $(thing)Cassette$() becomes free to hold other _Hexes.",
- "hexcassettes.page.async.craft": "After plating a $(item)Music Disc$() with a hefty amount of $(item)$(l:items/amethyst)Charged Amethyst$() to enable the $(o)abstraction$(), I can add my glorious creation to my mind's collection using a combination of magic, willpower, and a lot of chewing.",
- "hexcasting.action.hexcassettes:enqueue": "Enqueue",
- "hexcassettes.page.enqueue.summary.0": "Queues a _Hex to cast after that many twentieths of a second. Inherits the label of the current $(thing)Cassette$() if possible or a randomized pattern. Label is returned.",
- "hexcassettes.page.async.1": "If $(l:async#hexcassettes:enqueue)$(action)Enqueue$() can not find a free $(thing)Cassette$(), it incurs the Parallel Processing mishap, terminating all of my $(thing)Cassettes$().$(br2)The minimal time I can delay a _Hex seems to hint that the world I live in has a disturbingly low $(o)temporal resolution$().. best not to dwell on that.$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
- "hexcassettes.page.async.2": "The label of a $(thing)Cassette$() is a pattern that distinguishes it from other $(thing)Cassettes$(). I will need this label if I want to cancel or query information about it.$(br2)I can view all my $(thing)Cassettes$() by holding $(thing)$(k:hexcassettes.view_cassettes)$(). Busy $(thing)Cassettes$() are sunken and have their label rendering to the side of them.$(br2)Dying also forcibly terminates all of my $(thing)Cassettes$(). I can rest easy that I will not trap myself in an endless death cycle.",
- "hexcassettes.page.async.3": "If a $(thing)Cassette$() queues a copy of itself capable of further enqueueing, a phenomenon emerges that ancient _Hexcasters call a daemon: passive, constant _Hexcasting.$(br2)Study into this branch of _Hexcasting seems limited due to the great danger of manipulating time: _Hexes cast by $(thing)Cassette$() use exclusively _media from my inventory. If left unchecked, it can easily drain my _media and then my life.",
- "hexcasting.action.hexcassettes:dequeue": "Dequeue",
- "hexcassettes.page.dequeue.summary": "Terminates the $(thing)Cassette$() with the provided label, freeing it instantly and cancelling the _Hex within it.",
- "hexcasting.action.hexcassettes:killall": "Disqueue",
- "hexcassettes.page.killall.summary": "Terminates all $(thing)Cassettes$(). Useful for ouroboros-like _Hexes that bypass regular dequeuing via two mutually resurrecting $(thing)Cassettes$().",
- "hexcasting.action.hexcassettes:specs": "Threading Reflection",
- "hexcassettes.page.specs.summary": "Pushes the total number of $(thing)Cassettes$() that I have available to me in my mind's collection.",
- "hexcasting.action.hexcassettes:busy": "Operating Reflection",
- "hexcassettes.page.busy.summary": "Pushes a list of the labels of all my busy $(thing)Cassettes$().",
- "hexcasting.action.hexcassettes:inspect": "Program Distillation",
- "hexcassettes.page.inspect.summary": "Pushes whether a given player has a $(thing)Cassette$() with a certain label.",
- "hexcasting.action.hexcassettes:foretell": "Oracle Purification",
- "hexcassettes.page.foretell.summary": "Pushes the twentieths of a second until the $(thing)Cassette$() with the given label fires. Pushes $(l:casting/influences)$(thing)Null$() if there is no such $(thing)Cassette$().",
- "hexcassettes.page.enqueue.summary.1": "A variant of $(l:async#hexcassettes:enqueue)$(action)Enqueue$() that takes an additional pattern. Queues the _Hex under the given label.",
- "hexcassettes.page.async.4": "If there is already a $(thing)Cassette$() of the provided label, the provided _Hex replaces it and takes its slot.$(br2)Otherwise, it schedules the _Hex to an empty slot. If there are no available slots, it incurs the Parallel Processing mishap, terminating all of my $(thing)Cassettes$().",
- "hexcasting.action.hexcassettes:self": "State Reflection",
- "hexcassettes.page.self.summary": "Pushes the current pattern of the $(thing)Cassette$() this _Hex is running in or $(l:casting/influences)$(thing)Null$() if it is not running in a $(thing)Cassette$()."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
deleted file mode 100644
index f5fc42deb26e..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "advancements.hexcassettes.quinio.title": "QUINIO",
- "advancements.hexcassettes.quinio.description": "制造一个守护进程",
- "advancements.hexcassettes.tape_worm.title": "磁带长得像虫子?",
- "advancements.hexcassettes.tape_worm.description": "吃下一盒磁带",
- "advancements.hexcassettes.full_arsenal.title": "完整专辑",
- "advancements.hexcassettes.full_arsenal.description": "填满磁带库",
- "key.categories.hexcassettes": "Hexcassettes",
- "key.hexcassettes.ponder_cassettes": "思索磁带",
- "item.hexcassettes.cassette": "磁带",
- "subtitles.hexcassettes.cassette_eject": "磁带:弹出",
- "subtitles.hexcassettes.cassette_fail": "磁带:咔哒",
- "subtitles.hexcassettes.cassette_insert": "磁带:插入",
- "subtitles.hexcassettes.cassette_loop": "磁带:嗡嗡作响",
-
- "hexcasting.mishap.hexcassettes:no_free_cassettes": "无法排队至磁带。",
-
- "hexcassettes.page.async.title": "异步咒术",
- "hexcassettes.page.async.0": "$(hex)咒术$()会在单个时间片段内完全施放,这是它们的本性。而为延迟$(hex)咒术$(),自然设计了一套有些奇怪的方案:$(item)一盒磁带$(),需要$(o)食用$()的磁带。我最多可同时持有六盒磁带。每盒磁带都可容纳单个需延迟执行的$(hex)咒术$(),直至可以施放时再施放。此后,该$(thing)磁带$()会空出,供其他$(hex)咒术$()使用。",
- "hexcassettes.page.async.craft": "为促使$(item)音乐唱片$()与$(media)媒质$()$(o)融合$(),我为其镀上了相当多的$(item)$(l:items/amethyst)充能紫水晶$()。如需将所得的智慧结晶纳入我的意识,魔法、意志、持之以恒地咀嚼,三者缺一不可。",
- "hexcasting.action.hexcassettes:enqueue": "入队列",
- "hexcassettes.page.enqueue.summary.0": "令一个$(hex)咒术$()入队列,并在所给数个 1/20 秒后施放。如可行,则继承对应$(thing)磁带$()的标识;否则随机生成一个图案。法术会返回该图案。",
- "hexcassettes.page.async.1": "如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故:终止我的所有$(thing)磁带$()。$(br2)施放的延时有一个最小值,这似乎表明我所处世界的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()",
- "hexcassettes.page.async.2": "$(thing)磁带$()间使用图案进行标识和区分,取消$(thing)磁带$()和获取其信息都需借助该图案。$(br2)按住$(thing)$(k:hexcassettes.view_cassettes)$()可以查看我的所有$(thing)磁带$()。忙状态的$(thing)磁带$()会显示为压入状态,且在其侧面显示对应图案标识。$(br2)死亡会强制将所有$(thing)磁带$()清出队列。如此就无需担心了——我不会陷入无穷无尽的死亡循环了。",
- "hexcassettes.page.async.3": "若$(thing)磁带$()将可继续执行入队列操作的自身副本入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(br2)$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()施放的$(hex)咒术$()只会消耗我物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。",
- "hexcasting.action.hexcassettes:dequeue": "出队列",
- "hexcassettes.page.dequeue.summary": "终止所给标识对应的$(thing)磁带$(),让其进入空闲状态,并取消其中$(hex)咒术$()。",
- "hexcasting.action.hexcassettes:killall": "终止队列",
- "hexcassettes.page.killall.summary": "终止所有$(thing)磁带$()。很适合给那些和衔尾蛇一样的$(hex)咒术$()用:两个互相激活的$(thing)磁带$()无法以常规手段出队列。",
- "hexcasting.action.hexcassettes:specs": "线程之精思",
- "hexcassettes.page.specs.summary": "返回我意识中当前的$(thing)磁带$()总数。",
- "hexcasting.action.hexcassettes:busy": "运作之精思",
- "hexcassettes.page.busy.summary": "返回所有$(thing)磁带$()的图案标识组成的列表。",
- "hexcasting.action.hexcassettes:inspect": "程序之馏化",
- "hexcassettes.page.inspect.summary": "检验所给玩家是否拥有以所给图案标识的$(thing)磁带$()。",
- "hexcasting.action.hexcassettes:foretell": "先知之纯化",
- "hexcassettes.page.foretell.summary": "返回所给图案对应的$(thing)磁带$()会在多少个 1/20 秒后施放;若无此类$(thing)磁带$(),返回 $(l:casting/influences)$(thing)Null$()。",
- "hexcassettes.page.enqueue.summary.1": "$(l:async#hexcassettes:enqueue)$(action)入队列$()的一个变种,还需向其提供一个图案。此图案会将$(hex)咒术$()排入所给标识的队列。",
- "hexcassettes.page.async.4": "如果已经有$(thing)磁带$()使用了所给标识,则所给$(hex)咒术$()会覆盖该$(thing)磁带$()。$(br2)否则会将$(hex)咒术$()排至空槽位。如果没有足够的空槽位,则招致“并行处理”事故:终止所有的$(thing)磁带$()。",
- "hexcasting.action.hexcassettes:self": "状态之精思",
- "hexcassettes.page.self.summary": "返回当前$(hex)咒术$()所在$(thing)磁带$()的图案。若不在$(thing)磁带$()中运行,则返回 $(l:casting/influences)$(thing)Null$()。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
deleted file mode 100644
index 0f30d194383f..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "hexcasting.action.book.hexcellular:create_property": "Schrödinger's Refl.",
- "hexcasting.action.book.hexcellular:readonly_property": "Schrödinger's Purif.",
- "hexcasting.action.book.hexcellular:set_property": "Schrödinger's Gambit",
- "hexcasting.action.book.hexcellular:observe_property": "Observation Purif.",
-
- "hexcasting.mishap.invalid_value.class.property": "a property iota",
- "hexcasting.mishap.invalid_value.writeable_prop": "a writeable property iota",
-
- "hexcellular.page.properties.title": "Property Iota",
- "hexcellular.page.properties.0": "I can etch iota as laws of the universe themselves, known as $(thing)Properties$(). Any _Hexcasting medium can interact with $(thing)Properties$() via a reference called a property iota.$(br2)Two _Hexcasters with property iotas pointing to the same $(thing)Property$() can write to one copy and read from the other to instantly transmit information.",
- "hexcellular.page.properties.1": "$(thing)Properties$() can also be used to communicate $(o)state$() within and between my _Hexcasting appliances. For instance, a $(l:items/hexcasting)casting device$() using a $(thing)Property$() that it increments in order to remember how many times it has been used and do something different each time.$(br2)$(o)Spooky action from a distance...$()",
- "hexcasting.action.hexcellular:create_property": "Schrödinger's Reflection",
- "hexcellular.page.create_property.summary": "Creates a property iota for a random $(thing)Property$(). Costs about five $(l:items/amethyst)$(item)Charged Amethyst$() to etch this law into the universe.",
- "hexcellular.page.properties.2": "When using $(thing)Properties$(), the created property iota is the $(o)only$() reference to the $(thing)Property$(). I should take care to immediately save the iota lest I lose the only interface to it.$(br2)While the cost to create one is steep, once created, the property iota allows for simple connection to the $(thing)Property$(), allowing me to read and write to it cheaply forevermore.",
- "hexcasting.action.hexcellular:observe_property": "Observation Purification",
- "hexcellular.page.observe_property.summary": "Observes the current value of the property iota.",
- "hexcasting.action.hexcellular:set_property": "Schrödinger's Gambit",
- "hexcellular.page.set_property.summary": "Sets the property iota. Costs about a tenth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
- "hexcellular.page.properties.3": "Occasionally, I may want to pass out property iota without the risk of someone else overwriting their contents. In such cases, I can create read-only copies. They can still be read using $(l:properties#hexcellular:observe_property)$(action)Observation Purification$() and will refer to the $(thing)Property$() as usual but they can not be written to with $(l:properties#hexcellular:set_property)$(action)Schrödinger's Gambit$().$(br2)To distinguish, read-only property iotas are bolden.",
- "hexcasting.action.hexcellular:readonly_property": "Schrödinger's Purification",
- "hexcellular.page.readonly_property.summary": "Creates a read-only property iota that refers to the same $(thing)Property$() as the given property iota."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
deleted file mode 100644
index a657275a1e34..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "hexcasting.action.book.hexcellular:create_property": "薛定谔之精思",
- "hexcasting.action.book.hexcellular:readonly_property": "薛定谔之纯化",
- "hexcasting.action.book.hexcellular:set_property": "薛定谔之策略",
- "hexcasting.action.book.hexcellular:observe_property": "观测之纯化",
-
- "hexcasting.mishap.invalid_value.class.property": "一个质性iota",
- "hexcasting.mishap.invalid_value.writeable_prop": "一个可写的质性iota",
-
- "hexcellular.page.properties.title": "质性 Iota",
- "hexcellular.page.properties.0": "我可向宇宙的法则中直接刻入信息,即$(thing)质性$()。任意$(hex)咒法学$()施法媒介都可与$(thing)质性$()交互,索引途径称作质性 iota。$(br2)如果两位$(hex)咒术师$()各自持有指向同一$(thing)质性$()的质性 iota,则向其中一方写入再从另一方读取,即可瞬时传输信息。",
- "hexcellular.page.properties.1": "还可用$(thing)质性$()在$(hex)咒法学$()设备间共享$(o)状态$()。比如说,$(l:items/hexcasting)施法设备$()使用的$(thing)质性$()可以不断递增,以此记忆设备的使用次数,方便在不同次数时做出不同操作。$(br2)$(o)鬼魅般的超距作用……$()",
- "hexcasting.action.hexcellular:create_property": "薛定谔之精思",
- "hexcellular.page.create_property.summary": "创造一个指向随机$(thing)质性$()的质性 iota。向宇宙蚀刻这道法则需消耗大约 5 个$(l:items/amethyst)$(item)充能紫水晶$()。",
- "hexcellular.page.properties.2": "创建的$(thing)质性$()$(o)只$()可由随之创造的质性 iota 及其副本引用。为保险起见,创建后应当立刻存下一份副本;一旦丢失就无法交互了。$(br2)虽然制造此类 iota 的消耗很大,但制造后即会与该$(thing)质性$()建立简单易达的链接,此后无需过多消耗就能读写。",
- "hexcasting.action.hexcellular:observe_property": "观测之纯化",
- "hexcellular.page.observe_property.summary": "观测质性 iota 当前的值。",
- "hexcasting.action.hexcellular:set_property": "薛定谔之策略",
- "hexcellular.page.set_property.summary": "设置质性 iota 的值。消耗大约 1/10 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hexcellular.page.properties.3": "有些时候,送出质性 iota 时需保证其他人不会覆写其内容。只读副本即可达成这一目的。这些副本仍可由$(l:properties#hexcellular:observe_property)$(action)观测之纯化$()读取,且也会指向对应的$(thing)质性$(),但$(l:properties#hexcellular:set_property)$(action)薛定谔之策略$()无法向其写入。$(br2)为方便区分,只读质性 iota 会加粗显示。",
- "hexcasting.action.hexcellular:readonly_property": "薛定谔之纯化",
- "hexcellular.page.readonly_property.summary": "以给定质性 iota 对应的$(thing)质性$()为基础制造一个只读副本。"
-}
\ No newline at end of file
From 944054c18fb703049701ee96fb8406d7179c428d Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:27:17 +0800
Subject: [PATCH 67/78] =?UTF-8?q?HexMachina=20HexChanting=20HexPats=20HexT?=
=?UTF-8?q?hings=20Phlexiful=20transfer=EF=BC=9A#5410?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../hex_machina/lang/en_us.json | 66 -------------------
.../hex_machina/lang/zh_cn.json | 66 -------------------
.../hexchanting/lang/en_us.json | 28 --------
.../hexchanting/lang/zh_cn.json | 28 --------
.../modrinth-hexpats/hexpats/lang/en_us.json | 10 ---
.../modrinth-hexpats/hexpats/lang/zh_cn.json | 10 ---
.../hexthingy/lang/en_us.json | 18 -----
.../hexthingy/lang/zh_cn.json | 18 -----
.../phlexiful/lang/en_us.json | 42 ------------
.../phlexiful/lang/zh_cn.json | 42 ------------
10 files changed, 328 deletions(-)
delete mode 100644 projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json
deleted file mode 100644
index 1b0abcc3517a..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/en_us.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "item.hex_machina.hex_gun": "Hex Gun",
- "item.hex_machina.amethyst_bullet": "Amethyst Bullet",
- "item.hex_machina.amethyst_bullet.block_projectile": "Block Bullet",
- "item.hex_machina.amethyst_bullet.target_projectile": "Target Bullet",
-
- "item.hex_machina.scrying_goggles": "Scrying Goggles",
- "item.hex_machina.mind_phial": "Mind Phial",
- "item.hex_machina.entity_capsule": "Entity Capsule",
-
- "tab.hex_machina": "Hex Machina",
-
- "effect.hex_machina.expose_mind": "Expose Mind",
-
- "mishap.hex_machina.not_gun": "Can't cast this pattern outside of a gun",
- "mishap.hex_machina.entity_capsule.expect_empty": "Empty %s",
- "mishap.hex_machina.entity_is_brainswept": "Can't capture a mind that is empty",
- "mishap.hex_machina.not_golem": "Can't cast this pattern outside of a golem",
-
- "hexcasting.action.hex_machina:current_bullet": "Gunslinger's Reflection",
- "hexcasting.action.hex_machina:previous_bullet": "Gunslinger's Regr.",
- "hexcasting.action.hex_machina:next_bullet": "Gunslinger's Prog.",
- "hexcasting.action.hex_machina:roulette": "Gunslinger's Roulette",
- "hexcasting.action.hex_machina:get_bullet": "Colt's Reflection",
-
- "hexcasting.action.hex_machina:contain": "Encapsulate",
- "hexcasting.action.hex_machina:release": "Deploy",
- "hexcasting.action.hex_machina:capsule/has_entity": "Ketchum's Reflection",
-
- "hexcasting.action.hex_machina:expose_mind": "Expose Mind",
-
- "hex_machina.tooltip.mind_media.amount": "%s Dust",
-
- "hex_machina.entry.patterns.gun": "Guns",
- "hex_machina.entry.patterns.entity_capsule": "Entity Capsule",
- "hex_machina.entry.patterns.expose_mind": "Expose Mind",
-
- "hex_machina.page.guns.current_bullet": "Gets the current bullet slot in the gun",
- "hex_machina.page.guns.previous_bullet": "Cycles to the previous bullet in the gun",
- "hex_machina.page.guns.next_bullet": "Cycles to the next bullet in the gun",
- "hex_machina.page.guns.roulette": "Cycles §on§r slots in the gun",
- "hex_machina.page.guns.get_bullet": "Gets a reference to the bullet casting this hex",
-
- "hex_machina.page.capsule.contain": "Reads a entity from the stack and stores that entity in a entity capsule, costs 1 $(l:items/amethyst)$(item)Amethyst Dust./$ per health point of the target entity",
- "hex_machina.page.capsule.release": "Reads a position from the stack and releases the entity from the entity capsule at that position, costs 1 $(l:items/amethyst)$(item)Amethyst Shard./$",
- "hex_machina.page.capsule.has_entity": "Reads if the entity capsule in the other hand has a entity stored",
-
- "hex_machina.page.great_spells.expose_mind": "Exposes the mind of an entity allowing it to be collected on kill by a Mind Phial, costs 1 $(l:items/amethyst)$(item)Amethyst Shard./$",
-
- "hex_machina.entry.items.gun": "Gun and Bullets",
-
- "hex_machina.page.items.gun.spotlight": "Although I can to make $(l:items/hexcasting)$(item)Cyphers/$, $(l:items/hexcasting)$(item)Trinkets/$ and $(l:items/hexcasting)$(item)Artifacts/$. It seems like I might have overlooked my options for storing and casting my hexes.$(br2)The $(item)Hex Gun/$ can hold up to 6 bullets and cast spells that are stored in them$(br2)Each shot cycling the barrel to the next available bullet.",
- "hex_machina.page.items.bullet.amethyst_bullet": "The $(item)Amethyst Bullet/$ seems to work the foci do, but it can be cast by the gun directly.",
- "hex_machina.page.items.bullet.target_bullet": "The $(item)Target Bullet/$ works similarly, but creates a shimmering projectile that on collision with a entity pushes that entity to the stack.$(br2)It seems to copy my pigment colors on flight, its §opretty!§r",
- "hex_machina.page.items.bullet.block_bullet": "The $(item)Block Bullet/$ works similarly to the target bullet, but instead pushes the block position it hits to the stack$(br2)Also interesting to note that casting this way seems to give me a bit of ambit around where projectiles hit, for both the target bullet and this one.",
-
- "hex_machina.entry.items.scrying_goggles": "Scrying Goggles",
- "hex_machina.page.items.scrying_goggles.spotlight": "One $(l:items/lens)$(item)Scrying Lens/$ on its own allows me to see properties of the world and block distractions in my vision when casting hexes.$(br2)I expanded the concept into goggles! It doesn't seem that I can see anything that I couldn't with one lens, but it allows me to have better focus while casting hexes!",
-
- "hex_machina.entry.items.entity_capsule": "Entity Capsule",
- "hex_machina.page.items.entity_capsule.spotlight": "Being able to store hexes into $(item)Foci/$ is really helpful. By expanding this concept to its limit Im now able to store also creatures.$(br2)The Entity Capsule allows me to encode entities into media for storage, and I can decode that same entity again back to its original state.",
-
- "hex_machina.entry.items.mind_phial": "Mind Phial",
- "hex_machina.page.items.mind_phial.spotlight": "Getting _Media can be hard. After some tinkering it seems that I can $(l:patterns/great_spell/expose_mind)$(item)Expose the Mind/$ of a creature and I've glimpsed a potential way to get more _Media.$(br2)This Phial is peculiar — it can't be recharged by normal means, but it is bottomless: there is no limit to the amount of _Media it could store...",
- "hex_machina.page.items.mind_phial.page_2": "Exposing the mind of a creature allows me to extract the _Media it contains right before its death and store in that strange Phial.$(br2)It seems to be 'excited' to collect more and more _Media this way, somehow getting more _Media than what would be possible.$(br2)After some research the Phial seems to get the most _Media when its empty, with every consecutive extraction yielding less and less..."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json
deleted file mode 100644
index fb512c3e3ab2..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hex-machina/hex_machina/lang/zh_cn.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "item.hex_machina.hex_gun": "咒术枪",
- "item.hex_machina.amethyst_bullet": "紫水晶术弹",
- "item.hex_machina.amethyst_bullet.block_projectile": "方块术弹",
- "item.hex_machina.amethyst_bullet.target_projectile": "目标术弹",
-
- "item.hex_machina.scrying_goggles": "探知护目镜",
- "item.hex_machina.mind_phial": "意识之瓶",
- "item.hex_machina.entity_capsule": "实体胶囊",
-
- "tab.hex_machina": "Hex Machina",
-
- "effect.hex_machina.expose_mind": "开放意识",
-
- "mishap.hex_machina.not_gun": "无法在咒术枪之外运行此图案。",
- "mishap.hex_machina.entity_capsule.expect_empty": "空%s",
- "mishap.hex_machina.entity_is_brainswept": "无法捕捉一片虚无的意识",
- "mishap.hex_machina.not_golem": "无法在傀儡之外运行此图案",
-
- "hexcasting.action.hex_machina:current_bullet": "快枪手之精思",
- "hexcasting.action.hex_machina:previous_bullet": "快枪手之退转",
- "hexcasting.action.hex_machina:next_bullet": "快枪手之进转",
- "hexcasting.action.hex_machina:roulette": "快枪手之轮转",
- "hexcasting.action.hex_machina:get_bullet": "柯尔特之精思",
-
- "hexcasting.action.hex_machina:contain": "胶囊捕获",
- "hexcasting.action.hex_machina:release": "胶囊释放",
- "hexcasting.action.hex_machina:capsule/has_entity": "小智之精思",
-
- "hexcasting.action.hex_machina:expose_mind": "开放意识",
-
- "hex_machina.tooltip.mind_media.amount": "%s 紫水晶粉",
-
- "hex_machina.entry.patterns.gun": "枪械",
- "hex_machina.entry.patterns.entity_capsule": "实体胶囊",
- "hex_machina.entry.patterns.expose_mind": "开放意识",
-
- "hex_machina.page.guns.current_bullet": "获取枪械的当前弹槽。",
- "hex_machina.page.guns.previous_bullet": "循环切换至枪中前一术弹。",
- "hex_machina.page.guns.next_bullet": "循环切换至枪中后一术弹。",
- "hex_machina.page.guns.roulette": "循环切换 $(o)n/$ 个弹槽。",
- "hex_machina.page.guns.get_bullet": "获取施放当前咒术的术弹的引用 iota。",
-
- "hex_machina.page.capsule.contain": "从栈中获取一个实体,并将其存入实体胶囊。目标实体每有 1 点生命值消耗 1 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hex_machina.page.capsule.release": "从栈中获取一个位置向量,并将实体胶囊中的实体释放到该处。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
- "hex_machina.page.capsule.has_entity": "检验另一只手中的实体胶囊内有无实体。",
-
- "hex_machina.page.great_spells.expose_mind": "令实体的意识对外开放,击杀该实体时可用意识之瓶收集其意识。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
-
- "hex_machina.entry.items.gun": "枪械与术弹",
-
- "hex_machina.page.items.gun.spotlight": "虽然$(l:items/hexcasting)$(item)杂件/$、$(l:items/hexcasting)$(item)饰品/$、$(l:items/hexcasting)$(item)造物/$的制造相对简单,但我似乎还是忽略了咒术的施放和存储手段的可能性。$(br2)$(item)咒术枪/$可装载最多 6 枚术弹,且可施放术弹中的咒术。$(br2)每次发射都会把弹巢转至下一枚可用的术弹。",
- "hex_machina.page.items.bullet.amethyst_bullet": "$(item)紫水晶术弹/$的功能与核心类似,但咒术枪可直接施放其中 iota。",
- "hex_machina.page.items.bullet.target_bullet": "$(item)目标术弹/$的功效类似,但它在发射后会产生一个微微闪光的弹射物,命中实体时会将该实体压入栈。$(br2)飞行时留下的尾迹会是我染色剂的颜色,真的很$(o)漂亮/$!",
- "hex_machina.page.items.bullet.block_bullet": "$(item)方块术弹/$的功效与目标术弹类似,但它压入的是命中方块的位置向量。$(br2)值得注意的是,后两种术弹似乎会将命中位置周围的较小区域纳入我的影响范围。",
-
- "hex_machina.entry.items.scrying_goggles": "探知护目镜",
- "hex_machina.page.items.scrying_goggles.spotlight": "$(l:items/lens)$(item)探知透镜/$仅凭自身就能揭示世界的属性,还会在施法时屏蔽可能导致分心的事物。$(br2)我成功把这一概念拓展到了护目镜里!它有的功能似乎透镜也有,但好歹施法时可以把注意力再集中些了!",
-
- "hex_machina.entry.items.entity_capsule": "实体胶囊",
- "hex_machina.page.items.entity_capsule.spotlight": "咒术可用$(item)核心/$存储——这一概念就极有启发性。把这种概念拓展到极限,就可以存储生物了。$(br2)实体胶囊可将实体编码为$(media)媒质/$以供存储,还可将经过编码的实体还原成它们原本的形态。",
-
- "hex_machina.entry.items.mind_phial": "意识之瓶",
- "hex_machina.page.items.mind_phial.spotlight": "$(media)媒质/$很难获取。经过一段时间的设计,我应该可以让生物的$(l:patterns/great_spell/expose_mind)$(item)意识对外开放/$了。或许有助于获取更多$(media)媒质/$。$(br2)这种试剂瓶相当奇特——它无法由常规手段充能,但它似乎深不见底,无论多少$(media)媒质/$都能存得下……",
- "hex_machina.page.items.mind_phial.page_2": "击杀意识对外开放的生物,我便可以将其$(media)媒质/$提取到前文所提的奇特试剂瓶里。$(br2)这种试剂瓶似乎会因此变得“兴奋”,从而收集到多得多的$(media)媒质/$,甚至能超出理论上限。$(br2)经研究,意识之瓶为空时收集到的$(media)媒质/$似乎最多,此后每次抽取所得会逐渐减少……"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json
deleted file mode 100644
index 9d6061fb3917..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/en_us.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "item.hexchanting.amethyst_arrow": "Amethyst Arrow",
- "item.hexchanting.amethyst_axe": "Amethyst Axe",
- "item.hexchanting.amethyst_boots": "Amethyst Boots",
- "item.hexchanting.amethyst_chestplate": "Amethyst Chestplate",
- "item.hexchanting.amethyst_helmet": "Amethyst Helmet",
- "item.hexchanting.amethyst_hoe": "Amethyst Hoe",
- "item.hexchanting.amethyst_leggings": "Amethyst Leggings",
- "item.hexchanting.amethyst_pickaxe": "Amethyst Pickaxe",
- "item.hexchanting.amethyst_shovel": "Amethyst Shovel",
- "item.hexchanting.amethyst_sword": "Amethyst Sword",
- "hexcasting.action.hexchanting:imbue_equipment": "Imbue Equipment",
-
- "hexchanting.page.imbuing.title": "Imbuing Equipment",
- "hexchanting.page.imbuing.0": "I have found uses for many of Nature's resources outside of my work with _Hexes, such as the construction of tools and armaments. It follows that I am able to do the same with amethyst. If I can align the crystalline structure correctly they can even channel media to cast Hexes.",
- "hexchanting.page.imbuing.1": "After experimentation I have found that charged amethyst works best when crafting equipment. By substituting it for a material like iron or diamond I can craft items with comparable performance to their diamond equivalents, though they are less durable. Their true strength is how they interact with the world. When used they resonate with the latent media in the surrounding environment, providing a guide for hexes channeled through them.",
- "hexchanting.page.imbuing.2": "Compromises have had to be made in the creation of these tools. They must be fed with external media when casting else they will cannibalize their own materials, possibly to the point of destruction. This is similar to a $(l:items/hexcasting)$(item)Cypher/$, though these tools can be recharged.",
- "hexchanting.page.imbuing.3": "Regular use also slowly drains this reservoir - I believe the media is being expended to heal damage to the structure of the amethyst. Conventional means of equipment repair have proved ineffective due to difficulties in integrating a new matrix into the existing crystal.",
- "hexchanting.page.imbuing.tools.0": "Axes, hoes, pickaxes and shovels cast after breaking a block. The stack is initialized with the location of the broken block. Break block spells cast through these tools behave as if broken by the tool, which includes any enchantment effects.",
- "hexchanting.page.imbuing.weapons.sword": "Swords cast on hit and push the targeted entity to the stack.",
- "hexchanting.page.imbuing.weapons.arrow.1": "My attempts to craft a bow on similar principles have failed. Amethyst simply doesn't have the flexibility required. I have instead resorted to crafting arrows with amethyst shards, in place of flint. These can be imbued like my other amethyst equipment but they can only draw on their internal media and affect a limited area. I am sure I could craft an equivalent out of media alone, but there are niches where I may find this useful.",
- "hexchanting.page.imbuing.weapons.arrow": "Arrows cast when striking an entity or a block. In the first case the entity is pushed to the stack, in the latter the block position. Arrows have an amethyst shard's worth of media and a 4 block ambit radius.",
- "hexchanting.page.imbuing.armour.helmet": "Helmets casts when a mob, hostile or otherwise, begins to target me. The identity of the mob is pushed to the stack.",
- "hexchanting.page.imbuing.armour.chestplate": "Chestplates cast when I take damage. Two nullable entities and the amount of damage are pushed to the stack. The first entity is the direct source of the damage, such as an arrow, and the second is the indirect source, such as whoever fired the arrow.",
- "hexchanting.page.imbuing.armour.leggings": "Leggings cast in the unfortunate event of my death. The source of my demise is pushed to the stack, in the same form as the chestplate. Because I am no longer alive to serve as a conduit this will always use the legging's internal media.",
- "hexchanting.page.imbuing.armour.boots": "Boots cast whenever I fall about 1.5 blocks, pushing the precise distance to the stack. This trigger is sensitive and can be fooled into resetting by going up.",
- "hexchanting.page.imbue_equipment.summary.0": "Imbues the supplied hexes into the amethyst equipment in my other hand, so that they will be cast whenever the item is used. Costs 9 charged amethyst except on arrows, which cost 5 shards."
-}
diff --git a/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json
deleted file mode 100644
index 8e371b0b1f7f..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexchanting/hexchanting/lang/zh_cn.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "item.hexchanting.amethyst_arrow": "紫水晶箭",
- "item.hexchanting.amethyst_axe": "紫水晶斧",
- "item.hexchanting.amethyst_boots": "紫水晶靴子",
- "item.hexchanting.amethyst_chestplate": "紫水晶胸甲",
- "item.hexchanting.amethyst_helmet": "紫水晶头盔",
- "item.hexchanting.amethyst_hoe": "紫水晶锄",
- "item.hexchanting.amethyst_leggings": "紫水晶护腿",
- "item.hexchanting.amethyst_pickaxe": "紫水晶镐",
- "item.hexchanting.amethyst_shovel": "紫水晶锹",
- "item.hexchanting.amethyst_sword": "紫水晶剑",
- "hexcasting.action.hexchanting:imbue_equipment": "装备融能",
-
- "hexchanting.page.imbuing.title": "为装备融能",
- "hexchanting.page.imbuing.0": "在$(hex)咒术$()之外,我还发现了自然所赐许多资源的其他用途,就比如说可以制造工具和兵器。紫水晶能做到这些可谓顺理成章。要是能把其中的晶体结构也正确对齐,它们甚至还能介导媒质、施放咒术。",
- "hexchanting.page.imbuing.1": "实验表明,充能紫水晶在合成装备这一方面表现最好。把它放到原本属于铁和钻石等材料的位置即可,所制成物品的性能与用钻石制成的相当,但前者不如后者耐用。这些装备真正的强大之处,在于它们与世界交互的方式。使用时,它们会与周围环境的潜在媒质共振,从而引导穿过自身的咒术。",
- "hexchanting.page.imbuing.2": "取舍在这些工具的制造过程中不可避免。施法时,必须为其提供外源媒质,否则它们便会侵蚀构成自身的材料,甚至可能侵蚀到完全损毁。这一性质与$(l:items/hexcasting)$(item)杂件/$类似;不同之处在于,这些工具可以充能。",
- "hexchanting.page.imbuing.3": "常规的使用也会缓慢消耗它们自身的媒质——我想应该是用来修复紫水晶结构中的损伤了。而因为已有的晶体和新基质难以整合,传统的修复流程对这些工具效果不佳。",
- "hexchanting.page.imbuing.tools.0": "斧、锄、镐、锹等会在破坏方块后施法,其栈以所破坏方块的位置起始。这些工具施放的破坏方块法术表现为使用工具自身进行破坏,其上魔咒也会起效。",
- "hexchanting.page.imbuing.weapons.sword": "剑会在击中实体时施法,其栈以目标实体起始。",
- "hexchanting.page.imbuing.weapons.arrow.1": "我尝试过用这种材料制弓,但失败了;紫水晶的刚度太高。之后,我改为用紫水晶碎片代替燧石合成箭。这些箭可像其他紫水晶装备一样融能,但它们只能使用其自身的媒质,影响范围也有限。我当然可以只用媒质就做出同样功能的东西,但这些箭确实有其独特的长处。",
- "hexchanting.page.imbuing.weapons.arrow": "箭会在击中实体或方块时施放。前者栈以命中实体起始,后者以方块位置向量起始。此类箭具有相当于 1 个紫水晶碎片的媒质,影响范围半径为 4 格。",
- "hexchanting.page.imbuing.armour.helmet": "头盔会在生物(无论敌对与否)等以我为攻击目标时施法。栈以代表该实体的 iota 起始。",
- "hexchanting.page.imbuing.armour.chestplate": "胸甲会在我受到伤害时施法。栈以两个可为 Null 的实体和伤害量起始。第一实体是伤害的直接来源,如箭;第二实体是间接来源,如发射箭的实体。",
- "hexchanting.page.imbuing.armour.leggings": "护腿会在我不幸死亡时施法。栈以致死原因起始,形式与胸甲一致。而由于我已死,无法再引导媒质,护腿只会使用其自身的媒质施法。",
- "hexchanting.page.imbuing.armour.boots": "靴子会在我摔落过大约 1.5 格时施法。栈以精确摔落距离起始。这一触发条件比较敏感,同时还可通过向上爬升来重置。",
- "hexchanting.page.imbue_equipment.summary.0": "将所给媒质融注入另一只手中的紫水晶装备,后续使用装备时即会施法。消耗 9 个充能紫水晶;箭除外,消耗 5 个紫水晶碎片。"
-}
diff --git a/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/en_us.json
deleted file mode 100644
index 0ac0a414fd99..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/en_us.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "hexpats.entry.patterns.comfort": "Comfort Patterns",
-
- "hexpats.page.comfort_desc": "I believe I have found some patterns relating to comforting another person? I have no need for such frivolous things.",
- "hexpats.page.comfort.headpat": "This pattern appears to conjure a projection of the casters hand about the head of some entity. Costs nothing if the target isn't on fire, otherwise costs an Amethyst Dust.",
- "hexpats.page.comfort.check_fire": "This pattern checks to see if an entity needs pats to stop burning.",
-
- "hexcasting.action.hexpats:headpat": "Patter's Gambit",
- "hexcasting.action.hexpats:check_fire": "Patter's Purification"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/zh_cn.json
deleted file mode 100644
index f2b32d75736e..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexpats/hexpats/lang/zh_cn.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "hexpats.entry.patterns.comfort": "安抚图案",
-
- "hexpats.page.comfort_desc": "我好像发现了可用来安抚他人的图案?但我没有使用这些图案的必要,它们的用处也不算大。",
- "hexpats.page.comfort.headpat": "此图案会在某个实体头顶构筑出施法者的手的投影。如果目标未着火,则不消耗媒质;否则消耗 1 个紫水晶粉。",
- "hexpats.page.comfort.check_fire": "此图案会检验所给实体是否需要拍灭身上的火焰。",
-
- "hexcasting.action.hexpats:headpat": "拍拍之策略",
- "hexcasting.action.hexpats:check_fire": "拍拍之纯化"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/en_us.json
deleted file mode 100644
index 4fd85566eabd..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/en_us.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "hexcasting.mishap.notalive.single": "Cannot be casted to not alive entity",
-
- "hexcasting.action.hexthingy:smite": "Smite",
- "hexcasting.action.hexthingy:allaycreation": "Allay Creation",
- "hexcasting.action.hexthingy:things/pasteurpurification": "Pasteur's Purification",
- "hexcasting.action.hexthingy:things/cleaneffect": "Clean Effects",
-
- "hexthingy.entry.smite": "Smite",
- "hexthingy.entry.allaycreation": "Allay Creation",
- "hexthingy.entry.patternthings": "Pattern Things",
- "hexthingy.entry.spellthings": "Spell Things",
-
- "hexthingy.page.smite": "Deals damage to entity. Costs about 1.5 $(l:items/amethyst)$(item)Amethyst Shards/$ per 1 $(thing)HP/$.",
- "hexthingy.page.allaycreation": "By infusing a Vex with media, you can create an Allay. Costs about 15 $(l:items/amethyst)$(item)Charged Amethyst/$",
- "hexthingy.page.things.pasteurpurification": "Takes an entity and returns its health",
- "hexthingy.page.things.cleaneffect": "Takes an entity and removes all effects from it (Will not remove Infinite effects). Costs about 1 $(l:items/amethyst)$(item)Amethyst Dust/$ per every second multiplied by the level of effect."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/zh_cn.json
deleted file mode 100644
index 3cda204b79a8..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexthingy/hexthingy/lang/zh_cn.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "hexcasting.mishap.notalive.single": "无法向非活体实体施放",
-
- "hexcasting.action.hexthingy:smite": "惩戒",
- "hexcasting.action.hexthingy:allaycreation": "悦灵制造",
- "hexcasting.action.hexthingy:things/pasteurpurification": "巴斯德之纯化",
- "hexcasting.action.hexthingy:things/cleaneffect": "清除效果",
-
- "hexthingy.entry.smite": "惩戒",
- "hexthingy.entry.allaycreation": "悦灵制造",
- "hexthingy.entry.patternthings": "HexThingy 图案",
- "hexthingy.entry.spellthings": "HexThingy 法术",
-
- "hexthingy.page.smite": "对实体造成伤害。每造成 1 点 $(thing)HP/$ 的伤害消耗大约 1.5 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
- "hexthingy.page.allaycreation": "向恼鬼融注媒质,就得到了悦灵。消耗大约 15 个$(l:items/amethyst)$(item)充能紫水晶/$。",
- "hexthingy.page.things.pasteurpurification": "接受一个实体,返回其生命值。",
- "hexthingy.page.things.cleaneffect": "接受一个实体,并移除其身上所有效果(不会移除无限持续时间的效果)。每效果每等级每秒持续时间消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉/$。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/en_us.json
deleted file mode 100644
index ed3bb103ffd9..000000000000
--- a/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/en_us.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "category.phlexiful_tab": "Phlexiful",
-
- "enchantment.phlexiful.battery_pants_pool_buff": "Weave Inundation",
-
- "block.phlexiful.cobbled_bedrock": "Cobbled Bedrock",
-
- "item.phlexiful.welding_mask": "Casting Hood",
- "item.phlexiful.battery_pants": "Media Catcher",
- "item.phlexiful.media_weave": "Media Weave",
-
- "hexcasting.action.phlexiful:destroy_block": "Annihilate Block",
- "hexcasting.action.phlexiful:set_pants_threshhold": "Write Catcher Threshold",
- "hexcasting.action.phlexiful:get_pants_threshhold": "Read Catcher Threshold",
- "hexcasting.action.phlexiful:read_pants_media": "Read Catcher Media",
-
- "hexcasting.mishap.no_item.armor": "Requires %s in the %s slot, but got nothing",
- "hexcasting.mishap.bad_item.armor": "Requires %s in the %s slot, but got %s instead",
-
- "phlexiful.page.media_weave.title": "Media Weave",
- "phlexiful.page.media_weave.1": "I have found that with great care, media can be directly integrated into cloth.",
- "phlexiful.page.media_weave.2": "It seems to react to _media as iron does to magnetite. Garments made with this weave would have interesting properties... Perhaps it wouldn't hurt to expand my wardrobe?",
-
- "phlexiful.page.battery_pants.title": "Media Catcher",
- "phlexiful.page.battery_pants.1": "I've found that the small cost of some spells can build up to be quite a substantial sum of _media over time. With a little bit of elbow grease, and some bolts of $(l:items/media_weave)$(item)Media Weave/$, I have made something to keep these mounting sums at bay.",
- "phlexiful.page.battery_pants.2": "The $(l:items/battery_pants)$(item)Media Catcher/$ Slowly accrues _media. It can't hold much, so I might find some use in $(l:patterns/battery_pants_patterns)$(action)tuning it/$ as to limit the release of _media.$(br2)I suppose it isn't unreasonable to assume there could be trace amounts of _media about, but even then, what this catches is far too much... Where is it coming from?/$",
- "phlexiful.page.battery_pants.crafting.desc": "$(o)Oh, pants!",
-
- "phlexiful.page.battery_pants_patterns.title": "Media Catcher Patterns",
- "phlexiful.page.battery_pants_patterns.1": "Fight fire with fire, as they say! (Something something world burning. Never mind). There's no better way to manipulate my $(l:items/media_catcher)$(item)Media Catcher/$ than the very thing it fuels: $(hex)patterns/$.",
- "phlexiful.page.battery_pants_patterns.get_threshhold": "Add the threshold of the $(item)media catcher/$ I'm wearing to the stack. Returns $(l:casting/influences)$(thing)Null/$ if I have not set a threshold.",
- "phlexiful.page.battery_pants_patterns.set_threshhold": "Remove the number at the top of the stack, and save it as the threshold of the $(item)media catcher/$ I'm wearing.",
- "phlexiful.page.battery_pants_patterns.read_pants_media": "Add the _media contained in the $(item)media catcher/$ I'm wearing to the stack.",
-
- "phlexiful.page.welding_mask.title": "Casting Hood",
- "phlexiful.page.welding_mask.1": "The light produced in my field of work is taxing on the eyes. The flashes of light are brief, but they linger in my vision.$(br)Taking some inspiration from friends in the trades, I've fashioned together a mask to protect my eyes from the harsh light of _Hexcasting.",
- "phlexiful.page.welding_mask.crafting.desc": "$(l:items/welding_mask)$(item)Casting Hoods/$ block out the flashes of light emitted from spells that we call particles.",
-
- "phlexiful.page.destroy_block.title": "Annihilate Block",
- "phlexiful.page.destroy_block.1": "Complete destruction. Costs a negligible amount of _media for anything less sturdy than $(item)cobblestone/$.",
- "phlexiful.page.destroy_block.2": "This spell makes me uncomfortable... I worry I'll accidentally cast it on something I'd rather not.$(br2)...I do wonder though, if this is an unstoppable force, what would be a suitable wall?$(br2)$(o)Go, do a crime."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/zh_cn.json
deleted file mode 100644
index 324dfe468a72..000000000000
--- a/projects/1.20-fabric/assets/modrinth-phlexiful/phlexiful/lang/zh_cn.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "category.phlexiful_tab": "Phlexiful",
-
- "enchantment.phlexiful.battery_pants_pool_buff": "媒织泛滔",
-
- "block.phlexiful.cobbled_bedrock": "基岩圆石",
-
- "item.phlexiful.welding_mask": "施法面罩",
- "item.phlexiful.battery_pants": "媒质捕手",
- "item.phlexiful.media_weave": "媒质织物",
-
- "hexcasting.action.phlexiful:destroy_block": "湮灭方块",
- "hexcasting.action.phlexiful:set_pants_threshhold": "写入捕手阈值",
- "hexcasting.action.phlexiful:get_pants_threshhold": "读取捕手阈值",
- "hexcasting.action.phlexiful:read_pants_media": "读取捕手媒质",
-
- "hexcasting.mishap.no_item.armor": "%2$s槽位中本应存在%1$s,而实际没有物品",
- "hexcasting.mishap.bad_item.armor": "%2$s槽位中本应存在%1$s,而实际为%3$s",
-
- "phlexiful.page.media_weave.title": "媒质织物",
- "phlexiful.page.media_weave.1": "经过小心谨慎的实验,我发现媒质可以直接融入编织物。",
- "phlexiful.page.media_weave.2": "这种布匹似乎会和$(media)媒质$()产生反应,和铁跟磁铁矿产生反应差不多。用它制作的衣物应该会很有趣……衣柜里多几件衣服或许也没问题吧?",
-
- "phlexiful.page.battery_pants.title": "媒质捕手",
- "phlexiful.page.battery_pants.1": "我发现,把$(media)媒质$()耗量极少的法术累积起来,总计的消耗也是一个不小的数目。拿上几卷$(l:items/media_weave)$(item)媒质织物/$稍加加工,做出的衣服便能止住前文所谓总消耗增长的势头。",
- "phlexiful.page.battery_pants.2": "$(l:items/battery_pants)$(item)媒质捕手/$会缓慢积聚$(media)媒质$()。容量不是很大,也许$(l:patterns/battery_pants_patterns)$(action)调整之后/$可以用来限制$(media)媒质$()的逸散。$(br2)我本来认为它应该能收集到一些$(media)媒质$(),但就算这么说,实际收集到的还是多出太多了……到底是怎么收集到的?/$",
- "phlexiful.page.battery_pants.crafting.desc": "$(o)我发誓我要用靴子狠狠地踢你的裤衩。",
-
- "phlexiful.page.battery_pants_patterns.title": "媒质捕手图案",
- "phlexiful.page.battery_pants_patterns.1": "古话说得好,要以火攻火!(因为所以科学道理,不必较真。)$(hex)图案/$——$(l:items/media_catcher)$(item)媒质捕手/$所助力的事物,也是操控它的最好手段。",
- "phlexiful.page.battery_pants_patterns.get_threshhold": "返回我所穿$(item)媒质捕手/$的阈值。如未设置则返回 $(l:casting/influences)$(thing)Null/$。",
- "phlexiful.page.battery_pants_patterns.set_threshhold": "移除栈顶数,并存作我所穿$(item)媒质捕手/$的阈值。",
- "phlexiful.page.battery_pants_patterns.read_pants_media": "返回我所穿$(item)媒质捕手/$含有的$(media)媒质$()量。",
-
- "phlexiful.page.welding_mask.title": "施法面罩",
- "phlexiful.page.welding_mask.1": "我的工作领域会涉及到大量光照,常使得我用眼疲劳。强光出现的时间很短暂,但它们对视野造成的影响不会那么快消退。$(br)我从我各行各业的朋友身上得到了灵感,依此造出了一个面具,以抵挡$(hex)咒法学$()研究中出现的种种伤眼光线。",
- "phlexiful.page.welding_mask.crafting.desc": "$(l:items/welding_mask)$(item)施法面罩/$会隔绝法术产生的闪光,又称“粒子”。",
-
- "phlexiful.page.destroy_block.title": "湮灭方块",
- "phlexiful.page.destroy_block.1": "不遗余力地摧毁。对硬度不及$(item)圆石/$的事物施放时,消耗极少量$(media)媒质$()。",
- "phlexiful.page.destroy_block.2": "这个法术让我不太舒服……要是意外对不应当摧毁的事物施放了怎么办。$(br2)……不过我确实很好奇,它要是最锋利的矛,那最坚固的盾又会是什么呢?$(br2)$(o)去吧,去犯个罪。"
-}
\ No newline at end of file
From 5c67196aba285c8cfb6163d8f37acc27f38fb95d Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:33:20 +0800
Subject: [PATCH 68/78] =?UTF-8?q?DTHexCasting=20HexMapping=20HexWeb=20tran?=
=?UTF-8?q?sfer=EF=BC=9A#5412?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/hexmapping/hexmapping/README.md | 1 -
.../hexmapping/hexmapping/lang/en_us.json | 55 -------------------
.../hexmapping/hexmapping/packer-policy.json | 6 --
.../assets/hexweb/hexweb/README.md | 1 -
.../assets/hexweb/hexweb/lang/en_us.json | 30 ----------
.../assets/hexweb/hexweb/packer-policy.json | 6 --
.../dthexcasting/lang/en_us.json | 30 ----------
.../dthexcasting/lang/zh_cn.json | 30 ----------
.../assets/hexmapping/hexmapping/README.md | 16 ------
.../hexmapping/hexmapping/lang/en_us.json | 55 -------------------
.../hexmapping/hexmapping/lang/zh_cn.json | 55 -------------------
projects/1.20/assets/hexweb/hexweb/README.md | 16 ------
.../1.20/assets/hexweb/hexweb/lang/en_us.json | 30 ----------
.../1.20/assets/hexweb/hexweb/lang/zh_cn.json | 30 ----------
14 files changed, 361 deletions(-)
delete mode 100644 projects/1.20-fabric/assets/hexmapping/hexmapping/README.md
delete mode 100644 projects/1.20-fabric/assets/hexmapping/hexmapping/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
delete mode 100644 projects/1.20-fabric/assets/hexweb/hexweb/README.md
delete mode 100644 projects/1.20-fabric/assets/hexweb/hexweb/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/hexweb/hexweb/packer-policy.json
delete mode 100644 projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/en_us.json
delete mode 100644 projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/zh_cn.json
delete mode 100644 projects/1.20/assets/hexmapping/hexmapping/README.md
delete mode 100644 projects/1.20/assets/hexmapping/hexmapping/lang/en_us.json
delete mode 100644 projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json
delete mode 100644 projects/1.20/assets/hexweb/hexweb/README.md
delete mode 100644 projects/1.20/assets/hexweb/hexweb/lang/en_us.json
delete mode 100644 projects/1.20/assets/hexweb/hexweb/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/hexmapping/hexmapping/README.md b/projects/1.20-fabric/assets/hexmapping/hexmapping/README.md
deleted file mode 100644
index daf85069bac0..000000000000
--- a/projects/1.20-fabric/assets/hexmapping/hexmapping/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/hexmapping/hexmapping)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexmapping/hexmapping/lang/en_us.json b/projects/1.20-fabric/assets/hexmapping/hexmapping/lang/en_us.json
deleted file mode 100644
index 7d246474494f..000000000000
--- a/projects/1.20-fabric/assets/hexmapping/hexmapping/lang/en_us.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "hexmapping.entry.marker_actions": "Marker Actions",
- "hexcasting.action.hexmapping:create_marker/circle": "Circle Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.circle": "Creates a new Circle Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)position$(), and $(thing)radius$()",
- "hexcasting.action.hexmapping:create_marker/rectangle": "Rectangle Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.rectangle": "Creates a new Rectangle Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)top corner$(), and $(thing)bottom corner$()",
- "hexcasting.action.hexmapping:create_marker/polygon": "Polygon Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.polygon": "Creates a new Polygon Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$()",
- "hexmapping.page.marker_actions.create_marker.polygon.hexical": "Creates a new Polygon Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$() OR a $(thing)Hexical Mesh Entity$()",
- "hexcasting.action.hexmapping:create_marker/polyline": "Polyline Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.polyline": "Creates a new Polyline Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$()",
- "hexmapping.page.marker_actions.create_marker.polyline.hexical": "Creates a new Polyline Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$() OR a $(thing)Hexical Mesh Entity$()",
- "hexcasting.action.hexmapping:create_marker/icon": "Icon Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.icon": "Creates a new Icon Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)icon$(), and $(thing)position$()",
- "hexcasting.action.hexmapping:set_fill_color": "Marker Fill Dist.",
- "hexmapping.page.marker_actions.set_fill_color": "Sets the Fill Color of a marker, if applicable (Circle, Rectangle, and Polygon)",
- "hexcasting.action.hexmapping:set_line_color": "Marker Line Dist.",
- "hexmapping.page.marker_actions.set_line_color": "Sets the Line Color of a marker, if applicable (Circle, Rectangle, Polyline, and Polygon)",
- "hexcasting.action.hexmapping:set_line_weight": "Marker Line Dist. II",
- "hexmapping.page.marker_actions.set_line_weight": "Sets the Line Weight of a marker, if applicable (Circle, Rectangle, Polyline, and Polygon)",
- "hexcasting.action.hexmapping:has_marker": "Marker Dist.",
- "hexmapping.page.marker_actions.has_marker": "Checks if a marker exists on the $(thing)map$() under the provided $(thing)identifier$()",
-
- "hexmapping.entry.marker_spells": "Marker Spells",
- "hexcasting.action.hexmapping:set_marker": "Set Marker",
- "hexmapping.page.marker_spells.set_marker": "Adds the provided $(thing)marker$() to the $(thing)map$() under the provided $(thing)identifier$()$(br2)Ambit validation is done here",
- "hexmapping.page.marker_spells.set_marker.mishaps": "Each $(thing)marker$() has a distinct ambit test. They are as follows:$(li)$(thing)Circle Marker$() has its center position tested, then offset in the cardinal directions by the radius and tested again$(li)$(thing)Rectangle Marker$() has both its corners tested$(li)$(thing)Polygon and Polyline Markers$() have all points tested$(li)$(thing)Icon Marker$() has its position tested",
- "hexcasting.action.hexmapping:remove_marker": "Remove Marker",
- "hexmapping.page.marker_spells.remove_marker": "Removed the marker on the $(thing)map$() under the provided $(thing)identifier$()",
-
- "hexmapping.entry.markers": "Nature's Glass Eye",
- "hexmapping.page.markers.info": "$(italic)I have made a terrifying discovery. We are being observed...$()$(br2)I first thought it was an error within my anti-scrying hexes but upon further testing, it seems something is peering into our world and using Nature itself to do so. $(br2)This cannot stand...",
- "hexmapping.page.markers.info.extra": "I have started testing the limits of their perception.$(br2)Utilizing a $(thing)Map$(), I have found a way to alter their perception by inscribing various $(thing)Markers$() onto Nature's very own eyes.$(br2)$(italic)I fear my actions may have drawn more observers... I hope I am wrong...$(br2)$(br) $(bold)THEY SEE ME$()$(br2) $(italic)they see you, $(#ff0000)$(playername)",
- "hexmapping.page.markers.missing": "Oh, huh... Seems you are missing any map mod that we have integration for...$(br2)Here are the existing integrations:$(li)$(l:https://modrinth.com/plugin/bluemap)Bluemap$(/l)$(li)$(l:https://modrinth.com/plugin/dynmap)Dynmap$(/l)$(li)$(l:https://modrinth.com/plugin/pl3xmap)Pl3xmap$(/l)$(li)$(l:https://modrinth.com/plugin/squaremap)Squaremap$(/l)",
- "hexcasting.action.hexmapping:get_maps/bluemap": "Bluemap Reflection",
- "hexmapping.page.markers.get_maps.bluemap": "Pushes a list of $(thing)Maps$() for your current dimension from Bluemap to the stack",
- "hexcasting.action.hexmapping:get_maps/dynmap": "Dynmap Reflection",
- "hexmapping.page.markers.get_maps.dynmap": "Pushes a list of $(thing)Maps$() for your current dimension from Dynmap to the stack",
- "hexcasting.action.hexmapping:get_maps/pl3xmap": "Pl3xmap Reflection",
- "hexmapping.page.markers.get_maps.pl3xmap": "Pushes a list of $(thing)Maps$() for your current dimension from Pl3xmap to the stack",
- "hexcasting.action.hexmapping:get_maps/squaremap": "Squaremap Reflection",
- "hexmapping.page.markers.get_maps.squaremap": "Pushes a list of $(thing)Maps$() for your current dimension from Squaremap to the stack",
-
- "hexcasting.mishap.invalid_value.class.map": "a map",
- "hexcasting.mishap.invalid_value.class.marker": "a marker",
- "hexcasting.mishap.invalid_value.class.marker.options": "a circle, rectangle, polygon, or polyline marker",
- "hexcasting.mishap.invalid_value.class.marker.options.fill": "a circle, rectangle, or polygon marker",
- "hexcasting.mishap.invalid_value.class.marker.options.line": "a circle, rectangle, polygon, or polyline marker",
- "hexcasting.mishap.invalid_value.class.marker.options.weight": "a circle, rectangle, polygon, or polyline marker",
-
- "hexmapping.mishap.bad_map": "Could not find %s map under %s",
- "hexmapping.mishap.api.uninitialized": "The API for %s is uninitialized",
- "hexmapping.mishap.marker.unrecognized": "This marker has no direct translation to %s markers",
- "hexmapping.mishap.no_integration": "This map iota is for %s mod but it is not installed"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json b/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
deleted file mode 100644
index 1bdac1500d2f..000000000000
--- a/projects/1.20-fabric/assets/hexmapping/hexmapping/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/hexmapping/hexmapping"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexweb/hexweb/README.md b/projects/1.20-fabric/assets/hexweb/hexweb/README.md
deleted file mode 100644
index f52d9b83985b..000000000000
--- a/projects/1.20-fabric/assets/hexweb/hexweb/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/hexweb/hexweb)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexweb/hexweb/lang/en_us.json b/projects/1.20-fabric/assets/hexweb/hexweb/lang/en_us.json
deleted file mode 100644
index 4fb88f969ec9..000000000000
--- a/projects/1.20-fabric/assets/hexweb/hexweb/lang/en_us.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "hexweb.iota.response": "HTTPResponse{%s}",
-
- "hexweb.mishap.invalid_json_key": "The \"%s\" key is not present within the JsonIota!",
- "hexweb.mishap.cannot_json": "The %s iota has no direct Json translation!",
- "hexweb.mishap.too_early": "You tried accessing a HTTP response before it arrived!",
- "hexweb.mishap.blacklist_url": "This URL is blacklisted! Attempted: %s",
- "hexcasting.mishap.invalid_value.class.json": "a json object",
- "hexcasting.mishap.invalid_value.class.response": "a HTTP response",
-
- "hexweb.entry.json_patterns": "JSON Patterns",
- "hexweb.page.json_patterns.entry": "These patterns were taken from a series of notes scrawled on the walls of the room of a Douglas Crockford shortly before their disappearence.$(br)$(br)They describe ways of creating and manipulating a dictionary-like object which uses Strings for keys and a select range of iotas as values. I wonder what the practical applications are...",
- "hexcasting.action.hexweb:create_json": "Jason's Reflection",
- "hexweb.page.json_patterns.create_json": "Creates an empty JSON object.",
- "hexcasting.action.hexweb:parse_json": "Jason's Gambit",
- "hexweb.page.json_patterns.parse_json": "Turns the given String into a JSON object. If it cannot be parsed into a JSON object itself, a wrapper JSON object will be created.",
- "hexcasting.action.hexweb:has_element": "Jason's Purification",
- "hexweb.page.json_patterns.has_element": "Checks whether the given JSON iota has the given key.",
- "hexcasting.action.hexweb:get_element": "Jason's Purification II",
- "hexweb.page.json_patterns.get_element": "Gets the stored iota at the given key. Mishaps upon their being no iota.",
- "hexcasting.action.hexweb:set_element": "Jason's Exaltation",
- "hexweb.page.json_patterns.set_element": "Sets the given iota at the given key. Setting a Garbage iota removes the key.",
-
- "hexweb.entry.http_spells": "HTTP Spells",
- "hexweb.page.http_spells.entry": "While pondering the depths of one's mind, Sir Bernes-Lee caught a glimpse into another universe. With this view fresh in his mind, he quickly conjured a JSON object, imbued it with information, and sent it hurdling into the other universe.$(br)$(br)These are the patterns recovered after Berners-Lee was found dead having received enough information back to fry his mind.",
- "hexcasting.action.hexweb:request": "Request",
- "hexweb.page.http_spells.request": "Sends an HTTP request made of the given data, method, and headers to the provided URL.$(br2)The Response is truthy if a response is received.",
- "hexcasting.action.hexweb:get_response": "Get Response",
- "hexweb.page.http_spells.get_response": "Given a Response Iota, attempt to parse the results. Will Mishap if too early or an IOException is thrown."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexweb/hexweb/packer-policy.json b/projects/1.20-fabric/assets/hexweb/hexweb/packer-policy.json
deleted file mode 100644
index 48473677ee22..000000000000
--- a/projects/1.20-fabric/assets/hexweb/hexweb/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/hexweb/hexweb"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/en_us.json b/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/en_us.json
deleted file mode 100644
index 6a6779aecd28..000000000000
--- a/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/en_us.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "block.dthexcasting.edified_branch":"Edified Tree",
- "block.dthexcasting.edified_amethyst_branch":"Amethyst Edified Tree",
- "block.dthexcasting.edified_aventurine_branch":"Aventurine Edified Tree",
- "block.dthexcasting.edified_citrine_branch":"Citrine Edified Tree",
- "block.dthexcasting.edified_root":"Edified Roots",
-
- "species.dthexcasting.edified_amethyst": "Amethyst Edified Tree",
- "species.dthexcasting.edified_aventurine": "Aventurine Edified Tree",
- "species.dthexcasting.edified_citrine": "Citrine Edified Tree",
-
- "dthexcasting.iota.species": "Species[%s]",
-
- "hexcasting.mishap.invalid_value.class.species": "a species",
- "dthexcasting.mishap.species.null": "This tree has a null species! You should never see this honestly...",
- "dthexcasting.mishap.species.same": "%s and %s are the same species!",
- "dthexcasting.mishap.species.transformable": "%s is not a transformable species!",
-
- "dthexcasting.entry.tree_patterns": "Arboriculture",
- "dthexcasting.page.tree_patterns.entry": "After years of study, I have finally crafted a few patterns to make Nature speak of its' ever-growing pillars of brown and green.$(br2)It seems to describe the structure of the trees as a $(thing)Base64 string$() and describes the type as a $(thing)Species$(). I wonder what I can do with this knowledge...",
- "hexcasting.action.dthexcasting:get_species": "Arborist Purification",
- "dthexcasting.page.tree_patterns.get_species": "Provided a tree's position, I can extract the $(thing)Species$() of the tree.",
- "hexcasting.action.dthexcasting:get_jocode": "Arborist Purification II",
- "dthexcasting.page.tree_patterns.get_jocode": "Provided a tree's position, I can extract the structure of the tree as a $(thing)Base64 string$().",
-
- "dthexcasting.entry.tree_spells": "Arborist's Desires",
- "dthexcasting.page.tree_spells.entry": "As I suspected, the knowledge I have pried from Nature's hands can indeed be used to influence and even restructure any tree to my hearts desire...",
- "hexcasting.action.dthexcasting:transform": "Transform",
- "dthexcasting.page.tree_spells.transform": "Provided a tree's position, I can command Nature to change the very $(thing)Species$() of the tree till my heart's content, provided I have the media equivalent of a Shard per character in the string which defines its' structure."
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/zh_cn.json b/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/zh_cn.json
deleted file mode 100644
index e7f40b06eef7..000000000000
--- a/projects/1.20/assets/dynamic-trees-hexcasting/dthexcasting/lang/zh_cn.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "block.dthexcasting.edified_branch":"启迪树",
- "block.dthexcasting.edified_amethyst_branch":"晶紫启迪树",
- "block.dthexcasting.edified_aventurine_branch":"砂蓝启迪树",
- "block.dthexcasting.edified_citrine_branch":"晶黄启迪树",
- "block.dthexcasting.edified_root":"启迪树根",
-
- "species.dthexcasting.edified_amethyst": "晶紫启迪树",
- "species.dthexcasting.edified_aventurine": "砂蓝启迪树",
- "species.dthexcasting.edified_citrine": "晶黄启迪树",
-
- "dthexcasting.iota.species": "树种[%s]",
-
- "hexcasting.mishap.invalid_value.class.species": "一个树种",
- "dthexcasting.mishap.species.null": "这棵树没有树种!你其实不应该看到这个的……",
- "dthexcasting.mishap.species.same": "%s和%s是同一树种!",
- "dthexcasting.mishap.species.transformable": "%s是不可转换的树种!",
-
- "dthexcasting.entry.tree_patterns": "育树",
- "dthexcasting.page.tree_patterns.entry": "在多年的研究后,我终于造出了些许图案,能让自然论及它创造的永恒生长的棕绿混色高大巨人。$(br2)自然似乎会将树木的结构描述为 $(thing)Base64 字符串$(),并将树木的品种描述为$(thing)树种$()。不知道这具体有什么用途……",
- "hexcasting.action.dthexcasting:get_species": "树木学家之纯化",
- "dthexcasting.page.tree_patterns.get_species": "给定树木位置,从中提取出其$(thing)树种$()。",
- "hexcasting.action.dthexcasting:get_jocode": "树木学家之纯化,第二型",
- "dthexcasting.page.tree_patterns.get_jocode": "给定树木位置,从中将树木的结构提取为 $(thing)Base64 字符串$()。",
-
- "dthexcasting.entry.tree_spells": "树木学家之愿",
- "dthexcasting.page.tree_spells.entry": "如我所推测的,我从自然那里窃来的知识确实能影响,甚至能随心重构树木……",
- "hexcasting.action.dthexcasting:transform": "转换树木",
- "dthexcasting.page.tree_spells.transform": "给定树木位置,命令自然改换其$(thing)树种$(),直至我满意。代表其结构的字符串中每有一个字符,均需持有相当于 1 个紫水晶碎片的媒质。"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexmapping/hexmapping/README.md b/projects/1.20/assets/hexmapping/hexmapping/README.md
deleted file mode 100644
index def00c3f3848..000000000000
--- a/projects/1.20/assets/hexmapping/hexmapping/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/hexmapping/hexmapping)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/hexmapping/hexmapping)
\ No newline at end of file
diff --git a/projects/1.20/assets/hexmapping/hexmapping/lang/en_us.json b/projects/1.20/assets/hexmapping/hexmapping/lang/en_us.json
deleted file mode 100644
index 7d246474494f..000000000000
--- a/projects/1.20/assets/hexmapping/hexmapping/lang/en_us.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "hexmapping.entry.marker_actions": "Marker Actions",
- "hexcasting.action.hexmapping:create_marker/circle": "Circle Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.circle": "Creates a new Circle Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)position$(), and $(thing)radius$()",
- "hexcasting.action.hexmapping:create_marker/rectangle": "Rectangle Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.rectangle": "Creates a new Rectangle Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)top corner$(), and $(thing)bottom corner$()",
- "hexcasting.action.hexmapping:create_marker/polygon": "Polygon Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.polygon": "Creates a new Polygon Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$()",
- "hexmapping.page.marker_actions.create_marker.polygon.hexical": "Creates a new Polygon Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$() OR a $(thing)Hexical Mesh Entity$()",
- "hexcasting.action.hexmapping:create_marker/polyline": "Polyline Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.polyline": "Creates a new Polyline Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$()",
- "hexmapping.page.marker_actions.create_marker.polyline.hexical": "Creates a new Polyline Marker with the provided $(thing)identifier$(), $(thing)label$(), and $(thing)list of positions$() OR a $(thing)Hexical Mesh Entity$()",
- "hexcasting.action.hexmapping:create_marker/icon": "Icon Marker Exlt.",
- "hexmapping.page.marker_actions.create_marker.icon": "Creates a new Icon Marker with the provided $(thing)identifier$(), $(thing)label$(), $(thing)icon$(), and $(thing)position$()",
- "hexcasting.action.hexmapping:set_fill_color": "Marker Fill Dist.",
- "hexmapping.page.marker_actions.set_fill_color": "Sets the Fill Color of a marker, if applicable (Circle, Rectangle, and Polygon)",
- "hexcasting.action.hexmapping:set_line_color": "Marker Line Dist.",
- "hexmapping.page.marker_actions.set_line_color": "Sets the Line Color of a marker, if applicable (Circle, Rectangle, Polyline, and Polygon)",
- "hexcasting.action.hexmapping:set_line_weight": "Marker Line Dist. II",
- "hexmapping.page.marker_actions.set_line_weight": "Sets the Line Weight of a marker, if applicable (Circle, Rectangle, Polyline, and Polygon)",
- "hexcasting.action.hexmapping:has_marker": "Marker Dist.",
- "hexmapping.page.marker_actions.has_marker": "Checks if a marker exists on the $(thing)map$() under the provided $(thing)identifier$()",
-
- "hexmapping.entry.marker_spells": "Marker Spells",
- "hexcasting.action.hexmapping:set_marker": "Set Marker",
- "hexmapping.page.marker_spells.set_marker": "Adds the provided $(thing)marker$() to the $(thing)map$() under the provided $(thing)identifier$()$(br2)Ambit validation is done here",
- "hexmapping.page.marker_spells.set_marker.mishaps": "Each $(thing)marker$() has a distinct ambit test. They are as follows:$(li)$(thing)Circle Marker$() has its center position tested, then offset in the cardinal directions by the radius and tested again$(li)$(thing)Rectangle Marker$() has both its corners tested$(li)$(thing)Polygon and Polyline Markers$() have all points tested$(li)$(thing)Icon Marker$() has its position tested",
- "hexcasting.action.hexmapping:remove_marker": "Remove Marker",
- "hexmapping.page.marker_spells.remove_marker": "Removed the marker on the $(thing)map$() under the provided $(thing)identifier$()",
-
- "hexmapping.entry.markers": "Nature's Glass Eye",
- "hexmapping.page.markers.info": "$(italic)I have made a terrifying discovery. We are being observed...$()$(br2)I first thought it was an error within my anti-scrying hexes but upon further testing, it seems something is peering into our world and using Nature itself to do so. $(br2)This cannot stand...",
- "hexmapping.page.markers.info.extra": "I have started testing the limits of their perception.$(br2)Utilizing a $(thing)Map$(), I have found a way to alter their perception by inscribing various $(thing)Markers$() onto Nature's very own eyes.$(br2)$(italic)I fear my actions may have drawn more observers... I hope I am wrong...$(br2)$(br) $(bold)THEY SEE ME$()$(br2) $(italic)they see you, $(#ff0000)$(playername)",
- "hexmapping.page.markers.missing": "Oh, huh... Seems you are missing any map mod that we have integration for...$(br2)Here are the existing integrations:$(li)$(l:https://modrinth.com/plugin/bluemap)Bluemap$(/l)$(li)$(l:https://modrinth.com/plugin/dynmap)Dynmap$(/l)$(li)$(l:https://modrinth.com/plugin/pl3xmap)Pl3xmap$(/l)$(li)$(l:https://modrinth.com/plugin/squaremap)Squaremap$(/l)",
- "hexcasting.action.hexmapping:get_maps/bluemap": "Bluemap Reflection",
- "hexmapping.page.markers.get_maps.bluemap": "Pushes a list of $(thing)Maps$() for your current dimension from Bluemap to the stack",
- "hexcasting.action.hexmapping:get_maps/dynmap": "Dynmap Reflection",
- "hexmapping.page.markers.get_maps.dynmap": "Pushes a list of $(thing)Maps$() for your current dimension from Dynmap to the stack",
- "hexcasting.action.hexmapping:get_maps/pl3xmap": "Pl3xmap Reflection",
- "hexmapping.page.markers.get_maps.pl3xmap": "Pushes a list of $(thing)Maps$() for your current dimension from Pl3xmap to the stack",
- "hexcasting.action.hexmapping:get_maps/squaremap": "Squaremap Reflection",
- "hexmapping.page.markers.get_maps.squaremap": "Pushes a list of $(thing)Maps$() for your current dimension from Squaremap to the stack",
-
- "hexcasting.mishap.invalid_value.class.map": "a map",
- "hexcasting.mishap.invalid_value.class.marker": "a marker",
- "hexcasting.mishap.invalid_value.class.marker.options": "a circle, rectangle, polygon, or polyline marker",
- "hexcasting.mishap.invalid_value.class.marker.options.fill": "a circle, rectangle, or polygon marker",
- "hexcasting.mishap.invalid_value.class.marker.options.line": "a circle, rectangle, polygon, or polyline marker",
- "hexcasting.mishap.invalid_value.class.marker.options.weight": "a circle, rectangle, polygon, or polyline marker",
-
- "hexmapping.mishap.bad_map": "Could not find %s map under %s",
- "hexmapping.mishap.api.uninitialized": "The API for %s is uninitialized",
- "hexmapping.mishap.marker.unrecognized": "This marker has no direct translation to %s markers",
- "hexmapping.mishap.no_integration": "This map iota is for %s mod but it is not installed"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json b/projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json
deleted file mode 100644
index da23cf0dcfd6..000000000000
--- a/projects/1.20/assets/hexmapping/hexmapping/lang/zh_cn.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "hexmapping.entry.marker_actions": "标记操作",
- "hexcasting.action.hexmapping:create_marker/circle": "圆形标记之提整",
- "hexmapping.page.marker_actions.create_marker.circle": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)位置$()、$(thing)半径$()创建圆形标记。",
- "hexcasting.action.hexmapping:create_marker/rectangle": "矩形标记之提整",
- "hexmapping.page.marker_actions.create_marker.rectangle": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)顶部角位置$()、$(thing)底部角位置$()创建矩形标记。",
- "hexcasting.action.hexmapping:create_marker/polygon": "多边形标记之提整",
- "hexmapping.page.marker_actions.create_marker.polygon": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)位置列表$()创建多边形标记。",
- "hexmapping.page.marker_actions.create_marker.polygon.hexical": "根据所给 $(thing)标识$()、$(thing)标签$()、$(thing)位置列表$()$(bold)或$() $(thing)Hexical 的网斑实体$()创建多边形标记。",
- "hexcasting.action.hexmapping:create_marker/polyline": "折线标记之提整",
- "hexmapping.page.marker_actions.create_marker.polyline": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)位置列表$()创建折线标记。",
- "hexmapping.page.marker_actions.create_marker.polyline.hexical": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)位置列表$()$(bold)或$() $(thing)Hexical 的网斑实体$()创建折线标记。",
- "hexcasting.action.hexmapping:create_marker/icon": "图标标记之提整",
- "hexmapping.page.marker_actions.create_marker.icon": "根据所给$(thing)标识$()、$(thing)标签$()、$(thing)图标$()、$(thing)位置$()创建图标标记。",
- "hexcasting.action.hexmapping:set_fill_color": "标记填充之馏化",
- "hexmapping.page.marker_actions.set_fill_color": "若标记类型合适(圆形、矩形、多边形),设置标记的填充颜色。",
- "hexcasting.action.hexmapping:set_line_color": "标记描边之馏化",
- "hexmapping.page.marker_actions.set_line_color": "若标记类型合适(圆形、矩形、折线、多边形),设置标记的描边颜色。",
- "hexcasting.action.hexmapping:set_line_weight": "标记描边之馏化,第二型",
- "hexmapping.page.marker_actions.set_line_weight": "若标记类型合适(圆形、矩形、折线、多边形),设置标记的描边线宽。",
- "hexcasting.action.hexmapping:has_marker": "标记之馏化",
- "hexmapping.page.marker_actions.has_marker": "检查$(thing)地图$()中是否存在使用所给$(thing)标识$()的标记。",
-
- "hexmapping.entry.marker_spells": "标记法术",
- "hexcasting.action.hexmapping:set_marker": "设置标记",
- "hexmapping.page.marker_spells.set_marker": "将所给$(thing)标记$()以其$(thing)标识$()加至$(thing)地图$()。$(br2)会在此时判定是否在影响范围内。",
- "hexmapping.page.marker_spells.set_marker.mishaps": "各类$(thing)标记$()的判定方式不一。具体如下:$(li)$(thing)圆形标记$()判定其圆心位置及由此沿各轴向偏移半径长度的各位置。$(li)$(thing)矩形标记$()判定其两角。$(li)$(thing)多边形和折线标记$()判定所有点。$(li)$(thing)图标标记$()判定其位置。",
- "hexcasting.action.hexmapping:remove_marker": "移除标记",
- "hexmapping.page.marker_spells.remove_marker": "移除$(thing)地图$()中使用所给$(thing)标识$()的标记。",
-
- "hexmapping.entry.markers": "自然的义眼",
- "hexmapping.page.markers.info": "$(italic)我发现了一个恐怖的真相。有东西在看着我们……$()$(br2)我开始觉得这只是反探知咒术的误差。但在进一步测试之后,这些似乎都表明:有东西在窥探我们的世界,还借自然来掩人耳目。$(br2)是可忍……",
- "hexmapping.page.markers.info.extra": "我已着手测试它们感知力的限度。$(br2)借助$(thing)地图$(),我成功将各种$(thing)标记$()刻入了自然的眼睛,以此扭曲它们的知觉。$(br2)$(italic)我担心我的举动可能引来了更多观测者……希望我猜错了……$(br2)$(br) $(bold)它们看见我了$()$(br2) $(italic)它们看见你了,$(#ff0000)$(playername)",
- "hexmapping.page.markers.missing": "啊,呃……你好像没有安装任何兼容的地图模组……$(br2)这里是已有兼容模组的清单:$(li)$(l:https://modrinth.com/plugin/bluemap)Bluemap$(/l)$(li)$(l:https://modrinth.com/plugin/dynmap)Dynmap$(/l)$(li)$(l:https://modrinth.com/plugin/pl3xmap)Pl3xmap$(/l)$(li)$(l:https://modrinth.com/plugin/squaremap)Squaremap$(/l)",
- "hexcasting.action.hexmapping:get_maps/bluemap": "Bluemap 之精思",
- "hexmapping.page.markers.get_maps.bluemap": "从 Bluemap 中读出当前维度的$(thing)地图$()列表,并压入栈顶。",
- "hexcasting.action.hexmapping:get_maps/dynmap": "Dynmap 之精思",
- "hexmapping.page.markers.get_maps.dynmap": "从 Dynmap 中读出当前维度的$(thing)地图$()列表,并压入栈顶。",
- "hexcasting.action.hexmapping:get_maps/pl3xmap": "Pl3xmap 之精思",
- "hexmapping.page.markers.get_maps.pl3xmap": "从 Pl3xmap 中读出当前维度的$(thing)地图$()列表,并压入栈顶。",
- "hexcasting.action.hexmapping:get_maps/squaremap": "Squaremap 之精思",
- "hexmapping.page.markers.get_maps.squaremap": "从 Squaremap 中读出当前维度的$(thing)地图$()列表,并压入栈顶。",
-
- "hexcasting.mishap.invalid_value.class.map": "一个地图",
- "hexcasting.mishap.invalid_value.class.marker": "一个标记",
- "hexcasting.mishap.invalid_value.class.marker.options": "一个圆形、矩形、多边形或折线标记",
- "hexcasting.mishap.invalid_value.class.marker.options.fill": "一个圆形、矩形或多边形标记",
- "hexcasting.mishap.invalid_value.class.marker.options.line": "一个圆形、矩形、多边形或折线标记",
- "hexcasting.mishap.invalid_value.class.marker.options.weight": "一个圆形、矩形、多边形或折线标记",
-
- "hexmapping.mishap.bad_map": "无法找到%2$s的%1$s地图",
- "hexmapping.mishap.api.uninitialized": "%1$s对应的API尚未初始化",
- "hexmapping.mishap.marker.unrecognized": "此标记无法直接转换为%s标记",
- "hexmapping.mishap.no_integration": "此地图iota需同%s模组使用,但该模组未安装"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexweb/hexweb/README.md b/projects/1.20/assets/hexweb/hexweb/README.md
deleted file mode 100644
index ab13d93f928f..000000000000
--- a/projects/1.20/assets/hexweb/hexweb/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/hexweb/hexweb)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/hexweb/hexweb)
\ No newline at end of file
diff --git a/projects/1.20/assets/hexweb/hexweb/lang/en_us.json b/projects/1.20/assets/hexweb/hexweb/lang/en_us.json
deleted file mode 100644
index 4fb88f969ec9..000000000000
--- a/projects/1.20/assets/hexweb/hexweb/lang/en_us.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "hexweb.iota.response": "HTTPResponse{%s}",
-
- "hexweb.mishap.invalid_json_key": "The \"%s\" key is not present within the JsonIota!",
- "hexweb.mishap.cannot_json": "The %s iota has no direct Json translation!",
- "hexweb.mishap.too_early": "You tried accessing a HTTP response before it arrived!",
- "hexweb.mishap.blacklist_url": "This URL is blacklisted! Attempted: %s",
- "hexcasting.mishap.invalid_value.class.json": "a json object",
- "hexcasting.mishap.invalid_value.class.response": "a HTTP response",
-
- "hexweb.entry.json_patterns": "JSON Patterns",
- "hexweb.page.json_patterns.entry": "These patterns were taken from a series of notes scrawled on the walls of the room of a Douglas Crockford shortly before their disappearence.$(br)$(br)They describe ways of creating and manipulating a dictionary-like object which uses Strings for keys and a select range of iotas as values. I wonder what the practical applications are...",
- "hexcasting.action.hexweb:create_json": "Jason's Reflection",
- "hexweb.page.json_patterns.create_json": "Creates an empty JSON object.",
- "hexcasting.action.hexweb:parse_json": "Jason's Gambit",
- "hexweb.page.json_patterns.parse_json": "Turns the given String into a JSON object. If it cannot be parsed into a JSON object itself, a wrapper JSON object will be created.",
- "hexcasting.action.hexweb:has_element": "Jason's Purification",
- "hexweb.page.json_patterns.has_element": "Checks whether the given JSON iota has the given key.",
- "hexcasting.action.hexweb:get_element": "Jason's Purification II",
- "hexweb.page.json_patterns.get_element": "Gets the stored iota at the given key. Mishaps upon their being no iota.",
- "hexcasting.action.hexweb:set_element": "Jason's Exaltation",
- "hexweb.page.json_patterns.set_element": "Sets the given iota at the given key. Setting a Garbage iota removes the key.",
-
- "hexweb.entry.http_spells": "HTTP Spells",
- "hexweb.page.http_spells.entry": "While pondering the depths of one's mind, Sir Bernes-Lee caught a glimpse into another universe. With this view fresh in his mind, he quickly conjured a JSON object, imbued it with information, and sent it hurdling into the other universe.$(br)$(br)These are the patterns recovered after Berners-Lee was found dead having received enough information back to fry his mind.",
- "hexcasting.action.hexweb:request": "Request",
- "hexweb.page.http_spells.request": "Sends an HTTP request made of the given data, method, and headers to the provided URL.$(br2)The Response is truthy if a response is received.",
- "hexcasting.action.hexweb:get_response": "Get Response",
- "hexweb.page.http_spells.get_response": "Given a Response Iota, attempt to parse the results. Will Mishap if too early or an IOException is thrown."
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexweb/hexweb/lang/zh_cn.json b/projects/1.20/assets/hexweb/hexweb/lang/zh_cn.json
deleted file mode 100644
index 262c0766c0f5..000000000000
--- a/projects/1.20/assets/hexweb/hexweb/lang/zh_cn.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "hexweb.iota.response": "HTTP响应{%s}",
-
- "hexweb.mishap.invalid_json_key": "JSON iota中没有“%s”键!",
- "hexweb.mishap.cannot_json": "Iota%s无法翻译为JSON!",
- "hexweb.mishap.too_early": "试图在HTTP响应到达前访问!",
- "hexweb.mishap.blacklist_url": "此URL已被黑名单!访问对象:%s",
- "hexcasting.mishap.invalid_value.class.json": "一个JSON对象",
- "hexcasting.mishap.invalid_value.class.response": "一个HTTP响应",
-
- "hexweb.entry.json_patterns": "JSON 图案",
- "hexweb.page.json_patterns.entry": "这些图案来自某位道格拉斯·克罗克福德失踪前不久在其房间的墙壁上涂画的一些文字。$(br)$(br)那些文字描述了如何创造与操纵一种类似字典的对象:以字符串为键,以特定类型的 iota 为值。不知道这种 iota 有何实际用途……",
- "hexcasting.action.hexweb:create_json": "杰森之精思",
- "hexweb.page.json_patterns.create_json": "获取一个空 JSON 对象。",
- "hexcasting.action.hexweb:parse_json": "杰森之策略",
- "hexweb.page.json_patterns.parse_json": "将所给字符串转换为 JSON 对象。若无法直接解析为 JSON 对象,则创建一个包装 JSON 对象。",
- "hexcasting.action.hexweb:has_element": "杰森之纯化",
- "hexweb.page.json_patterns.has_element": "检验所给 JSON iota 有无给定键。",
- "hexcasting.action.hexweb:get_element": "杰森之纯化,第二型",
- "hexweb.page.json_patterns.get_element": "根据所给键获取对应 iota。无对应 iota 时会招致事故。",
- "hexcasting.action.hexweb:set_element": "杰森之提整",
- "hexweb.page.json_patterns.set_element": "设置所给键对应的 iota。",
-
- "hexweb.entry.http_spells": "HTTP 法术",
- "hexweb.page.http_spells.entry": "在思考意识的深度时,伯纳斯-李爵士偶然看到了另一个宇宙的存在。说时迟那时快,他迅速构筑了一个 JSON 对象,向其中灌注了信息,再向那个宇宙发送了出去。$(br)$(br)这些图案是在伯纳斯-李被发现已死时回收得来的,他接收的信息多到烧坏了他的意识。",
- "hexcasting.action.hexweb:request": "请求",
- "hexweb.page.http_spells.request": "使用所给数据向所给网络连接端点发送 HTTP 请求。$(br2)收到响应即视作响应为真值。",
- "hexcasting.action.hexweb:get_response": "解析响应",
- "hexweb.page.http_spells.get_response": "接受一个 HTTP 响应并尝试解析。过早解析或抛出 IOException 时会招致事故。"
-}
\ No newline at end of file
From 9f149c99e0ec822892981e65df6e3a3a8913e5dc Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:39:15 +0800
Subject: [PATCH 69/78] =?UTF-8?q?HexxyAttributes=20SlateWork=20Hexstructio?=
=?UTF-8?q?n=20Hierophantics=20transfer=EF=BC=9A#5413?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../1UNKNOWN/slate_work/lang/en_us.json | 91 ---------------
.../1UNKNOWN/slate_work/lang/zh_cn.json | 91 ---------------
.../hexstruction/hexstruction/lang/en_us.json | 29 -----
.../hexstruction/hexstruction/lang/zh_cn.json | 29 -----
.../hierophantics/lang/en_us.json | 109 ------------------
.../hierophantics/lang/zh_cn.json | 109 ------------------
.../hexxyattributes/README.md | 1 -
.../hexxyattributes/lang/en_us.json | 16 ---
.../hexxyattributes/packer-policy.json | 6 -
.../hexxyattributes/README.md | 16 ---
.../hexxyattributes/lang/en_us.json | 16 ---
.../hexxyattributes/lang/zh_cn.json | 16 ---
12 files changed, 529 deletions(-)
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json
delete mode 100644 projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md
delete mode 100644 projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
delete mode 100644 projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
deleted file mode 100644
index 8065bfc523eb..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/en_us.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "itemGroup.slate_work": "Slate Works",
-
- "block.slate_work.storage_loci": "Storage Vessels",
- "block.slate_work.ambit_loci": "Ambit Extender",
- "block.slate_work.crafting_loci": "Patterned Assembler",
- "block.slate_work.speed_loci": "Wave Regulator",
- "block.slate_work.macro_loci": "Spell Imprinter",
-
- "Patterns:": "",
- "hexcasting.action.slate_work:get_storage": "Get Vessels",
- "hexcasting.action.slate_work:check_item": "Check Item",
- "hexcasting.action.slate_work:store_item": "Lay Item",
- "hexcasting.action.slate_work:get_item": "Reawaken Item",
- "hexcasting.action.slate_work:sort_items": "Reorient Items",
-
- "hexcasting.action.slate_work:set_craft": "Set Recipe",
- "hexcasting.action.slate_work:set_macro": "Bind Macro",
-
- "hexcasting.action.slate_work:wave_position": "Wave Location Rfln.",
- "hexcasting.action.slate_work:wave_normal": "Wave Facing Rfln.",
- "hexcasting.action.slate_work:wave_speed": "Wave Speed Rfln.",
- "hexcasting.action.slate_work:media_reflection": "Circle Media Rfln.",
-
- "Items:": "",
- "item.slate_work.allay_pigment": "Quenched Pigment",
-
- "Entries:": "",
- "slate_work.entry.storage_loci": "Slate Works Loci Patterns",
- "slate_work.page.storage_loci.1": "As wonderful as $(thing)Vessels/$ are for storage, they have an... opaque method of interaction. The main way of interaction is with _Hexes; more specifically, using a _Hex to describe what I wish to retrieve. Importantly, these all $(l:casting/mishaps2)mishap when not cast in a Spell Circle/$. $(br2)$(br)$(o)“Riddles,” I said. $(br)“Always preferable to no answer at all,” he responded.",
- "slate_work.page.storage_loci.2": "To elaborate more, $(thing)Vessels/$ respects Nature's silly rules regarding the \"Stack Limit\" by working around them. Rather than directly calling an item based on its name, I more-or-less supply a \"description;\" this is a _Hex that takes an $(l:patterns/scrying/item)Item Stack Iota/$, and needs to return a boolean. Also, all patterns to do with the retrieving of $(thing)Storage Vessels/$ take a copy of the Stack, and puts it onto the 'inner' stack (Much like $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$).",
- "slate_work.page.storage_loci.get_storage": "This simply returns what $(thing)Vessels/$ the current $(l:greatwork/spellcircles)Spell Circle/$ has activated. I should likely use this to check if the $(l:greatwork/spellcircles)Spell Circle/$ has collected any $(thing)Vessels/$.",
- "slate_work.page.storage_loci.store_item": "It is much easier to store an item into a $(thing)Vessel/$ than to pull it out. This pattern simply takes an Item Entity, and neatly sorts it into the activated $(thing)Storage Vessels/$. Costs an 1/8 of a dust per activated $(thing)Vessel/$.",
- "slate_work.page.storage_loci.get_item": "This takes a _Hex and runs it on every $(l:patterns/scrying/item)Item Stack/$ stored. Once the _Hex is run, it requires a $(thing)Integer/$, $(thing)Vector/$, and $(thing)Boolean/$, and left on the stack, in that order.",
- "slate_work.page.storage_loci.get_item_cont": "Further explained: this runs the given _Hex on every stored Item in the $(thing)Vessels/$. The _Hex must return (Top to bottom) either a False (omits the Vector, and Number) or True, Vector, and Number. The Vector corresponds to where to the position in the World to output the items (respecting ambit), and Number relates to how many of that type of item to retrieve. $(br2)Costs a 1/4 a dust per activated $(thing)Vessel/$.",
- "slate_work.page.storage_loci.check_item": "Check Item functions much like Reawaken Item; however, it only requires a Boolean from the ran _Hex. If the Boolean is ever True, the spell ends, and returns True.",
- "slate_work.page.storage_loci.sort_items": "In some rare scenarios, $(thing)Vessels/$ can get jumbled up and have items of the same type spread across different Vessels. This is a neat spell to resort them at a cost; that cost being 5 $(l:items/amethyst)Charged Amethyst/$.",
- "slate_work.page.storage_loci.set_craft": "Sets the crafting recipe of a $(l:greatwork/crafting_loci)Patterned Assembler/$. Takes a list of null, items, or item variants, and applies it to the targeted $(l:greatwork/crafting_loci)Assembler/$.",
- "slate_work.page.storage_loci.set_craft_cont": "To note: the given list gets \"formated\" as left to right, top to bottom in the $(l:greatwork/crafting_loci)Patterned Assembler/$. As well, the Nulls represent blank spots in recipes. Finally, the Spell will Mishap if the given list is longer than 9 items (but passes with less than or equal too 9 items). $(br2)Does not Mishap if casted outside of a $(l:greatwork/spellcircles)Spell Circles/$. Costs a negligible amount of _media.",
- "slate_work.page.storage_loci.set_macro": "This binds both a pattern and a _Hex to a $(l:greatwork/macro_loci)Spell Imprinter/$, which is at the targeted vector. $(br2)Does not Mishap if casted outside of a $(l:greatwork/spellcircles)Spell Circles/$. Costs a negligible amount of _media.",
-
- "slate_work.entry.storage_loci_block": "Storage Vessels",
- "slate_work.page.storage_loci_block.storage_loci": "After $(o)FAR TOO LONG/$ of lugging my items in clunky, splintery, $(o)chests/$... I have discovered the perfect method of storage, $(thing)Storage Vessels/$. $(br)Despite my current state, I am still far too full of mental garbage to interface with the $(thing)Storage Vessels/$. However, $(l:greatwork/spellcircles)Spell Circles/$ are perfect for insertion and extraction of these new storage methods.",
- "slate_work.page.storage_loci_block.storage_loci_cont": "While $(thing)Storage Vessels/$ can only hold 16 \"types\" of items each (much like a single chest holding only 27 slots), they ignore the standard stack limit, holding a near-infinite amount of each slot! $(br2)Additionally, as a $(l:greatwork/spellcircles)Spell Circles/$ activates these with its high-density Media Wave, the $(l:greatwork/spellcircles)Circle/$ gains the ability to read and retrieve items from the $(thing)Storage Vessels/$ (stacking as more are activated). I have noted down the Spells for doing just that $(l:patterns/storage_loci)here/$.",
- "slate_work.page.storage_loci_block.dropping": "Important to note: when $(thing)Storage Vessels/$ are broken, they do not eject the items stored within. Instead, they carefully pack all of their items into the resulting broken block (much like a $(item)Shulker Box/$). $(br2)$(br2)$(o)\"Oh boy! Time to get my items!\"$(br)[sound of chest opening]$(br)[sound of chest closing]$(br)[sound of chest opening]$(br)[sound of chest closing]$(br)[sound of chest opening]$(br)[sound of chest closing]",
- "slate_work.page.storage_loci_block.crafting": "The $(thing)Storage Vessel/$ requires a mind capable of diving into the depths, and retrieving something based on only a hint. A Fisherman villager is perfect for this.",
-
- "slate_work.entry.ambit_loci": "Ambit Extenders",
- "slate_work.page.ambit_loci.ambit_loci": "The Ambit Extender is a fabulous answer to my $(thing)Ambit/$ woes when it comes to $(l:greatwork/spellcircles)Spell Circles/$. This pops a vector from the stack, and extends ambit in the direction (negative vectors extending the negative corner of Circle Ambit). $(br2)$(br)$(o)With great range comes with great costs, err-",
- "slate_work.page.ambit_loci.ambit_loci_cont": "While this is not as strong as... $(l:https://forum.petra-k.at/viewtopic.php?t=136)other/$ methods of giving a $(l:greatwork/spellcircles)Spell Circles/$ more $(thing)Ambit/$, I do feel like Nature takes a kinder approach to my amalgamation of free will if I use this.$(br2)This does not come cheap however, the _media cost increases with the square of the total distance extended in dust.",
- "slate_work.page.ambit_loci.crafting": "Since the $(thing)Ambit Extender/$ operates on $(thing)Ambit/$, having a \"core\" block that can operate on Media Waves would be beneficial. As well, having nearlyR $(l:greatwork/quenching_allays)Pure Media/$ would also be required for this construction.",
-
- "slate_work.entry.speed_loci": "Wave Regulators",
- "slate_work.page.speed_loci.speed_loci": "As I begin to explore the uses of the $(l:greatwork/spellcircles)Great Work/$, I find my self needing more control over these fascinating possibilities. So I have created the $(thing)Wave Regulator/$; what this does is it pops a number from the stack, and attempts to set the \"speed\" of the wave. More specifically, how many 20ths of a second the wave should wait before going to the next slate.",
- "slate_work.page.speed_loci.speed_loci_cont": "This system does have some limitations however. For one, it cannot set the speed to be faster than the wave could possibly move, doing nothing if I try to set the speed higher. Explained, it can only set the time to wait to any number above or equal the circles default acquired speed, or back to its regular speed. To do this, the $(thing)Wave Regulator/$ needs to pop a 0 from the stack, and it gives the $(l:greatwork/spellcircles)Spell Circle/$ full control of the $(thing)media wave/$ again.",
- "slate_work.page.speed_loci.crafting": "$(thing)Wave Regulators/$ are odd in their construction compared to the rest of my... $(o)Gifted/$ visions. All they require is a $(l:greatwork/quenching_allays)scrap of Media/$ with some writhing will still left in it... how it must be in pain-- and some slate to make it compatible with the $(l:greatwork/spellcircles)Circle/$.",
-
- "slate_work.entry.crafting_loci": "Patterned Assemblers",
- "slate_work.page.crafting_loci.crafting_loci": "Oh how my hands $(o)Ache/$ and $(o)Buzz/$ from countless hours of slaving over a $(item)Crafting Table/$... luckily these days are over. The $(thing)Patterned Assembler/$ solves these pains and problems. $(br2)$(o)Items ever deeper in items, I cant stop crafting, I cant stop looking; more items must be crafted and automated. $(b)NOW/$.",
- "slate_work.page.crafting_loci.crafting_loci_cont": "Precisely what the $(thing)Patterned Assembler/$ does is it attempts to craft whatever item is set within, pulling from activated $(l:greatwork/spellcircles)Storage Vessels/$, and placing the resulting item(s) back into the Vessels. This is triggered when the $(thing)Assembler/$ is activated with a $(l:greatwork/spellcircles)Spell Circle/$. The recipe can be set by hand, or via a $(l:patterns/storage_loci#slate_work:set_craft)Spell/$. If it can craft the inscribed item, it returns a True to the stack and crafts the item, else it does not craft the item (not enough ingredients, no recipe, etc) and returns a False.",
- "slate_work.page.crafting_loci.crafting": "The $(thing)Patterned Assembler/$ requires the mind of a villager well adapted to paging through tomes and texts; it seems like the $(thing)Librarian/$ is perfect for this.",
-
- "slate_work.entry.macro_loci": "Spell Imprinter",
- "slate_work.page.macro_loci.macro_loci": "During my travels I have heard mutterances about things called \"macros,\" patterns that represent larger hexes (I believe these to be linked to a possible $(l:greatwork/akashiclib)Akashic Library/$?). Nonetheless, I am able to recreate these \"macros\" with Spell Circles using the $(thing)Spell Imprinter/$, and a _Hex written inside of a focus placed on top of the Imprinter.",
- "slate_work.page.macro_loci.macro_loci_cont": "When this is activated by a $(l:greatwork/spellcircles)Spell Circle/$, it binds the$(br)currently set pattern to the _Hex stored within the focus (which can be set via a $(l:patterns/storage_loci#slate_work:set_macro)spell/$). Thus whenever the pattern is inscribed into slate, and activated; it instead runs the _Hex rather than the written pattern. Though, the implications of this are horrifying, rewriting the definition of a $(o)spell/$. A thing that is deeply intertwined with the world itself, does that mean I, could be rewritten; changed by a higher force? No. N$(k)AAAAA!/$",
- "slate_work.page.macro_loci.craft": "Despite the horrors this possibly ascertains... this is still an advantageous block to obtain. I believe a Weaponsmith villager would be the best fit. This is due to their adeptness at reworking broken weapons to new, sharper instruments.",
-
- "slate_work.entry.slate_work_pigments": "Fanciful Pigments",
- "slate_work.page.slate_work_pigments.slate_work_pigments": "Just as my staves have evolved, so too must my pigments. These may not gift any glorious or grand amenities or effects, but all their boons are purely visual. $(br2)Additionally, those who know of these pigments, will now know of my $(o)Awakening/$.",
- "slate_work.page.slate_work_pigments.allay": "Since my... $(o)Visions/$, I have awoken to see the true form of Allays, nothing more than a scrap of _media. Perhaps this scrap of _media could be turned into a picture perfect pigment?",
-
- "slate_work.entry.slate_reflection": "Slate Reflections",
- "slate_work.page.storage_loci.wave_position": "Adds the current position of the $(thing)Media Wave/$ to the top of the stack.",
- "slate_work.page.storage_loci.wave_normal": "Adds the current facing of the $(thing)Media Wave/$ to the top of the stack. If the current block does not have a facing, it returns a vector of [0,0,0].",
- "slate_work.page.storage_loci.wave_speed": "Adds the current speed of the $(thing)Media Wave/$ to the top of the stack. This is measured in how many 20ths of a second the $(thing)Media Wave/$ waits until going to the next Slate.",
- "slate_work.page.storage_loci.media_reflection": "Adds the current amount of _Media in the $(thing)Impetus/$ to the stack, in units of dust.",
-
- "Mishaps:": "",
- "hexcasting.mishap.circle.no_storage_loci_ran": "At %s did not find any activated Vessels",
- "hexcasting.mishap.circle.media_costs": "At %s required more Media than what the impetus held",
- "hexcasting.mishap.circle.readable": "At %s required a List in a Focus, but did not get that",
-
- "hexcasting.mishap.no_storage_loci_ran": "Did not find any activated Vessels",
- "hexcasting.mishap.list_length": "Required a list with %s items, but got %s items",
- "hexcasting.mishap.wrong_block": "Required a(n) %s at %s, but found %s",
- "hexcasting.mishap.needed_focus": "Required a focus at %s, but did find that",
-
- "Scrying Lenses:": "",
- "slate_work.scrying.macro.top": "Pattern: ",
- "slate_work.scrying.macro.error": "Could not display Iota(s)"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
deleted file mode 100644
index a954bab56f57..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/slate_work/lang/zh_cn.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "itemGroup.slate_work": "石板工程",
-
- "block.slate_work.storage_loci": "存储容具",
- "block.slate_work.ambit_loci": "范围扩展器",
- "block.slate_work.crafting_loci": "样板组装器",
- "block.slate_work.speed_loci": "波速调节器",
- "block.slate_work.macro_loci": "法术刻印器",
-
- "Patterns:": "",
- "hexcasting.action.slate_work:get_storage": "获取容具",
- "hexcasting.action.slate_work:check_item": "检查物品",
- "hexcasting.action.slate_work:store_item": "容纳物品",
- "hexcasting.action.slate_work:get_item": "唤回物品",
- "hexcasting.action.slate_work:sort_items": "重整物品",
-
- "hexcasting.action.slate_work:set_craft": "设置配方",
- "hexcasting.action.slate_work:set_macro": "绑定宏",
-
- "hexcasting.action.slate_work:wave_position": "波位之精思",
- "hexcasting.action.slate_work:wave_normal": "波向之精思",
- "hexcasting.action.slate_work:wave_speed": "波速之精思",
- "hexcasting.action.slate_work:media_reflection": "法术环媒质之精思",
-
- "Items:": "",
- "item.slate_work.allay_pigment": "淬灵染色剂",
-
- "Entries:": "",
- "slate_work.entry.storage_loci": "石板工程环核图案",
- "slate_work.page.storage_loci.1": "$(thing)容具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。",
- "slate_work.page.storage_loci.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)容具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储容具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。",
- "slate_work.page.storage_loci.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)容具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)容具/$。",
- "slate_work.page.storage_loci.store_item": "向$(thing)容具/$存入物品比取出容易。此图案会接受一个物品实体,并将其存入激活的$(thing)存储容具/$。每有一个激活的$(thing)容具/$消耗 1/8 个紫水晶粉。",
- "slate_work.page.storage_loci.get_item": "此图案接受一个$(hex)咒术/$,并对所存储的所有$(l:patterns/scrying/item)物品组/$运行。运行该$(hex)咒术/$后,图案还需要栈中按顺序存在一个$(thing)整数/$,一个$(thing)向量/$和一个$(thing)布尔值/$。",
- "slate_work.page.storage_loci.get_item_cont": "继续解释说明。它会对$(thing)容具/$中存储的所有物品执行给定$(hex)咒术/$。该$(hex)咒术/$必须从栈顶至栈底依次返回 False(此时省略向量和数)或 True,一个向量,一个数。向量代表输出物品的位置(需在影响范围内),数代表应取出的数量。$(br2)每有一个激活的$(thing)容具/$消耗 1/4 个紫水晶粉。",
- "slate_work.page.storage_loci.check_item": "检查物品的功能和唤回物品类似。但它只需要“内部栈”上有一个布尔值。如果所有布尔值中有一个为 True,则法术结束并返回 True。",
- "slate_work.page.storage_loci.sort_items": "在某些情况下,$(thing)容具/$会变得杂乱无章,同种物品被分散到不同的容具里去。这条好用的法术就可以整理它们,但它有代价:需消耗 5 个$(l:items/amethyst)充能紫水晶/$。",
- "slate_work.page.storage_loci.set_craft": "为$(l:greatwork/crafting_loci)样板组装器/$设置合成配方。需接受包含 Null、物品、物品变种的列表,然后将此列表应用于目标$(l:greatwork/crafting_loci)组装器/$。",
- "slate_work.page.storage_loci.set_craft_cont": "需要注意,$(l:greatwork/crafting_loci)样板组装器/$会将所给列表“格式化”为从左至右再从上至下的配方。自然,Null 代表配方中的空位。最后提一句,法术会在列表长于 9 个元素时招致事故,少于或等于 9 个时则不会。$(br2)在$(l:greatwork/spellcircles)法术环/$外施放不会招致事故。消耗极少量$(media)媒质/$。",
- "slate_work.page.storage_loci.set_macro": "此图案会为目标位置处的$(l:greatwork/macro_loci)法术刻印器/$绑定一个图案和一个$(hex)咒术/$。$(br2)在$(l:greatwork/spellcircles)法术环/$外施放不会招致事故。消耗极少量$(media)媒质/$。",
-
- "slate_work.entry.storage_loci_block": "存储容具",
- "slate_work.page.storage_loci_block.storage_loci": "在忍那些到处都是木刺的笨重$(o)箱子/$到$(o)快忍不下去/$之后……我总算发现了完美的存储方法——$(thing)存储容具/$。$(br)虽然我已经抛弃了一部分意识垃圾,但还不足以直接操作$(thing)存储容具/$。不过,$(l:greatwork/spellcircles)法术环/$就是处理这种新存储方法的好工具。",
- "slate_work.page.storage_loci_block.storage_loci_cont": "虽然一个$(thing)存储容具/$只能存储 16 “类”物品(就和箱子只有 27 个槽位差不多),但它们却能无视标准堆叠上限,换言之,每个槽里都能存下近乎无限的物品!$(br2)而且,在$(l:greatwork/spellcircles)法术环/$的高密度媒质波激活容具之后,$(l:greatwork/spellcircles)它/$就将能够读取和拿出$(thing)存储容具/$里的物品;激活的越多,能操作的就越多。我在$(l:patterns/storage_loci)这里/$记录了进行这种操作所需的法术。",
- "slate_work.page.storage_loci_block.dropping": "需要格外注意的是,$(thing)存储容具/$遭到破坏时不会喷出其中的物品,而是会将物品小心打包进掉落的方块(和$(item)潜影盒/$很像)。$(br2)$(br2)$(o)“噢!是时候拿点物品了!”$(br)[箱子:开启]$(br)[箱子:关闭]$(br)[箱子:开启]$(br)[箱子:关闭]$(br)[箱子:开启]$(br)[箱子:关闭]",
- "slate_work.page.storage_loci_block.crafting": "$(thing)存储容具/$需要能够潜入深渊,还能根据少量提示取回物品的意识。渔夫村民就很适合。",
-
- "slate_work.entry.ambit_loci": "范围扩展器",
- "slate_work.page.ambit_loci.ambit_loci": "范围扩展器能解$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$之忧。它会移除栈顶向量,并据此扩展影响范围(负向量会向负方向扩展法术环影响范围)。$(br2)$(br2)$(o)范围越大,消耗越大,呃……",
- "slate_work.page.ambit_loci.ambit_extender_cont": "虽然它不及……$(l:https://forum.petra-k.at/viewtopic.php?t=136)其他/$扩展$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$的方法强大,但我确实觉得这种方法可以让自然对我的自由意志友善些。$(br2)这种方法并不便宜,$(media)媒质/$的耗量随改变距离的平方变化。",
- "slate_work.page.ambit_loci.crafting": "因为$(thing)范围扩展器/$修改的是$(thing)影响范围/$,配备能操纵媒质波的“核心”应为最佳。自然,创造这种方块需要的是$(l:greatwork/quenching_allays)纯净的媒质/$。",
-
- "slate_work.entry.speed_loci": "波速调节器",
- "slate_work.page.speed_loci.speed_loci": "自从我开始探索$(l:greatwork/spellcircles)卓伟之作/$的用途之时,就总有更精细控制这种新事物的需要。因此,我制造了$(thing)波速调节器/$。它会从栈中弹出一个数,并用其设置媒质波的“速度”。更准确地说,是媒质波在流入下一块石板前应等待多少个 1/20 秒。",
- "slate_work.page.speed_loci.speed_loci_cont": "这一体系的确有其局限。例如,速度无法超出媒质波移速的上线,试图这么做不会产生任何效果。换言之,它只能将等待时间设为大于等于法术环的最短等待时间,或是重设为正常速度。后者需要$(thing)波速调节器/$弹出 0,从而将$(thing)媒质波/$的控制权交还给$(l:greatwork/spellcircles)法术环/$。",
- "slate_work.page.speed_loci.crafting": "和我……$(o)受赐福/$的视野中看到的其他东西不一样,$(thing)波速调节器/$显得很奇怪。它需要的只是$(l:greatwork/quenching_allays)媒质的碎片/$,但其中须留有挣扎的痕迹……不管怎么说它必须仍在痛苦之中——和几块石板,方便嵌入$(l:greatwork/spellcircles)法术环/$。",
-
- "slate_work.entry.crafting_loci": "样板组装器",
- "slate_work.page.crafting_loci.crafting_loci": "我的双手在$(item)工作台/$上不断挥动,带来的只是$(o)疼痛/$和$(o)麻木/$……好在这些都过去了。$(thing)样板组装器/$就是止痛剂。$(br2)$(o)物品里埋着物品,合成到停不下来,看到停不下来,合成、自动化、更多物品。$(b)现在就要/$。",
- "slate_work.page.crafting_loci.crafting_loci_cont": "$(thing)样板组装器/$的真正原理是:从激活的$(l:greatwork/spellcircles)存储容具/$中取出物品,按设定合成,再把产物存回容具。$(thing)组装器/$被$(l:greatwork/spellcircles)法术环/$触发时即会执行上述操作。可以手工设置配方,也可使用$(l:patterns/storage_loci#slate_work:set_craft)法术/$。如果它可以合成给定物品,则它会向栈返回 True,并合成物品;否则(原材料不够,配方没指定等)返回 False,且不会合成。",
- "slate_work.page.crafting_loci.crafting": "$(thing)样板组装器/$需要熟络典籍和文章,能一目十行的村民的意识。完美之选是$(thing)图书管理员/$。",
-
- "slate_work.entry.macro_loci": "法术刻印器",
- "slate_work.page.macro_loci.macro_loci": "我在旅行中从其他人的交谈里听到了某种叫“宏”的东西,也即代表咒术的图案(我认为需要和$(l:greatwork/akashiclib)阿卡夏图书馆/$配合?)。即便如此,我也可以在法术环上重现“宏”。需要用到$(thing)法术刻印器/$,还需在刻印器上放置写有$(hex)咒术/$的核心。",
- "slate_work.page.macro_loci.macro_loci_cont": "$(l:greatwork/spellcircles)法术环/$激活刻印器后,它会将当前图案与核心内的$(hex)咒术/$绑定(也可通过$(l:patterns/storage_loci#slate_work:set_macro)法术/$设置)。每当画有该图案的石板被激活,即会执行所给$(hex)咒术/$,而非该图案。这实在是细思恐极;重写$(o)法术/$的定义,重写与世界本身紧密相关的事物。那么,我是不是也会,被更高级的存在改写?不。不$(k)啊啊啊啊啊!/$",
- "slate_work.page.macro_loci.craft": "虽然这种做法可能会带来恐惧……但还是很好用。我认为武器匠是最好的选择,他们的专长就是磨砺和翻新损坏的武器。",
-
- "slate_work.entry.slate_work_pigments": "华丽染色剂",
- "slate_work.page.slate_work_pigments.slate_work_pigments": "我的法杖蜕变了,我的染色剂也必将蜕变。它们不会带来什么荣耀,也不会招致可怖的事故;它们带来的祝福只存在于视觉。$(br2)而且,知晓这些染色剂的人,即会知晓我的$(o)觉醒/$。",
- "slate_work.page.slate_work_pigments.allay": "自我的……$(o)视野/$蜕变后,我发觉了悦灵的真实面貌——$(media)媒质/$碎片。也许这块$(media)媒质/$碎片可以转化成完美而华丽的染色剂?",
-
- "slate_work.entry.slate_reflection": "石板精思操作",
- "slate_work.page.storage_loci.wave_position": "将$(thing)媒质波/$的当前位置压入栈顶。",
- "slate_work.page.storage_loci.wave_normal": "将$(thing)媒质波/$的当前朝向压入栈顶。如果当前方块没有朝向,则返回 (0, 0, 0)。",
- "slate_work.page.storage_loci.wave_speed": "将$(thing)媒质波/$的当前速度压入栈顶。测量方法是:在流入下一块石板前,$(thing)媒质波/$需等待多少个 1/20 秒。",
- "slate_work.page.storage_loci.media_reflection": "将$(thing)促动石/$的当前$(media)媒质/$量压入栈顶,以紫水晶粉计。",
-
- "Mishaps:": "",
- "hexcasting.mishap.circle.no_storage_loci_ran": "%s处未找到已激活的容具",
- "hexcasting.mishap.circle.media_costs": "%s处需要的媒质超出了促动石当前的存储量",
- "hexcasting.mishap.circle.readable": "%s处需要核心中存有列表,而实际没有",
-
- "hexcasting.mishap.no_storage_loci_ran": "未找到已激活的容具",
- "hexcasting.mishap.list_length": "需要包含%s个元素的列表,而实际包含了%s个",
- "hexcasting.mishap.wrong_block": "需要%2$s处存在%1$s,而实际为%3$s",
- "hexcasting.mishap.needed_focus": "需要%s处存在核心,而实际没有",
-
- "Scrying Lenses:": "",
- "slate_work.scrying.macro.top": "图案:",
- "slate_work.scrying.macro.error": "无法显示iota"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json
deleted file mode 100644
index 0a256fa9eb60..000000000000
--- a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "hexcasting.action.hexstruction:save_structure": "Devour Structure",
- "hexcasting.action.hexstruction:load_structure": "Actualize Structure",
- "hexcasting.action.hexstruction:display_structure": "Visualize Structure",
- "hexcasting.action.hexstruction:mirror_front_back": "Mirror Prfn. Z",
- "hexcasting.action.hexstruction:mirror_left_right": "Mirror Prfn. X",
- "hexcasting.action.hexstruction:rotate_clockwise": "Rotation Prfn. CW",
- "hexcasting.action.hexstruction:rotate_counterclockwise": "Rotation Prfn. CCW",
- "hexcasting.action.hexstruction:bounding_box": "Bounding Prfn.",
- "hexcasting.action.hexstruction:transformations": "Transformation Prfn.",
-
- "hexstruction.page.structures.title": "Structure Iota",
- "hexstruction.page.structures.0": "Inspired by my ability to both break and place blocks, I've devised a method to expand those capabilities. By breaking down a portion of the world itself into the mere concept of that space, I can store entire regions in my mind as a Structure iota, which I can manipulate and place back into the world. Unfortunately, it appears nature rejects my attempts to store $(l:basics/geodes)$(item)Budding Amethyst/$ and its ilk.",
- "hexstruction.page.structures.1": "Nature prefers to conserve matter; as a result, every copy of the same Structure iota will reference the same structure. Once one is used to place the structure back into the world, no other copy will be able to do the same. Coercing the iota to a boolean will return whether or not the iota remains valid. When \"devouring\" a structure from the world, it appears to define an \"origin\" at the lower North-West corner of the supplied bounds. This appears to remain true even after applying any number of transformations to the structure.",
-
- "hexstruction.page.mirror_front_back.summary": "Flips a stored Structure front-to-back, or across the Z-axis.",
- "hexstruction.page.mirror_left_right.summary": "Flips a stored Structure left-to-right, or across the X-axis.",
- "hexstruction.page.rotate_clockwise.summary": "Rotates a stored Structure 90-degrees clockwise.",
- "hexstruction.page.rotate_counterclockwise.summary": "Rotates a stored Structure 90-degrees counterclockwise.",
- "hexstruction.page.bounding_box.summary": "Removes a Structure from the stack, returning its dimensions in the format [x, y, z].",
- "hexstruction.page.transformations.summary": "Removes a Structure from the stack, returning its transformations as a list in the format [mirror, rotation].$(br)No Mirror -> 0; Front-Back -> 1; Left-Right -> 2$(br)No Rotation -> 0; 90 CW -> 1; 180 CW -> 2; 90 CCW -> 3",
-
- "hexstruction.page.structure_spells.title": "Structures",
-
- "hexstruction.page.save_structure.summary": "Removes the locations of two corners from the stack, then consumes a region of space defined by those two corners, storing the result in a Structure iota.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block consumed.",
- "hexstruction.page.load_structure.summary": "Removes the location of the structure's origin and a structure from the stack, then attempts to place the structure at the origin, erasing the structure from all memory. Mishaps if any part of the structure overlaps with another block.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block placed.",
- "hexstruction.page.display_structure.summary.0": "Removes the location of the structure's origin and a structure from the stack, followed by a duration between 0 and 72000.",
- "hexstruction.page.display_structure.summary.1": "Displays a phantom structure at that location for the specified duration (in ticks). Does not erase the structure from memory.$(br)Costs about a hundredth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block displayed."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json
deleted file mode 100644
index da73fec548ac..000000000000
--- a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "hexcasting.action.hexstruction:save_structure": "吞噬结构",
- "hexcasting.action.hexstruction:load_structure": "实现结构",
- "hexcasting.action.hexstruction:display_structure": "显示结构",
- "hexcasting.action.hexstruction:mirror_front_back": "镜像之纯化,Z型",
- "hexcasting.action.hexstruction:mirror_left_right": "镜像之纯化,X型",
- "hexcasting.action.hexstruction:rotate_clockwise": "旋形之纯化,顺时针型",
- "hexcasting.action.hexstruction:rotate_counterclockwise": "旋形之纯化,逆时针型",
- "hexcasting.action.hexstruction:bounding_box": "界限之纯化",
- "hexcasting.action.hexstruction:transformations": "变换之纯化",
-
- "hexstruction.page.structures.title": "结构 Iota",
- "hexstruction.page.structures.0": "我具有破坏和放置方块的能力;受此启发,我想到了一种拓展它们的方法。只需将世界的一部分拆解为简单的、对该区域的概念,就可将整片区域存入意识,形成结构 iota。我可操纵此类 iota,还可将其放回世界之中。可惜,自然似乎不允许我存储$(l:basics/geodes)$(item)紫水晶母岩/$之类的方块。",
- "hexstruction.page.structures.1": "自然追求物质的守恒;因此,同一个结构 iota 的复制产物都对应同一个结构。只要某次放置使用了其中之一,则其他所有指向同一结构的 iota 都不可再用于放置。将此类 iota 强制转换为布尔值,所得结果代表该 iota 还是否可用。从世界中“吞噬”结构时,似乎会将“原点”定在所给区域西北方靠下的角落。无论结构经过何种变换,“原点”都会保持在那个角落。",
-
- "hexstruction.page.mirror_front_back.summary": "前后翻转结构,也即跨 Z 轴镜像。",
- "hexstruction.page.mirror_left_right.summary": "左右翻转结构,也即跨 X 轴镜像。",
- "hexstruction.page.rotate_clockwise.summary": "将所存结构顺时针旋转 90 度。",
- "hexstruction.page.rotate_counterclockwise.summary": "将所存结构逆时针旋转 90 度。",
- "hexstruction.page.bounding_box.summary": "移除栈顶结构,返回其尺寸,格式为 [x, y, z]。",
- "hexstruction.page.transformations.summary": "移除栈顶结构,返回其经历的变换,格式为 [镜像, 旋转]。$(br)无镜像 -> 0;前后翻转 -> 1;左右翻转 -> 2$(br)无旋转 -> 0;90 度顺时针 -> 1;180 度顺时针 -> 2;90 度逆时针 -> 3",
-
- "hexstruction.page.structure_spells.title": "结构",
-
- "hexstruction.page.save_structure.summary": "移除栈顶两个位置向量,并吞噬这两个位置作为角落所定义的区域,然后把产物存储为结构 iota。$(br)每吞噬一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexstruction.page.load_structure.summary": "移除栈顶结构原点向量和一个结构,并尝试在该原点的位置处放置结构,同时清除其他存储位置中代表同一结构的 iota。如果结构的任意一个部分与其他方块重叠,即会招致事故。$(br)每放置一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexstruction.page.display_structure.summary.0": "移除栈顶的结构原点向量、一个结构和一个 0 到 72000 之间的数,第三参数代表持续时间。",
- "hexstruction.page.display_structure.summary.1": "在给定位置显示结构的影响,持续时间以刻计。此操作不会清除其他同种 iota。$(br)每显示一个方块消耗大约 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
deleted file mode 100644
index c02296f0cf59..000000000000
--- a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "subtitles.hierophantics.hieromind_cast": "Embedded mind casts",
-
- "block.hierophantics.flay_bed": "Imbuement Bed",
-
- "advancements.hierophantics.embed_mind.title": "Interwoven",
- "advancements.hierophantics.embed_mind.description": "Embed a villager's mind into your own",
- "advancements.hierophantics.waste_mind.title": "Atomized",
- "advancements.hierophantics.waste_mind.description": "Waste a mind by activating an Imbuement Bed with no one in it",
- "advancements.hierophantics.all_triggers.title": "Ready for Anything",
- "advancements.hierophantics.all_triggers.description": "Have an embedded mind with each possible trigger type",
-
- "hierophantics.tooltip.mind_reference": "Embedded Mind \"%s\"",
- "hierophantics.tooltip.trigger": "Trigger: When %s",
- "hierophantics.tooltip.mishap_thrower": "Hierophantics Mishap Thrower",
-
- "hierophantics.tooltip.trigger_type.damage": "damaged",
- "hierophantics.tooltip.trigger_type.damage_typed": "damaged by '%s'",
- "hierophantics.tooltip.trigger_type.health": "health drops below %d",
- "hierophantics.tooltip.trigger_type.breath": "breath drops below %d",
- "hierophantics.tooltip.trigger_type.hunger": "hunger drops below %d",
- "hierophantics.tooltip.trigger_type.velocity": "velocity greater than %d",
- "hierophantics.tooltip.trigger_type.fall": "falling more than %d blocks",
- "hierophantics.tooltip.trigger_type.drop": "item dropped",
- "hierophantics.tooltip.trigger_type.attack": "entity struck",
- "hierophantics.tooltip.trigger_type.break": "block broken",
- "hierophantics.tooltip.trigger_type.jump": "jumping",
- "hierophantics.tooltip.trigger_type.teleport": "teleporting",
-
- "hexcasting.mishap.hierophantics:mind_freed": "Tried to interact with an embedded mind that doesn't exist",
- "hexcasting.mishap.hierophantics:minds_disabled.yours": "Your embedded minds are too unstable to %s!",
- "hexcasting.mishap.hierophantics:minds_disabled.other": "This embedded mind is too unstable to %s!",
- "hexcasting.mishap.hierophantics:not_your_mind": "Can't modify an embedded mind that isn't yours",
- "hexcasting.mishap.invalid_value.class.mind_reference": "an embedded mind",
- "hexcasting.mishap.invalid_value.class.trigger": "a trigger",
-
- "hierophantics.mishap.minds_disabled.action.cast": "function",
- "hierophantics.mishap.minds_disabled.action.read": "examine",
- "hierophantics.mishap.minds_disabled.action.write": "modify",
- "hierophantics.mishap.minds_disabled.action.free": "interact with",
-
- "hexcasting.action.hierophantics:get_minds": "Hierophant's Reflection",
- "hexcasting.action.hierophantics:reenable_minds": "Stabilize Minds",
- "hexcasting.action.hierophantics:set_mind_hex": "Payload Gambit",
- "hexcasting.action.hierophantics:get_mind_hex": "Payload Purification",
- "hexcasting.action.hierophantics:set_mind_trigger": "Trigger Gambit",
- "hexcasting.action.hierophantics:get_mind_trigger": "Trigger Purification",
- "hexcasting.action.hierophantics:free_mind": "Free Mind",
- "hexcasting.action.hierophantics:make_damage_trigger": "Trigger Reflection: Damage",
- "hexcasting.action.hierophantics:make_damage_type_trigger": "Trigger Reflection: Damage Type",
- "hexcasting.action.hierophantics:make_health_trigger": "Trigger Purification: Health",
- "hexcasting.action.hierophantics:make_breath_trigger": "Trigger Purification: Breath",
- "hexcasting.action.hierophantics:make_hunger_trigger": "Trigger Purification: Hunger",
- "hexcasting.action.hierophantics:make_velocity_trigger": "Trigger Purification: Velocity",
- "hexcasting.action.hierophantics:make_fall_trigger": "Trigger Purification: Fall",
- "hexcasting.action.hierophantics:make_drop_trigger": "Trigger Reflection: Drop",
- "hexcasting.action.hierophantics:make_attack_trigger": "Trigger Reflection: Attack",
- "hexcasting.action.hierophantics:make_break_trigger": "Trigger Reflection: Break",
- "hexcasting.action.hierophantics:make_jump_trigger": "Trigger Reflection: Jump",
- "hexcasting.action.hierophantics:make_teleport_trigger": "Trigger Reflection: Teleport",
-
- "hexcasting.action.book.hierophantics:make_damage_trigger": "Trigger Rfln: Damage",
- "hexcasting.action.book.hierophantics:make_damage_type_trigger": "Trigger Rfln: DmgType",
- "hexcasting.action.book.hierophantics:make_health_trigger": "Trigger Prfn: Health",
- "hexcasting.action.book.hierophantics:make_breath_trigger": "Trigger Prfn: Breath",
- "hexcasting.action.book.hierophantics:make_hunger_trigger": "Trigger Prfn: Hunger",
- "hexcasting.action.book.hierophantics:make_velocity_trigger": "Trigger Prfn: Velocity",
- "hexcasting.action.book.hierophantics:make_fall_trigger": "Trigger Prfn: Fall",
- "hexcasting.action.book.hierophantics:make_drop_trigger": "Trigger Rfln: Drop",
- "hexcasting.action.book.hierophantics:make_attack_trigger": "Trigger Rfln: Attack",
- "hexcasting.action.book.hierophantics:make_break_trigger": "Trigger Rfln: Break",
- "hexcasting.action.book.hierophantics:make_jump_trigger": "Trigger Rfln: Jump",
- "hexcasting.action.book.hierophantics:make_teleport_trigger": "Trigger Rfln: Teleport",
-
- "hierophantics.page.hierophantics.title": "Hierophantics",
- "hierophantics.page.hierophantics.0": "If _media can be seen as threads, if minds can be seen as tangles of such threads, then what is to stop me from weaving them together?$(br2)Thus far, when extracting the minds of villagers, I have inserted them only into artificial subtrates, but I can do better. I can $(o)become$() better.",
- "hierophantics.page.hierophantics.1": "By weaving additional minds into my own, I will gain the ability to cast _Hexes without requiring any conscious thought! I can simply provide a _Hex, and a condition under which to cast it, and the embedded mind will handle the rest on its own. With all the bothers of everyday life automatically handled, I can finally dedicate myself to whatever I... whatever we...$(br2)...what am I?",
- "hierophantics.page.hierophantics.2": "Focus, focus. There is a snag in the plan. I cannot modify the structure of my own mind midway through a _Hex without running the risk of unraveling it entirely – and I am not yet $(o)that$() insane.$(br2)Thus, I require some artifice. I can create a bed of sorts which, when provided with an extracted mind via the usual process, can weave it into my psyche without requiring any cognition on my part.",
- "hierophantics.page.hierophantics.craft": "I can then use some $(l:greatwork/impetus)$(item)external device$() to perform the extraction itself, transferring the mind into the bed while I simply lay there until the process – the $(o)integration$() – is complete.",
- "hierophantics.page.hierophantics.flay": "The process requires a master-level villager, which can be transferred into either of the two blocks that make up the $(item)Imbuement Bed$(). However, if I am not in the bed at the moment the spell is cast, the mind will be wasted.",
-
- "hierophantics.page.mind_handling.title.0": "Hierophantic Patterns",
- "hierophantics.page.mind_handling.0": "Once I $(l:greatwork/hierophantics)embed a mind$() into myself, I will need to instruct it as to its purpose. This is accomplished using mind reference iotas, which work much like entity iotas but for embedded minds. As such, I can freely create and destroy these iotas without affecting the existence of the minds themselves.",
- "hierophantics.page.mind_handling.title.1": "A Note on Privacy",
- "hierophantics.page.mind_handling.1": "Since mind references can be written to a storage medium, it's possible that another player may gain access to iotas refencing my own minds. Such an individual will not be able to modify my minds (the results will be similar to attempting to save my True Name) but they $(o)will$() be able to view the trigger and _Hex associated with each mind.",
- "hierophantics.page.get_minds.summary": "Pushes a list of iotas representing all my embedded minds.",
- "hierophantics.page.reenable_minds.summary": "When I die, my embedded minds become unstable and cease to function. This spell restores them to working order. Costs one $(l:items/amethyst)$(item)Amethyst Dust$() per mind restored.",
- "hierophantics.page.get_mind_hex.summary": "Pushes the _Hex stored in the provided mind, or $(l:casting/influences)$(thing)Null$() if there isn't one.",
- "hierophantics.page.set_mind_hex.summary": "Stores the provided _Hex into the mind. If there is already a stored _Hex, it will be overwritten. Costs one $(l:items/amethyst)$(item)Charged Amethyst$().",
- "hierophantics.page.get_mind_trigger.summary": "Pushes the trigger stored in the provided mind, or $(l:casting/influences)$(thing)Null$() if there isn't one.",
- "hierophantics.page.set_mind_trigger.summary": "Stores the provided trigger into the mind. If the mind already has a trigger, it will be overwritten. Costs one $(l:items/amethyst)$(item)Amethyst Shard$().",
- "hierophantics.page.free_mind.summary": "Permanently removes an embedded mind from my own consciousness.$(br2)I wonder what happens to them, when they go?",
-
- "hierophantics.page.triggers.title": "Hierophantic Triggers",
- "hierophantics.page.triggers.0": "My $(l:greatwork/hierophantics)embedded minds$() are independent to a point, but they cannot truly think for themselves. Thus, in order to begin casting, they require a trigger of some kind. The patterns listed here are used to create these triggers, based on a variety of common occurances. Once created, a trigger can be assigned to a mind using $(l:patterns/mind_handling#hierophantics:set_mind_trigger)Trigger Gambit$().",
- "hierophantics.page.triggers.1": "Some triggers, when activated, may cast their hex with an iota relevant to the triggering event already on the stack, to allow for a more fine-grained response. The triggers that do this are listed below, along with the iota they provide:$(br)$(li)Damage: amount of damage$()$(li)DmgType: amount of damage$()$(li)Drop: dropped item entity$()$(li)Attack: attacked entity$()$(li)Break: position broken$()$(li)Teleport: offset vector$()",
- "hierophantics.page.make_damage_trigger.summary": "Creates a trigger that activates whenever I take damage. To prevent a lethal chain-reaction, does not activate if the damage was caused by overcasting.",
- "hierophantics.page.make_damage_type_trigger.summary": "Creates a trigger that activates whenever I take damage, but only if the damage was of a specific type. The trigger will be attunned to whatever type of damage I last received.",
- "hierophantics.page.make_health_trigger.summary": "Creates a trigger that activates when my health drops below the specified value. A full, standard healthbar has a value of 20.",
- "hierophantics.page.make_breath_trigger.summary": "Creates a trigger that activates when my breath drops below the specified value. A full bar of bubbles has a value of 10.",
- "hierophantics.page.make_hunger_trigger.summary": "Creates a trigger that activates when my hunger drops below the specified value. A full hunger bar has a value of 20.",
- "hierophantics.page.make_velocity_trigger.summary": "Creates a trigger that activates when my velocity (measured in blocks per tick) exceeds the specified value.",
- "hierophantics.page.make_fall_trigger.summary": "Creates a trigger that activates when I fall further than the specified number of blocks.",
- "hierophantics.page.make_drop_trigger.summary": "Creates a trigger that activates whenever I drop an item. This does $(l)not$() include involuntary dropping, such as on death or when using $(l:patterns/great_spells/teleport)Greater Teleport$().",
- "hierophantics.page.make_attack_trigger.summary": "Creates a trigger that activates whenever I strike another entity.",
- "hierophantics.page.make_break_trigger.summary": "Creates a trigger that activates whenever I break a block.",
- "hierophantics.page.make_jump_trigger.summary": "Creates a trigger that activates whenever I jump.",
- "hierophantics.page.make_teleport_trigger.summary": "Creates a trigger that activates whenever I teleport. For reasons I cannot discern, this will not detect teleports shorter than 4 blocks in length."
-}
diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
deleted file mode 100644
index b9f20e17bc8f..000000000000
--- a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/zh_cn.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "subtitles.hierophantics.hieromind_cast": "内嵌意识:施法",
-
- "block.hierophantics.flay_bed": "融念床",
-
- "advancements.hierophantics.embed_mind.title": "交织",
- "advancements.hierophantics.embed_mind.description": "将一个村民的意识嵌入自身",
- "advancements.hierophantics.waste_mind.title": "散成原子",
- "advancements.hierophantics.waste_mind.description": "启动没有接收对象的融念床,从而浪费一个意识",
- "advancements.hierophantics.all_triggers.title": "准备万全",
- "advancements.hierophantics.all_triggers.description": "为每种触发条件都准备一个内嵌意识",
-
- "hierophantics.tooltip.mind_reference": "内嵌意识“%s”",
- "hierophantics.tooltip.trigger": "触发条件:%s时",
- "hierophantics.tooltip.mishap_thrower": "灵显学事故抛出器",
-
- "hierophantics.tooltip.trigger_type.damage": "受伤",
- "hierophantics.tooltip.trigger_type.damage_typed": "因“%s”受伤",
- "hierophantics.tooltip.trigger_type.health": "生命值降至%d以下",
- "hierophantics.tooltip.trigger_type.breath": "氧气值降至%d以下",
- "hierophantics.tooltip.trigger_type.hunger": "饥饿值降至%d以下",
- "hierophantics.tooltip.trigger_type.velocity": "速度超过%d",
- "hierophantics.tooltip.trigger_type.fall": "摔落超过%d格",
- "hierophantics.tooltip.trigger_type.drop": "丢下物品",
- "hierophantics.tooltip.trigger_type.attack": "击中实体",
- "hierophantics.tooltip.trigger_type.break": "破坏方块",
- "hierophantics.tooltip.trigger_type.jump": "跳跃",
- "hierophantics.tooltip.trigger_type.teleport": "传送",
-
- "hexcasting.mishap.hierophantics:mind_freed": "试图与不存在的内嵌意识交互",
- "hexcasting.mishap.hierophantics:minds_disabled.yours": "你的内嵌意识太过不稳定,无法%s!",
- "hexcasting.mishap.hierophantics:minds_disabled.other": "这个内嵌意识太过不稳定,无法%s!",
- "hexcasting.mishap.hierophantics:not_your_mind": "无法修改不属于你的内嵌意识",
- "hexcasting.mishap.invalid_value.class.mind_reference": "一个内嵌意识",
- "hexcasting.mishap.invalid_value.class.trigger": "一个触发条件",
-
- "hierophantics.mishap.minds_disabled.action.cast": "运作",
- "hierophantics.mishap.minds_disabled.action.read": "查看",
- "hierophantics.mishap.minds_disabled.action.write": "修改",
- "hierophantics.mishap.minds_disabled.action.free": "交互",
-
- "hexcasting.action.hierophantics:get_minds": "灵显师之精思",
- "hexcasting.action.hierophantics:reenable_minds": "稳定意识",
- "hexcasting.action.hierophantics:set_mind_hex": "载术之策略",
- "hexcasting.action.hierophantics:get_mind_hex": "载术之纯化",
- "hexcasting.action.hierophantics:set_mind_trigger": "触发之策略",
- "hexcasting.action.hierophantics:get_mind_trigger": "触发之纯化",
- "hexcasting.action.hierophantics:free_mind": "释放意识",
- "hexcasting.action.hierophantics:make_damage_trigger": "触发之精思:伤害",
- "hexcasting.action.hierophantics:make_damage_type_trigger": "触发之精思:伤害类型",
- "hexcasting.action.hierophantics:make_health_trigger": "触发之纯化:生命值",
- "hexcasting.action.hierophantics:make_breath_trigger": "触发之纯化:气息",
- "hexcasting.action.hierophantics:make_hunger_trigger": "触发之纯化:饥饿值",
- "hexcasting.action.hierophantics:make_velocity_trigger": "触发之纯化:速度",
- "hexcasting.action.hierophantics:make_fall_trigger": "触发之纯化:摔落",
- "hexcasting.action.hierophantics:make_drop_trigger": "触发之精思:丢弃",
- "hexcasting.action.hierophantics:make_attack_trigger": "触发之精思:攻击",
- "hexcasting.action.hierophantics:make_break_trigger": "触发之精思:破坏",
- "hexcasting.action.hierophantics:make_jump_trigger": "触发之精思:跳跃",
- "hexcasting.action.hierophantics:make_teleport_trigger": "触发之精思:传送",
-
- "hexcasting.action.book.hierophantics:make_damage_trigger": "触发之精思:伤害",
- "hexcasting.action.book.hierophantics:make_damage_type_trigger": "触发之精思:伤害类型",
- "hexcasting.action.book.hierophantics:make_health_trigger": "触发之纯化:生命值",
- "hexcasting.action.book.hierophantics:make_breath_trigger": "触发之纯化:气息",
- "hexcasting.action.book.hierophantics:make_hunger_trigger": "触发之纯化:饥饿值",
- "hexcasting.action.book.hierophantics:make_velocity_trigger": "触发之纯化:速度",
- "hexcasting.action.book.hierophantics:make_fall_trigger": "触发之纯化:摔落",
- "hexcasting.action.book.hierophantics:make_drop_trigger": "触发之精思:丢弃",
- "hexcasting.action.book.hierophantics:make_attack_trigger": "触发之精思:攻击",
- "hexcasting.action.book.hierophantics:make_break_trigger": "触发之精思:破坏",
- "hexcasting.action.book.hierophantics:make_jump_trigger": "触发之精思:跳跃",
- "hexcasting.action.book.hierophantics:make_teleport_trigger": "触发之精思:传送",
-
- "hierophantics.page.hierophantics.title": "灵显学",
- "hierophantics.page.hierophantics.0": "如果$(media)媒质$()可以看成是丝线,那么意识就是这些丝线的纠缠体;既然如此,把意识编织在一起又有何不可?$(br2)到目前为止,我在剥离出村民的意识后只会将它们送入人工制造的基质,但这并非没有改进之处。$(o)我$()并非没有改进之处。",
- "hierophantics.page.hierophantics.1": "将其他意识编织到我的意识里,就可省去施放$(hex)咒术$()时需要的注意力了!给内嵌意识提供一段$(hex)咒术$(),再指定施放的条件,剩下的全部交给内嵌意识处理。把平常要干的杂活自动化之后,就终于可以投身于我想要做……我们想要……$(br2)……我是什么?",
- "hierophantics.page.hierophantics.2": "专心、集中精神。这项规划中有一个纰漏。倘若要在运行$(hex)咒术$()的中途修改我意识的结构,就无法消除意识完全消散的风险——我还没疯到$(o)这种地步$()。$(br2)因此,我需要一台仪器。我可以制造某种床;向这张床提供剥离得到的意识时,即可将它编织入我的精神,而且不需要我维持注意力。",
- "hierophantics.page.hierophantics.craft": "然后,使用某些$(l:greatwork/impetus)$(item)外部设备$()来剥离和将意识送至这张床,我只需要躺在那里,等着工序——$(o)融合$()——完成就行。",
- "hierophantics.page.hierophantics.flay": "这一流程需要一名大师级村民,意识的目的地可以是$(item)融念床$()两格中的任意一格。但是,假如法术施放时我没有躺在床上,送来的意识即会消散。",
-
- "hierophantics.page.mind_handling.title.0": "灵显学图案",
- "hierophantics.page.mind_handling.0": "向自身$(l:greatwork/hierophantics)嵌入意识$()后,还需对其发出相应指示。这一过程可由代表意识的 iota 达成;它和实体 iota 很类似,只不过是给内嵌意识用的。由此,我便可以随意创建和销毁这些 iota,而不会影响意识本身存在与否了。",
- "hierophantics.page.mind_handling.title.1": "有关隐私的注意事项",
- "hierophantics.page.mind_handling.1": "因为代表意识的 iota 可以写入存储介质,其他玩家即有可能获得到代表我的意识的 iota。他们无法修改我的意识(招致的效果和试图保存我的真名类似),但他们$(o)可以$()查看各个意识的触发条件和其中$(hex)咒术$()。",
- "hierophantics.page.get_minds.summary": "将代表我的内嵌意识的各 iota 组为列表返回。",
- "hierophantics.page.reenable_minds.summary": "我死亡时,各个内嵌意识会失稳并停止运作。此法术可让它们回到工作状态。每恢复 1 个意识消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$()。",
- "hierophantics.page.get_mind_hex.summary": "返回所给意识中的$(hex)咒术$(),若无则返回 $(l:casting/influences)$(thing)Null$()。",
- "hierophantics.page.set_mind_hex.summary": "将所给$(hex)咒术$()存入意识。如果其中已经存在$(hex)咒术$(),则进行覆盖。消耗 1 个$(l:items/amethyst)$(item)充能紫水晶$()。",
- "hierophantics.page.get_mind_trigger.summary": "返回所给意识的触发条件,若无则返回 $(l:casting/influences)$(thing)Null$()。",
- "hierophantics.page.set_mind_trigger.summary": "将所给触发条件存入意识。如果其中已经存在触发条件,则进行覆盖。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。",
- "hierophantics.page.free_mind.summary": "从我的意识里永久性移除一个内嵌意识。$(br2)它们离开时,究竟会发生什么?",
-
- "hierophantics.page.triggers.title": "灵显学触发条件",
- "hierophantics.page.triggers.0": "我的$(l:greatwork/hierophantics)内嵌意识$()相对独立,但还不具备真正的思考能力。因此,为让其开始施法,需要设置一定的触发条件。此处列出的图案可根据多种常见事件创建触发条件。创建完成后,可以用$(l:patterns/mind_handling#hierophantics:set_mind_trigger)触发之策略$()为内嵌意识分配条件。",
- "hierophantics.page.triggers.1": "某些触发条件激活后,初始施法栈会以与事件有关的 iota 起始,以便细化回应方式。具有此特性的触发条件和对应起始 iota 见下:$(br)$(li)伤害:所受伤害的量$()$(li)伤害类型:所受伤害的量$()$(li)丢弃:丢出的物品实体$()$(li)攻击:击中的实体$()$(li)破坏:破坏处的位置$()$(li)传送:偏移向量$()",
- "hierophantics.page.make_damage_trigger.summary": "创建一个在我受到伤害时激活的触发条件。为避免产生致命的链式反应,由过度施法造成的伤害不会激活此类触发条件。",
- "hierophantics.page.make_damage_type_trigger.summary": "创建一个在我受到伤害时激活的触发条件,且伤害必须为特定类型。使用我最后一次所受伤害的类型。",
- "hierophantics.page.make_health_trigger.summary": "创建一个在我生命值降至给定值以下时激活的触发条件。完整的标准生命条为 20。",
- "hierophantics.page.make_breath_trigger.summary": "创建一个在我氧气值降至给定值以下时激活的触发条件。完整的氧气条为 10。",
- "hierophantics.page.make_hunger_trigger.summary": "创建一个在我饥饿值降至给定值以下时激活的触发条件。完整的饥饿条为 20。",
- "hierophantics.page.make_velocity_trigger.summary": "创建一个在我速度(以格每刻计)超过给定值时激活的触发条件。",
- "hierophantics.page.make_fall_trigger.summary": "创建一个在我摔落超过给定距离(以格计)时激活的触发条件。",
- "hierophantics.page.make_drop_trigger.summary": "创建一个在我丢下物品时激活的触发条件。非主动的丢弃,如死亡或使用$(l:patterns/great_spells/teleport)卓越传送$()导致的物品散落等,$(l)不$()会激活此类触发条件。",
- "hierophantics.page.make_attack_trigger.summary": "创建一个在我击中其他实体时激活的触发条件。",
- "hierophantics.page.make_break_trigger.summary": "创建一个在我破坏方块时激活的触发条件。",
- "hierophantics.page.make_jump_trigger.summary": "创建一个在我跳跃时激活的触发条件。",
- "hierophantics.page.make_teleport_trigger.summary": "创建一个在我传送时激活的触发条件。因为我无法指明的原因,此类触发条件检测不到距离在 4 格以下的传送。"
-}
diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md
deleted file mode 100644
index 0cb2419b05f5..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
deleted file mode 100644
index 172f467491a4..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "hexxyattributes.entry.attributes": "Attributes",
- "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...",
-
- "hexcasting.action.hexxyattributes:domain_reflection": "Domain Reflection",
- "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.",
-
- "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection",
- "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.",
-
- "hexcasting.action.hexxyattributes:media_reflection": "Media Reflection",
- "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!",
-
- "hexcasting.action.hexxyattributes:mind_purification": "Mind Purification",
- "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json
deleted file mode 100644
index 2e5dad7b8f84..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md
deleted file mode 100644
index 91ff55cecbbe..000000000000
--- a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes)
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
deleted file mode 100644
index 172f467491a4..000000000000
--- a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "hexxyattributes.entry.attributes": "Attributes",
- "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...",
-
- "hexcasting.action.hexxyattributes:domain_reflection": "Domain Reflection",
- "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.",
-
- "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection",
- "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.",
-
- "hexcasting.action.hexxyattributes:media_reflection": "Media Reflection",
- "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!",
-
- "hexcasting.action.hexxyattributes:mind_purification": "Mind Purification",
- "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False."
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
deleted file mode 100644
index 81bcd35c4068..000000000000
--- a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "hexxyattributes.entry.attributes": "属性",
- "hexxyattributes.entry.attributes.entry": "我的研究表明,并非所有此派精妙魔艺的研习者都有同样的能力。换句话说,世上的学者具有不同的$(italic)属性$(clear)。$(br2)我一直都以为$(italic)天赋$(clear)只是个假说。好吧……",
-
- "hexcasting.action.hexxyattributes:domain_reflection": "界域之精思",
- "hexxyattributes.page.domain_reflection": "将我的影响范围入栈。",
-
- "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "哨卫界域之精思",
- "hexxyattributes.page.sentinel_domain_reflection": "将我哨卫的影响范围入栈。",
-
- "hexcasting.action.hexxyattributes:media_reflection": "媒质之精思",
- "hexxyattributes.page.media_reflection": "将我的媒质消耗速率入栈。我认为基础值应当等于 1。很适合收住我对自身能力的过度高估!",
-
- "hexcasting.action.hexxyattributes:mind_purification": "意识之精思",
- "hexxyattributes.page.mind_purification": "将栈中的玩家转变为布尔值。此图案会向目标的大脑送入一小股媒质。如果他有研习咒法学的潜能,返回 True;否则返回 False。"
-}
\ No newline at end of file
From 38bfab9969de5a979da27f18d354fb31c256f316 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:42:53 +0800
Subject: [PATCH 70/78] =?UTF-8?q?HexxyAttributes=20transfer=EF=BC=9A#5413?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../hexxyattributes/lang/en_us.json | 16 ----------------
.../hexxyattributes/lang/zh_cn.json | 16 ----------------
2 files changed, 32 deletions(-)
delete mode 100644 projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
delete mode 100644 projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
diff --git a/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
deleted file mode 100644
index f623dbadffca..000000000000
--- a/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "hexxyattributes.entry.attributes": "Attributes",
- "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...",
-
- "hexcasting.spell.book.hexxyattributes:domain_reflection": "Domain Reflection",
- "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.",
-
- "hexcasting.spell.book.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection",
- "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.",
-
- "hexcasting.spell.book.hexxyattributes:media_reflection": "Media Reflection",
- "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!",
-
- "hexcasting.spell.book.hexxyattributes:mind_purification": "Mind Purification",
- "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False."
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
deleted file mode 100644
index c0f4d0e83dd9..000000000000
--- a/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "hexxyattributes.entry.attributes": "属性",
- "hexxyattributes.entry.attributes.entry": "我的研究表明,并非所有此派精妙魔艺的研习者都有同样的能力。换句话说,世上的学者具有不同的$(italic)属性$(clear)。$(br2)我一直都以为$(italic)天赋$(clear)只是个假说。好吧……",
-
- "hexcasting.spell.book.hexxyattributes:domain_reflection": "界域之精思",
- "hexxyattributes.page.domain_reflection": "将我的影响范围入栈。",
-
- "hexcasting.spell.book.hexxyattributes:sentinel_domain_reflection": "哨卫界域之精思",
- "hexxyattributes.page.sentinel_domain_reflection": "将我哨卫的影响范围入栈。",
-
- "hexcasting.spell.book.hexxyattributes:media_reflection": "媒质之精思",
- "hexxyattributes.page.media_reflection": "将我的媒质消耗速率入栈。我认为基础值应当等于 1。很适合收住我对自身能力的过度高估!",
-
- "hexcasting.spell.book.hexxyattributes:mind_purification": "意识之精思",
- "hexxyattributes.page.mind_purification": "将栈中的玩家转变为布尔值。此图案会向目标的大脑送入一小股媒质。如果他有研习咒法学的潜能,返回 True;否则返回 False。"
-}
\ No newline at end of file
From 4befeb71f582c8dfed4c9b4258c1eb2342cc96e9 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:45:22 +0800
Subject: [PATCH 71/78] =?UTF-8?q?HexCasted=20transfer=EF=BC=9A#5412?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/1UNKNOWN/hexcasted/README.md | 1 -
.../assets/1UNKNOWN/hexcasted/lang/en_us.json | 18 ------------------
.../1UNKNOWN/hexcasted/packer-policy.json | 6 ------
.../1.20/assets/1UNKNOWN/hexcasted/README.md | 16 ----------------
.../assets/1UNKNOWN/hexcasted/lang/en_us.json | 18 ------------------
.../assets/1UNKNOWN/hexcasted/lang/zh_cn.json | 18 ------------------
6 files changed, 77 deletions(-)
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexcasted/README.md
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexcasted/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexcasted/README.md
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexcasted/lang/en_us.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/README.md b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/README.md
deleted file mode 100644
index 1a3b596c9a5d..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/1UNKNOWN/hexcasted)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/lang/en_us.json
deleted file mode 100644
index 43069072cdac..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/lang/en_us.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "hexcasted.entry.cbc": "The Call to War",
- "hexcasted.page.cbc": "I had been drafted by the Cannoneer's Corps to make weapons of war and, despite my hesitancy, I accepted.$(br)$(br)Project Hexcasted's final product was the $(thing)Hex Shell$() was an media-infused shell inscribed with two Hexes. The $(thing)Cannoneer's Hex$() which executes as fast as Nature would allow upon firing the shell and The $(thing)Demolitionist's Hex$() to execute on detonation.$(br)$(br)What have I done...",
-
- "hexcasted.entry.cbc_basics": "War is Hell",
- "hexcasting.action.hexcasted:shell_get_on_tick": "Cannoneer's Prfn.",
- "hexcasted.page.cbc_basics.shell_get_on_tick": "This pattern reads the $(thing)Cannoneer's Hex$() from a $(thing)Hex Shell$().",
- "hexcasting.action.hexcasted:shell_set_on_tick": "Cannoneer's Gambit",
- "hexcasted.page.cbc_basics.shell_set_on_tick": "This pattern inscribes the $(thing)Cannoneer's Hex$() onto a $(thing)Hex Shell$() which executes as fast as Nature would allow after being fired.$(br)$(br)Experiment 10a: Targeting a Submarine - Failed, ran out of media, hit a civilian cruise ship. 2 Casualties.",
- "hexcasting.action.hexcasted:shell_get_on_detonate": "Demolitionist's Prfn.",
- "hexcasted.page.cbc_basics.shell_get_on_detonate": "This pattern reads the $(thing)Demolitionist's Hex$() from a $(thing)Hex Shell$().",
- "hexcasting.action.hexcasted:shell_set_on_detonate": "Demolitionist's Gambit",
- "hexcasted.page.cbc_basics.shell_set_on_detonate": "This pattern inscribes the $(thing)Demolitionist's Hex$() onto a $(thing)Hex Shell$() which executes upon the shell being detonated.$(br)$(br)Experiment 11b: Targeting a \"Doom Town\" - Failed, miscalculated trajectory, hit nearby village. 347 Rendered Inert.",
-
- "hexcasted.entry.cbc_spell": "Splitting the Hex",
- "hexcasting.action.hexcasted:create_shell": "Create Shell",
- "hexcasted.page.cbc_spell.create_shell": "This pattern takes the given media and forces Nature to create a $(thing)Hex Shell$(). I pray these notes never fall into the wrong hands..."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json b/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
deleted file mode 100644
index 166278912c15..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/hexcasted/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/1UNKNOWN/hexcasted"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasted/README.md b/projects/1.20/assets/1UNKNOWN/hexcasted/README.md
deleted file mode 100644
index 39efe2a4d39a..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexcasted/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/1UNKNOWN/hexcasted)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/1UNKNOWN/hexcasted)
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasted/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexcasted/lang/en_us.json
deleted file mode 100644
index 43069072cdac..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexcasted/lang/en_us.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "hexcasted.entry.cbc": "The Call to War",
- "hexcasted.page.cbc": "I had been drafted by the Cannoneer's Corps to make weapons of war and, despite my hesitancy, I accepted.$(br)$(br)Project Hexcasted's final product was the $(thing)Hex Shell$() was an media-infused shell inscribed with two Hexes. The $(thing)Cannoneer's Hex$() which executes as fast as Nature would allow upon firing the shell and The $(thing)Demolitionist's Hex$() to execute on detonation.$(br)$(br)What have I done...",
-
- "hexcasted.entry.cbc_basics": "War is Hell",
- "hexcasting.action.hexcasted:shell_get_on_tick": "Cannoneer's Prfn.",
- "hexcasted.page.cbc_basics.shell_get_on_tick": "This pattern reads the $(thing)Cannoneer's Hex$() from a $(thing)Hex Shell$().",
- "hexcasting.action.hexcasted:shell_set_on_tick": "Cannoneer's Gambit",
- "hexcasted.page.cbc_basics.shell_set_on_tick": "This pattern inscribes the $(thing)Cannoneer's Hex$() onto a $(thing)Hex Shell$() which executes as fast as Nature would allow after being fired.$(br)$(br)Experiment 10a: Targeting a Submarine - Failed, ran out of media, hit a civilian cruise ship. 2 Casualties.",
- "hexcasting.action.hexcasted:shell_get_on_detonate": "Demolitionist's Prfn.",
- "hexcasted.page.cbc_basics.shell_get_on_detonate": "This pattern reads the $(thing)Demolitionist's Hex$() from a $(thing)Hex Shell$().",
- "hexcasting.action.hexcasted:shell_set_on_detonate": "Demolitionist's Gambit",
- "hexcasted.page.cbc_basics.shell_set_on_detonate": "This pattern inscribes the $(thing)Demolitionist's Hex$() onto a $(thing)Hex Shell$() which executes upon the shell being detonated.$(br)$(br)Experiment 11b: Targeting a \"Doom Town\" - Failed, miscalculated trajectory, hit nearby village. 347 Rendered Inert.",
-
- "hexcasted.entry.cbc_spell": "Splitting the Hex",
- "hexcasting.action.hexcasted:create_shell": "Create Shell",
- "hexcasted.page.cbc_spell.create_shell": "This pattern takes the given media and forces Nature to create a $(thing)Hex Shell$(). I pray these notes never fall into the wrong hands..."
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json
deleted file mode 100644
index 2c1ec9adeab9..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexcasted/lang/zh_cn.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "hexcasted.entry.cbc": "战争之召",
- "hexcasted.page.cbc": "炮兵军团征召我为武器制造师。我虽然百般拖延,最终还是接受了。$(br)$(br)咒术炮弹计划的最终产物即是$(thing)咒术弹$(),它是蚀刻有两个咒术的媒质灌注炮弹。$(thing)炮兵咒术$()会在炮弹发射后立即施放,自然有多快,此咒术的施放起始就有多快;$(thing)爆破师咒术$()会在炮弹爆炸时施放。$(br)$(br)我都做了些什么……",
-
- "hexcasted.entry.cbc_basics": "战争即地狱",
- "hexcasting.action.hexcasted:shell_get_on_tick": "炮兵之纯化",
- "hexcasted.page.cbc_basics.shell_get_on_tick": "此图案会从$(thing)咒术弹$()中读取$(thing)炮兵咒术$()。",
- "hexcasting.action.hexcasted:shell_set_on_tick": "炮兵之策略",
- "hexcasted.page.cbc_basics.shell_set_on_tick": "此图案会向$(thing)咒术弹$()蚀刻$(thing)炮兵咒术$(),其会在发射后以最快速度施放。$(br)$(br)实验 10a:以某个潜水艇为目标。失败,媒质耗尽,击中民用游轮。2 人伤亡。",
- "hexcasting.action.hexcasted:shell_get_on_detonate": "爆破师之纯化",
- "hexcasted.page.cbc_basics.shell_get_on_detonate": "此图案会从$(thing)咒术弹$()中读取$(thing)爆破师咒术$()。",
- "hexcasting.action.hexcasted:shell_set_on_detonate": "爆破师之策略",
- "hexcasted.page.cbc_basics.shell_set_on_detonate": "此图案会向$(thing)咒术弹$()蚀刻$(thing)爆破师咒术$(),其会在炮弹爆炸时施放。$(br)$(br)实验 11b:以某个“末日镇”为目标。失败,轨道计算失误,击中附近村庄。347 人失能。",
-
- "hexcasted.entry.cbc_spell": "分裂咒术",
- "hexcasting.action.hexcasted:create_shell": "制造炮弹",
- "hexcasted.page.cbc_spell.create_shell": "此图案接受一定量媒质,并强迫自然制造一个$(thing)咒术弹$()。但愿这些笔记不会落入坏人之手……"
-}
\ No newline at end of file
From 8ecc7f12fe96e287d569b7ebf4c588587b803bcf Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:53:52 +0800
Subject: [PATCH 72/78] =?UTF-8?q?AppendHextome=20HexMu=20HexDeco=20transfe?=
=?UTF-8?q?r=EF=BC=9A#5414?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/1UNKNOWN/appendhextome/README.md | 1 -
.../1UNKNOWN/appendhextome/lang/en_us.json | 11 ----
.../1UNKNOWN/appendhextome/packer-policy.json | 6 ---
.../assets/1UNKNOWN/appendhextome/README.md | 16 ------
.../1UNKNOWN/appendhextome/lang/en_us.json | 11 ----
.../1UNKNOWN/appendhextome/lang/zh_cn.json | 11 ----
.../en_us/entries/addon/hexmu/boxes.json | 34 -------------
.../entries/addon/hexmu/inscription.json | 51 -------------------
.../zh_cn/entries/addon/hexmu/boxes.json | 34 -------------
.../entries/addon/hexmu/inscription.json | 51 -------------------
.../assets/1UNKNOWN/hexdeco/lang/en_us.json | 35 -------------
.../assets/1UNKNOWN/hexdeco/lang/zh_cn.json | 35 -------------
.../assets/1UNKNOWN/hexmu/lang/en_us.json | 15 ------
.../assets/1UNKNOWN/hexmu/lang/zh_cn.json | 15 ------
14 files changed, 326 deletions(-)
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/appendhextome/README.md
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/appendhextome/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/1UNKNOWN/appendhextome/packer-policy.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/appendhextome/README.md
delete mode 100644 projects/1.20/assets/1UNKNOWN/appendhextome/lang/en_us.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/appendhextome/lang/zh_cn.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/boxes.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/boxes.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexdeco/lang/en_us.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexdeco/lang/zh_cn.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/README.md b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/README.md
deleted file mode 100644
index 8d8b9e3e8efb..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/1UNKNOWN/appendhextome)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/lang/en_us.json
deleted file mode 100644
index 852c1ea902f6..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/lang/en_us.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "death.attack.appendicitis": "%s's appendix burst.",
- "death.attack.appendicitisInstant": "%s's appendix was not big enough to contain %s's soul.",
- "appendhextome.entry.appendix": "Appendix",
- "appendhextome.page.readwrite.1": "I have found a strange organ in my body which, Given its location, Might possibly have something to do with digestion. I shall call it the appendix, For it is simply added on to the end of my large intestine... With these patterns, I appear to be able to read and write any arbitrary iota to it, Though I should be careful. If my biological iota storage becomes too dense, I fear it might cause severe inflammation of the appendix. Potentially even killing me.",
- "appendhextome.page.readwrite.2": "From what I can tell, Inflammaton of the appendix should start whenever the size of the iota stored within multiplied by the depth of the iota is greater than 20, With the severity of inflammation increasing each time that threshold is crossed again. Because the iota storage is physically attached to my body, I am positive that if this body should ever be in some way destroyed beyond repair, The iota stored within would be destroyed as well.",
- "hexcasting.action.appendhextome:read": "Godrick's Reflection",
- "hexcasting.action.appendhextome:write": "Godrick's Gambit",
- "appendhextome.page.readwrite.read": "Copy the iota stored in my appendix and add it to the stack.",
- "appendhextome.page.readwrite.write": "Remove the iota from the top of the stack, And save it into my appendix. Costs about one tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$ times the size of the iota times the depth of the iota."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/packer-policy.json b/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/packer-policy.json
deleted file mode 100644
index b276241c4ef3..000000000000
--- a/projects/1.20-fabric/assets/1UNKNOWN/appendhextome/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/1UNKNOWN/appendhextome"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/appendhextome/README.md b/projects/1.20/assets/1UNKNOWN/appendhextome/README.md
deleted file mode 100644
index 9bad25925c6c..000000000000
--- a/projects/1.20/assets/1UNKNOWN/appendhextome/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/1UNKNOWN/appendhextome)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/1UNKNOWN/appendhextome)
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/appendhextome/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/appendhextome/lang/en_us.json
deleted file mode 100644
index 852c1ea902f6..000000000000
--- a/projects/1.20/assets/1UNKNOWN/appendhextome/lang/en_us.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "death.attack.appendicitis": "%s's appendix burst.",
- "death.attack.appendicitisInstant": "%s's appendix was not big enough to contain %s's soul.",
- "appendhextome.entry.appendix": "Appendix",
- "appendhextome.page.readwrite.1": "I have found a strange organ in my body which, Given its location, Might possibly have something to do with digestion. I shall call it the appendix, For it is simply added on to the end of my large intestine... With these patterns, I appear to be able to read and write any arbitrary iota to it, Though I should be careful. If my biological iota storage becomes too dense, I fear it might cause severe inflammation of the appendix. Potentially even killing me.",
- "appendhextome.page.readwrite.2": "From what I can tell, Inflammaton of the appendix should start whenever the size of the iota stored within multiplied by the depth of the iota is greater than 20, With the severity of inflammation increasing each time that threshold is crossed again. Because the iota storage is physically attached to my body, I am positive that if this body should ever be in some way destroyed beyond repair, The iota stored within would be destroyed as well.",
- "hexcasting.action.appendhextome:read": "Godrick's Reflection",
- "hexcasting.action.appendhextome:write": "Godrick's Gambit",
- "appendhextome.page.readwrite.read": "Copy the iota stored in my appendix and add it to the stack.",
- "appendhextome.page.readwrite.write": "Remove the iota from the top of the stack, And save it into my appendix. Costs about one tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$ times the size of the iota times the depth of the iota."
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/appendhextome/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/appendhextome/lang/zh_cn.json
deleted file mode 100644
index 3547427de03c..000000000000
--- a/projects/1.20/assets/1UNKNOWN/appendhextome/lang/zh_cn.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "death.attack.appendicitis": "%s的阑尾涨裂了",
- "death.attack.appendicitisInstant": "%s的阑尾不足以容纳%s的灵魂",
- "appendhextome.entry.appendix": "阑尾附录",
- "appendhextome.page.readwrite.1": "我在我的身体里发现了一个奇怪的器官;从它的位置看来,它可能会参与到消化过程中。我称其为“阑尾”,因为它只是附在大肠末端的一个小挂件……后页的图案可向其读写任意 iota,但仍要多加小心。要是生物体内存了过多的 iota 信息,阑尾大概会出现严重的炎症。甚至可能致死。",
- "appendhextome.page.readwrite.2": "从我的考察看来,阑尾中 iota 的大小和深度的乘积大于 20 时会开始出现炎症症状,每次跨越此界限时炎症会加深。由于该 iota 存储位置就在我的体内,我认为只有当这幅躯体被损坏到无法修复的时候,其中的 iota 才会消失。",
- "hexcasting.action.appendhextome:read": "葛瑞克之精思",
- "hexcasting.action.appendhextome:write": "葛瑞克之策略",
- "appendhextome.page.readwrite.read": "复制阑尾中的 iota,并压入栈顶。",
- "appendhextome.page.readwrite.write": "移除栈顶 iota,并存入我的阑尾。所存 iota 的大小与深度的乘积每有 1 点消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/boxes.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/boxes.json
deleted file mode 100644
index d496fb6fab1d..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/boxes.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "Boxes",
- "category": "hexcasting:patterns",
- "icon": "create:magenta_toolbox",
- "advancement": "hexcasting:root",
- "pages": [
- "A box is a special kind of iota, hiding its contents from Nature for later use. I could use these to work around iotas that sometimes disintegrate, such as entities Nature isn't actively thinking about.",
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:box",
- "anchor": "hexmu:box",
- "input": "any",
- "output": "box",
- "text": "Wraps an iota in a box for my later use. All that can be seen from the outside of a boxed iota is its type, so it'd be best for me to $(l:hexcasting:addon/hexmu/inscription.json)inscribe/$ my boxes with something meaningful."
- },
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:unbox",
- "anchor": "hexmu:unbox",
- "input": "box",
- "output": "any",
- "text": "Returns me the contents of a box. I feel that certain boxes may have special effects when unboxing..."
- },
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:pipebomb",
- "anchor": "hexmu:pipebomb",
- "advancement": "hexcasting:enlightenment",
- "input": "",
- "output": "box",
- "text": "I have no clue what this does. It creates a box, yes, but am I sure I want to look inside?"
- }
- ]
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
deleted file mode 100644
index 77b070de2e91..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/en_us/entries/addon/hexmu/inscription.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "Iota Inscription",
- "category": "hexcasting:patterns",
- "icon": "ae2:name_press",
- "advancement": "hexcasting:root",
- "pages": [
- "These patterns seem to manipulate a name directly etched into an iota. An iota engraved in this way acts no different in my spells, but they're marked in my $(item)$(l:hexcasting:items/focus)Foci/$ or when I cast $(thing)$(l:hexcasting:patterns/basics#hexcasting:print)Reveal/$.",
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:inscription",
- "anchor": "hexmu:inscription",
- "input": "any, string",
- "output": "any",
- "text": "Inscribes the passed iota with the given name, consuming a miniscule amount of _media. I can supply Null to strip the name."
- },
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:inscribe",
- "anchor": "hexmu:inscribe",
- "input": "any",
- "output": "string",
- "text": "Gives me the name inscribed on an iota, or Null if it has no name. This could be a rudimentary form of $(thing)reflection/$."
- },
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:substring",
- "anchor": "hexmu:substring",
- "input": "any, string",
- "output": "any | null",
- "text": "Searches through a list of iotas for one with a certain label. This could let me use a list as a form of $(thing)dictionary/$, mapping names to values."
- },
- {
- "type": "hexcasting:pattern",
- "advancement": "hexcasting:enlightenment",
- "op_id": "hexmu:annotation/get",
- "anchor": "hexmu:annotation/get",
- "input": "any, key, value",
- "output": "any",
- "text": "Annotates an iota with the given key-value pair. Though the value can be anything I want, the key must be unique for every pair — a duplicate key simply overwrites the older."
- },
- {
- "type": "hexcasting:pattern",
- "advancement": "hexcasting:enlightenment",
- "op_id": "hexmu:annotation/set",
- "anchor": "hexmu:annotation/set",
- "input": "any, key",
- "output": "value",
- "text": "Returns an annotation value from an iota. Hexes can't determine what annotations an iota contains, if any. Methods such as F3+H could reveal them to me, but I best not use them."
- }
- ]
-}
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/boxes.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/boxes.json
deleted file mode 100644
index 755f3337af82..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/boxes.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "盒子",
- "category": "hexcasting:patterns",
- "icon": "create:magenta_toolbox",
- "advancement": "hexcasting:root",
- "pages": [
- "盒子是一类特殊的 iota,可以屏蔽自然的视线,让它无法查看盒子里的东西。它能保存有可能会消散的 iota,比如自然并不主动去思考的实体。",
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:box",
- "anchor": "hexmu:box",
- "input": "any",
- "output": "box",
- "text": "将 iota 包入盒子,以待后用。从外部看只能看见 iota 的类型,所以最好先给盒子赋予有意义的$(l:hexcasting:addon/hexmu/inscription.json)名字/$。"
- },
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:unbox",
- "anchor": "hexmu:unbox",
- "input": "box",
- "output": "any",
- "text": "返回盒子的内容物。我感觉某些盒子在拆开时会出现特殊的效果……"
- },
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:pipebomb",
- "anchor": "hexmu:pipebomb",
- "advancement": "hexcasting:enlightenment",
- "input": "",
- "output": "box",
- "text": "我完全不知道这有什么作用。它确实制造了一个盒子,但我真的想打开看吗?"
- }
- ]
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json b/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
deleted file mode 100644
index e42ad72ec77f..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexcasting/patchouli_books/thehexbook/zh_cn/entries/addon/hexmu/inscription.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "Iota 赋名",
- "category": "hexcasting:patterns",
- "icon": "ae2:name_press",
- "advancement": "hexcasting:root",
- "pages": [
- "这些图案似乎会直接为 iota 赋予名称。经此操作的 iota 在法术中的表现不会产生变化,但存于$(item)$(l:hexcasting:items/focus)核心/$或施放$(thing)$(l:hexcasting:patterns/basics#hexcasting:print)揭示/$时会显示该名称。",
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:inscription",
- "anchor": "hexmu:inscription",
- "input": "any, string",
- "output": "any",
- "text": "将所给名字赋予所给 iota,消耗极少量$(media)媒质/$。传入 Null 即取消赋名。"
- },
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:inscribe",
- "anchor": "hexmu:inscribe",
- "input": "any",
- "output": "string",
- "text": "返回 iota 被赋予的名字,若无名字则返回 Null。算是一种原始的$(thing)反射/$。"
- },
- {
- "type": "hexcasting:pattern",
- "op_id": "hexmu:substring",
- "anchor": "hexmu:substring",
- "input": "any, string",
- "output": "any | null",
- "text": "按照所给标签在多个 iota 中搜索 iota。可以把列表用成$(thing)字典/$:将名字映射给值。"
- },
- {
- "type": "hexcasting:pattern",
- "advancement": "hexcasting:enlightenment",
- "op_id": "hexmu:annotation/get",
- "anchor": "hexmu:annotation/get",
- "input": "any, key, value",
- "output": "any",
- "text": "以所给键值对注解 iota。值可以任选,但同批注解中键必须两两不同;如有重复,则新键值对覆盖旧键值对。"
- },
- {
- "type": "hexcasting:pattern",
- "advancement": "hexcasting:enlightenment",
- "op_id": "hexmu:annotation/set",
- "anchor": "hexmu:annotation/set",
- "input": "any, key",
- "output": "value",
- "text": "返回 iota 中的注解值。咒术预先不知道 iota 包含哪些注解,以及是否包含注解。F3+H 之类的方法可以揭示注解,但最好还是不要用它们。"
- }
- ]
-}
diff --git a/projects/1.20/assets/1UNKNOWN/hexdeco/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexdeco/lang/en_us.json
deleted file mode 100644
index 5e5b6682eda1..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexdeco/lang/en_us.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "block.hexdeco.amethyst_bricks_mini_slab": "Amethyst small Bricks Slab",
- "block.hexdeco.amethyst_bricks_slab": "Amethyst Bricks Slab",
- "block.hexdeco.amethyst_tiles_slab": "Amethyst Tiles Slab",
- "block.hexdeco.slate_bricks_mini_slab": "Slate small Bricks Slab",
- "block.hexdeco.slate_bricks_slab": "Slate Bricks Slab",
- "block.hexdeco.slate_slab": "Slate Slab",
- "block.hexdeco.slate_tiles_slab": "Slate Tiles Slab",
- "block.hexdeco.amethyst_bricks_mini_stairs": "Amethyst small Bricks Stairs",
- "block.hexdeco.amethyst_bricks_stairs": "Amethyst Bricks Stairs",
- "block.hexdeco.amethyst_tiles_stairs": "Amethyst Tiles Stairs",
- "block.hexdeco.slate_bricks_mini_stairs": "Slate small Bricks Stairs",
- "block.hexdeco.slate_bricks_stairs": "Slate Bricks Stairs",
- "block.hexdeco.slate_stairs": "Slate Stairs",
- "block.hexdeco.slate_tiles_stairs": "Slate Tiles Stairs",
- "block.hexdeco.charged_amethyst_block": "Charged Amethyst Block",
- "block.hexdeco.charged_amethyst_slab": "Charged Amethyst Slab",
- "block.hexdeco.charged_amethyst_stairs": "Charged Amethyst Stairs",
- "block.hexdeco.charged_amethyst_bricks": "Charged Amethyst Bricks",
- "block.hexdeco.charged_amethyst_bricks_slab": "Charged Amethyst Bricks Slab",
- "block.hexdeco.charged_amethyst_bricks_stairs": "Charged Amethyst Bricks Stairs",
- "block.hexdeco.charged_amethyst_lamp": "Charged Amethyst Lamp",
- "block.hexdeco.slate_amethyst_tiles_stairs": "Slate & Amethyst Tiles Stairs",
- "block.hexdeco.slate_amethyst_tiles_slab": "Slate & Amethyst Tiles Slab",
- "block.hexdeco.amethyst_bricks_wall": "Amethyst Bricks Wall",
- "block.hexdeco.amethyst_bricks_small_wall": "Amethyst Bricks Small Wall",
- "block.hexdeco.slate_bricks_small_wall": "Slate Bricks Small Wall",
- "block.hexdeco.slate_bricks_wall": "Slate Bricks Wall",
- "block.hexdeco.amethyst_tiles_wall": "Amethyst Tiles Wall",
- "block.hexdeco.slate_tiles_wall": "Slate Tiles Wall",
- "block.hexdeco.slate_wall": "Slate Wall",
- "block.hexdeco.slate_amethyst_tiles_wall": "Slate & Amethyst Tiles Wall",
- "block.hexdeco.charged_amethyst_wall": "Charged Amethyst Wall",
- "block.hexdeco.amethyst_globe": "Amethyst Globe"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexdeco/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexdeco/lang/zh_cn.json
deleted file mode 100644
index 6bb5221da39c..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexdeco/lang/zh_cn.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "block.hexdeco.amethyst_bricks_mini_slab": "紫水晶小型砖台阶",
- "block.hexdeco.amethyst_bricks_slab": "紫水晶砖台阶",
- "block.hexdeco.amethyst_tiles_slab": "紫水晶瓦台阶",
- "block.hexdeco.slate_bricks_mini_slab": "板岩小型砖台阶",
- "block.hexdeco.slate_bricks_slab": "板岩砖台阶",
- "block.hexdeco.slate_slab": "板岩Slab",
- "block.hexdeco.slate_tiles_slab": "板岩瓦台阶",
- "block.hexdeco.amethyst_bricks_mini_stairs": "紫水晶小型砖楼梯",
- "block.hexdeco.amethyst_bricks_stairs": "紫水晶砖楼梯",
- "block.hexdeco.amethyst_tiles_stairs": "紫水晶瓦楼梯",
- "block.hexdeco.slate_bricks_mini_stairs": "板岩小型砖楼梯",
- "block.hexdeco.slate_bricks_stairs": "板岩砖楼梯",
- "block.hexdeco.slate_stairs": "板岩楼梯",
- "block.hexdeco.slate_tiles_stairs": "板岩瓦楼梯",
- "block.hexdeco.charged_amethyst_block": "充能紫水晶块",
- "block.hexdeco.charged_amethyst_slab": "充能紫水晶台阶",
- "block.hexdeco.charged_amethyst_stairs": "充能紫水晶楼梯",
- "block.hexdeco.charged_amethyst_bricks": "充能紫水晶砖",
- "block.hexdeco.charged_amethyst_bricks_slab": "充能紫水晶砖台阶",
- "block.hexdeco.charged_amethyst_bricks_stairs": "充能紫水晶砖楼梯",
- "block.hexdeco.charged_amethyst_lamp": "充能紫水晶灯",
- "block.hexdeco.slate_amethyst_tiles_stairs": "板岩紫晶瓦楼梯",
- "block.hexdeco.slate_amethyst_tiles_slab": "板岩紫晶瓦台阶",
- "block.hexdeco.amethyst_bricks_wall": "紫水晶砖墙",
- "block.hexdeco.amethyst_bricks_small_wall": "紫水晶小型砖墙",
- "block.hexdeco.slate_bricks_small_wall": "板岩小型砖墙",
- "block.hexdeco.slate_bricks_wall": "板岩砖墙",
- "block.hexdeco.amethyst_tiles_wall": "紫水晶瓦墙",
- "block.hexdeco.slate_tiles_wall": "板岩瓦墙",
- "block.hexdeco.slate_wall": "板岩墙",
- "block.hexdeco.slate_amethyst_tiles_wall": "板岩紫晶瓦墙",
- "block.hexdeco.charged_amethyst_wall": "充能紫水晶墙",
- "block.hexdeco.amethyst_globe": "紫水晶球"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
deleted file mode 100644
index 14d7d28f55b3..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexmu/lang/en_us.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "hexcasting.action.hexmu:inscription": "Inscribe Iota",
- "hexcasting.action.hexmu:inscribe": "Inscription Purification",
- "hexcasting.action.hexmu:substring": "Table Distillation",
- "hexcasting.action.hexmu:uwuify": "UwUify",
- "hexcasting.action.hexmu:functor": "Functor Distillation",
- "hexcasting.action.hexmu:pocket/open": "Inscribe Spatial Pocket",
- "hexcasting.action.hexmu:annotation/get": "Annotate Iota",
- "hexcasting.action.hexmu:annotation/set": "Annotation Distillation",
- "hexcasting.action.hexmu:box": "Mover's Purification",
- "hexcasting.action.hexmu:unbox": "Settler's Purification",
- "hexcasting.action.hexmu:pipebomb": "§kPipebomb§r Reflection",
- "hexcasting.iota.hexmu:box": "Box",
- "death.attack.hexmu:pipe_bomb": "%s was blown up by §9Boxed Pipe Bomb"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
deleted file mode 100644
index 9c11d26affca..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexmu/lang/zh_cn.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "hexcasting.action.hexmu:inscription": "Iota 赋名",
- "hexcasting.action.hexmu:inscribe": "赋名之纯化",
- "hexcasting.action.hexmu:substring": "制表之馏化",
- "hexcasting.action.hexmu:uwuify": "UwU化",
- "hexcasting.action.hexmu:functor": "函子之馏化",
- "hexcasting.action.hexmu:pocket/open": "空间口袋赋名",
- "hexcasting.action.hexmu:annotation/get": "Iota 注解",
- "hexcasting.action.hexmu:annotation/set": "注解之馏化",
- "hexcasting.action.hexmu:box": "搬盒者之纯化",
- "hexcasting.action.hexmu:unbox": "放盒者之纯化",
- "hexcasting.action.hexmu:pipebomb": "§k盒弹§r之精思",
- "hexcasting.iota.hexmu:box": "盒子",
- "death.attack.hexmu:pipe_bomb": "%s被§9盒装炸弹§r炸死了"
-}
\ No newline at end of file
From fe54a3aa194576ba3646d1002606b4aa1d7b9a87 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:57:38 +0800
Subject: [PATCH 73/78] =?UTF-8?q?Hextrogen=20Hexgender=20transfer=EF=BC=9A?=
=?UTF-8?q?#5415?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/hexgender/hexgender/README.md | 1 -
.../hexgender/hexgender/lang/en_us.json | 45 -------------------
.../hexgender/hexgender/packer-policy.json | 6 ---
.../hextrogen/lang/en_us.json | 10 -----
.../hextrogen/lang/zh_cn.json | 10 -----
.../1.20/assets/hexgender/hexgender/README.md | 16 -------
.../hexgender/hexgender/lang/en_us.json | 45 -------------------
.../hexgender/hexgender/lang/zh_cn.json | 45 -------------------
8 files changed, 178 deletions(-)
delete mode 100644 projects/1.20-fabric/assets/hexgender/hexgender/README.md
delete mode 100644 projects/1.20-fabric/assets/hexgender/hexgender/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
delete mode 100644 projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
delete mode 100644 projects/1.20/assets/hexgender/hexgender/README.md
delete mode 100644 projects/1.20/assets/hexgender/hexgender/lang/en_us.json
delete mode 100644 projects/1.20/assets/hexgender/hexgender/lang/zh_cn.json
diff --git a/projects/1.20-fabric/assets/hexgender/hexgender/README.md b/projects/1.20-fabric/assets/hexgender/hexgender/README.md
deleted file mode 100644
index 598ed3a64ee1..000000000000
--- a/projects/1.20-fabric/assets/hexgender/hexgender/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.20/assets/hexgender/hexgender)
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexgender/hexgender/lang/en_us.json b/projects/1.20-fabric/assets/hexgender/hexgender/lang/en_us.json
deleted file mode 100644
index b9af36234f5c..000000000000
--- a/projects/1.20-fabric/assets/hexgender/hexgender/lang/en_us.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "hexgender.entry.transition_spells": "Gender Identity Spells",
- "hexgender.entry.transition_spells.entry": "I would occasionally wonder what being born another sex would have been like...$(br)So, with a helping hand from the biomancy corps, I have made a few spells which would allow for instant transitions between sexes!",
-
- "hexcasting.action.hexgender:female_transition": "Transition: Feminine",
- "hexgender.page.transition_spells.female_transition": "Transitions the caster to a female!$(br)I wonder how I'd look in a skirt...",
- "hexcasting.action.hexgender:male_transition": "Transition: Masculine",
- "hexgender.page.transition_spells.male_transition": "Transitions the caster to a male!$(br)No more periods!",
- "hexcasting.action.hexgender:other_transition": "Transition: Non-binary",
- "hexgender.page.transition_spells.other_transition": "Transitions the caster to androgynous!$(br)Hmm... this is... interesting...",
- "hexcasting.action.hexgender:get_gender": "Gender Identity Prfn.",
- "hexgender.page.transition_spells.get_gender": "Obtains the target's selected gender as an ordinal (number)",
-
- "hexgender.entry.bust_patterns": "Go Big or Bust",
- "hexgender.entry.bust_patterns.entry": "With the newfound transition spells I began to wonder if I could change the properties of my chest. With more help from the biomancy corps, I have developed patterns to do just that... within reason.",
-
- "hexcasting.action.hexgender:get_bust_size": "Oncologist's Purification",
- "hexgender.page.bust_patterns.get_bust_size": "Gives the bust size of the target",
- "hexcasting.action.hexgender:set_bust_size": "Oncologist's Gambit",
- "hexgender.page.bust_patterns.set_bust_size": "Sets the bust size of the caster",
- "hexcasting.action.hexgender:get_bounciness": "Gainax Purification",
- "hexgender.page.bust_patterns.get_bounciness": "Gives the bounciness of the target's breasts",
- "hexcasting.action.hexgender:set_bounciness": "Gainax Gambit",
- "hexgender.page.bust_patterns.set_bounciness": "Sets the bounciness of the caster's breasts",
- "hexcasting.action.hexgender:get_floppiness": "Lindhal's Purification",
- "hexgender.page.bust_patterns.get_floppiness": "Gives the floppiness of the target's breasts",
- "hexcasting.action.hexgender:set_floppiness": "Lindhal's Gambit",
- "hexgender.page.bust_patterns.set_floppiness": "Sets the floppiness of the caster's breasts",
- "hexcasting.action.hexgender:get_physics": "Hookean Purification",
- "hexgender.page.bust_patterns.get_physics": "Gives the physics of the target's breasts",
- "hexcasting.action.hexgender:set_physics": "Hookean Gambit",
- "hexgender.page.bust_patterns.set_physics": "Sets the physics of the caster's breasts",
- "hexcasting.action.hexgender:get_cleavage": "Cleavage Purification",
- "hexgender.page.bust_patterns.get_cleavage": "Gets the cleavage of the target's breasts",
- "hexcasting.action.hexgender:set_cleavage": "Cleavage Gambit",
- "hexgender.page.bust_patterns.set_cleavage": "Sets the cleavage of the caster's breasts",
- "hexcasting.action.hexgender:get_breast_offsets": "Liposuction Purification",
- "hexgender.page.bust_patterns.get_breast_offsets": "Gets the offset of the target's breasts",
- "hexcasting.action.hexgender:set_breast_offsets": "Liposuction Gambit",
- "hexgender.page.bust_patterns.set_breast_offsets": "Sets the offset of the caster's breasts",
- "hexcasting.action.hexgender:get_uniboob": "Symmastia Purification",
- "hexgender.page.bust_patterns.get_uniboob": "Gets whether the target's breasts are a uniboob",
- "hexcasting.action.hexgender:set_uniboob": "Symmastia Gambit",
- "hexgender.page.bust_patterns.set_uniboob": "Sets whether the caster's breasts are a uniboob"
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json b/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
deleted file mode 100644
index 788c2d2195df..000000000000
--- a/projects/1.20-fabric/assets/hexgender/hexgender/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.20/assets/hexgender/hexgender"
- }
-]
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
deleted file mode 100644
index 478473bd534c..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/en_us.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "hexcasting.mishap.hextrogen:no_estrogen": "Expected estrogen.",
- "hextrogen.page.estrogen.title": "Dashing",
- "hextrogen.page.estrogen.0": "$(item)Estrogen$() seems to unlock in me a peculiar ability to $(#ac3232)Dash$() by tapping $(thing)$(k:estrogen.dash)$().$(br2)$(#ac3232)Dashing$() grants me a sudden burst of momentum for a few moments, during which my velocity can not be altered. _Media being the energy of thought, I can use _Hexcasting to stimulate the area of my brain responsible for this ability, with a surprising amount of directional control.",
- "hexcasting.action.hextrogen:dash": "Dash",
- "hextrogen.page.dash.summary": "Compels my mind to $(#ac3232)Dash$() according to the normalized vector. Cancels my velocity if given the zero vector. Free. If I am out of $(#ac3232)Dashes$(), does nothing. Requires $(item)Estrogen$().",
- "hextrogen.page.estrogen.1": "I must touch the ground again in order to \"refresh\" my $(#ac3232)Dash$(). However, I believe more potent forms of $(item)Estrogen$() can potentially unlock several consecutive $(#ac3232)Dashes$() before I require footing. Alternatively, I can utilize _Hexcasting to instantly renew my $(#ac3232)Dashes$().$(br2)I have discovered records of certain precise $(#ac3232)Dashes$() that can massively boost my mobility, but that art seems to have been lost to time.",
- "hexcasting.action.hextrogen:refresh_dashes": "Overdrive",
- "hextrogen.page.refresh_dashes.summary": "Instantly replenishes all of the player's $(#ac3232)Dashes$(). Costs about one $(l:items/amethyst)$(item)Charged Amethyst$(). Nature $(o)really$() doesn't want me to dash infinitely, it seems. Requires $(item)Estrogen$()."
-}
\ No newline at end of file
diff --git a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
deleted file mode 100644
index 9ac474850c28..000000000000
--- a/projects/1.20-fabric/assets/modrinth-hextrogen/hextrogen/lang/zh_cn.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "hexcasting.mishap.hextrogen:no_estrogen": "本应存在雌激素。",
- "hextrogen.page.estrogen.title": "冲刺",
- "hextrogen.page.estrogen.0": "借助$(item)雌激素$(),我似乎学会了一项新能力——按下$(thing)$(k:estrogen.dash)$()就可$(#ac3232)冲刺$()。$(br2)$(#ac3232)冲刺$()会给予持续一段时间的动量爆发,期间我无法调整速度。$(media)媒质$()是思维的能量,因此可借助$(hex)咒法学$()刺激大脑中掌管此能力的区域,还保留了相当程度的方向控制。",
- "hexcasting.action.hextrogen:dash": "冲刺",
- "hextrogen.page.dash.summary": "接受一个向量,进行归一化,并令我的意识向该方向$(#ac3232)冲刺$()。如果传入零向量则让速度归零。无需消耗$(media)媒质$()。如果我当前不能$(#ac3232)冲刺$(),则无效果。需要$(item)雌激素$()。",
- "hextrogen.page.estrogen.1": "$(#ac3232)冲刺$()次数会在触碰到地面时“重置”。不过,我相信更强效的$(item)雌激素$()可以在着陆前支持更多次连续的$(#ac3232)冲刺$()。而且,我还可以用$(hex)咒法学$()手段来刷新$(#ac3232)冲刺$()次数。$(br2)我找到了若干记录,称恰到好处的$(#ac3232)冲刺$()能极大地增加机动性,但这门技艺似乎已经随时间远去了。",
- "hexcasting.action.hextrogen:refresh_dashes": "过载",
- "hextrogen.page.refresh_dashes.summary": "立即恢复所有$(#ac3232)冲刺$()次数。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶$()。自然大概$(o)真的很$()不想让我一直冲刺。需要$(item)雌激素$()。"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexgender/hexgender/README.md b/projects/1.20/assets/hexgender/hexgender/README.md
deleted file mode 100644
index 91bd3ddaa9fa..000000000000
--- a/projects/1.20/assets/hexgender/hexgender/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.20.1 -->|indirect| 1.20.1-fabric
-```
-
-```
-1.20.1
- └── 1.20.1-fabric
-```
-
-### 链接区域
-
-- [1.20.1](/projects/1.20/assets/hexgender/hexgender)
-- [1.20.1-fabric](/projects/1.20-fabric/assets/hexgender/hexgender)
\ No newline at end of file
diff --git a/projects/1.20/assets/hexgender/hexgender/lang/en_us.json b/projects/1.20/assets/hexgender/hexgender/lang/en_us.json
deleted file mode 100644
index b9af36234f5c..000000000000
--- a/projects/1.20/assets/hexgender/hexgender/lang/en_us.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "hexgender.entry.transition_spells": "Gender Identity Spells",
- "hexgender.entry.transition_spells.entry": "I would occasionally wonder what being born another sex would have been like...$(br)So, with a helping hand from the biomancy corps, I have made a few spells which would allow for instant transitions between sexes!",
-
- "hexcasting.action.hexgender:female_transition": "Transition: Feminine",
- "hexgender.page.transition_spells.female_transition": "Transitions the caster to a female!$(br)I wonder how I'd look in a skirt...",
- "hexcasting.action.hexgender:male_transition": "Transition: Masculine",
- "hexgender.page.transition_spells.male_transition": "Transitions the caster to a male!$(br)No more periods!",
- "hexcasting.action.hexgender:other_transition": "Transition: Non-binary",
- "hexgender.page.transition_spells.other_transition": "Transitions the caster to androgynous!$(br)Hmm... this is... interesting...",
- "hexcasting.action.hexgender:get_gender": "Gender Identity Prfn.",
- "hexgender.page.transition_spells.get_gender": "Obtains the target's selected gender as an ordinal (number)",
-
- "hexgender.entry.bust_patterns": "Go Big or Bust",
- "hexgender.entry.bust_patterns.entry": "With the newfound transition spells I began to wonder if I could change the properties of my chest. With more help from the biomancy corps, I have developed patterns to do just that... within reason.",
-
- "hexcasting.action.hexgender:get_bust_size": "Oncologist's Purification",
- "hexgender.page.bust_patterns.get_bust_size": "Gives the bust size of the target",
- "hexcasting.action.hexgender:set_bust_size": "Oncologist's Gambit",
- "hexgender.page.bust_patterns.set_bust_size": "Sets the bust size of the caster",
- "hexcasting.action.hexgender:get_bounciness": "Gainax Purification",
- "hexgender.page.bust_patterns.get_bounciness": "Gives the bounciness of the target's breasts",
- "hexcasting.action.hexgender:set_bounciness": "Gainax Gambit",
- "hexgender.page.bust_patterns.set_bounciness": "Sets the bounciness of the caster's breasts",
- "hexcasting.action.hexgender:get_floppiness": "Lindhal's Purification",
- "hexgender.page.bust_patterns.get_floppiness": "Gives the floppiness of the target's breasts",
- "hexcasting.action.hexgender:set_floppiness": "Lindhal's Gambit",
- "hexgender.page.bust_patterns.set_floppiness": "Sets the floppiness of the caster's breasts",
- "hexcasting.action.hexgender:get_physics": "Hookean Purification",
- "hexgender.page.bust_patterns.get_physics": "Gives the physics of the target's breasts",
- "hexcasting.action.hexgender:set_physics": "Hookean Gambit",
- "hexgender.page.bust_patterns.set_physics": "Sets the physics of the caster's breasts",
- "hexcasting.action.hexgender:get_cleavage": "Cleavage Purification",
- "hexgender.page.bust_patterns.get_cleavage": "Gets the cleavage of the target's breasts",
- "hexcasting.action.hexgender:set_cleavage": "Cleavage Gambit",
- "hexgender.page.bust_patterns.set_cleavage": "Sets the cleavage of the caster's breasts",
- "hexcasting.action.hexgender:get_breast_offsets": "Liposuction Purification",
- "hexgender.page.bust_patterns.get_breast_offsets": "Gets the offset of the target's breasts",
- "hexcasting.action.hexgender:set_breast_offsets": "Liposuction Gambit",
- "hexgender.page.bust_patterns.set_breast_offsets": "Sets the offset of the caster's breasts",
- "hexcasting.action.hexgender:get_uniboob": "Symmastia Purification",
- "hexgender.page.bust_patterns.get_uniboob": "Gets whether the target's breasts are a uniboob",
- "hexcasting.action.hexgender:set_uniboob": "Symmastia Gambit",
- "hexgender.page.bust_patterns.set_uniboob": "Sets whether the caster's breasts are a uniboob"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/hexgender/hexgender/lang/zh_cn.json b/projects/1.20/assets/hexgender/hexgender/lang/zh_cn.json
deleted file mode 100644
index f488ebe14af7..000000000000
--- a/projects/1.20/assets/hexgender/hexgender/lang/zh_cn.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "hexgender.entry.transition_spells": "性别身份法术",
- "hexgender.entry.transition_spells.entry": "我偶尔会想,要是生来是另一个性别会是怎样……$(br)因此,感谢生物魔法军团的帮助,我制成了几个能瞬间转换性别的法术!",
-
- "hexcasting.action.hexgender:female_transition": "转换:女性",
- "hexgender.page.transition_spells.female_transition": "将施法者转化为女性!$(br)不知道我穿上短裙看起来如何……",
- "hexcasting.action.hexgender:male_transition": "转换:男性",
- "hexgender.page.transition_spells.male_transition": "将施法者转化为男性!$(br)不会再有月经了!",
- "hexcasting.action.hexgender:other_transition": "转换:非二元",
- "hexgender.page.transition_spells.other_transition": "将施法者转化为兼有双性!$(br)嗯……这真是……有意思……",
- "hexcasting.action.hexgender:get_gender": "性别身份之纯化",
- "hexgender.page.transition_spells.get_gender": "获取目标的性别,返回为序数(数)。",
-
- "hexgender.entry.bust_patterns": "有容乃大",
- "hexgender.entry.bust_patterns.entry": "有了新制作的转换法术后,我又开始考虑能否改变我胸部的各项数据。感谢生物魔法军团的更多帮助,我制成了能胜此任的若干图案……当然不会太过火。",
-
- "hexcasting.action.hexgender:get_bust_size": "肿瘤学家之纯化",
- "hexgender.page.bust_patterns.get_bust_size": "获取目标的乳房大小。",
- "hexcasting.action.hexgender:set_bust_size": "肿瘤学家之策略",
- "hexgender.page.bust_patterns.set_bust_size": "设置施法者的乳房大小。",
- "hexcasting.action.hexgender:get_bounciness": "GAINAX之纯化",
- "hexgender.page.bust_patterns.get_bounciness": "获取目标的乳房弹性。",
- "hexcasting.action.hexgender:set_bounciness": "GAINAX之策略",
- "hexgender.page.bust_patterns.set_bounciness": "设置施法者的乳房弹性。",
- "hexcasting.action.hexgender:get_floppiness": "林达尔之纯化",
- "hexgender.page.bust_patterns.get_floppiness": "获取目标的乳房动量。",
- "hexcasting.action.hexgender:set_floppiness": "林达尔之策略",
- "hexgender.page.bust_patterns.set_floppiness": "设置施法者的乳房动量。",
- "hexcasting.action.hexgender:get_physics": "胡克型之纯化",
- "hexgender.page.bust_patterns.get_physics": "检验目标的乳房有无物理效果。",
- "hexcasting.action.hexgender:set_physics": "胡克型之策略",
- "hexgender.page.bust_patterns.set_physics": "启用或禁用施法者的乳房物理。",
- "hexcasting.action.hexgender:get_cleavage": "乳沟之纯化",
- "hexgender.page.bust_patterns.get_cleavage": "获取目标的乳沟明显度。",
- "hexcasting.action.hexgender:set_cleavage": "乳沟之策略",
- "hexgender.page.bust_patterns.set_cleavage": "设置施法者的乳沟明显度。",
- "hexcasting.action.hexgender:get_breast_offsets": "抽脂之纯化",
- "hexgender.page.bust_patterns.get_breast_offsets": "获取目标的乳房偏移量。",
- "hexcasting.action.hexgender:set_breast_offsets": "抽脂之策略",
- "hexgender.page.bust_patterns.set_breast_offsets": "设置施法者的乳房偏移量。",
- "hexcasting.action.hexgender:get_uniboob": "并乳症之纯化",
- "hexgender.page.bust_patterns.get_uniboob": "检验目标的乳房是否分离。",
- "hexcasting.action.hexgender:set_uniboob": "并乳症之策略",
- "hexgender.page.bust_patterns.set_uniboob": "设置施法者的乳房分离与否。"
-}
\ No newline at end of file
From ca142374f069bce5eb31023fcfe77f67edfdf405 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 05:59:10 +0800
Subject: [PATCH 74/78] =?UTF-8?q?Hexgender=20fix=EF=BC=9A=E6=96=87?=
=?UTF-8?q?=E4=BB=B6=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../hexgender/lang/en_us.json | 45 +++++++++++++++++++
.../hexgender/lang/zh_cn.json | 45 +++++++++++++++++++
2 files changed, 90 insertions(+)
create mode 100644 projects/1.20/assets/modrinth-hexgender/hexgender/lang/en_us.json
create mode 100644 projects/1.20/assets/modrinth-hexgender/hexgender/lang/zh_cn.json
diff --git a/projects/1.20/assets/modrinth-hexgender/hexgender/lang/en_us.json b/projects/1.20/assets/modrinth-hexgender/hexgender/lang/en_us.json
new file mode 100644
index 000000000000..b9af36234f5c
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hexgender/hexgender/lang/en_us.json
@@ -0,0 +1,45 @@
+{
+ "hexgender.entry.transition_spells": "Gender Identity Spells",
+ "hexgender.entry.transition_spells.entry": "I would occasionally wonder what being born another sex would have been like...$(br)So, with a helping hand from the biomancy corps, I have made a few spells which would allow for instant transitions between sexes!",
+
+ "hexcasting.action.hexgender:female_transition": "Transition: Feminine",
+ "hexgender.page.transition_spells.female_transition": "Transitions the caster to a female!$(br)I wonder how I'd look in a skirt...",
+ "hexcasting.action.hexgender:male_transition": "Transition: Masculine",
+ "hexgender.page.transition_spells.male_transition": "Transitions the caster to a male!$(br)No more periods!",
+ "hexcasting.action.hexgender:other_transition": "Transition: Non-binary",
+ "hexgender.page.transition_spells.other_transition": "Transitions the caster to androgynous!$(br)Hmm... this is... interesting...",
+ "hexcasting.action.hexgender:get_gender": "Gender Identity Prfn.",
+ "hexgender.page.transition_spells.get_gender": "Obtains the target's selected gender as an ordinal (number)",
+
+ "hexgender.entry.bust_patterns": "Go Big or Bust",
+ "hexgender.entry.bust_patterns.entry": "With the newfound transition spells I began to wonder if I could change the properties of my chest. With more help from the biomancy corps, I have developed patterns to do just that... within reason.",
+
+ "hexcasting.action.hexgender:get_bust_size": "Oncologist's Purification",
+ "hexgender.page.bust_patterns.get_bust_size": "Gives the bust size of the target",
+ "hexcasting.action.hexgender:set_bust_size": "Oncologist's Gambit",
+ "hexgender.page.bust_patterns.set_bust_size": "Sets the bust size of the caster",
+ "hexcasting.action.hexgender:get_bounciness": "Gainax Purification",
+ "hexgender.page.bust_patterns.get_bounciness": "Gives the bounciness of the target's breasts",
+ "hexcasting.action.hexgender:set_bounciness": "Gainax Gambit",
+ "hexgender.page.bust_patterns.set_bounciness": "Sets the bounciness of the caster's breasts",
+ "hexcasting.action.hexgender:get_floppiness": "Lindhal's Purification",
+ "hexgender.page.bust_patterns.get_floppiness": "Gives the floppiness of the target's breasts",
+ "hexcasting.action.hexgender:set_floppiness": "Lindhal's Gambit",
+ "hexgender.page.bust_patterns.set_floppiness": "Sets the floppiness of the caster's breasts",
+ "hexcasting.action.hexgender:get_physics": "Hookean Purification",
+ "hexgender.page.bust_patterns.get_physics": "Gives the physics of the target's breasts",
+ "hexcasting.action.hexgender:set_physics": "Hookean Gambit",
+ "hexgender.page.bust_patterns.set_physics": "Sets the physics of the caster's breasts",
+ "hexcasting.action.hexgender:get_cleavage": "Cleavage Purification",
+ "hexgender.page.bust_patterns.get_cleavage": "Gets the cleavage of the target's breasts",
+ "hexcasting.action.hexgender:set_cleavage": "Cleavage Gambit",
+ "hexgender.page.bust_patterns.set_cleavage": "Sets the cleavage of the caster's breasts",
+ "hexcasting.action.hexgender:get_breast_offsets": "Liposuction Purification",
+ "hexgender.page.bust_patterns.get_breast_offsets": "Gets the offset of the target's breasts",
+ "hexcasting.action.hexgender:set_breast_offsets": "Liposuction Gambit",
+ "hexgender.page.bust_patterns.set_breast_offsets": "Sets the offset of the caster's breasts",
+ "hexcasting.action.hexgender:get_uniboob": "Symmastia Purification",
+ "hexgender.page.bust_patterns.get_uniboob": "Gets whether the target's breasts are a uniboob",
+ "hexcasting.action.hexgender:set_uniboob": "Symmastia Gambit",
+ "hexgender.page.bust_patterns.set_uniboob": "Sets whether the caster's breasts are a uniboob"
+}
\ No newline at end of file
diff --git a/projects/1.20/assets/modrinth-hexgender/hexgender/lang/zh_cn.json b/projects/1.20/assets/modrinth-hexgender/hexgender/lang/zh_cn.json
new file mode 100644
index 000000000000..f488ebe14af7
--- /dev/null
+++ b/projects/1.20/assets/modrinth-hexgender/hexgender/lang/zh_cn.json
@@ -0,0 +1,45 @@
+{
+ "hexgender.entry.transition_spells": "性别身份法术",
+ "hexgender.entry.transition_spells.entry": "我偶尔会想,要是生来是另一个性别会是怎样……$(br)因此,感谢生物魔法军团的帮助,我制成了几个能瞬间转换性别的法术!",
+
+ "hexcasting.action.hexgender:female_transition": "转换:女性",
+ "hexgender.page.transition_spells.female_transition": "将施法者转化为女性!$(br)不知道我穿上短裙看起来如何……",
+ "hexcasting.action.hexgender:male_transition": "转换:男性",
+ "hexgender.page.transition_spells.male_transition": "将施法者转化为男性!$(br)不会再有月经了!",
+ "hexcasting.action.hexgender:other_transition": "转换:非二元",
+ "hexgender.page.transition_spells.other_transition": "将施法者转化为兼有双性!$(br)嗯……这真是……有意思……",
+ "hexcasting.action.hexgender:get_gender": "性别身份之纯化",
+ "hexgender.page.transition_spells.get_gender": "获取目标的性别,返回为序数(数)。",
+
+ "hexgender.entry.bust_patterns": "有容乃大",
+ "hexgender.entry.bust_patterns.entry": "有了新制作的转换法术后,我又开始考虑能否改变我胸部的各项数据。感谢生物魔法军团的更多帮助,我制成了能胜此任的若干图案……当然不会太过火。",
+
+ "hexcasting.action.hexgender:get_bust_size": "肿瘤学家之纯化",
+ "hexgender.page.bust_patterns.get_bust_size": "获取目标的乳房大小。",
+ "hexcasting.action.hexgender:set_bust_size": "肿瘤学家之策略",
+ "hexgender.page.bust_patterns.set_bust_size": "设置施法者的乳房大小。",
+ "hexcasting.action.hexgender:get_bounciness": "GAINAX之纯化",
+ "hexgender.page.bust_patterns.get_bounciness": "获取目标的乳房弹性。",
+ "hexcasting.action.hexgender:set_bounciness": "GAINAX之策略",
+ "hexgender.page.bust_patterns.set_bounciness": "设置施法者的乳房弹性。",
+ "hexcasting.action.hexgender:get_floppiness": "林达尔之纯化",
+ "hexgender.page.bust_patterns.get_floppiness": "获取目标的乳房动量。",
+ "hexcasting.action.hexgender:set_floppiness": "林达尔之策略",
+ "hexgender.page.bust_patterns.set_floppiness": "设置施法者的乳房动量。",
+ "hexcasting.action.hexgender:get_physics": "胡克型之纯化",
+ "hexgender.page.bust_patterns.get_physics": "检验目标的乳房有无物理效果。",
+ "hexcasting.action.hexgender:set_physics": "胡克型之策略",
+ "hexgender.page.bust_patterns.set_physics": "启用或禁用施法者的乳房物理。",
+ "hexcasting.action.hexgender:get_cleavage": "乳沟之纯化",
+ "hexgender.page.bust_patterns.get_cleavage": "获取目标的乳沟明显度。",
+ "hexcasting.action.hexgender:set_cleavage": "乳沟之策略",
+ "hexgender.page.bust_patterns.set_cleavage": "设置施法者的乳沟明显度。",
+ "hexcasting.action.hexgender:get_breast_offsets": "抽脂之纯化",
+ "hexgender.page.bust_patterns.get_breast_offsets": "获取目标的乳房偏移量。",
+ "hexcasting.action.hexgender:set_breast_offsets": "抽脂之策略",
+ "hexgender.page.bust_patterns.set_breast_offsets": "设置施法者的乳房偏移量。",
+ "hexcasting.action.hexgender:get_uniboob": "并乳症之纯化",
+ "hexgender.page.bust_patterns.get_uniboob": "检验目标的乳房是否分离。",
+ "hexcasting.action.hexgender:set_uniboob": "并乳症之策略",
+ "hexgender.page.bust_patterns.set_uniboob": "设置施法者的乳房分离与否。"
+}
\ No newline at end of file
From 9a30f65bd230e0ab987108175cd387d1769f4323 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 06:03:13 +0800
Subject: [PATCH 75/78] =?UTF-8?q?EnlightenedPsionics=20transfer=EF=BC=9A#5?=
=?UTF-8?q?401?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/1UNKNOWN/hexpsi/lang/en_us.json | 66 -------------------
.../assets/1UNKNOWN/hexpsi/lang/zh_cn.json | 66 -------------------
2 files changed, 132 deletions(-)
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
delete mode 100644 projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
diff --git a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
deleted file mode 100644
index c962563a9af9..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/en_us.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "hexpsi.spellpiece.selector_sentinel_pos": "Selector: Sentinel Position",
- "hexpsi.spellpiece.selector_sentinel_pos.desc": "Returns your sentinel's position.",
- "hexpsi.spellpiece.selector_sentinel_tier": "Selector: Sentinel Tier",
- "hexpsi.spellpiece.selector_sentinel_tier.desc": "Returns your sentinel's tier, with a nonexistent or inaccessible sentinel returning 0.",
-
- "hexpsi.spellpiece.selector_helmet_vec": "Selector: Helmet Vector",
- "hexpsi.spellpiece.selector_helmet_vec.desc": "Attempts to read the vector stored in your helmet sensor.",
-
- "hexpsi.spellpiece.selector_read_vec": "Selector: Held Vector",
- "hexpsi.spellpiece.selector_read_vec.desc": "Attempts to read a vector from held iota storage.",
- "hexpsi.spellpiece.selector_read_num": "Selector: Held Number",
- "hexpsi.spellpiece.selector_read_num.desc": "Attempts to read a number from held iota storage.",
- "hexpsi.spellpiece.selector_read_entity": "Selector: Held Entity",
- "hexpsi.spellpiece.selector_read_entity.desc": "Attempts to read an entity from held iota storage.",
- "hexpsi.spellpiece.selector_read_entities": "Selector: Held Entities",
- "hexpsi.spellpiece.selector_read_entities.desc": "Attempts to read a list of entities from held iota storage.",
-
- "hexpsi.spellpiece.trick_write_helmet_vec": "Trick: Write Helmet Vector",
- "hexpsi.spellpiece.trick_write_helmet_vec.desc": "Attempts to write a vector to your helmet sensor. Does not trigger the sensor.",
-
- "hexpsi.spellpiece.trick_set_sentinel": "Trick: Set Sentinel",
- "hexpsi.spellpiece.trick_set_sentinel.desc": "Summons your sentinel at the target position.",
- "hexpsi.spellpiece.trick_write_iota_vec": "Trick: Write Vector",
- "hexpsi.spellpiece.trick_write_iota_vec.desc": "Attempts to write a vector to held iota storage.",
- "hexpsi.spellpiece.trick_write_iota_num": "Trick: Write Number",
- "hexpsi.spellpiece.trick_write_iota_num.desc": "Attempts to write a number to held iota storage.",
- "hexpsi.spellpiece.trick_write_iota_entity": "Trick: Write Entity",
- "hexpsi.spellpiece.trick_write_iota_entity.desc": "Attempts to write an entity to held iota storage.",
- "hexpsi.spellpiece.trick_write_iota_entities": "Trick: Write Entity List",
- "hexpsi.spellpiece.trick_write_iota_entities.desc": "Attempts to write a list of entities to held iota storage.",
-
- "hexpsi.spellpiece.fx_suppressor": "Hex Effect Suppressor",
- "hexpsi.spellpiece.fx_suppressor.desc": "Disables basic sounds/particles from a hex cast via Trinket Bullet.",
- "hexpsi.spellpiece.media_suppressor": "Media Report Suppressor",
- "hexpsi.spellpiece.media_suppressor.desc": "Disables the media report after a hex cast via Trinket Bullet.",
-
- "psi.spellparam.hexpsi:sentineltier": "Tier",
- "psi.spellparam.hexpsi:vec": "Vector",
- "psi.spellparam.hexpsi:num": "Number",
- "psi.spellparam.hexpsi:entity": "Entity",
- "psi.spellparam.hexpsi:entities": "List of Entities",
-
- "hexpsi.spellerror.truename": "ERROR: Attempted to save reference to another player.",
- "hexpsi.spellerror.enlightenment": "ERROR: Am I not skilled enough?",
- "hexpsi.spellerror.writeable": "ERROR: No writeable item found.",
- "hexpsi.spellerror.readable": "ERROR: No readable item found.",
- "hexpsi.spellerror.unreadablecontents": "ERROR: Readable item does not contain readable data.",
- "hexpsi.spellerror.badtier": "ERROR: Sentinel tier must be an integer between [0,2].",
-
- "hexpsi.helmetrequires": "Helmet sensor requires ",
- "hexpsi.helmetrequires.vector": "a vector.",
- "hexpsi.badhelmet.readable": "Helmet does not contain a readable iota.",
-
- "item.hexpsi.exosuit_vector_focus_sensor": "Exosuit Sensor: Vector Write",
- "item.hexpsi.psi_core_staff": "Psion's Staff",
- "item.hexpsi.spell_bullet_trinket": "Trinket Spell Bullet",
- "item.hexpsi.spell_bullet_trinket_active": "Programmed Trinket Spell Bullet",
-
- "this.is.a.comment.1": "Lore-wise, I think the trinket parts of the bullet act kind of like a coprocessor that the CAD dispatches instructions to.",
-
- "hexpsi.tooltip.bullet_media": "%s: %s/%s (%s)",
- "hexpsi.tooltip.bullet_name_default": "Spell",
-
- "hexpsi.event.write_helmet_vector": "§bEvent§7: Write Vector Iota"
-}
\ No newline at end of file
diff --git a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json b/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
deleted file mode 100644
index 5dfdc8b2d426..000000000000
--- a/projects/1.20/assets/1UNKNOWN/hexpsi/lang/zh_cn.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "hexpsi.spellpiece.selector_sentinel_pos": "选择符:哨卫位置",
- "hexpsi.spellpiece.selector_sentinel_pos.desc": "返回哨卫的位置",
- "hexpsi.spellpiece.selector_sentinel_tier": "选择符:哨卫等级",
- "hexpsi.spellpiece.selector_sentinel_tier.desc": "返回哨卫的等级;如果没有哨卫或无法访问哨卫,则返回0",
-
- "hexpsi.spellpiece.selector_helmet_vec": "选择符:头盔矢量",
- "hexpsi.spellpiece.selector_helmet_vec.desc": "试图从头盔传感器中读取一个矢量",
-
- "hexpsi.spellpiece.selector_read_vec": "选择符:手持矢量",
- "hexpsi.spellpiece.selector_read_vec.desc": "试图从手持的iota存储空间中读取一个矢量",
- "hexpsi.spellpiece.selector_read_num": "选择符:手持数值",
- "hexpsi.spellpiece.selector_read_num.desc": "试图从手持的iota存储空间中读取一个数值",
- "hexpsi.spellpiece.selector_read_entity": "选择符:手持实体",
- "hexpsi.spellpiece.selector_read_entity.desc": "试图从手持的iota存储空间中读取一个实体",
- "hexpsi.spellpiece.selector_read_entities": "选择符:手持实体列表",
- "hexpsi.spellpiece.selector_read_entities.desc": "试图从手持的iota存储空间中读取一个实体列表",
-
- "hexpsi.spellpiece.trick_write_helmet_vec": "启动式:写入头盔矢量",
- "hexpsi.spellpiece.trick_write_helmet_vec.desc": "试图向头盔传感器写入一个向量;不会触发传感器",
-
- "hexpsi.spellpiece.trick_set_sentinel": "启动符:设置哨卫",
- "hexpsi.spellpiece.trick_set_sentinel.desc": "在指定位置召唤哨卫",
- "hexpsi.spellpiece.trick_write_iota_vec": "启动符:写出矢量",
- "hexpsi.spellpiece.trick_write_iota_vec.desc": "试图向手持的iota存储空间写出一个矢量",
- "hexpsi.spellpiece.trick_write_iota_num": "启动符:写出数值",
- "hexpsi.spellpiece.trick_write_iota_num.desc": "试图向手持的iota存储空间写出一个数值",
- "hexpsi.spellpiece.trick_write_iota_entity": "启动符:写出实体",
- "hexpsi.spellpiece.trick_write_iota_entity.desc": "试图向手持的iota存储空间写出一个实体",
- "hexpsi.spellpiece.trick_write_iota_entities": "启动符:写出实体列表",
- "hexpsi.spellpiece.trick_write_iota_entities.desc": "试图向手持的iota存储空间写出一个实体列表",
-
- "hexpsi.spellpiece.fx_suppressor": "咒术效果消除符",
- "hexpsi.spellpiece.fx_suppressor.desc": "禁用缀品型术式子弹施放咒术的基础声音和粒子",
- "hexpsi.spellpiece.media_suppressor": "媒质报告消除符",
- "hexpsi.spellpiece.media_suppressor.desc": "禁用缀品子弹施放咒术后的媒质报告",
-
- "psi.spellparam.hexpsi:sentineltier": "等级",
- "psi.spellparam.hexpsi:vec": "矢量",
- "psi.spellparam.hexpsi:num": "数值",
- "psi.spellparam.hexpsi:entity": "实体",
- "psi.spellparam.hexpsi:entities": "实体列表",
-
- "hexpsi.spellerror.truename": "错误:试图存储对其他玩家的引用。",
- "hexpsi.spellerror.enlightenment": "错误:也许我还做得不够?",
- "hexpsi.spellerror.writeable": "错误:未找到可写出的物品。",
- "hexpsi.spellerror.readable": "错误:未找到可读取的物品。",
- "hexpsi.spellerror.unreadablecontents": "错误:可读物品中无可读取的数据。",
- "hexpsi.spellerror.badtier": "错误:哨卫等级必须为[0,2]中的整数。",
-
- "hexpsi.helmetrequires": "头盔传感器需要",
- "hexpsi.helmetrequires.vector": "一个矢量。",
- "hexpsi.badhelmet.readable": "头盔内无可读取的iota。",
-
- "item.hexpsi.exosuit_vector_focus_sensor": "装甲传感器:写入矢量",
- "item.hexpsi.psi_core_staff": "Psi子法杖",
- "item.hexpsi.spell_bullet_trinket": "缀品型术式子弹",
- "item.hexpsi.spell_bullet_trinket_active": "已编程的缀品型术式子弹",
-
- "this.is.a.comment.1": "Lore-wise, I think the trinket parts of the bullet act kind of like a coprocessor that the CAD dispatches instructions to.",
-
- "hexpsi.tooltip.bullet_media": "%s:%s/%s(%s)",
- "hexpsi.tooltip.bullet_name_default": "法术",
-
- "hexpsi.event.write_helmet_vector": "§b事件§7:写入向量iota"
-}
\ No newline at end of file
From e4b2629f7c6349ef2cdb7338b98849ddabb012bb Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 06:07:03 +0800
Subject: [PATCH 76/78] Hexiron path
---
.../assets/{hexiron => modrinth-hexiron}/hexiron/lang/en_us.json | 0
.../assets/{hexiron => modrinth-hexiron}/hexiron/lang/zh_cn.json | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename projects/1.19/assets/{hexiron => modrinth-hexiron}/hexiron/lang/en_us.json (100%)
rename projects/1.19/assets/{hexiron => modrinth-hexiron}/hexiron/lang/zh_cn.json (100%)
diff --git a/projects/1.19/assets/hexiron/hexiron/lang/en_us.json b/projects/1.19/assets/modrinth-hexiron/hexiron/lang/en_us.json
similarity index 100%
rename from projects/1.19/assets/hexiron/hexiron/lang/en_us.json
rename to projects/1.19/assets/modrinth-hexiron/hexiron/lang/en_us.json
diff --git a/projects/1.19/assets/hexiron/hexiron/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexiron/hexiron/lang/zh_cn.json
similarity index 100%
rename from projects/1.19/assets/hexiron/hexiron/lang/zh_cn.json
rename to projects/1.19/assets/modrinth-hexiron/hexiron/lang/zh_cn.json
From 13ba83976efe86cbc8ee1b12158d8e8bbceca895 Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Sat, 26 Jul 2025 07:50:32 +0800
Subject: [PATCH 77/78] =?UTF-8?q?Hexal=20fix=EF=BC=9A=E9=85=8D=E7=BD=AE?=
=?UTF-8?q?=E5=88=86=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
projects/1.19/assets/hexal/hexal/lang/zh_cn.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/projects/1.19/assets/hexal/hexal/lang/zh_cn.json b/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
index 9b5f70c5bf64..545394ddddec 100644
--- a/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
+++ b/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
@@ -329,9 +329,9 @@
"_comment": "Config Entries",
"text.autoconfig.hexal.title": "咒法拓展(Hexal)配置",
- "text.autoconfig.hexal.category.common": "Common",
- "text.autoconfig.hexal.category.client": "Client",
- "text.autoconfig.hexal.category.server": "Server",
+ "text.autoconfig.hexal.category.common": "通用",
+ "text.autoconfig.hexal.category.client": "客户端",
+ "text.autoconfig.hexal.category.server": "服务端",
"text.autoconfig.hexal.option.server.terrainGeneration": "世界生成",
"text.autoconfig.hexal.option.server.generateSlipwayGeodes": "是否生成质道晶洞?",
From 99f233d32448df8b857a4263259d35c93be0403b Mon Sep 17 00:00:00 2001
From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com>
Date: Tue, 23 Sep 2025 21:34:55 +0800
Subject: [PATCH 78/78] Hexal MoreIotas transfer
---
.../1.18-fabric/assets/hexal/hexal/README.md | 1 -
.../assets/hexal/hexal/lang/en_us.json | 173 --------
.../assets/hexal/hexal/packer-policy.json | 6 -
projects/1.18/assets/hexal/hexal/README.md | 16 -
.../1.18/assets/hexal/hexal/lang/zh_cn.json | 2 +-
.../1.19/assets/hexal/hexal/lang/en_us.json | 411 ------------------
.../1.19/assets/hexal/hexal/lang/zh_cn.json | 411 ------------------
.../moreiotas/moreiotas/lang/en_us.json | 105 -----
.../moreiotas/moreiotas/lang/zh_cn.json | 105 -----
9 files changed, 1 insertion(+), 1229 deletions(-)
delete mode 100644 projects/1.18-fabric/assets/hexal/hexal/README.md
delete mode 100644 projects/1.18-fabric/assets/hexal/hexal/lang/en_us.json
delete mode 100644 projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
delete mode 100644 projects/1.18/assets/hexal/hexal/README.md
delete mode 100644 projects/1.19/assets/hexal/hexal/lang/en_us.json
delete mode 100644 projects/1.19/assets/hexal/hexal/lang/zh_cn.json
delete mode 100644 projects/1.19/assets/moreiotas/moreiotas/lang/en_us.json
delete mode 100644 projects/1.19/assets/moreiotas/moreiotas/lang/zh_cn.json
diff --git a/projects/1.18-fabric/assets/hexal/hexal/README.md b/projects/1.18-fabric/assets/hexal/hexal/README.md
deleted file mode 100644
index 45c0c49e45fb..000000000000
--- a/projects/1.18-fabric/assets/hexal/hexal/README.md
+++ /dev/null
@@ -1 +0,0 @@
-[见主文档](/projects/1.18/assets/hexal/hexal)
\ No newline at end of file
diff --git a/projects/1.18-fabric/assets/hexal/hexal/lang/en_us.json b/projects/1.18-fabric/assets/hexal/hexal/lang/en_us.json
deleted file mode 100644
index ad15ddea1226..000000000000
--- a/projects/1.18-fabric/assets/hexal/hexal/lang/en_us.json
+++ /dev/null
@@ -1,173 +0,0 @@
-{
- "block.hexal.slipway": "Slipway",
-
- "entity.hexal.wisp.projectile": "Projectile Wisp",
- "entity.hexal.wisp.ticking": "Cyclic Wisp",
- "entity.hexal.wisp.wandering": "Wandering Wisp",
-
- "hexcasting.mishap.non_player": "%s expected to be cast by a player.",
- "hexcasting.mishap.no_wisp": "%s expected to be cast by a wisp.",
- "hexcasting.mishap.others_wisp": "That wisp is owned by %s, not you.",
- "hexcasting.mishap.no_links": "%s has no links.",
- "hexcasting.mishap.self_link": "Tried to link %s to itself.",
-
- "hexcasting.mishap.invalid_value.class.type.list.double": "a list of numbers",
- "hexal.mishap.invalid_value.vecitem": "a vector or item entity",
-
-
- "hexcasting.spell.hexal:compare/blocks": "Surveyor's Distillation",
- "hexcasting.spell.hexal:compare/entities": "Physician's Distillation",
- "hexcasting.spell.hexal:compare/types": "Classifier's Distillation",
-
- "hexcasting.spell.hexal:current_tick": "Timekeeper's Reflection",
- "hexcasting.spell.hexal:remaining_evals": "Thanatos' Reflection",
- "hexcasting.spell.hexal:breath": "Diver's Purification",
- "hexcasting.spell.hexal:health": "Nurse's Purification",
- "hexcasting.spell.hexal:light_level": "Lamplighter's Purification",
-
- "hexcasting.spell.hexal:factorial": "Factorial Purification",
- "hexcasting.spell.hexal:running/sum": "Running Sum Purification",
- "hexcasting.spell.hexal:running/mul": "Running Product Purification",
-
- "hexcasting.spell.hexal:everbook/read": "Mnemosyne's Gambit",
- "hexcasting.spell.hexal:everbook/write": "Elysium's Gambit",
- "hexcasting.spell.hexal:everbook/delete": "Lethe's Gambit",
- "hexcasting.spell.hexal:everbook/toggle_macro": "Brigh's Gambit",
-
- "hexcasting.spell.hexal:smelt": "Smelt",
- "hexcasting.spell.hexal:freeze": "Freeze",
- "hexcasting.spell.hexal:falling_block": "Falling Block",
-
- "hexcasting.spell.hexal:wisp/summon/projectile": "Summon Projectile Wisp",
- "hexcasting.spell.hexal:wisp/summon/ticking": "Summon Cyclic Wisp",
- "hexcasting.spell.hexal:wisp/media": "Reservoir Reflection",
- "hexcasting.spell.hexal:wisp/hex": "Manager's Purification",
- "hexcasting.spell.hexal:wisp/owner": "Allegiance Distillation",
- "hexcasting.spell.hexal:wisp/move/target/set": "Pathfinder's Gambit",
- "hexcasting.spell.hexal:wisp/move/target/get": "Pathfinder's Reflection",
- "hexcasting.spell.hexal:wisp/move/speed/set": "Haste",
- "hexcasting.spell.hexal:wisp/move/speed/get": "Speedometer's Reflection",
- "hexcasting.spell.hexal:wisp/trigger/tick": "Delay Wisp",
- "hexcasting.spell.hexal:wisp/trigger/comm": "Listen",
- "hexcasting.spell.hexal:wisp/trigger/move": "Wander",
- "hexcasting.spell.hexal:wisp/consume": "Consume Wisp",
- "hexcasting.spell.hexal:wisp/seon/set": "Bind Wisp",
- "hexcasting.spell.hexal:wisp/seon/get": "Familiar's Reflection",
-
- "hexcasting.spell.hexal:get_entity/wisp": "Entity Purification: Wisp",
- "hexcasting.spell.hexal:zone_entity/wisp": "Zone Distillation: Wisp",
- "hexcasting.spell.hexal:zone_entity/not_wisp": "Zone Distillation: Non-Wisp",
-
- "hexcasting.spell.hexal:link/link_entity": "Link Entity",
- "hexcasting.spell.hexal:link/link_two_entities": "Link Entities",
- "hexcasting.spell.hexal:link/unlink": "Unlink",
- "hexcasting.spell.hexal:link/get": "Phonebook Purification",
- "hexcasting.spell.hexal:link/get_index": "Recognition Purification",
- "hexcasting.spell.hexal:link/num": "Popularity Reflection",
-
- "hexcasting.spell.hexal:link/comm/send": "Send Iota",
- "hexcasting.spell.hexal:link/comm/read": "Recitation Reflection",
- "hexcasting.spell.hexal:link/comm/num": "Postmaster's Reflection",
- "hexcasting.spell.hexal:link/comm/open_transmit": "Open Transmit",
- "hexcasting.spell.hexal:link/comm/close_transmit": "Close Transmit",
-
-
-
- "hexcasting.spell.book.hexal:light_level": "Lamplighter's Prfn.",
-
- "hexcasting.spell.book.hexal:running/sum": "Running Sum Prfn.",
- "hexcasting.spell.book.hexal:running/mul": "Running Product Prfn.",
-
- "hexcasting.spell.book.hexal:get_entity/wisp": "Entity Prfn.: Wisp",
- "hexcasting.spell.book.hexal:zone_entity/wisp": "Zone Dstl.: Wisp",
- "hexcasting.spell.book.hexal:zone_entity/not_wisp": "Zone Dstl.: Non-Wisp",
-
-
-
-
- "hexal.entry.slipways": "Slipways",
- "hexal.page.slipways": "I have heard tales of some geodes in which glowing portals called slipways lie. These slipways are regularly depicted with glowing sparks surrounding them that bear an incredible resemblance to the $(l:hexal:patterns/spells/wisps)$(thing)wisps/$ that I have heard tell of, which may be a connection to look into.",
-
-
- "hexal.entry.hexal_basics": "Hexal Basic Patterns",
- "hexal.page.hexal_basics.current_tick": "Adds a number to the stack which seems to be related to how Nature represents time; If I cast the pattern, then cast the same pattern a second later, the number it adds has increased by 20.",
- "hexal.page.hexal_basics.remaining_evals": "Adds the number of evaluations a hex is still capable of to the stack. This is reduced by $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$.",
- "hexal.page.hexal_basics.breath": "Removes a Living entity from the stack and returns how much breath it has left (i.e., how close it is to drowning).",
- "hexal.page.hexal_basics.health": "Removes a Living entity from the stack and returns how much health it has left (i.e., how close it is to dying).",
- "hexal.page.hexal_basics.light_level": "Removes a position vector from the stack and returns the light level at that position.",
-
- "hexal.entry.hexal_maths": "Hexal Maths",
- "hexal.page.hexal_maths.factorial": "Removes a number from the stack and computes its factorial, for example inputting 4 would return 4*3*2*1=24.",
- "hexal.page.hexal_maths.running/sum": "Takes a list from the stack and computes its running sum, for example inputting [1,2,5] would return [1,3,8].",
- "hexal.page.hexal_maths.running/mul": "Takes a list from the stack and computes its running product, for example inputting [1,2,5] would return [1,2,10].",
-
- "hexal.entry.hexal_spell": "Hexal Spells",
- "hexal.page.hexal_spell.smelt.0": "Remove a location or item entity from the stack, then either smelt the block at the location or smelt all the items in the item entity.",
- "hexal.page.hexal_spell.smelt.1": "Costs three quarters of an $(l:items/amethyst)$(item)Amethyst Dust/$ per item smelted (i.e. three quarters of an $(l:items/amethyst)$(item)Amethyst Dust/$ for smelting a block, 6 $(l:items/amethyst)$(item)Amethyst Dust/$ to smelt a stack of 8 items.)",
- "hexal.page.hexal_spell.freeze": "Freezes the block at a block location. For example, turns water into ice, and ice into packed ice. Costs three $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.hexal_spell.falling_block": "Remove a location from the stack, and force the block there to fall as if it were sand or gravel. Costs one and a half $(l:items/amethyst)$(item)Amethyst Dust/$.",
-
- "hexal.entry.wisps": "Wisps",
- "hexal.page.wisps.0": "I have discovered a way to create constructs from the media itself, visible to others and able to move and act somewhat on their own. They are able to cast hexes in my place, similar to how a $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ evaluates patterns. They do take some of my attention to operate this however, and if too many try and execute at once I will only be able to run some of them, leaving the rest for the next instant.",
- "hexal.page.wisps.1": "When they are created I assign them a 'reservoir' of media that they have access to, which is taken from me and used to form the wisp. A wisp uses up part of its reservoir simply existing, and when it evaluates the pattern list it is carrying any costs incurred are removed from its reservoir. All wisps seem to take three $(l:items/amethyst)$(item)Amethyst Dust/$ to summon, in addition to whatever media is used for their reservoir.",
- "hexal.page.wisps.wisp/summon/projectile.0": "This wisp is summoned and launched like an arrow, casting its hex on whatever it hits. The initial stack when it executes will be a reference to itself, then a reference to what it hit.",
- "hexal.page.wisps.wisp/summon/projectile.1": "This could be a block position or an entity reference. The first vector accepted is the location the wisp will be summoned, while the direction of the second is the direction the wisp will be launched, and the second's magnitude seems to affect the wisp's velocity. The cost of the spell increases with the squared magnitude of velocity. The number accepted determines the wisp's reservoir in $(l:items/amethyst)$(item)Amethyst Dust/$. It loses one $(l:items/amethyst)$(item)Amethyst Dust/$ of media every second once summoned, and has a range of influence of 4 blocks.",
- "hexal.page.wisps.wisp/summon/ticking.0": "Similar to Summon Projectile Wisp, but with only one vector input for the position to summon the wisp. Cyclic wisps are unmoving once summoned, instead executing their hex up to 20 times each second.",
- "hexal.page.wisps.wisp/summon/ticking.1": "The first time it casts the stack will start with a reference to itself, from which point it will always start with the stack and ravenmind in the state they finished on the last cast. This wisp has a less stable form making it lose significantly more media every second, losing one $(l:items/amethyst)$(item)Amethyst Dust/$ per second once summoned, as well as an amount proportional to the amount remaining. It has a range of influence of 8 blocks.",
- "hexal.page.wisps.wisp/media": "Add the amount of media in the wisp's reservoir to the stack. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
- "hexal.page.wisps.wisp/hex": "Removes a reference to a wisp from the stack, and replaces it with the wisp's contained hex. Must be a wisp you summoned.",
- "hexal.page.wisps.wisp/owner": "Removes a reference to a wisp and an entity from the stack, and returns one if that entity owns that wisp, and a zero otherwise.",
- "hexal.page.wisps.wisp/move/target/set": "Removes a position vector from the stack; The Cyclic Wisp that executed this pattern will move in a straight line towards that position (colliding with terrain in its path) until it reaches it.",
- "hexal.page.wisps.wisp/move/target/get": "Adds to the stack the position vector that the executing Cyclic Wisp is currently moving towards.",
- "hexal.page.wisps.wisp/move/speed/set": "Removes a number from the stack, and sets the executing Cyclic Wisp's maximum speed to that number.",
- "hexal.page.wisps.wisp/move/speed/get": "Gets the executing Cyclic Wisp's current maximum speed.",
- "hexal.page.wisps.get_entity/wisp": "Transform the position on the stack into the wisp at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).",
- "hexal.page.wisps.zone_entity/wisp": "Take a position and maximum distance on the stack, and combine them into a list of wisps near the position.",
- "hexal.page.wisps.zone_entity/not_wisp": "Take a position and maximum distance on the stack, and combine them into a list of non-wisp entities near the position.",
- "hexal.page.wisps.wisp/trigger/tick": "Removes an integer from the stack, then delays the wisp's next cast until at least that many twentieth's of a second have passed.",
- "hexal.page.wisps.wisp/trigger/comm": "The wisp's next cast will not occur until it has received at least one $(l:hexal:patterns/spells/links#hexal:link/comm/send)$(action)communication/$.",
- "hexal.page.wisps.wisp/trigger/move": "The wisp's next cast will not occur until it has reached the position it is $(l:hexal:patterns/spells/wisps#hexal:wisp/move/target/set)$(action)navigating/$ towards.",
-
- "hexal.entry.links": "Links",
- "hexal.page.links.0": "These patterns outline a system that I have found for communicating information from one $(l:hexal:patterns/spells/wisps)$(thing)wisp/$ to another, among other things. There are a number of patterns related to creating these links that are able to transmit information, and a number of patterns related to sending and receiving iotas over a link once it is created. A wisp can have any number of links active, with each costing a negligible amount of media to maintain each twentieth of a second.",
- "hexal.page.links.1": "As links are created connected to a wisp that wisp will assign an order to them, based on the order which they were created, which is used to reference the links in a number of patterns. Unless otherwise stated, these patterns must be evaluated by a wisp, with unpleasant consequences if I try to evaluate them myself.",
- "hexal.page.links.link/link_entity": "Links the casting wisp to the entity removed from the stack, which must be linkable. This costs one $(l:items/amethyst)$(item)Amethyst Shard/$.",
- "hexal.page.links.link/link_two_entities": "May be evaluated by any casting instrument. Links two entities, which must be linkable. This costs one $(l:items/amethyst)$(item)Amethyst Shard/$.",
- "hexal.page.links.link/unlink": "Removes the link at the given index from the casting wisp's links. This costs two $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.links.link/get": "Removes an index from the stack, and adds the entity connected to the link at that index to the stack.",
- "hexal.page.links.link/get_index": "Removes an entity from the stack, and adds the index to the link to that entity to the stack (or -1 if the wisp isn't linked to that entity).",
- "hexal.page.links.link/num": "Adds the number of links to the wisp to the stack.",
- "hexal.page.links.link/comm/send": "Removes an iota from the stack, then removes an index from the stack and sends the iota along the link at the given index. This costs one hundredth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.links.link/comm/read": "When a wisp receives an iota along a link it is added to a queue. This pattern adds the first iota in the queue to the stack, removing it from the queue.",
- "hexal.page.links.link/comm/num": "Adds to the stack the number of unread iota in the wisp's received iota queue.",
- "hexal.page.links.link/comm/open_transmit": "Similar to $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$, until drawing a $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Close Transmit/$ all patterns I draw are sent along the link whose index is at the top of the stack.",
- "hexal.page.links.link/comm/close_transmit": "When drawn after $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Open Transmit/$ I stop transmitting drawn patterns. If either $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Open Transmit/$ or $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Close Transmit/$ are executed by an intermediary caster such as a wisp, they will mishap.",
-
- "hexal.entry.great_wisps": "Great Wisp Spells",
- "hexal.page.great_wisps.wisp/consume.0": "Remove a wisp from the stack, and disassemble the wisp. The patterns contained are lost, but the media that it contained can be repurposed if this spell is cast by another wisp.",
- "hexal.page.great_wisps.wisp/consume.1": "Costs either an $(l:items/amethyst)$(item)Amethyst Crystal/$ if the wisp is owned by you, or half again as much media as the consumed wisp contains if the wisp is owned by another. Repurposing the media is not completely efficient, losing one twentieth of the consumed wisp's reserve in transfer.",
- "hexal.page.great_wisps.wisp/seon/set": "Bind one of my wisps closer to me; I may only have one bound wisp at a time, but whichever wisp is bound costs significantly less upkeep.",
- "hexal.page.great_wisps.wisp/seon/get": "Returns my currently bound wisp. (This is not a great spell, I have simply placed it here for convenience.)",
-
- "hexal.entry.type_comparison": "Type Comparisons",
- "hexal.page.type_comparison.compare/blocks": "Remove two locations from the stack; if the block at the first is equal to the block at the second, return 1. Otherwise, return 0.",
- "hexal.page.type_comparison.compare/entities": "Remove two entities from the stack; if the entities are the same type (with items comparing the type of item) return 1. Otherwise, return 0.",
- "hexal.page.type_comparison.compare/types": "Remove two iota from the stack; if iota are the same type, return 1. Otherwise, return 0. For example, removing 0 and 5 would return 1, as would removing [] and [12], while removing 1 and (1,2,3) would return 0.",
-
-
-
-
- "hexal.entry.everbook": "Everbook",
- "hexal.page.everbook.0": "Your Everbook is a strange space that your broken mind can now reach. There are many yous that seem to share this record, worlds and worlds of progress, beginning again and again. Your Everbook can store patterns paired with iotas like an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, though the fragile nature of your mind these days makes it best to route all access to your Everbook through an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$. Any world that you reach enlightenment in, you will have access to the entries you add to it now.",
- "hexal.page.everbook.everbook/read": "Takes the position of an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, as well as a Pattern as a key, and retrieves the iota at that key from your Everbook, storing it in the given $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$ if able.",
- "hexal.page.everbook.everbook/write": "Takes the position of an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, as well as a Pattern as a key, and stores the iota in that record at that key to your Everbook at the same key.",
- "hexal.page.everbook.everbook/delete": "Takes a pattern and removes the entry with that pattern key from your Everbook.",
- "hexal.page.everbook.everbook/toggle_macro.0": "Takes a pattern and marks that entry of your Everbook as a Pattern that when drawn by your hand will be treated as any other of Nature's patterns.",
- "hexal.page.everbook.everbook/toggle_macro.1": "When you draw the key of an Everbook entry that has been marked as a Pattern, if that entry is a list Nature will execute each element of the list as it would with $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, though it does not use up an evaluation. Attempting to mark an entry as a Pattern if it is non-existent or infinitely recursive will fail.",
-
- "hexal.entry.everbook_entries": "Everbook Entries",
- "hexal.page.everbook_entries.0": "Every page in this entry displays the pattern key for one of the entries of your $(l:hexal:patterns/everbook)$(action)Everbook/$.",
-
- "hexal.everbook_pattern_entry.header": "Stored Key: %d",
- "hexal.everbook_pattern_entry.macro_header": "Macro Key: %d"
-}
\ No newline at end of file
diff --git a/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json b/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
deleted file mode 100644
index 1ee9f40270c3..000000000000
--- a/projects/1.18-fabric/assets/hexal/hexal/packer-policy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
- "type": "indirect",
- "source": "projects/1.18/assets/hexal/hexal"
- }
-]
\ No newline at end of file
diff --git a/projects/1.18/assets/hexal/hexal/README.md b/projects/1.18/assets/hexal/hexal/README.md
deleted file mode 100644
index 31884981f3c4..000000000000
--- a/projects/1.18/assets/hexal/hexal/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### 总概
-
-```mermaid
-flowchart LR
- 1.18.2 -->|indirect| 1.18.2-fabric
-```
-
-```
-1.18.2
- └── 1.18.2-fabric
-```
-
-### 链接区域
-
-- [1.18.2](/projects/1.18/assets/hexal/hexal)
-- [1.18.2-fabric](/projects/1.18-fabric/assets/hexal/hexal)
\ No newline at end of file
diff --git a/projects/1.18/assets/hexal/hexal/lang/zh_cn.json b/projects/1.18/assets/hexal/hexal/lang/zh_cn.json
index 47c35ecc542a..0ab7eb5182f1 100644
--- a/projects/1.18/assets/hexal/hexal/lang/zh_cn.json
+++ b/projects/1.18/assets/hexal/hexal/lang/zh_cn.json
@@ -3,7 +3,7 @@
"entity.hexal.wisp.projectile": "弹射式咒灵",
"entity.hexal.wisp.ticking": "循环式咒灵",
- "entity.hexal.wisp.wandering": "游走咒灵",
+ "entity.hexal.wisp.wandering": "巡航中咒灵",
"hexcasting.mishap.non_player": "%s需由玩家执行",
"hexcasting.mishap.no_wisp": "%s需由咒灵执行",
diff --git a/projects/1.19/assets/hexal/hexal/lang/en_us.json b/projects/1.19/assets/hexal/hexal/lang/en_us.json
deleted file mode 100644
index b7b06c056422..000000000000
--- a/projects/1.19/assets/hexal/hexal/lang/en_us.json
+++ /dev/null
@@ -1,411 +0,0 @@
-{
- "block.hexal.slipway": "Slipway",
- "block.hexal.mediafied_storage": "Mote Nexus",
- "block.hexal.relay": "Relay",
-
- "entity.hexal.wisp.projectile": "Projectile Wisp",
- "entity.hexal.wisp.ticking": "Cyclic Wisp",
- "entity.hexal.wisp.wandering": "Wandering Wisp",
-
-
- "hexcasting.mishap.non_player": "%s expected to be cast by a player.",
- "hexcasting.mishap.no_wisp": "%s expected to be cast by a wisp.",
- "hexcasting.mishap.others_wisp": "That wisp is owned by %s, not you.",
- "hexcasting.mishap.no_links": "%s has no links.",
- "hexcasting.mishap.self_link": "Tried to link %s to itself.",
- "hexcasting.mishap.no_bound_storage": "No bound Mote Nexus.",
- "hexcasting.mishap.storage_unloaded": "Bound Mote Nexus is unloaded.",
- "hexcasting.mishap.excessive_reproduction": "Wisp %s tried to reproduce excessively; only 1 child per tick.",
-
- "hexcasting.mishap.invalid_value.class.linkable": "a linkable",
- "hexcasting.mishap.invalid_value.class.wisp": "a wisp",
- "hexcasting.mishap.invalid_value.class.consumable_entity": "a consumable entity",
- "hexcasting.mishap.invalid_value.class.wisp.casting": "a casting wisp",
- "hexcasting.mishap.invalid_value.class.type.block": "a block type",
- "hexcasting.mishap.invalid_value.class.type.item": "an item type",
- "hexcasting.mishap.invalid_value.class.type.entity": "an entity or entity type",
- "hexcasting.mishap.invalid_value.class.type.block.able": "an item type that has a block",
- "hexcasting.mishap.invalid_value.class.type.list.double": "a list of numbers",
- "hexcasting.mishap.invalid_value.class.gate": "a gate",
- "hexcasting.mishap.invalid_value.class.mote": "a mote",
- "hexcasting.mishap.invalid_value.class.moteentity.itemitemframe": "a mote, item entity, or item frame",
- "hexcasting.mishap.invalid_value.moteitemtype": "a mote or item type",
- "hexcasting.mishap.invalid_value.motemotelist": "a mote or list of motes",
- "hexcasting.mishap.invalid_value.motemotelistmotelistlist": "a mote, list of motes, or list of lists of motes",
- "hexcasting.mishap.invalid_value.veclist": "a vector or a list of vectors",
- "hexcasting.mishap.invalid_value.blockitementityitemframeitem": "a block, item entity, item frame, or mote",
- "hexcasting.mishap.invalid_value.entity.itemitemframe": "an item entity or item frame",
- "hexcasting.mishap.invalid_value.int.strictly_positive": "a strictly positive integer",
- "hexcasting.mishap.invalid_value.crafting_recipe": "a valid crafting recipe",
- "hexcasting.mishap.invalid_value.mote_duplicated": "each mote to appear only once",
- "hexcasting.mishap.invalid_value.cant_combine_motes": "two motes that can be combined",
- "hexcasting.mishap.invalid_value.mote_not_size_one": "a mote with no NBT data or of size one",
- "hexcasting.mishap.invalid_value.gate.offset": "an offset of at most %f blocks",
-
-
- "hexcasting.iota.hexal:iota_type": "Iota Type",
- "hexcasting.iota.hexal:entity_type": "Entity Type",
- "hexcasting.iota.hexal:item_type": "Item Type",
- "hexcasting.iota.hexal:gate": "Gate",
- "hexcasting.iota.hexal:item": "Item",
-
- "hexal.spelldata.entity_type": "Type",
- "hexal.spelldata.gate": "Gate %d",
- "hexal.spelldata.mote": "%s x%d",
-
- "hexcasting.spell.hexal:type/iota": "Classifier's Purification",
- "hexcasting.spell.hexal:type/entity": "Physician's Purification",
- "hexcasting.spell.hexal:type/block_item": "Sorter's Purification",
- "hexcasting.spell.hexal:type/item_held": "Sorter's Reflection",
-
- "hexcasting.spell.hexal:raycast/entity/type": "Scout's Exaltation",
- "hexcasting.spell.hexal:get_entity/type": "Entity Distillation: Type",
- "hexcasting.spell.hexal:zone_entity/type": "Zone Exaltation: Type",
- "hexcasting.spell.hexal:zone_entity/not_type": "Zone Exaltation: Not-Type",
-
- "hexcasting.spell.hexal:current_tick": "Timekeeper's Reflection",
- "hexcasting.spell.hexal:remaining_evals": "Thanatos' Reflection",
- "hexcasting.spell.hexal:breath": "Diver's Purification",
- "hexcasting.spell.hexal:health": "Nurse's Purification",
- "hexcasting.spell.hexal:armour": "Squire's Purification",
- "hexcasting.spell.hexal:toughness": "Boxer's Purification",
- "hexcasting.spell.hexal:light_level": "Lamplighter's Purification",
-
- "hexcasting.spell.hexal:factorial": "Factorial Purification",
- "hexcasting.spell.hexal:running/sum": "Running Sum Purification",
- "hexcasting.spell.hexal:running/mul": "Running Product Purification",
-
- "hexcasting.spell.hexal:everbook/read": "Mnemosyne's Gambit",
- "hexcasting.spell.hexal:everbook/write": "Elysium's Gambit",
- "hexcasting.spell.hexal:everbook/delete": "Lethe's Gambit",
- "hexcasting.spell.hexal:everbook/toggle_macro": "Brigh's Gambit",
-
- "hexcasting.spell.hexal:smelt": "Smelt",
- "hexcasting.spell.hexal:freeze": "Freeze",
- "hexcasting.spell.hexal:falling_block": "Falling Block",
- "hexcasting.spell.hexal:place_type": "Place Block II",
- "hexcasting.spell.hexal:particles": "Particles",
-
- "hexcasting.spell.hexal:interop/fabric_only/phase_block": "Phase Block",
-
- "hexcasting.spell.hexal:wisp/summon/projectile": "Summon Projectile Wisp",
- "hexcasting.spell.hexal:wisp/summon/ticking": "Summon Cyclic Wisp",
- "hexcasting.spell.hexal:wisp/self": "Identity Reflection",
- "hexcasting.spell.hexal:wisp/media": "Reservoir Reflection",
- "hexcasting.spell.hexal:wisp/hex": "Manager's Purification",
- "hexcasting.spell.hexal:wisp/owner": "Allegiance Distillation",
- "hexcasting.spell.hexal:wisp/move/target/set": "Pathfinder's Gambit",
- "hexcasting.spell.hexal:wisp/move/target/get": "Pathfinder's Reflection",
- "hexcasting.spell.hexal:wisp/move/speed/set": "Haste",
- "hexcasting.spell.hexal:wisp/move/speed/get": "Speedometer's Reflection",
- "hexcasting.spell.hexal:wisp/trigger/tick": "Delay Wisp",
- "hexcasting.spell.hexal:wisp/trigger/comm": "Listen",
- "hexcasting.spell.hexal:wisp/trigger/move": "Wander",
- "hexcasting.spell.hexal:wisp/consume": "Consume Wisp",
- "hexcasting.spell.hexal:wisp/seon/set": "Bind Wisp",
- "hexcasting.spell.hexal:wisp/seon/get": "Familiar's Reflection",
- "hexcasting.spell.hexal:wisp/transfer/allow": "Allow Transfer",
- "hexcasting.spell.hexal:wisp/transfer/disallow": "Disallow Transfer",
- "hexcasting.spell.hexal:wisp/transfer/others/allow": "Allow Transfer Others",
- "hexcasting.spell.hexal:wisp/transfer/others/disallow": "Disallow Transfer Others",
-
- "hexcasting.spell.hexal:get_entity/wisp": "Entity Purification: Wisp",
- "hexcasting.spell.hexal:zone_entity/wisp": "Zone Distillation: Wisp",
- "hexcasting.spell.hexal:zone_entity/not_wisp": "Zone Distillation: Non-Wisp",
-
- "hexcasting.spell.hexal:link": "Link",
- "hexcasting.spell.hexal:link/others": "Link Others",
- "hexcasting.spell.hexal:link/unlink": "Unlink",
- "hexcasting.spell.hexal:link/unlink/others": "Unlink Others",
- "hexcasting.spell.hexal:link/get": "Phonebook Purification",
- "hexcasting.spell.hexal:link/get_index": "Recognition Purification",
- "hexcasting.spell.hexal:link/num": "Popularity Reflection",
-
- "hexcasting.spell.hexal:link/comm/send": "Send Iota",
- "hexcasting.spell.hexal:link/comm/read": "Recitation Reflection",
- "hexcasting.spell.hexal:link/comm/num": "Postmaster's Reflection",
- "hexcasting.spell.hexal:link/comm/clear": "Unclogging Gambit",
- "hexcasting.spell.hexal:link/comm/open_transmit": "Open Transmit",
- "hexcasting.spell.hexal:link/comm/close_transmit": "Close Transmit",
-
- "hexcasting.spell.hexal:gate/make": "Gate's Reflection",
- "hexcasting.spell.hexal:gate/mark": "Gate's Opening",
- "hexcasting.spell.hexal:gate/unmark": "Gate's Dismissal",
- "hexcasting.spell.hexal:gate/mark/num/get": "Marked Purification",
- "hexcasting.spell.hexal:gate/mark/get": "Marked Distillation",
- "hexcasting.spell.hexal:gate/close": "Gate's Closing",
-
- "hexcasting.spell.hexal:mote/storage/bind": "Bind Storage",
- "hexcasting.spell.hexal:mote/storage/bind/temp": "Bind Storage - Temporary",
- "hexcasting.spell.hexal:mote/contained_type/get": "Stocktake Reflection",
- "hexcasting.spell.hexal:mote/contained/get": "Stocktake Purification",
- "hexcasting.spell.hexal:mote/storage/remaining_capacity/get": "Capacity Reflection",
- "hexcasting.spell.hexal:mote/storage/contains": "Containment Distillation",
- "hexcasting.spell.hexal:mote/make": "Mediafy Item",
- "hexcasting.spell.hexal:mote/return": "Return Item",
- "hexcasting.spell.hexal:mote/count/get": "Weighing Purification",
- "hexcasting.spell.hexal:mote/combine": "Stacking Distillation",
- "hexcasting.spell.hexal:mote/combinable": "Stacking Distillation II",
- "hexcasting.spell.hexal:mote/split": "Splitting Gambit",
- "hexcasting.spell.hexal:mote/storage/get": "Depot Purification",
- "hexcasting.spell.hexal:mote/storage/set": "Depot Gambit",
- "hexcasting.spell.hexal:mote/craft": "Craft",
- "hexcasting.spell.hexal:mote/villager/level/get": "Seniority Purification",
- "hexcasting.spell.hexal:mote/trade/get": "Offering Purification",
- "hexcasting.spell.hexal:mote/trade": "Trade",
- "hexcasting.spell.hexal:mote/use_on": "Use Item On",
-
- "hexcasting.spell.hexal:tick": "Accelerate",
-
-
-
- "hexcasting.spell.book.hexal:light_level": "Lamplighter's Prfn.",
-
- "hexcasting.spell.book.hexal:running/sum": "Running Sum Prfn.",
- "hexcasting.spell.book.hexal:running/mul": "Running Product Prfn.",
-
- "hexcasting.spell.book.hexal:get_entity/wisp": "Entity Prfn.: Wisp",
- "hexcasting.spell.book.hexal:zone_entity/wisp": "Zone Dstl.: Wisp",
- "hexcasting.spell.book.hexal:zone_entity/not_wisp": "Zone Dstl.: Non-Wisp",
-
- "hexcasting.spell.book.hexal:mote/storage/bind/temp": "Bind Storage - Temp.",
-
-
-
- "hexal.entry.slipways": "Slipways",
- "hexal.page.slipways": "I have heard tales of some geodes in which glowing portals called slipways lie. These slipways are regularly depicted with glowing sparks surrounding them that bear an incredible resemblance to the $(l:hexal:patterns/spells/wisps)$(thing)wisps/$ that I have heard tell of, which may be a connection to look into.",
-
- "hexal.entry.relay": "Relay",
- "hexal.page.relay.0": "Often I wish to $(l:hexal:patterns/spells/links#hexal:link)$(action)link/$ together multiple $(l:hexal:patterns/spells/wisps)$(thing)wisps/$, so that they can share media and information over long distances. However running long chains of wisps to transfer these over great distances is inconvenient, and has great upkeep costs. To resolve this issue I have made Relays. Since they are solid blocks rather than media constructs themselves, they are able to maintain the links without any upkeep costs at all.",
- "hexal.page.relay.1": "Any relays connected together will form a network, with any wisps connected to a relay network able to share media between each other as if they were directly connected. Further, any iota sent to one relay in the network is passed on to every other non-relay connected to the network. Relays have a range of 32 blocks (this means two relays can connect at a distance of 64 blocks). The colour of a network's links can be changed by right clicking on any relay with a colouriser.",
- "hexal.page.relay.2": "Relays have no owner, so if you want your wisps to $(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)$(action)transfer media/$ with them you must specifically allow them to do so.",
-
- "hexal.entry.hexal_basics": "Hexal Basic Patterns",
- "hexal.page.hexal_basics.current_tick": "Adds a number to the stack which seems to be related to how Nature represents time; If I cast the pattern, then cast the same pattern a second later, the number it adds has increased by 20.",
- "hexal.page.hexal_basics.remaining_evals": "Adds the number of evaluations a hex is still capable of to the stack. This is reduced by $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ and $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$.",
- "hexal.page.hexal_basics.breath": "Removes a Living entity from the stack and returns how much breath it has left (i.e., how close it is to drowning).",
- "hexal.page.hexal_basics.health": "Removes a Living entity from the stack and returns how much health it has left (i.e., how close it is to dying).",
- "hexal.page.hexal_basics.armour": "Removes a Living entity from the stack and returns how much armour it has.",
- "hexal.page.hexal_basics.toughness": "Removes a Living entity from the stack and returns how much toughness it has (another property of armour).",
- "hexal.page.hexal_basics.light_level": "Removes a position vector from the stack and returns the light level at that position.",
-
- "hexal.entry.hexal_maths": "Hexal Maths",
- "hexal.page.hexal_maths.factorial": "Takes a number from the stack and computes its factorial, for example inputting 4 would return 4*3*2*1=24.",
- "hexal.page.hexal_maths.running/sum": "Takes a list from the stack and computes its running sum, for example inputting [1,2,5] would return [1,3,8].",
- "hexal.page.hexal_maths.running/mul": "Takes a list from the stack and computes its running product, for example inputting [1,2,5] would return [1,2,10].",
-
- "hexal.entry.hexal_spell": "Hexal Spells",
- "hexal.page.hexal_spell.smelt.0": "Remove a location, item entity, or mote from the stack, then either smelt the block at the location or smelt all the items in the item entity or mote.",
- "hexal.page.hexal_spell.smelt.1": "Costs three quarters of an $(l:items/amethyst)$(item)Amethyst Dust/$ per item smelted (i.e. three quarters of an $(l:items/amethyst)$(item)Amethyst Dust/$ for smelting a block, 6 $(l:items/amethyst)$(item)Amethyst Dust/$ to smelt a stack of 8 items.)",
- "hexal.page.hexal_spell.freeze": "Freezes the block at a block location. For example, turns water into ice, and ice into packed ice. Costs one $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.hexal_spell.falling_block": "Remove a location from the stack, and force the block there to fall as if it were sand or gravel. Costs one and a half $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.hexal_spell.place_type": "Accepts an item type or mote and a location, and attempts to place a block of that item type at that location. If a mote was passed it will instead place from the record referenced by that mote. Costs an eighth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.hexal_spell.particles": "Accepts a location or a list of locations, and either creates a particle at the location, or creates lines of particles between the locations in the list. Costs two thousandths of an $(l:items/amethyst)$(item)Amethyst Dust/$ per location.",
-
- "hexal.entry.fabric_only_hexal": "Fabric-Only Hexal Spells",
- "hexal.page.fabric_only_hexal.interop/fabric_only/phase_block": "Takes a position and a number, and phases the block at that position out for that many seconds. Costs one ten-thousandth of an $(l:items/amethyst)$(item)Amethyst Dust/$ times the square of the time to phase out for.",
-
- "hexal.entry.wisps": "Wisps",
- "hexal.page.wisps.0": "I have discovered a way to create constructs from the media itself, visible to others and able to move and act somewhat on their own. They are able to cast hexes in my place, similar to how a $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$ evaluates patterns. They do take some of my attention to operate this however, and if too many try and execute at once I will only be able to run some of them, leaving the rest for the next instant.",
- "hexal.page.wisps.1": "When they are created I assign them a 'reservoir' of media that they have access to, which is taken from me and used to form the wisp. A wisp uses up part of its reservoir simply existing, and when it evaluates the pattern list it is carrying any costs incurred are removed from its reservoir. All wisps seem to take three $(l:items/amethyst)$(item)Amethyst Dust/$ to summon, in addition to whatever media is used for their reservoir.",
- "hexal.page.wisps.2": "Wisps are punished severely for attempting to hold onto another caster's truename, incurring a 20 times increase in the wisp's media upkeep per truename iota in any of the wisp's iota storage mechanisms.",
- "hexal.page.wisps.wisp/summon/projectile.0": "This wisp is summoned and launched like an arrow, casting its hex on whatever it hits. The initial stack when it executes will be a reference to itself, then a reference to what it hit.",
- "hexal.page.wisps.wisp/summon/projectile.1": "This could be a block position or an entity reference. The first vector accepted is the location the wisp will be summoned, while the direction of the second is the direction the wisp will be launched, and the second's magnitude seems to affect the wisp's velocity. The cost of the spell increases with the squared magnitude of velocity. The number accepted determines the wisp's reservoir in $(l:items/amethyst)$(item)Amethyst Dust/$. It loses approximately 3 tenths of an $(l:items/amethyst)$(item)Amethyst Dust/$ of media every second once summoned, and has a range of influence of 4 blocks.",
- "hexal.page.wisps.wisp/summon/ticking.0": "Similar to Summon Projectile Wisp, but with only one vector input for the position to summon the wisp. Cyclic wisps are unmoving once summoned, instead executing their hex up to 20 times each second.",
- "hexal.page.wisps.wisp/summon/ticking.1": "The first time it casts the stack will start with a reference to itself, from which point it will always start with the stack and ravenmind in the state they finished on the last cast. This wisp has a less stable form making it lose significantly more media every second, losing approximately seven tenths of an $(l:items/amethyst)$(item)Amethyst Dust/$ per second once summoned. It has a range of influence of 8 blocks.",
- "hexal.page.wisps.wisp/self": "Add a reference to the casting wisp to the stack. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
- "hexal.page.wisps.wisp/media": "Add the amount of media in the wisp's reservoir to the stack. This must be cast by a wisp; trying to cast it through a staff will fail rather spectacularly.",
- "hexal.page.wisps.wisp/hex": "Removes a reference to a wisp from the stack, and replaces it with the wisp's contained hex. Must be a wisp you summoned, or a wisp that has $(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)allowed$(action) transfer with the caster or caster's owner.",
- "hexal.page.wisps.wisp/owner": "Removes a reference to a wisp and an entity from the stack, and returns true if that entity owns that wisp, and false otherwise.",
- "hexal.page.wisps.wisp/move/target/set": "Removes a position vector from the stack; The Cyclic Wisp that executed this pattern will move in a straight line towards that position (colliding with terrain in its path) until it reaches it.",
- "hexal.page.wisps.wisp/move/target/get": "Adds to the stack the position vector that the executing Cyclic Wisp is currently moving towards.",
- "hexal.page.wisps.wisp/move/speed/set": "Removes a number from the stack, and sets the executing Cyclic Wisp's maximum speed to that number.",
- "hexal.page.wisps.wisp/move/speed/get": "Gets the executing Cyclic Wisp's current maximum speed.",
- "hexal.page.wisps.wisp/transfer/allow": "When two wisps are $(l:hexal:patterns/spells/links)$(thing)linked/$ together, they transfer media between each other until they are balanced. By default this only happens between wisps with the same owner. This takes an index, and explicitly allows the wisp to exchange media with the linkable at that index.",
- "hexal.page.wisps.wisp/transfer/disallow": "Correspondingly, this takes an index and disallows the wisp from exchanging media with the linkable at that index.",
- "hexal.page.wisps.wisp/transfer/others/allow": "This takes a wisp that you own and an index, and allows the wisp to exchange media with the linkable at that index.",
- "hexal.page.wisps.wisp/transfer/others/disallow": "This takes a wisp that you own and an index, and disallows the wisp from exchanging media with the linkable at that index.",
- "hexal.page.wisps.get_entity/wisp": "Transform the position on the stack into the wisp at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).",
- "hexal.page.wisps.zone_entity/wisp": "Take a position and maximum distance on the stack, and combine them into a list of wisps near the position.",
- "hexal.page.wisps.zone_entity/not_wisp": "Take a position and maximum distance on the stack, and combine them into a list of non-wisp entities near the position.",
- "hexal.page.wisps.wisp/trigger/tick": "Removes an integer from the stack, then delays the wisp's next cast until at least that many twentieth's of a second have passed. This and other triggers like it will halve the wisp's upkeep cost while it isn't casting.",
- "hexal.page.wisps.wisp/trigger/comm": "The wisp's next cast will not occur until it has received at least one $(l:hexal:patterns/spells/links#hexal:link/comm/send)$(action)communication/$.",
- "hexal.page.wisps.wisp/trigger/move": "The wisp's next cast will not occur until it has reached the position it is $(l:hexal:patterns/spells/wisps#hexal:wisp/move/target/set)$(action)navigating/$ towards.",
-
- "hexal.entry.links": "Links",
- "hexal.page.links.0": "These patterns outline a system that I have found for communicating information from one $(l:hexal:patterns/spells/wisps)$(thing)wisp/$ to another, among other things. There are a number of patterns related to creating these links, and a number of patterns related to sending and receiving iotas over a link once it is created. A wisp can have any number of links active, with each costing a negligible amount of media to maintain each twentieth of a second.",
- "hexal.page.links.1": "The links of a given linkable are indexed by the order they are created, with this number used by a number of patterns. \"Linkable\" is not its own type, but a shorthand for any type that can be coerced into a linkable (e.g. Entity -> Linkable entities, Vec -> Linkable blocks, ...). Links can span up to double the sum of the two linkable's ranges. To connect linkables over truly vast distances I would do well to look into building some $(l:hexal:items/relay)$(item)Relays/$.",
- "hexal.page.links.link": "Links the caster to the entity removed from the stack, which must be linkable. This costs one $(l:items/amethyst)$(item)Amethyst Shard/$.",
- "hexal.page.links.link/others": "May be evaluated by any casting instrument. Links two entities, which must be linkable. This costs one $(l:items/amethyst)$(item)Amethyst Shard/$.",
- "hexal.page.links.link/unlink": "Removes the link at the given index from the caster's links. This costs two $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.links.link/unlink/others": "Takes two linkables and unlinks them if they are linked. This costs two $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.links.link/get": "Removes an index from the stack, and adds the entity connected to the link at that index to the stack.",
- "hexal.page.links.link/get_index": "Removes an entity from the stack, and adds the index to the link to that entity to the stack (or -1 if the caster isn't linked to that entity).",
- "hexal.page.links.link/num": "Adds the number of links to the wisp to the stack.",
- "hexal.page.links.link/comm/send": "Removes an iota from the stack, then removes an index from the stack and sends the iota along the link at the given index. This costs one hundredth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.links.link/comm/read": "When something receives an iota along a link it is added to a queue. This pattern adds the first iota in the queue to the stack, removing it from the queue.",
- "hexal.page.links.link/comm/num": "Adds to the stack the number of unread iota in the caster's received iota queue.",
- "hexal.page.links.link/comm/clear": "Removes all unread iota from the caster's received iota queue.",
- "hexal.page.links.link/comm/open_transmit": "Similar to $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$, until drawing a $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Close Transmit/$ all patterns I draw are sent along the link whose index is at the top of the stack.",
- "hexal.page.links.link/comm/close_transmit": "When drawn after $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Open Transmit/$ I stop transmitting drawn patterns. If either $(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)Open Transmit/$ or $(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)Close Transmit/$ are executed by an intermediary caster such as a wisp, they will mishap.",
-
- "hexal.entry.tick": "Accelerate",
- "hexal.page.tick.tick.0": "Causes the block at the passed vector to perform its normal actions faster in the instant that this spell is cast.",
- "hexal.page.tick.tick.1": "Casting it costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$, plus a thousandth of an $(l:items/amethyst)$(item)Amethyst Dust/$ for each time it has previously been cast on that block in this hex.",
-
- "hexal.entry.gates": "Gates",
- "hexal.page.gates.0": "Gates are the latest in my long line of experimentation with breaking space to connect distant points and allow instantaneous travel. What gates allow me to do, that none of my previous attempts have succeeded at, is to do it $(o)efficiently$(). There are three varieties of gates that I have learned how to construct, all of which take a large amount of media to burn into reality, but are significantly cheaper to operate afterwards.",
- "hexal.page.gates.1": "Location Anchored Gates are bound to a specific position in the world, and send all that move through them to that position. Entity Anchored Gates are bound to a being that inhabits the world, and send those moving through them to the position of that being (plus an offset, chosen when burning in the gate).",
- "hexal.page.gates.2": "Drifting Gates are not bound at all, and can be used to send entities anywhere, however they lose efficiency as a result, and can only send entities to places that are in my ambit. When a gate is burnt in I will obtain on my stack a reference to that gate. With that gate reference, I can mark entities with that gate, and I can close the gate, which sends all entities marked with that gate to the gate's destination. Note that closing a gate doesn't use it up; once I have acquired a gate iota I can use it in perpetuity.",
- "hexal.page.gates.gate/make": "Adds a new gate iota to the stack. Any copy of this iota will point to the same numbered gate. Costs 32 $(l:items/amethyst)$(item)Charged Amethyst/$. If passed null, makes a Drifting Gate. If passed a vector, makes a Location Anchored Gate, If passed a vector and an entity, makes an Entity Anchored Gate.",
- "hexal.page.gates.gate/mark": "Consumes a gate iota and an entity. Marks that entity to be teleported the next time that gate is closed. Costs one twentieth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.gates.gate/unmark": "Consumes a gate iota and an entity. Unmarks that entity so that if it was marked with $(l:hexal:patterns/spells/gates#hexal:gate/mark)$(action) Gate's Opening/$ it will no longer be teleported the next time that gate is closed.",
- "hexal.page.gates.gate/mark/num/get": "Consumes a gate iota, returns how many entities are marked by that gate.",
- "hexal.page.gates.gate/mark/get": "Consumes a gate iota and an entity, returns whether that entity is marked by that gate.",
- "hexal.page.gates.gate/close": "Consumes a non-drifing gate iota, or a drifting gate iota and a position. Transports all the entities marked with the passed gate to the stored or given position, as relevant. Costs half an $(l:items/amethyst)$(item)Amethyst Shard/$, plus an $(l:items/amethyst)$(item)Amethyst Dust/$ per metre transported per entity, if the gate was drifting.",
-
- "hexal.entry.motes": "Motes",
- "hexal.page.motes.explanation.0": "This entry deals with bringing items into the media, making them referencable, countable, bringing order to them and to me and to my mind and-. A mediafied item iota (known as a mote) that has been added to the stack references a specific mote record in a Mote Nexus, since without something holding the thought-pattern of the item to this world it will wither away -away like my cognition is flensing-.",
- "hexal.page.motes.explanation.1": "Any duplicate of that first mote iota referencing a record references the same record, and any change to one affects them all for they all point to the one and only in the media. Splitting and merging and crafting and trading all affect all affect all-.",
- "hexal.page.motes.explanation.2": "A Mote Nexus is limited in some ways, but only some. It can contain 1023 different records, but each record can store items innumerable. I have yet to find any limit, I can merge and merge and merge forever and the record keeps growing and growing and growing...",
- "hexal.page.motes.mediafed_storage_recipe": "The Mote Nexus is built from the mind of a cartographer endlessly mapping the contents of the $(item)Shulker Box/$ that it has been flayed into.",
- "hexal.page.motes.mote/storage/bind": "Target a Mote Nexus block in the world and bind yourself to it, meaning all items you mediafy will be added to that nexus' capacity. Targeting any other block will unbind you from your currently bound nexus. Costs 32 $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.motes.mote/storage/bind/temp": "Target a Mote Nexus block in the world and bind to it for the remainder of this cast, temporarily overriding your primary binding. Costs one thousandth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.motes.mote/contained_type/get": "Gets all the types of motes contained in the currently bound Mote Nexus.",
- "hexal.page.motes.mote/contained/get": "Gets all the mote records from the currently bound Mote Nexus that match the passed item type or could be combined with the passed mote.",
- "hexal.page.motes.mote/storage/remaining_capacity/get": "Gets the remaining capacity of the bound Mote Nexus.",
- "hexal.page.motes.mote/storage/contains": "Returns true if the Mote Nexus at the given position contains a mote of the given type, or that would stack with the given mote, and false otherwise.",
- "hexal.page.motes.mote/make": "Convert an item in the world (either an item entity or an item frame) into a mote on your stack. If passed an existing mote instead adds the items from the entity to the mote. Mediafying an item costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.motes.mote/return": "Returns all the items from a mote to the world at the location of your choosing. If passed a number returns at most that many items. Costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.motes.mote/count/get": "Accepts a mote and returns the number of items in the record referenced by that mote.",
- "hexal.page.motes.mote/combine": "Combines two motes into one, merging the mote records they point to. Any pointers to the second mote will become null, any pointers to the first will remain. This can make motes holding many more items than I could carry in a stack naturally!",
- "hexal.page.motes.mote/combinable": "Returns true if the first mote can be combined with the items in the second argument (which can be a mote, item entity, or item frame), and false otherwise.",
- "hexal.page.motes.mote/split": "Splits the specified number of items off of the passed mote, creating a new mote pointing to a new mote record.",
- "hexal.page.motes.mote/storage/get": "Get the position of the Mote Nexus that contains the passed mote.",
- "hexal.page.motes.mote/storage/set": "Move the record referenced by the passed mote to the Mote Nexus at the passed position. This returns a new mote pointing to that record, and invalidates all previous motes pointing to that record.",
- "hexal.page.motes.mote/craft.0": "Takes a mote, list of motes, or list of list of motes. returns a list containing the results of crafting with those items. For example, the input Stone x128 would return [Stone Button x128].",
- "hexal.page.motes.mote/craft.1": "For more complex crafts, inserting nulls to space items properly will be required. A diamond pickaxe for example would require [[Diamond x2, Diamond x2, Diamond x2], [null, Stick x2], [null, Stick x2]] to get [Diamond Pickaxe x2]. Costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.motes.mote/villager/level/get": "Accepts a villager, returns a number representing that villager's seniority and skill at their craft.",
- "hexal.page.motes.mote/trade/get.0": "Accepts a villager and returns all of the trades that villager is offering. This is a list of lists of lists. Each trade comprises two lists, the cost, and the returned items. The returned items is a list containing the type of item, and the number of items.",
- "hexal.page.motes.mote/trade/get.1": "The cost is a list of one or two pairs of item and number of items required by the villager for the trade to be accepted. For example, one trade offer could be [[[Emerald, 1]], [Redstone, 1]].",
- "hexal.page.motes.mote/trade.0": "Accepts a villager, a list of motes to trade with to villager, and optionally an int for which of that villager's trades to attempt. (int? above means that you can pass 2 or 3 arguments, the optional 3rd being an int).",
- "hexal.page.motes.mote/trade.1": "If no trade number was passed, it will try each of the villager's trade until finding one that accepts the passed items. If a trade number was passed it will skip straight to using that trade. It will then repeat that trade for as long as it has enough items and the villager is still willing to trade. It will then return the items the villager traded away as a mote to the stack.",
- "hexal.page.motes.mote/trade.2": "The villager will find this trade to be a learnable experience as it would if trading with you directly, and will improve its skills and trade offerings commensurately. Costs a tenth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "hexal.page.motes.mote/use_on": "Accepts a mote, and either an entity, or a target block and a normal vector. Uses the item on the entity/block. The mote must either only have one item in it, or the items contained must be extremely simple (no NBT data).",
-
- "hexal.entry.great_wisps": "Great Wisp Spells",
- "hexal.page.great_wisps.wisp/consume.0": "Remove a wisp from the stack, and disassemble the wisp. The patterns contained are lost, but the media that it contained can be repurposed if this spell is cast by another wisp.",
- "hexal.page.great_wisps.wisp/consume.1": "Costs either an $(l:items/amethyst)$(item)Amethyst Shard/$ if the wisp is owned by you or has $(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)allowed$(action) transfer with the caster or caster's owner, or half again as much media as the consumed wisp contains if the wisp is owned by another and has now allowed it. Repurposing the media is not completely efficient, losing one twentieth of the consumed wisp's reserve in transfer.",
- "hexal.page.great_wisps.wisp/seon/set": "Bind one of my wisps closer to me; I may only have one bound wisp at a time, but whichever wisp is bound costs significantly less upkeep and increased range.",
- "hexal.page.great_wisps.wisp/seon/get": "Returns my currently bound wisp. A new wisp can only be bound when this returns null. (This is not a great spell, I have simply placed it here for convenience.)",
-
- "hexal.entry.types": "Types",
- "hexal.page.types.type/iota": "Remove an iota from the stack, and adds the type of that iota to the stack.",
- "hexal.page.types.type/entity": "Remove an entity from the stack, and adds the type of the entity at that location to the stack.",
- "hexal.page.types.type/block_item": "Remove a location, $(l:hexal:hexal.entry.motes)$(item)mote/$, item entity, or item frame from the stack, and adds the type of the block at that location, or type of that item, to the stack (e.g. Grass, Stone, Stick, etc.).",
- "hexal.page.types.type/item_held": "Adds the type of the item in the caster's offhand to the stack if there is one present, or the type of the casting hand otherwise.",
-
- "hexal.page.types.raycast/entity/type": "Remove an entity type or item type, a position, and a direction from the stack, and returns an entity or item entity of that type at that position if one exists.",
- "hexal.page.types.get_entity/type": "Remove an entity type or item type and a position from the stack, and returns an entity or item entity of that type at that position if one exists.",
- "hexal.page.types.zone_entity/type": "Remove an entity type or item type, a position, and a radius from the stack, and returns a list of all entities or item entities of that type within that radius of that position.",
- "hexal.page.types.zone_entity/not_type": "Remove an entity type or item type, a position, and a radius from the stack, and returns a list of all entities or item entities not of that type within that radius of that position.",
-
-
- "hexal.entry.everbook": "Everbook",
- "hexal.page.everbook.0": "Your Everbook is a strange space that your broken mind can now reach. There are many yous that seem to share this record, worlds and worlds of progress, beginning again and again. Your Everbook can store patterns paired with iotas like an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, though the fragile nature of your mind these days makes it best to route all access to your Everbook through an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$. Any world that you reach enlightenment in, you will have access to the entries you add to it now.",
- "hexal.page.everbook.everbook/read": "Takes the position of an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, as well as a Pattern as a key, and retrieves the iota at that key from your Everbook, storing it in the given $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$ if able.",
- "hexal.page.everbook.everbook/write": "Takes the position of an $(l:hexcasting:greatwork/akashiclib)$(item)Akashic Record/$, as well as a Pattern as a key, and stores the iota in that record at that key to your Everbook at the same key.",
- "hexal.page.everbook.everbook/delete": "Takes a pattern and removes the entry with that pattern key from your Everbook.",
- "hexal.page.everbook.everbook/toggle_macro.0": "Takes a pattern and marks that entry of your Everbook as a Pattern that when drawn by your hand will be treated as any other of Nature's patterns.",
- "hexal.page.everbook.everbook/toggle_macro.1": "When you draw the key of an Everbook entry that has been marked as a Pattern, if that entry is a list Nature will execute each element of the list as it would with $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, though it does not use up an evaluation. Attempting to mark an entry as a Pattern if it is non-existent or infinitely recursive will fail.",
-
- "hexal.entry.everbook_entries": "Everbook Entries",
- "hexal.page.everbook_entries.0": "Every page in this entry displays the pattern key for one of the entries of your $(l:hexal:patterns/everbook)$(action)Everbook/$.",
-
- "hexal.everbook_pattern_entry.header": "Stored Key: %d",
- "hexal.everbook_pattern_entry.macro_header": "Macro Key: %d",
-
-
-
- "_comment": "Config Entries",
- "text.autoconfig.hexal.title": "Hexal Configs",
- "text.autoconfig.hexal.category.common": "Common",
- "text.autoconfig.hexal.category.client": "Client",
- "text.autoconfig.hexal.category.server": "Server",
-
- "text.autoconfig.hexal.option.server.terrainGeneration": "Terrain Generation",
- "text.autoconfig.hexal.option.server.generateSlipwayGeodes": "Should generate Slipway Geodes?",
-
- "text.autoconfig.hexal.option.server.miscSpells": "Miscellaneous Spells",
- "text.autoconfig.hexal.option.server.miscSpells.fallingBlockCost": "Falling Block Cost",
- "text.autoconfig.hexal.option.server.miscSpells.freezeCost": "Freeze Cost",
- "text.autoconfig.hexal.option.server.miscSpells.particlesCost": "Particles Cost per Vector",
- "text.autoconfig.hexal.option.server.miscSpells.placeTypeCost": "Place Type Cost",
- "text.autoconfig.hexal.option.server.miscSpells.smeltCost": "Smelt Cost per Item",
-
- "text.autoconfig.hexal.option.server.wispSpells": "Wisp Spells",
- "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost": "Move Speed Set Base Cost",
- "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[0]": "Cost to increase the movement speed of a wisp by 1.",
- "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[1]": "This is the base cost, with greater increases being quadratically based on this.",
- "text.autoconfig.hexal.option.server.wispSpells.summonTickingWispCost": "Summon Cyclic Wisp Cost",
- "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispCost": "Summon Projectile Wisp Cost per Velocity Squared",
- "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispMinCost": "Summon Cyclic Wisp Minimum Cost",
-
- "text.autoconfig.hexal.option.server.wispUpkeep": "Wisp Upkeep",
- "text.autoconfig.hexal.option.server.wispUpkeep.tickingWispUpkeepPerTick": "Cyclic Wisp Upkeep per Tick",
- "text.autoconfig.hexal.option.server.wispUpkeep.projectileWispUpkeepPerTick": "Projectile Wisp Upkeep per Tick",
- "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount": "Untriggered Wisp Upkeep Discount",
- "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[0]": "The upkeep cost of untriggered cyclic wisps is multiplied by this number.",
- "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[1]": "Bounded from 0.0 to 1.0.",
- "text.autoconfig.hexal.option.server.wispUpkeep.linkUpkeepPerTick": "Link Upkeep per Tick",
- "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor": "Bound Wisp Discount Factor",
- "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[0]": "The upkeep cost of bound wisps is divided by this number.",
- "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[1]": "Bounded from 2.0 to 200.0.",
- "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor": "Storing Player Cost Scale Factor",
- "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[0]": "The multiplicative cost increase of wisps containing an iota of another player.",
- "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[1]": "Bounded from 1.0 to 200.0.",
-
- "text.autoconfig.hexal.option.server.linkSpells": "Link Spells",
- "text.autoconfig.hexal.option.server.linkSpells.linkCost": "Link Cost",
- "text.autoconfig.hexal.option.server.linkSpells.sendIotaCost": "Send Iota Cost",
- "text.autoconfig.hexal.option.server.linkSpells.unlinkCost": "Unlink Cost",
-
- "text.autoconfig.hexal.option.server.gateSpells": "Gate Spells",
- "text.autoconfig.hexal.option.server.gateSpells.makeGateCost": "Make Gate Cost",
- "text.autoconfig.hexal.option.server.gateSpells.markGateCost": "Mark Gate Cost",
- "text.autoconfig.hexal.option.server.gateSpells.closeGateCost": "Close Gate Cost",
-
- "text.autoconfig.hexal.option.server.itemSpells": "Item Spells",
- "text.autoconfig.hexal.option.server.itemSpells.bindStorageCost": "Bind Storage Cost",
- "text.autoconfig.hexal.option.server.itemSpells.bindTemporaryStorageCost": "Bind Temporary Storage Cost",
- "text.autoconfig.hexal.option.server.itemSpells.makeItemCost": "Make Item Cost",
- "text.autoconfig.hexal.option.server.itemSpells.returnItemCost": "Return Item Cost",
- "text.autoconfig.hexal.option.server.itemSpells.craftItemCost": "Craft Item Cost",
- "text.autoconfig.hexal.option.server.itemSpells.tradeItemCost": "Trade Item Cost",
- "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned": "Maximum Items Returned",
- "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[0]": "Maximum number of items that can be returned by Return Item.",
- "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[1]": "Bounded from 640 to 64,000.",
- "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage": "Maximum Num. Records in Mote Nexus",
- "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[0]": "Maximum number of records that can be stored in a Mote Nexus.",
- "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[1]": "Bounded from 128 to 16,384.",
-
-
- "text.autoconfig.hexal.option.server.greatSpells": "Great Spells",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost": "Consume Own Wisp Cost",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[0]": "Cost to consume a wisp you own,",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[1]": "or that doesn't fight back for some other reason.",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia": "Consume Other's Wisp Cost per Media",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[0]": "Cost to consume a wisp that fights back, this number is multiplied by",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[1]": "the media possessed by the wisp you are attempting to consume.",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[2]": "Bounded from 1.0 to 20.0.",
- "text.autoconfig.hexal.option.server.greatSpells.seonWispSetCost": "Bind Wisp Cost",
- "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost": "Tick Constant Cost",
- "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost.@Tooltip": "Constant cost to tick a block. Always applies.",
- "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked": "Tick Cost per Time Ticked",
- "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[0]": "Cost to tick a block per time that block has already been ticked.",
- "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[1]": "Added to the constant cost above.",
- "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb": "Tick Inverse Probability of Random Ticking",
- "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[0]": "The inverse probability of tick randomly ticking a block.",
- "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[1]": "Higher numbers make random ticks less likely, lower numbers make them more likely.",
- "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[2]": "Bound from 600 to 2100."
-}
diff --git a/projects/1.19/assets/hexal/hexal/lang/zh_cn.json b/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
deleted file mode 100644
index 545394ddddec..000000000000
--- a/projects/1.19/assets/hexal/hexal/lang/zh_cn.json
+++ /dev/null
@@ -1,411 +0,0 @@
-{
- "block.hexal.slipway": "质道",
- "block.hexal.mediafied_storage": "物元枢纽",
- "block.hexal.relay": "继链器",
-
- "entity.hexal.wisp.projectile": "弹射式咒灵",
- "entity.hexal.wisp.ticking": "循环式咒灵",
- "entity.hexal.wisp.wandering": "游走咒灵",
-
-
- "hexcasting.mishap.non_player": "%s需由玩家执行",
- "hexcasting.mishap.no_wisp": "%s需由咒灵执行",
- "hexcasting.mishap.others_wisp": "该咒灵为%s所有,而不是你",
- "hexcasting.mishap.no_links": "%s没有链接",
- "hexcasting.mishap.self_link": "试图将%s链接至其自身",
- "hexcasting.mishap.no_bound_storage": "未绑定物元枢纽",
- "hexcasting.mishap.storage_unloaded": "绑定的物元枢纽未被加载",
- "hexcasting.mishap.excessive_reproduction": "咒灵%s试图过度复制,每刻仅可召唤1个子咒灵",
-
- "hexcasting.mishap.invalid_value.class.linkable": "一个可链接的事物",
- "hexcasting.mishap.invalid_value.class.wisp": "一个咒灵",
- "hexcasting.mishap.invalid_value.class.consumable_entity": "一个可被拆解的实体",
- "hexcasting.mishap.invalid_value.class.wisp.casting": "一个施法咒灵",
- "hexcasting.mishap.invalid_value.class.type.block": "一个方块类型",
- "hexcasting.mishap.invalid_value.class.type.item": "一个物品类型",
- "hexcasting.mishap.invalid_value.class.type.entity": "一个实体或实体类型",
- "hexcasting.mishap.invalid_value.class.type.block.able": "一个可代表方块的物品类型",
- "hexcasting.mishap.invalid_value.class.type.list.double": "一个由数组成的列表",
- "hexcasting.mishap.invalid_value.class.gate": "一个门径",
- "hexcasting.mishap.invalid_value.class.mote": "一个物元",
- "hexcasting.mishap.invalid_value.class.moteentity.itemitemframe": "一个物元、物品实体或物品展示框",
- "hexcasting.mishap.invalid_value.moteitemtype": "一个物元或物品类型",
- "hexcasting.mishap.invalid_value.motemotelist": "一个物元或物元列表",
- "hexcasting.mishap.invalid_value.motemotelistmotelistlist": "一个物元、物元列表或由物元列表组成的列表",
- "hexcasting.mishap.invalid_value.veclist": "一个向量或由向量组成的列表",
- "hexcasting.mishap.invalid_value.blockitementityitemframeitem": "一个位置向量、物品实体、物品展示框或物品",
- "hexcasting.mishap.invalid_value.entity.itemitemframe": "一个物品实体或物品展示框",
- "hexcasting.mishap.invalid_value.int.strictly_positive": "一个严格大于零的整数",
- "hexcasting.mishap.invalid_value.crafting_recipe": "一个有效的合成配方",
- "hexcasting.mishap.invalid_value.mote_duplicated": "各物元仅出现一次",
- "hexcasting.mishap.invalid_value.cant_combine_motes": "两个可合并的物元",
- "hexcasting.mishap.invalid_value.mote_not_size_one": "一个不包含NBT数据或大小为1的物元",
- "hexcasting.mishap.invalid_value.gate.offset": "不超过%f格的偏移量",
-
-
- "hexcasting.iota.hexal:iota_type": "Iota类型",
- "hexcasting.iota.hexal:entity_type": "实体类型",
- "hexcasting.iota.hexal:item_type": "物品类型",
- "hexcasting.iota.hexal:gate": "门径",
- "hexcasting.iota.hexal:item": "物品",
-
- "hexal.spelldata.entity_type": "类型",
- "hexal.spelldata.gate": "门径 %d",
- "hexal.spelldata.mote": "%s x%d",
-
- "hexcasting.spell.hexal:type/iota": "分类学家之纯化",
- "hexcasting.spell.hexal:type/entity": "内科医师之纯化",
- "hexcasting.spell.hexal:type/block_item": "分拣员之纯化",
- "hexcasting.spell.hexal:type/item_held": "分拣员之精思",
-
- "hexcasting.spell.hexal:raycast/entity/type": "侦查员之提整",
- "hexcasting.spell.hexal:get_entity/type": "实体之馏化:类型",
- "hexcasting.spell.hexal:zone_entity/type": "区域之提整:类型",
- "hexcasting.spell.hexal:zone_entity/not_type": "区域之提整:非类型",
-
- "hexcasting.spell.hexal:current_tick": "计时员之精思",
- "hexcasting.spell.hexal:remaining_evals": "塔纳托斯之精思",
- "hexcasting.spell.hexal:breath": "潜水员之纯化",
- "hexcasting.spell.hexal:health": "护士之纯化",
- "hexcasting.spell.hexal:armour": "乡绅之纯化",
- "hexcasting.spell.hexal:toughness": "拳击手之纯化",
- "hexcasting.spell.hexal:light_level": "灯夫之纯化",
-
- "hexcasting.spell.hexal:factorial": "阶乘之纯化",
- "hexcasting.spell.hexal:running/sum": "前缀和之纯化",
- "hexcasting.spell.hexal:running/mul": "前缀积之纯化",
-
- "hexcasting.spell.hexal:everbook/read": "谟涅摩叙涅之策略",
- "hexcasting.spell.hexal:everbook/write": "极乐园之策略",
- "hexcasting.spell.hexal:everbook/delete": "忘川之策略",
- "hexcasting.spell.hexal:everbook/toggle_macro": "布莱之策略",
-
- "hexcasting.spell.hexal:smelt": "烧炼",
- "hexcasting.spell.hexal:freeze": "冻结",
- "hexcasting.spell.hexal:falling_block": "坠落方块",
- "hexcasting.spell.hexal:place_type": "放置方块,第二型",
- "hexcasting.spell.hexal:particles": "粒子",
-
- "hexcasting.spell.hexal:interop/fabric_only/phase_block": "暂消方块",
-
- "hexcasting.spell.hexal:wisp/summon/projectile": "召唤弹射式咒灵",
- "hexcasting.spell.hexal:wisp/summon/ticking": "召唤循环式咒灵",
- "hexcasting.spell.hexal:wisp/self": "自我之精思",
- "hexcasting.spell.hexal:wisp/media": "储罐之精思",
- "hexcasting.spell.hexal:wisp/hex": "经理之纯化",
- "hexcasting.spell.hexal:wisp/owner": "效忠之馏化",
- "hexcasting.spell.hexal:wisp/move/target/set": "开拓者之策略",
- "hexcasting.spell.hexal:wisp/move/target/get": "开拓者之精思",
- "hexcasting.spell.hexal:wisp/move/speed/set": "急速",
- "hexcasting.spell.hexal:wisp/move/speed/get": "速度计之精思",
- "hexcasting.spell.hexal:wisp/trigger/tick": "延迟咒灵",
- "hexcasting.spell.hexal:wisp/trigger/comm": "监听",
- "hexcasting.spell.hexal:wisp/trigger/move": "巡航",
- "hexcasting.spell.hexal:wisp/consume": "拆解咒灵",
- "hexcasting.spell.hexal:wisp/seon/set": "绑定咒灵",
- "hexcasting.spell.hexal:wisp/seon/get": "密友之精思",
- "hexcasting.spell.hexal:wisp/transfer/allow": "允许转送",
- "hexcasting.spell.hexal:wisp/transfer/disallow": "禁止转送",
- "hexcasting.spell.hexal:wisp/transfer/others/allow": "允许转送其他",
- "hexcasting.spell.hexal:wisp/transfer/others/disallow": "禁止转送其他",
-
- "hexcasting.spell.hexal:get_entity/wisp": "实体之纯化:咒灵",
- "hexcasting.spell.hexal:zone_entity/wisp": "区域之馏化:咒灵",
- "hexcasting.spell.hexal:zone_entity/not_wisp": "区域之馏化:非咒灵",
-
- "hexcasting.spell.hexal:link": "链接",
- "hexcasting.spell.hexal:link/others": "链接其他",
- "hexcasting.spell.hexal:link/unlink": "解链接",
- "hexcasting.spell.hexal:link/unlink/others": "解链接其他",
- "hexcasting.spell.hexal:link/get": "电话簿之纯化",
- "hexcasting.spell.hexal:link/get_index": "识别之纯化",
- "hexcasting.spell.hexal:link/num": "名气之精思",
-
- "hexcasting.spell.hexal:link/comm/send": "发送Iota",
- "hexcasting.spell.hexal:link/comm/read": "朗诵之精思",
- "hexcasting.spell.hexal:link/comm/num": "邮政局长之精思",
- "hexcasting.spell.hexal:link/comm/clear": "除塞之策略",
- "hexcasting.spell.hexal:link/comm/open_transmit": "开始发信",
- "hexcasting.spell.hexal:link/comm/close_transmit": "结束发信",
-
- "hexcasting.spell.hexal:gate/make": "门径之精思",
- "hexcasting.spell.hexal:gate/mark": "开启门径",
- "hexcasting.spell.hexal:gate/unmark": "解除门径",
- "hexcasting.spell.hexal:gate/mark/num/get": "标径之纯化",
- "hexcasting.spell.hexal:gate/mark/get": "标径之馏化",
- "hexcasting.spell.hexal:gate/close": "关闭门径",
-
- "hexcasting.spell.hexal:mote/storage/bind": "绑定储库",
- "hexcasting.spell.hexal:mote/storage/bind/temp": "绑定储库,临时型",
- "hexcasting.spell.hexal:mote/contained_type/get": "盘货之精思",
- "hexcasting.spell.hexal:mote/contained/get": "盘货之纯化",
- "hexcasting.spell.hexal:mote/storage/remaining_capacity/get": "容量之精思",
- "hexcasting.spell.hexal:mote/storage/contains": "容纳之馏化",
- "hexcasting.spell.hexal:mote/make": "媒质化物品",
- "hexcasting.spell.hexal:mote/return": "返还物品",
- "hexcasting.spell.hexal:mote/count/get": "衡数之纯化",
- "hexcasting.spell.hexal:mote/combine": "堆叠之馏化",
- "hexcasting.spell.hexal:mote/combinable": "堆叠之馏化,第二型",
- "hexcasting.spell.hexal:mote/split": "拆分之策略",
- "hexcasting.spell.hexal:mote/storage/get": "货场之纯化",
- "hexcasting.spell.hexal:mote/storage/set": "货场之策略",
- "hexcasting.spell.hexal:mote/craft": "合成",
- "hexcasting.spell.hexal:mote/villager/level/get": "资历之纯化",
- "hexcasting.spell.hexal:mote/trade/get": "报价之纯化",
- "hexcasting.spell.hexal:mote/trade": "交易",
- "hexcasting.spell.hexal:mote/use_on": "使用物品",
-
- "hexcasting.spell.hexal:tick": "加速",
-
-
-
- "hexcasting.spell.book.hexal:light_level": "灯夫之纯化",
-
- "hexcasting.spell.book.hexal:running/sum": "前缀和之纯化",
- "hexcasting.spell.book.hexal:running/mul": "前缀积之纯化",
-
- "hexcasting.spell.book.hexal:get_entity/wisp": "实体之纯化:咒灵",
- "hexcasting.spell.book.hexal:zone_entity/wisp": "区域之馏化:咒灵",
- "hexcasting.spell.book.hexal:zone_entity/not_wisp": "区域之馏化:非咒灵",
-
- "hexcasting.spell.book.hexal:mote/storage/bind/temp": "绑定储库,临时型",
-
-
-
- "hexal.entry.slipways": "质道",
- "hexal.page.slipways": "我曾听说过某些晶洞中有形如泛着光的传送门的东西,它们被称作“质道”。这些质道通常“被莹莹光点围绕”,和我所知的$(l:hexal:patterns/spells/wisps)$(thing)咒灵/$十分相似。也许它们之间的联系值得研究。",
-
- "hexal.entry.relay": "继链器",
- "hexal.page.relay.0": "我常希望有方法能$(l:hexal:patterns/spells/links#hexal:link)$(action)连接/$多个$(l:hexal:patterns/spells/wisps)$(thing)咒灵/$,以便远距共享媒质和信息。然而用咒灵远距中继相当不方便,常态消耗也很大。为解决这些问题,我制造出了继链器。它们是固态方块而非媒质构造体,也因此在维持链接时不会有常态消耗。",
- "hexal.page.relay.1": "相互连接的继链器会形成网络,与之连接的咒灵会共享媒质,类似于咒灵间直接相连。此外,传给网络内任一继链器的 iota 会发送给连接至网络的所有非继链器事物。继链器的工作范围是 32 格(也即两个继链器可链接的最远距离为 64 格)。手持染色剂右击任一继链器即可改变网络链接的颜色。",
- "hexal.page.relay.2": "继链器没有所有者,若要我的咒灵和其$(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)$(action)转送媒质/$,则必须先允许咒灵这么做。",
-
- "hexal.entry.hexal_basics": "咒法拓展:基础图案",
- "hexal.page.hexal_basics.current_tick": "返回一个数,这个数似乎与自然记录时间的方式有关。如果先绘制一遍此图案,在 1 秒后再绘制一遍,返回的数会增加 20。",
- "hexal.page.hexal_basics.remaining_evals": "将咒术在结束前还能运行图案的次数压入栈顶。结果会因$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$而减少。",
- "hexal.page.hexal_basics.breath": "移除栈顶实体,并返回其剩余氧气值(也即距其溺水还有多少氧气值可消耗)。",
- "hexal.page.hexal_basics.health": "移除栈顶实体,并返回其剩余生命值(也即距其死亡还有多少生命值可损失)。",
- "hexal.page.hexal_basics.armour": "移除栈顶实体,并返回其护甲值。",
- "hexal.page.hexal_basics.toughness": "移除栈顶实体,并返回其盔甲韧性(盔甲的另一属性)。",
- "hexal.page.hexal_basics.light_level": "移除栈顶位置向量,并返回该处光照强度。",
-
- "hexal.entry.hexal_maths": "咒法拓展:数学",
- "hexal.page.hexal_maths.factorial": "移除栈顶数,返回其阶乘。例如输入 4 则会返回 4 * 3 * 2 * 1 = 24。",
- "hexal.page.hexal_maths.running/sum": "接受栈顶列表,并计算其前缀和。例如输入 [1, 2, 5] 则会返回 [1, 3, 8]。",
- "hexal.page.hexal_maths.running/mul": "接受栈顶列表,并计算其前缀积。例如输入 [1, 2, 5] 则会返回 [1, 2, 10]。",
-
- "hexal.entry.hexal_spell": "咒法拓展:法术",
- "hexal.page.hexal_spell.smelt.0": "移除栈顶位置向量、物品实体或物元,然后烧炼该处方块,或同时烧炼物品实体或物元中所有物品。",
- "hexal.page.hexal_spell.smelt.1": "每烧炼一个物品消耗 3/4 个$(l:items/amethyst)$(item)紫水晶粉/$。(也即烧炼 1 个方块消耗 3/4 个$(l:items/amethyst)$(item)紫水晶粉/$,同时烧炼 8 个物品消耗 6 个$(l:items/amethyst)$(item)紫水晶粉/$。)",
- "hexal.page.hexal_spell.freeze": "冻结所给坐标处方块。例如,水变为冰,冰变为浮冰。消耗 1 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.hexal_spell.falling_block": "移除栈顶位置向量,并使该处方块下落,就像沙子和沙砾一样。消耗 3/2 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.hexal_spell.place_type": "接受一个物品类型或物元和一个位置向量,并会尝试在该位置处放置所给物品类型的方块。若传入物元,则会从对应的物元记录中放置。消耗 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.hexal_spell.particles": "接受一个位置向量或一个由位置向量组成的列表,并在所给位置处生成粒子,或在所给列表各位置之间生成粒子连线。每个位置向量消耗 1/500 个$(l:items/amethyst)$(item)紫水晶粉/$。",
-
- "hexal.entry.fabric_only_hexal": "咒术拓展:Fabric 独占法术",
- "hexal.page.fabric_only_hexal.interop/fabric_only/phase_block": "接受一个位置向量和一个数,并使所给位置上方块的体积消失所给数秒。消耗 1/1000 与消失时间的平方的乘积个$(l:items/amethyst)$(item)紫水晶粉/$。",
-
- "hexal.entry.wisps": "咒灵",
- "hexal.page.wisps.0": "我发现了一种能仅以媒质创造法术构造体的方式,它们能被他人看见,能移动,也有一定自主行动能力。它们能代替我施法,和$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$类似。不过保持它们的形态确实要耗费我的注意力,而且如果太多咒灵要同时施法,我也只能同时运行其中一部分,剩下的则要稍作延迟。",
- "hexal.page.wisps.1": "创造咒灵时需要给它们分配它们能访问的一块媒质“储库”(后称媒质库)。这些媒质由我提供,用于形成咒灵本身。咒灵会常态消耗媒质,而当其运行其携带的图案列表时,其中各操作要消耗的媒质也会从媒质库中抽取。所有种类的咒灵似乎都需要 3 个$(l:items/amethyst)$(item)紫水晶粉/$才能召唤,并同时消耗等同于其媒质库容量的媒质。",
- "hexal.page.wisps.2": "试图持有其他施法者真名的咒灵会被严厉惩罚,其所有 iota 存储位置中每有一个真名都会使其常态消耗增加 20 倍。",
- "hexal.page.wisps.wisp/summon/projectile.0": "这种咒灵被召唤时会像箭一样被弹射出去,而后会在其击中的事物上施放咒术。其初始栈包含一个代表其自身的 iota 和一个代表其击中的事物的 iota。",
- "hexal.page.wisps.wisp/summon/projectile.1": "第二个 iota 可以是一个位置向量,也可以是一个实体。第二个向量的模似乎会影响咒灵的速度,此法术消耗的媒质量会以速度向量模的平方增加。接受的数代表咒灵媒质库的容量(以$(l:items/amethyst)$(item)紫水晶粉/$计)。召唤后它每秒会消耗 3/10 个$(l:items/amethyst)$(item)紫水晶粉/$,且其影响区域半径为 4 格。",
- "hexal.page.wisps.wisp/summon/ticking.0": "此法术与召唤弹射式咒灵类似,但只会接受一个代表召唤位置的向量。循环式咒灵一经召唤就不再移动,并会以每秒 20 次的频率施法。",
- "hexal.page.wisps.wisp/summon/ticking.1": "其初始栈包含一个代表其自身的 iota,而后每次施法开始时会保留上一次施法后的栈和渡鸦之思。这种咒灵的形态较不稳定,常态消耗率远大于弹射式咒灵。其每秒消耗 7/10 个$(l:items/amethyst)$(item)紫水晶粉/$。其影响区域半径为 8 格。",
- "hexal.page.wisps.wisp/self": "返回一个代表施法咒灵的 iota。此操作必须由咒灵执行。尝试用法杖执行会招致可怖的事故。",
- "hexal.page.wisps.wisp/media": "将咒灵媒质库中剩余的媒质量压入栈顶。此操作必须由咒灵执行。尝试用法杖执行会招致可怖的事故。",
- "hexal.page.wisps.wisp/hex": "移除一个咒灵实体,并返回该咒灵所携带的咒术。所给 iota 必须代表由我召唤的咒灵,或$(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)允许$(action)与施法者或其所有者转送的咒灵。",
- "hexal.page.wisps.wisp/owner": "移除一个咒灵实体和一个实体,若该实体是该咒灵的所有者,返回 True;否则返回 False。",
- "hexal.page.wisps.wisp/move/target/set": "移除栈顶位置向量。运行此图案的循环式咒灵会沿直线移动至所给位置(会与途中地形地貌等碰撞),直至抵达该位置处。",
- "hexal.page.wisps.wisp/move/target/get": "返回循环式咒灵当前目标位置的位置向量。",
- "hexal.page.wisps.wisp/move/speed/set": "移除栈顶数,并将循环式咒灵自身的速度上限设为该数。",
- "hexal.page.wisps.wisp/move/speed/get": "返回循环式咒灵自身当前速度上限。",
- "hexal.page.wisps.wisp/transfer/allow": "当两咒灵$(l:hexal:patterns/spells/links)$(thing)连接/$时,它们会相互转送媒质,直至两者平衡。默认状况下,仅所有者相同的咒灵会自发转送。此操作接受一个编号数,并显式允许咒灵与该编号链接另一端的事物交换媒质。",
- "hexal.page.wisps.wisp/transfer/disallow": "相应地,此操作接受一个编号数,并禁止咒灵与该编号链接另一端的事物交换媒质。",
- "hexal.page.wisps.wisp/transfer/others/allow": "接受一个咒灵实体(所有者需是我)和一个编号数,并允许该咒灵与该编号链接另一端的事物交换媒质。",
- "hexal.page.wisps.wisp/transfer/others/disallow": "接受一个咒灵实体(所有者需是我)和一个编号数,并禁止该咒灵与该编号链接另一端的事物交换媒质。",
- "hexal.page.wisps.get_entity/wisp": "将栈顶位置向量变为该处咒灵(若无则返回 $(l:casting/influences)$(thing)Null/$)。",
- "hexal.page.wisps.zone_entity/wisp": "从栈顶获取位置及最大距离,返回该位置给定距离范围内所有咒灵的列表。",
- "hexal.page.wisps.zone_entity/not_wisp": "从栈顶获取位置及最大距离,返回该位置给定距离范围内所有非咒灵实体的列表。",
- "hexal.page.wisps.wisp/trigger/tick": "移除栈顶数,然后将咒灵下一次施法时刻更改为延迟所给数个 1/20 秒。所有可用于延迟咒灵施法的操作均能使咒灵的常态消耗减半,直到下一次施法为止。",
- "hexal.page.wisps.wisp/trigger/comm": "咒灵将在其收到至少一次$(l:hexal:patterns/spells/links#hexal:link/comm/send)$(action)通信/$后才进行下一次施法。",
- "hexal.page.wisps.wisp/trigger/move": "咒灵将在其抵达被$(l:hexal:patterns/spells/wisps#hexal:wisp/move/target/set)$(action)导向/$的位置后才进行下一次施法。",
-
- "hexal.entry.links": "链接",
- "hexal.page.links.0": "这些图案大致构建了一套能在$(l:hexal:patterns/spells/wisps)$(thing)咒灵/$间以及咒灵和其他事物间传递信息的系统。有若干图案与创建链接有关,也有些图案和通过链接发送和接收 iota 的方式相关。一个咒灵能同时维持任意数目的链接,每条每 1/20 秒常态消耗极少量媒质。",
- "hexal.page.links.1": "可链接事物会以创建顺序为这些链接编号,此编号可用作图案的参数。介绍中的“可链接事物”(Linkable)不是具体参数类型,而是指代所有可被转换为可链接事物的类型。(例如,Entity -> Linkable entity,Vec -> Linkable block 等等。)链接仅会在两可链接事物影响范围之和的两倍内起效。若要跨更远的距离连接两者,应该转而使用$(l:hexal:items/relay)$(item)继链器/$。",
- "hexal.page.links.link": "将施法者链接至栈顶实体,且实体必须为可链接的。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
- "hexal.page.links.link/others": "可在任意施法器件上运行。将两个实体链接,且两实体必须均为可链接的。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$。",
- "hexal.page.links.link/unlink": "断开施法者的编号为所给数的链接。消耗 2 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.links.link/unlink/others": "接受两个可链接事物,若其间存在链接,则会将其断开。消耗 2 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.links.link/get": "移除栈顶数,并返回对应编号的链接所连的实体。",
- "hexal.page.links.link/get_index": "移除栈顶实体,并返回自身与该实体相连的链接的编号。若施法者与其无链接则返回 -1。",
- "hexal.page.links.link/num": "返回自身的链接个数。",
- "hexal.page.links.link/comm/send": "移除栈顶元素与数,而后向编号为该数的链接发送该元素。消耗 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.links.link/comm/read": "当接收到 iota 时其将被加至一个队列中。此图案会将该队列中的首个 iota 压入栈顶并移出队列。",
- "hexal.page.links.link/comm/num": "返回接收队列中未读 iota 的个数。",
- "hexal.page.links.link/comm/clear": "移除施法者接收队列中所有未读 iota。",
- "hexal.page.links.link/comm/open_transmit": "与$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$类似。在绘制$(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)结束发信/$后,所有我绘制的图案会通过编号为栈顶数的链接发送出去。",
- "hexal.page.links.link/comm/close_transmit": "在$(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)开始发信/$之后绘制,意味着发信过程结束。如果$(l:hexal:patterns/spells/links#hexal:link/comm/open_transmit)$(action)开始发信/$或$(l:hexal:patterns/spells/links#hexal:link/comm/close_transmit)$(action)结束发信/$是由中介施法者(如咒灵)运行的话,则会产生事故。",
-
- "hexal.entry.tick": "加速",
- "hexal.page.tick.tick.0": "在法术运行的那一刻,加速所给位置处方块的运作。",
- "hexal.page.tick.tick.1": "施放此法术要消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$,在整个咒术内,每对同一方块加速一次,额外消耗 1/1000 个$(l:items/amethyst)$(item)紫水晶粉/$。",
-
- "hexal.entry.gates": "门径",
- "hexal.page.gates.0": "门径是我有关空间远距连接和瞬间移动的长时间研究的最新成果。与我之前的试验不同的是,它能$(o)极为高效地$()完成传送任务。我已学会构造三种不同的门径,所有三种都需要巨量的媒质才能烧入现实,但后续的操作则相较之下极为便宜。",
- "hexal.page.gates.1": "位置锚定门径与世界上某一位置绑定,会将所有穿过它们的事物送至该位置。实体锚定门径则与世界上某一实体绑定,会将所有穿过它们的事物送至该实体处(可附带一个偏移向量,需在烧入门径时提供)。",
- "hexal.page.gates.2": "未锚定门径没有与任何事物绑定,可用于将实体送至任意位置。但其效率也会相应降低,只能将实体送至我所能影响的范围内的位置。门径烧入成功后,我的栈上便会出现一个代表其的 iota。我能以此 iota 标记实体,如此当我关闭门径时,所有被标记的实体就会被传送至门径终点。需注意关闭门径不会将其消耗,获得门径 iota 后便能永久使用。",
- "hexal.page.gates.gate/make": "压入一个新的门径。所有此 iota 的复制品都指向同一个门径。消耗 32 个$(l:items/amethyst)$(item)充能紫水晶/$。若传入 Null,则构造未锚定门径;若传入一个向量,则构造位置锚定门径;若传入一个向量和一个实体,则构造实体锚定门径。",
- "hexal.page.gates.gate/mark": "移除栈顶实体与门径,并标记该实体,被标记的实体会在对应门径关闭时被传送。消耗 1/20 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.gates.gate/unmark": "移除栈顶门径与实体,并取消该实体的标记。若其已被$(l:hexal:patterns/spells/gates#hexal:gate/mark)$(action)开启门径/$标记,下一次门径关闭时其将不会被传送。",
- "hexal.page.gates.gate/mark/num/get": "移除栈顶门径,返回被该门径标记的实体的数量。",
- "hexal.page.gates.gate/mark/get": "移除栈顶门径和实体,判断该实体是否被该门径标记。",
- "hexal.page.gates.gate/close": "移除栈顶锚定门径,或未锚定门径与位置向量。将所有被所给门径标记的实体传送至其锚定位置或所给位置。消耗 1/2 个$(l:items/amethyst)$(item)紫水晶碎片/$。若为未锚定门径,则每个实体每传送 1 格额外消耗 1 个$(l:items/amethyst)$(item)紫水晶粉/$。",
-
- "hexal.entry.motes": "物元",
- "hexal.page.motes.explanation.0": "此条目主要记述如何将物品本身拉进媒质,使其可被引用,可被计数,并将秩序带给它们也带给我也带给我的意识也带给——。压入栈中的媒质化物品 iota(称为“物元”)都代表着物元枢纽中的某个物元记录。这是因为假如没有东西承载物品中的思维模式,物品本身就会消亡——就像我的意识的剥脱——",
- "hexal.page.motes.explanation.1": "所有物元 iota 的复制版本都指向同一物元记录,也正因此,对其中一个做出的修改将同步到所有复制版本中去。拆分与合并与合成与交易都影响所有影响所有——",
- "hexal.page.motes.explanation.2": "物元枢纽也有部分限制,但也只是部分。它最多能存放 1023 条记录,但每条记录中物品的个数则没有上限。我还没发现任何能证明上限存在的证据,我能合并再合并再合并再合并直到永远记录增长然后增长然后增……",
- "hexal.page.motes.mediafed_storage_recipe": "物元枢纽是用制图师的意识制成的,它会永不中断地标记和映射对应$(item)潜影盒/$中的物品。",
- "hexal.page.motes.mote/storage/bind": "锚定一个物元枢纽,并将自身与其绑定,所有我媒质化的物品都会存入该枢纽。若锚定至其他枢纽则会自动解开与原枢纽的绑定。消耗 32 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.motes.mote/storage/bind/temp": "锚定一个物元枢纽,在当前咒术结束前将自身与其绑定。其在本咒术内会暂时覆盖永久性绑定的枢纽。消耗 1/1000 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.motes.mote/contained_type/get": "获取当前绑定的枢纽中所有物元的类型。",
- "hexal.page.motes.mote/contained/get": "获取当前绑定的枢纽中所有和所给物品类型对应的,或所有可与所给物元合并的物元。",
- "hexal.page.motes.mote/storage/remaining_capacity/get": "获取所绑定的枢纽剩余的空间。",
- "hexal.page.motes.mote/storage/contains": "若所给位置的物元枢纽中包含所给类型的物元,或包含可与所给物元合并的物元,则返回 True,否则返回 False。",
- "hexal.page.motes.mote/make": "将世界中的物品(物品实体、物品展示框)转换为物元。若传入物元,则会将所给物体与该物元合并。媒质化 1 份物品消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.motes.mote/return": "将物元中所有物品返还到所给位置处。若传入数,则最多返还该数个物品。消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.motes.mote/count/get": "接受物元,并返回该物元对应的记录中物品的个数。",
- "hexal.page.motes.mote/combine": "将两个物元合并,也同时合并两者所指向的物元记录。指向第二条记录的物元会变为 Null,指向第一条的物元不会。如此就能在栈中放下远超我随身携带量的物品了!",
- "hexal.page.motes.mote/combinable": "若第一参数物元可与第二参数(物元、物品实体、物品展示框)中物品合并,返回 True,否则返回 False。",
- "hexal.page.motes.mote/split": "从所给物元中拆分出所给数个物品,以此创建一条物元记录并返回对应物元 iota。",
- "hexal.page.motes.mote/storage/get": "获取存储所给物元的枢纽的位置。",
- "hexal.page.motes.mote/storage/set": "将所给物元对应的记录转移到所给位置处的物元枢纽中,并会返回指向新记录的物元 iota,且所有指向原记录的物元均会失效。",
- "hexal.page.motes.mote/craft.0": "接受物元,物元组成的列表,或物元列表组成的列表。并返回包含以对应物品合成所得产物的列表。例如,输入“石头 x128”会返回 [石头按钮 x128]。",
- "hexal.page.motes.mote/craft.1": "更为复杂的合成表则需要在对应位置插入 Null。例如合成钻石镐,会需要 [[钻石 x2, 钻石 x2, 钻石 x2], [Null, 木棍 x2], [Null, 木棍 x2]],并返回 [钻石镐 x2]。消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.motes.mote/villager/level/get": "接受代表村民的 iota,并返回代表该村民在其职业上熟练度的数。",
- "hexal.page.motes.mote/trade/get.0": "接受代表村民的 iota,并返回该村民所有的交易选项,返回结果是列表的列表的列表。每项交易由两个列表组成,内容分别为给出的物品和换得的物品。换得物品列表由对应的物品类型和可换得物品的数量组成。",
- "hexal.page.motes.mote/trade/get.1": "给出物品列表则由一对或两对物品类型与对应数量组成。例如,一项交易可能形如 [[[绿宝石, 1]], [红石粉, 1]]。",
- "hexal.page.motes.mote/trade.0": "接受代表村民的 iota,由物元组成的列表(用于交易),和代表交易次序的整数(可选)。(上方的 int? 表示可传入 2 或 3 个参数,可选的第三个参数需为整数。)",
- "hexal.page.motes.mote/trade.1": "若不输入次序数,则会依次寻找交易选项,直到找到接受所给物品的选项为止。若输入,则会直接跳转至该交易选项处。这之后便会一直进行交易,直到物品耗尽或是村民停用该项为止。交易结束后会返回由所获得的物品组成的物元。",
- "hexal.page.motes.mote/trade.2": "村民会将这些交易视作直接与我进行,且会获得经验,并以此精进技艺并改进交易选项。消耗 1/10 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "hexal.page.motes.mote/use_on": "接受一个物元和一个实体或位置向量和法向量。并对实体或所给位置处方块使用物元中物品。物元本身需只能含有一个物品,除非其中物品极为简单(无 NBT 数据)。",
-
- "hexal.entry.great_wisps": "卓越咒灵法术",
- "hexal.page.great_wisps.wisp/consume.0": "移除栈顶咒灵实体,并拆解该咒灵。咒灵携带的图案不可追回,但是如果此法术是由其他咒灵施放的,那么被拆解咒灵所剩的媒质还可再加利用。",
- "hexal.page.great_wisps.wisp/consume.1": "若咒灵的所有者是我,或其被$(l:hexal:patterns/spells/wisps#hexal:wisp/transfer/allow)允许$(action)与施法者或其所有者转送,消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片/$;若咒灵的所有者是他人且未被允许转送,则消耗该咒灵所拥有的媒质量的一半。媒质的再利用效率不算特别高,会在传输过程中损耗掉被拆解咒灵媒质库容量的 1/20。",
- "hexal.page.great_wisps.wisp/seon/set": "在我的咒灵和我之间建立更紧密的联系。我只能同时绑定一个咒灵,但绑定咒灵的常态消耗将大大减少。",
- "hexal.page.great_wisps.wisp/seon/get": "返回我当前绑定的咒灵。(这并不是卓越法术,记载于此是为了方便查找。)",
-
- "hexal.entry.types": "类型",
- "hexal.page.types.type/iota": "移除栈顶元素,并返回该 iota 的类型。",
- "hexal.page.types.type/entity": "移除栈顶实体,并返回该实体的类型。",
- "hexal.page.types.type/block_item": "移除栈顶位置向量,$(l:hexal:hexal.entry.motes)$(item)物元/$,物品实体或物品展示框,并返回该处方块的类型或对应物品类型。(如草方块、石头、木棍等。)",
- "hexal.page.types.type/item_held": "若施法者副手中有物品,则将其类型压入栈顶;若无,则压入施法用手中物品的类型。",
-
- "hexal.page.types.raycast/entity/type": "移除栈顶实体类型(或物品类型)、位置向量和方向向量,返回该位置朝向该方向处符合该类型的实体或物品实体(若有)。",
- "hexal.page.types.get_entity/type": "从栈顶获取实体类型(或物品类型)和位置向量,返回该位置符合该类型的实体或物品实体(若有)。",
- "hexal.page.types.zone_entity/type": "从栈顶获取实体类型(或物品类型)、位置向量及最大距离,返回该位置给定距离范围内所有符合给定类型的实体或物品实体的列表。",
- "hexal.page.types.zone_entity/not_type": "从栈顶获取实体类型(或物品类型)、位置向量及最大距离,返回该位置给定距离范围内所有不符合给定类型的实体或物品实体的列表。",
-
-
- "hexal.entry.everbook": "永恒之书",
- "hexal.page.everbook.0": "永恒之书是一片奇特的空间,如今已对我残破的意识开放。似乎有许多个我共用所有永恒之书的记录,共享不同世界的研究成果,又不断重新研究。永恒之书能够将图案和 iota 对应并存储,和$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$类似。不过考虑到如今我意识的脆弱,可能还是把永恒之书的访问权限全部交给$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$比较好。只要在某个世界中获得启迪,我就能在那个世界中访问永恒之书的所有内容。",
- "hexal.page.everbook.everbook/read": "接受指向$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$的位置向量,与一个作为键的图案,并返回永恒之书中对应键处的 iota,若能存储则同时会将其存至给定的$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$中。",
- "hexal.page.everbook.everbook/write": "接受指向$(l:hexcasting:greatwork/akashiclib)$(item)阿卡夏记录/$的位置向量,与一个作为键的图案,并将阿卡夏记录中该图案对应的 iota 以同一图案存至永恒之书中。",
- "hexal.page.everbook.everbook/delete": "接受一个图案,并移除永恒之书中该图案对应的条目。",
- "hexal.page.everbook.everbook/toggle_macro.0": "接受一个图案,并以该图案标记永恒之书中对应条目,使得绘制该图案所产生的效果和自然创造的其他图案相仿。",
- "hexal.page.everbook.everbook/toggle_macro.1": "当绘制被标记的永恒之书条目所对应的图案时,如果对应条目存有一个列表,则自然会如同$(l:patterns/meta#hexcasting:eval)$(action)赫尔墨斯之策略/$一样依次执行列表中各元素,但不会消耗递归层数。试图将不存在的条目或是会无限递归的条目标记为图案则会失败。",
-
- "hexal.entry.everbook_entries": "永恒之书条目",
- "hexal.page.everbook_entries.0": "此条目中每一页都会显示我$(l:hexal:patterns/everbook)$(action)永恒之书/$中某一条目对应的图案键。",
-
- "hexal.everbook_pattern_entry.header": "存储键:%d",
- "hexal.everbook_pattern_entry.macro_header": "宏键:%d",
-
-
-
- "_comment": "Config Entries",
- "text.autoconfig.hexal.title": "咒法拓展(Hexal)配置",
- "text.autoconfig.hexal.category.common": "通用",
- "text.autoconfig.hexal.category.client": "客户端",
- "text.autoconfig.hexal.category.server": "服务端",
-
- "text.autoconfig.hexal.option.server.terrainGeneration": "世界生成",
- "text.autoconfig.hexal.option.server.generateSlipwayGeodes": "是否生成质道晶洞?",
-
- "text.autoconfig.hexal.option.server.miscSpells": "杂项法术",
- "text.autoconfig.hexal.option.server.miscSpells.fallingBlockCost": "“坠落方块”媒质消耗",
- "text.autoconfig.hexal.option.server.miscSpells.freezeCost": "“冻结”媒质消耗",
- "text.autoconfig.hexal.option.server.miscSpells.particlesCost": "“粒子”每个向量的媒质消耗",
- "text.autoconfig.hexal.option.server.miscSpells.placeTypeCost": "“放置方块,第二型”媒质消耗",
- "text.autoconfig.hexal.option.server.miscSpells.smeltCost": "“烧炼”每个物品的媒质消耗",
-
- "text.autoconfig.hexal.option.server.wispSpells": "咒灵法术",
- "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost": "“急速”基础媒质消耗",
- "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[0]": "使咒灵的移动速度增加1所需的媒质量。",
- "text.autoconfig.hexal.option.server.wispSpells.moveSpeedSetCost.@Tooltip[1]": "这个数值是基础媒质消耗,若单次增加更多,实际消耗量依照二次函数变化。",
- "text.autoconfig.hexal.option.server.wispSpells.summonTickingWispCost": "“召唤循环式咒灵”媒质消耗",
- "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispCost": "“召唤弹射式咒灵”每速度平方的媒质消耗",
- "text.autoconfig.hexal.option.server.wispSpells.summonProjectileWispMinCost": "“召唤循环式咒灵”媒质消耗下限",
-
- "text.autoconfig.hexal.option.server.wispUpkeep": "咒灵维持",
- "text.autoconfig.hexal.option.server.wispUpkeep.tickingWispUpkeepPerTick": "循环式咒灵每刻维持消耗",
- "text.autoconfig.hexal.option.server.wispUpkeep.projectileWispUpkeepPerTick": "弹射式咒灵每刻维持消耗",
- "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount": "不活跃咒灵维持消耗减免",
- "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[0]": "不活跃的循环式咒灵的维持媒质消耗会与此数乘算。",
- "text.autoconfig.hexal.option.server.wispUpkeep.untriggeredWispUpkeepDiscount.@Tooltip[1]": "取值范围为0.0到1.0。",
- "text.autoconfig.hexal.option.server.wispUpkeep.linkUpkeepPerTick": "链接每刻维持消耗",
- "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor": "绑定咒灵维持消耗减免因数",
- "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[0]": "被绑定的咒灵的维持媒质消耗会除以此数。",
- "text.autoconfig.hexal.option.server.wispUpkeep.seonDiscountFactor.@Tooltip[1]": "取值范围为2.0到200.0。",
- "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor": "存储玩家iota媒质消耗乘算因数",
- "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[0]": "存有代表其他玩家的iota的咒灵的媒质消耗会与此数乘算。",
- "text.autoconfig.hexal.option.server.wispUpkeep.storingPlayerCostScaleFactor.@Tooltip[1]": "取值范围为1.0到200.0。",
-
- "text.autoconfig.hexal.option.server.linkSpells": "链接法术",
- "text.autoconfig.hexal.option.server.linkSpells.linkCost": "“链接”媒质消耗",
- "text.autoconfig.hexal.option.server.linkSpells.sendIotaCost": "“发送Iota”媒质消耗",
- "text.autoconfig.hexal.option.server.linkSpells.unlinkCost": "“解链接”媒质消耗",
-
- "text.autoconfig.hexal.option.server.gateSpells": "门径法术",
- "text.autoconfig.hexal.option.server.gateSpells.makeGateCost": "“门径之精思”媒质消耗",
- "text.autoconfig.hexal.option.server.gateSpells.markGateCost": "“开启门径”媒质消耗",
- "text.autoconfig.hexal.option.server.gateSpells.closeGateCost": "“关闭门径”媒质消耗",
-
- "text.autoconfig.hexal.option.server.itemSpells": "物品法术",
- "text.autoconfig.hexal.option.server.itemSpells.bindStorageCost": "“绑定储库”媒质消耗",
- "text.autoconfig.hexal.option.server.itemSpells.bindTemporaryStorageCost": "“绑定储库,临时型”媒质消耗",
- "text.autoconfig.hexal.option.server.itemSpells.makeItemCost": "“媒质化物品”媒质消耗",
- "text.autoconfig.hexal.option.server.itemSpells.returnItemCost": "“返还物品”媒质消耗",
- "text.autoconfig.hexal.option.server.itemSpells.craftItemCost": "“合成”媒质消耗",
- "text.autoconfig.hexal.option.server.itemSpells.tradeItemCost": "“交易”媒质消耗",
- "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned": "最大返还物品数",
- "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[0]": "“返还物品”单次最多能返还的物品数量。",
- "text.autoconfig.hexal.option.server.itemSpells.maxItemsReturned.@Tooltip[1]": "取值范围为640到64,000。",
- "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage": "物元枢纽最大记录条数",
- "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[0]": "单个物元枢纽中最多能存储的物元记录条数。",
- "text.autoconfig.hexal.option.server.itemSpells.maxRecordsInMediafiedStorage.@Tooltip[1]": "取值范围为128到16,384。",
-
-
- "text.autoconfig.hexal.option.server.greatSpells": "卓越法术",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost": "拆解自己的咒灵的媒质消耗",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[0]": "拆解咒灵(咒灵的所有者是自己)的媒质消耗,",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOwnCost.@Tooltip[1]": "也适用于拆解出于某些原因不会反抗的咒灵。",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia": "拆解他人的咒灵的单位媒质消耗",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[0]": "拆解会反抗的咒灵的媒质消耗,此数会与",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[1]": "被拆解的咒灵身上含有的媒质总量乘算。",
- "text.autoconfig.hexal.option.server.greatSpells.consumeWispOthersCostPerMedia.@Tooltip[2]": "取值范围为1.0到20.0。",
- "text.autoconfig.hexal.option.server.greatSpells.seonWispSetCost": "“绑定咒灵”媒质消耗",
- "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost": "“加速”常态媒质消耗",
- "text.autoconfig.hexal.option.server.greatSpells.tickConstantCost.@Tooltip": "加速方块运作常态媒质消耗。每次使用均会消耗。",
- "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked": "“加速”每加速刻累计媒质消耗",
- "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[0]": "加速方块运作时,之前每加速一刻额外消耗的增长量。",
- "text.autoconfig.hexal.option.server.greatSpells.tickCostPerTicked.@Tooltip[1]": "会与上方常态媒质消耗加算。",
- "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb": "“加速”随机刻的逆概率",
- "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[0]": "“加速”加速方块随机刻的逆概率。",
- "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[1]": "此数越大,越不可能加速随机刻;次数越小,越可能加速随机刻。",
- "text.autoconfig.hexal.option.server.greatSpells.tickRandomTickIProb.@Tooltip[2]": "取值范围为600到2100。"
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/moreiotas/moreiotas/lang/en_us.json b/projects/1.19/assets/moreiotas/moreiotas/lang/en_us.json
deleted file mode 100644
index f655830285b7..000000000000
--- a/projects/1.19/assets/moreiotas/moreiotas/lang/en_us.json
+++ /dev/null
@@ -1,105 +0,0 @@
-{
- "hexcasting.iota.moreiotas:string": "String",
- "hexcasting.iota.moreiotas:matrix": "Matrix",
-
- "hexal.tooltip.string": "\"%s\"",
-
- "hexcasting.spell.moreiotas:string/empty": "Blank Reflection",
- "hexcasting.spell.moreiotas:string/space": "Spacing Reflection",
- "hexcasting.spell.moreiotas:string/comma": "Comma Reflection",
- "hexcasting.spell.moreiotas:string/newline": "Breaking Reflection",
- "hexcasting.spell.moreiotas:string/block/get": "Reader's Purification",
- "hexcasting.spell.moreiotas:string/block/set": "Write",
- "hexcasting.spell.moreiotas:string/chat/caster": "Whisper Reflection",
- "hexcasting.spell.moreiotas:string/chat/all": "Listener's Reflection",
- "hexcasting.spell.moreiotas:string/chat/prefix/get": "Sifter's Reflection",
- "hexcasting.spell.moreiotas:string/chat/prefix/set": "Sifter's Gambit",
- "hexcasting.spell.moreiotas:string/iota": "Scrivener's Purification",
- "hexcasting.spell.moreiotas:string/action": "Patternmaster's Purification",
- "hexcasting.spell.moreiotas:string/name/get": "Moniker Purification",
- "hexcasting.spell.moreiotas:string/name/set": "Name",
- "hexcasting.spell.moreiotas:string/add": "Concatenation Distillation",
- "hexcasting.spell.moreiotas:string/split": "Separation Distillation",
- "hexcasting.spell.moreiotas:string/parse": "Input Purification",
- "hexcasting.spell.moreiotas:string/find": "Discoverer's Distillation",
- "hexcasting.spell.moreiotas:string/sub": "Winnowing Distillation",
- "hexcasting.spell.moreiotas:string/len": "Length Distillation: Str",
- "hexcasting.spell.moreiotas:string/case": "Case Distillation",
-
- "hexcasting.spell.moreiotas:matrix/make": "Transformation Purification",
- "hexcasting.spell.moreiotas:matrix/unmake": "Restoration Purification",
- "hexcasting.spell.moreiotas:matrix/identity": "Identity Purification",
- "hexcasting.spell.moreiotas:matrix/zero": "Zero Distillation",
- "hexcasting.spell.moreiotas:matrix/rotation": "Rotation Distillation",
- "hexcasting.spell.moreiotas:matrix/add": "Addition Distillation: Matrix",
- "hexcasting.spell.moreiotas:matrix/mul": "Multiplication Distillation: Matrix",
- "hexcasting.spell.moreiotas:matrix/transpose": "Transpose Purification",
- "hexcasting.spell.moreiotas:matrix/inverse": "Inverse Purification",
- "hexcasting.spell.moreiotas:matrix/determinant": "Determinant Purification",
- "hexcasting.spell.moreiotas:matrix/concat/vert": "Tower Distillation",
- "hexcasting.spell.moreiotas:matrix/concat/hori": "Sprawling Distillation",
- "hexcasting.spell.moreiotas:matrix/split/vert": "Toppling Gambit",
- "hexcasting.spell.moreiotas:matrix/split/hori": "Mitosis Gambit",
-
- "hexcasting.spell.book.moreiotas:string/action": "Patternmaster's Prfct.",
- "hexcasting.spell.book.moreiotas:string/len": "Length Dstl.: Str",
-
- "hexcasting.spell.book.moreiotas:matrix/make": "Transformation Prfct.",
- "hexcasting.spell.book.moreiotas:matrix/unmake": "Restoration Prfct.",
- "hexcasting.spell.book.moreiotas:matrix/add": "Add. Dstl.: Matrix",
- "hexcasting.spell.book.moreiotas:matrix/mul": "Mul. Dstl.: Matrix",
-
- "moreiotas.entry.strings": "Strings",
- "moreiotas.page.strings.string/empty": "Add an empty string to the stack, useful for combining with other strings.",
- "moreiotas.page.strings.string/space": "Add a blank space string to the stack, useful for combining with other strings.",
- "moreiotas.page.strings.string/comma": "Add a comma string to the stack, useful for combining with other strings.",
- "moreiotas.page.strings.string/newline": "Add a string to the stack representing a break between lines, useful for combining with other strings.",
- "moreiotas.page.strings.string/block/get": "Removes a vector from the stack. If that vector is pointing at a sign or lectern, it returns that sign or lectern's text to the stack. Otherwise, it returns null.",
- "moreiotas.page.strings.string/block/set": "Removes a vector and a string from the stack. If that vector is pointing at a sign or lectern, it writes that string to that sign or lectern. Costs a hundredth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "moreiotas.page.strings.string/chat/caster": "Adds the last message the caster sent to the stack as a string.",
- "moreiotas.page.strings.string/chat/all": "Adds the last message anyone sent to the stack as a string.",
- "moreiotas.page.strings.string/chat/prefix/set": "Accepts a string; All future chat messages starting with that string won't be seen by others, and only messages prefixed with that string can be read by $(l:moreiotas:patterns/strings#moreiotas:string/chat/caster)$(action)Whisper Reflection/$.",
- "moreiotas.page.strings.string/chat/prefix/get": "Returns the last string you passed to $(l:moreiotas:patterns/strings#moreiotas:string/chat/prefix/set)$(action)Sifter's Gambit/$.",
- "moreiotas.page.strings.string/iota": "Converts the iota on top of the stack into a string.",
- "moreiotas.page.strings.string/action": "Converts the pattern on top of the stack into the string for that pattern's name. If there is no action associated with that pattern, or if the associated pattern is a Great Spell, it returns null.",
- "moreiotas.page.strings.string/name/get": "Takes an entity and returns that entity's name. If it is an item entity, return the item's name.",
- "moreiotas.page.strings.string/name/set": "Takes a string and an entity, and sets that entities name to the given string. If the entity is an item entity, also set the item's name. Costs a hundredth of an $(l:items/amethyst)$(item)Amethyst Dust/$.",
- "moreiotas.page.strings.string/add": "Removes the top two strings from the stack and combines them together.",
- "moreiotas.page.strings.string/split": "Removes the top two strings from the stack and splits the first string, using the second string as the delimiter and returning as a list.",
- "moreiotas.page.strings.string/parse": "Removes a string from the top of the stack and returns the number that string parses as (or null if it doesn't parse).",
- "moreiotas.page.strings.string/find": "Removes two strings from the top of the stack, and returns the first index of the first string where the second string is a substring.",
- "moreiotas.page.strings.string/sub": "Removes a string and two positive integers from the top of the stack, and returns the substring from the first to the second (inclusive first, exclusive second).",
- "moreiotas.page.strings.string/len": "Removes a string and returns its length.",
- "moreiotas.page.strings.string/case": "Removes a string and a bool or null. If it was true, return the string in upper case. If false, lowercase. If null, toggle each character's case.",
-
- "moreiotas.entry.matrices": "Matrices",
- "moreiotas.page.matrices.0": "Matrices are a helpful tool for manipulating vectors to do as I wish, able to represent any linear transformation that can be applied to a vector. Of note with these patterns is that many are forgiving with their inputs, accepting in place of matrices things that can be easily mapped to matrices, namely numbers and vectors.",
- "moreiotas.page.matrices.1": "For example, attempting to multiply a 3x3 matrix with a vector, rather than mishapping, will return a new vector. For more information on how to make use of matrices to their fullest potential, the below is a helpful resource.",
- "moreiotas.page.matrices.1.link_text": "3blue1brown",
- "moreiotas.page.matrices.matrix/make.0": "Converts the iota on top of the stack into a matrix. This iota can be a number, vector, or list.",
- "moreiotas.page.matrices.matrix/make.1": "If it is a number, it becomes a 1x1 matrix. If it's a vector, it becomes a 3x1 matrix. If it's a list, it must be a list of purely numbers, purely vectors, or purely lists of numbers (each of which must be the same length). If it's a list of numbers it'll be 1 by n, if it's a list of vectors it'll be 3 by n, and if it's a list of lists it'll be n by m, where n is the inner list length and m is the outer list length.",
- "moreiotas.page.matrices.matrix/unmake.0": "Converts the iota on top of the stack back from a matrix into a number, vector, or list depending on the vector's size.",
- "moreiotas.page.matrices.matrix/unmake.1": "A 1x1 matrix will become a number. A 1x3 or 3x1 matrix will become a vector. A 3 by n or n by 3 matrix will become a list of vectors, and any matrix not covered by the previous will become a list of list of numbers, with each inner list being one column of the matrix.",
- "moreiotas.page.matrices.matrix/identity": "Accepts a positive integer n, and returns an n by n matrix with 1 along the diagonal and 0 elsewhere.",
- "moreiotas.page.matrices.matrix/zero": "Accepts positive integers n and m, and returns an n by m matrix of zeros.",
- "moreiotas.page.matrices.matrix/rotation": "Accepts a vec v and number θ, and returns a matrix representing rotating by θ radians around v.",
- "moreiotas.page.matrices.matrix/add": "Adds two matrices together; they must have the same number of columns and rows.",
- "moreiotas.page.matrices.matrix/mul": "Multiplies the first n by m matrix with an m by p matrix.",
- "moreiotas.page.matrices.matrix/transpose": "Accepts an n by m matrix and returns an m by n matrix where every entry has been flipped along the diagonal.",
- "moreiotas.page.matrices.matrix/inverse": "Accepts an n by n matrix and returns the n by n matrix such that in*out = identity.",
- "moreiotas.page.matrices.matrix/determinant": "Accepts a square matrix and returns the determinant of that matrix. Mishaps for matrices larger than 4x4.",
- "moreiotas.page.matrices.matrix/concat/vert": "Accepts an n by m matrix and an n by p matrix and produces an n by (m+p) matrix by putting the first matrix on top of the second.",
- "moreiotas.page.matrices.matrix/concat/hori": "Accepts an m by n matrix and a p by n matrix and produces an (m+p) by n matrix by putting the first matrix to the left of the second.",
- "moreiotas.page.matrices.matrix/split/vert": "Accepts an n by m matrix and an int from 0 to n, and returns two matrices created by splitting the input matrix vertically at the inputted int.",
- "moreiotas.page.matrices.matrix/split/hori": "Accepts an n by m matrix and an int from 0 to m, and returns two matrices created by splitting the input matrix horizontally at the inputted int.",
-
-
- "hexcasting.mishap.invalid_value.class.string": "a string",
- "hexcasting.mishap.invalid_value.class.matrix": "a matrix",
- "hexcasting.mishap.invalid_value.class.matrix.square": "a square matrix",
- "hexcasting.mishap.invalid_value.class.numvecmat": "a number, vector, or matrix",
- "hexcasting.mishap.invalid_value.class.possible_matrix": "an iota able to be converted to a matrix",
- "hexcasting.mishap.invalid_value.matrix.wrong_size": "a matrix %s by %s",
- "hexcasting.mishap.invalid_value.matrix.max_size": "a final matrix less than %1$d by %1$d, was %2$d by %3$d",
- "hexcasting.mishap.invalid_value.string.max_size": "a string less than %d chars long, was %d"
-}
\ No newline at end of file
diff --git a/projects/1.19/assets/moreiotas/moreiotas/lang/zh_cn.json b/projects/1.19/assets/moreiotas/moreiotas/lang/zh_cn.json
deleted file mode 100644
index 78c26c003470..000000000000
--- a/projects/1.19/assets/moreiotas/moreiotas/lang/zh_cn.json
+++ /dev/null
@@ -1,105 +0,0 @@
-{
- "hexcasting.iota.moreiotas:string": "字符串",
- "hexcasting.iota.moreiotas:matrix": "矩阵",
-
- "hexal.tooltip.string": "\"%s\"",
-
- "hexcasting.spell.moreiotas:string/empty": "空串之精思",
- "hexcasting.spell.moreiotas:string/space": "空格之精思",
- "hexcasting.spell.moreiotas:string/comma": "逗点之精思",
- "hexcasting.spell.moreiotas:string/newline": "断句之精思",
- "hexcasting.spell.moreiotas:string/block/get": "读者之纯化",
- "hexcasting.spell.moreiotas:string/block/set": "书写",
- "hexcasting.spell.moreiotas:string/chat/caster": "耳语之精思",
- "hexcasting.spell.moreiotas:string/chat/all": "听者之精思",
- "hexcasting.spell.moreiotas:string/chat/prefix/get": "筛具之精思",
- "hexcasting.spell.moreiotas:string/chat/prefix/set": "筛具之策略",
- "hexcasting.spell.moreiotas:string/iota": "代笔人之纯化",
- "hexcasting.spell.moreiotas:string/action": "图案师之纯化",
- "hexcasting.spell.moreiotas:string/name/get": "名号之纯化",
- "hexcasting.spell.moreiotas:string/name/set": "命名",
- "hexcasting.spell.moreiotas:string/add": "接串之馏化",
- "hexcasting.spell.moreiotas:string/split": "分串之馏化",
- "hexcasting.spell.moreiotas:string/parse": "输入之纯化",
- "hexcasting.spell.moreiotas:string/find": "发现者之馏化",
- "hexcasting.spell.moreiotas:string/sub": "簸具之提整",
- "hexcasting.spell.moreiotas:string/len": "长度之纯化:字符串",
- "hexcasting.spell.moreiotas:string/case": "大小写之馏化",
-
- "hexcasting.spell.moreiotas:matrix/make": "组阵之纯化",
- "hexcasting.spell.moreiotas:matrix/unmake": "解阵之纯化",
- "hexcasting.spell.moreiotas:matrix/identity": "单位阵之纯化",
- "hexcasting.spell.moreiotas:matrix/zero": "零阵之馏化",
- "hexcasting.spell.moreiotas:matrix/rotation": "旋转阵之馏化",
- "hexcasting.spell.moreiotas:matrix/add": "加法之馏化:矩阵",
- "hexcasting.spell.moreiotas:matrix/mul": "乘法之馏化:矩阵",
- "hexcasting.spell.moreiotas:matrix/transpose": "转置之纯化",
- "hexcasting.spell.moreiotas:matrix/inverse": "逆阵之纯化",
- "hexcasting.spell.moreiotas:matrix/determinant": "行列式之纯化",
- "hexcasting.spell.moreiotas:matrix/concat/vert": "纵接之馏化",
- "hexcasting.spell.moreiotas:matrix/concat/hori": "横拼之馏化",
- "hexcasting.spell.moreiotas:matrix/split/vert": "倒坠之策略",
- "hexcasting.spell.moreiotas:matrix/split/hori": "有丝分裂之策略",
-
- "hexcasting.spell.book.moreiotas:string/action": "图案师之纯化",
- "hexcasting.spell.book.moreiotas:string/len": "长度之纯化:字符串",
-
- "hexcasting.spell.book.moreiotas:matrix/make": "组阵之纯化",
- "hexcasting.spell.book.moreiotas:matrix/unmake": "解阵之纯化",
- "hexcasting.spell.book.moreiotas:matrix/add": "加法之馏化:矩阵",
- "hexcasting.spell.book.moreiotas:matrix/mul": "乘法之馏化:矩阵",
-
- "moreiotas.entry.strings": "字符串",
- "moreiotas.page.strings.string/empty": "压入一个空字符串。其在与其他字符串连接方面十分有用。",
- "moreiotas.page.strings.string/space": "压入一个由单个空格组成的字符串。其在与其他字符串连接方面十分有用。",
- "moreiotas.page.strings.string/comma": "压入一个由单个半角逗号组成的字符串。其在与其他字符串连接方面十分有用。",
- "moreiotas.page.strings.string/newline": "压入一个由单个换行符组成的字符串。其在与其他字符串连接方面十分有用。",
- "moreiotas.page.strings.string/block/get": "移除栈顶向量,若该向量坐标处有一告示牌或讲台,返回其上文本。否则返回 Null。",
- "moreiotas.page.strings.string/block/set": "移除栈顶向量和字符串。若该向量坐标处有一告示牌或讲台,则会将所给字符串写至其上。消耗 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "moreiotas.page.strings.string/chat/caster": "将施法者发至聊天框的最后一条消息作为字符串压入栈顶。",
- "moreiotas.page.strings.string/chat/all": "将任何人发至聊天框的最后一条消息作为字符串压入栈顶。",
- "moreiotas.page.strings.string/chat/prefix/set": "接受一个字符串。所有此后发出的以此字符串起始的消息将不再可见。同时,$(l:moreiotas:patterns/strings#moreiotas:string/chat/caster)$(action)耳语之精思/$也将只能读取上述不再可见的消息。",
- "moreiotas.page.strings.string/chat/prefix/get": "返回上一次传给$(l:moreiotas:patterns/strings#moreiotas:string/chat/prefix/set)$(action)筛具之策略/$的字符串。",
- "moreiotas.page.strings.string/iota": "将栈顶元素转换为字符串。",
- "moreiotas.page.strings.string/action": "将栈顶图案转换为其名称。如果该图案不对应任何操作,或对应的操作是卓越法术,则返回 Null。",
- "moreiotas.page.strings.string/name/get": "接受栈顶实体,并返回其名称。若为物品实体,则返回物品的名称。",
- "moreiotas.page.strings.string/name/set": "接受栈顶字符串和实体,并将该实体的名称设定为该字符串。若为物品实体,则会同时更改物品的名称。消耗 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。",
- "moreiotas.page.strings.string/add": "移除栈顶两字符串,并将其连接。",
- "moreiotas.page.strings.string/split": "移除栈顶两字符串,并以第二个字符串为分隔符拆分第一个字符串,结果作为列表返回。",
- "moreiotas.page.strings.string/parse": "移除栈顶字符串,并返回字符串所解析得的数(若无法解析则返回 Null)。",
- "moreiotas.page.strings.string/find": "移除栈顶两字符串,并返回第二个字符串在第一个字符串中第一次出现的位置下标。",
- "moreiotas.page.strings.string/sub": "移除栈顶字符串和两个数,并返回字符串中下标从第一个数(含)到第二个数(不含)间的子串。",
- "moreiotas.page.strings.string/len": "移除栈顶字符串,并返回其长度。",
- "moreiotas.page.strings.string/case": "移除栈顶字符串和布尔值(Null 也可)。若为 True,将字符串改为全大写并返回;若为 False,则改为全小写;若为 Null,则更改所有字符的大小写。",
-
- "moreiotas.entry.matrices": "矩阵",
- "moreiotas.page.matrices.0": "矩阵是操纵向量的好帮手,它们能表示任何可作用于向量的线性变换。需注明的是,本条目里的图案在所接受 iota 的类型方面十分随和,它们会接受任何可直接映射为矩阵的 iota,如数和向量。",
- "moreiotas.page.matrices.1": "例如,将一 3x3 矩阵与一向量相乘不会产生事故,而是会返回一个新向量。更多有关发掘矩阵潜能的信息可参见下方链接(译注:B 站官方账号同视频见$(l:https://www.bilibili.com/video/BV1ns41167b9)此/$和$(l:https://www.bilibili.com/video/BV1ys411472E?p=4)此/$)。",
- "moreiotas.page.matrices.1.link_text": "3blue1brown",
- "moreiotas.page.matrices.matrix/make.0": "将栈顶元素转换为矩阵。接受数、向量和列表。",
- "moreiotas.page.matrices.matrix/make.1": "若该 iota 为数,其将变为 1x1 的矩阵。若该 iota 为向量,其将变为 3x1 的矩阵。若该 iota 为列表,则其需为一完全由数组成,或完全由向量组成,或完全由仅含数的列表(所有列表需等长)组成的列表。若组成元素为数,其将变为 1xn 的矩阵;若组成元素为向量,其将变为 3xn 的矩阵;若组成元素为列表,则变为 nxm 的矩阵,其中 n 为内层列表长度,m 为外层列表长度。",
- "moreiotas.page.matrices.matrix/unmake.0": "将栈顶矩阵依其长宽转换为数、向量或列表。",
- "moreiotas.page.matrices.matrix/unmake.1": "1x1 矩阵会变成数。1x3 或 3x1 矩阵会变成向量。3xn 或 nx3 矩阵会变成由向量组成的列表。所有其余矩阵会变成由仅含数的列表组成的列表,内层列表长度为矩阵列数。",
- "moreiotas.page.matrices.matrix/identity": "接受一个正整数 n,返回一 n 阶单位矩阵(即主对角线处为 1,其余各处为 0 的方阵)。",
- "moreiotas.page.matrices.matrix/zero": "接受两个正整数,返回一 nxm 的零矩阵(即处处为 0 的矩阵)。",
- "moreiotas.page.matrices.matrix/rotation": "接受一向量 v 与一数 θ,返回对应以 v 为轴正向旋转 θ 弧度的旋转矩阵。",
- "moreiotas.page.matrices.matrix/add": "将两矩阵相加。两矩阵的长宽必须一致。",
- "moreiotas.page.matrices.matrix/mul": "将一 nxm 矩阵与一 mxp 矩阵相乘。",
- "moreiotas.page.matrices.matrix/transpose": "接受一 nxm 矩阵并返回一 mxn 矩阵,其中所有元素按主对角线对称翻转。",
- "moreiotas.page.matrices.matrix/inverse": "接受一 nxn 矩阵并返回一 nxn 矩阵,使得原矩阵和返回矩阵相乘得单位矩阵。",
- "moreiotas.page.matrices.matrix/determinant": "接受一方阵并返回其行列式。若对 4x4 以上方阵使用,则会产生事故。",
- "moreiotas.page.matrices.matrix/concat/vert": "接受一 mxn 矩阵与一 pxn 矩阵,返回一 (m+p)xn 矩阵,其中第一个矩阵位于第二个矩阵上方。",
- "moreiotas.page.matrices.matrix/concat/hori": "接受一 nxm 矩阵与一 nxp 矩阵,返回一 nx(m+p) 矩阵,其中第一个矩阵位于第二个矩阵左方。",
- "moreiotas.page.matrices.matrix/split/vert": "接受一 nxm 矩阵与一 0 到 n 间的整数,返回由原矩阵在所给整数行处上下分割所得的两个矩阵。",
- "moreiotas.page.matrices.matrix/split/hori": "接受一 nxm 矩阵与一 0 到 m 间的整数,返回由原矩阵在所给整数列处左右分割所得的两个矩阵。",
-
-
- "hexcasting.mishap.invalid_value.class.string": "一个字符串",
- "hexcasting.mishap.invalid_value.class.matrix": "一个矩阵",
- "hexcasting.mishap.invalid_value.class.matrix.square": "一个方阵",
- "hexcasting.mishap.invalid_value.class.numvecmat": "一个数、向量或矩阵",
- "hexcasting.mishap.invalid_value.class.possible_matrix": "一个可转换为矩阵的iota",
- "hexcasting.mishap.invalid_value.matrix.wrong_size": "一个%sx%s的矩阵",
- "hexcasting.mishap.invalid_value.matrix.max_size": "一个小于%1$dx%1$d的矩阵,而实际为%2$dx%3$d",
- "hexcasting.mishap.invalid_value.string.max_size": "一个长度小于%d字符的字符串,而实际长度为%d"
-}