6 自定义世界生成


暂不支持1.16.5 fabric。

onEvent('worldgen.add', event => {
  event.addLake(lake => { // 自定义湖
    lake.block = 'minecraft:diamond_block' // 方块ID (使用 [] 来为其添加属性)
    lake.chance = 3 // 约3个区块生成一次
  })

  event.addOre(ore => { //自定义矿石
    ore.block = 'minecraft:glowstone' // 方块ID (使用 [] 来为其添加属性)
    ore.spawnsIn.blacklist = false // 是否在矿石生成黑名单位置处生成
    ore.spawnsIn.values = [ // 该矿石可以在以下位置生成(支持方块ID、标签)
      '#minecraft:base_stone_overworld' // 默认的生成方式: 用于决定作为地下矿石生成时,该矿石能取代哪些方块。你可以在https://wiki.biligame.com/mc/%E6%A0%87%E7%AD%BE查看更多信息。
    ]
    
    ore.biomes.blacklist = true // 是否在矿石生成黑名单群系中生成
    ore.biomes.values = [ // 矿石可以生成的群系
      'minecraft:plains', // 群系ID
      '#nether' // 或者你可以使用“# + 群系类别”来代表群系, 在文末查看可用的列表
    ]
    
    ore.clusterMinSize = 5 // 每矿簇最少的矿石数量 (现在 ore.clusterMinSize 选项是被忽略的, 该功能将在以后更新, 现在它恒为1)
    ore.clusterMaxSize = 9 // 每矿簇最多的矿石数量
    ore.clusterCount = 30 // 每个区块矿石数量
    ore.minHeight = 0 // 最小Y值
    ore.maxHeight = 64 // 最大Y值
    ore.squared = true // 对X和Z值添加0~16的随机值. 推荐设置为 true
    // ore.chance = 4 // 每大约4个区块生成一次. 对于稀有的矿石来说, 你可以将它和 clusterCount = 1 一同使用
  })
  
  event.addSpawn(spawn => { // 自定义实体生成
    spawn.category = 'monster' // 实体类别, 可以设为 'creature', 'monster', 'ambient', 'water_creature' 和 'water_ambient'
    spawn.entity = 'minecraft:magma_cube' // 实体ID
    spawn.weight = 10 // 生成权重
    spawn.minCount = 4 // 每组最小数量
    spawn.maxCount = 4 // 每组最大数量
  })
})

/*
        可用的群系类别:
                taiga(针叶林类)
                extreme_hills(高山类)
                jungle(丛林类)
                mesa(恶地类)(太怪了,作者为什么要在这里用基岩版的名称...)
                plains(平原类)
                savanna(热带草原类)
                icy(冰原类)
                the_end(末地)
                beach(沙滩类)
                forest(树林类)
                ocean(海洋类)
                desert(沙漠类)
                river(河流类)
                swamp(沼泽类)
                mushroom(蘑菇岛类)
                nether(下界)

        以下是香草(划掉)世界生成的顺序:
                raw_generation
                lakes
                local_modifications
                underground_structures
                surface_structures
                strongholds
                underground_ores
                underground_decoration
                vegetal_decoration
                top_layer_modification
*/

onEvent('worldgen.remove', event => {
  event.removeOres(ores => {//移除矿石
    ores.blocks = [ 'minecraft:coal_ore', 'minecraft:iron_ore' ] // 移除铁矿和煤矿
    ores.biomes.values = [ 'minecraft:plains' ] // 限制该选项仅在平原生效
  })
  
  event.removeSpawnsByID(spawns => {//通过实体ID来禁止指定实体生成
    spawns.entities.values = [
      'minecraft:cow',
      'minecraft:chicken',
      'minecraft:pig',
      'minecraft:zombie'
    ]
  })
  
  event.removeSpawnsByCategory(spawns => {//移除实体生成
    spawns.biomes.values = [
      'minecraft:plains'//指定为平原群系
    ]
    spawns.categories.values = [//类型为怪物
      'monster'
    ]
  })
})