内置数据映射
内置数据映射
NeoForge 为常见用例提供了各种内置数据映射,取代了硬编码的原版字段。原版值由 NeoForge 中的数据映射文件提供,因此对玩家来说没有功能上的差异。
neoforge:compostables
允许配置堆肥值,作为 ComposterBlock.COMPOSTABLES
的替代(现在被忽略)。此数据映射位于 neoforge/data_maps/item/compostables.json
,其对象具有以下结构:
{
// 一个 0 到 1(含)的浮点数,表示物品更新堆肥器等级的几率
"chance": 1,
// 可选,默认为 false —— 村民是否可以堆肥此物品
"can_villager_compost": false
}
示例:
{
"values": {
// 给金合欢原木 50% 的几率填充堆肥器
"minecraft:acacia_log": {
"chance": 0.5
}
}
}
neoforge:furnace_fuels
允许配置物品燃烧时间。此数据映射位于 neoforge/data_maps/item/furnace_fuels.json
,其对象具有以下结构:
{
// 一个正整数,表示物品的燃烧时间(以刻为单位)
"burn_time": 1000
}
示例:
{
"values": {
// 给铁砧 2 秒的燃烧时间
"minecraft:anvil": {
"burn_time": 40
}
}
}
信息:NeoForge 还添加了 IItemExtension#getBurnTime
方法,可以在自定义物品中重写,覆盖此数据映射。#getBurnTime
应仅在数据映射不足的情况下使用,例如依赖于数据组件的燃烧时间。
警告:原版为 #minecraft:logs
和 #minecraft:planks
添加了 300 刻(15 秒)的隐式燃烧时间,然后硬编码移除了绯红和诡异物品。这意味着,如果您添加了另一种不可燃的木材,您应该从该映射中移除该木材类型的物品,如下所示:
{
"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
,其对象具有以下结构:
{
// 此生物的权重,相对于数据映射中的其他生物
"weight": 100
}
示例:
{
"values": {
// 让鱿鱼以 100 的权重出现在怪物房间刷怪笼中
"minecraft:squid": {
"weight": 100
}
}
}
neoforge:oxidizables
允许配置氧化阶段,作为 WeatheringCopper#NEXT_BY_BLOCK
的替代(将在 1.21.2 中被忽略)。此数据映射还用于构建反向脱氧映射(用于用斧头刮削)。它位于 neoforge/data_maps/block/oxidizables.json
,其对象具有以下结构:
{
// 此方块氧化后将变成的方块
"next_oxidized_stage": "examplemod:oxidized_block"
}
注意:自定义方块必须实现 WeatheringCopperFullBlock
或 WeatheringCopper
,并在 randomTick
中调用 changeOverTime
以自然氧化。
示例:
{
"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
,其对象具有以下结构:
{
// 鹦鹉模仿生物时将产生的声音 ID
"sound": "minecraft:entity.parrot.imitate.creeper"
}
示例:
{
"values": {
// 让鹦鹉模仿悦灵时产生洞穴环境音效
"minecraft:allay": {
"sound": "minecraft:ambient.cave"
}
}
}
neoforge:raid_hero_gifts
允许配置具有特定 VillagerProfession
的村民在您阻止袭击后可能赠送给您的礼物,作为 GiveGiftToHero#GIFTS
的替代(现在被忽略)。此数据映射位于 neoforge/data_maps/villager_profession/raid_hero_gifts.json
,其对象具有以下结构:
{
// 村民职业在袭击后将赠送的战利品表 ID
"loot_table": "minecraft:gameplay/hero_of_the_village/armorer_gift"
}
示例:
{
"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
,其对象具有以下结构:
{
// 一个介于 1 到 15(含)之间的整数,表示事件的振动频率
"frequency": 2
}
示例:
{
"values": {
// 让水花游戏事件在第二个频率上振动
"minecraft:splash": {
"frequency": 2
}
}
}
neoforge:villager_types
允许配置基于生物群系生成的村民类型,作为 VillagerType#BY_BIOME
的替代(将在 1.22 中被忽略)。它位于 neoforge/data_maps/worldgen/biome/villager_types.json
,其对象具有以下结构:
{
// 在此生物群系中生成的村民类型
// 如果未为生物群系指定村民类型,则将使用 `minecraft:plains`
"villager_type": "minecraft:desert"
}
示例:
{
"values": {
// 让丛林生物群系中的村民为沙漠类型
"minecraft:jungle": {
"villager_type": "minecraft:desert"
}
}
}
neoforge:waxables
允许配置方块在被涂蜡(用蜜脾右键点击)后将变成的方块,作为 HoneycombItem#WAXABLES
的替代(将在 1.21.2 中被忽略)。此数据映射还用于构建反向去蜡映射(用于用斧头刮削)。它位于 neoforge/data_maps/block/waxables.json
,其对象具有以下结构:
{
// 此方块的涂蜡变体
"waxed": "minecraft:iron_block"
}
示例:
{
"values": {
// 让金块在被涂蜡后变成铁块
"minecraft:gold_block": {
"waxed": "minecraft:iron_block"
}
}
}