Skip to content

内置数据映射

字数
1321 字
阅读时间
6 分钟

内置数据映射

NeoForge 为常见用例提供了各种内置数据映射,取代了硬编码的原版字段。原版值由 NeoForge 中的数据映射文件提供,因此对玩家来说没有功能上的差异。

neoforge:compostables

允许配置堆肥值,作为 ComposterBlock.COMPOSTABLES 的替代(现在被忽略)。此数据映射位于 neoforge/data_maps/item/compostables.json,其对象具有以下结构:

json
{
    // 一个 0 到 1(含)的浮点数,表示物品更新堆肥器等级的几率
    "chance": 1,
    // 可选,默认为 false —— 村民是否可以堆肥此物品
    "can_villager_compost": false
}

示例:

json
{
    "values": {
        // 给金合欢原木 50% 的几率填充堆肥器
        "minecraft:acacia_log": {
            "chance": 0.5
        }
    }
}

neoforge:furnace_fuels

允许配置物品燃烧时间。此数据映射位于 neoforge/data_maps/item/furnace_fuels.json,其对象具有以下结构:

json
{
    // 一个正整数,表示物品的燃烧时间(以刻为单位)
    "burn_time": 1000
}

示例:

json
{
    "values": {
        // 给铁砧 2 秒的燃烧时间
        "minecraft:anvil": {
            "burn_time": 40
        }
    }
}

信息:NeoForge 还添加了 IItemExtension#getBurnTime 方法,可以在自定义物品中重写,覆盖此数据映射。#getBurnTime 应仅在数据映射不足的情况下使用,例如依赖于数据组件的燃烧时间。

警告:原版为 #minecraft:logs#minecraft:planks 添加了 300 刻(15 秒)的隐式燃烧时间,然后硬编码移除了绯红和诡异物品。这意味着,如果您添加了另一种不可燃的木材,您应该从该映射中移除该木材类型的物品,如下所示:

json
{
    "replace": false,
    "values": [
        // 此处为值
    ],
    "remove": [
        "examplemod:example_nether_wood_planks",
        "#examplemod:example_nether_wood_stems",
        "examplemod:example_nether_wood_door",
        // 等等
        // 其他移除项
    ]
}

neoforge:monster_room_mobs

允许配置可能在怪物房间刷怪笼中出现的生物,作为 MonsterRoomFeature#MOBS 的替代(现在被忽略)。此数据映射位于 neoforge/data_maps/entity_type/monster_room_mobs.json,其对象具有以下结构:

json
{
    // 此生物的权重,相对于数据映射中的其他生物
    "weight": 100
}

示例:

json
{
    "values": {
        // 让鱿鱼以 100 的权重出现在怪物房间刷怪笼中
        "minecraft:squid": {
            "weight": 100
        }
    }
}

neoforge:oxidizables

允许配置氧化阶段,作为 WeatheringCopper#NEXT_BY_BLOCK 的替代(将在 1.21.2 中被忽略)。此数据映射还用于构建反向脱氧映射(用于用斧头刮削)。它位于 neoforge/data_maps/block/oxidizables.json,其对象具有以下结构:

json
{
    // 此方块氧化后将变成的方块
    "next_oxidized_stage": "examplemod:oxidized_block"
}

注意:自定义方块必须实现 WeatheringCopperFullBlockWeatheringCopper,并在 randomTick 中调用 changeOverTime 以自然氧化。

示例:

json
{
    "values": {
        "mymod:custom_copper": {
            // 让自定义铜方块氧化成自定义氧化铜
            "next_oxidized_stage": "mymod:custom_oxidized_copper"
        }
    }
}

neoforge:parrot_imitations

允许配置鹦鹉模仿生物时产生的声音,作为 Parrot#MOB_SOUND_MAP 的替代(现在被忽略)。此数据映射位于 neoforge/data_maps/entity_type/parrot_imitations.json,其对象具有以下结构:

json
{
    // 鹦鹉模仿生物时将产生的声音 ID
    "sound": "minecraft:entity.parrot.imitate.creeper"
}

示例:

json
{
    "values": {
        // 让鹦鹉模仿悦灵时产生洞穴环境音效
        "minecraft:allay": {
            "sound": "minecraft:ambient.cave"
        }
    }
}

neoforge:raid_hero_gifts

允许配置具有特定 VillagerProfession 的村民在您阻止袭击后可能赠送给您的礼物,作为 GiveGiftToHero#GIFTS 的替代(现在被忽略)。此数据映射位于 neoforge/data_maps/villager_profession/raid_hero_gifts.json,其对象具有以下结构:

json
{
    // 村民职业在袭击后将赠送的战利品表 ID
    "loot_table": "minecraft:gameplay/hero_of_the_village/armorer_gift"
}

示例:

json
{
    "values": {
        "minecraft:armorer": {
            // 让盔甲匠在袭击后赠送盔甲匠礼物战利品表
            "loot_table": "minecraft:gameplay/hero_of_the_village/armorer_gift"
        }
    }
}

neoforge:vibration_frequencies

允许配置游戏事件发出的幽匿振动频率,作为 VibrationSystem#VIBRATION_FREQUENCY_FOR_EVENT 的替代(现在被忽略)。此数据映射位于 neoforge/data_maps/game_event/vibration_frequencies.json,其对象具有以下结构:

json
{
    // 一个介于 1 到 15(含)之间的整数,表示事件的振动频率
    "frequency": 2
}

示例:

json
{
    "values": {
        // 让水花游戏事件在第二个频率上振动
        "minecraft:splash": {
            "frequency": 2
        }
    }
}

neoforge:villager_types

允许配置基于生物群系生成的村民类型,作为 VillagerType#BY_BIOME 的替代(将在 1.22 中被忽略)。它位于 neoforge/data_maps/worldgen/biome/villager_types.json,其对象具有以下结构:

json
{
    // 在此生物群系中生成的村民类型
    // 如果未为生物群系指定村民类型,则将使用 `minecraft:plains`
    "villager_type": "minecraft:desert"
}

示例:

json
{
    "values": {
        // 让丛林生物群系中的村民为沙漠类型
        "minecraft:jungle": {
            "villager_type": "minecraft:desert"
        }
    }
}

neoforge:waxables

允许配置方块在被涂蜡(用蜜脾右键点击)后将变成的方块,作为 HoneycombItem#WAXABLES 的替代(将在 1.21.2 中被忽略)。此数据映射还用于构建反向去蜡映射(用于用斧头刮削)。它位于 neoforge/data_maps/block/waxables.json,其对象具有以下结构:

json
{
    // 此方块的涂蜡变体
    "waxed": "minecraft:iron_block"
}

示例:

json
{
    "values": {
        // 让金块在被涂蜡后变成铁块
        "minecraft:gold_block": {
            "waxed": "minecraft:iron_block"
        }
    }
}

贡献者

The avatar of contributor named as 小飘 小飘

文件历史