export default function() { game.settings.register(`dotdungeon`, `playersCanChangeGroup`, { name: `dotdungeon.settings.playersCanChangeGroup.name`, hint: `dotdungeon.settings.playersCanChangeGroup.description`, scope: `world`, config: true, type: Boolean, default: false, requiresReload: false, }); game.settings.register(`dotdungeon`, `resourcesOrSupplies`, { name: `dotdungeon.settings.resourcesOrSupplies.name`, hint: `dotdungeon.settings.resourcesOrSupplies.description`, scope: `world`, config: true, type: String, choices: { "supplies": "dotdungeon.settings.resourcesOrSupplies.option.supplies", "resources": "dotdungeon.settings.resourcesOrSupplies.option.resources" }, default: "supplies", requiresReload: false, }); /* These two settings are used in coordination in order to prevent the Aspect Limit from being set to a value that just absolutely stupid (i.e. negative values, non-integer values). The preSaveAspectLimit is the one that's actually displayed in the settings dialogue, while the aspectLimit is the one that's used by all of the code. */ game.settings.register(`dotdungeon`, `aspectLimit`, { scope: `world`, default: 1, type: Number, }); game.settings.register(`dotdungeon`, `preSaveAspectLimit`, { name: `dotdungeon.settings.aspectLimit.name`, hint: `dotdungeon.settings.aspectLimit.description`, scope: `world`, config: true, default: 1, type: Number, onChange(value) { const current = game.settings.get(`dotdungeon`, `aspectLimit`); if (current == value) return; if (value < 0) { ui.notifications.warn( `dotdungeon.notification.warn.negative-aspect-limit`, { localize: true, console: false } ); game.settings.set(`dotdungeon`, `preSaveAspectLimit`, current); return; }; let floored = Math.floor(value); game.settings.set(`dotdungeon`, `aspectLimit`, floored); game.settings.set(`dotdungeon`, `preSaveAspectLimit`, floored); }, }); };