Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix config not loading + health config options #27

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions common/src/main/java/vice/sol_valheim/ModConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@
import net.minecraft.world.item.Items;
import net.minecraft.world.item.UseAnim;

import java.util.ArrayList;
import java.util.Dictionary;
import java.util.Hashtable;
import java.util.List;
import java.util.*;


@Config(name = SOLValheim.MOD_ID)
Expand All @@ -30,7 +27,7 @@ public static Common.FoodConfig getFoodConfig(Item item) {
if(item != Items.CAKE && !item.isEdible() && !isDrink)
return null;

var existing = SOLValheim.Config.common.foodConfigs.get(item.arch$registryName());
var existing = SOLValheim.Config.common.foodConfigs.get(item.arch$registryName().toString());
if (existing == null)
{
var registry = item.arch$registryName().toString();
Expand Down Expand Up @@ -74,7 +71,7 @@ else if (registry.contains("milk")) {
// existing.extraEffects.add(effectConfig);
// }

SOLValheim.Config.common.foodConfigs.put(item.arch$registryName(), existing);
SOLValheim.Config.common.foodConfigs.put(item.arch$registryName().toString(), existing);
}

return existing;
Expand All @@ -96,6 +93,12 @@ public static final class Common implements ConfigData {
@ConfigEntry.Gui.Tooltip() @Comment("Default time in seconds that food should last per saturation level")
public int defaultTimer = 180;

@ConfigEntry.Gui.Tooltip() @Comment("Maximum number of hearts achievable via food")
public int maxFoodHealth = 20;

@ConfigEntry.Gui.Tooltip() @Comment("Multiplier for health gained from food")
public float nutritionHealthModifier = 1f;

@ConfigEntry.Gui.Tooltip() @Comment("Speed at which regeneration should occur")
public float regenSpeedModifier = 1f;

Expand Down Expand Up @@ -130,7 +133,7 @@ Food nutrition and effect overrides (Auto Generated if Empty)
- healthRegenModifier: Multiplies health regen speed
- extraEffects: Extra effects provided by eating the food. Format: { String ID, float duration, int amplifier }
""")
public Dictionary<ResourceLocation, FoodConfig> foodConfigs = new Hashtable<>();
public LinkedHashMap<String, FoodConfig> foodConfigs = new LinkedHashMap<>();

public static final class FoodConfig implements ConfigData {
public int nutrition;
Expand All @@ -144,7 +147,7 @@ public int getTime() {
}

public int getHearts() {
return Math.max(nutrition, 2);
return Math.round(Math.max(nutrition * SOLValheim.Config.common.nutritionHealthModifier, 2));
}

public float getHealthRegen()
Expand Down
9 changes: 7 additions & 2 deletions common/src/main/java/vice/sol_valheim/SOLValheim.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import me.shedaniel.autoconfig.AutoConfig;
import me.shedaniel.autoconfig.serializer.JanksonConfigSerializer;
import me.shedaniel.autoconfig.serializer.PartitioningSerializer;
import com.mojang.logging.LogUtils;
import org.slf4j.Logger;

import java.util.List;

Expand All @@ -38,6 +40,7 @@ public class SOLValheim
public static ModConfig Config;
public static final String MOD_ID = "sol_valheim";

static final Logger LOGGER = LogUtils.getLogger();

private static AttributeModifier speedBuff;
public static AttributeModifier getSpeedBuffModifier() {
Expand All @@ -56,7 +59,7 @@ public static void init() {

if (Config.common.foodConfigs.isEmpty())
{
System.out.println("Generating default food configs, this might take a second.");
LOGGER.info("Generating default food configs, this might take a second.");
long startTime = System.nanoTime();

#if PRE_CURRENT_MC_1_19_2
Expand All @@ -70,7 +73,9 @@ public static void init() {

long endTime = System.nanoTime();
long executionTime = (endTime - startTime) / 1000000;
System.out.println("Generating default food configs took " + executionTime + "ms.");
LOGGER.info("Generating default food configs took " + executionTime + "ms.");
} else {
LOGGER.info("Food configs loaded");
}

//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ private void onTick(CallbackInfo info) {
sol_valheim$trackData();
}

float maxhp = Math.min(40, (SOLValheim.Config.common.startingHealth * 2) + sol_valheim$food_data.getTotalFoodNutrition());
float maxhp = Math.min(SOLValheim.Config.common.maxFoodHealth * 2, (SOLValheim.Config.common.startingHealth * 2) + sol_valheim$food_data.getTotalFoodNutrition());

Player player = (Player) (LivingEntity) this;
player.getFoodData().setSaturation(0);
Expand Down