教程:制作附加包/地物

来自Minecraft基岩版开发Wiki
地物
系列教程
所属系列
难度
中级
前置知识
实践设备
WindowsAndroid
所需软件
  • 假日创作者功能
  • 自定义生物群系

引言[编辑]

地物(Feature)是分散在世界各地的装饰结构。树木、植物、村庄、地牢、神庙、矿石和珊瑚等事物都是地物。开发者可通过在行为包中添加地物配置文件来自定义地物及其生成的规则。

ore_feature是最基本的地物之一,它们可以通过替换生成方块来形成矿簇,本教程将向展示如何制造自然产生的矿物矿石。

准备[编辑]

我们首先要准备两个用作矿石的方块:一个是正常矿石,另一个是深板岩矿石。以下代码可供参考:

{
    "format_version": "1.20.0",
    "minecraft:block": {
        "description": {
            "identifier": "wiki:custom_ore",
            "menu_category": {
                "group": "itemGroup.name.ore",
                "category": "nature"
            }
        },
        "components": {
            // 将这个方块的战利品表设置为空
            "minecraft:loot": "loot_tables/empty.json",
            "minecraft:destructible_by_mining": {
                "seconds_to_destroy": 0.8
            },
            "minecraft:destructible_by_explosion": {
                "explosion_resistance": 3.0
            },
            "minecraft:map_color": "#565656",
            // 方块被挖掘后触发的事件,用于有条件地生成掉落物
            "minecraft:on_player_destroyed": {
                "event": "wiki.spawn_loot",
                // 触发事件的条件:手持物品为镐(有is_pickaxe标签)
                "condition": "query.equipped_item_any_tag('slot.weapon.mainhand', 'minecraft:is_pickaxe')"
            },
            "tag:minecraft:stone_pick_diggable": {}
        },
        "events": {
            "wiki.spawn_loot": {
                // 生成战利品
                "spawn_loot": {
                    "table": "方块战利品表路径"
                }
            }
        }
    }
}

请不要忘了为这个方块添加纹理及名称

添加地物[编辑]

行为包/features文件夹中新建一个名为custom_ore_feature.json的文件,插入以下内容:

{
	"format_version": "1.17.0",
	"minecraft:ore_feature": {
		"description": {
			"identifier": "wiki:custom_ore_feature"// 地物ID,在地物规则中要用到
		},
		"count": 8, // 尝试放置的次数
		"replace_rules": [
			{
				// 被放置的方块
				"places_block": "wiki:custom_ore",
				// 会被矿石替换的方块
				"may_replace": ["minecraft:stone"]
			},
			{
				// 同上
				"places_block": "wiki:deepslate_custom_ore",
				"may_replace": ["minecraft:deepslate"]
			}
		]
	}
}

现在我们成功注册了这个地物,但它还不能在世界中生成,因为我们还需要一个地物规则

添加地物规则[编辑]

行为包/feature_rules文件夹中新建一个名为overworld_underground_custom_ore_feature.json的文件,插入以下内容:

{
	"format_version": "1.13.0",
	"minecraft:feature_rules": {
		"description": {
			"identifier": "wiki:overworld_underground_custom_ore_feature", // 地物规则的ID
			"places_feature": "wiki:custom_ore_feature" // 地物的ID,要和上一节的相匹配
		},
		"conditions": {
			"placement_pass": "underground_pass",
			"minecraft:biome_filter": [
				{
					"any_of": [
						{
							"test": "has_biome_tag",
							"operator": "==",
							"value": "overworld"
						},
						{
							"test": "has_biome_tag",
							"operator": "==",
							"value": "overworld_generation"
						}
					]
				}
			]
		},
		"distribution": {
			"iterations": 10, // 尝试放置地物的次数
			"coordinate_eval_order": "zyx",
			"x": {
				"distribution": "uniform",
				"extent": [0, 16]
			},
			"y": {
				"distribution": "uniform", // 可以填“triangle”使矿石在中层更常见
				"extent": [
					0, // 地物可以生成的y轴最低处
					62 // 地物可以生成的y轴最高处
				]
			},
			"z": {
				"distribution": "uniform",
				"extent": [0, 16]
			}
		}
	}
}

< 交易表 | 生物群系 >