// SPDX-FileCopyrightText: 2021 Johannes Loher
//
// SPDX-License-Identifier: MIT

import { getGame } from "./utils/utils";

export function registerSystemSettings() {
  const game = getGame();

  /**
   * Track the migration 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,
  });
}

/**
 * @typedef DS4Settings
 * @property {number} systemMigrationVersion
 * @property {boolean} useSlayingDiceForAutomatedChecks
 * @property {boolean} showSlayerPoints
 */

/**
 * Get the current values for DS4 settings.
 * @returns {DS4Settings}
 */
export function getDS4Settings() {
  const game = getGame();
  return {
    systemMigrationVersion: game.settings.get("ds4", "systemMigrationVersion"),
    useSlayingDiceForAutomatedChecks: game.settings.get("ds4", "useSlayingDiceForAutomatedChecks"),
    showSlayerPoints: game.settings.get("ds4", "showSlayerPoints"),
  };
}
