From 3849457fe718f2bbe8c1923fad49b0be52fa84ff Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Sat, 26 Jul 2025 05:18:11 +0800 Subject: [PATCH 01/10] Hexcassettes Hexcellular SpecialEfhexs Hexodus Overevaluate Scryglass Hexpose transfer --- .../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 ++ .../1UNKNOWN/overevaluate/lang/en_us.json | 89 ++++++ .../1UNKNOWN/overevaluate/lang/zh_cn.json | 89 ++++++ .../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 ++ .../modrinth-hexpose/hexpose/lang/en_us.json | 296 ++++++++++++++++++ .../modrinth-hexpose/hexpose/lang/zh_cn.json | 295 +++++++++++++++++ 18 files changed, 1217 insertions(+) create mode 100644 projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json create mode 100644 projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json 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/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/overevaluate/lang/en_us.json create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/overevaluate/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 create mode 100644 projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json create mode 100644 projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json 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 create mode 100644 projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json create mode 100644 projects/1.20-fabric/assets/modrinth-hexpose/hexpose/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 new file mode 100644 index 000000000000..1de9dc9a7f06 --- /dev/null +++ b/projects/1.19/assets/modrinth-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/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json new file mode 100644 index 000000000000..bacc31a260be --- /dev/null +++ b/projects/1.19/assets/modrinth-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.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/efhexs/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json new file mode 100644 index 000000000000..56d1d9f2b4c4 --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/en_us.json @@ -0,0 +1,47 @@ +{ + "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 new file mode 100644 index 000000000000..16baf932d85f --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/efhexs/lang/zh_cn.json @@ -0,0 +1,47 @@ +{ + "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 new file mode 100644 index 000000000000..7df32df5597e --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/en_us.json @@ -0,0 +1,31 @@ +{ + "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 new file mode 100644 index 000000000000..819880ba0ac2 --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/hexodus/lang/zh_cn.json @@ -0,0 +1,31 @@ +{ + "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/overevaluate/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json new file mode 100644 index 000000000000..0fc0537483d0 --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/en_us.json @@ -0,0 +1,89 @@ +{ + "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 but got %s.", + "hexcasting.mishap.overevaluate:themis_empty": "Expected a number at the top of the Themis pseudo-stack but got nothing.", + "hexcasting.mishap.invalid_value.jumble_list": "a list of integers such that all integers are under the argument count", + "hexcasting.mishap.invalid_value.class.jumble": "a jumble iota", + + "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.jumble.title": "Jumble Iota", + "overevaluate.page.jumble.0": "Jumble iota are a highly versatile and expressive method of stack manipulation; a single jumble iota can copy, remove, and reorder the stack while being highly readable and instantly understandable.$(br2)When a _Hex tries to process a jumble iota, a number of iotas from the stack indicated by the first number in the jumble iota are popped.", + "overevaluate.page.jumble.1": "These popped iotas are stored on a temporary list called the reference list. Then, the list of positive integers indicated by the jumble iota are read one by one, indexing into the reference list and pushing the iota to the stack.$(br2)The jumble iota $(thing)$(o)2 [1 0]$() will pop two iotas off the stack. Then, it will push the iota at index 1 of the reference list, followed by the iota at index 0. In practice, it is identical to $(l:patterns/stackmanip#hexcasting:swap)$(action)Jester's Gambit$().", + "hexcasting.action.overevaluate:create_jumble": "Jumbling Gambit", + "overevaluate.page.create_jumble.summary": "Creates a jumble iota corresponding to the argument count and the list of numbers.", + "hexcasting.action.overevaluate:dissolve_jumble": "Jumbling Decomposition", + "overevaluate.page.dissolve_jumble.summary": "Dissolves a jumble iota back into a number and a list of numbers.", + + "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_reset": "Soroban Gambit", + "overevaluate.page.soroban_reset.summary": "Resets the soroban to 0.", + "hexcasting.action.overevaluate:soroban_set": "Soroban Gambit II", + "overevaluate.page.soroban_set.summary": "Pops a number from the stack and sets the soroban to it.", + + "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 new file mode 100644 index 000000000000..4b68e15017bf --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json @@ -0,0 +1,89 @@ +{ + "hexcasting.mishap.overevaluate:assert": "断言失败:%s。", + "hexcasting.mishap.overevaluate:needs_skippable": "本应在可跳过的上下文内运行。", + "hexcasting.mishap.overevaluate:needs_thoth": "本应在托特之策略内运行。", + "hexcasting.mishap.overevaluate:apep": "阿佩普之策略的伪栈栈顶本应存在一个iota。", + "hexcasting.mishap.overevaluate:themis": "忒弥斯之策略的伪栈栈顶本应存在一个数,而实际为%s。", + "hexcasting.mishap.overevaluate:themis_empty": "忒弥斯之策略的伪栈栈顶本应存在一个数,而实际没有。", + "hexcasting.mishap.invalid_value.jumble_list": "一个整数列表,且其中各元素均应小于参数数目", + "hexcasting.mishap.invalid_value.class.jumble": "一个理栈iota", + + "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.jumble.title": "理栈 Iota", + "overevaluate.page.jumble.0": "理栈 iota 能操控栈的结构,它简明易读且用处极多。单个理栈 iota 就可复制、移除、重排栈中元素,同时保持了高度的可读性,且读一遍就能理解。$(br2)$(hex)咒术$()在处理理栈 iota 时,会先弹出一定数量的 iota,此数即是理栈 iota 中的第一个数。", + "overevaluate.page.jumble.1": "这些弹出的 iota 会进入一个临时列表,称“引用列表”。然后,理栈 iota 会依次读取其第二部分——正整数列表——的各正整数,以之为索引获取引用列表中对应位置的 iota 压入栈中。$(br2)形如 $(thing)$(o)2 [1 0]$() 的理栈 iota 会弹出两个 iota。然后它会首先将引用列表中索引为 1 的 iota 压栈,再将索引为 0 的 iota 压栈。此理栈 iota 的效果和$(l:patterns/stackmanip#hexcasting:swap)$(action)弄臣之策略$()一致。", + "hexcasting.action.overevaluate:create_jumble": "理栈之策略", + "overevaluate.page.create_jumble.summary": "使用参数数目和数列表创建理栈 iota。", + "hexcasting.action.overevaluate:dissolve_jumble": "理栈之分解", + "overevaluate.page.dissolve_jumble.summary": "将理栈 iota 拆回数和数列表。", + + "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_reset": "珠算之策略", + "overevaluate.page.soroban_reset.summary": "将珠算计数器重置为 0。", + "hexcasting.action.overevaluate:soroban_set": "珠算之策略,第二型", + "overevaluate.page.soroban_set.summary": "移除栈顶数,将珠算计数器设为改数。", + + "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 new file mode 100644 index 000000000000..f01542e875e4 --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json @@ -0,0 +1,24 @@ +{ + "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 new file mode 100644 index 000000000000..5e22dc7f5f3f --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json @@ -0,0 +1,24 @@ +{ + "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 new file mode 100644 index 000000000000..eaf9c35f13d0 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/en_us.json @@ -0,0 +1,42 @@ +{ + "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 $(l:patterns/text_iotas)$(thing)text iota$() 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.ponder_cassette)$(). Busy $(thing)Cassettes$() are sunken and have their label rendering to the side of them.$(br2)Dying also forcibly ends all of my $(thing)Cassettes$().", + "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 $(l:patterns/text_iotas)$(thing)text iota$(). 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 label 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 new file mode 100644 index 000000000000..7098796913c7 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexcassettes/hexcassettes/lang/zh_cn.json @@ -0,0 +1,42 @@ +{ + "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_cassette": "思索磁带", + "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)磁带$()间使用$(l:patterns/text_iotas)$(thing)文本 iota$() 进行标识和区分,取消$(thing)磁带$()和获取其信息都需借助该标签。$(br2)按住$(thing)$(k:hexcassettes.ponder_cassette)$()可以查看我的所有$(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)入队列$()的一个变种,还需向其提供一个$(l:patterns/text_iotas)$(thing)文本 iota$()。此标签会将$(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 new file mode 100644 index 000000000000..0f30d194383f --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/en_us.json @@ -0,0 +1,23 @@ +{ + "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 new file mode 100644 index 000000000000..a657275a1e34 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexcellular/hexcellular/lang/zh_cn.json @@ -0,0 +1,23 @@ +{ + "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 diff --git a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json new file mode 100644 index 000000000000..6354d787fe42 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json @@ -0,0 +1,296 @@ +{ + "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/modrinth-hexpose/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json new file mode 100644 index 000000000000..38663d75b343 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json @@ -0,0 +1,295 @@ +{ + "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)画$()的类型。" +} From 5cb85ba0ffe81443e0ddb42e328ea83d6f1cae1a Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Thu, 7 Aug 2025 16:39:38 +0800 Subject: [PATCH 02/10] CalciteCircles create --- projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/en_us.json | 5 +++++ projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/zh_cn.json | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/en_us.json create mode 100644 projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/zh_cn.json diff --git a/projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/en_us.json b/projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/en_us.json new file mode 100644 index 000000000000..34e550049aa2 --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/en_us.json @@ -0,0 +1,5 @@ +{ + "block.calcite.chalk": "Chalk", + "item.calcite.chalk": "Chalk", + "calcite.chalk.queue": "Queue: %s" +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/zh_cn.json b/projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/zh_cn.json new file mode 100644 index 000000000000..211010a89abc --- /dev/null +++ b/projects/1.20-fabric/assets/1UNKNOWN/calcite/lang/zh_cn.json @@ -0,0 +1,5 @@ +{ + "block.calcite.chalk": "粉笔痕", + "item.calcite.chalk": "粉笔", + "calcite.chalk.queue": "队列:%s" +} \ No newline at end of file From c0ef14e394bb096bd760811d711bf5293e3754a2 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Sun, 14 Sep 2025 04:16:20 +0800 Subject: [PATCH 03/10] =?UTF-8?q?Overevaluate=20HexCassettes=20Hexpose=20u?= =?UTF-8?q?pdate=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/overevaluate/lang/en_us.json | 2 +- .../hexcassettes/lang/en_us.json | 14 +-- .../hexcassettes/lang/zh_cn.json | 14 +-- .../modrinth-hexpose/hexpose/lang/en_us.json | 91 +++++++++++-------- .../modrinth-hexpose/hexpose/lang/zh_cn.json | 89 +++++++++++------- 5 files changed, 124 insertions(+), 86 deletions(-) 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 0fc0537483d0..74cf680f1f2a 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 @@ -30,7 +30,7 @@ "overevaluate.page.dup_many.summary": "Takes a number and duplicates that many elements of the stack while preserving order.", "overevaluate.page.jumble.title": "Jumble Iota", - "overevaluate.page.jumble.0": "Jumble iota are a highly versatile and expressive method of stack manipulation; a single jumble iota can copy, remove, and reorder the stack while being highly readable and instantly understandable.$(br2)When a _Hex tries to process a jumble iota, a number of iotas from the stack indicated by the first number in the jumble iota are popped.", + "overevaluate.page.jumble.0": "Jumble iotas are a highly versatile and expressive method of stack manipulation; a single jumble iota can copy, remove, and reorder the stack while being highly readable and instantly understandable.$(br2)When a _Hex tries to process a jumble iota, a number of iotas from the stack indicated by the first number in the jumble iota are popped.", "overevaluate.page.jumble.1": "These popped iotas are stored on a temporary list called the reference list. Then, the list of positive integers indicated by the jumble iota are read one by one, indexing into the reference list and pushing the iota to the stack.$(br2)The jumble iota $(thing)$(o)2 [1 0]$() will pop two iotas off the stack. Then, it will push the iota at index 1 of the reference list, followed by the iota at index 0. In practice, it is identical to $(l:patterns/stackmanip#hexcasting:swap)$(action)Jester's Gambit$().", "hexcasting.action.overevaluate:create_jumble": "Jumbling Gambit", "overevaluate.page.create_jumble.summary": "Creates a jumble iota corresponding to the argument count and the list of numbers.", 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 eaf9c35f13d0..db9b42f2be35 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 @@ -5,6 +5,8 @@ "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.", + "hexcassettes.free": "Cassette is free...", + "hexcasting.mishap.hexcassettes:no_free_cassettes": "Could not queue Cassette.", "key.categories.hexcassettes": "Hexcassettes", "key.hexcassettes.ponder_cassette": "Ponder Cassettes", "item.hexcassettes.cassette": "Cassette", @@ -13,16 +15,16 @@ "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 $(l:patterns/text_iotas)$(thing)text iota$() 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.ponder_cassette)$(). Busy $(thing)Cassettes$() are sunken and have their label rendering to the side of them.$(br2)Dying also forcibly ends all of my $(thing)Cassettes$().", - "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.", + "hexcassettes.page.enqueue.summary.1": "A variant that takes an additional $(l:patterns/text_iotas)$(thing)text iota$(). Queues the _Hex under the given label.", + "hexcassettes.page.async.1": "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$().", + "hexcassettes.page.async.2": "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.3": "The label of a $(thing)Cassette$() is a $(l:patterns/text_iotas)$(thing)text iota$() 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 pressing $(thing)$(k:hexcassettes.ponder_cassette)$().$(br2)Dying also forcibly ends all of my $(thing)Cassettes$().", + "hexcassettes.page.async.4": "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", @@ -35,8 +37,6 @@ "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 $(l:patterns/text_iotas)$(thing)text iota$(). 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 label 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 7098796913c7..f199c01c74e7 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 @@ -5,6 +5,8 @@ "advancements.hexcassettes.tape_worm.description": "吃下一盒磁带", "advancements.hexcassettes.full_arsenal.title": "完整专辑", "advancements.hexcassettes.full_arsenal.description": "填满磁带库", + "hexcassettes.free": "磁带空闲……", + "hexcasting.mishap.hexcassettes:no_free_cassettes": "无法排队至磁带。", "key.categories.hexcassettes": "Hexcassettes", "key.hexcassettes.ponder_cassette": "思索磁带", "item.hexcassettes.cassette": "磁带", @@ -13,16 +15,16 @@ "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)磁带$()间使用$(l:patterns/text_iotas)$(thing)文本 iota$() 进行标识和区分,取消$(thing)磁带$()和获取其信息都需借助该标签。$(br2)按住$(thing)$(k:hexcassettes.ponder_cassette)$()可以查看我的所有$(thing)磁带$()。忙状态的$(thing)磁带$()会显示为压入状态,且在其侧面显示对应标签。$(br2)死亡会强制将所有$(thing)磁带$()清出队列。", - "hexcassettes.page.async.3": "若$(thing)磁带$()将可继续执行入队列操作的自身副本入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(br2)$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()施放的$(hex)咒术$()只会消耗我物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。", + "hexcassettes.page.enqueue.summary.1": "此图案的一个变种,还需向其提供一个$(l:patterns/text_iotas)$(thing)文本 iota$(),它会将$(hex)咒术$()排入所给标签的队列。", + "hexcassettes.page.async.1": "如果已经有$(thing)磁带$()使用了所给标签,则所给$(hex)咒术$()会覆盖该$(thing)磁带$()。$(br2)否则图案会将$(hex)咒术$()排至空槽位。如果没有足够的空槽位,则招致“并行处理”事故:终止所有的$(thing)磁带$()。", + "hexcassettes.page.async.2": "如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故:终止我的所有$(thing)磁带$()。$(br2)施放的延时有一个最小值,这似乎表明我所处世界的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()", + "hexcassettes.page.async.3": "$(thing)磁带$()间使用$(l:patterns/text_iotas)$(thing)文本 iota$() 进行标识和区分,取消$(thing)磁带$()和获取其信息都需借助该标签。$(br2)按住$(thing)$(k:hexcassettes.ponder_cassette)$()可以查看我的所有$(thing)磁带$()。忙状态的$(thing)磁带$()会显示为压入状态,且在其侧面显示对应标签。$(br2)死亡会强制将所有$(thing)磁带$()清出队列。", + "hexcassettes.page.async.4": "若$(thing)磁带$()将可继续执行入队列操作的自身副本入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(br2)$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()施放的$(hex)咒术$()只会消耗我物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。", "hexcasting.action.hexcassettes:dequeue": "出队列", "hexcassettes.page.dequeue.summary": "终止所给标签对应的$(thing)磁带$(),让其进入空闲状态,并取消其中$(hex)咒术$()。", "hexcasting.action.hexcassettes:killall": "终止队列", @@ -35,8 +37,6 @@ "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)入队列$()的一个变种,还需向其提供一个$(l:patterns/text_iotas)$(thing)文本 iota$()。此标签会将$(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-hexpose/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json index 6354d787fe42..35dcfb7bd782 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json @@ -1,9 +1,11 @@ { + "hexcasting.mishap.invalid_value.class.display": "a display iota", "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.boolean_or_null": "a boolean or null", "hexcasting.mishap.invalid_value.cat": "a cat", "hexcasting.mishap.invalid_value.creeper": "a creeper", + "hexcasting.mishap.invalid_value.display_list": "a list of display iotas", "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", @@ -12,12 +14,14 @@ "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.number_or_null": "a number or null", "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", + "hexcasting.mishap.invalid_value.vector_or_null": "a vector or null", "hexpose.item_stack.format": " | %s (%d)", "hexpose.item_stack.null": "Null Item", @@ -44,35 +48,50 @@ "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.display_iotas.title": "Display Iota", + "hexpose.page.display_iotas.0": "$(l:patterns/displays)$(thing)Display iotas$() encode stylized text using a recursive model. The iota holds text, styling for that text, $(o)and$() other child $(l:patterns/displays)$(thing)display iotas$(), which may themselves contain children and have differing styles than the parent. Children are appended sequentially after the parent.", + "hexpose.page.display_iotas.1": "The properties of the parent's style propagate down to their children, provided the child has an unset value for that property. For example, the children of a red-colored $(l:patterns/displays)$(thing)display iota$() will be red, unless a child has a style for another color. That second color is then the color that gets passed down to $(o)its$() children.", + "hexcasting.action.hexpose:create_display": "Reading Purification", + "hexpose.page.create_display.summary": "Takes an iota and returns a $(l:patterns/displays)$(thing)display iota$() representing it. If taking a $(l:patterns/displays)$(thing)display iota$(), strips all the styles of it.", + "hexpose.page.display_iotas.2": "The patterns that interact with $(l:patterns/displays)$(thing)display iotas$() are strangely multifaceted. While resembling distillations, they are actually $(o)gambits$().$(br2)If their described arguments are passed in, they modify the $(l:patterns/displays)$(thing)display iota$()'s root according to their speciality (example of modification included).$(br2)If the top of the stack is just a $(l:patterns/displays)$(thing)display iota$() however, they push the current value of the setting that they target.", + "hexcasting.action.hexpose:display_children": "Parsing Purification", + "hexpose.page.display_children.summary": "Gets or sets a list of $(l:patterns/displays)$(thing)display iotas$() corresponding to children of the $(l:patterns/displays)$(thing)display iota$().", + "hexcasting.action.hexpose:display_color": "Lumière Gambit", + "hexpose.page.display_color.summary": "Gets or sets a color encoded as a vector whose components range from 0 to 1. Pass in $(l:casting/influences)$(thing)Null$() to defer to parent.", + "hexcasting.action.hexpose:display_font": "Calligrapher's Gambit", + "hexpose.page.display_font.summary": "Gets or sets a number, corresponding to the font a text is drawn in. Pass in $(l:casting/influences)$(thing)Null$() to defer to parent.", + "hexpose.page.display_font.description": "0, 1, and 2 are the current fonts that I know of, corresponding to standard appearance, the runes I see surrounding an $(thing)Enchanting Table$(), and a strange variant of it that is allegedly used by ancient villagers.", + "hexcasting.action.hexpose:display_bold": "Gothic Gambit", + "hexpose.page.display_bold.summary": "Gets or sets a boolean, corresponding to whether it is $(l)bold$(). Pass in $(l:casting/influences)$(thing)Null$() to defer to parent.", + "hexcasting.action.hexpose:display_italics": "Manutius' Gambit", + "hexpose.page.display_italics.summary": "Gets or sets a boolean, corresponding to whether it is in $(o)italics$(). Pass in $(l:casting/influences)$(thing)Null$() to defer to parent.", + "hexcasting.action.hexpose:display_underline": "Notetaker's Gambit", + "hexpose.page.display_underline.summary": "Gets or sets a boolean, corresponding to whether it is $(n)underlined$(). Pass in $(l:casting/influences)$(thing)Null$() to defer to parent.", + "hexcasting.action.hexpose:display_strikethrough": "Editor's Gambit", + "hexpose.page.display_strikethrough.summary": "Gets or sets a boolean, corresponding to whether it has been $(m)struck through$(). Pass in $(l:casting/influences)$(thing)Null$() to defer to parent.", + "hexcasting.action.hexpose:display_obfuscated": "Censor's Gambit", + "hexpose.page.display_obfuscated.summary": "Gets or sets a boolean, corresponding to whether it is obfusca$(k)ted$(). Pass in $(l:casting/influences)$(thing)Null$() to defer to parent.", + + "hexpose.page.displays_mani.title": "Display Iota Manipulation", + "hexcasting.action.hexpose:compare_style": "Stylistic Distillation", + "hexpose.page.compare_style.summary": "Returns whether the two $(l:patterns/displays)$(thing)display iotas$() have the same style.", + "hexcasting.action.hexpose:parse_display": "Calculator Purification", + "hexpose.page.parse_display.summary": "Returns the number the $(l:patterns/displays)$(thing)display iota$()'s root says, or $(l:casting/influences)$(thing)Null$() if it can not be determined.", + "hexcasting.action.hexpose:split_display": "Cleaving Distillation", + "hexpose.page.split_display.summary": "$(br)Uses the second $(l:patterns/displays)$(thing)display iota$() as a delimiter to slice up the first into a list of $(l:patterns/displays)$(thing)display iotas$(). The elements do not retain their children.", + "hexcasting.action.hexpose:disintegrate_display": "Streaming Purification", + "hexpose.page.disintegrate_display.summary": "Transforms a $(l:patterns/displays)$(thing)display iota$() into a long stream of styled single characters for parsing purposes, including its children.", + "hexpose.page.displays_mani.0": "A number of common patterns also work on $(l:patterns/displays)$(thing)display iota$(), listed afterwards. However, it is worth noting that these patterns only operate on the \"root\" text, that is the textual content of the highest level; it will not for instance include the added length of children when determining length, nor reverse the text of children.", + "hexpose.page.abs_text.summary": "Returns the length of the $(l:patterns/displays)$(thing)display iota$()'s text.", + "hexpose.page.append_text.summary": "Adds the second $(l:patterns/displays)$(thing)display iota$() as a child of the first $(l:patterns/displays)$(thing)display iota$().", + "hexpose.page.unappend_text.summary": "Removes the last child from the provided $(l:patterns/displays)$(thing)display iota$() and returns the shortened $(l:patterns/displays)$(thing)display iota$() and the child.", + "hexpose.page.add_text.summary": "Append the second's text to the first's. Keeps the style of the first.", + "hexpose.page.mul_text.summary": "Returns a copy with the provided $(l:patterns/displays)$(thing)display iota$()'s text repeated.", + "hexpose.page.index_text.summary": "Returns the single character at the given position of the $(l:patterns/displays)$(thing)display iota$()'s text and keeps children.", + "hexpose.page.slice_text.summary": "$(br)Extracts a range from the $(l:patterns/displays)$(thing)display iota$()'s text and keeps children.", + "hexpose.page.replace_text.summary": "$(br)Replaces a single character from the $(l:patterns/displays)$(thing)display iota$()'s text with a potentially larger string and keeps children.", + "hexpose.page.remove_text.summary": "Removes a single character from the $(l:patterns/displays)$(thing)display iota$()'s text and keeps children.", + "hexpose.page.rev_text.summary": "Reverses the $(l:patterns/displays)$(thing)display iota$()'s text and keeps children.", "hexpose.page.special_raycasts.title": "Special Raycasts", "hexcasting.action.hexpose:fluid_raycast": "Dousing Distillation", @@ -108,7 +127,7 @@ "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.", + "hexpose.page.get_message.summary": "Pushes a $(l:patterns/displays)$(thing)display iota$() of the last person to use chat, a $(l:patterns/displays)$(thing)display 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.", @@ -146,7 +165,7 @@ "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.", + "hexpose.page.entity_name.summary": "Pushes a $(l:patterns/displays)$(thing)display 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.", @@ -191,7 +210,7 @@ "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", + "hexcasting.action.hexpose:create_stack": "Offer Distillation", "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.", @@ -225,8 +244,8 @@ "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:read_book": "Literature Purification", + "hexpose.page.read_book.summary": "Pushes a list of $(l:patterns/displays)$(thing)display 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", @@ -293,4 +312,4 @@ "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/modrinth-hexpose/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json index 38663d75b343..e239f077b2d7 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json @@ -1,9 +1,11 @@ { + "hexcasting.mishap.invalid_value.class.display": "一个文形", "hexcasting.mishap.invalid_value.class.identifier": "一个标识", "hexcasting.mishap.invalid_value.class.item_stack": "一个物品组", - "hexcasting.mishap.invalid_value.class.text": "一个文本iota", + "hexcasting.mishap.invalid_value.boolean_or_null": "一个布尔值或Null", "hexcasting.mishap.invalid_value.cat": "一只猫", "hexcasting.mishap.invalid_value.creeper": "一只苦力怕", + "hexcasting.mishap.invalid_value.display_list": "一个文形列表", "hexcasting.mishap.invalid_value.painting": "一幅画", "hexcasting.mishap.invalid_value.item_frame": "一个物品展示框", "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识", @@ -12,12 +14,14 @@ "hexcasting.mishap.invalid_value.food_id": "一个代表食物物品的标识", "hexcasting.mishap.invalid_value.identifiable": "一个可标识目标", "hexcasting.mishap.invalid_value.item_id": "一个代表物品的标识", + "hexcasting.mishap.invalid_value.number_or_null": "一个数或Null", "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": "一个可驯服实体", + "hexcasting.mishap.invalid_value.vector_or_null": "一个向量或Null", "hexpose.item_stack.format": " | %s(%d)", "hexpose.item_stack.null": "Null物品", @@ -44,35 +48,50 @@ "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.display_iotas.title": "文形 Iota", + "hexpose.page.display_iotas.0": "$(l:patterns/displays)$(thing)文形 iota$() 使用一套专用于文本及其样式的递归式编码模型。这类 iota 记录了文本、文本样式、$(o)以及$()子$(l:patterns/displays)$(thing)文形$()的信息;子文形也可具有子文形,且子文形的样式不必跟随父文形。子文形会按次序拼接在父文形后方。", + "hexpose.page.display_iotas.1": "若子文学某属性的值未给定,则会继承父文形该样式的属性。例如,红色$(l:patterns/displays)$(thing)文形$()的子文形也会是红色,除非子文形设置了其他颜色样式。之后,子文形会将最优先设置的颜色继承给$(o)它$()的子文形。", + "hexcasting.action.hexpose:create_display": "阅读之纯化", + "hexpose.page.create_display.summary": "接受一个 iota,返回代表它的$(l:patterns/displays)$(thing)文形$()。若传入$(l:patterns/displays)$(thing)文形$(),则去除所有样式。", + "hexpose.page.display_iotas.2": "和$(l:patterns/displays)$(thing)文形$()交互的图案有着奇异的多面性。它们看上去像是馏化,但实际上是$(o)策略$()。$(br2)传入对应的参数后,这些图案会对其根$(l:patterns/displays)$(thing)文形$()做出对应的改动(各页有附例)。$(br2)如果栈顶就只是一个$(l:patterns/displays)$(thing)文形$(),那么这些图案会返回对应样式当前的值。", + "hexcasting.action.hexpose:display_children": "解析之纯化", + "hexpose.page.display_children.summary": "获取$(l:patterns/displays)$(thing)文形$()的子$(l:patterns/displays)$(thing)文形$()列表,或将列表中的文形设为其子文形。", + "hexcasting.action.hexpose:display_color": "卢米埃尔之策略", + "hexpose.page.display_color.summary": "获取或设定文形的颜色,格式为各分量在 0 到 1 之间的向量。传入 $(l:casting/influences)$(thing)Null$() 可令其继承父文形。", + "hexcasting.action.hexpose:display_font": "书法师之策略", + "hexpose.page.display_font.summary": "获取或设定文形的字体,格式为一个数。传入 $(l:casting/influences)$(thing)Null$() 可令其继承父文形。", + "hexpose.page.display_font.description": "我目前所知的字体分别对应 0、1、2。0 为标准字体,1 是能在$(thing)附魔台$()周围看见的符文,2 对应传闻中古代村民所用的奇怪符文。", + "hexcasting.action.hexpose:display_bold": "哥特式之策略", + "hexpose.page.display_bold.summary": "获取或设定文形为$(l)粗体$()与否,格式为一个布尔值。传入 $(l:casting/influences)$(thing)Null$() 可令其继承父文形。", + "hexcasting.action.hexpose:display_italics": "马努提乌斯之策略", + "hexpose.page.display_italics.summary": "获取或设定文形为$(o)斜体$()与否,格式为一个布尔值。传入 $(l:casting/influences)$(thing)Null$() 可令其继承父文形。", + "hexcasting.action.hexpose:display_underline": "记录员之策略", + "hexpose.page.display_underline.summary": "获取或设定文形有无$(n)下划线$(),格式为一个布尔值。传入 $(l:casting/influences)$(thing)Null$() 可令其继承父文形。", + "hexcasting.action.hexpose:display_strikethrough": "编辑员之策略", + "hexpose.page.display_strikethrough.summary": "获取或设定文形有无$(m)删除线$(),格式为一个布尔值。传入 $(l:casting/influences)$(thing)Null$() 可令其继承父文形。", + "hexcasting.action.hexpose:display_obfuscated": "审查员之策略", + "hexpose.page.display_obfuscated.summary": "获取或设定文形为随机$(k)文本$()与否,格式为一个布尔值。传入 $(l:casting/influences)$(thing)Null$() 可令其继承父文形。", + + "hexpose.page.displays_mani.title": "文形 Iota 操纵", + "hexcasting.action.hexpose:compare_style": "样式之馏化", + "hexpose.page.compare_style.summary": "检验两$(l:patterns/displays)$(thing)文形$()的样式是否相同。", + "hexcasting.action.hexpose:parse_display": "计算器之纯化", + "hexpose.page.parse_display.summary": "返回根$(l:patterns/displays)$(thing)文形$()对应的数,若无法解析为数则返回 $(l:casting/influences)$(thing)Null$()。", + "hexcasting.action.hexpose:split_display": "剪文之馏化", + "hexpose.page.split_display.summary": "$(br)以第二个$(l:patterns/displays)$(thing)文形$()为分隔符,将第一个$(l:patterns/displays)$(thing)文形$()拆分为文形列表。两参数的子文形不会保留。", + "hexcasting.action.hexpose:disintegrate_display": "文形流之纯化", + "hexpose.page.disintegrate_display.summary": "将$(l:patterns/displays)$(thing)文形$()转换成一长串单个带样式字符组成的流,以便解析等功能使用。子文形也会经历此变换。", + "hexpose.page.displays_mani.0": "许多普通图案也对$(l:patterns/displays)$(thing)文形$()有效,具体见后页。不过需要注意的是,这些图案只作用于“根”文形,也即最高层次的文本内容。比如说在判定长度时,接在后方的子文形不会纳入统计;又比如反转操作不会反转子文形。", + "hexpose.page.abs_text.summary": "返回$(l:patterns/displays)$(thing)文形$()文本的长度。", + "hexpose.page.append_text.summary": "将第二个$(l:patterns/displays)$(thing)文形$()加作第一个$(l:patterns/displays)$(thing)文形$()的子文形。", + "hexpose.page.unappend_text.summary": "移除所给$(l:patterns/displays)$(thing)文形$()的最后一个子文形,返回截断的$(l:patterns/displays)$(thing)文形$()和截出的子文形。", + "hexpose.page.add_text.summary": "将第二参数的文本拼接在第一参数的后方。使用第一参数的样式。", + "hexpose.page.mul_text.summary": "返回原$(l:patterns/displays)$(thing)文形$()的副本,其文本为原文形文本重复多次。", + "hexpose.page.index_text.summary": "返回原$(l:patterns/displays)$(thing)文形$()文本给定位置处的单个字符,保留子文形。", + "hexpose.page.slice_text.summary": "$(br)依照所给范围从原$(l:patterns/displays)$(thing)文形$()中截取文本,保留子文形。", + "hexpose.page.replace_text.summary": "$(br)将原$(l:patterns/displays)$(thing)文形$()文本中单个字符替换为新文本,可超出原有长度,保留子文形。", + "hexpose.page.remove_text.summary": "从原$(l:patterns/displays)$(thing)文形$()的文本中移除单个字符,保留子文形。", + "hexpose.page.rev_text.summary": "反转原$(l:patterns/displays)$(thing)文形$()的文本,保留子文形。", "hexpose.page.special_raycasts.title": "特殊射线追踪", "hexcasting.action.hexpose:fluid_raycast": "占水之馏化", @@ -107,7 +126,7 @@ "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 秒。", + "hexpose.page.get_message.summary": "以$(l:patterns/displays)$(thing)文本$()形式返回最近一次使用聊天栏的玩家,同时以$(l:patterns/displays)$(thing)文本$()形式返回该消息,以及发送时间距现在有多少个 1/20 秒。", "hexcasting.action.hexpose:get_chat": "报纸之精思", "hexpose.page.get_chat.summary": "对最近最多 32 条聊天栏消息执行$(l:patterns/scrying/chat#hexpose:get_message)$(action)新闻之精思$();每个消息的执行结果各自组为列表,再将这些列表组为列表返回。", @@ -145,7 +164,7 @@ "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)文本$()形式返回所给实体的名称,带格式。", + "hexpose.page.entity_name.summary": "以$(l:patterns/displays)$(thing)文本$()形式返回所给实体的名称,带格式。", "hexcasting.action.hexpose:absorption_hearts": "吸收之纯化", "hexpose.page.absorption_hearts.summary": "返回玩家的魔法心数。使用半颗心作为单位。", @@ -190,7 +209,7 @@ "hexpose.page.item.1": "$(item)玩家$()具有智能,也似乎因此在常态操控$(media)媒质$()。这种$(media)媒质$()气场在大部分情况下保持惰性,但并非不会产生反应;在深入探知的情况下,这一反应通常相当剧烈。盔甲和手持物品等暴露于外界的物品可被探知,但对其物品栏的深入分析不会起效。$(br2)自然尊重界限。", "hexcasting.action.hexpose:get_stack": "物品之纯化", "hexpose.page.get_stack.summary": "返回所给$(item)物品$()实体对应的物品。", - "hexcasting.action.hexpose:create_stack": "献物之纯化", + "hexcasting.action.hexpose:create_stack": "献物之馏化", "hexpose.page.create_stack.summary": "由物品标识和组内物品数制造物品。", "hexcasting.action.hexpose:get_mainhand": "工具之纯化", "hexpose.page.get_mainhand.summary": "返回实体主手的物品。", @@ -224,8 +243,8 @@ "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:read_book": "文学之纯化", + "hexpose.page.read_book.summary": "将书中记载组为$(l:patterns/displays)$(thing)文本$()列表返回;如所给参数不是书,则返回 $(l:casting/influences)$(thing)Null$()。", "hexcasting.action.hexpose:book_sources": "书目之纯化", "hexpose.page.book_sources.summary": "返回书的作者及书的复制代数。", "hexcasting.action.hexpose:item_rarity": "收藏家之纯化", From 68796b9a6948619e77c12d680593e1166298df50 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Mon, 22 Sep 2025 23:07:54 +0800 Subject: [PATCH 04/10] =?UTF-8?q?Hexpose=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 --- .../1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json | 2 +- .../1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json index 35dcfb7bd782..696c30943f86 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json @@ -201,7 +201,7 @@ "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.", + "hexpose.page.identify.summary": "Pushes the identifier of an entity, block at a vector, or item stack iota.", "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.", diff --git a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json index e239f077b2d7..0fe933ac7bd7 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json @@ -200,7 +200,7 @@ "hexpose.page.identifiers.title": "标识", "hexpose.page.identifiers.0": "标识 iota 是自然对“$(hex)咒术$()如何指定类型”的解决方案。每一个实体类型、方块类型、状态效果类型、魔咒类型、声音类型等都拥有可被$(hex)咒术$()识别的唯一标识,此标识可获取,也可比较。", "hexcasting.action.hexpose:identify": "侦探之纯化", - "hexpose.page.identify.summary": "将实体的标识或位置向量处方块的标识压入栈顶。", + "hexpose.page.identify.summary": "将实体的标识、或位置向量处方块的标识、或物品组 iota 的标识压入栈顶。", "hexcasting.action.hexpose:classify": "抵量之纯化", "hexpose.page.classify.summary": "返回 iota 的类型。可用来判断两个 iota 是否是同一类型。", From 3cddc3f6e054b0c9d6f597ea5c07f41534d62a5a Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Tue, 23 Sep 2025 03:37:03 +0800 Subject: [PATCH 05/10] =?UTF-8?q?Overevaluate=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/overevaluate/lang/en_us.json | 14 +++----------- .../assets/1UNKNOWN/overevaluate/lang/zh_cn.json | 12 ++---------- 2 files changed, 5 insertions(+), 21 deletions(-) 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 74cf680f1f2a..d1ad58392ddc 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 @@ -9,17 +9,11 @@ "hexcasting.mishap.invalid_value.class.jumble": "a jumble iota", "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", + "hexcasting.special.overevaluate:sekhmet": "Sekhmet's 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", @@ -55,7 +49,7 @@ "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.summary": "Folds across the second list using the _Hex or pattern in the first argument.", "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.", @@ -66,8 +60,6 @@ "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.$()", @@ -84,6 +76,6 @@ "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.summary": "Takes a pattern or pattern list and casts over every element the second list similar to $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit$() in order to sort it.", "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 4b68e15017bf..641edf2f5b3a 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 @@ -9,17 +9,11 @@ "hexcasting.mishap.invalid_value.class.jumble": "一个理栈iota", "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": "反照之策略", @@ -55,7 +49,7 @@ "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.summary": "用第一个列表参数指定的$(hex)咒术$()“折叠”/“fold”第二个列表或图案参数。", "overevaluate.page.apep.description": "第一次施放会将$(hex)咒术$()作用于第一和第二个 iota,结果暂存于栈顶。下一次施放作用于第一次暂存的 iota 和原本的第三个 iota,同样暂存于栈顶元素。重复此过程,直至穷尽第一列表。最后,返回最后一次暂存的 iota。$(br2)$(o)欧拉也玩过音乐。$()", "hexcasting.action.overevaluate:tutu": "图图之策略", "overevaluate.page.tutu.summary": "什么都不会做。", @@ -66,8 +60,6 @@ "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)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()", @@ -84,6 +76,6 @@ "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.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)重排——自然唯一无法抵消的变化。$()" } From cc69f332e6f997dbff5b8b038e696f89290f624b Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Mon, 6 Oct 2025 16:46:20 +0800 Subject: [PATCH 06/10] =?UTF-8?q?Scryglass=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 --- .../1.20-fabric/assets/1UNKNOWN/scryglass/lang/en_us.json | 8 ++++---- .../1.20-fabric/assets/1UNKNOWN/scryglass/lang/zh_cn.json | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) 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 f01542e875e4..52d0e6d57721 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 @@ -1,10 +1,10 @@ { "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.", + "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": "I can imagine the position vector for an oculus spell as the zero vector at the center of my vision. As I increase the x and y components, the position travels rightwards and downwards respectively. $(l:scryglass#scryglass:get_window_size)$(action)Periphery Reflection$() determines the boundaries of my vision; half of it will place my text on the peripherals of what is visible to me.", "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.", + "scryglass.page.get_window_size.summary": "Pushes a vector whose respective components are the width and height of my vision, and the breadth of my vision in radians.", "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", @@ -21,4 +21,4 @@ "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 index 5e22dc7f5f3f..1c64d4f52555 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 @@ -2,9 +2,9 @@ "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)像图$()之上。", + "scryglass.page.scryglass.2": "眼眸法术所需的位置向量可以认为是视野中央的零向量。X 和 Y 坐标增加时,对应位置分别会向右和向下移动。$(l:scryglass#scryglass:get_window_size)$(action)边缘之精思$()可用于检测视野的范围。将所得范围减半,对应的位置即处于我视野的边缘。", "hexcasting.action.scryglass:get_window_size": "边缘之精思", - "scryglass.page.get_window_size.summary": "以向量返回我视野的全宽和全高。", + "scryglass.page.get_window_size.summary": "返回一个向量,其分量分别代表我的视野全宽、视野全高、以弧度表示的视野角。", "hexcasting.action.scryglass:get_icons": "像图之精思", "scryglass.page.get_icons.summary": "返回我拥有的所有$(thing)像图$()的索引列表。返回的似乎是一个数列表。", "hexcasting.action.scryglass:remove_icon": "清除像图", @@ -21,4 +21,4 @@ "scryglass.page.draw_rect.summary": "接受一个索引、一个位置、一个尺寸、一个颜色。构筑一个显示所定义长方形的$(thing)像图$()。", "hexcasting.action.scryglass:draw_line": "绘制线段", "scryglass.page.draw_line.summary": "接受一个索引、两个位置、一个颜色。构筑连接两点的细线$(thing)像图$()。" -} \ No newline at end of file +} From 310856cb4324fcaad438fde638ca7ba88a04557c Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Tue, 14 Oct 2025 14:39:25 +0800 Subject: [PATCH 07/10] =?UTF-8?q?Overevaluate=20Hexcassettes=20Hexpose=20u?= =?UTF-8?q?pdate=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/1UNKNOWN/overevaluate/lang/en_us.json | 4 ++++ .../assets/1UNKNOWN/overevaluate/lang/zh_cn.json | 4 ++++ .../hexcassettes/lang/en_us.json | 9 ++++++--- .../hexcassettes/lang/zh_cn.json | 11 +++++++---- .../assets/modrinth-hexpose/hexpose/lang/en_us.json | 2 -- .../assets/modrinth-hexpose/hexpose/lang/zh_cn.json | 2 -- 6 files changed, 21 insertions(+), 11 deletions(-) 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 d1ad58392ddc..2f22beff6ba6 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 @@ -9,11 +9,14 @@ "hexcasting.mishap.invalid_value.class.jumble": "a jumble iota", "overevaluate.page.extra_stack.title": "Extra Stack Manipulation", + "hexcasting.action.overevaluate:sekhmet": "Sekhmet's Gambit", "hexcasting.special.overevaluate:sekhmet": "Sekhmet's 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.$()", + "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.", + "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", @@ -60,6 +63,7 @@ "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.$()", + "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.$()", 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 641edf2f5b3a..a10a494804d6 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 @@ -9,11 +9,14 @@ "hexcasting.mishap.invalid_value.class.jumble": "一个理栈iota", "overevaluate.page.extra_stack.title": "栈操作附加", + "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)凡事都可能,但不都有必要。$()", + "hexcasting.action.overevaluate:geb": "盖布之策略", "hexcasting.special.overevaluate:geb": "盖布之策略:%s", "overevaluate.page.geb": "剔除栈顶往下第 n 个元素,具体由图案的尾部长度决定。上方的示例分别会剔除第 2 个、第 3 个、第 4 个 iota。", + "hexcasting.action.overevaluate:nut": "努特之策略", "hexcasting.special.overevaluate:nut": "努特之策略:%s", "overevaluate.page.nut": "将栈顶元素沉至栈顶往下第 n 个元素处,具体由图案的尾部长度决定。上方的示例分别会沉至第 2 个、第 3 个、第 4 个 iota 处。", "hexcasting.action.overevaluate:swap_one_three": "反照之策略", @@ -60,6 +63,7 @@ "hexcasting.action.overevaluate:maat": "玛阿特之策略", "overevaluate.page.maat.summary": "接受一个布尔值和任意 iota。若布尔值为 False,则产生事故并打印 iota。", "overevaluate.page.maat.description": "此图案很适合在某些条件未满足时跳出$(hex)咒术$()。$(br2)$(o)法庭内保持肃静。$()", + "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)……时间旅行的未知……类似于盲目潜入冰冷水域的深处,再像颗橡子一样任由浮沉。$()", 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 db9b42f2be35..b4e7d2f240c0 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 @@ -15,7 +15,7 @@ "subtitles.hexcassettes.cassette_insert": "Cassette inserted", "subtitles.hexcassettes.cassette_loop": "Cassette whirrs", - "hexcassettes.page.async.title": "Asynchronous Hexes", + "hexcassettes.page.async.title": "Delaying 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", @@ -24,7 +24,6 @@ "hexcassettes.page.async.1": "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$().", "hexcassettes.page.async.2": "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.3": "The label of a $(thing)Cassette$() is a $(l:patterns/text_iotas)$(thing)text iota$() 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 pressing $(thing)$(k:hexcassettes.ponder_cassette)$().$(br2)Dying also forcibly ends all of my $(thing)Cassettes$().", - "hexcassettes.page.async.4": "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", @@ -38,5 +37,9 @@ "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$().", "hexcasting.action.hexcassettes:self": "State Reflection", - "hexcassettes.page.self.summary": "Pushes the current label 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 label 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.daemons.title": "Reflections on Daemons", + "hexcassettes.page.daemons.0": "Consider a list of patterns, a _Hex. One may place a duplicate of that _Hex within itself, providing it with a blueprint of its own composition. Setting aside the _Hex's evaluation for later, it harbors within itself all requisite information to reenact the process. Inducting ad infinitum, an infinite idle casting phenomenon emerges—referred to by those learned in _Hexcasting as a \"daemon.\"", + "hexcassettes.page.daemons.1": "Should my inclinations reach higher subtley, I might alter the _Hex prior to its enqueuing, thereby encoding within its structure a \"state,\" which may be carried forth through successive iterations to persist information.$(br2)I would do well to note, daemons still extract _media solely from my inventory and blood.$(br2)$(o)It's a hex which casts a hex which casts a hex. Nobody's done that before.$()" } \ 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 f199c01c74e7..95b2bba7b869 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 @@ -15,7 +15,7 @@ "subtitles.hexcassettes.cassette_insert": "磁带:插入", "subtitles.hexcassettes.cassette_loop": "磁带:嗡嗡作响", - "hexcassettes.page.async.title": "异步咒术", + "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": "入队列", @@ -23,8 +23,7 @@ "hexcassettes.page.enqueue.summary.1": "此图案的一个变种,还需向其提供一个$(l:patterns/text_iotas)$(thing)文本 iota$(),它会将$(hex)咒术$()排入所给标签的队列。", "hexcassettes.page.async.1": "如果已经有$(thing)磁带$()使用了所给标签,则所给$(hex)咒术$()会覆盖该$(thing)磁带$()。$(br2)否则图案会将$(hex)咒术$()排至空槽位。如果没有足够的空槽位,则招致“并行处理”事故:终止所有的$(thing)磁带$()。", "hexcassettes.page.async.2": "如果$(l:async#hexcassettes:enqueue)$(action)入队列$()找不到空闲的$(thing)磁带$(),则会招致“并行处理”事故:终止我的所有$(thing)磁带$()。$(br2)施放的延时有一个最小值,这似乎表明我所处世界的$(o)时间分辨率$()很低……还是别再想了。$(br2)$(o)Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.$()", - "hexcassettes.page.async.3": "$(thing)磁带$()间使用$(l:patterns/text_iotas)$(thing)文本 iota$() 进行标识和区分,取消$(thing)磁带$()和获取其信息都需借助该标签。$(br2)按住$(thing)$(k:hexcassettes.ponder_cassette)$()可以查看我的所有$(thing)磁带$()。忙状态的$(thing)磁带$()会显示为压入状态,且在其侧面显示对应标签。$(br2)死亡会强制将所有$(thing)磁带$()清出队列。", - "hexcassettes.page.async.4": "若$(thing)磁带$()将可继续执行入队列操作的自身副本入队列,便会出现一种特殊现象:常态、持续的$(hex)施法$()。古代的$(hex)咒术师们$()称之为守护进程。$(br2)$(hex)咒法学$()的这一分支并未得到深入研究,也许是因为操控时间危险性极高:$(thing)磁带$()施放的$(hex)咒术$()只会消耗我物品栏中的$(media)媒质$()。若是不加监测,它能轻松耗光我的$(media)媒质$(),然后便是我的生命。", + "hexcassettes.page.async.3": "$(thing)磁带$()间使用$(l:patterns/text_iotas)$(thing)文本 iota$() 进行标识和区分,取消$(thing)磁带$()和获取其信息都需借助该标签。$(br2)按住$(thing)$(k:hexcassettes.ponder_cassette)$()可以查看我的所有$(thing)磁带$()。忙状态的$(thing)磁带$()会显示为压入状态,且会在其侧面显示对应标签。$(br2)死亡会强制将所有$(thing)磁带$()清出队列。", "hexcasting.action.hexcassettes:dequeue": "出队列", "hexcassettes.page.dequeue.summary": "终止所给标签对应的$(thing)磁带$(),让其进入空闲状态,并取消其中$(hex)咒术$()。", "hexcasting.action.hexcassettes:killall": "终止队列", @@ -38,5 +37,9 @@ "hexcasting.action.hexcassettes:foretell": "先知之纯化", "hexcassettes.page.foretell.summary": "返回所给标签对应的$(thing)磁带$()会在多少个 1/20 秒后施放;若无此类$(thing)磁带$(),返回 $(l:casting/influences)$(thing)Null$()。", "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$()。", + + "hexcassettes.page.daemons.title": "关于守护进程的思考", + "hexcassettes.page.daemons.0": "试想有一个图案列表,或者说一个$(hex)咒术$()。这段$(hex)咒术$()内部可以存在自身的副本,相当于记录其自身构成的蓝图。即便先不讨论这则$(hex)咒术$()怎么执行,它自身都拥有执行所需的一切必要信息。无限唤起这则$(hex)咒术$(),就能制造出可无限期存在的空闲施法现象——那些精通$(hex)咒法学$()的人称其为“守护进程”。", + "hexcassettes.page.daemons.1": "如果我的思绪能达到更深的层次,我甚至可以在$(hex)咒术$()入队列前直接对其进行修改,从而在其结构内编码一个“状态”,后续迭代时可将状态传递下去以持久化保持信息。$(br2)我有必要在此说明,守护进程仍只会从我的物品栏提取$(media)媒质$(),或是直接抽血。$(br2)$(o)咒术施放的咒术施放咒术。之前还从没人做过这事。$()" } \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json index 696c30943f86..121640488200 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json @@ -128,8 +128,6 @@ "hexpose.page.chat.title": "Chat", "hexcasting.action.hexpose:get_message": "News Reflection", "hexpose.page.get_message.summary": "Pushes a $(l:patterns/displays)$(thing)display iota$() of the last person to use chat, a $(l:patterns/displays)$(thing)display 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", diff --git a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json index 0fe933ac7bd7..8368d4c3636b 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json @@ -127,8 +127,6 @@ "hexpose.page.chat.title": "聊天栏", "hexcasting.action.hexpose:get_message": "新闻之精思", "hexpose.page.get_message.summary": "以$(l:patterns/displays)$(thing)文本$()形式返回最近一次使用聊天栏的玩家,同时以$(l:patterns/displays)$(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": "卡尺之纯化", From db16bd80d5e612e8613933c93d2c380c1bc65580 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Sun, 19 Oct 2025 03:28:41 +0800 Subject: [PATCH 08/10] =?UTF-8?q?Hexpose=20fix=EF=BC=9A=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E6=96=87=E5=BD=A2=E7=94=A8=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/modrinth-hexpose/hexpose/lang/zh_cn.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json index 8368d4c3636b..212ba75b6591 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json @@ -126,7 +126,7 @@ "hexpose.page.chat.title": "聊天栏", "hexcasting.action.hexpose:get_message": "新闻之精思", - "hexpose.page.get_message.summary": "以$(l:patterns/displays)$(thing)文本$()形式返回最近一次使用聊天栏的玩家,同时以$(l:patterns/displays)$(thing)文本$()形式返回该消息,以及发送时间距现在有多少个 1/20 秒。", + "hexpose.page.get_message.summary": "以$(l:patterns/displays)$(thing)文形$()形式返回最近一次使用聊天栏的玩家,同时以$(l:patterns/displays)$(thing)文形$()形式返回该消息,以及发送时间距现在有多少个 1/20 秒。", "hexpose.page.entities.title": "实体", "hexcasting.action.hexpose:entity_width": "卡尺之纯化", @@ -162,7 +162,7 @@ "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/displays)$(thing)文本$()形式返回所给实体的名称,带格式。", + "hexpose.page.entity_name.summary": "以$(l:patterns/displays)$(thing)文形$()形式返回所给实体的名称,带格式。", "hexcasting.action.hexpose:absorption_hearts": "吸收之纯化", "hexpose.page.absorption_hearts.summary": "返回玩家的魔法心数。使用半颗心作为单位。", @@ -242,7 +242,7 @@ "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/displays)$(thing)文本$()列表返回;如所给参数不是书,则返回 $(l:casting/influences)$(thing)Null$()。", + "hexpose.page.read_book.summary": "将书中记载组为$(l:patterns/displays)$(thing)文形$()列表返回;如所给参数不是书,则返回 $(l:casting/influences)$(thing)Null$()。", "hexcasting.action.hexpose:book_sources": "书目之纯化", "hexpose.page.book_sources.summary": "返回书的作者及书的复制代数。", "hexcasting.action.hexpose:item_rarity": "收藏家之纯化", From 18680679f637aa50781f5b622829d14f3b5ab207 Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Sat, 25 Oct 2025 04:00:11 +0800 Subject: [PATCH 09/10] =?UTF-8?q?Hexpose=20Overevaluate=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 --- .../1UNKNOWN/overevaluate/lang/zh_cn.json | 6 +++--- .../modrinth-hexpose/hexpose/lang/en_us.json | 21 +++++++++---------- .../modrinth-hexpose/hexpose/lang/zh_cn.json | 19 ++++++++--------- 3 files changed, 22 insertions(+), 24 deletions(-) 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 a10a494804d6..3ebed02f17ff 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 @@ -35,13 +35,13 @@ "overevaluate.page.dissolve_jumble.summary": "将理栈 iota 拆回数和数列表。", "overevaluate.page.soroban.title": "珠算", - "overevaluate.page.soroban.0": "这些图案能操纵一个虚计数器,称作“珠算计数器”。在$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()被占用或使用起来太麻烦时,这些图案就能派上用场,比如维护$(l:patterns/meta#hexcasting:for_each)$(action)托特$()循环的迭代次数。", + "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_reset": "珠算之策略", "overevaluate.page.soroban_reset.summary": "将珠算计数器重置为 0。", "hexcasting.action.overevaluate:soroban_set": "珠算之策略,第二型", - "overevaluate.page.soroban_set.summary": "移除栈顶数,将珠算计数器设为改数。", + "overevaluate.page.soroban_set.summary": "移除栈顶数,将珠算计数器设为该数。", "overevaluate.page.metas.title": "高阶元运行", "hexcasting.action.overevaluate:athena": "雅典娜之策略", @@ -78,7 +78,7 @@ "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)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()", + "overevaluate.page.sisyphus.description": "我曾听过有些能够自我复制的$(hex)咒术$(),叫作“$(o)自打印程序$()”/“$(o)quine$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(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/modrinth-hexpose/hexpose/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json index 121640488200..5363819da313 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/en_us.json @@ -8,6 +8,7 @@ "hexcasting.mishap.invalid_value.display_list": "a list of display iotas", "hexcasting.mishap.invalid_value.painting": "a painting", "hexcasting.mishap.invalid_value.item_frame": "an item frame", + "hexcasting.mishap.invalid_value.targetting": "an entity that may have a target", "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", @@ -93,16 +94,6 @@ "hexpose.page.remove_text.summary": "Removes a single character from the $(l:patterns/displays)$(thing)display iota$()'s text and keeps children.", "hexpose.page.rev_text.summary": "Reverses the $(l:patterns/displays)$(thing)display iota$()'s text and keeps children.", - "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.", @@ -127,7 +118,7 @@ "hexpose.page.chat.title": "Chat", "hexcasting.action.hexpose:get_message": "News Reflection", - "hexpose.page.get_message.summary": "Pushes a $(l:patterns/displays)$(thing)display iota$() of the last person to use chat, a $(l:patterns/displays)$(thing)display iota$() of the message, and a number of twenieths of a second since that message sent.", + "hexpose.page.get_message.summary": "Pushes a $(l:patterns/displays)$(thing)display iota$() of the last person to use chat, a $(l:patterns/displays)$(thing)display iota$() of the message, and a number of twentieths of a second since that message sent.", "hexpose.page.entities.title": "Entities", "hexcasting.action.hexpose:entity_width": "Caliper's Purification", @@ -158,6 +149,14 @@ "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:angry_at": "Fixation Purification", + "hexpose.page.angry_at.summary": "Pushes the entity the given entity is currently targetting if they are in ambit. This generally pushes the entity that the entity is angry at.", + "hexcasting.action.hexpose:angry_time": "Grudge Purification", + "hexpose.page.angry_time.summary": "Pushes how long the given entity will stay targetting another entity. Sometimes, this number may not go down.", + "hexcasting.action.hexpose:last_attacker": "Victim Purification", + "hexpose.page.last_attacker.summary": "Pushes the last entity that attacked the given one, if they are within ambit.", + "hexcasting.action.hexpose:last_attacked": "Scar Purification", + "hexpose.page.last_attacked.summary": "Pushes how long ago in twentieths of a second the given entity was last attacked.", "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", diff --git a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json index 212ba75b6591..95aab0fc2395 100644 --- a/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json +++ b/projects/1.20-fabric/assets/modrinth-hexpose/hexpose/lang/zh_cn.json @@ -8,6 +8,7 @@ "hexcasting.mishap.invalid_value.display_list": "一个文形列表", "hexcasting.mishap.invalid_value.painting": "一幅画", "hexcasting.mishap.invalid_value.item_frame": "一个物品展示框", + "hexcasting.mishap.invalid_value.targetting": "一个可以有追击目标的实体", "hexcasting.mishap.invalid_value.block_id": "一个代表方块的标识", "hexcasting.mishap.invalid_value.entity_id": "一个代表实体类型的标识", "hexcasting.mishap.invalid_value.enchantment_id": "一个代表魔咒的标识", @@ -93,16 +94,6 @@ "hexpose.page.remove_text.summary": "从原$(l:patterns/displays)$(thing)文形$()的文本中移除单个字符,保留子文形。", "hexpose.page.rev_text.summary": "反转原$(l:patterns/displays)$(thing)文形$()的文本,保留子文形。", - "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)咒术$()中没什么大用处,但有它们在也不错,我将来也许会用到。", @@ -157,6 +148,14 @@ "hexpose.page.entity_vehicle.summary": "检验所给实体是否处于骑乘状态,若未在骑乘或未乘坐载具,则返回 $(l:casting/influences)$(thing)Null$()。", "hexcasting.action.hexpose:entity_passengers": "骑士之纯化", "hexpose.page.entity_passengers.summary": "返回骑乘所给实体的实体列表。", + "hexcasting.action.hexpose:angry_at": "执念之纯化", + "hexpose.page.angry_at.summary": "返回所给实体当前正追逐的实体,需要被追逐实体在影响范围内。通常返回的是所给实体的愤恨对象。", + "hexcasting.action.hexpose:angry_time": "愤恨之纯化", + "hexpose.page.angry_time.summary": "返回所给实体还会主动追逐另一实体多长时间。有些时候此值不会减少。", + "hexcasting.action.hexpose:last_attacker": "受害者之纯化", + "hexpose.page.last_attacker.summary": "返回上一个攻击了所给实体的实体,需攻击者在影响范围内。", + "hexcasting.action.hexpose:last_attacked": "疮疤之纯化", + "hexpose.page.last_attacked.summary": "返回所给实体从上一次被攻击到现在经过了多少个 1/20 秒。", "hexcasting.action.hexpose:shooter": "射手之纯化", "hexpose.page.shooter.summary": "返回所给弹射物实体的发射者,若无发射者或不是弹射物,则返回 $(l:casting/influences)$(thing)Null$()。如果发射者在我影响范围之外,也会返回 $(l:casting/influences)$(thing)Null$()。", "hexcasting.action.hexpose:pet_owner": "挚宠之纯化", From 3d74ce612df351278787a068d243526c0c9fd36c Mon Sep 17 00:00:00 2001 From: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Date: Sat, 1 Nov 2025 01:29:09 +0800 Subject: [PATCH 10/10] Overevaluate fix --- .../1.20-fabric/assets/1UNKNOWN/overevaluate/lang/zh_cn.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 3ebed02f17ff..491d503ae6b5 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 @@ -78,7 +78,7 @@ "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)自打印程序$()”/“$(o)quine$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(l:patterns/meta#hexcasting:halt)$(action)卡戎之策略$()为止。$(l:patterns/readwrite#hexcasting:local)渡鸦之思$()和栈会在迭代间保留。$(br2)$(o)让世人永远看得见他的负荷……应当想象西西弗是幸福的。$()", + "overevaluate.page.sisyphus.description": "我曾听过有些能够自我复制的$(hex)咒术$(),叫作“$(o)自产生程序$()”/“$(o)quine$()”,常用于制造无限循环,但涉及它的实操比较麻烦。此策略简化了这一流程,改为循环运行列表,递归层数用尽或是遇到$(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)重排——自然唯一无法抵消的变化。$()"