diff --git a/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json new file mode 100644 index 000000000000..f623dbadffca --- /dev/null +++ b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json @@ -0,0 +1,16 @@ +{ + "hexxyattributes.entry.attributes": "Attributes", + "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...", + + "hexcasting.spell.book.hexxyattributes:domain_reflection": "Domain Reflection", + "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.", + + "hexcasting.spell.book.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection", + "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.", + + "hexcasting.spell.book.hexxyattributes:media_reflection": "Media Reflection", + "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!", + + "hexcasting.spell.book.hexxyattributes:mind_purification": "Mind Purification", + "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False." +} \ No newline at end of file diff --git a/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json new file mode 100644 index 000000000000..c0f4d0e83dd9 --- /dev/null +++ b/projects/1.19/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json @@ -0,0 +1,16 @@ +{ + "hexxyattributes.entry.attributes": "属性", + "hexxyattributes.entry.attributes.entry": "我的研究表明,并非所有此派精妙魔艺的研习者都有同样的能力。换句话说,世上的学者具有不同的$(italic)属性$(clear)。$(br2)我一直都以为$(italic)天赋$(clear)只是个假说。好吧……", + + "hexcasting.spell.book.hexxyattributes:domain_reflection": "界域之精思", + "hexxyattributes.page.domain_reflection": "将我的影响范围入栈。", + + "hexcasting.spell.book.hexxyattributes:sentinel_domain_reflection": "哨卫界域之精思", + "hexxyattributes.page.sentinel_domain_reflection": "将我哨卫的影响范围入栈。", + + "hexcasting.spell.book.hexxyattributes:media_reflection": "媒质之精思", + "hexxyattributes.page.media_reflection": "将我的媒质消耗速率入栈。我认为基础值应当等于 1。很适合收住我对自身能力的过度高估!", + + "hexcasting.spell.book.hexxyattributes:mind_purification": "意识之精思", + "hexxyattributes.page.mind_purification": "将栈中的玩家转变为布尔值。此图案会向目标的大脑送入一小股媒质。如果他有研习咒法学的潜能,返回 True;否则返回 False。" +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexvoid/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/1UNKNOWN/hexvoid/lang/en_us.flatten.json5 index d81e7199b3bc..0082370ebe9b 100644 --- a/projects/1.20-fabric/assets/1UNKNOWN/hexvoid/lang/en_us.flatten.json5 +++ b/projects/1.20-fabric/assets/1UNKNOWN/hexvoid/lang/en_us.flatten.json5 @@ -49,7 +49,10 @@ interstitial_cobblestone: "Interstitial Cobblestone", quartz_infused_stone: "Quartz Infused Stone", liquid_quartz: "Liquid Quartz", - carnivorous_log: "Cryatofaia Log", + carnivorous_wood: "Cryatofaia Wood", + carnivorous_core: "Cryatofaia Core Wood", + carnivorous_leaves: "Cryatofaia Leaves", + carnivorous_sapling: "Cryatofaia Sapling", crystal_sheen: "Striated Crystal", crystal_dull: "Drained Striated Crystal" }, diff --git a/projects/1.20-fabric/assets/1UNKNOWN/hexvoid/lang/zh_cn.flatten.json5 b/projects/1.20-fabric/assets/1UNKNOWN/hexvoid/lang/zh_cn.flatten.json5 index 965500c50b46..88a8eb0d17f1 100644 --- a/projects/1.20-fabric/assets/1UNKNOWN/hexvoid/lang/zh_cn.flatten.json5 +++ b/projects/1.20-fabric/assets/1UNKNOWN/hexvoid/lang/zh_cn.flatten.json5 @@ -49,7 +49,10 @@ interstitial_cobblestone: "虚隙圆石", quartz_infused_stone: "石英灌注石头", liquid_quartz: "液态石英", - carnivorous_log: "噬肉原木", + carnivorous_wood: "噬肉木", + carnivorous_core: "噬肉核木", + carnivorous_leaves: "噬肉树叶", + carnivorous_sapling: "噬肉树苗", crystal_sheen: "纹状晶体", crystal_dull: "枯竭纹状晶体" }, diff --git a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.flatten.json5 b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.flatten.json5 new file mode 100644 index 000000000000..823d666c2fff --- /dev/null +++ b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/en_us.flatten.json5 @@ -0,0 +1,81 @@ +{ + hexcasting: { + action: { + "hexstruction:": { + save_structure: "Devour Structure", + load_structure: "Actualize Structure", + display_structure: "Visualize Structure", + mirror_front_back: "Mirror Purification Z", + mirror_left_right: "Mirror Purification X", + mirror_vertical: "Mirror Purification Y", + rotate_clockwise: "Rotation Purification Clockwise Y", + rotate_counterclockwise: "Rotation Purification Counter-Clockwise Y", + rotate_clockwise_x: "Rotation Purification Clockwise X", + rotate_counterclockwise_x: "Rotation Purification Counter-Clockwise X", + rotate_clockwise_z: "Rotation Purification Clockwise Z", + rotate_counterclockwise_z: "Rotation Purification Counter-Clockwise Z", + bounding_box: "Bounding Purification", + transformations: "Transformation Purification" + }, + book: { + "hexstruction:": { + mirror_front_back: "Mirror Prfn. Z", + mirror_left_right: "Mirror Prfn. X", + mirror_vertical: "Mirror Prfn. Y", + rotate_clockwise: "Rotation Prfn. CW Y", + rotate_counterclockwise: "Rotation Prfn. CCW Y", + rotate_clockwise_x: "Rotation Prfn. CW X", + rotate_counterclockwise_x: "Rotation Prfn. CCW X", + rotate_clockwise_z: "Rotation Prfn. CW X", + rotate_counterclockwise_z: "Rotation Prfn. CCW X", + bounding_box: "Bounding Prfn.", + transformations: "Transformation Prfn." + } + } + }, + }, + hexstruction: { + book: { + patterns: { + actions: { + structures: { + "": "Structure Iota", + "0": "Inspired by my ability to both break and place blocks, I've devised a method to expand those capabilities. By breaking down a portion of the world itself into the mere concept of that space, I can store entire regions in my mind as a Structure iota, which I can manipulate and place back into the world. Unfortunately, it appears nature rejects my attempts to store $(l:basics/geodes)$(item)Budding Amethyst/$ and its ilk.", + "1": "Nature prefers to conserve matter; as a result, every copy of the same Structure iota will reference the same structure. Once one is used to place the structure back into the world, no other copy will be able to do the same. Coercing the iota to a boolean will return whether or not the iota remains valid. When \"devouring\" a structure from the world, it appears to define an \"origin\" at the lower North-West corner of the supplied bounds. This appears to remain true even after applying any number of transformations to the structure.", + mirror_front_back: "Flips a stored Structure front-to-back, or across the Z-axis.", + mirror_left_right: "Flips a stored Structure left-to-right, or across the X-axis.", + mirror_vertical: "Flips a stored Structure top-to-bottom, or across the Y-axis.", + rotate_clockwise: "Rotates a stored Structure 90-degrees clockwise about the Y-axis.", + rotate_counterclockwise: "Rotates a stored Structure 90-degrees counterclockwise about the Y-axis.", + rotate_clockwise_x: "Rotates a stored Structure 90-degrees clockwise about the X-axis.", + rotate_counterclockwise_x: "Rotates a stored Structure 90-degrees counterclockwise about the X-axis.", + rotate_clockwise_z: "Rotates a stored Structure 90-degrees clockwise about the Z-axis.", + rotate_counterclockwise_z: "Rotates a stored Structure 90-degrees counterclockwise about the Z-axis.", + bounding_box: "Removes a Structure from the stack, returning its dimensions in the format [x, y, z].", + transformations: "Removes a Structure from the stack, returning its transformations as a list in the format [mirror, vertical mirror, rotationX, rotationY, rotationZ].", + "transformations.0": "The values use the following key:$(br)MIRROR$(br)None -> 0; Front-Back -> 1; Left-Right -> 2$(br)$(br)VERTICAL MIRROR$(br)Not Mirrored -> 0; Mirrored -> 1$(br)$(br)ROTATION$(br)No Rotation -> 0; 90 CW -> 1; 180 CW -> 2; 90 CCW -> 3" + } + }, + spells: { + "": "Structures", + save_structure: "Removes the locations of two corners from the stack, then consumes a region of space defined by those two corners, storing the result in a Structure iota.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block consumed.", + load_structure: "Removes the location of the structure's origin and a structure from the stack, then attempts to place the structure at the origin, erasing the structure from all memory. Mishaps if any part of the structure overlaps with another block.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block placed.", + display_structure: { + "0": "Removes the location of the structure's origin and a structure from the stack, followed by a duration between 0 and 72000.", + "1": "Displays a phantom structure at that location for the specified duration (in ticks). Does not erase the structure from memory.$(br)Costs about a hundredth of one $(l:items/amethyst)$(item)Amethyst Dust/$ for every block displayed." + } + } + } + }, + iota: { + structure: { + identifier: "Structure %s ", + display: "[MIRROR=%1$s, VERTICAL_MIRROR=%2$s, ROTATION={X:%3$s, Y:%4$s, Z:%5$s}]", + empty: "No Structure", + mishap: { + empty: "a linked structure" + } + } + } + } +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.flatten.json5 b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.flatten.json5 new file mode 100644 index 000000000000..8d00d12cdf78 --- /dev/null +++ b/projects/1.20-fabric/assets/hexstruction/hexstruction/lang/zh_cn.flatten.json5 @@ -0,0 +1,81 @@ +{ + hexcasting: { + action: { + "hexstruction:": { + save_structure: "吞噬结构", + load_structure: "实现结构", + display_structure: "显示结构", + mirror_front_back: "镜像之纯化,Z型", + mirror_left_right: "镜像之纯化,X型", + mirror_vertical: "镜像之纯化,Y型", + rotate_clockwise: "旋形之纯化,顺时针型", + rotate_counterclockwise: "旋形之纯化,逆时针型", + rotate_clockwise_x: "旋形之纯化,X顺时针型", + rotate_counterclockwise_x: "旋形之纯化,X逆时针型", + rotate_clockwise_z: "旋形之纯化,Z顺时针型", + rotate_counterclockwise_z: "旋形之纯化,Z逆时针型", + bounding_box: "界限之纯化", + transformations: "变换之纯化" + }, + book: { + "hexstruction:": { + mirror_front_back: "镜像之纯化,Z型", + mirror_left_right: "镜像之纯化,X型", + mirror_vertical: "镜像之纯化,Y型", + rotate_clockwise: "旋形之纯化,顺时针型", + rotate_counterclockwise: "旋形之纯化,逆时针型", + rotate_clockwise_x: "旋形之纯化,X顺时针型", + rotate_counterclockwise_x: "旋形之纯化,X逆时针型", + rotate_clockwise_z: "旋形之纯化,Z顺时针型", + rotate_counterclockwise_z: "旋形之纯化,Z逆时针型", + bounding_box: "界限之纯化", + transformations: "变换之纯化" + } + } + }, + }, + hexstruction: { + book: { + patterns: { + actions: { + structures: { + "": "结构 Iota", + "0": "我具有破坏和放置方块的能力;受此启发,我想到了一种拓展它们的方法。只需将世界的一部分拆解为简单的、对该区域的概念,就可将整片区域存入意识,形成结构 iota。我可操纵此类 iota,还可将其放回世界之中。可惜,自然似乎不允许我存储$(l:basics/geodes)$(item)紫水晶母岩/$之类的方块。", + "1": "自然追求物质的守恒;因此,同一个结构 iota 的复制产物都对应同一个结构。只要某次放置使用了其中之一,则其他所有指向同一结构的 iota 都不可再用于放置。将此类 iota 强制转换为布尔值,所得结果代表该 iota 还是否可用。从世界中“吞噬”结构时,似乎会将“原点”定在所给区域西北方靠下的角落。无论结构经过何种变换,“原点”都会保持在那个角落。", + mirror_front_back: "前后翻转结构,也即跨 Z 轴镜像。", + mirror_left_right: "左右翻转结构,也即跨 X 轴镜像。", + mirror_vertical: "上下翻转结构,也即跨 Y 轴镜像。", + rotate_clockwise: "将所存结构顺时针旋转 90 度。", + rotate_counterclockwise: "将所存结构逆时针旋转 90 度。", + rotate_clockwise_x: "将所存结构绕 X 轴顺时针旋转 90 度。", + rotate_counterclockwise_x: "将所存结构绕 X 轴逆时针旋转 90 度。", + rotate_clockwise_z: "将所存结构绕 Z 轴顺时针旋转 90 度。", + rotate_counterclockwise_z: "将所存结构绕 Z 轴逆时针旋转 90 度。", + bounding_box: "移除栈顶结构,返回其尺寸,格式为 [x, y, z]。", + transformations: "移除栈顶结构,返回其经历的变换,格式为 [镜像, 垂直镜像, X轴旋转, Y轴旋转, Z轴旋转]。", + "transformations.0": "这些元素使用以下值:$(br)镜像$(br)无 -> 0;前后翻转 -> 1;左右翻转 -> 2$(br)$(br)垂直镜像$(br)未镜像 -> 0;已镜像 -> 1$(br)$(br)旋转$(br)无旋转 -> 0;90 度顺时针 -> 1;180 度顺时针 -> 2;90 度逆时针 -> 3" + } + }, + spells: { + "": "结构", + save_structure: "移除栈顶两个位置向量,并吞噬这两个位置作为角落所定义的区域,然后把产物存储为结构 iota。$(br)每吞噬一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。", + load_structure: "移除栈顶结构原点向量和一个结构,并尝试在该原点的位置处放置结构,同时清除其他存储位置中代表同一结构的 iota。如果结构的任意一个部分与其他方块重叠,即会招致事故。$(br)每放置一个方块消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。", + display_structure: { + "0": "移除栈顶的结构原点向量、一个结构和一个 0 到 72000 之间的数,第三参数代表持续时间。", + "1": "在给定位置显示结构的影像,持续时间以刻计。此操作不会清除其他同种 iota。$(br)每显示一个方块消耗大约 1/100 个$(l:items/amethyst)$(item)紫水晶粉/$。" + } + } + } + }, + iota: { + structure: { + identifier: "结构 %s ", + display: "[镜像=%1$s, 垂直镜像=%2$s, 旋转={X:%3$s, Y:%4$s, Z:%5$s}]", + empty: "无结构", + mishap: { + empty: "一个已链接的结构" + } + } + } + } +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/README.md b/projects/1.20-fabric/assets/hierophantics/hierophantics/README.md new file mode 100644 index 000000000000..b213e03ea7e6 --- /dev/null +++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/README.md @@ -0,0 +1 @@ +[见主文档](/projects/1.20/assets/hierophantics/hierophantics) \ No newline at end of file diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json new file mode 100644 index 000000000000..45cb4441c4c5 --- /dev/null +++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/lang/en_us.json @@ -0,0 +1,131 @@ +{ + "block.hierophantics.flay_bed": "Imbuement Bed", + "block.hierophantics.edified_workstation": "Edified Workstation", + + "command.hierophantics.add_mind": "Added new embdded mind to %s", + "command.hierophantics.disable": "Disabled %s's embedded minds", + + "entity.minecraft.villager.quiltmind": "Quiltmind", + "entity.minecraft.villager.hierophantics.quiltmind": "Quiltmind", + + "subtitles.hierophantics.hieromind_cast": "Embedded mind casts", + + "text.autoconfig.hierophantics.title": "Hierophantics Config", + "text.autoconfig.hierophantics.option.server.maxMinds": "Maximum embedded minds per player", + + "advancements.hierophantics.embed_mind.title": "Interwoven", + "advancements.hierophantics.embed_mind.description": "Embed a villager's mind into your own", + "advancements.hierophantics.waste_mind.title": "Atomized", + "advancements.hierophantics.waste_mind.description": "Waste a mind by activating an Imbuement Bed with no one in it", + "advancements.hierophantics.all_triggers.title": "Ready for Anything", + "advancements.hierophantics.all_triggers.description": "Have an embedded mind with each possible trigger type", + "advancements.hierophantics.fuse_villagers.title": "Two Into One", + "advancements.hierophantics.fuse_villagers.description": "Embed a villager's mind into another villager", + + "hierophantics.tooltip.mind_reference": "Embedded Mind \"%s\"", + "hierophantics.tooltip.trigger": "Trigger: When %s", + "hierophantics.tooltip.mishap_thrower": "Hierophantics Mishap Thrower", + + "hierophantics.tooltip.trigger_type.damage": "damaged", + "hierophantics.tooltip.trigger_type.damage_typed": "damaged by '%s'", + "hierophantics.tooltip.trigger_type.health": "health drops below %d", + "hierophantics.tooltip.trigger_type.breath": "breath drops below %d", + "hierophantics.tooltip.trigger_type.hunger": "hunger drops below %d", + "hierophantics.tooltip.trigger_type.velocity": "velocity greater than %d", + "hierophantics.tooltip.trigger_type.fall": "falling more than %d blocks", + "hierophantics.tooltip.trigger_type.drop": "item dropped", + "hierophantics.tooltip.trigger_type.attack": "entity struck", + "hierophantics.tooltip.trigger_type.break": "block broken", + "hierophantics.tooltip.trigger_type.jump": "jumping", + "hierophantics.tooltip.trigger_type.teleport": "teleporting", + + "hexcasting.mishap.hierophantics:mind_freed": "Tried to interact with an embedded mind that doesn't exist", + "hexcasting.mishap.hierophantics:minds_disabled.yours": "Your embedded minds are too unstable to %s!", + "hexcasting.mishap.hierophantics:minds_disabled.other": "This embedded mind is too unstable to %s!", + "hexcasting.mishap.hierophantics:not_your_mind": "Can't modify an embedded mind that isn't yours", + "hexcasting.mishap.hierophantics:minds_capped": "%s already has the maximum number of embedded minds", + "hexcasting.mishap.hierophantics:nitwit_imbuement": "%s does not have enough mind to imbue", + "hexcasting.mishap.invalid_value.class.mind_reference": "an embedded mind", + "hexcasting.mishap.invalid_value.class.trigger": "a trigger", + + "hierophantics.mishap.minds_disabled.action.cast": "function", + "hierophantics.mishap.minds_disabled.action.read": "examine", + "hierophantics.mishap.minds_disabled.action.write": "modify", + "hierophantics.mishap.minds_disabled.action.free": "interact with", + + "hexcasting.action.hierophantics:get_minds": "Hierophant's Reflection", + "hexcasting.action.hierophantics:reenable_minds": "Stabilize Minds", + "hexcasting.action.hierophantics:set_mind_hex": "Payload Gambit", + "hexcasting.action.hierophantics:get_mind_hex": "Payload Purification", + "hexcasting.action.hierophantics:set_mind_trigger": "Trigger Gambit", + "hexcasting.action.hierophantics:get_mind_trigger": "Trigger Purification", + "hexcasting.action.hierophantics:free_mind": "Free Mind", + "hexcasting.action.hierophantics:make_damage_trigger": "Trigger Reflection: Damage", + "hexcasting.action.hierophantics:make_damage_type_trigger": "Trigger Reflection: Damage Type", + "hexcasting.action.hierophantics:make_health_trigger": "Trigger Purification: Health", + "hexcasting.action.hierophantics:make_breath_trigger": "Trigger Purification: Breath", + "hexcasting.action.hierophantics:make_hunger_trigger": "Trigger Purification: Hunger", + "hexcasting.action.hierophantics:make_velocity_trigger": "Trigger Purification: Velocity", + "hexcasting.action.hierophantics:make_fall_trigger": "Trigger Purification: Fall", + "hexcasting.action.hierophantics:make_drop_trigger": "Trigger Reflection: Drop", + "hexcasting.action.hierophantics:make_attack_trigger": "Trigger Reflection: Attack", + "hexcasting.action.hierophantics:make_break_trigger": "Trigger Reflection: Break", + "hexcasting.action.hierophantics:make_jump_trigger": "Trigger Reflection: Jump", + "hexcasting.action.hierophantics:make_teleport_trigger": "Trigger Reflection: Teleport", + + "hexcasting.action.book.hierophantics:make_damage_trigger": "Trigger Rfln: Damage", + "hexcasting.action.book.hierophantics:make_damage_type_trigger": "Trigger Rfln: DmgType", + "hexcasting.action.book.hierophantics:make_health_trigger": "Trigger Prfn: Health", + "hexcasting.action.book.hierophantics:make_breath_trigger": "Trigger Prfn: Breath", + "hexcasting.action.book.hierophantics:make_hunger_trigger": "Trigger Prfn: Hunger", + "hexcasting.action.book.hierophantics:make_velocity_trigger": "Trigger Prfn: Velocity", + "hexcasting.action.book.hierophantics:make_fall_trigger": "Trigger Prfn: Fall", + "hexcasting.action.book.hierophantics:make_drop_trigger": "Trigger Rfln: Drop", + "hexcasting.action.book.hierophantics:make_attack_trigger": "Trigger Rfln: Attack", + "hexcasting.action.book.hierophantics:make_break_trigger": "Trigger Rfln: Break", + "hexcasting.action.book.hierophantics:make_jump_trigger": "Trigger Rfln: Jump", + "hexcasting.action.book.hierophantics:make_teleport_trigger": "Trigger Rfln: Teleport", + + "hierophantics.page.hierophantics.title": "Hierophantics", + "hierophantics.page.hierophantics.0": "If _media can be seen as threads, if minds can be seen as tangles of such threads, then what is to stop me from weaving them together?$(br2)Thus far, when extracting the minds of villagers, I have inserted them only into artificial subtrates, but I can do better. I can $(o)become$() better.", + "hierophantics.page.hierophantics.1": "By weaving additional minds into my own, I will gain the ability to cast _Hexes without requiring any conscious thought! I can simply $(l:patterns/mind_handling)provide$() a _Hex, and a $(l:patterns/triggers)condition$() under which to cast it, and the embedded mind will handle the rest on its own. With all the bothers of everyday life automatically handled, I can finally dedicate myself to whatever I... whatever we...$(br2)...what am I?", + "hierophantics.page.hierophantics.2": "Focus, focus. There is a snag in the plan. I cannot modify the structure of my own mind midway through a _Hex without running the risk of unraveling it entirely – and I am not yet $(o)that$() insane.$(br2)Thus, I require some artifice. I can create a bed of sorts which, when provided with an extracted mind via the usual process, can weave it into my psyche without requiring any cognition on my part.", + "hierophantics.page.hierophantics.craft": "I can then use some $(l:greatwork/impetus)$(item)external device$() to perform the extraction itself, transferring the mind into the bed while I simply lay there until the process – the $(o)integration$() – is complete.", + "hierophantics.page.hierophantics.flay": "The process requires a master-level villager, which can be transferred into either of the two blocks that make up the $(item)Imbuement Bed$(). However, if I am not in the bed at the moment the spell is cast, the mind will be wasted.", + + "hierophantics.page.villager_enhancement.title": "Villager Enhancement", + "hierophantics.page.villager_enhancement.0": "Many of my recent constructs require a sufficiently developed mind. Thus far, such development has only been possible by submitting to the demands of villagers, and providing them with an increasingly eclectic array of materials and gemstones.$(br2)Such work is clearly beneath me. Now, with the $(l:greatwork/hierophantics)$(item)Imbuement Bed$(), I finally have a solution!", + "hierophantics.page.villager_enhancement.1": "Mine is not the only mind that can be augmented. Rather than exchanging meaningless trinkets for hours on end, I can directly increase the capability of a villager mind by simply weaving in an extra one.$(br2)As a side effect, any trade offers from the source villager will be transferred into the subject - but what need have I for such petty, material gains? The very mind itself is as clay in my hands!", + "hierophantics.page.villager_enhancement.flay": "The process is nearly identical to embedding a mind into myself. The subject must lie in the $(item)Imbuement Bed$(), and a mind must be transferred into it from another villager - though the source here can be of any level.", + "hierophantics.page.villager_enhancement.2": "When there is only one skill set involved in the merger, the resulting villager will retain those skills. However, if the two villagers are of different professions, the result is something entirely new, which I have dubbed a $(thing)Quiltmind$().$(br2)The more I study this, the more I find my earlier dismissal too hasty - perhaps there $(o)is$() some merit to this process beyond simply developing the mind for later extraction.", + "hierophantics.page.villager_enhancement.3": "Like any other villager, $(thing)Quiltminds$() require a workstation to refresh their stock of goods. However, their unique mental state means that any normal workstation, even the one the villager originally used, will not suffice.$(br2)They require something capable of shifting at a moment's notice to reflect a new state of mind and an entirely new skill set. Luckily, my recent $(l:greatwork/quenching_allays)experiments with allays$() have provided the perfect material.", + "hierophantics.page.villager_enhancement.craft": "I've noticed that $(item)quenched allays$() tend to morph in response to stray thoughts. This is mostly a nuisance, but here it is critical - the surface of the workstation can adapt itself to whatever the $(thing)Quiltmind$() currently needs.", + + "hierophantics.page.mind_handling.title.0": "Hierophantic Patterns", + "hierophantics.page.mind_handling.0": "Once I $(l:greatwork/hierophantics)embed a mind$() into myself, I will need to instruct it as to its purpose. This is accomplished using mind reference iotas, which work much like entity iotas but for embedded minds. As such, I can freely create and destroy these iotas without affecting the existence of the minds themselves.", + "hierophantics.page.mind_handling.title.1": "A Note on Privacy", + "hierophantics.page.mind_handling.1": "Since mind references can be written to a storage medium, it's possible that another player may gain access to iotas refencing my own minds. Such an individual will not be able to modify my minds (the results will be similar to attempting to save my True Name) but they $(o)will$() be able to view the trigger and _Hex associated with each mind.", + "hierophantics.page.get_minds.summary": "Pushes a list of iotas representing all my embedded minds.", + "hierophantics.page.reenable_minds.summary": "When I die, my embedded minds become unstable and cease to function. This spell restores them to working order. Costs one $(l:items/amethyst)$(item)Amethyst Dust$() per mind restored.", + "hierophantics.page.get_mind_hex.summary": "Pushes the _Hex stored in the provided mind, or $(l:casting/influences)$(thing)Null$() if there isn't one.", + "hierophantics.page.set_mind_hex.summary": "Stores the provided _Hex into the mind. If there is already a stored _Hex, it will be overwritten. Costs one $(l:items/amethyst)$(item)Charged Amethyst$().", + "hierophantics.page.get_mind_trigger.summary": "Pushes the trigger stored in the provided mind, or $(l:casting/influences)$(thing)Null$() if there isn't one.", + "hierophantics.page.set_mind_trigger.summary": "Stores the provided trigger into the mind. If the mind already has a trigger, it will be overwritten. Costs one $(l:items/amethyst)$(item)Amethyst Shard$().", + "hierophantics.page.free_mind.summary": "Permanently removes an embedded mind from my own consciousness.$(br2)I wonder what happens to them, when they go?", + + "hierophantics.page.triggers.title": "Hierophantic Triggers", + "hierophantics.page.triggers.0": "My $(l:greatwork/hierophantics)embedded minds$() are independent to a point, but they cannot truly think for themselves. Thus, in order to begin casting, they require a trigger of some kind. The patterns listed here are used to create these triggers, based on a variety of common occurances. Once created, a trigger can be assigned to a mind using $(l:patterns/mind_handling#hierophantics:set_mind_trigger)Trigger Gambit$().", + "hierophantics.page.triggers.1": "Some triggers, when activated, may cast their hex with an iota relevant to the triggering event already on the stack, to allow for a more fine-grained response. The triggers that do this are listed below, along with the iota they provide:$(br)$(li)Damage: amount of damage$()$(li)DmgType: amount of damage$()$(li)Drop: dropped item entity$()$(li)Attack: attacked entity$()$(li)Break: position broken$()$(li)Teleport: offset vector$()", + "hierophantics.page.make_damage_trigger.summary": "Creates a trigger that activates whenever I take damage. To prevent a lethal chain-reaction, does not activate if the damage was caused by overcasting.", + "hierophantics.page.make_damage_type_trigger.summary": "Creates a trigger that activates whenever I take damage, but only if the damage was of a specific type. The trigger will be attunned to whatever type of damage I last received.", + "hierophantics.page.make_health_trigger.summary": "Creates a trigger that activates when my health drops below the specified value. A full, standard healthbar has a value of 20.", + "hierophantics.page.make_breath_trigger.summary": "Creates a trigger that activates when my breath drops below the specified value. A full bar of bubbles has a value of 10.", + "hierophantics.page.make_hunger_trigger.summary": "Creates a trigger that activates when my hunger drops below the specified value. A full hunger bar has a value of 20.", + "hierophantics.page.make_velocity_trigger.summary": "Creates a trigger that activates when my velocity (measured in blocks per tick) exceeds the specified value.", + "hierophantics.page.make_fall_trigger.summary": "Creates a trigger that activates when I fall further than the specified number of blocks.", + "hierophantics.page.make_drop_trigger.summary": "Creates a trigger that activates whenever I drop an item. This does $(l)not$() include involuntary dropping, such as on death or when using $(l:patterns/great_spells/teleport)Greater Teleport$().", + "hierophantics.page.make_attack_trigger.summary": "Creates a trigger that activates whenever I strike another entity.", + "hierophantics.page.make_break_trigger.summary": "Creates a trigger that activates whenever I break a block.", + "hierophantics.page.make_jump_trigger.summary": "Creates a trigger that activates whenever I jump.", + "hierophantics.page.make_teleport_trigger.summary": "Creates a trigger that activates whenever I teleport. For reasons I cannot discern, this will not detect teleports shorter than 1.5 blocks in length." +} diff --git a/projects/1.20-fabric/assets/hierophantics/hierophantics/packer-policy.json b/projects/1.20-fabric/assets/hierophantics/hierophantics/packer-policy.json new file mode 100644 index 000000000000..cdf7493dac80 --- /dev/null +++ b/projects/1.20-fabric/assets/hierophantics/hierophantics/packer-policy.json @@ -0,0 +1,6 @@ +[ + { + "type": "indirect", + "source": "projects/1.20/assets/hierophantics/hierophantics" + } +] \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md new file mode 100644 index 000000000000..0cb2419b05f5 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/README.md @@ -0,0 +1 @@ +[见主文档](/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes) \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json new file mode 100644 index 000000000000..172f467491a4 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json @@ -0,0 +1,16 @@ +{ + "hexxyattributes.entry.attributes": "Attributes", + "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...", + + "hexcasting.action.hexxyattributes:domain_reflection": "Domain Reflection", + "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.", + + "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection", + "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.", + + "hexcasting.action.hexxyattributes:media_reflection": "Media Reflection", + "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!", + + "hexcasting.action.hexxyattributes:mind_purification": "Mind Purification", + "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False." +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json new file mode 100644 index 000000000000..2e5dad7b8f84 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes/packer-policy.json @@ -0,0 +1,6 @@ +[ + { + "type": "indirect", + "source": "projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes" + } +] \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-slate-works/slate_work/lang/en_us.json b/projects/1.20-fabric/assets/modrinth-slate-works/slate_work/lang/en_us.json new file mode 100644 index 000000000000..5ae1151f5e5b --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-slate-works/slate_work/lang/en_us.json @@ -0,0 +1,129 @@ +{ + "itemGroup.slate_work": "Slate Works", + + "block.slate_work.storage_loci": "Storage Vessel", + "block.slate_work.ambit_loci": "Ambit Extender", + "block.slate_work.crafting_loci": "Patterned Assembler", + "block.slate_work.speed_loci": "Wave Regulator", + "block.slate_work.macro_loci": "Spell Imprinter", + "block.slate_work.mute_loci": "Muffling Slate", + "block.slate_work.sentinel_loci": "Sentinel Cache", + "block.slate_work.broadcaster_loci": "Iotic Door", + + "Patterns:": "", + "hexcasting.action.slate_work:get_storage": "Get Vessels", + "hexcasting.action.slate_work:check_item": "Check Item", + "hexcasting.action.slate_work:store_item": "Lay Item", + "hexcasting.action.slate_work:get_item": "Reawaken Item", + "hexcasting.action.slate_work:sort_items": "Reorient Items", + "hexcasting.action.slate_work:read_broadcast": "Review Broadcast", + + "hexcasting.action.slate_work:set_craft": "Set Recipe", + "hexcasting.action.slate_work:set_macro": "Bind Macro", + + "hexcasting.action.slate_work:set_sents": "Apply Pseudosentinels", + "hexcasting.action.slate_work:get_sents": "Locate Pseudosentinels", + + "hexcasting.action.slate_work:wave_position": "Wave Location Rfln.", + "hexcasting.action.slate_work:wave_normal": "Wave Facing Rfln.", + "hexcasting.action.slate_work:wave_speed": "Wave Speed Rfln.", + "hexcasting.action.slate_work:media_reflection": "Circle Media Rfln.", + + "Items:": "", + "item.slate_work.allay_pigment": "Quenched Pigment", + + "Entries:": "", + "slate_work.entry.storage_loci": "Locus Spells", + "slate_work.page.storage_loci.1": "As wonderful as $(thing)Vessels/$ are for storage, they have an... opaque method of interaction. The main way of interaction is with _Hexes; more specifically, using a _Hex to describe what I wish to retrieve. Importantly, these all $(l:casting/mishaps2)mishap when not cast in a Spell Circle/$. $(br2)$(br)$(o)“Riddles,” I said. $(br)“Always preferable to no answer at all,” he responded.", + "slate_work.page.storage_loci.2": "To elaborate more, $(thing)Vessels/$ respects Nature's silly rules regarding the \"Stack Limit\" by working around them. Rather than directly calling an item based on its name, I more-or-less supply a \"description;\" this is a _Hex that takes an $(l:patterns/scrying/item)Item Stack Iota/$, and needs to return a boolean. Also, all patterns to do with the retrieving of $(thing)Storage Vessels/$ take a copy of the Stack, and puts it onto the 'inner' stack (much like $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$).", + "slate_work.page.storage_loci.get_storage": "This simply returns what $(thing)Vessels/$ the current $(l:greatwork/spellcircles)Spell Circle/$ has activated. I should likely use this to check if the $(l:greatwork/spellcircles)Spell Circle/$ has collected any $(thing)Vessels/$.", + "slate_work.page.storage_loci.store_item": "It is much easier to store an item into a $(thing)Vessel/$ than to pull it out. This pattern simply takes an Item Entity, and neatly sorts it into the activated $(thing)Storage Vessels/$. Costs an 1/8th of a $(l:items/amethyst)dust/$ per activated $(thing)Vessel/$.", + "slate_work.page.storage_loci.get_item": "This takes a _Hex and runs it on every $(l:patterns/scrying/item)Item Stack/$ stored (with it on top of the stack). Once the _Hex is executed, it requires a $(thing)Integer/$, $(thing)Vector/$, and $(thing)Boolean/$, left on the stack, in that order.", + "slate_work.page.storage_loci.get_item_cont": "Further explained: this runs the given _Hex on every stored Item in the $(thing)Vessels/$. The _Hex must return (top to bottom) either a False (omits the Vector, and Number) or True, Vector, and Number. The Vector corresponds to where to output the items into the world (respecting ambit), and Number relates to how many of that type of item to retrieve. $(br2)Costs a 1/4th of a $(l:items/amethyst)dust/$ per activated $(thing)Vessel/$.", + "slate_work.page.storage_loci.check_item": "Check Item functions much like Reawaken Item; however, it only requires a Boolean from the inputted _Hex. If the Boolean is ever True, the spell ends, and returns True.", + "slate_work.page.storage_loci.sort_items": "In some rare scenarios, $(thing)Vessels/$ can get jumbled up and have items of the same type spread across different $(thing)Vessels/$. This is a neat spell to resort them at a cost. That cost being 5 $(l:items/amethyst)Charged Amethyst/$.", + "slate_work.page.storage_loci.set_craft": "Sets the crafting recipe of a $(l:greatwork/crafting_loci)Patterned Assembler/$. Takes a list of $(l:casting/influences)$(thing)Nulls/$, items, or item variants, and applies it to the targeted $(l:greatwork/crafting_loci)Assembler/$.", + "slate_work.page.storage_loci.set_craft_cont": "To note: the given list gets \"formatted\" as left to right, top to bottom in the $(l:greatwork/crafting_loci)Patterned Assembler/$. As well, the $(l:casting/influences)$(thing)Nulls/$ represent blank spots in recipes. Finally, the Spell will mishap if the given list is longer than 9 items (but passes with less than or equal to 9 items). $(br2)Does not mishap if cast outside of a $(l:greatwork/spellcircles)Spell Circle/$. Costs a negligible amount of _media.", + "slate_work.page.storage_loci.set_macro": "This binds both a pattern and an iota to a $(l:greatwork/macro_loci)Spell Imprinter/$, which is at the targeted vector. $(br2)Does not mishap if casted outside of a $(l:greatwork/spellcircles)Spell Circle/$. Costs a negligible amount of _media.", + "slate_work.page.storage_loci.read_broadcast": "Attempts to read an $(l:greatwork/broadcaster_loci)Iotic Door/$ at the given vector. If there is not a $(l:greatwork/broadcaster_loci)Door/$, returns garbage. $(br)Does not mishap if casted outside of a $(l:greatwork/spellcircles)Spell Circle/$, free, and does not require ambit.", + + "slate_work.entry.storage_loci_block": "Storage Vessels", + "slate_work.page.storage_loci_block.storage_loci": "After $(o)FAR TOO LONG/$ of lugging my items in clunky, splintery, $(o)chests/$... I have discovered the perfect method of storage, $(thing)Storage Vessels/$. $(br)Despite my current state, I am still far too full of mental garbage to interface with the $(thing)Storage Vessels/$. However, $(l:greatwork/spellcircles)Spell Circles/$ are perfect for insertion and extraction of these new storage methods.", + "slate_work.page.storage_loci_block.storage_loci_cont": "While $(thing)Storage Vessels/$ can only hold 16 \"types\" of items each (much like a single chest holding only 27 slots), they ignore the standard stack limit, holding a near-infinite amount of each slot! $(br2)Additionally, as a $(l:greatwork/spellcircles)Spell Circle/$ activates these with its high-density $(thing)Media Wave/$, the $(l:greatwork/spellcircles)Circle/$ gains the ability to read and retrieve items from the $(thing)Storage Vessels/$ (stacking as more are activated). I have noted down the Spells for doing just that $(l:patterns/spells/storage_loci)here/$.", + "slate_work.page.storage_loci_block.dropping": "Important to note: when $(thing)Storage Vessels/$ are broken, they do not eject the items stored within. Instead, they carefully pack all of their items into the resulting broken block (much like a $(item)Shulker Box/$). $(br2)$(br2)$(o)\"Oh boy! Time to get my items!\"$(br)[sound of chest opening]$(br)[sound of chest closing]$(br)[sound of chest opening]$(br)[sound of chest closing]$(br)[sound of chest opening]$(br)[sound of chest closing]", + "slate_work.page.storage_loci_block.lens": "Whenever I wear a $(l:items/lens)Scrying Lens/$ and observe a $(thing)Storage Vessel/$, it displays the items held within, to me. This feels almost like Nature is toying with me, since there is no way to pull items directly out of a $(thing)Storage Vessel/$... I will admit however, it is handy to see what I have with a glance.", + "slate_work.page.storage_loci_block.crafting": "The $(thing)Storage Vessel/$ requires a mind capable of diving into the depths, and retrieving something based on only a hint. A $(thing)Fisherman villager/$ is perfect for this.", + + "slate_work.entry.ambit_loci": "Ambit Extenders", + "slate_work.page.ambit_loci.ambit_loci": "The $(thing)Ambit Extender/$ is a fabulous answer to my $(thing)Ambit/$ woes when it comes to $(l:greatwork/spellcircles)Spell Circles/$. This pops a vector from the stack, and extends ambit in the direction (negative vectors extending the negative corner of Circle Ambit). $(br2)$(o)With great range comes with great costs, err-", + "slate_work.page.ambit_loci.ambit_loci_cont": "While this is not as strong as... $(l:https://forum.petra-k.at/viewtopic.php?t=136)other/$ methods of giving a $(l:greatwork/spellcircles)Spell Circle/$ more $(thing)Ambit/$, I do feel like Nature takes a kinder approach to my amalgamation of free will if I use this.$(br2)This does not come cheap however, the _media cost increases with the square of the total distance extended in $(l:items/amethyst)dust/$.", + "slate_work.page.ambit_loci.crafting": "Since the $(thing)Ambit Extender/$ operates on $(thing)Ambit/$, having a \"core\" block that can operate on $(thing)Media Waves/$ would be beneficial. As well, having nearly $(l:greatwork/quenching_allays)Pure Media/$ would also be required for this construction.", + + "slate_work.entry.speed_loci": "Wave Regulators", + "slate_work.page.speed_loci.speed_loci": "As I begin to explore the uses of the $(l:greatwork/spellcircles)Great Work/$, I find my self needing more control over these fascinating possibilities. So I have created the $(thing)Wave Regulator/$; what this does is it pops a number from the stack, and attempts to set the \"speed\" of the wave. More specifically, how many 20ths of a second the wave should wait before going to the next slate.", + "slate_work.page.speed_loci.speed_loci_cont": "This system does have some limitations however. For one, it cannot set the speed to be faster than the wave could possibly move, doing nothing if I try to set the speed higher. Explained, it can only set the time to wait to any number above or equal the $(l:greatwork/spellcircles)circle's/$ default acquired speed, or back to its regular speed. To do this, the $(thing)Wave Regulator/$ needs to pop a 0 from the stack, and it gives the $(l:greatwork/spellcircles)Spell Circle/$ full control of the $(thing)Media Wave/$ again.", + "slate_work.page.speed_loci.crafting": "$(thing)Wave Regulators/$ are odd in their construction compared to the rest of my... $(o)Gifted/$ visions. All they require is a $(l:greatwork/quenching_allays)scrap of Media/$ with some writhing will still left in it... how it must be in pain-- and some slate to make it compatible with the $(l:greatwork/spellcircles)Circle/$.", + + "slate_work.entry.crafting_loci": "Patterned Assemblers", + "slate_work.page.crafting_loci.crafting_loci": "Oh how my hands $(o)Ache/$ and $(o)Buzz/$ from countless hours of slaving over a $(item)Crafting Table/$... luckily these days are over. The $(thing)Patterned Assembler/$ solves these pains and problems. $(br2)$(o)Items ever deeper in items, I cant stop crafting, I cant stop looking; more items must be crafted and automated. $(b)NOW/$.", + "slate_work.page.crafting_loci.crafting_loci_cont": "Precisely what the $(thing)Patterned Assembler/$ does is it attempts to craft whatever item is set within, pulling from activated $(l:greatwork/storage_loci_block)Storage Vessels/$, and placing the resulting item(s) back into the $(thing)Vessels/$. This is triggered when the $(thing)Assembler/$ is activated with a $(l:greatwork/spellcircles)Spell Circle/$. The recipe can be set by hand, or via a $(l:patterns/spells/storage_loci#slate_work:set_craft)Spell/$. If it can craft the inscribed item, it returns a True to the stack and crafts the item, else it does not craft the item (not enough ingredients, no recipe, etc) and returns a False.", + "slate_work.page.crafting_loci.crafting": "The $(thing)Patterned Assembler/$ requires the mind of a villager well adapted to paging through tomes and texts; it seems like the $(thing)Librarian/$ is perfect for this.", + + "slate_work.entry.macro_loci": "Spell Imprinter", + "slate_work.page.macro_loci.macro_loci": "During my travels I have heard mutterances about things called \"macros,\" patterns that represent larger _Hexes (I believe these to be linked to a possible $(l:greatwork/akashiclib)Akashic Library/$?). Nonetheless, I am able to recreate these \"macros\" with Spell Circles using the $(thing)Spell Imprinter/$, and an iota written inside of a $(l:items/focus)any iota holder/$ placed on top of the $(thing)Imprinter/$.", + "slate_work.page.macro_loci.macro_loci_cont": "When this is activated by a $(l:greatwork/spellcircles)Spell Circle/$, it binds the$(br)currently set pattern to the iota stored within the held item (which can be set via a $(l:patterns/spells/storage_loci#slate_work:set_macro)spell/$). Thus whenever the pattern is inscribed into slate and activated, it instead runs the iota rather than the written pattern. Though, the implications of this are horrifying, rewriting the definition of a $(o)spell/$. A thing that is deeply intertwined with the world itself, does that mean I, could be rewritten; changed by a higher force? No. N$(k)AAAAA!/$", + "slate_work.page.macro_loci.lens": "A quite handy feature of the $(thing)Spell Imprinter/$ is being able to wear a $(l:items/lens)Scrying Lens/$ and observing the bound pattern and the iota to be ran with the bound pattern. $(br2)On closer observation of a freshly... \"constructed\" $(thing)Spell Imprinter/$, it has a pre-inscribed pattern of $(l:patterns/basics#hexcasting:get_caster)Mind's Reflection/$. Whilst useful, it is deeply unsettling for reasons I can not put into words...", + "slate_work.page.macro_loci.crafting": "Despite the horrors this possibly ascertains... this is still an advantageous block to obtain. I believe a $(thing)Weaponsmith villager/$ would be the best fit. This is due to their adeptness at reworking broken weapons to new, sharper instruments.", + + "slate_work.entry.mute_loci": "Muffling Slate", + "slate_work.page.mute_loci.mute_loci": "While I work with $(l:greatwork/spellcircles)Spell Circles/$ more and more, the constant $(o)crackles/$ from the $(thing)Media Wave/$ has begun to ring in my ears. And with some of my more... esoteric $(l:greatwork/spellcircles)Circles/$, nearly deafening me. $(br2)Luckily, this, the $(thing)Muffling Slate/$, can protect my ears from the obnoxious sounds and noises.", + "slate_work.page.mute_loci.mute_loci_cont": "When activated by a $(l:greatwork/spellcircles)Spell Circle/$, this pops a number between 1 and 0 (inclusive for both), and sets the \"volume\" of the crackles and rackets to that. This applies to all sounds that the $(thing)Media Wave/$ makes, so executing patterns, $(l:greatwork/macro_loci)Macros/$, or moving will be silenced. $(br2)$(o)\"Nat, he's made sound! He's an audiomage!\" $(br)\"I hear it,\" Nat replies, not looking back. \"And stop inventing words.\"", + "slate_work.page.mute_loci.crafting": "Thankfully, the $(thing)Muffling Slate/$ is a cheap and simple craft; taking a scrap of wool, and some slate. $(br2)$(br)$(o)Silence is gold for some, or even iron for more; but for my self, silence is diamonds.", + + "slate_work.entry.sentinel_loci": "Sentinel Cache", + "slate_work.page.sentinel_loci.intro": "The yells, the screams, the agony. The unimaginable pain I felt? Saw? Experienced? Witnessed. The- the... I am getting distracted. I must write down what I have $(o)witnessed/$. During the lights, feelings, and $(o)surge/$ of my grand... does that even fit?- enlightenment, I saw a vision of a construct that would improve $(l:greatwork/spellcircles)Spell Circles/$. But at an extreme cost.", + "slate_work.page.sentinel_loci.intro_cont": "The block- construct- $(o)amalgamation/$ is called the $(thing)Sentinel Cache/$. It is possibly the most flexible $(br) block for $(l:greatwork/spellcircles)Spell Circles/$, but the anguish required for its vision- am I going to make this? This creates a pseudo $(l:patterns/great_spells/greater_sentinel)Greater Sentinel/$ (called \"Pseudosentinel\") with a radius of 4 blocks that the circle can affect. This Pseudosentinel first \"spawns\" where ever the block is placed, but can be moved around with $(l:patterns/spells/sentinel_loci_patterns)spells/$. Costs a negligible amount of _media to awaken this monstrosity.", + "slate_work.page.sentinel_loci.sentinel_loci" : "This agglomeration of minds, twisted, pulled, shattered, and mended. I $(o)hear/$ them, yet no sound is made, I $(o)hear/$ their pain. Several minds ripped and combined into a block. All for my gain... But- the way the light shimmers and dances off of the slate foundation, the wetted amethyst's gleam... $(o)It calls to me/$", + "slate_work.page.sentinel_loci.extra": "My mind is degrading. I must finish my notes. $(o)Now/$. $(br2)If I observe the $(thing)Sentinel Cache/$ with a $(l:items/lens)Scrying Lens/$, it displays the current location of the $(l:patterns/great_spells/greater_sentinel)Pseudosentinel/$. As well, activating more $(thing)Sentinel Caches/$ adds to the list of all known $(thing)Caches/$, and the $(l:greatwork/spellcircles)Circle/$ gains ambit from each.", + "slate_work.page.sentinel_loci.crafting": "For this amalgamation of agglomerations, it takes an $(l:greatwork/ambit_loci)Ambit Extender/$, to generate the ambit modifications, and a Master level $(thing)Villager/$ of any kind. If the mind was weaker, it would shatter against the already saturated Flayed Block.", + + "slate_work.entry.broadcaster_loci": "Iotic Door", + "slate_work.page.broadcaster_loci.broadcaster_loci": "After close examination of the enigmatic gifted $(l:greatwork/akashiclib)Akashic Libraries/$, I believe that I may recreate their iota storage for $(l:greatwork/spellcircles)Spell Circles/$; albeit, in a cruder manner. $(br2)$(o)\"The door is open, if you're ready?\" $(br)\"No, not... not really, but...\" $(br)*sigh* *click*", + "slate_work.page.broadcaster_loci.broadcaster_loci_cont": "The $(thing)Iotic Door/$ creates a \"back door\" into reality its self, broadcasting the iota it holds within. Which, is set by popping the top iota of the $(l:greatwork/spellcircles)Spell Circle/$'s stack when activated. $(br2)As well, the $(thing)Door/$ can be read from anywhere in the world (as long as its being read in the same dimension), even bypassing the mysterious forces of chunkloading! The spell to read these are jotted down $(l:patterns/spells/storage_loci#slate_work:read_broadcast)here/$.", + "slate_work.page.broadcaster_loci.extra": "Important to note, if the targeted position does not contain an $(thing)Iotic Door/$, it returns garbage. I may only assume this is somehow from the background noise of Nature? $(br2)Just as importantly, due to the crude nature of the $(thing)Iotic Door/$, it may only hold \"simple\" iotas; therefore lists (and any player references as well) can not be stored. $(br)Finally, if I adorn a $(l:items/lens)Scrying Len/$, I may see the iota this stores.", + "slate_work.page.broadcaster_loci.crafting": "Due to the $(thing)Iotic Door/$'s odd nature of being read from anywhere, it requires a suitable amount of $(l:greatwork/quenching_allays)$(item)Quenched Allay/$ and parts from an $(l:greatwork/akashiclib)$(item)Akashic Library/$.", + + "slate_work.entry.slate_work_pigments": "Fanciful Pigments", + "slate_work.page.slate_work_pigments.slate_work_pigments": "Just as my $(l:items/staff)Staves/$ have evolved, so too must my $(l:items/pigments)Pigments/$. These may not gift any glorious or grand amenities or effects, but all their boons are purely visual. $(br2)Additionally, those who know of these pigments, will now know of my $(o)Awakening/$.", + "slate_work.page.slate_work_pigments.allay": "Since my... $(o)Visions/$, I have awoken to see the true form of Allays, nothing more than a scrap of _media. Perhaps this scrap of _media could be turned into a picture perfect pigment?", + + "slate_work.entry.slate_reflection": "Slate Reflections", + "slate_work.page.storage_loci.wave_position": "Adds the current position of the $(thing)Media Wave/$ to the top of the stack.", + "slate_work.page.storage_loci.wave_normal": "Adds the current facing of the $(thing)Media Wave/$ to the top of the stack. If the current block does not have a facing, it returns a vector of [0,0,0].", + "slate_work.page.storage_loci.wave_speed": "Adds the current speed of the $(thing)Media Wave/$ to the top of the stack. This is measured in how many 20ths of a second the $(thing)Media Wave/$ waits until going to the next $(l:items/slate)Slate.", + "slate_work.page.storage_loci.media_reflection": "Adds the current amount of _Media in the $(thing)Impetus/$ to the stack, in units of $(l:items/amethyst)dust/$.", + + "slate_work.entry.sentinel_loci_patterns": "Sentinel Cache Patterns", + "slate_work.page.sentinel_loci_patterns.1": "$(l:greatwork/sentinel_loci)Sentinel Caches/$ have an odd method of interaction compared to their non-$(l:greatwork/spellcircles)Spell Circle/$ $(l:patterns/great_spells/greater_sentinel)counter parts/$. They are interfaced via a list of vectors, opposed to a single vector. $(br2)These all $(l:casting/mishaps2)mishap when not cast in a Spell Circle/$.", + "slate_work.page.sentinel_loci_patterns.break_space": "$(o)It's doing physical and mental damage to it, as if it had body parts and organs and memories being consumed as _Media. $(o)$(br2)It burns its life story for fuel. $(o)$(br2)It burns its fingers and toes and its attachments to the ground until there's nothing but pure cognition.", + "slate_work.page.sentinel_loci_patterns.set_sents": "This takes a list of vectors, and attempts to move the Pseudosentinels to the positions.", + "slate_work.page.sentinel_loci_patterns.set_sents_cont": "Helpfully, the list of vectors from $(thing)Locate Pseudosentinels/$ will always match the order of $(thing)Apply Pseudosentinels/$, meaning I need not worry about the ordering. $(br2)This will mishap if the given list is larger than the current awoken $(l:greatwork/sentinel_loci)Cache/$ amount. Costs 1 $(l:items/amethyst)dust/$ to command the Pseudosentinel, and due to fatigue, an extra 1/8th of a $(l:items/amethyst)dust/$ (stacking) for each Pseudosentinel that was already moved in the same instance.", + "slate_work.page.sentinel_loci_patterns.get_sents": "This retrieves the current positions of all Pseudosentinels in the order they were awoken. Free to cast.", + + "Mishaps:": "", + "hexcasting.mishap.circle.no_storage_loci_ran": "At %s did not find any activated Vessels", + "hexcasting.mishap.circle.media_costs": "At %s required more Media than what the impetus held", + "hexcasting.mishap.circle.readable": "At %s required a List in a Focus, but did not get that", + "hexcasting.mishap.circle.simpler_iota": "At %s required a simpler Iota", + "hexcasting.mishap.invalid_value.simpler_iota": "a simpler Iota", + + "hexcasting.mishap.no_storage_loci_ran": "Did not find any activated Vessels", + "hexcasting.mishap.list_length": "Required a list with %s items, but got %s items", + "hexcasting.mishap.wrong_block": "Required a(n) %s at %s, but found %s", + "hexcasting.mishap.needed_focus": "Required a focus at %s, but did find that", + "hexcasting.mishap.no_storage_sentinel_ran": "Did not find any activated Caches", + + "Scrying Lenses:": "", + "slate_work.scrying.macro.top": "Pattern: ", + "slate_work.scrying.macro.error": "Could not display Iota(s)" +} \ No newline at end of file diff --git a/projects/1.20-fabric/assets/modrinth-slate-works/slate_work/lang/zh_cn.json b/projects/1.20-fabric/assets/modrinth-slate-works/slate_work/lang/zh_cn.json new file mode 100644 index 000000000000..7eaee105cdf4 --- /dev/null +++ b/projects/1.20-fabric/assets/modrinth-slate-works/slate_work/lang/zh_cn.json @@ -0,0 +1,129 @@ +{ + "itemGroup.slate_work": "石板工程", + + "block.slate_work.storage_loci": "存储容具", + "block.slate_work.ambit_loci": "范围扩展器", + "block.slate_work.crafting_loci": "样板组装器", + "block.slate_work.speed_loci": "波速调节器", + "block.slate_work.macro_loci": "法术刻印器", + "block.slate_work.mute_loci": "抑音石板", + "block.slate_work.sentinel_loci": "哨卫缓存器", + "block.slate_work.broadcaster_loci": "Iota之门", + + "Patterns:": "", + "hexcasting.action.slate_work:get_storage": "获取容具", + "hexcasting.action.slate_work:check_item": "检查物品", + "hexcasting.action.slate_work:store_item": "容纳物品", + "hexcasting.action.slate_work:get_item": "唤回物品", + "hexcasting.action.slate_work:sort_items": "重整物品", + "hexcasting.action.slate_work:read_broadcast": "回顾广播", + + "hexcasting.action.slate_work:set_craft": "设置配方", + "hexcasting.action.slate_work:set_macro": "绑定宏", + + "hexcasting.action.slate_work:set_sents": "安置伪哨卫", + "hexcasting.action.slate_work:get_sents": "定位伪哨卫", + + "hexcasting.action.slate_work:wave_position": "波位之精思", + "hexcasting.action.slate_work:wave_normal": "波向之精思", + "hexcasting.action.slate_work:wave_speed": "波速之精思", + "hexcasting.action.slate_work:media_reflection": "环质之精思", + + "Items:": "", + "item.slate_work.allay_pigment": "淬灵染色剂", + + "Entries:": "", + "slate_work.entry.storage_loci": "环核图案", + "slate_work.page.storage_loci.1": "$(thing)容具/$很适合用来存储,但它们的交互功能……不太方便。主要的交互方式是$(hex)咒术/$;更详细说来,是在$(hex)咒术/$中描述希望取得的物品。同时需要注意,这些法术$(l:casting/mishaps2)不在法术环中执行时会招致事故/$。$(br2)$(br)$(o)“谜题”,我说道。$(br)“最好就是不去解答”,他应道。", + "slate_work.page.storage_loci.2": "再详细地说,对于自然对“栈限制”的愚蠢规则,$(thing)容具/$选择以绕过它们的方式尊重它们。它不会直接根据名称请求物品,而是需要我提供一条“说明”——即一条接受$(l:patterns/scrying/item)物品组 iota/$ 并返回一个布尔值的$(hex)咒术/$。而且,所有涉及获取$(thing)存储容具/$信息的图案都会复制一份物品组置入“内部”栈(和$(l:patterns/meta#hexcasting:for_each)$(action)托特之策略/$很相似)。", + "slate_work.page.storage_loci.get_storage": "返回当前$(l:greatwork/spellcircles)法术环/$激活的$(thing)容具/$。大概可以用来检查$(l:greatwork/spellcircles)法术环/$是否获取到了$(thing)容具/$。", + "slate_work.page.storage_loci.store_item": "向$(thing)容具/$存入物品比取出容易。此图案会接受一个物品实体,并将其轻巧地存入激活的$(thing)存储容具/$。每有一个激活的$(thing)容具/$消耗 1/8 个$(l:items/amethyst)紫水晶粉/$。", + "slate_work.page.storage_loci.get_item": "此图案接受一个$(hex)咒术/$,并对所存储的所有$(l:patterns/scrying/item)物品组/$(运行时置于栈顶)运行。运行该$(hex)咒术/$后,图案还需要栈中按顺序存在一个$(thing)整数/$,一个$(thing)向量/$和一个$(thing)布尔值/$。", + "slate_work.page.storage_loci.get_item_cont": "继续解释说明。它会对$(thing)容具/$中存储的所有物品运行给定$(hex)咒术/$。该$(hex)咒术/$必须从栈顶至栈底依次返回 False(此时省略向量和数)或 True,一个向量,一个数。向量代表向世界输出物品的位置(需在影响范围内),数代表应取出的数量。$(br2)每有一个激活的$(thing)容具/$消耗 1/4 个$(l:items/amethyst)紫水晶粉/$。", + "slate_work.page.storage_loci.check_item": "检查物品的功能和唤回物品类似。但它只需要$(hex)咒术/$返回一个布尔值。如果所有布尔值中有一个为 True,则法术结束并返回 True。", + "slate_work.page.storage_loci.sort_items": "在某些情况下,$(thing)容具/$会变得杂乱无章,同种物品被分散到不同的$(thing)容具/$里去。这条好用的法术就可以整理它们,但它有代价:需消耗 5 个$(l:items/amethyst)充能紫水晶/$。", + "slate_work.page.storage_loci.set_craft": "为$(l:greatwork/crafting_loci)样板组装器/$设置合成配方。接受包含 $(l:casting/influences)$(thing)Null/$、物品、物品变种的列表,并将此列表应用于目标$(l:greatwork/crafting_loci)组装器/$。", + "slate_work.page.storage_loci.set_craft_cont": "需要注意,$(l:greatwork/crafting_loci)样板组装器/$会将所给列表“格式化”为从左至右再从上至下的配方。自然,$(l:casting/influences)$(thing)Null/$ 代表配方中的空位。最后提一句,法术会在列表长于 9 个元素时招致事故,少于或等于 9 个时则不会。$(br2)在$(l:greatwork/spellcircles)法术环/$外施放不会招致事故。消耗极少量$(media)媒质/$。", + "slate_work.page.storage_loci.set_macro": "此图案会为目标位置处的$(l:greatwork/macro_loci)法术刻印器/$绑定一个图案和一个 iota。$(br2)在$(l:greatwork/spellcircles)法术环/$外施放不会招致事故。消耗极少量$(media)媒质/$。", + "slate_work.page.storage_loci.read_broadcast": "尝试读取所给向量处的 $(l:greatwork/broadcaster_loci)Iota 之门/$。如果该处无 $(l:greatwork/broadcaster_loci)Iota 之门/$则返回垃圾。$(br)在$(l:greatwork/spellcircles)法术环/$外施放不会招致事故,无需消耗媒质$(media)媒质/$,也不受影响范围限制。", + + "slate_work.entry.storage_loci_block": "存储容具", + "slate_work.page.storage_loci_block.storage_loci": "在忍那些到处都是木刺的笨重$(o)箱子/$到$(o)快忍不下去/$之后……我总算发现了完美的存储方法——$(thing)存储容具/$。$(br)虽然我已经抛弃了一部分意识垃圾,但还不足以直接操作$(thing)存储容具/$。不过,$(l:greatwork/spellcircles)法术环/$就是处理这种新存储方法的好工具。", + "slate_work.page.storage_loci_block.storage_loci_cont": "虽然一个$(thing)存储容具/$只能存储 16“类”物品(就和箱子只有 27 个槽位差不多),但它们却能无视标准堆叠上限,换言之,每个槽里都能存下近乎无限的物品!$(br2)而且,在$(l:greatwork/spellcircles)法术环/$的高密度$(thing)媒质波/$激活容具之后,$(l:greatwork/spellcircles)它/$就将能够读取和拿出$(thing)存储容具/$里的物品;激活的越多,能操作的就越多。我在$(l:patterns/spells/storage_loci)这里/$记录了进行这种操作所需的法术。", + "slate_work.page.storage_loci_block.dropping": "需要格外注意的是,$(thing)存储容具/$遭到破坏时不会喷出其中的物品,而是会将物品小心打包进掉落的方块(和$(item)潜影盒/$很像)。$(br2)$(br2)$(o)“噢!是时候找点东西了!”$(br)[箱子:开启]$(br)[箱子:关闭]$(br)[箱子:开启]$(br)[箱子:关闭]$(br)[箱子:开启]$(br)[箱子:关闭]", + "slate_work.page.storage_loci_block.lens": "佩戴$(l:items/lens)探知透镜/$去观察$(thing)存储容具/$的话,它会显示其内部的物品。这就好像是自然在取笑我,因为我无法把$(thing)存储容具/$里的物品直接拿出来……但还是得承认,看它一眼就知道里面存了什么确实很方便。", + "slate_work.page.storage_loci_block.crafting": "$(thing)存储容具/$需要能够潜入深渊,还能根据少量提示取回物品的意识。$(thing)渔夫村民/$就很适合。", + + "slate_work.entry.ambit_loci": "范围扩展器", + "slate_work.page.ambit_loci.ambit_loci": "$(thing)范围扩展器/$能解$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$之忧。它会移除栈顶向量,并据此扩展影响范围(负向量会向负方向扩展法术环影响范围)。$(br2)$(o)范围越大,消耗越大,呃……", + "slate_work.page.ambit_loci.ambit_loci_cont": "虽然它不及……$(l:https://forum.petra-k.at/viewtopic.php?t=136)其他/$扩展$(l:greatwork/spellcircles)法术环/$$(thing)影响范围/$的方法强大,但我确实觉得这种方法可以让自然对我的自由意志友善些。$(br2)这种方法并不便宜,$(media)媒质/$的耗量(以$(l:items/amethyst)紫水晶粉/$计)与改变距离的平方相等。", + "slate_work.page.ambit_loci.crafting": "因为$(thing)范围扩展器/$修改的是$(thing)影响范围/$,配备能操纵$(thing)媒质波/$的“核心”应为最佳。自然,创造这种方块需要的是$(l:greatwork/quenching_allays)纯净的媒质/$。", + + "slate_work.entry.speed_loci": "波速调节器", + "slate_work.page.speed_loci.speed_loci": "自从我开始探索$(l:greatwork/spellcircles)卓伟之作/$的用途之时,就总有更精细控制这种新事物的需要。因此,我制造了$(thing)波速调节器/$。它会从栈中弹出一个数,并用其设置$(thing)媒质波/$的“速度”。更准确地说,是波在流入下一块石板前应等待多少个 1/20 秒。", + "slate_work.page.speed_loci.speed_loci_cont": "这一体系的确有其局限。例如,速度无法超出$(thing)媒质波/$移速的上限,试图这么做不会产生任何效果。换言之,它只能将等待时间设为大于等于$(l:greatwork/spellcircles)法术环/$的最短等待时间,或是重设为正常速度。后者需要$(thing)波速调节器/$弹出 0,从而将$(thing)媒质波/$的控制权交还给$(l:greatwork/spellcircles)法术环/$。", + "slate_work.page.speed_loci.crafting": "和我……$(o)受赐福/$的视野中看到的其他东西不一样,$(thing)波速调节器/$显得很奇怪。它需要的只是$(l:greatwork/quenching_allays)媒质的碎片/$,但其中须留有挣扎的痕迹……想必是极为痛苦的——和几块石板,方便嵌入$(l:greatwork/spellcircles)法术环/$。", + + "slate_work.entry.crafting_loci": "样板组装器", + "slate_work.page.crafting_loci.crafting_loci": "我的双手在$(item)工作台/$上不断挥动,带来的只是$(o)疼痛/$和$(o)麻木/$……好在这些都过去了。$(thing)样板组装器/$就是止痛剂。$(br2)$(o)物品里埋着物品,合成到停不下来,看到停不下来,合成、自动化、更多物品。$(b)现在就要/$。", + "slate_work.page.crafting_loci.crafting_loci_cont": "$(thing)样板组装器/$的真正原理是:从激活的$(l:greatwork/storage_loci_block)存储容具/$中取出物品,按设定合成,再把产物存回$(thing)容具/$。$(thing)组装器/$被$(l:greatwork/spellcircles)法术环/$触发时即会执行上述操作。可以手工设置配方,也可使用$(l:patterns/spells/storage_loci#slate_work:set_craft)法术/$。如果它可以合成给定物品,则它会向栈返回 True,并合成物品;否则(原材料不够,配方没指定等)返回 False,且不会合成。", + "slate_work.page.crafting_loci.crafting": "$(thing)样板组装器/$需要熟络典籍和文章,能一目十行的村民的意识。完美之选是$(thing)图书管理员/$。", + + "slate_work.entry.macro_loci": "法术刻印器", + "slate_work.page.macro_loci.macro_loci": "我在旅行中从其他人的交谈里听到了某种叫“宏”的东西,也即代表咒术的图案(我认为需要和$(l:greatwork/akashiclib)阿卡夏图书馆/$配合?)。即便如此,我也可以在法术环上重现“宏”。需要用到$(thing)法术刻印器/$,还需在刻印器上放置写有 iota 的$(l:items/focus)相应存储物品/$。", + "slate_work.page.macro_loci.macro_loci_cont": "$(l:greatwork/spellcircles)法术环/$激活刻印器后,它会将当前图案与存储物品内的 iota 绑定(也可通过$(l:patterns/spells/storage_loci#slate_work:set_macro)法术/$设置)。每当画有该图案的石板被激活,即会执行所给 iota,而非该图案。这实在是细思恐极;重写$(o)法术/$的定义,重写与世界本身紧密相关的事物。那么,我是不是也会,被更高级的存在改写?不。不$(k)啊啊啊啊啊!/$", + "slate_work.page.macro_loci.lens": "$(thing)法术刻印器/$有个方便的特性:戴着$(l:items/lens)探知透镜/$看它,会显示绑定的图案和该图案对应的 iota 。$(br2)而要是去观察刚……“制造”完毕的$(thing)法术刻印器/$,其中会预先写有一个$(l:patterns/basics#hexcasting:get_caster)意识之精思/$的图案。这一特性很有用,但真是没来由地让人不安……", + "slate_work.page.macro_loci.crafting": "虽然这种做法可能会带来恐惧……但还是很好用。我认为$(thing)武器匠/$是最好的选择,他们的专长就是磨砺和翻新损坏的武器。", + + "slate_work.entry.mute_loci": "抑音石板", + "slate_work.page.mute_loci.mute_loci": "随着$(l:greatwork/spellcircles)法术环/$的使用频率不断上涨,$(thing)媒质波/$发出的$(o)噼啪声/$开始让我耳鸣了。还有某些更……玄妙的$(l:greatwork/spellcircles)法术环/$,它们的噪声真能把人震聋。$(br2)还好,这块$(thing)抑音石板/$可以帮我的耳朵挡下$(l:greatwork/spellcircles)法术环/$的各种刺耳噪声。", + "slate_work.page.mute_loci.mute_loci_cont": "被$(l:greatwork/spellcircles)法术环/$激活时,它会从栈中取出一个 0 到 1 之间的数(两端闭),并据此设置各种噼啪声和噪声的“音量”。它对$(thing)媒质波/$发出的各种声音都有效,运行图案、运行$(l:greatwork/macro_loci)宏/$、流过石板等声音均在范围内。$(br2)$(o)“奈特,他让它产生了声音!他是个声音法师!”$(br)“我听见了,”奈特回应到,头都没扭一下,“别随便发明称呼。”", + "slate_work.page.mute_loci.crafting": "还好,$(thing)抑音石板/$并不昂贵,也不复杂;把一团羊毛和石板拼到一起就行。$(br2)$(br)$(o)对某些人来说,沉默是金;更多人甚至会认为沉默是铁。但对我来说,沉默是钻石。", + + "slate_work.entry.sentinel_loci": "哨卫缓存器", + "slate_work.page.sentinel_loci.intro": "那种叫喊、那种尖啸、那种痛苦。那种超出语言极限的痛苦,是我感受到的?看见的?经历的?见证的。那、那种……我分心了。我必须把我$(o)见证/$的东西写下来。从我卓伟……这词合适吗?——启迪的光源、感受和$(o)涌流/$之中,我看见了能增强$(l:greatwork/spellcircles)法术环/$的构造。但它的代价极为高昂。", + "slate_work.page.sentinel_loci.intro_cont": "那个方块——构造——$(o)嵌合体/$叫作$(thing)哨卫缓存器/$。它也许是$(l:greatwork/spellcircles)法术环/$可用的方块中最灵活多变的了,但获得它所需经历的痛苦——我真的要造一个吗?它会创建一个伪$(l:patterns/great_spells/greater_sentinel)卓越哨卫/$(称“伪哨卫”),其影响范围半径为 4 格,计入法术环的影响范围内。伪哨卫会首先“生成”在方块的放置位置,而后可以使用$(l:patterns/spells/sentinel_loci_patterns)法术/$转移。让这个怪异的方块苏醒需消耗极少量$(media)媒质/$。", + "slate_work.page.sentinel_loci.sentinel_loci" : "这种意识的结合体,历经了扭曲、拖拽、破碎、修补。我$(o)听到/$了它们,但它并没发出声音,我$(o)听见/$的是它们的痛苦。多个剥脱的意识塞进一个方块,只是为我自己的方便……但是——石板基座上亮灭舞动的光辉,紫水晶的溢彩流光……$(o)它在呼唤我/$", + "slate_work.page.sentinel_loci.extra": "我的意识在消散。我必须写完我的笔记。$(o)现在、马上/$。$(br2)如果我用$(l:items/lens)探知透镜/$观察$(thing)哨卫缓存器/$,它即会显示$(l:patterns/great_spells/greater_sentinel)伪哨卫/$当前的位置。而且,每激活一个$(thing)哨卫缓存器/$,其都会加入到已知$(thing)缓存器/$的列表,$(l:greatwork/spellcircles)法术环/$的影响范围则是所有伪哨卫的和。", + "slate_work.page.sentinel_loci.crafting": "这种结合式嵌合体的制造需要一个$(l:greatwork/ambit_loci)范围扩展器/$,用于赋予修改影响范围的能力;还需一个任意种类的大师级$(thing)村民/$。如果所给的意识太弱,它会在已经饱和的意识受体方块前破碎消散。", + + "slate_work.entry.broadcaster_loci": "Iota 之门", + "slate_work.page.broadcaster_loci.broadcaster_loci": "在仔细检查迷一般的神奇$(l:greatwork/akashiclib)阿卡夏图书馆/$后,我认为我应该可以把它们的 iota 存储功能搬到$(l:greatwork/spellcircles)法术环/$里,但大概不会非常完美。$(br2)$(o)“准备好了,这门就会开?”$(br)“不,不……不全是,只不过……”$(br)*叹气* *咔哒*", + "slate_work.page.broadcaster_loci.broadcaster_loci_cont": "$(thing)Iota 之门/$会给现实本身开一道“后门”,并向这个后门广播其中的 iota;也即,广播激活时$(l:greatwork/spellcircles)法术环/$栈顶的 iota。$(br2)$(thing)Iota 之门/$可从世界上任意一处读取(只要是在同一个维度),甚至连区块加载的神秘力量也拦不住它!读取所用的法术简介见$(l:patterns/spells/storage_loci#slate_work:read_broadcast)此/$。", + "slate_work.page.broadcaster_loci.extra": "需要格外注意的是,如果目标位置没有 $(thing)Iota 之门/$,那么法术就会返回垃圾。这应该就是从自然的背景噪声中抽出来的?$(br2)和前一点一样重要的是,$(thing)Iota 之门/$本身并不完美——它只能操作“简单”的 iota,而无法操纵列表(也包括代表玩家的 iota)。$(br)最后,如果我带着$(l:items/lens)探知透镜/$,看向它时就会显示其中的 iota。", + "slate_work.page.broadcaster_loci.crafting": "因为 $(thing)Iota 之门/$无视距离读取的奇怪特性,合成它需要相配数量的$(l:greatwork/quenching_allays)$(item)淬灵晶/$,以及一些$(l:greatwork/akashiclib)$(item)阿卡夏图书馆/$的组成部件。", + + "slate_work.entry.slate_work_pigments": "华丽染色剂", + "slate_work.page.slate_work_pigments.slate_work_pigments": "我的$(l:items/staff)法杖/$蜕变了,我的$(l:items/pigments)染色剂/$也必将蜕变。它们不会带来什么荣耀,也不会招致可怖的事故;它们带来的祝福只存在于视觉。$(br2)而且,知晓这些染色剂的人,即会知晓我的$(o)觉醒/$。", + "slate_work.page.slate_work_pigments.allay": "自我的……$(o)视野/$蜕变后,我发觉了悦灵的真实面貌——$(media)媒质/$碎片。也许这块$(media)媒质/$碎片可以转化成完美而华丽的染色剂?", + + "slate_work.entry.slate_reflection": "石板精思操作", + "slate_work.page.storage_loci.wave_position": "将$(thing)媒质波/$的当前位置压入栈顶。", + "slate_work.page.storage_loci.wave_normal": "将$(thing)媒质波/$的当前朝向压入栈顶。如果当前方块没有朝向,则返回 (0, 0, 0)。", + "slate_work.page.storage_loci.wave_speed": "将$(thing)媒质波/$的当前速度压入栈顶。测量方法是:在流入下一块$(l:items/slate)石板/$前,$(thing)媒质波/$需等待多少个 1/20 秒。", + "slate_work.page.storage_loci.media_reflection": "将$(thing)促动石/$的当前$(media)媒质/$量压入栈顶,以$(l:items/amethyst)紫水晶粉/$计。", + + "slate_work.entry.sentinel_loci_patterns": "哨卫缓存器图案", + "slate_work.page.sentinel_loci_patterns.1": "相较于不适用于$(l:greatwork/spellcircles)法术环/$的$(l:patterns/great_spells/greater_sentinel)同类/$来说,$(l:greatwork/sentinel_loci)哨卫缓存器/$的交互方法比较奇怪。它们需通过向量列表交互,而非单个向量。$(br2)这些操作$(l:casting/mishaps2)在法术环外使用时均会招致事故/$。", + "slate_work.page.sentinel_loci_patterns.break_space": "$(o)它在对它同时造成身体上的和精神上的伤害,就好像身体部件、器官、记忆都被吞没,变成了$(media)媒质/$。$(o)$(br2)它是在燃烧它的生命。$(o)$(br2)它在燃烧它的四肢百骸,燃烧它与物质世界的连接,直至仅余纯粹的意念。", + "slate_work.page.sentinel_loci_patterns.set_sents": "接受一个向量列表,并尝试将伪哨卫移动到对应位置。", + "slate_work.page.sentinel_loci_patterns.set_sents_cont": "好在,$(thing)定位伪哨卫/$和$(thing)安置伪哨卫/$的顺序是一致的,使用时不必担心顺序的问题。$(br2)所给列表长度大于当前已激活的$(l:greatwork/sentinel_loci)缓存器/$数时会招致事故。给伪哨卫下命令需消耗 1 个$(l:items/amethyst)紫水晶粉/$。同时由于命令疲劳,同一实例中每移动过一个伪哨卫额外消耗 1/8 个$(l:items/amethyst)紫水晶粉/$(会叠加)。", + "slate_work.page.sentinel_loci_patterns.get_sents": "按激活顺序获取所有伪哨卫当前的位置。无需消耗$(media)媒质/$。", + + "Mishaps:": "", + "hexcasting.mishap.circle.no_storage_loci_ran": "%s处未找到已激活的容具", + "hexcasting.mishap.circle.media_costs": "%s处需要的媒质超出了促动石当前的存储量", + "hexcasting.mishap.circle.readable": "%s处需要核心中存有列表,而实际没有", + "hexcasting.mishap.circle.simpler_iota": "%s处需要一个更简单的iota", + "hexcasting.mishap.invalid_value.simpler_iota": "一个更简单的iota", + + "hexcasting.mishap.no_storage_loci_ran": "未找到已激活的容具", + "hexcasting.mishap.list_length": "需要包含%s个元素的列表,而实际包含了%s个", + "hexcasting.mishap.wrong_block": "需要%2$s处存在%1$s,而实际为%3$s", + "hexcasting.mishap.needed_focus": "需要%s处存在核心,而实际没有", + "hexcasting.mishap.no_storage_sentinel_ran": "未找到任何已激活的缓存器", + + "Scrying Lenses:": "", + "slate_work.scrying.macro.top": "图案:", + "slate_work.scrying.macro.error": "无法显示iota" +} \ No newline at end of file diff --git a/projects/1.20/assets/hierophantics/hierophantics/README.md b/projects/1.20/assets/hierophantics/hierophantics/README.md new file mode 100644 index 000000000000..5d07c908e426 --- /dev/null +++ b/projects/1.20/assets/hierophantics/hierophantics/README.md @@ -0,0 +1,16 @@ +### 总概 + +```mermaid +flowchart LR + 1.20.1 -->|indirect| 1.20.1-fabric +``` + +``` +1.20.1 + └── 1.20.1-fabric +``` + +### 链接区域 + +- [1.20.1](/projects/1.20/assets/hierophantics/hierophantics) +- [1.20.1-fabric](/projects/1.20-fabric/assets/hierophantics/hierophantics) \ No newline at end of file diff --git a/projects/1.20/assets/hierophantics/hierophantics/lang/en_us.json b/projects/1.20/assets/hierophantics/hierophantics/lang/en_us.json new file mode 100644 index 000000000000..45cb4441c4c5 --- /dev/null +++ b/projects/1.20/assets/hierophantics/hierophantics/lang/en_us.json @@ -0,0 +1,131 @@ +{ + "block.hierophantics.flay_bed": "Imbuement Bed", + "block.hierophantics.edified_workstation": "Edified Workstation", + + "command.hierophantics.add_mind": "Added new embdded mind to %s", + "command.hierophantics.disable": "Disabled %s's embedded minds", + + "entity.minecraft.villager.quiltmind": "Quiltmind", + "entity.minecraft.villager.hierophantics.quiltmind": "Quiltmind", + + "subtitles.hierophantics.hieromind_cast": "Embedded mind casts", + + "text.autoconfig.hierophantics.title": "Hierophantics Config", + "text.autoconfig.hierophantics.option.server.maxMinds": "Maximum embedded minds per player", + + "advancements.hierophantics.embed_mind.title": "Interwoven", + "advancements.hierophantics.embed_mind.description": "Embed a villager's mind into your own", + "advancements.hierophantics.waste_mind.title": "Atomized", + "advancements.hierophantics.waste_mind.description": "Waste a mind by activating an Imbuement Bed with no one in it", + "advancements.hierophantics.all_triggers.title": "Ready for Anything", + "advancements.hierophantics.all_triggers.description": "Have an embedded mind with each possible trigger type", + "advancements.hierophantics.fuse_villagers.title": "Two Into One", + "advancements.hierophantics.fuse_villagers.description": "Embed a villager's mind into another villager", + + "hierophantics.tooltip.mind_reference": "Embedded Mind \"%s\"", + "hierophantics.tooltip.trigger": "Trigger: When %s", + "hierophantics.tooltip.mishap_thrower": "Hierophantics Mishap Thrower", + + "hierophantics.tooltip.trigger_type.damage": "damaged", + "hierophantics.tooltip.trigger_type.damage_typed": "damaged by '%s'", + "hierophantics.tooltip.trigger_type.health": "health drops below %d", + "hierophantics.tooltip.trigger_type.breath": "breath drops below %d", + "hierophantics.tooltip.trigger_type.hunger": "hunger drops below %d", + "hierophantics.tooltip.trigger_type.velocity": "velocity greater than %d", + "hierophantics.tooltip.trigger_type.fall": "falling more than %d blocks", + "hierophantics.tooltip.trigger_type.drop": "item dropped", + "hierophantics.tooltip.trigger_type.attack": "entity struck", + "hierophantics.tooltip.trigger_type.break": "block broken", + "hierophantics.tooltip.trigger_type.jump": "jumping", + "hierophantics.tooltip.trigger_type.teleport": "teleporting", + + "hexcasting.mishap.hierophantics:mind_freed": "Tried to interact with an embedded mind that doesn't exist", + "hexcasting.mishap.hierophantics:minds_disabled.yours": "Your embedded minds are too unstable to %s!", + "hexcasting.mishap.hierophantics:minds_disabled.other": "This embedded mind is too unstable to %s!", + "hexcasting.mishap.hierophantics:not_your_mind": "Can't modify an embedded mind that isn't yours", + "hexcasting.mishap.hierophantics:minds_capped": "%s already has the maximum number of embedded minds", + "hexcasting.mishap.hierophantics:nitwit_imbuement": "%s does not have enough mind to imbue", + "hexcasting.mishap.invalid_value.class.mind_reference": "an embedded mind", + "hexcasting.mishap.invalid_value.class.trigger": "a trigger", + + "hierophantics.mishap.minds_disabled.action.cast": "function", + "hierophantics.mishap.minds_disabled.action.read": "examine", + "hierophantics.mishap.minds_disabled.action.write": "modify", + "hierophantics.mishap.minds_disabled.action.free": "interact with", + + "hexcasting.action.hierophantics:get_minds": "Hierophant's Reflection", + "hexcasting.action.hierophantics:reenable_minds": "Stabilize Minds", + "hexcasting.action.hierophantics:set_mind_hex": "Payload Gambit", + "hexcasting.action.hierophantics:get_mind_hex": "Payload Purification", + "hexcasting.action.hierophantics:set_mind_trigger": "Trigger Gambit", + "hexcasting.action.hierophantics:get_mind_trigger": "Trigger Purification", + "hexcasting.action.hierophantics:free_mind": "Free Mind", + "hexcasting.action.hierophantics:make_damage_trigger": "Trigger Reflection: Damage", + "hexcasting.action.hierophantics:make_damage_type_trigger": "Trigger Reflection: Damage Type", + "hexcasting.action.hierophantics:make_health_trigger": "Trigger Purification: Health", + "hexcasting.action.hierophantics:make_breath_trigger": "Trigger Purification: Breath", + "hexcasting.action.hierophantics:make_hunger_trigger": "Trigger Purification: Hunger", + "hexcasting.action.hierophantics:make_velocity_trigger": "Trigger Purification: Velocity", + "hexcasting.action.hierophantics:make_fall_trigger": "Trigger Purification: Fall", + "hexcasting.action.hierophantics:make_drop_trigger": "Trigger Reflection: Drop", + "hexcasting.action.hierophantics:make_attack_trigger": "Trigger Reflection: Attack", + "hexcasting.action.hierophantics:make_break_trigger": "Trigger Reflection: Break", + "hexcasting.action.hierophantics:make_jump_trigger": "Trigger Reflection: Jump", + "hexcasting.action.hierophantics:make_teleport_trigger": "Trigger Reflection: Teleport", + + "hexcasting.action.book.hierophantics:make_damage_trigger": "Trigger Rfln: Damage", + "hexcasting.action.book.hierophantics:make_damage_type_trigger": "Trigger Rfln: DmgType", + "hexcasting.action.book.hierophantics:make_health_trigger": "Trigger Prfn: Health", + "hexcasting.action.book.hierophantics:make_breath_trigger": "Trigger Prfn: Breath", + "hexcasting.action.book.hierophantics:make_hunger_trigger": "Trigger Prfn: Hunger", + "hexcasting.action.book.hierophantics:make_velocity_trigger": "Trigger Prfn: Velocity", + "hexcasting.action.book.hierophantics:make_fall_trigger": "Trigger Prfn: Fall", + "hexcasting.action.book.hierophantics:make_drop_trigger": "Trigger Rfln: Drop", + "hexcasting.action.book.hierophantics:make_attack_trigger": "Trigger Rfln: Attack", + "hexcasting.action.book.hierophantics:make_break_trigger": "Trigger Rfln: Break", + "hexcasting.action.book.hierophantics:make_jump_trigger": "Trigger Rfln: Jump", + "hexcasting.action.book.hierophantics:make_teleport_trigger": "Trigger Rfln: Teleport", + + "hierophantics.page.hierophantics.title": "Hierophantics", + "hierophantics.page.hierophantics.0": "If _media can be seen as threads, if minds can be seen as tangles of such threads, then what is to stop me from weaving them together?$(br2)Thus far, when extracting the minds of villagers, I have inserted them only into artificial subtrates, but I can do better. I can $(o)become$() better.", + "hierophantics.page.hierophantics.1": "By weaving additional minds into my own, I will gain the ability to cast _Hexes without requiring any conscious thought! I can simply $(l:patterns/mind_handling)provide$() a _Hex, and a $(l:patterns/triggers)condition$() under which to cast it, and the embedded mind will handle the rest on its own. With all the bothers of everyday life automatically handled, I can finally dedicate myself to whatever I... whatever we...$(br2)...what am I?", + "hierophantics.page.hierophantics.2": "Focus, focus. There is a snag in the plan. I cannot modify the structure of my own mind midway through a _Hex without running the risk of unraveling it entirely – and I am not yet $(o)that$() insane.$(br2)Thus, I require some artifice. I can create a bed of sorts which, when provided with an extracted mind via the usual process, can weave it into my psyche without requiring any cognition on my part.", + "hierophantics.page.hierophantics.craft": "I can then use some $(l:greatwork/impetus)$(item)external device$() to perform the extraction itself, transferring the mind into the bed while I simply lay there until the process – the $(o)integration$() – is complete.", + "hierophantics.page.hierophantics.flay": "The process requires a master-level villager, which can be transferred into either of the two blocks that make up the $(item)Imbuement Bed$(). However, if I am not in the bed at the moment the spell is cast, the mind will be wasted.", + + "hierophantics.page.villager_enhancement.title": "Villager Enhancement", + "hierophantics.page.villager_enhancement.0": "Many of my recent constructs require a sufficiently developed mind. Thus far, such development has only been possible by submitting to the demands of villagers, and providing them with an increasingly eclectic array of materials and gemstones.$(br2)Such work is clearly beneath me. Now, with the $(l:greatwork/hierophantics)$(item)Imbuement Bed$(), I finally have a solution!", + "hierophantics.page.villager_enhancement.1": "Mine is not the only mind that can be augmented. Rather than exchanging meaningless trinkets for hours on end, I can directly increase the capability of a villager mind by simply weaving in an extra one.$(br2)As a side effect, any trade offers from the source villager will be transferred into the subject - but what need have I for such petty, material gains? The very mind itself is as clay in my hands!", + "hierophantics.page.villager_enhancement.flay": "The process is nearly identical to embedding a mind into myself. The subject must lie in the $(item)Imbuement Bed$(), and a mind must be transferred into it from another villager - though the source here can be of any level.", + "hierophantics.page.villager_enhancement.2": "When there is only one skill set involved in the merger, the resulting villager will retain those skills. However, if the two villagers are of different professions, the result is something entirely new, which I have dubbed a $(thing)Quiltmind$().$(br2)The more I study this, the more I find my earlier dismissal too hasty - perhaps there $(o)is$() some merit to this process beyond simply developing the mind for later extraction.", + "hierophantics.page.villager_enhancement.3": "Like any other villager, $(thing)Quiltminds$() require a workstation to refresh their stock of goods. However, their unique mental state means that any normal workstation, even the one the villager originally used, will not suffice.$(br2)They require something capable of shifting at a moment's notice to reflect a new state of mind and an entirely new skill set. Luckily, my recent $(l:greatwork/quenching_allays)experiments with allays$() have provided the perfect material.", + "hierophantics.page.villager_enhancement.craft": "I've noticed that $(item)quenched allays$() tend to morph in response to stray thoughts. This is mostly a nuisance, but here it is critical - the surface of the workstation can adapt itself to whatever the $(thing)Quiltmind$() currently needs.", + + "hierophantics.page.mind_handling.title.0": "Hierophantic Patterns", + "hierophantics.page.mind_handling.0": "Once I $(l:greatwork/hierophantics)embed a mind$() into myself, I will need to instruct it as to its purpose. This is accomplished using mind reference iotas, which work much like entity iotas but for embedded minds. As such, I can freely create and destroy these iotas without affecting the existence of the minds themselves.", + "hierophantics.page.mind_handling.title.1": "A Note on Privacy", + "hierophantics.page.mind_handling.1": "Since mind references can be written to a storage medium, it's possible that another player may gain access to iotas refencing my own minds. Such an individual will not be able to modify my minds (the results will be similar to attempting to save my True Name) but they $(o)will$() be able to view the trigger and _Hex associated with each mind.", + "hierophantics.page.get_minds.summary": "Pushes a list of iotas representing all my embedded minds.", + "hierophantics.page.reenable_minds.summary": "When I die, my embedded minds become unstable and cease to function. This spell restores them to working order. Costs one $(l:items/amethyst)$(item)Amethyst Dust$() per mind restored.", + "hierophantics.page.get_mind_hex.summary": "Pushes the _Hex stored in the provided mind, or $(l:casting/influences)$(thing)Null$() if there isn't one.", + "hierophantics.page.set_mind_hex.summary": "Stores the provided _Hex into the mind. If there is already a stored _Hex, it will be overwritten. Costs one $(l:items/amethyst)$(item)Charged Amethyst$().", + "hierophantics.page.get_mind_trigger.summary": "Pushes the trigger stored in the provided mind, or $(l:casting/influences)$(thing)Null$() if there isn't one.", + "hierophantics.page.set_mind_trigger.summary": "Stores the provided trigger into the mind. If the mind already has a trigger, it will be overwritten. Costs one $(l:items/amethyst)$(item)Amethyst Shard$().", + "hierophantics.page.free_mind.summary": "Permanently removes an embedded mind from my own consciousness.$(br2)I wonder what happens to them, when they go?", + + "hierophantics.page.triggers.title": "Hierophantic Triggers", + "hierophantics.page.triggers.0": "My $(l:greatwork/hierophantics)embedded minds$() are independent to a point, but they cannot truly think for themselves. Thus, in order to begin casting, they require a trigger of some kind. The patterns listed here are used to create these triggers, based on a variety of common occurances. Once created, a trigger can be assigned to a mind using $(l:patterns/mind_handling#hierophantics:set_mind_trigger)Trigger Gambit$().", + "hierophantics.page.triggers.1": "Some triggers, when activated, may cast their hex with an iota relevant to the triggering event already on the stack, to allow for a more fine-grained response. The triggers that do this are listed below, along with the iota they provide:$(br)$(li)Damage: amount of damage$()$(li)DmgType: amount of damage$()$(li)Drop: dropped item entity$()$(li)Attack: attacked entity$()$(li)Break: position broken$()$(li)Teleport: offset vector$()", + "hierophantics.page.make_damage_trigger.summary": "Creates a trigger that activates whenever I take damage. To prevent a lethal chain-reaction, does not activate if the damage was caused by overcasting.", + "hierophantics.page.make_damage_type_trigger.summary": "Creates a trigger that activates whenever I take damage, but only if the damage was of a specific type. The trigger will be attunned to whatever type of damage I last received.", + "hierophantics.page.make_health_trigger.summary": "Creates a trigger that activates when my health drops below the specified value. A full, standard healthbar has a value of 20.", + "hierophantics.page.make_breath_trigger.summary": "Creates a trigger that activates when my breath drops below the specified value. A full bar of bubbles has a value of 10.", + "hierophantics.page.make_hunger_trigger.summary": "Creates a trigger that activates when my hunger drops below the specified value. A full hunger bar has a value of 20.", + "hierophantics.page.make_velocity_trigger.summary": "Creates a trigger that activates when my velocity (measured in blocks per tick) exceeds the specified value.", + "hierophantics.page.make_fall_trigger.summary": "Creates a trigger that activates when I fall further than the specified number of blocks.", + "hierophantics.page.make_drop_trigger.summary": "Creates a trigger that activates whenever I drop an item. This does $(l)not$() include involuntary dropping, such as on death or when using $(l:patterns/great_spells/teleport)Greater Teleport$().", + "hierophantics.page.make_attack_trigger.summary": "Creates a trigger that activates whenever I strike another entity.", + "hierophantics.page.make_break_trigger.summary": "Creates a trigger that activates whenever I break a block.", + "hierophantics.page.make_jump_trigger.summary": "Creates a trigger that activates whenever I jump.", + "hierophantics.page.make_teleport_trigger.summary": "Creates a trigger that activates whenever I teleport. For reasons I cannot discern, this will not detect teleports shorter than 1.5 blocks in length." +} diff --git a/projects/1.20/assets/hierophantics/hierophantics/lang/zh_cn.json b/projects/1.20/assets/hierophantics/hierophantics/lang/zh_cn.json new file mode 100644 index 000000000000..050250806ba2 --- /dev/null +++ b/projects/1.20/assets/hierophantics/hierophantics/lang/zh_cn.json @@ -0,0 +1,131 @@ +{ + "block.hierophantics.flay_bed": "融念床", + "block.hierophantics.edified_workstation": "启迪工作站", + + "command.hierophantics.add_mind": "已为%s新增一个内嵌意识", + "command.hierophantics.disable": "已禁用%s的内嵌意识", + + "entity.minecraft.villager.quiltmind": "缝念人", + "entity.minecraft.villager.hierophantics.quiltmind": "缝念人", + + "subtitles.hierophantics.hieromind_cast": "内嵌意识:施法", + + "text.autoconfig.hierophantics.title": "灵显学(Hierophantics)配置", + "text.autoconfig.hierophantics.option.server.maxMinds": "玩家最多可拥有多少个内嵌意识", + + "advancements.hierophantics.embed_mind.title": "交织", + "advancements.hierophantics.embed_mind.description": "将村民的意识嵌入自身", + "advancements.hierophantics.waste_mind.title": "散成原子", + "advancements.hierophantics.waste_mind.description": "启动没有接收对象的融念床,从而浪费一个意识", + "advancements.hierophantics.all_triggers.title": "准备万全", + "advancements.hierophantics.all_triggers.description": "为每种触发条件都准备一个内嵌意识", + "advancements.hierophantics.fuse_villagers.title": "二合一", + "advancements.hierophantics.fuse_villagers.description": "将村民的意识嵌入另一个村民", + + "hierophantics.tooltip.mind_reference": "内嵌意识“%s”", + "hierophantics.tooltip.trigger": "触发条件:%s时", + "hierophantics.tooltip.mishap_thrower": "灵显学事故抛出器", + + "hierophantics.tooltip.trigger_type.damage": "受伤", + "hierophantics.tooltip.trigger_type.damage_typed": "因“%s”受伤", + "hierophantics.tooltip.trigger_type.health": "生命值降至%d以下", + "hierophantics.tooltip.trigger_type.breath": "氧气值降至%d以下", + "hierophantics.tooltip.trigger_type.hunger": "饥饿值降至%d以下", + "hierophantics.tooltip.trigger_type.velocity": "速度超过%d", + "hierophantics.tooltip.trigger_type.fall": "摔落超过%d格", + "hierophantics.tooltip.trigger_type.drop": "丢下物品", + "hierophantics.tooltip.trigger_type.attack": "击中实体", + "hierophantics.tooltip.trigger_type.break": "破坏方块", + "hierophantics.tooltip.trigger_type.jump": "跳跃", + "hierophantics.tooltip.trigger_type.teleport": "传送", + + "hexcasting.mishap.hierophantics:mind_freed": "试图与不存在的内嵌意识交互", + "hexcasting.mishap.hierophantics:minds_disabled.yours": "你的内嵌意识太过不稳定,无法%s!", + "hexcasting.mishap.hierophantics:minds_disabled.other": "这个内嵌意识太过不稳定,无法%s!", + "hexcasting.mishap.hierophantics:not_your_mind": "无法修改不属于你的内嵌意识", + "hexcasting.mishap.hierophantics:minds_capped": "%s所拥有内嵌意识的数量已达上限", + "hexcasting.mishap.hierophantics:nitwit_imbuement": "%s不具备可用于融合的意识", + "hexcasting.mishap.invalid_value.class.mind_reference": "一个内嵌意识", + "hexcasting.mishap.invalid_value.class.trigger": "一个触发条件", + + "hierophantics.mishap.minds_disabled.action.cast": "运作", + "hierophantics.mishap.minds_disabled.action.read": "查看", + "hierophantics.mishap.minds_disabled.action.write": "修改", + "hierophantics.mishap.minds_disabled.action.free": "交互", + + "hexcasting.action.hierophantics:get_minds": "灵显师之精思", + "hexcasting.action.hierophantics:reenable_minds": "稳定意识", + "hexcasting.action.hierophantics:set_mind_hex": "载术之策略", + "hexcasting.action.hierophantics:get_mind_hex": "载术之纯化", + "hexcasting.action.hierophantics:set_mind_trigger": "触发之策略", + "hexcasting.action.hierophantics:get_mind_trigger": "触发之纯化", + "hexcasting.action.hierophantics:free_mind": "释放意识", + "hexcasting.action.hierophantics:make_damage_trigger": "触发之精思:伤害", + "hexcasting.action.hierophantics:make_damage_type_trigger": "触发之精思:伤害类型", + "hexcasting.action.hierophantics:make_health_trigger": "触发之纯化:生命值", + "hexcasting.action.hierophantics:make_breath_trigger": "触发之纯化:气息", + "hexcasting.action.hierophantics:make_hunger_trigger": "触发之纯化:饥饿值", + "hexcasting.action.hierophantics:make_velocity_trigger": "触发之纯化:速度", + "hexcasting.action.hierophantics:make_fall_trigger": "触发之纯化:摔落", + "hexcasting.action.hierophantics:make_drop_trigger": "触发之精思:丢弃", + "hexcasting.action.hierophantics:make_attack_trigger": "触发之精思:攻击", + "hexcasting.action.hierophantics:make_break_trigger": "触发之精思:破坏", + "hexcasting.action.hierophantics:make_jump_trigger": "触发之精思:跳跃", + "hexcasting.action.hierophantics:make_teleport_trigger": "触发之精思:传送", + + "hexcasting.action.book.hierophantics:make_damage_trigger": "触发之精思:伤害", + "hexcasting.action.book.hierophantics:make_damage_type_trigger": "触发之精思:伤害类型", + "hexcasting.action.book.hierophantics:make_health_trigger": "触发之纯化:生命值", + "hexcasting.action.book.hierophantics:make_breath_trigger": "触发之纯化:气息", + "hexcasting.action.book.hierophantics:make_hunger_trigger": "触发之纯化:饥饿值", + "hexcasting.action.book.hierophantics:make_velocity_trigger": "触发之纯化:速度", + "hexcasting.action.book.hierophantics:make_fall_trigger": "触发之纯化:摔落", + "hexcasting.action.book.hierophantics:make_drop_trigger": "触发之精思:丢弃", + "hexcasting.action.book.hierophantics:make_attack_trigger": "触发之精思:攻击", + "hexcasting.action.book.hierophantics:make_break_trigger": "触发之精思:破坏", + "hexcasting.action.book.hierophantics:make_jump_trigger": "触发之精思:跳跃", + "hexcasting.action.book.hierophantics:make_teleport_trigger": "触发之精思:传送", + + "hierophantics.page.hierophantics.title": "灵显学", + "hierophantics.page.hierophantics.0": "如果$(media)媒质$()可以看成是丝线,那么意识就是这些丝线的纠缠体;既然如此,把意识编织在一起又有何不可?$(br2)到目前为止,我在剥离出村民的意识后只会将它们送入人工制造的基质,但这并非没有改进之处。$(o)我$()并非没有改进之处。", + "hierophantics.page.hierophantics.1": "将其他意识编织到我的意识里,就可省去施放$(hex)咒术$()时需要的注意力了!给内嵌意识$(l:patterns/mind_handling)提供$()一段$(hex)咒术$(),再指定施放的$(l:patterns/triggers)条件$(),剩下的全部交给内嵌意识处理。把平常要干的杂活自动化之后,就终于可以投身于我想要做……我们想要……$(br2)……我是什么?", + "hierophantics.page.hierophantics.2": "专心、集中精神。这项规划中有一个纰漏。倘若要在运行$(hex)咒术$()的中途修改我意识的结构,就无法消除意识完全消散的风险——我还没疯到$(o)这种地步$()。$(br2)因此,我需要一台仪器。我可以制造某种床;向这张床提供剥离得到的意识时,即可将它编织入我的精神,而且不需要我维持注意力。", + "hierophantics.page.hierophantics.craft": "然后,使用某些$(l:greatwork/impetus)$(item)外部设备$()来剥离和将意识送至这张床,我只需要躺在那里,等着工序——$(o)融合$()——完成就行。", + "hierophantics.page.hierophantics.flay": "这一流程需要一名大师级村民,意识的目的地可以是$(item)融念床$()两格中的任意一格。但是,假如法术施放时我没有躺在床上,送来的意识即会消散。", + + "hierophantics.page.villager_enhancement.title": "村民增强", + "hierophantics.page.villager_enhancement.0": "我近期设计的许多构造都需要一个足够发达的意识。而到目前为止,这种发达的意识只能通过满足村民的要求获得。他们要的材料和宝石真是不拘一格。$(br2)这实在太过低效。现在有了$(l:greatwork/hierophantics)$(item)融念床$(),总算有好方法了!", + "hierophantics.page.villager_enhancement.1": "并非只有我的意识可被增强。不用再花几个小时交换些没用的小玩意,而是可以直接加强村民的意识——往里面再嵌进一个村民意识就行了。$(br2)这种做法也有副作用,供体的所有交易选项都会转移到受体那里——但我要的还是这些零碎的物质奖励吗?意识本身才是真正的可塑之材!", + "hierophantics.page.villager_enhancement.flay": "操作过程和往我自己体内嵌入意识基本一致。受体需要躺在$(item)融念床$()上,然后应该将另一个村民的意识传递给受体。供体的等级任意。", + "hierophantics.page.villager_enhancement.2": "如果供体和受体的技能方向一致,那么产出的村民会保留这种技能。而要是两个村民的职业不一样,那么产出的就会是全新的村民,我称之为$(thing)缝念人$()。$(br2)我研究的越深,就越感觉我先前的忽视还是太急躁了——也许在培养意识以供剥离之外,这种操作$(o)确实$()有其长处。", + "hierophantics.page.villager_enhancement.3": "和其他村民一样,$(thing)缝念人$()刷新商品也需要工作站点。不过,他们独特的精神状态导致无论何种工作站点都不适用,普通村民原来用的那些也不行。$(br2)他们需要的,是能在思考的瞬间变换形态、贴合其意识和技能的事物。还好,我近期对$(l:greatwork/quenching_allays)悦灵的实验$()研究出了完美适配的材料。", + "hierophantics.page.villager_enhancement.craft": "我发现,$(item)淬灵晶$()会对散在的思维产生反应而变形。大多数情况下,这都是个缺点,但在这种情况下是极强的优势:工作站点的外观会随$(thing)缝念人$()的所思所想变化。", + + "hierophantics.page.mind_handling.title.0": "灵显学图案", + "hierophantics.page.mind_handling.0": "向自身$(l:greatwork/hierophantics)嵌入意识$()后,还需对其发出相应指示。这一过程可由代表意识的 iota 达成;它和实体 iota 很类似,只不过是给内嵌意识用的。由此,我便可以随意创建和销毁这些 iota,而不会影响意识本身存在与否了。", + "hierophantics.page.mind_handling.title.1": "有关隐私的注意事项", + "hierophantics.page.mind_handling.1": "因为代表意识的 iota 可以写入存储介质,其他玩家即有可能获得到代表我的意识的 iota。他们无法修改我的意识(招致的效果和试图保存我的真名类似),但他们$(o)可以$()查看各个意识的触发条件和其中$(hex)咒术$()。", + "hierophantics.page.get_minds.summary": "将代表我的内嵌意识的各 iota 组为列表返回。", + "hierophantics.page.reenable_minds.summary": "我死亡时,各个内嵌意识会失稳并停止运作。此法术可让它们回到工作状态。每恢复 1 个意识消耗 1 个$(l:items/amethyst)$(item)紫水晶粉$()。", + "hierophantics.page.get_mind_hex.summary": "返回所给意识中的$(hex)咒术$(),若无则返回 $(l:casting/influences)$(thing)Null$()。", + "hierophantics.page.set_mind_hex.summary": "将所给$(hex)咒术$()存入意识。如果其中已经存在$(hex)咒术$(),则进行覆盖。消耗 1 个$(l:items/amethyst)$(item)充能紫水晶$()。", + "hierophantics.page.get_mind_trigger.summary": "返回所给意识的触发条件,若无则返回 $(l:casting/influences)$(thing)Null$()。", + "hierophantics.page.set_mind_trigger.summary": "将所给触发条件存入意识。如果其中已经存在触发条件,则进行覆盖。消耗 1 个$(l:items/amethyst)$(item)紫水晶碎片$()。", + "hierophantics.page.free_mind.summary": "从我的意识里永久性移除一个内嵌意识。$(br2)它们离开时,究竟会发生什么?", + + "hierophantics.page.triggers.title": "灵显学触发条件", + "hierophantics.page.triggers.0": "我的$(l:greatwork/hierophantics)内嵌意识$()相对独立,但还不具备真正的思考能力。因此,为让其开始施法,需要设置一定的触发条件。此处列出的图案可根据多种常见事件创建触发条件。创建完成后,可以用$(l:patterns/mind_handling#hierophantics:set_mind_trigger)触发之策略$()为内嵌意识分配条件。", + "hierophantics.page.triggers.1": "某些触发条件激活后,初始施法栈会以与事件有关的 iota 起始,以便细化回应方式。具有此特性的触发条件和对应起始 iota 见下:$(br)$(li)伤害:所受伤害的量$()$(li)伤害类型:所受伤害的量$()$(li)丢弃:丢出的物品实体$()$(li)攻击:击中的实体$()$(li)破坏:破坏处的位置$()$(li)传送:偏移向量$()", + "hierophantics.page.make_damage_trigger.summary": "创建一个在我受到伤害时激活的触发条件。为避免产生致命的链式反应,由过度施法造成的伤害不会激活此类触发条件。", + "hierophantics.page.make_damage_type_trigger.summary": "创建一个在我受到伤害时激活的触发条件,且伤害必须为特定类型。使用我最后一次所受伤害的类型。", + "hierophantics.page.make_health_trigger.summary": "创建一个在我生命值降至给定值以下时激活的触发条件。完整的标准生命条为 20。", + "hierophantics.page.make_breath_trigger.summary": "创建一个在我氧气值降至给定值以下时激活的触发条件。完整的氧气条为 10。", + "hierophantics.page.make_hunger_trigger.summary": "创建一个在我饥饿值降至给定值以下时激活的触发条件。完整的饥饿条为 20。", + "hierophantics.page.make_velocity_trigger.summary": "创建一个在我速度(以格每刻计)超过给定值时激活的触发条件。", + "hierophantics.page.make_fall_trigger.summary": "创建一个在我摔落超过给定距离(以格计)时激活的触发条件。", + "hierophantics.page.make_drop_trigger.summary": "创建一个在我丢下物品时激活的触发条件。非主动的丢弃,如死亡或使用$(l:patterns/great_spells/teleport)卓越传送$()导致的物品散落等,$(l)不$()会激活此类触发条件。", + "hierophantics.page.make_attack_trigger.summary": "创建一个在我击中其他实体时激活的触发条件。", + "hierophantics.page.make_break_trigger.summary": "创建一个在我破坏方块时激活的触发条件。", + "hierophantics.page.make_jump_trigger.summary": "创建一个在我跳跃时激活的触发条件。", + "hierophantics.page.make_teleport_trigger.summary": "创建一个在我传送时激活的触发条件。因为我无法指明的原因,此类触发条件检测不到距离在 1.5 格以下的传送。" +} diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md new file mode 100644 index 000000000000..91ff55cecbbe --- /dev/null +++ b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/README.md @@ -0,0 +1,16 @@ +### 总概 + +```mermaid +flowchart LR + 1.20.1 -->|indirect| 1.20.1-fabric +``` + +``` +1.20.1 + └── 1.20.1-fabric +``` + +### 链接区域 + +- [1.20.1](/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes) +- [1.20.1-fabric](/projects/1.20-fabric/assets/modrinth-hexxyattributes/hexxyattributes) \ No newline at end of file diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json new file mode 100644 index 000000000000..172f467491a4 --- /dev/null +++ b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/en_us.json @@ -0,0 +1,16 @@ +{ + "hexxyattributes.entry.attributes": "Attributes", + "hexxyattributes.entry.attributes.entry": "In my research I found out, that not all practitioners of this wonderful art have the same capabilities. In other words, Scholars of this world vary in their so-called $(italic)attributes$(clear).$(br2)I've always thought that $(italic)talent$(clear) was a myth. Oh well...", + + "hexcasting.action.hexxyattributes:domain_reflection": "Domain Reflection", + "hexxyattributes.page.domain_reflection": "Adds the radius of my ambit to the stack.", + + "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "Sentinel's Domain Reflection", + "hexxyattributes.page.sentinel_domain_reflection": "Adds the radius of my Sentinel's ambit to the stack.", + + "hexcasting.action.hexxyattributes:media_reflection": "Media Reflection", + "hexxyattributes.page.media_reflection": "Adds my own media consumption rate to the stack. I imagine that a base value would be equal to 1. Pretty useful if I don't want to overestimate my capabilities!", + + "hexcasting.action.hexxyattributes:mind_purification": "Mind Purification", + "hexxyattributes.page.mind_purification": "Transforms a player on the stack into the boolean. This pattern sends a small flow of media through my target's brain. If the targeted player has a potential for the art of Hex Casting, the result will be True, else False." +} \ No newline at end of file diff --git a/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json new file mode 100644 index 000000000000..81bcd35c4068 --- /dev/null +++ b/projects/1.20/assets/modrinth-hexxyattributes/hexxyattributes/lang/zh_cn.json @@ -0,0 +1,16 @@ +{ + "hexxyattributes.entry.attributes": "属性", + "hexxyattributes.entry.attributes.entry": "我的研究表明,并非所有此派精妙魔艺的研习者都有同样的能力。换句话说,世上的学者具有不同的$(italic)属性$(clear)。$(br2)我一直都以为$(italic)天赋$(clear)只是个假说。好吧……", + + "hexcasting.action.hexxyattributes:domain_reflection": "界域之精思", + "hexxyattributes.page.domain_reflection": "将我的影响范围入栈。", + + "hexcasting.action.hexxyattributes:sentinel_domain_reflection": "哨卫界域之精思", + "hexxyattributes.page.sentinel_domain_reflection": "将我哨卫的影响范围入栈。", + + "hexcasting.action.hexxyattributes:media_reflection": "媒质之精思", + "hexxyattributes.page.media_reflection": "将我的媒质消耗速率入栈。我认为基础值应当等于 1。很适合收住我对自身能力的过度高估!", + + "hexcasting.action.hexxyattributes:mind_purification": "意识之精思", + "hexxyattributes.page.mind_purification": "将栈中的玩家转变为布尔值。此图案会向目标的大脑送入一小股媒质。如果他有研习咒法学的潜能,返回 True;否则返回 False。" +} \ No newline at end of file