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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@
}
}
},
"iota.noophaestus": {
enchantment: "Enchantment",
"iota.noophaestus:": {
"enchantment/": {
lesser: "Lesser Enchantment",
greater: "Greater Enchantment",
},
enchantment_group: "Enchantment Group",
},
"mishap.invalid_value.class": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@
}
}
},
"iota.noophaestus": {
enchantment: "魔咒",
"iota.noophaestus:": {
"enchantment/": {
lesser: "初等魔咒",
greater: "卓越魔咒",
},
enchantment_group: "魔咒组",
},
"mishap.invalid_value.class": {
Expand Down
159 changes: 159 additions & 0 deletions projects/1.20/assets/hexthings/hexthings/lang/en_us.flatten.json5
Original file line number Diff line number Diff line change
@@ -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.",
},
},
},
},
},
}
159 changes: 159 additions & 0 deletions projects/1.20/assets/hexthings/hexthings/lang/zh_cn.flatten.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
{
hexthings: {
book: {
patterns: {
utils: {
"": "实用",
noop: "什么都不会做,但图案尾部可为任意形状。适合用作替换占位符。",

insert: "与$(l:patterns/lists#hexcasting:replace)$(action)外科医师之提整/$\
类似,但会使用第二列表中的各元素替换第一列表中的元素,而非以列表整体进行替换。",

unquote: "此图案可用于直接将原始 iota 置入内省-反思对。绘制此图案后,所有\
后续的图案会被“取消转义”,运行时会按原有功能执行。此效应的作用范围停止于\
$(l:patterns/hexutils#hexthings:requote)$(action)反掷/$。",

requote: "在$(l:patterns/hexutils#hexthings:unquote)$(action)内投/$后\
绘制时,其会将栈上的所有 iota 置入转义的列表,并将栈恢复到原先的状态。",


isgreatersent: "检验我当前的哨卫是否是\
$(l:patterns/great_spells/greater_sentinel)$(action)卓越哨卫/$,无哨卫\
则返回 $(l:patterns/consts#hexcasting:const/null)$(thing)Null/$。"

},
dict: {
"": "字典操作",
empty_dict: "创建一个空字典 iota。",
abs: "返回字典的条目数。",
replace: "将 iota 置入字典中所给键处。不是所有 iota 都可用作键,禁用示例有\
$(l:casting/influences)$(thing)垃圾/$、$(l:patterns/meta#hexcasting:eval/cc)$(thing)跳转/$ iota。\
试图设置键 $(l:patterns/consts#hexcasting:const/null)$(thing)Null/$ 的值会\
移除该条目,方式与使用$(l:patterns/dict#hexcasting:remove_from)$(action)切除器之馏化/$一致。",



remove_from: "从字典中移除键值对,返回移除的值,若不具备值则\
返回 $(l:patterns/consts#hexcasting:const/null)$(thing)Null/$。",

index_of: "返回所给键对应的值,若不具备值则\
返回 $(l:patterns/consts#hexcasting:const/null)$(thing)Null/$。",
dict_keys: "返回字典的键列表。",
dict_vals: "返回字典的值列表。",
dict_ents: "返回字典中的键值对,各键值对均为长度为 2 的列表。"

},
uiua: {
"": "高阶列表操作",
uiua_take: "根据第二参数保留列表元素。若参数为正数,则保留列表中的\
开头 $(o)n/$ 个元素;若为负,则保留末尾 $(o)n/$ 个。若第二参数为列表,\
则将其视作要保留元素的下标。",

uiua_drop: "$(l:patterns/uiua#hexthings:uiua_take)$(action)维持之馏化/$\
的反操作,会删除指定的元素,而不是删除未指定的。",

uiua_rotate: "按所给量移动列表元素,“超出”列表的元素会从另一端返回。",

uiua_where: "挑选列表中$(l:patterns/logic#hexcasting:bool_coerce)自然认作 True/$\
的元素,以列表形式返回它们的下标。",
div: "取出各列表中同下标的元素对,将各元素对组为列表返回。",

mul: "从两列表中各取一个元素,将所有可能的取值组合组为列表返回。"
}
},
info: {
iota_embedding: {
"title": "Iota 嵌入",
"text": {
"1": "我在研究中发现了……在咒术中“嵌入”iota 的方法,从而避免每次施法都\
费工夫从头构建。和$(l:items/hexcasting)$(item)施法物品/$一起使用时极其强大,\
可以大幅加快施法,也可简化使用其中咒术的操作。",


"2": "通常而言,这一过程需以内省-反思对起始,再在其中使用占位图案,而后\
使用$(l:patterns/lists#hexcasting:index_of)$(action)定位器之馏化/$和\
$(l:patterns/lists#hexcasting:replace)$(action)外科医师之提整/$替换,并在其后\
添加$(l:patterns/lists#hexcasting:splat)$(action)群体之拆解/$以访问其中 iota。\
这种做法确实费时费力。但我对这门技艺的探索得到了自然的青睐,因为我最近\
发现了能简化此过程的两个图案。"



}
}
},
noop_examples: {
"header": "耐心图案",
"text": "部分可用耐心图案的示例。"
}
}
},

hexcasting: {
action: {
"hexthings:": {
noop: "耐心",
insert: "扁平之提整",
unquote: "内投",
requote: "反掷",
isgreatersent: "碎片之精思",
empty_dict: "僵局之精思",
dict_keys: "访问器之纯化",
dict_vals: "访问对象之纯化",
dict_ents: "条目之纯化",
uiua_take: "维持之馏化",
uiua_drop: "拒斥之馏化",
uiua_rotate: "摩天轮之馏化",
uiua_where: "演绎之纯化"
},

// 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: "耐心"
}
},
mishap: {
"invalid_unquote": "未先绘制内投。",
"invalid_key_type": "%s类型的iota不可用作键。",
invalid_value: {
class: {
int_list: "一个数列表"
}
}
}
},

