# 自定义特殊方块

# 作者:境界

原版的部分方块具有特殊功能,开花组为开发者提供了方块继承的形式来继承这些特殊方块的能力,本章将教给开发者如何自定义红石元件方块和刷怪箱方块。由于McStudio当前尚不支持完整自定义这两种特殊方块的功能,这里会使用JSON语法来演示。

# 自定义红石元件方块

{
	"format_version": "1.16.0",
	"minecraft:block": {
		"description": {
			"identifier": "design:redstone_consumer",
			"register_to_creative_menu": true
		},
		"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是自定义方块的名称域,这里可以由开发者自己定义。register_to_creative_menu是管理方块是否注册到创造背包里。

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",
			"register_to_creative_menu": true
		},
		"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是自定义方块的名称域,这里可以由开发者自己定义。register_to_creative_menu是管理方块是否注册到创造背包里。

3)components下的参数会储存方块的各项功能。主要来看netease:redstone组件,它可以传入两种类型,这里我们传入producer,这样该方块即可接发送红石信号,strength掌管红石信号的强度,即信号每传递一格,强度会降低1点。

4)最后,还应在blocks.json下进行如下配置,示例图中将方块贴图设置为金方块贴图,则6个面都是金方块面,走在该方块上和破坏方块时产生的音效类型是金属音效。

# 自定义刷怪箱方块

{
    "format_version": "1.16.0",
    "minecraft:block": {
        "description": {
            "identifier": "design:chicken_mob_spawner",
            "register_to_creative_menu": true,
			"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是自定义方块的名称域,这里可以由开发者自己定义。register_to_creative_menu是管理方块是否注册到创造背包里。在这里还要额外指定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个面都是刷怪箱子贴图,走在该方块上和破坏方块时产生的音效类型是金属音效。

进阶

15分钟