--- front: hard: 进阶 time: 15分钟 --- # 自定义特殊方块 #### 作者:境界 原版的部分方块具有特殊功能,开花组为开发者提供了方块继承的形式来继承这些特殊方块的能力,本章将教给开发者如何自定义红石元件方块和刷怪箱方块。由于McStudio当前尚不支持完整自定义这两种特殊方块的功能,这里会使用JSON语法来演示。 #### 自定义红石元件方块 ``` { "format_version": "1.16.0", "minecraft:block": { "description": { "identifier": "design:redstone_consumer" }, "components": { "minecraft:destroy_time": 2.0, "minecraft:map_color": "#ffffff", "netease:tier": { "digger": "pickaxe", "level": 0 }, "netease:redstone": { "type": "consumer" } } } } ``` 1)1.16.0是当前下界更新的自定义方块内容格式,所以我们在format_version里填1.16.0 2)identifier是自定义方块的名称域,这里可以由开发者自己定义。 3)components下的参数会储存方块的各项功能。主要来看netease:redstone组件,它可以传入两种类型,这里我们传入consumer,这样该方块即可接收红石信号,成为红石元件方块。 ``` { "format_version": [ 1, 1, 0 ], "design:redstone_producer": { "textures": "gold_block", "sound": "metal" }, "design:redstone_consumer": { "textures": "gold_block", "sound": "metal" } } ``` 4)最后,还应在blocks.json下进行如下配置,示例图中将方块贴图设置为金方块贴图,则6个面都是金方块面,走在该方块上和破坏方块时产生的音效类型是金属音效。 #### 自定义红石信号源方块 ``` { "format_version": "1.16.0", "minecraft:block": { "description": { "identifier": "design:redstone_producer" }, "components": { "minecraft:destroy_time": 2.0, "minecraft:map_color": "#ffffff", "netease:tier": { "digger": "pickaxe", "level": 0 }, "netease:redstone": { "type": "producer", "strength": 10 } } } } ``` 1)1.16.0是当前下界更新的自定义方块内容格式,所以我们在format_version里填1.16.0 2)identifier是自定义方块的名称域,这里可以由开发者自己定义。 3)components下的参数会储存方块的各项功能。主要来看netease:redstone组件,它可以传入两种类型,这里我们传入producer,这样该方块即可接发送红石信号,strength掌管红石信号的强度,即信号每传递一格,强度会降低1点。 4)最后,还应在blocks.json下进行如下配置,示例图中将方块贴图设置为金方块贴图,则6个面都是金方块面,走在该方块上和破坏方块时产生的音效类型是金属音效。 #### 自定义刷怪箱方块 ``` { "format_version": "1.16.0", "minecraft:block": { "description": { "identifier": "design:chicken_mob_spawner", "base_block": "mob_spawner" }, "components": { "minecraft:block_light_absorption": 0, "netease:tier": { "digger": "pickaxe", "level": 0 }, "netease:render_layer": { "value": "alpha" }, "netease:mob_spawner": { "type": "minecraft:chicken" }, "minecraft:block_light_emission": 1.0, "minecraft:destroy_time": 2.0, "minecraft:map_color": "#ffffff" } } } ``` 1)1.16.0是当前下界更新的自定义方块内容格式,所以我们在format_version里填1.16.0 2)identifier是自定义方块的名称域,这里可以由开发者自己定义。在这里还要额外指定base_block键对,将方块继承刷怪箱即"mob_spawner"。 3)components下的参数会储存方块的各项功能。主要来看netease:mob_spawner组件,它里面的键类型会指向一种生物名称域,该组件功能同时支持自定义生物和MC原版生物。 ``` { "format_version": [ 1, 1, 0 ], "design:chicken_mob_spawner": { "textures": "mob_spawner", "sound": "metal" } } ``` 4)最后,还应在blocks.json下进行如下配置,示例图中将方块贴图设置为原版刷怪箱贴图。则6个面都是刷怪箱子贴图,走在该方块上和破坏方块时产生的音效类型是金属音效。