From b8a8e66bee49c18762993834545b95d4c60f8f93 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Wed, 10 Dec 2025 02:51:29 +0800 Subject: [PATCH 1/4] HexxyPlanes create --- .../hexxyplanes/lang/en_us.flatten.json5 | 123 ++++++++++++++++++ .../hexxyplanes/lang/zh_cn.flatten.json5 | 123 ++++++++++++++++++ 2 files changed, 246 insertions(+) create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 new file mode 100644 index 000000000000..9a061157411b --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 @@ -0,0 +1,123 @@ +{ + hexxyplanes: { + book: { + patterns: { + spells: { + "hexplane": { + "": "Hexplanes", + get_plane: "Retrieves an iota representing my hexplane.", + enter_plane: { + "1": "Sends the target to the provided hexplane. Costs 2 \ + charged amethyst if the target is not already in a hexplane, \ + and 5 dust otherwise.", + "2": "Upon entering a plane, the two blocks on the spawn point are \ + broken, as if by a player, and any fragile blocks $(l)are not \ + dropped./$ The spawn point is signified by a purple tinted version \ + of the blocks that make up the walls." + }, + plane_pos: "Gets the spawn position within this plane as a vector.", + plane_banish: { + "1": "Forces the target out of the hexplane, costing 5 shards \ + if used on something other than myself, and being free otherwise. \ + Mishaps if not currently in a hexplane.", + "2": "If the target is a player, they are sent to their hexplane exit. \ + If the target is any other entity, they are sent to my hexplane exit. \ + The exit can be set using $(l:patterns/spells/hexplane#hexxyplanes:plane_exit)\ + $(action)Planar Marking/$." + }, + plane_exit: { + "1": "Marks the target location as my exit for the hexplane, \ + causing me to be sent there upon using $(l:patterns/spells/hexplane\ + #hexxyplanes:plane_banish)$(action)Planar Expulsion/$ on myself.", + "2": "Non-player entities will be sent here when using \ + $(l:patterns/spells/hexplane#hexxyplanes:plane_banish)$(action)Planar \ + Expulsion/$. Mishaps if the exit is within a hexplane." + } + } + } + }, + info: { + "hexplane": { + "": "Hexplanes", + "text": { + "1": "Since pushing past the barrier and seeing a realm of thought, \ + I wondered what else may be accessible by simply... applying some \ + more pressure. After doing so I saw a reality of cubes upon cubes \ + upon cubes, containers of pure white waiting for someone to inhabit \ + them. I managed to devise some patterns to force my way into this \ + plane, and upon following through I found myself inside one of these \ + cubes.", + "2": "I felt my media expand to fill the space, but it curiously \ + refused to go any further than the walls that surround me. I feel as \ + though I can safely assume that this area is entirely my own, although \ + it doesn't seem to take kindly to remodeling, as punching the walls \ + resulted in me being shunted back to reality (maybe being more careful \ + would prevent this next time?). The block at the position I enter this \ + plane at is oddly discoloured, convenient for keeping my heading I suppose." + } + } + } + }, + tooltip: { + "hexplane": "Hexplane" + }, + error: { + bad_respawn: "Your respawn point is within the hexplane. Sending to world spawn..." + } + }, + + hexcasting: { + action: { + "hexxyplanes:": { + get_plane: "Planar Reflection", + enter_plane: "Planar Intrusion", + plane_pos: "Planar Purification", + plane_banish: "Planar Expulsion", + plane_exit: "Planar Marking" + }, + + // use this to add shortened versions of pattern names if the full name won't fit in the ingame book + // you don't need to add an entry for every pattern - the above value will be used as a default + book: { + }, + }, + mishap: { + not_in_hexplane: "Must be in a hexplane to cast this pattern.", + invalid_value: { + class: { + plane: "a Hexplane" + } + } + } + }, + + text: { + hexxyplanes: { + }, + + "autoconfig.hexxyplanes": { + title: "Hexxyplanes Config", + + category: { + client: "Client", + server: "Server", + }, + + option: { + client: { + dummyClientConfigOption: { + "": "Dummy Client Config Option", + "@Tooltip": "This is an example of a client-side config option that accepts a boolean.", + }, + }, + + server: { + dummyServerConfigOption: { + "": "Dummy Server Config Option", + "@Tooltip": "This is an example of a server-side config option that accepts an integer.", + }, + }, + }, + }, + }, +} diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 b/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 new file mode 100644 index 000000000000..7eefa9f2d2ba --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 @@ -0,0 +1,123 @@ +{ + hexxyplanes: { + book: { + patterns: { + spells: { + "hexplane": { + "": "咒法位面", + get_plane: "返回代表我咒法位面的 iota。", + enter_plane: { + "1": "将目标送入所给咒法位面。若目标未在咒法位面内部,消耗 2 个\ + 充能紫水晶;否则消耗 5 个紫水晶粉。", + + "2": "进入位面时,出生点处的两个方块会被破坏,效果与玩家破坏类似,\ + 且脆弱的方块$(l)不会掉落/$。出生点的方块与墙壁的构成方块一致,\ + 但会略带紫色。" + + }, + plane_pos: "获取位面出生点的位置向量。", + plane_banish: { + "1": "强令目标退出咒法位面。若对除我之外的事物使用,消耗 5 个紫水晶\ + 碎片;否则无需消耗媒质。不在位面内施放会招致事故。", + + "2": "若目标为玩家,将其送至其咒法位面退出点。若是任意其他实体,\ + 则送至我咒法位面的退出点。可用$(l:patterns/spells/hexplane#hexxyplanes:plane_exit)\ + $(action)位面之标记/$设置退出点。" + + }, + plane_exit: { + "1": "将目标位置设为我咒法位面的退出点。此后,对自己使用\ + $(l:patterns/spells/hexplane#hexxyplanes:plane_banish)$(action)位面之驱逐/$\ + 时会被传送至该处。", + "2": "对非玩家实体使用$(l:patterns/spells/hexplane#hexxyplanes:plane_banish)\ + $(action)位面之驱逐/$时也会将它们送至该处。不在位面内施放会招致事故。" + + } + } + } + }, + info: { + "hexplane": { + "": "咒法位面", + "text": { + "1": "自从我跨越屏障,瞥见思维的领域以来,我一直在想……要是我再施加些\ + 力量,还能到达哪些地方。我真的施加了力量,由此看到了一片新现实,那里有着\ + 层层叠叠的立方体;立方体内部是纯粹的白色,仿佛在等着人入住。我设计出了\ + 几个图案,以便强行进入这些位面。而在穿过屏障之后,我到达的就是先前所提\ + 立方体的内部。", + + + "2": "我感觉到我的媒质逐渐扩散,填满了整个空间。但奇怪的是,它们拒绝穿过\ + 四周的墙壁。尽管我可以认为这整片空间都是属于我的,它却似乎不怎么接受塑形;\ + 我试图敲击这些墙壁,结果总是我被传回现实。(也许再小心些就能避免了?)\ + 我进入位面时所处的方块较为特别——它的颜色与周围不同。大概可以拿来定位吧。" + + + + } + } + } + }, + tooltip: { + "hexplane": "咒法位面" + }, + error: { + bad_respawn: "你的重生点位于咒法位面内部。正在传送至世界出生点……" + } + }, + + hexcasting: { + action: { + "hexxyplanes:": { + get_plane: "位面之精思", + enter_plane: "位面之侵入", + plane_pos: "位面之纯化", + plane_banish: "位面之驱逐", + plane_exit: "位面之标记" + }, + + // use this to add shortened versions of pattern names if the full name won't fit in the ingame book + // you don't need to add an entry for every pattern - the above value will be used as a default + book: { + }, + }, + mishap: { + not_in_hexplane: "此图案必须在咒法位面之内绘制。", + invalid_value: { + class: { + plane: "一个咒法位面" + } + } + } + }, + + text: { + hexxyplanes: { + }, + + "autoconfig.hexxyplanes": { + title: "咒法位面配置", + + category: { + client: "客户端", + server: "服务端", + }, + + option: { + client: { + dummyClientConfigOption: { + "": "Dummy Client Config Option", + "@Tooltip": "This is an example of a client-side config option that accepts a boolean.", + }, + }, + + server: { + dummyServerConfigOption: { + "": "Dummy Server Config Option", + "@Tooltip": "This is an example of a server-side config option that accepts an integer.", + }, + }, + }, + }, + }, +} From 4ea56a9c5407d5847785c8b930becba8d2d58036 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Sun, 21 Dec 2025 22:41:10 +0800 Subject: [PATCH 2/4] =?UTF-8?q?HexxyPlane=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 --- .../hexxyplanes/lang/en_us.flatten.json5 | 21 ++++++++++++--- .../hexxyplanes/lang/zh_cn.flatten.json5 | 27 ++++++++++++++----- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 index 9a061157411b..dc579d3a6ac9 100644 --- a/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 +++ b/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 @@ -1,11 +1,22 @@ { hexxyplanes: { book: { + interop: { + oneironaut: { + "": "Oneironaut", + patterns: { + spells: { + exit_deconstruct: "Puts the dimension and the coordinates of my hexplane exit onto the stack." + } + } + } + }, patterns: { spells: { - "hexplane": { + hexplane: { "": "Hexplanes", get_plane: "Retrieves an iota representing my hexplane.", + exit_reveal: "Displays my hexplane exit to me.", enter_plane: { "1": "Sends the target to the provided hexplane. Costs 2 \ charged amethyst if the target is not already in a hexplane, \ @@ -27,6 +38,7 @@ }, plane_exit: { "1": "Marks the target location as my exit for the hexplane, \ + or resets it to be my spawn location if passed null, \ causing me to be sent there upon using $(l:patterns/spells/hexplane\ #hexxyplanes:plane_banish)$(action)Planar Expulsion/$ on myself.", "2": "Non-player entities will be sent here when using \ @@ -73,7 +85,9 @@ enter_plane: "Planar Intrusion", plane_pos: "Planar Purification", plane_banish: "Planar Expulsion", - plane_exit: "Planar Marking" + plane_exit: "Planar Marking", + exit_reveal: "Reveal Mark", + exit_deconstruct: "Marker's Gambit" }, // use this to add shortened versions of pattern names if the full name won't fit in the ingame book @@ -86,7 +100,8 @@ invalid_value: { class: { plane: "a Hexplane" - } + }, + vecnull: "a vector or null" } } }, diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 b/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 index 7eefa9f2d2ba..be35458d5ffc 100644 --- a/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 +++ b/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 @@ -1,11 +1,22 @@ { hexxyplanes: { book: { + interop: { + oneironaut: { + "": "航梦", + patterns: { + spells: { + exit_deconstruct: "返回我咒法位面的出口维度和坐标。" + } + } + } + }, patterns: { spells: { - "hexplane": { + hexplane: { "": "咒法位面", get_plane: "返回代表我咒法位面的 iota。", + exit_reveal: "向我展示我咒法位面的出口。", enter_plane: { "1": "将目标送入所给咒法位面。若目标未在咒法位面内部,消耗 2 个\ 充能紫水晶;否则消耗 5 个紫水晶粉。", @@ -26,9 +37,10 @@ }, plane_exit: { - "1": "将目标位置设为我咒法位面的退出点。此后,对自己使用\ - $(l:patterns/spells/hexplane#hexxyplanes:plane_banish)$(action)位面之驱逐/$\ - 时会被传送至该处。", + "1": "将目标位置设为我咒法位面的退出点,传入 Null 则将出口设为我的出生点。\ + 此后,对自己使用$(l:patterns/spells/hexplane#hexxyplanes:plane_banish)$(action)位面之驱逐/$\ + 时即会被传送至该处。", + "2": "对非玩家实体使用$(l:patterns/spells/hexplane#hexxyplanes:plane_banish)\ $(action)位面之驱逐/$时也会将它们送至该处。不在位面内施放会招致事故。" @@ -73,7 +85,9 @@ enter_plane: "位面之侵入", plane_pos: "位面之纯化", plane_banish: "位面之驱逐", - plane_exit: "位面之标记" + plane_exit: "位面之标记", + exit_reveal: "揭示标记", + exit_deconstruct: "标记者之策略" }, // use this to add shortened versions of pattern names if the full name won't fit in the ingame book @@ -86,7 +100,8 @@ invalid_value: { class: { plane: "一个咒法位面" - } + }, + vecnull: "一个向量或Null" } } }, From 3c044ad60024c3fe3cc4e2132b197ced8c4ee19e Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Sun, 21 Dec 2025 22:49:22 +0800 Subject: [PATCH 3/4] =?UTF-8?q?HexxyPlanes=20update=EF=BC=9A=E5=AE=98?= =?UTF-8?q?=E5=BA=93=E6=9B=B4=E6=96=B0=20HexThings=20path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/hexthings/hexthings/README.md | 1 + .../hexthings/lang/en_us.flatten.json5 | 159 ++++++++++++++++++ .../hexthings/hexthings/packer-policy.json | 6 + .../hexxyplanes/README.md | 1 + .../hexxyplanes/lang/en_us.flatten.json5 | 0 .../hexxyplanes/packer-policy.json | 6 + .../1.20/assets/hexthings/hexthings/README.md | 16 ++ .../hexxyplanes/README.md | 16 ++ .../hexxyplanes/lang/en_us.flatten.json5 | 138 +++++++++++++++ .../hexxyplanes/lang/zh_cn.flatten.json5 | 0 10 files changed, 343 insertions(+) create mode 100644 projects/1.20-fabric/assets/hexthings/hexthings/README.md create mode 100644 projects/1.20-fabric/assets/hexthings/hexthings/lang/en_us.flatten.json5 create mode 100644 projects/1.20-fabric/assets/hexthings/hexthings/packer-policy.json create mode 100644 projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/README.md rename projects/1.20-fabric/assets/{1UNKNOWN => modrinth-hexxyplanes}/hexxyplanes/lang/en_us.flatten.json5 (100%) create mode 100644 projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/packer-policy.json create mode 100644 projects/1.20/assets/hexthings/hexthings/README.md create mode 100644 projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/README.md create mode 100644 projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/lang/en_us.flatten.json5 rename projects/{1.20-fabric/assets/1UNKNOWN => 1.20/assets/modrinth-hexxyplanes}/hexxyplanes/lang/zh_cn.flatten.json5 (100%) diff --git a/projects/1.20-fabric/assets/hexthings/hexthings/README.md b/projects/1.20-fabric/assets/hexthings/hexthings/README.md new file mode 100644 index 000000000000..e38ed20c15ce --- /dev/null +++ b/projects/1.20-fabric/assets/hexthings/hexthings/README.md @@ -0,0 +1 @@ +[见主文档](/projects/1.20/assets/hexthings/hexthings) \ No newline at end of file diff --git a/projects/1.20-fabric/assets/hexthings/hexthings/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/hexthings/hexthings/lang/en_us.flatten.json5 new file mode 100644 index 000000000000..6b8e96ad54eb --- /dev/null +++ b/projects/1.20-fabric/assets/hexthings/hexthings/lang/en_us.flatten.json5 @@ -0,0 +1,159 @@ +{ + hexthings: { + book: { + patterns: { + utils: { + "": "Utilities", + noop: "Does nothing, but the tail can be any shape. Useful as \ + a placeholder to be replaced later", + insert: "Similar to $(l:patterns/lists#hexcasting:replace)$(action)Surgeon's Exaltation/$, but replaces the \ + element of the first list instead with the $(o)contents/$ of the second list, rather than with the list itself.", + unquote: "This pattern can be used to place raw iota directly into an \ + Introspection-Restrospection pair. After drawing this pattern, all \ + subsequent patterns are \"unescaped\", allowing them to be executed as \ + normal until a $(l:patterns/hexutils#hexthings:requote)$(action)Retrojection/$ is \ + encountered.", + requote: "When used after an \ + $(l:patterns/hexutils#hexthings:unquote)$(action)Introjection/$, \ + This pattern puts all iota on the stack into the escaped list, with the \ + previous state of the stack being restored.", + isgreatersent: "Pushes if my current sentinel is a \ + $(l:patterns/great_spells/greater_sentinel)$(action)Greater Sentinel/$, \ + or $(l:patterns/consts#hexcasting:const/null)$(thing)Null/$ if I \ + have no sentinel at all." + }, + dict: { + "": "Dictionary Manipulation", + empty_dict: "Creates an empty Dictionary iota.", + abs: "Pushes the number of entries in the Dictionary", + replace: "Places the iota in the Dictionary at the specified key. Not every \ + iota type is allowed to be used as a key, with notable the exceptions being \ + $(l:casting/influences)$(thing)Garbage/$ and $(l:patterns/meta#hexcasting:\ + eval/cc)$(thing)Jump/$ iota. Attempting to set the value of a key to \ + $(l:patterns/consts#hexcasting:const/null)$(thing)Null/$ will remove the \ + key the same way using $(l:patterns/dict#hexcasting:remove_from)$(action)\ + Excisor's Distillation/$ would.", + remove_from: "Removes the key-value pair from the Dictionary, pushing the \ + previous value, or $(l:patterns/consts#hexcasting:const/null)$(thing)Null/$ \ + if no value was present.", + index_of: "Pushes the value present at the provided key, or $(l:patterns/consts\ + #hexcasting:const/null)$(thing)Null/$ if no value was present.", + dict_keys: "Pushes a list of the keys present in the Dictionary.", + dict_vals: "Pushes a list of the values present in the Dictionary.", + dict_ents: "Pushes a list of the key-value pairs in this Dictionary, each being \ + a 2 element list." + }, + uiua: { + "": "Advanced List Operators", + uiua_take: "Keeps elements of the list based on the second argument. If it's a \ + number and positive, it keeps the first $(o)n/$ elements of the list, if \ + negative; the last $(o)n/$. If given a list, then its elements are treated as \ + indices to keep.", + uiua_drop: "The exact inverse of $(l:patterns/uiua#hexthings:uiua_take)$(action)\ + Retention Distillation/$, dropping the specified elements instead of dropping the \ + rest.", + uiua_rotate: "Shifts the contents of the list by the specified amount, wrapping elements \ + that go \"outside\" the list.", + uiua_where: "Pushes a list containing the indices of values that are \ + $(l:patterns/logic#hexcasting:bool_coerce)considered true by Nature/$.", + div: "Pushes a list containing pairs of values corresponding to the values at that \ + index in each list.", + mul: "Pushes a list containing every combination of elements between the two lists." + } + }, + info: { + iota_embedding: { + "title": "Iota Embedding", + "text": { + "1": "In my studies, I've discovered a way to... \"embed\" iota within \ + a hex itself, allowing me to avoid the need to reconstruct them with \ + every cast. This becomes especially useful when combined with \ + $(l:items/hexcasting)$(item)casting items/$, allowing for much faster \ + casts, or simply making the process of using the hex within them easier.", + "2": "Typically, this process involves starting an Introspection-\ + Retrospection pair, using a placeholder pattern, modifying the list \ + after the fact using $(l:patterns/lists#hexcasting:index_of)$(action)\ + Locator's Distillation/$ and $(l:patterns/lists#hexcasting:replace)\ + $(action)Surgeon's Exaltation/$, and placing a $(l:patterns/lists\ + #hexcasting:splat)$(action)Flock's Disintegration/$ afterwards to \ + access the iota — a very annoying and time-consuming process, certainly. \ + It does seem my forays into this art are viewed favorably by Nature, \ + as I've recently found two patterns for simplifying the process." + } + } + }, + noop_examples: { + "header": "Patience Patterns", + "text": "Some examples of Patience patterns that can be used." + } + } + }, + + hexcasting: { + action: { + "hexthings:": { + noop: "Patience", + insert: "Flattening Exaltation", + unquote: "Introjection", + requote: "Retrojection", + isgreatersent: "Shard Reflection", + empty_dict: "Impasse Reflection", + dict_keys: "Accessor's Purification", + dict_vals: "Accessed's Purification", + dict_ents: "Entry Purification", + uiua_take: "Retention Distillation", + uiua_drop: "Rejection Distillation", + uiua_rotate: "Ferris Distillation", + uiua_where: "Deduction Purification" + }, + + // use this to add shortened versions of pattern names if the full name won't fit in the ingame book + // you don't need to add an entry for every pattern - the above value will be used as a default + book: { + "hexthings:": { + }, + }, + }, + special: { + "hexthings:": { + noop: "Patience" + } + }, + mishap: { + "invalid_unquote": "Did not first cast Introjection.", + "invalid_key_type": "An iota of type %s is not allowed as a key.", + invalid_value: { + class: { + int_list: "a list of numbers" + } + } + } + }, + + text: { + "autoconfig.hexthings": { + title: "HexThings Config", + + category: { + client: "Client", + server: "Server", + }, + + option: { + client: { + dummyClientConfigOption: { + "": "Dummy Client Config Option", + "@Tooltip": "This is an example of a client-side config option that accepts a boolean.", + }, + }, + + server: { + dummyServerConfigOption: { + "": "Dummy Server Config Option", + "@Tooltip": "This is an example of a server-side config option that accepts an integer.", + }, + }, + }, + }, + }, +} diff --git a/projects/1.20-fabric/assets/hexthings/hexthings/packer-policy.json b/projects/1.20-fabric/assets/hexthings/hexthings/packer-policy.json new file mode 100644 index 000000000000..5e55e5957695 --- /dev/null +++ b/projects/1.20-fabric/assets/hexthings/hexthings/packer-policy.json @@ -0,0 +1,6 @@ +[ + { + "type": "indirect", + "source": "projects/1.20/assets/hexthings/hexthings" + } +] \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/README.md b/projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/README.md new file mode 100644 index 000000000000..b63e783c1867 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/README.md @@ -0,0 +1 @@ +[见主文档](/projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes) \ No newline at end of file diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/lang/en_us.flatten.json5 similarity index 100% rename from projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/en_us.flatten.json5 rename to projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/lang/en_us.flatten.json5 diff --git a/projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/packer-policy.json b/projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/packer-policy.json new file mode 100644 index 000000000000..42644e0fed4c --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes/packer-policy.json @@ -0,0 +1,6 @@ +[ + { + "type": "indirect", + "source": "projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes" + } +] \ No newline at end of file diff --git a/projects/1.20/assets/hexthings/hexthings/README.md b/projects/1.20/assets/hexthings/hexthings/README.md new file mode 100644 index 000000000000..3c489af9ba29 --- /dev/null +++ b/projects/1.20/assets/hexthings/hexthings/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/hexthings/hexthings) +- [1.20.1-fabric](/projects/1.20-fabric/assets/hexthings/hexthings) \ No newline at end of file diff --git a/projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/README.md b/projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/README.md new file mode 100644 index 000000000000..efae18c2f292 --- /dev/null +++ b/projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/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-hexxyplanes/hexxyplanes) +- [1.20.1-fabric](/projects/1.20-fabric/assets/modrinth-hexxyplanes/hexxyplanes) \ No newline at end of file diff --git a/projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/lang/en_us.flatten.json5 b/projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/lang/en_us.flatten.json5 new file mode 100644 index 000000000000..dc579d3a6ac9 --- /dev/null +++ b/projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/lang/en_us.flatten.json5 @@ -0,0 +1,138 @@ +{ + hexxyplanes: { + book: { + interop: { + oneironaut: { + "": "Oneironaut", + patterns: { + spells: { + exit_deconstruct: "Puts the dimension and the coordinates of my hexplane exit onto the stack." + } + } + } + }, + patterns: { + spells: { + hexplane: { + "": "Hexplanes", + get_plane: "Retrieves an iota representing my hexplane.", + exit_reveal: "Displays my hexplane exit to me.", + enter_plane: { + "1": "Sends the target to the provided hexplane. Costs 2 \ + charged amethyst if the target is not already in a hexplane, \ + and 5 dust otherwise.", + "2": "Upon entering a plane, the two blocks on the spawn point are \ + broken, as if by a player, and any fragile blocks $(l)are not \ + dropped./$ The spawn point is signified by a purple tinted version \ + of the blocks that make up the walls." + }, + plane_pos: "Gets the spawn position within this plane as a vector.", + plane_banish: { + "1": "Forces the target out of the hexplane, costing 5 shards \ + if used on something other than myself, and being free otherwise. \ + Mishaps if not currently in a hexplane.", + "2": "If the target is a player, they are sent to their hexplane exit. \ + If the target is any other entity, they are sent to my hexplane exit. \ + The exit can be set using $(l:patterns/spells/hexplane#hexxyplanes:plane_exit)\ + $(action)Planar Marking/$." + }, + plane_exit: { + "1": "Marks the target location as my exit for the hexplane, \ + or resets it to be my spawn location if passed null, \ + causing me to be sent there upon using $(l:patterns/spells/hexplane\ + #hexxyplanes:plane_banish)$(action)Planar Expulsion/$ on myself.", + "2": "Non-player entities will be sent here when using \ + $(l:patterns/spells/hexplane#hexxyplanes:plane_banish)$(action)Planar \ + Expulsion/$. Mishaps if the exit is within a hexplane." + } + } + } + }, + info: { + "hexplane": { + "": "Hexplanes", + "text": { + "1": "Since pushing past the barrier and seeing a realm of thought, \ + I wondered what else may be accessible by simply... applying some \ + more pressure. After doing so I saw a reality of cubes upon cubes \ + upon cubes, containers of pure white waiting for someone to inhabit \ + them. I managed to devise some patterns to force my way into this \ + plane, and upon following through I found myself inside one of these \ + cubes.", + "2": "I felt my media expand to fill the space, but it curiously \ + refused to go any further than the walls that surround me. I feel as \ + though I can safely assume that this area is entirely my own, although \ + it doesn't seem to take kindly to remodeling, as punching the walls \ + resulted in me being shunted back to reality (maybe being more careful \ + would prevent this next time?). The block at the position I enter this \ + plane at is oddly discoloured, convenient for keeping my heading I suppose." + } + } + } + }, + tooltip: { + "hexplane": "Hexplane" + }, + error: { + bad_respawn: "Your respawn point is within the hexplane. Sending to world spawn..." + } + }, + + hexcasting: { + action: { + "hexxyplanes:": { + get_plane: "Planar Reflection", + enter_plane: "Planar Intrusion", + plane_pos: "Planar Purification", + plane_banish: "Planar Expulsion", + plane_exit: "Planar Marking", + exit_reveal: "Reveal Mark", + exit_deconstruct: "Marker's Gambit" + }, + + // use this to add shortened versions of pattern names if the full name won't fit in the ingame book + // you don't need to add an entry for every pattern - the above value will be used as a default + book: { + }, + }, + mishap: { + not_in_hexplane: "Must be in a hexplane to cast this pattern.", + invalid_value: { + class: { + plane: "a Hexplane" + }, + vecnull: "a vector or null" + } + } + }, + + text: { + hexxyplanes: { + }, + + "autoconfig.hexxyplanes": { + title: "Hexxyplanes Config", + + category: { + client: "Client", + server: "Server", + }, + + option: { + client: { + dummyClientConfigOption: { + "": "Dummy Client Config Option", + "@Tooltip": "This is an example of a client-side config option that accepts a boolean.", + }, + }, + + server: { + dummyServerConfigOption: { + "": "Dummy Server Config Option", + "@Tooltip": "This is an example of a server-side config option that accepts an integer.", + }, + }, + }, + }, + }, +} diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 b/projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/lang/zh_cn.flatten.json5 similarity index 100% rename from projects/1.20-fabric/assets/1UNKNOWN/hexxyplanes/lang/zh_cn.flatten.json5 rename to projects/1.20/assets/modrinth-hexxyplanes/hexxyplanes/lang/zh_cn.flatten.json5 From 480c9326104acc84b38ae072bce73f9b678708cd Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Mon, 12 Jan 2026 04:54:17 +0800 Subject: [PATCH 4/4] =?UTF-8?q?HexThings=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 --- .../hexthings/lang/en_us.flatten.json5 | 25 ++++++++++---- .../hexthings/lang/en_us.flatten.json5 | 25 ++++++++++---- .../hexthings/lang/zh_cn.flatten.json5 | 33 +++++++++++++------ 3 files changed, 61 insertions(+), 22 deletions(-) diff --git a/projects/1.20-fabric/assets/hexthings/hexthings/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/hexthings/hexthings/lang/en_us.flatten.json5 index 6b8e96ad54eb..f2af1fd19b61 100644 --- a/projects/1.20-fabric/assets/hexthings/hexthings/lang/en_us.flatten.json5 +++ b/projects/1.20-fabric/assets/hexthings/hexthings/lang/en_us.flatten.json5 @@ -6,8 +6,6 @@ "": "Utilities", noop: "Does nothing, but the tail can be any shape. Useful as \ a placeholder to be replaced later", - insert: "Similar to $(l:patterns/lists#hexcasting:replace)$(action)Surgeon's Exaltation/$, but replaces the \ - element of the first list instead with the $(o)contents/$ of the second list, rather than with the list itself.", unquote: "This pattern can be used to place raw iota directly into an \ Introspection-Restrospection pair. After drawing this pattern, all \ subsequent patterns are \"unescaped\", allowing them to be executed as \ @@ -43,7 +41,7 @@ dict_ents: "Pushes a list of the key-value pairs in this Dictionary, each being \ a 2 element list." }, - uiua: { + lists: { "": "Advanced List Operators", uiua_take: "Keeps elements of the list based on the second argument. If it's a \ number and positive, it keeps the first $(o)n/$ elements of the list, if \ @@ -58,7 +56,15 @@ $(l:patterns/logic#hexcasting:bool_coerce)considered true by Nature/$.", div: "Pushes a list containing pairs of values corresponding to the values at that \ index in each list.", - mul: "Pushes a list containing every combination of elements between the two lists." + mul: "Pushes a list containing every combination of elements between the two lists.", + insert: "Similar to $(l:patterns/lists#hexcasting:replace)$(action)Surgeon's Exaltation/$, but replaces the \ + element of the first list instead with the $(o)contents/$ of the second list, rather than with the list itself.", + make_range: { + "1": "Creates a list from num #1 to num #2, with a step size of num #3 (or 1 if passed null). For example, \ + A stack of [1, 2, 0.5] would result in a list of [1, 1.5].", + "2": "This pattern will mishap if the step size is 0, or if the resulting list would be larger than Nature \ + allows." + } } }, info: { @@ -104,7 +110,8 @@ uiua_take: "Retention Distillation", uiua_drop: "Rejection Distillation", uiua_rotate: "Ferris Distillation", - uiua_where: "Deduction Purification" + uiua_where: "Deduction Purification", + make_range: "Ranger's Exaltation" }, // use this to add shortened versions of pattern names if the full name won't fit in the ingame book @@ -122,9 +129,15 @@ mishap: { "invalid_unquote": "Did not first cast Introjection.", "invalid_key_type": "An iota of type %s is not allowed as a key.", + "malformed_range": { + "zero": "Cannot have a step size of 0", + "size": "List of size %s would exceed max size of current stack" + }, invalid_value: { class: { - int_list: "a list of numbers" + int_list: "a list of numbers", + numnull: "a number or Null", + map: "a dictionary" } } } diff --git a/projects/1.20/assets/hexthings/hexthings/lang/en_us.flatten.json5 b/projects/1.20/assets/hexthings/hexthings/lang/en_us.flatten.json5 index 6b8e96ad54eb..f2af1fd19b61 100644 --- a/projects/1.20/assets/hexthings/hexthings/lang/en_us.flatten.json5 +++ b/projects/1.20/assets/hexthings/hexthings/lang/en_us.flatten.json5 @@ -6,8 +6,6 @@ "": "Utilities", noop: "Does nothing, but the tail can be any shape. Useful as \ a placeholder to be replaced later", - insert: "Similar to $(l:patterns/lists#hexcasting:replace)$(action)Surgeon's Exaltation/$, but replaces the \ - element of the first list instead with the $(o)contents/$ of the second list, rather than with the list itself.", unquote: "This pattern can be used to place raw iota directly into an \ Introspection-Restrospection pair. After drawing this pattern, all \ subsequent patterns are \"unescaped\", allowing them to be executed as \ @@ -43,7 +41,7 @@ dict_ents: "Pushes a list of the key-value pairs in this Dictionary, each being \ a 2 element list." }, - uiua: { + lists: { "": "Advanced List Operators", uiua_take: "Keeps elements of the list based on the second argument. If it's a \ number and positive, it keeps the first $(o)n/$ elements of the list, if \ @@ -58,7 +56,15 @@ $(l:patterns/logic#hexcasting:bool_coerce)considered true by Nature/$.", div: "Pushes a list containing pairs of values corresponding to the values at that \ index in each list.", - mul: "Pushes a list containing every combination of elements between the two lists." + mul: "Pushes a list containing every combination of elements between the two lists.", + insert: "Similar to $(l:patterns/lists#hexcasting:replace)$(action)Surgeon's Exaltation/$, but replaces the \ + element of the first list instead with the $(o)contents/$ of the second list, rather than with the list itself.", + make_range: { + "1": "Creates a list from num #1 to num #2, with a step size of num #3 (or 1 if passed null). For example, \ + A stack of [1, 2, 0.5] would result in a list of [1, 1.5].", + "2": "This pattern will mishap if the step size is 0, or if the resulting list would be larger than Nature \ + allows." + } } }, info: { @@ -104,7 +110,8 @@ uiua_take: "Retention Distillation", uiua_drop: "Rejection Distillation", uiua_rotate: "Ferris Distillation", - uiua_where: "Deduction Purification" + uiua_where: "Deduction Purification", + make_range: "Ranger's Exaltation" }, // use this to add shortened versions of pattern names if the full name won't fit in the ingame book @@ -122,9 +129,15 @@ mishap: { "invalid_unquote": "Did not first cast Introjection.", "invalid_key_type": "An iota of type %s is not allowed as a key.", + "malformed_range": { + "zero": "Cannot have a step size of 0", + "size": "List of size %s would exceed max size of current stack" + }, invalid_value: { class: { - int_list: "a list of numbers" + int_list: "a list of numbers", + numnull: "a number or Null", + map: "a dictionary" } } } diff --git a/projects/1.20/assets/hexthings/hexthings/lang/zh_cn.flatten.json5 b/projects/1.20/assets/hexthings/hexthings/lang/zh_cn.flatten.json5 index d4270f3fb079..d6073f9298f7 100644 --- a/projects/1.20/assets/hexthings/hexthings/lang/zh_cn.flatten.json5 +++ b/projects/1.20/assets/hexthings/hexthings/lang/zh_cn.flatten.json5 @@ -6,12 +6,10 @@ "": "实用", noop: "什么都不会做,但图案尾部可为任意形状。适合用作替换占位符。", - insert: "与$(l:patterns/lists#hexcasting:replace)$(action)外科医师之提整/$\ - 类似,但会使用第二列表中的各元素替换第一列表中的元素,而非以列表整体进行替换。", - unquote: "此图案可用于直接将原始 iota 置入内省-反思对。绘制此图案后,所有\ 后续的图案会被“取消转义”,运行时会按原有功能执行。此效应的作用范围停止于\ - $(l:patterns/hexutils#hexthings:requote)$(action)反掷/$。", + $(l:patterns/hexutils#hexthings:requote)$(action)回掷/$。", + requote: "在$(l:patterns/hexutils#hexthings:unquote)$(action)内投/$后\ 绘制时,其会将栈上的所有 iota 置入转义的列表,并将栈恢复到原先的状态。", @@ -43,7 +41,7 @@ dict_ents: "返回字典中的键值对,各键值对均为长度为 2 的列表。" }, - uiua: { + lists: { "": "高阶列表操作", uiua_take: "根据第二参数保留列表元素。若参数为正数,则保留列表中的\ 开头 $(o)n/$ 个元素;若为负,则保留末尾 $(o)n/$ 个。若第二参数为列表,\ @@ -54,11 +52,19 @@ uiua_rotate: "按所给量移动列表元素,“超出”列表的元素会从另一端返回。", - uiua_where: "挑选列表中$(l:patterns/logic#hexcasting:bool_coerce)自然认作 True/$\ + uiua_where: "挑选列表中$(l:patterns/logic#hexcasting:bool_coerce)自然认作 True/$ \ 的元素,以列表形式返回它们的下标。", div: "取出各列表中同下标的元素对,将各元素对组为列表返回。", - mul: "从两列表中各取一个元素,将所有可能的取值组合组为列表返回。" + mul: "从两列表中各取一个元素,将所有可能的取值组合组为列表返回。", + insert: "与$(l:patterns/lists#hexcasting:replace)$(action)外科医师之提整/$类似,\ + 但会将第二列表的$(o)内容/$插入第一列表,而不是替换为列表本身。", + make_range: { + "1": "创建介于 1 号 num 到 2 号 num 间的列表,步长为 3 号 num(传入 Null 则为 1)。\ + 例如,形如 [1, 2, 0.5] 的栈会给出列表 [1, 1.5]。", + "2": "此图案会在步长为 0 时招致事故,所得列表大于自然的容许限度也会招致事故。" + + } } }, info: { @@ -95,7 +101,7 @@ noop: "耐心", insert: "扁平之提整", unquote: "内投", - requote: "反掷", + requote: "回掷", isgreatersent: "碎片之精思", empty_dict: "僵局之精思", dict_keys: "访问器之纯化", @@ -104,7 +110,8 @@ uiua_take: "维持之馏化", uiua_drop: "拒斥之馏化", uiua_rotate: "摩天轮之馏化", - uiua_where: "演绎之纯化" + uiua_where: "演绎之纯化", + make_range: "范限之提整" }, // use this to add shortened versions of pattern names if the full name won't fit in the ingame book @@ -122,9 +129,15 @@ mishap: { "invalid_unquote": "未先绘制内投。", "invalid_key_type": "%s类型的iota不可用作键。", + "malformed_range": { + "zero": "步长不可为0", + "size": "大小为%s的列表会超出当前栈的最大大小" + }, invalid_value: { class: { - int_list: "一个数列表" + int_list: "一个数列表", + numnull: "一个数或Null", + map: "一个字典" } } }