package com.hea3ven.hardmodetweaks.food;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import net.minecraft.item.Item;
import net.minecraft.item.ItemFishFood.FishType;
import net.minecraft.item.ItemFood;
import net.minecraftforge.fml.relauncher.ReflectionHelper;
public class FoodValueTweaker {
private static Logger logger = LogManager.getLogger("HardModeTweaks.Food");
public static List<FoodConfig> foodValuesConfig;
public static void modifyFoodValues() {
for (FoodConfig foodCfg : foodValuesConfig) {
switch (foodCfg.getName()) {
case "minecraft:raw_fish":
modifyFishFoodValue(FishType.COD, foodCfg, false);
break;
case "minecraft:cooked_fish":
modifyFishFoodValue(FishType.COD, foodCfg, true);
break;
case "minecraft:raw_salmon":
modifyFishFoodValue(FishType.SALMON, foodCfg, false);
break;
case "minecraft:cooked_salmon":
modifyFishFoodValue(FishType.SALMON, foodCfg, true);
break;
default:
Item item = Item.getByNameOrId(foodCfg.getName());
if (!(item instanceof ItemFood)) {
logger.warn("The item '{}' is not a food item", foodCfg.getName());
continue;
}
ItemFood food = (ItemFood) item;
ReflectionHelper.setPrivateValue(ItemFood.class, food, foodCfg.getValue(), 1);
ReflectionHelper.setPrivateValue(ItemFood.class, food, foodCfg.getSaturation(), 2);
break;
}
}
}
private static void modifyFishFoodValue(FishType fishType, FoodConfig foodCfg, boolean cooked) {
ReflectionHelper.setPrivateValue(FishType.class, fishType, foodCfg.getValue(),
!cooked ? 7 : 9);
ReflectionHelper.setPrivateValue(FishType.class, fishType, foodCfg.getSaturation(),
!cooked ? 8 : 10);
}
}