import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs"; import { __ID__ } from "../consts.mjs"; import { Logger } from "../utils/Logger.mjs"; import { preventTweakRegistration } from "../utils/preRegisterTweak.mjs"; export const key = `preventTokenRotation`; export function preventTokenRotation() { status[key] = SettingStatusEnum.Unknown; if (preventTweakRegistration(key)) { return }; /** @type {number|null} */ let hookID = null; // #region Registration Logger.log(`Registering setting: ${key}`); game.settings.register(__ID__, key, { name: `OFT.setting.${key}.name`, hint: `OFT.setting.${key}.hint`, scope: `world`, type: Boolean, default: true, config: true, requiresReload: false, onChange: (newValue) => { if (newValue) { hookID = Hooks.on(`preMoveToken`, preMoveTokenHandler); } else if (hookID != null) { Hooks.off(`preMoveToken`, hookID); }; }, }); // #endregion Registration // #region Implementation if (game.settings.get(__ID__, key)) { hookID = Hooks.on(`preMoveToken`, preMoveTokenHandler); }; // #endregion Implementation status[key] = SettingStatusEnum.Registered; }; // #region Helpers function preMoveTokenHandler(_token, update) { update.autoRotate = false; }; // #endregion Helpers