text: {
"autoconfig.hexthings": {
title: "HexThings配置",

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.",
},
},
},
},
},
}
47 changes: 47 additions & 0 deletions projects/1.20/assets/modrinth-yaha/yaha/lang/en_us.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"advancements.yaha.collide_planes.title": "Magically Assured Destruction",
"advancements.yaha.collide_planes.description": "Intercept one Paper Plane with another.",
"advancements.yaha.bomb_defusal.title": "Bomb Defusal",
"advancements.yaha.bomb_defusal.description": "Disarm a Time Bomb. It's a shame you can only do this to your own bombs.",
"advancements.yaha.eat_bomb.title": "Why Would You Eat That?",
"advancements.yaha.eat_bomb.description": "Eat a Time Bomb. Didn't taste very good...",
"advancements.yaha.susception.title": "Blockception",
"advancements.yaha.susception.description": "Bury a block in its own kind for more block per block.",
"death.attack.yaha.paper_plane": "%1$s was dealt a fatal paper cut by %2$s",
"death.attack.yaha.paper_plane.item": "%1$s was dealt a fatal paper cut by %2$s using %3$s",
"item.yaha.time_bomb": "Disarmed Time Bomb",
"item.yaha.spindle": "Thought Knot Spindle",
"item.yaha.pouch": "Focal Pouch",

"hexcasting.mishap.bad_item.yaha:paper_plane": "a Paper Plane",
"hexcasting.mishap.bad_item.yaha:potion": "a thrown potion",
"hexcasting.mishap.yaha:no_time_bomb": "Must be cast by a Time Bomb.",
"hexcasting.mishap.bad_block.yaha:sussifiable": "a block with a suspicious variant",

