注意:此段落所述功能已于1.21.10.22被弃用,请勿使用此系统。
然而,出于学习并理解旧版附加包的必要性,我保留了这个段落。
首先,我放一篇示例文档,这样大家就可以学会这些新特性了。值得注意的是,这两个与实体属性有很大关系,建议你先去官方文档把实体属性学了。
- {
- "format_version": "1.19.0",
- "minecraft:entity": {
- "description": {
- "identifier": "supplementary:container", //实体ID
- "is_spawnable": false, //是否有刷怪蛋,是否可以自然生成
- "is_summonable": true, //是否可以被/summon命令生成
- "is_experimental": false, //是否属于实验性内容
- "properties": { //指定了实体属性
- "supplementary:slot_count": { //一个属性,名叫supplementary:slot_count。
- "type": "int", //属性的类型
- "range": [ //属性的范围,根据属性的类型决定有没有这一项
- 0, //最小值
- 256 //最大值
- ],
- "default": 0 //默认值
- }
- },
- "aliases": { //指定了实体的别名
- "supplementary:container.0": {}, //这里,supplementary:container.0是别名,后面没有东西代表这个别名使用默认的实体属性值(这里是0)。
- "supplementary:container.1": { //这里,supplementary:container.1是别名,后面的supplementary:slot_count是实体属性名称,1代表这个属性的值
- "supplementary:slot_count": 1
- },
- "supplementary:container.2": {
- "supplementary:slot_count": 2
- },
- "supplementary:container.7": {
- "supplementary:slot_count": 7
- } //注意,这些别名可以通过/summon命令使用。在这个例子里,/summon supplementary:container和/summon supplementary:container.0的作用是一样的。
- }
- },
- "component_groups": {吧啦吧啦一大堆,都不重要},
- "components": {又吧啦吧啦一大堆,还是都不重要},
- "permutations": [ //看到这个,你应该立刻就想到方块属性。没错,又是一样的格式。
- {
- "condition": "query.property('supplementary:slot_count') == 1", //Molang表达式,如果输出true,那么用下面的这些组件替换掉原本的组件。这里的意思是查询属性supplementary:slot_count的值是否为1。
- "components": { //组件列表
- "minecraft:inventory": { //实体拥有的物品栏
- "container_type": "container", //物品栏类型:容器
- "inventory_size": 1, //物品栏大小
- "can_be_siphoned_from": false //是否可以被漏斗吸走物品或输入物品。false是不行,true是可以。
- }
- }
- },
- {
- "condition": "query.property('supplementary:slot_count') == 2",
- "components": {
- "minecraft:inventory": {
- "container_type": "container",
- "inventory_size": 2,
- "can_be_siphoned_from": false
- }
- }
- },
- {
- "condition": "query.property('supplementary:slot_count') == 7",
- "components": {
- "minecraft:inventory": {
- "container_type": "container",
- "inventory_size": 7,
- "can_be_siphoned_from": false
- }
- }
- }
- ],
- "events": {
- "supplementary:set_slot_count_0": {
- "set_property": {
- "supplementary:slot_count": 0 //这里的这个事件方法用于设置实体属性的值,这里是把supplementary:slot_count设置为0。
- }
- },
- "supplementary:set_slot_count_1": {
- "set_property": {
- "supplementary:slot_count": 1
- }
- },
- "supplementary:set_slot_count_2": {
- "set_property": {
- "supplementary:slot_count": 2
- }
- },
- "supplementary:set_slot_count_7": {
- "set_property": {
- "supplementary:slot_count": 7
- }
- }
- }
- }
- }
复制代码
|