UID46148性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2021-4-17最后登录1970-1-1
| 本帖最后由 不道 于 2022-10-14 22:23 编辑
好的,因为一部分新手开发者不清楚这些结构,那么这次就简要讲下,方便新手能对实体文件结构有个总体认识以及更好的拆包 ps:本教程新手向,并且是行为包实体文件教程
首先我们要认识实体文件结构的组成部分,可大体分三个部分:组件组,组件,事件
这三个部分可以在description部分(也就是最上面的那个)结束后找到
组件(components)
组件的功能很简单,就是定义这个实体的初始数值,举个例子,在组件部分下添加minecraft:health组件,并且定义它的值为30,那么这个实体从被生成开始它的生命值就永远是30(触非在特殊事件下被组件组再定义生命值),当然,你如果听不懂,记住组件部分的作用就是定义这个实体自带的属性就行
事件(events)
事件的功能相当于一个中转站一样的,就是组件部分里某个组件检测实体在某状态下(比如minecraft:damage_sensor组件的检测伤害来源与类型)触发了某事件,对应事件再添加(add)或者删除(remove)某组件组,使实体失去或得到这个组件组里的所有组件,当然,事件也可以触发原版指令(子组件run_command)和随机事件(子组件randomize),这里不细讲
组件组(component_groups)
组件组的功能相当于实体的备用组件,它在一般情况下不会被实体调用,也就是说在组件组里写的组件一般情况下没用,只有检测实体处于某状态后触发事件才会触发组件组,组件组里是写正常组件的(像minecraft:health这种的),当事件组件组被触发时会给实体添加或删除某组件组(比如用minecraft:damage_sensor组件检测掉落伤害后触发事件再触发组件组,把实体的生命值改成30这样的),若组件组里有和components里重复的组件,会默认以组件组内的组件替换
能听懂最好,不能听懂但仍想自己做add的可以多看几遍
|
|