【发布时间】:2021-05-07 18:01:23
【问题描述】:
我是 Minecraft 模组的新手,我想知道如何更改暴徒生成率。例如,假设我们想要生成大量末影人。
到目前为止,我发现似乎在 net.minecraft.world.biome DefaultBiomeFeatures.java 中设置生成频率的代码:
public static void withHostileMobs(MobSpawnInfo.Builder builder) {
...
builder.withSpawner(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
...
}
意思是末影人在大多数生物群系中生成,尽管很少(10 是重量,爬行者和蜘蛛有 100)。
我知道DefaultBiome 然后被BiomeMaker.java 使用到makeGiantTaigaBiome、makeBirchForestBiome 等。我的结论是我需要改变生物群落以改变生成率。 p>
我可以使用BiomeRegistry 或ForgeRegistries.BIOMES 访问生物群系。我在这里看到两种方法:
-
完全替换生物群系地图。 遗憾的是,它的
register方法是private,所以我无法添加新的生物群系来替换现有的生物群系。我还读到 here 说删除它们显然是不可能的。 -
修改现有的生物群系地图。这将使用
biome.withMobSpawnSettings(MobSpawnInfo mobSpawnSettings)就地修改生物群系。但是MobSpawnInfo类再一次没有任何公共设置器,所以我不明白如何在不手动重新创建整个MobSpawnInfo对象的情况下获得修改后的MobSpawnInfo。
大多数在线解决方案(1、2)似乎都提出了以下问题,遗憾的是在当前的 1.16.4 中不再适用:
ModLoader.addSpawn(YOURENTITY.class, 25, 1, 3);
EntityRegistry.addSpawn(...)
任何帮助将不胜感激。
【问题讨论】:
标签: java minecraft minecraft-forge