触发器 (我的世界)

From Hyacinth
Jump to navigation Jump to search

触发器是基岩版我的世界数据驱动中应用于方块的部分特殊组件,在格式和作用上拥有一些相同的性质。触发器主要用于接受游戏中对方块的事件并被触发,进而触发其需要触发的目标事件。为便于撰写和查询以及记忆,按照触发器的性质和格式乃至名称将其分为事件触发器与计时触发器。

事件触发器

事件触发器是游戏中有特定的事件发生在该方块上时,触发对应的触发器。

事件触发器共同拥有下述的数据:

值描述 默认值 值类型
condition 触发器的触发条件,使用Molang编写 - String
event 触发器需要触发的事件 - String
target 执行事件的目标 'self' String

minecraft:on_fall_on


minecraft:on_fall_on 在实体跌落到该方块上时被触发。

值描述 默认值 值类型
min_fall_distance 实体触发该触发器所需最低下落高度 0.0 float
"minecraft:on_fall_on": {
    "condition": "true",
    "event": "hyacinthevent",
    "target": "self",
    "min_fall_distance": 114.514
}

minecraft:on_interact


minecraft:on_interact 在实体与方块交互时触发。

"minecraft:on_interact": {
    "condition": "true",
    "event": "hyacinthevent",
    "target": "self"
}

minecraft:on_placed


minecraft:on_placed 在方块被放置时触发。

minecraft:on_player_destroyed


minecraft:on_player_destoryed 在方块被玩家破坏时触发。

minecraft:on_player_placing


minecraft:on_player_placing 在方块被玩家放置时触发。

minecraft:on_step_off


minecraft:on_step_off 在实体走出方块时触发。

minecraft:on_step_on


minecraft:on_step_on 在实体走入方块时触发。

计时触发器

计时触发器是游戏中跟随游戏刻而产生的事件而触发的触发器。

计时触发器拥有可选的共有键值对有

值描述 默认值 值类型
condition 触发器的触发条件,使用Molang编写。

在计时触发器触发时,会首先检查该值是否为true, 若为true则触发事件,否则相反。

1 String
event 触发器需要触发的事件 'set_block_state' String
target 执行事件的目标 'self' String
range 格式为:[min, max]。间隔随机刻触发触发器。 - Array

minecraft:queued_ticking


minecraft:queued_ticking 以一定或随机的间隔延迟执行一次或循环触发触发器。

minecraft:random_ticking


minecraft:random_ticking 基于随机游戏刻触发触发器,受随机刻速度规则影响。