我们今天添加配置文件,用来调整昨天的生物生成概率
1.Java包中新建一个config包 -> config包中新建ModCommonConfig类:
ModCommonConfig.java
package com.joy187.re8joymod.config;
import net.minecraftforge.common.ForgeConfigSpec;
public class ModCommonConfig {
public static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder();
public static final ForgeConfigSpec SPEC;
//这些参数都是我们所需要的配置参数
public static final ForgeConfigSpec.ConfigValue<Integer> CITRINE_ORE_VEINS_PER_CHUNK;
public static final ForgeConfigSpec.ConfigValue<Integer> CITRINE_ORE_VEIN_SIZE;
public static final ForgeConfigSpec.ConfigValue<Integer> SPAWN_Moroaicas;
static {
BUILDER.push("Configs for Resident Evil 8 Mod");
//comment: 参数解释,define:参数定义 后跟一个值
CITRINE_ORE_VEINS_PER_CHUNK = BUILDER.comment("How many Citrine Ore Veins spawn per chunk!")
.define("Veins Per Chunk", 7);
SPAWN_Moroaicas = BUILDER.comment("Spawn Moroaicas,Hauler,Soldat Eins")
.define("entity.moroaicas.spawnrate", 13);
//comment: 参数解释,define:参数定义 后跟三个值,第一个是可变值,第二个是最小值,第三是最大值
CITRINE_ORE_VEIN_SIZE = BUILDER.comment("How many Citrine Ore Blocks spawn in one Vein!")
.defineInRange("Vein Size", 9, 4, 20);
BUILDER.pop();
SPEC = BUILDER.build();
}
}
2.在Main类中的Main函数中添加我们配置文件的注册事件:
public Main() {
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
ItemInit.ITEMS.register(bus);
BlockInit.BLOCKS.register(bus);
EntityInit.ENTITY_TYPES.register(bus);
EffectInit.EFFECTS.register(bus);
SoundInit.SOUNDS.register(bus);
ModStructures.register(bus);
GeckoLib.initialize();
//添加这个
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, ModCommonConfig.SPEC, "re8joymod-common.toml");
MinecraftForge.EVENT_BUS.register(this);
}
3.找到我们上期教程的ModEntityGeneration类,将怪物生成概率替换为自己的参数
public static void onEntitySpawn(final BiomeLoadingEvent event) {
//替换生成概率参数
addEntityToSpecificBiomes(event,EntityInit.DUND1.get(),ModCommonConfig.SPAWN_Moroaicas.get(),1,2,
Biomes.PLAINS,Biomes.SAVANNA,Biomes.FOREST,Biomes.BEACH,Biomes.SWAMP,Biomes.RIVER);
}
4.保存所有文件 -> 登录游戏
成功登录后你会在项目的run\config
文件夹中找到你的配置文件,用记事本打开后可以修改你之前设定的参数,下次登录时会覆盖掉原来的数值。