package com.hea3ven.hardmodetweaks.food;
import com.google.common.collect.Lists;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Property.Type;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import com.hea3ven.tools.commonutils.mod.ProxyModModule;
import com.hea3ven.tools.commonutils.mod.config.FileConfigManagerBuilder.CategoryConfigManagerBuilder;
public class ProxyModHardModeTweaksFood extends ProxyModModule {
private FoodTweaksManager foodManager;
@Override
public void onInitEvent(FMLInitializationEvent event) {
super.onInitEvent(event);
if (foodManager != null)
FoodValueTweaker.modifyFoodValues();
}
@Override
public CategoryConfigManagerBuilder getConfig() {
return new CategoryConfigManagerBuilder("Food").addValue("enableFoodTweaks", "true", Type.BOOLEAN,
"Enable food tweaks. The food healing stacks with the normal natural regeneration, " +
"so consider disabling the gamerule for that.", property -> {
if (property.getBoolean()) {
if (foodManager == null) {
foodManager = new FoodTweaksManager();
MinecraftForge.EVENT_BUS.register(foodManager);
}
} else {
if (foodManager != null) {
MinecraftForge.EVENT_BUS.unregister(foodManager);
foodManager = null;
}
}
}, true, true)
.addValue("foodValues",
new String[] {"minecraft:rabbit_stew|12|12.0", "minecraft:golden_carrot|8|14.4",
"minecraft:pumpkin_pie|8|12.0", "minecraft:golden_apple|10|9.6",
"minecraft:mushroom_stew|8|11", "minecraft:bread|6|11",
"minecraft:beetroot_soup|6|7.8", "minecraft:cooked_salmon|7|6.4",
"minecraft:cooked_fish|5|7.8", "minecraft:spider_eye|4|6.4",
"minecraft:baked_potato|5|5.2", "minecraft:apple|4|5.2",
"minecraft:cooked_beef|3|5.2", "minecraft:cooked_porkchop|3|5.2",
"minecraft:cooked_mutton|3|5.2", "minecraft:cooked_chicken|3|5.2",
"minecraft:cooked_rabbit|3|5.2", "minecraft:chorus_fruit|6|1.2",
"minecraft:cookie|4|3.2", "minecraft:carrot|4|2.4", "minecraft:melon|4|2.4",
"minecraft:beetroot|4|2.4", "minecraft:potato|4|2.4",
"minecraft:rotten_flesh|4|0.8", "minecraft:raw_salmon|2|2.4",
"minecraft:raw_fish|2|2.4", "minecraft:rabbit|2|2.4",
"minecraft:porkchop|2|2.4", "minecraft:beef|2|2.4", "minecraft:mutton|2|2.4",
"minecraft:chicken|2|2.4", "minecraft:poisonous_potato|2|0.8"}, Type.STRING,
"Modifications to food's value and saturation." +
" Remove all entries to leave as default vanilla values.", property -> {
FoodValueTweaker.foodValuesConfig = Lists.newArrayList();
for (String foodConfigString : property.getStringList()) {
FoodConfig foodConfig = FoodConfig.parse(foodConfigString);
if (foodConfig != null)
FoodValueTweaker.foodValuesConfig.add(foodConfig);
}
}, true, true)
.addValue("healMinFoodLevel", "4", Type.INTEGER,
"The minimum food level required to be able to heal.", property -> {
FoodTweaksManager.healMinFoodLevel = property.getInt();
})
.addValue("healTimeout", "20", Type.INTEGER, "The timeout between heals.", property -> {
FoodTweaksManager.healTimeout = (byte) property.getInt();
})
.addValue("healAmount", "0.2", Type.DOUBLE, "The amount of healing done.", property -> {
FoodTweaksManager.healAmount = (float) property.getDouble();
})
.addValue("healExhaustion", "3.0", Type.DOUBLE,
"The amount of exhaustion added when healing.", property -> {
FoodTweaksManager.healExhaustion = (float) property.getDouble();
});
}
}