"yaha.page.bundles.title": "Spindles and Pouches",
"yaha.page.bundles.0": "The $(l:items/thought_knot)Thought Knots$() and $(l:items/focus)Foci$() I've amassed have begun to put a strain on my storage. What was once a manageable handful of string or amethyst, when turned into iota-keeping devices, barely fits inside a large chest. Therefore, I have developed simple tools to bundle my work.",
"yaha.page.spindle.summary": "A $(item)Spindle$() with the capacity of 16 $(l:items/thought_knot)Thought Knots$().$(br2)$(italic)And here's where I keep assorted lengths of wire.",
"yaha.page.pouch.summary": "A $(item)Pouch$() with the capacity of 16 $(l:items/focus)Foci$().",
"yaha.page.bundles.1": "These act similarly to $(item)Bundles$() for the insertion and removal of items. Right-clicking with the spindle or pouch in my off-hand will eject all stored items onto the ground.$(br2)It seems these tools can also be read from with $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection$(). What returns is the iota of a randomly chosen $(l:items/thought_knot)Thought Knot$() or $(l:items/focus)Focus$(), or null if the chosen item had no iota stored.",

"yaha.page.armaments.title": "Caster's Armaments",
"yaha.page.armaments.0": "I've devised a set of media-borne weaponry to improve upon my offensive Hexes in flair, if not in power.",
"hexcasting.action.yaha:paper_plane": "Conjure Paper Plane",
"yaha.page.paper_plane.summary": "Summons a projectile that slowly flies towards the given entity, dealing a heart of damage. Costs one $(l:items/amethyst)$(item)Amethyst Dust$(). Adds itself onto the stack.",
"yaha.page.paper_plane.0": "A sheet of media bearing the iota of an entity, folded like a paper plane. The embedded iota coerces the plane towards its target. With such fragile construction, it does not deal much damage and loses form after about 10 seconds. Planes can also be redirected, much like a fireball, and lose their target upon doing so.",
"yaha.page.paper_plane.1": "Normally, paper planes pass through one another. However, conjuring a plane with another as a target allows the first to collide with the second. Planes without a target fly in a straight path.",
"hexcasting.action.yaha:paper_plane_target": "Aima Purification",
"yaha.page.paper_plane_target.summary": "Returns the target of a paper plane, or null if it does not have one.",
"hexcasting.action.yaha:time_bomb": "Conjure Time Bomb",
"yaha.page.time_bomb.summary": "$(br)Summons a floating projectile that casts after a given duration. Costs one $(l:items/amethyst)$(item)Charged Amethyst$(), plus the media given to the bomb. Adds itself onto the stack.",
"yaha.page.time_bomb.0": "A hex wrapped in layers of media, quickly shedding upon detonation.$(br2)The required arguments are as follows:$(li)The position of the bomb$(li)A list of patterns to be cast by the bomb$(li)The amount of media in units of $(l:items/amethyst)$(item)Dust$() given to the bomb's cast$(li)The duration before casting, in ticks",
"yaha.page.time_bomb.1": "The bomb casts as the player that produced it, has an ambit of 8 blocks around it, and can be knocked back by attacks and other projectiles. The bomb entity still exists during its cast, which must be considered when dealing with $(l:patterns/entities)Zone Distillations$()",
"hexcasting.action.yaha:time_bomb_pos": "Kavruka Reflection",
"yaha.page.time_bomb_pos.summary": "Returns the position of the time bomb casting this pattern. Mishaps if not cast by a bomb.",

"yaha.page.spells.title": "Yaha Spells",
"hexcasting.action.yaha:sussify_block": "Bury Item",
"yaha.page.sussify_block.summary": "Buries the item entity into a sand or gravel block, forming suspicious sand/gravel. Costs an eighth of an $(l:items/amethyst)$(item)Amethyst Dust$().",
"hexcasting.action.yaha:potion_to_item": "Pluck",
"yaha.page.potion_to_item.summary": "Plucks a potion out of the air, turning it into an item entity. Costs one $(l:items/amethyst)$(item)Charged Amethyst$().$(br2)I do wonder... what would happen if a projectile were to cast this onto itself?"
}
Loading
Loading