📦 Bookshelf - 3.0.0#

🚂 管线更新!

本次更新使用 Beet 彻底重构了项目结构,着重于各模块的模块化与隔离性。同时引入了新的版本加载器,可解决多版本间的冲突问题。

⚠️ 破坏性变更:这个新版本包含一些破坏性变更!

Bookshelf 现已适配 Minecraft 1.21.5。每个模块现以独立数据包形式分发,方便用户按需使用。引入捆绑包机制替代原有的BookshelfBookshelf Dev数据包,新捆绑包包括:Bookshelf RuntimeBookshelf DevBookshelf PrefabsBookshelf Suite

  • ⚠️ #281 - 将 bs.biomebs.weather 模块合并为 bs.environment 模块。

  • 📦 #323 - 引入捆绑包机制,替代原有的 BookshelfBookshelf Dev 数据包,新捆绑包包括:Bookshelf RuntimeBookshelf DevBookshelf PrefabsBookshelf Suite

  • 🎉 #272 - 新增自动生成的 bs.load 模块,无需手动管理 loadunload 标签。现采用 LanternLoad 加载系统。

  • #285 - 移除对手动编写 __help__ 函数和 help 标签的需求,现改为自动生成。

  • 📝 #285 - 文档已迁移至 mcbookshelf.dev,并重写贡献指南以说明新的 Beet 工作流程。

  • ⚙️ #285 - 创建 GitHub 组织,从 Jupyter Notebook 迁移至 Beet。更新元数据格式,新增议题模板,并引入自动部署至 ModrinthSmithed 的工作流。模块现需包含 README.mdpack.png

  • 📥 #333 - Bookshelf 现推出专属下载管理器,支持用户选择模块及其依赖项并创建自定义捆绑包。

  • 📥 #336 - Bookshelf 现已发布至 PyPI,可通过 Beet 工具链进行安装。

🧱 bs.block#

  • ⚠️ #375 - get_blockget_type 现在只返回现有数据,状态或 NBT 为空时将直接省略对应字段。

  • #279 - 引入播放方块音效的函数 play_block_sound

  • 🐛 #320 - 修复了在主世界外无法使用部分函数的漏洞。

  • #375 - 为 emit_block_particle 添加默认值及新参数 modeviewers

  • #363 - 增强 fill_blockfill_typefill_randomset_blockset_type 函数,新增 strict 模式参数以控制是否触发方块更新。

  • #349 - 为填充操作新增 on_finished 参数,当操作完成时将自动执行指定命令。

  • #287 - replace_type 现在会返回类型是否被找到并替换。

⛰️ bs.environment#

  • 🐛 #320 - 修复了在主世界外无法使用部分函数的漏洞。

🌱 bs.generation#

  • ⚠️ #296 - 将 bs.generate 模块重命名为 bs.generation

  • ⚠️ #282 - 回调中使用的分数现改用新的 bs.lambda 记分项。

  • ⚠️ #296 - 将 bs.generate:fractal_shape_2d 函数重命名为 bs.generation:gen_fractal_shape_2d

  • ⚠️ #296 - 将 bs.generate:shape_2d 函数重命名为 bs.generation:gen_shape_2d

  • ⚠️ #296 - 将 bs.generate:simplex_shape_2d 函数重命名为 bs.generation:gen_simplex_shape_2d

❤️ bs.health#

  • ⚠️ #396 - 更新 get_max_health 函数,现仅返回基础值并排除所有修饰符的影响。

  • 🐛 #348 - 修复在游戏刻循环中执行治疗命令导致空心血槽显示异常的漏洞。

🎯 bs.hitbox#

  • #285 - 新增 #bs.hitbox:is_sized 标签以优化碰撞箱管理。

  • ⚠️ #318 - 移除 is_in_blockis_entity_in_block(s) 函数,改用 is_in_block_<collision|interaction>is_entity_in_block(s)_<collision|interaction> 替代。

  • ⚠️ #297 - 将 is_composite 方块标签替换为 is_full_cube 以提高表述清晰度。

  • #299 - 将 #bs.hitbox:can_pass_through 方块标签从移动模块迁移至此并进行文档化。

  • #285 - 引入 #bs.hitbox:is_sized 标签以优化碰撞箱管理。

  • 🐛 #320 - 修复了在主世界外无法使用部分函数的漏洞。

🖱️ bs.interaction#

  • #300 - 新增 bs.interaction.hovered 标签用于检测交互是否处于悬停状态。

📄 bs.log#

  • ⚠️ #369 - 将 bs.log 模块的日志消息格式从 JSON 改为 SNBT。

🏃 bs.move#

  • ⚠️ #282 - 更新 on_collison 回调:分数现使用 bs.lambda 记分项,输入需要完整命令而非函数路径。此外,on_collision/* 函数已重命名为 callback/*

  • #318 - 为 apply_vel 函数新增可选 hitbox_shape 参数,可选值为 collision(碰撞)或 interaction(交互)碰撞箱类型。

  • #298 - 完善谓词 bs.move:has_vel 的文档说明。

  • 🐛 #316 - 修复碰撞解析过程中实体卡入方块的漏洞。

🔦 bs.raycast#

  • #358 - 为回调新增额外 lambda 值参数。

  • #318 - 为 run 方法添加 hitbox_shape 参数,支持在 collision(碰撞)和 interaction(交互)形状间选择。

⏲️ bs.schedule#

  • ⚠️ #282 - 修改 schedule 函数签名以保持与其他回调函数的一致性。

📰 bs.sidebar#

  • #367 - 对模块进行优化以适配 Minecraft 1.21.5 版本。

  • 🐛 #301 - 修复 bs.sidebar:create 功能异常的漏洞。

🔠 bs.string#

  • 🎉 #283 - 新增用于管理字符串的 bs.string 模块。

🧣 bs.spline#

  • 🎉 #241 - 新增用于处理样条曲线的 bs.spline 模块。

bs.time#

  • 🐛 #379 - 修复 Minecraft 1.21.5 版本中获取时间的漏洞。

👀 bs.view#

  • #318 - 为射线投射相关函数新增 hitbox_shape 参数,允许在 collision(碰撞)和 interaction(交互)形状间选择。

  • #299 - 完善方块标签 can_see_through 的文档说明。

  • 🐛 #319 - 修复 can_see_ata 最大距离计算错误的漏洞。