爪哇修改怪物在锻造雷霆模型中的繁殖率(1.16)
我刚开始改装雷霆战舰,我想知道如何改变怪物的繁殖率。比如说,我们想要产生很多恩德曼
到目前为止,我已经找到了在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
等等使用。我的结论是,我需要改变生物群落来改变产卵率
我可以使用BiomeRegistry
或ForgeRegistries.BIOMES
访问生物群落。我在这里看到了两种方法:
- 完全替换生物群落地图不幸的是,它的
register
方法是private
,所以我不能添加新的生物群落来取代现有的生物群落。我还读到here删除它们显然是不可能的李> - 修改现有的生物群落地图这将使用
biome.withMobSpawnSettings(MobSpawnInfo mobSpawnSettings)
来修改原地的生物群落。但是MobSpawnInfo
类再次没有任何公共setter,因此我不知道如何在不手动重新创建整个MobSpawnInfo
对象的情况下获得修改的MobSpawnInfo
李>
大多数在线解决方案(1,2)似乎建议以下内容,但遗憾的是,这些内容在当前的1.16.4中不再有效:
ModLoader.addSpawn(YOURENTITY.class, 25, 1, 3);
EntityRegistry.addSpawn(...)
任何帮助都将不胜感激
# 1 楼答案
不要试图使用名为CoreModing且因各种原因不受欢迎的mixin来修改现有的Minecraft软件包。1.16的正确方法是订阅一个BiomeLoadingEvent,然后在加载所有Biome后对其进行修补:
1.16
1.15(可能也适用于1.14、1.13、1.12等)
编辑:注意InControl可以用来实现类似的效果,不需要编码