export function registerSystemSettings(): void {
    /**
     * Track the migrations version of the latest migration that has been applied
     */
    game.settings.register("ds4", "systemMigrationVersion", {
        name: "System Migration Version",
        scope: "world",
        config: false,
        type: Number,
        default: -1,
    });

    game.settings.register("ds4", "useSlayingDiceForAutomatedChecks", {
        name: "DS4.SettingUseSlayingDiceForAutomatedChecksName",
        hint: "DS4.SettingUseSlayingDiceForAutomatedChecksHint",
        scope: "world",
        config: true,
        type: Boolean,
        default: false,
    });

    game.settings.register("ds4", "showSlayerPoints", {
        name: "DS4.SettingShowSlayerPointsName",
        hint: "DS4.SettingShowSlayerPointsHint",
        scope: "world",
        config: true,
        type: Boolean,
        default: false,
    });
}

interface DS4Settings {
    systemMigrationVersion: number;
    useSlayingDiceForAutomatedChecks: boolean;
    showSlayerPoints: boolean;
}

export function getDS4Settings(): DS4Settings {
    return {
        systemMigrationVersion: game.settings.get("ds4", "systemMigrationVersion"),
        useSlayingDiceForAutomatedChecks: game.settings.get("ds4", "useSlayingDiceForAutomatedChecks"),
        showSlayerPoints: game.settings.get("ds4", "showSlayerPoints"),
    };
}