CraftEngine

授权转载 付费 开源 娱乐 CraftEngine 26.10-快照

请登录后获取
提高插件的稳定性
优化插件的流畅度

家具调试模式​

/ce debug furniture
图1: 展示隐形判定箱
图2: 展示错误放置
展示隐形碰撞箱
展示错误放置

调试棒
调试棒

关于家具旋转​

这些配置已包含在新的默认配置文件中
Diff:
items:
  default:example:
    behavior:
      type: furniture_item
      furniture:
+       events:
+         - template: default:rotatable_furniture_4
YAML:
templates:
  default:rotatable_furniture_4:
    on: right_click
    conditions:
      - type: expression
        expression: <arg:player.is_sneaking>
    functions:
      - type: rotate_furniture
        degree: 90
        on-success:
          - type: swing_hand
          - type: play_sound
            sound: ${rotate_sound:-'minecraft:block.bamboo.place'}
        on-failure:
          - type: rotate_furniture
            degree: 180
            on-success:
              - type: swing_hand
              - type: play_sound
                sound: ${rotate_sound:-'minecraft:block.bamboo.place'}
            on-failure:
              - type: rotate_furniture
                degree: 270
                on-success:
                  - type: swing_hand
                  - type: play_sound
                    sound: ${rotate_sound:-'minecraft:block.bamboo.place'}
  default:rotatable_furniture_8:
    on: right_click
    conditions:
      - type: expression
        expression: <arg:player.is_sneaking>
      - type: "!match_furniture_variant"
        variants: ${blacklist_variants:-null}
    functions:
      - type: rotate_furniture
        degree: 45
        on-success:
          - type: swing_hand
          - type: play_sound
            sound: ${rotate_sound:-'minecraft:block.bamboo.place'}
        on-failure:
          - type: rotate_furniture
            degree: 90
            on-success:
              - type: swing_hand
              - type: play_sound
                sound: ${rotate_sound:-'minecraft:block.bamboo.place'}
            on-failure:
              - type: rotate_furniture
                degree: 135
                on-success:
                  - type: swing_hand
                  - type: play_sound
                    sound: ${rotate_sound:-'minecraft:block.bamboo.place'}
webp.119910

关于方块旋转​

Diff:
items:
  default:sofa:
    behavior:
      type: block_item
      block:
+       events:
+         - template: default:rotatable_block
YAML:
templates:
  default:rotatable_block:
    on: right_click
    conditions:
      - type: expression
        expression: <arg:player.is_sneaking>
    functions:
      - type: update_interaction_tick
      - type: play_sound
        sound: ${rotate_sound:-'minecraft:block.bamboo.place'}
      - type: swing_hand
      - type: cycle_block_property
        property: facing
        rules:
          north: east
          east: south
          south: west
          west: north

全物品分类​

YAML:
categories:
  craftengine:all:
    priority: -1000
    name: <!i><white><l10n:category.all.name></white>
    icon: minecraft:command_block
    conditions:
      - type: permission
        permission: craftengine.admin
    all-items: true
1764887713141.webp
1764887717230.webp
webp.119911

附件

  • 家具实体剔除现已可用
  • 新增 keep_custom_data 后处理器
  • 新增 drop_experience_block 方块行为
YAML:
blocks:
  default:topaz_ore:
    behavior:
      type: drop_experience_block
      amount: 3~7
      condition:
        type: enchantment
        predicate: minecraft:silk_touch<=0
  • 家具格式变更。(旧格式在未来版本中仍保持兼容,但将不再在维基上列出)
    此外,minimized 参数已被移除。在下一个版本中,我将添加一个家具调试模式,以便在测试环境中更好地调试家具。
主要变更有:

家具放置限制现在由家具物品行为决定,而不是由家具本身决定。

家具不再局限于原有的三种放置方式(地面、天花板、墙壁)。现在可以通过注册自定义家具放置行为来放置更多类型的变体。未来的家具行为也将支持在不同家具变体之间切换。

尽管本次更新几乎不涉及配置文件的改动,但整个家具系统已彻底重写。接下来几个版本将引入全新的家具行为与变体API,以及新的家具功能(如旋转家具和设置家具数据)。
Diff:
items:
  default:bench:
    material: nether_brick
    data:
      item-name: <!i><l10n:item.bench>
    model: minecraft:item/custom/bench
    behavior:
      type: furniture_item
+     rules:
+       ground:
+         rotation: four
+         alignment: center
      furniture:
        settings:
          item: default:bench
          sounds:
            break: minecraft:block.bamboo_wood.break
            place: minecraft:block.bamboo_wood.place
-       placement:
+       variants:
          ground:
            loot-spawn-offset: 0.5,0.5,0
-           rules:
-             rotation: four
-             alignment: center
            elements:
              - item: default:bench
                display-transform: none
                billboard: fixed
                position: 0.5,0,0
                translation: 0,0.5,0
                shadow-radius: 1
                shadow-strength: 0.2
            hitboxes:
              - position: 0,0,0
                type: shulker
                direction: east
                peek: 100
                blocks-building: true
                interactive: true
                interaction-entity: true
                seats:
                  - 0,0,-0.1 0
                  - 1,0,-0.1 0
        loot:
          template: default:loot_table/furniture
          arguments:
            item: default:bench
  • 默认禁用自托管的 strict-validation 选项,因为如果服务端和客户端的 UUID 不一致会导致校验失败
  • 改进了 entity-renderer 的工作方式
建议将 yaw/pitch 替换为 rotation,并将 position 替换为 translation,因为本次更新后:
Diff:
entity-renderer:
  item: default:sofa
- yaw: 270
+ rotation: 270
- position: 0,1,0
+ translation: 0,1,0
通过这种方式,在切换状态时方块将不会出现闪烁

  • 修复实体剔除功能潜在的空指针问题
  • 增加了更多实体剔除选项
  • 为实体剔除添加了第三人称支持
  • 修复了骑乘其他实体时无法破坏自定义方块的问题
  • 新增可控制实体可视距离的命令
YAML:
# [付费版专属]
client-optimization:
  # 需要完全重启服务器才能生效。
  entity-culling:
    enable: true
    # 使用服务端光线追踪算法来隐藏方块实体或家具,减轻客户端渲染压力。
    ray-tracing: true
    # 根据距离剔除实体
    view-distance: 64 # -1 = 无限制
    # 设定执行这些光线追踪操作的线程数
    threads: 1
    # 限制单个玩家每 tick 内可见性发生变化的实体最大数量
    # 这有助于减轻因大量实体突然出现而导致的客户端性能影响和服务端带宽激增。
    rate-limiting:
      enable: true
      bucket-size: 1000
      restore-per-tick: 25
1764438980957.webp

家具系统即将重构,新系统包含以下特性:
  • 可选虚拟家具(服务端零实体占用)
  • 虚拟碰撞箱
  • 家具多变体支持
  • 服务端不再残留元数据实体。这意味着即使卸载 CraftEngine,世界中也不会遗留任何家具实体。
  • 家具剔除功能

  • 修复因为实体剔除导致在第二次切换方块实体的状态时旧状态的实体未移除的问题
  • 新增对嵌套参数默认值的支持
    item-name: <!i><white>${arg1:-'${arg2:-\'${arg3:-abc}\'}'}
  • 添加了更多模板参数类型
  • 新增 set_level set_exp play_totem_animation 函数
  • 修复了混淆动态纹理的一个错误
  • 修复与某些世界生成插件的兼容性
后退
顶部 底部