package me.earthme.luminol.config.modules.optimizations;

import java.util.Map;
import me.earthme.luminol.config.IConfigModule;
import me.earthme.luminol.config.flags.ConfigClassInfo;
import me.earthme.luminol.config.flags.ConfigInfo;
import me.earthme.luminol.enums.EnumConfigCategory;

@ConfigClassInfo(category = EnumConfigCategory.OPTIMIZATIONS, name = "explosion_optimizer")
public class ExplosionOptimizerConfig implements IConfigModule {
    @ConfigInfo(name = "enabled")
    public static boolean enabled = false;

    @ConfigInfo(name = "yield_limit_enabled")
    public static boolean yieldLimitEnabled = true;

    @ConfigInfo(name = "yield_limit_default")
    public static float yieldLimitDefault = 4.0f;

    @ConfigInfo(name = "yield_limit_per_type")
    public static Map<String, Float> yieldLimitPerType = Map.of(
        "END_CRYSTAL", 6.0f,
        "WITHER_SKULL", 1.0f
    );

    @ConfigInfo(name = "anti_chain_enabled")
    public static boolean antiChainEnabled = true;

    @ConfigInfo(name = "anti_chain_radius")
    public static double antiChainRadius = 8.0;

    @ConfigInfo(name = "anti_chain_cooldown_ticks")
    public static int antiChainCooldownTicks = 10;

    @ConfigInfo(name = "management_enabled")
    public static boolean managementEnabled = false;

    @ConfigInfo(name = "management_threshold")
    public static float managementThreshold = 6.0f;

    @ConfigInfo(name = "simulate_damage")
    public static boolean simulateDamage = true;

    @ConfigInfo(name = "simulate_knockback")
    public static boolean simulateKnockback = true;

    @ConfigInfo(name = "simulate_sound")
    public static boolean simulateSound = true;
}
