Skip to main content
Bookshelf Bookshelf Bookshelf
    搜索 Ctrl+K
    • English
    • 中文
    • 快速开始
    • 模块
    • 示例
    • 参与贡献
    • 更新日志
    • Related
    • FAQ

      运行时模块(Runtime)

      • 🖥️ 位运算(Bitwise)
      • 🧱 方块(Block)
      • 🗂️ Collection
      • 🎨 颜色(Color)
      • ⛰️ 环境(Environment)
      • 🏗️ 生成(Generation)
      • ❤️ 生命(Health)
      • 🎯 碰撞箱(Hitbox)
      • 🏷️ 编号(ID)
      • 🖱️ 交互(Interaction)
      • 🔗 链接(Link)
      • 🧮 数学(Math)
      • 🏃 移动(Move)
      • 🧭 位置(Position)
      • 🎲 随机(Random)
      • 🔦 射线追踪(Raycast)
      • ⏲️ 计划(Schedule)
      • 📰 侧边栏(Sidebar)
      • 🧣 样条曲线(Spline)
      • 🔠 字符串(String)
      • ⌚ 时间(Time)
      • ➡️ 向量(Vector)
      • 👀 视线(View)
      • 🏅 经验值(XP)

      开发模块(Development)

      • 🔬 转存(Dump)
      • 📄 日志(Log)

      预制件(Prefabs)

      • 🌳 树库(Tree)
      1. 模块
      2. 链接(Link)
      • Copy page
      • View source

      🔗 链接(Link)#

      #bs.link:help

      通过链接实体的位置和旋转方向来构建相连的实体结构。

      ../../_images/link.png

      “看不见的线是最强的纽带。”

      —弗里德里希·尼采

      重要

      此模块使用了缩放的整数,当坐标值高于 2,000,000 时可能会溢出。


      🔧 函数#

      你可以在下方找到此模块中的所有可用函数。


      创建链接#

      #bs.link:create_link_ata

      在执行函数的实体和最接近执行位置的实体之间创建链接。

      输入:

      执行 as <实体>: 你想要链接到父实体的子实体。

      执行 at <实体> 或 positioned <x> <y> <z>: 使用最近的实体作为父实体。

      输出:

      分数 @s bs.link.r[x,y,z]: 相对于父实体的位置。

      分数 @s bs.link.l[x,y,z,h,v]: 相对于父实体的局部位置和旋转。

      分数 @s bs.link.to: 链接到的父实体的 ID。

      示例:将盔甲架链接到最近的羊:

      # Once
      execute as @e[type=armor_stand] at @e[type=sheep,limit=1,sort=nearest] run function #bs.link:create_link_ata
      

      重要

      你通常应该避免修改输出分数,因为它们作为其他链接函数的参数。因此,建议仅让 Bookshelf 来处理它们。

      制作人员:Aksiome、Leirof


      模仿行为#

      #bs.link:imitate_pos_and_rot

      将实体放置在关联的位置和局部旋转处。在循环中重复此操作可模拟父实体的移动和旋转。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.r[x,y,z]: 相对于父实体的位置。

      分数 @s bs.link.l[h,v]:相对于父实体的局部旋转。

      输出:

      状态:移动实体以保持其相对于父实体的相对位置和局部旋转。

      示例:让盔甲架模仿你的移动:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:imitate_pos_and_rot
      
      #bs.link:imitate_pos

      将实体放置在相关联的位置处。在循环中重复此操作可模拟父实体的移动。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.r[x,y,z]: 相对于父实体的位置。

      输出:

      状态:移动实体以保持其相对于父实体的相对位置。

      示例:让盔甲架模仿你的移动:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:imitate_pos
      
      #bs.link:imitate_rot

      将实体放置在其局部旋转处。在循环中重复此操作可模拟父实体的旋转。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.l[h,v]:相对于父实体的局部旋转。

      输出:

      状态:移动实体以保持其相对于父实体的局部旋转。

      示例:让盔甲架模仿你的移动:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:imitate_rot
      
      #bs.link:imitate_pos_[x|y|z]

      将实体放置在相关联的位置的某轴处。在循环中重复此操作可模拟父实体在单个轴上的移动。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.r[x|y|z]:相对于父实体的位置。

      输出:

      状态:移动实体以保持其在单个轴上相对于父实体的相对位置。

      示例:让盔甲架模仿你的移动:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:imitate_pos_x
      # Or
      execute as @e[predicate=bs.link:has_link] run function #bs.link:imitate_pos_y
      # Or
      execute as @e[predicate=bs.link:has_link] run function #bs.link:imitate_pos_z
      
      #bs.link:imitate_rot_[h|v]

      将实体放置在其水平或垂直局部旋转处。在循环中重复此操作可模拟父实体在单个旋转轴上的旋转。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.l[h|v]:相对于父实体的局部旋转。

      输出:

      状态:移动实体以保持其在单个旋转轴上相对于父实体的局部旋转。

      示例:让盔甲架模仿你的移动:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:imitate_rot_h
      # Or
      execute as @e[predicate=bs.link:has_link] run function #bs.link:imitate_rot_v
      

      重要

      虽然链接的行为函数可以叠加使用,但不建议这样做,因为这涉及重复获取坐标、执行计算和应用它们。请考虑创建自定义行为。

      制作人员:Aksiome、Leirof


      保持局部坐标#

      #bs.link:keep_local_pos

      保持相对于父实体的局部坐标。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.l[x,y,z]:相对于父实体的局部坐标。

      输出:

      状态:移动实体以保持其相对于父实体的局部坐标。

      示例:让盔甲架锁定到你的旋转:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:keep_local_pos
      
      What is a Local Position?

      与相对坐标不同,此参考系考虑实体的旋转。因此,当父实体旋转时,子实体会围绕它旋转。对于熟悉 Minecraft 命令的人来说,可以通过 ^ 符号使用局部坐标。

      制作人员:Aksiome、Leirof


      镜像平面#

      #bs.link:mirror_[x|z]_plane

      沿平面镜像实体的位置和旋转。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.r[x,y,z]: 相对于父实体的位置。

      分数 @s bs.link.l[h,v]:相对于父实体的局部旋转。

      输出:

      状态:移动实体以使其镜像父实体的相对位置和旋转。

      示例:让盔甲架沿平面镜像你的位置和旋转:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:mirror_x_plane
      # Or
      execute as @e[predicate=bs.link:has_link] run function #bs.link:mirror_z_plane
      

      制作人员:Aksiome


      镜像点#

      #bs.link:mirror_point_ata

      围绕给定点镜像实体的位置和旋转。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      执行 at <实体> 或 positioned <x> <y> <z>:实体被镜像的点的位置。

      输出:

      状态:移动实体以使其围绕给定点镜像父实体的位置和旋转。

      示例:让盔甲架围绕 0 0 0 镜像你的位置和旋转:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] positioned 0 0 0 run function #bs.link:mirror_point_ata
      

      制作人员:Aksiome


      关系#

      #bs.link:as_children {run:<command>}

      以父实体的子实体为执行者执行命令。

      输入:

      执行 as <实体>:以父实体为执行者,该实体必须有有效子实体。

      输出:

      返回值:如果执行者没有链接的子实体则失败。

      示例:对所有盔甲架的子实体执行命令:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      function #bs.link:as_children {run:"say Hello World"}
      
      #bs.link:as_parent {run:<command>}

      以子实体的父实体为执行者执行命令。

      输入:

      执行 as <实体>:以子实体为执行者,该实体必须有有效父实体。

      输出:

      返回值:如果执行者没有链接的父实体则失败。

      示例:对盔甲架的父实体执行命令:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      execute as @n[type=armor_stand] run function #bs.link:as_parent {run:"say Hello World"}
      
      #bs.link:at_children {run:<command>}

      在父实体的子实体位置执行命令。

      输入:

      执行 as <实体>:以父实体为执行者,该实体必须有有效子实体。

      输出:

      返回值:如果执行者没有链接的子实体则失败。

      示例:在所有盔甲架子实体的位置执行命令:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      function #bs.link:at_children {run:"summon lightning_bolt"}
      
      #bs.link:at_parent {run:<command>}

      在子实体的父实体位置执行命令。

      输入:

      执行 as <实体>:以子实体为执行者,该实体必须有有效父实体。

      输出:

      返回值:如果执行者没有链接的父实体则失败。

      示例:在盔甲架的父实体位置执行命令:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      execute as @n[type=armor_stand] run function #bs.link:at_parent {run:"summon lightning_bolt"}
      

      制作人员:Aksiome


      移除链接#

      #bs.link:remove_link

      移除实体之间的现有链接。当在父实体上执行时,它会从链接中移除所有子实体。它不会重置实体的 bs.id。

      输入:

      执行 as <实体>:你想要取消链接的子实体或父实体。

      输出:

      分数 <子实体> bs.link.[...]:重置所有链接相关的分数。

      示例:将最近的盔甲架与一只羊取消链接:

      # Once
      execute as @e[type=armor_stand] at @e[type=sheep,limit=1,sort=nearest] run function #bs.link:create_link_ata
      execute as @n[type=armor_stand] run function #bs.link:remove_link
      

      制作人员:Aksiome


      反向行为#

      #bs.link:reverse_pos_and_rot

      确定父实体的旋转和移动,并以相反方向重现它们。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.r[x,y,z]: 相对于父实体的位置。

      分数 @s bs.link.l[h,v]:相对于父实体的局部旋转。

      输出:

      状态:实体以与父实体移动和旋转相反的方向移动和旋转。

      示例:让盔甲架反转你的移动和旋转:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:reverse_pos_and_rot
      
      #bs.link:reverse_pos

      确定父实体的移动,并以相反方向重现它。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.r[x,y,z]: 相对于父实体的位置。

      输出:

      状态:实体以与父实体移动相反的方向移动。

      示例:让盔甲架做出与你移动相反的动作:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:reverse_pos
      
      #bs.link:reverse_rot

      确定父实体执行的旋转,并以相反方向重现它。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.l[h,v]:相对于父实体的局部旋转。

      输出:

      状态:实体以与父实体旋转相反的方向旋转。

      示例:让盔甲架反转你的旋转:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:reverse_rot
      
      #bs.link:reverse_pos_[x|y|z]

      确定父实体沿单个轴的移动,并以相反方向重现它。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.r[x|y|z]:相对于父实体的位置。

      输出:

      状态:实体沿单个轴以与父实体移动相反的方向移动。

      示例:让盔甲架沿一个轴做出与你移动相反的动作:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:reverse_pos_x
      # Or
      execute as @e[predicate=bs.link:has_link] run function #bs.link:reverse_pos_y
      # Or
      execute as @e[predicate=bs.link:has_link] run function #bs.link:reverse_pos_z
      
      #bs.link:reverse_rot_[h|v]

      确定父实体沿旋转轴执行的旋转,并以相反方向重现它。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      分数 @s bs.link.l[h|v]:相对于父实体的局部旋转。

      输出:

      状态:实体以与父实体旋转相反的方向旋转。

      示例:让盔甲架沿旋转轴反转你的旋转:

      # Once
      execute as @e[type=armor_stand] run function #bs.link:create_link_ata
      
      # In a loop
      execute as @e[predicate=bs.link:has_link] run function #bs.link:reverse_rot_h
      # Or
      execute as @e[predicate=bs.link:has_link] run function #bs.link:reverse_rot_v
      

      重要

      虽然链接的行为函数可以叠加使用,但不建议这样做,因为这涉及重复获取坐标、执行计算和应用它们。请考虑创建自定义行为。

      制作人员:Aksiome、Leirof


      更新链接#

      #bs.link:update_link

      更新表示实体与其父实体之间链接的分数。

      输入:

      执行 as <实体>:对实体执行,实体必须链接到另一个实体。

      输出:

      分数 @s bs.link.r[x,y,z]: 相对于父实体的位置。

      分数 @s bs.link.l[x,y,z,h,v]: 相对于父实体的局部位置和旋转。

      示例:更新盔甲架链接:

      # Once
      execute as @e[type=armor_stand,predicate=bs.link:has_link] run function #bs.link:update_link
      

      重要

      在使用其他函数时通常不需要调用此函数。但是如果你想移动子实体,以修改它和父实体的关系,则需要更新链接以确保更改生效。

      制作人员:Aksiome、Leirof


      👁️ 谓词#

      你可以在下方找到此模块中的所有可用谓词。


      有链接#

      bs.link:has_link

      判断实体是否有 bs.link.to 分数。

      制作人员:Aksiome


      链接相等#

      bs.link:link_equal

      查找具有与输入值相同 bs.link.to 的实体。

      输入:

      分数 $link.to bs.in:要检查的值。

      示例:查找具有 bs.link.to 等于 1 的实体:

      scoreboard players set $link.to bs.in 1
      execute as @n[predicate=bs.link:link_equal] run say I'm the one
      

      制作人员:Aksiome


      🎓 自定义行为#

      此模块允许你组合多个行为来创建你自己优化的自定义行为。


      要创建新行为,你首先需要创建一个新的函数标签。该标签必须以 #bs.link:behaviors/setup 开头并以 #bs.link:behaviors/apply 结尾。在这两个函数之间,你可以自由使用 #bs.link:behaviors 文件夹中提供的任何行为。

      示例:这是 #bs.link:mirror_x_plane 在 bookshelf 中的实现方式:

      {
        "values": [
          "#bs.link:behaviors/setup",
          "#bs.link:behaviors/reverse_pos_x",
          "#bs.link:behaviors/imitate_pos_y",
          "#bs.link:behaviors/imitate_pos_z",
          "#bs.link:behaviors/reverse_rot_h",
          "#bs.link:behaviors/imitate_rot_v",
          "#bs.link:behaviors/apply"
        ]
      }
      

      💬 这对你有帮助吗?

      欢迎在下方留下你的问题和反馈!

      Previous 交互(Interaction) Next 数学(Math)

      On this page

      • 函数
        • 创建链接
        • 模仿行为
        • 保持局部坐标
        • 镜像平面
        • 镜像点
        • 关系
        • 移除链接
        • 反向行为
        • 更新链接
      • 谓词
        • 有链接
        • 链接相等
      • 自定义行为
      mcbookshelf/Bookshelf
      - -
      Edit this page

      © Copyright 2025, Gunivers

      Made with Sphinx and Breeze theme.

       Code of Conduct  License (MPL 2.0)  Mentions Légales (FR)
      Back to top