diff --git a/dist/better-xcloud.lite.user.js b/dist/better-xcloud.lite.user.js index 4d64d78..4d72434 100755 --- a/dist/better-xcloud.lite.user.js +++ b/dist/better-xcloud.lite.user.js @@ -1246,6 +1246,15 @@ class MkbMappingPresetsTable extends BasePresetsTable { } } }; + BLANK_PRESET_DATA = { + mapping: {}, + mouse: { + mapTo: 2, + sensitivityX: 100, + sensitivityY: 100, + deadzoneCounterweight: 20 + } + }; DEFAULT_PRESET_ID = -1; constructor() { super(LocalDb.TABLE_VIRTUAL_CONTROLLERS); @@ -1273,6 +1282,9 @@ class KeyboardShortcutsTable extends BasePresetsTable { } } }; + BLANK_PRESET_DATA = { + mapping: {} + }; DEFAULT_PRESET_ID = -1; constructor() { super(LocalDb.TABLE_KEYBOARD_SHORTCUTS); @@ -2617,6 +2629,9 @@ class ControllerShortcutsTable extends BasePresetsTable { } } }; + BLANK_PRESET_DATA = { + mapping: {} + }; DEFAULT_PRESET_ID = -1; constructor() { super(LocalDb.TABLE_CONTROLLER_SHORTCUTS); @@ -2648,6 +2663,16 @@ class ControllerCustomizationsTable extends BasePresetsTable { } } }; + BLANK_PRESET_DATA = { + mapping: {}, + settings: { + leftTriggerRange: [0, 100], + rightTriggerRange: [0, 100], + leftStickDeadzone: [0, 100], + rightStickDeadzone: [0, 100], + vibrationIntensity: 100 + } + }; DEFAULT_PRESET_ID = 0; } class ControllerSettingsTable extends BaseLocalTable { diff --git a/dist/better-xcloud.user.js b/dist/better-xcloud.user.js index 6bed4b9..ec29af6 100755 --- a/dist/better-xcloud.user.js +++ b/dist/better-xcloud.user.js @@ -1318,6 +1318,15 @@ class MkbMappingPresetsTable extends BasePresetsTable { } } }; + BLANK_PRESET_DATA = { + mapping: {}, + mouse: { + mapTo: 2, + sensitivityX: 100, + sensitivityY: 100, + deadzoneCounterweight: 20 + } + }; DEFAULT_PRESET_ID = -1; constructor() { super(LocalDb.TABLE_VIRTUAL_CONTROLLERS); @@ -1345,6 +1354,9 @@ class KeyboardShortcutsTable extends BasePresetsTable { } } }; + BLANK_PRESET_DATA = { + mapping: {} + }; DEFAULT_PRESET_ID = -1; constructor() { super(LocalDb.TABLE_KEYBOARD_SHORTCUTS); @@ -2727,6 +2739,9 @@ class ControllerShortcutsTable extends BasePresetsTable { } } }; + BLANK_PRESET_DATA = { + mapping: {} + }; DEFAULT_PRESET_ID = -1; constructor() { super(LocalDb.TABLE_CONTROLLER_SHORTCUTS); @@ -2758,6 +2773,16 @@ class ControllerCustomizationsTable extends BasePresetsTable { } } }; + BLANK_PRESET_DATA = { + mapping: {}, + settings: { + leftTriggerRange: [0, 100], + rightTriggerRange: [0, 100], + leftStickDeadzone: [0, 100], + rightStickDeadzone: [0, 100], + vibrationIntensity: 100 + } + }; DEFAULT_PRESET_ID = 0; } class ControllerSettingsTable extends BaseLocalTable { @@ -5134,7 +5159,7 @@ class BaseProfileManagerDialog extends NavigationDialog { onClick: async (e) => { let newName = this.promptNewName(t("new")); if (!newName) return; - let newId = await this.presetsDb.newPreset(newName, this.BLANK_PRESET_DATA); + let newId = await this.presetsDb.newPreset(newName, this.presetsDb.BLANK_PRESET_DATA); this.currentPresetId = newId, await this.refresh(); } }), createButton({ @@ -5219,9 +5244,6 @@ class ControllerShortcutsManagerDialog extends BaseProfileManagerDialog { static getInstance = () => ControllerShortcutsManagerDialog.instance ?? (ControllerShortcutsManagerDialog.instance = new ControllerShortcutsManagerDialog(t("controller-shortcuts"))); $content; selectActions = {}; - BLANK_PRESET_DATA = { - mapping: {} - }; BUTTONS_ORDER = [ 3, 0, @@ -5295,7 +5317,7 @@ class ControllerShortcutsManagerDialog extends BaseProfileManagerDialog { super.updateButtonStates(); } updatePreset() { - let newData = deepClone(this.BLANK_PRESET_DATA), button; + let newData = deepClone(this.presetsDb.BLANK_PRESET_DATA), button; for (button in this.selectActions) { let action = this.selectActions[button].value; if (!action) continue; @@ -5402,16 +5424,6 @@ class ControllerCustomizationsManagerDialog extends BaseProfileManagerDialog { $leftStickDeadzone; $rightStickDeadzone; $btnDetect; - BLANK_PRESET_DATA = { - mapping: {}, - settings: { - leftTriggerRange: [0, 100], - rightTriggerRange: [0, 100], - leftStickDeadzone: [0, 100], - rightStickDeadzone: [0, 100], - vibrationIntensity: 100 - } - }; selectsMap = {}; selectsOrder = []; isDetectingButton = !1; @@ -5480,7 +5492,7 @@ class ControllerCustomizationsManagerDialog extends BaseProfileManagerDialog { }); } } - let params = { + let blankSettings = this.presetsDb.BLANK_PRESET_DATA.settings, params = { min: 0, minDiff: 1, max: 100, @@ -5500,7 +5512,7 @@ class ControllerCustomizationsManagerDialog extends BaseProfileManagerDialog { customTextValue: (value) => { return value = parseInt(value), value === 0 ? t("off") : value + "%"; } - }, boundUpdatePreset)), createSettingRow(t("left-trigger-range"), this.$leftTriggerRange = BxDualNumberStepper.create("left-trigger-range", this.BLANK_PRESET_DATA.settings.leftTriggerRange, params, boundUpdatePreset)), createSettingRow(t("right-trigger-range"), this.$rightTriggerRange = BxDualNumberStepper.create("right-trigger-range", this.BLANK_PRESET_DATA.settings.rightTriggerRange, params, boundUpdatePreset)), createSettingRow(t("left-stick-deadzone"), this.$leftStickDeadzone = BxDualNumberStepper.create("left-stick-deadzone", this.BLANK_PRESET_DATA.settings.leftStickDeadzone, params, boundUpdatePreset)), createSettingRow(t("right-stick-deadzone"), this.$rightStickDeadzone = BxDualNumberStepper.create("right-stick-deadzone", this.BLANK_PRESET_DATA.settings.rightStickDeadzone, params, boundUpdatePreset))); + }, boundUpdatePreset)), createSettingRow(t("left-trigger-range"), this.$leftTriggerRange = BxDualNumberStepper.create("left-trigger-range", blankSettings.leftTriggerRange, params, boundUpdatePreset)), createSettingRow(t("right-trigger-range"), this.$rightTriggerRange = BxDualNumberStepper.create("right-trigger-range", blankSettings.rightTriggerRange, params, boundUpdatePreset)), createSettingRow(t("left-stick-deadzone"), this.$leftStickDeadzone = BxDualNumberStepper.create("left-stick-deadzone", blankSettings.leftStickDeadzone, params, boundUpdatePreset)), createSettingRow(t("right-stick-deadzone"), this.$rightStickDeadzone = BxDualNumberStepper.create("right-stick-deadzone", blankSettings.rightStickDeadzone, params, boundUpdatePreset))); } startDetectingButton() { this.isDetectingButton = !0; @@ -5566,10 +5578,10 @@ class ControllerCustomizationsManagerDialog extends BaseProfileManagerDialog { manualTrigger: !0 }); } - presetData.settings = Object.assign({}, this.BLANK_PRESET_DATA.settings, presetData.settings), $vibrationIntensity.value = presetData.settings.vibrationIntensity.toString(), $vibrationIntensity.dataset.disabled = isDefaultPreset.toString(), $leftStickDeadzone.dataset.disabled = $rightStickDeadzone.dataset.disabled = $leftTriggerRange.dataset.disabled = $rightTriggerRange.dataset.disabled = isDefaultPreset.toString(), $leftStickDeadzone.setValue(presetData.settings.leftStickDeadzone), $rightStickDeadzone.setValue(presetData.settings.rightStickDeadzone), $leftTriggerRange.setValue(presetData.settings.leftTriggerRange), $rightTriggerRange.setValue(presetData.settings.rightTriggerRange); + presetData.settings = Object.assign({}, this.presetsDb.BLANK_PRESET_DATA.settings, presetData.settings), $vibrationIntensity.value = presetData.settings.vibrationIntensity.toString(), $vibrationIntensity.dataset.disabled = isDefaultPreset.toString(), $leftStickDeadzone.dataset.disabled = $rightStickDeadzone.dataset.disabled = $leftTriggerRange.dataset.disabled = $rightTriggerRange.dataset.disabled = isDefaultPreset.toString(), $leftStickDeadzone.setValue(presetData.settings.leftStickDeadzone), $rightStickDeadzone.setValue(presetData.settings.rightStickDeadzone), $leftTriggerRange.setValue(presetData.settings.leftTriggerRange), $rightTriggerRange.setValue(presetData.settings.rightTriggerRange); } updatePreset() { - let newData = deepClone(this.BLANK_PRESET_DATA), gamepadKey; + let newData = deepClone(this.presetsDb.BLANK_PRESET_DATA), gamepadKey; for (gamepadKey in this.selectsMap) { let value = this.selectsMap[gamepadKey].value; if (!value) continue; @@ -6016,15 +6028,6 @@ class MkbMappingManagerDialog extends BaseProfileManagerDialog { 202, 203 ]; - BLANK_PRESET_DATA = { - mapping: {}, - mouse: { - mapTo: 2, - sensitivityX: 100, - sensitivityY: 100, - deadzoneCounterweight: 20 - } - }; allKeyElements = []; $mouseMapTo; $mouseSensitivityX; @@ -6105,7 +6108,7 @@ class MkbMappingManagerDialog extends BaseProfileManagerDialog { this.$mouseMapTo.value = mouse.mapTo.toString(), this.$mouseSensitivityX.value = mouse.sensitivityX.toString(), this.$mouseSensitivityY.value = mouse.sensitivityY.toString(), this.$mouseDeadzone.value = mouse.deadzoneCounterweight.toString(), this.$mouseMapTo.disabled = isDefaultPreset, this.$mouseSensitivityX.dataset.disabled = isDefaultPreset.toString(), this.$mouseSensitivityY.dataset.disabled = isDefaultPreset.toString(), this.$mouseDeadzone.dataset.disabled = isDefaultPreset.toString(); } savePreset() { - let presetData = deepClone(this.BLANK_PRESET_DATA); + let presetData = deepClone(this.presetsDb.BLANK_PRESET_DATA); for (let $elm of this.allKeyElements) { let { buttonIndex, keySlot } = this.parseDataset($elm), mapping = presetData.mapping; if (!mapping[buttonIndex]) mapping[buttonIndex] = []; @@ -6131,9 +6134,6 @@ class KeyboardShortcutsManagerDialog extends BaseProfileManagerDialog { $content; $unbindNote; allKeyElements = []; - BLANK_PRESET_DATA = { - mapping: {} - }; constructor(title) { super(title, KeyboardShortcutsTable.getInstance()); let $rows = CE("div", { class: "bx-keyboard-shortcuts-manager-container" }); @@ -6189,7 +6189,7 @@ class KeyboardShortcutsManagerDialog extends BaseProfileManagerDialog { } } savePreset() { - let presetData = deepClone(this.BLANK_PRESET_DATA); + let presetData = deepClone(this.presetsDb.BLANK_PRESET_DATA); for (let $elm of this.allKeyElements) { let { action } = this.parseDataset($elm), mapping = presetData.mapping; if ($elm.keyInfo) mapping[action] = $elm.keyInfo; diff --git a/src/modules/ui/dialog/profile-manger/base-profile-manager-dialog.ts b/src/modules/ui/dialog/profile-manger/base-profile-manager-dialog.ts index 95a36c6..9e07d6f 100755 --- a/src/modules/ui/dialog/profile-manger/base-profile-manager-dialog.ts +++ b/src/modules/ui/dialog/profile-manger/base-profile-manager-dialog.ts @@ -24,8 +24,6 @@ export abstract class BaseProfileManagerDialog extends N private $btnRename!: HTMLButtonElement; private $btnDelete!: HTMLButtonElement; - protected abstract readonly BLANK_PRESET_DATA: T['data']; - constructor(title: string, presetsDb: BasePresetsTable) { super(); @@ -138,7 +136,7 @@ export abstract class BaseProfileManagerDialog extends N } // Create new preset selected name - const newId = await this.presetsDb.newPreset(newName, this.BLANK_PRESET_DATA); + const newId = await this.presetsDb.newPreset(newName, this.presetsDb.BLANK_PRESET_DATA); this.currentPresetId = newId; await this.refresh(); diff --git a/src/modules/ui/dialog/profile-manger/controller-customizations-manager-dialog.ts b/src/modules/ui/dialog/profile-manger/controller-customizations-manager-dialog.ts index 4ca1732..95bd33b 100644 --- a/src/modules/ui/dialog/profile-manger/controller-customizations-manager-dialog.ts +++ b/src/modules/ui/dialog/profile-manger/controller-customizations-manager-dialog.ts @@ -29,18 +29,6 @@ export class ControllerCustomizationsManagerDialog extends BaseProfileManagerDia private $rightStickDeadzone!: BxDualNumberStepper; private $btnDetect!: HTMLButtonElement; - protected readonly BLANK_PRESET_DATA = { - mapping: {}, - settings: { - leftTriggerRange: [0, 100], - rightTriggerRange: [0, 100], - leftStickDeadzone: [0, 100], - rightStickDeadzone: [0, 100], - - vibrationIntensity: 100, - }, - } satisfies ControllerCustomizationPresetData; - private selectsMap: PartialRecord = {}; private selectsOrder: GamepadKey[] = []; @@ -153,6 +141,7 @@ export class ControllerCustomizationsManagerDialog extends BaseProfileManagerDia } } + const blankSettings = this.presetsDb.BLANK_PRESET_DATA.settings; const params: DualNumberStepperParams = { min: 0, minDiff: 1, @@ -189,19 +178,19 @@ export class ControllerCustomizationsManagerDialog extends BaseProfileManagerDia // Range settings createSettingRow(t('left-trigger-range'), - this.$leftTriggerRange = BxDualNumberStepper.create('left-trigger-range', this.BLANK_PRESET_DATA.settings.leftTriggerRange, params, boundUpdatePreset), + this.$leftTriggerRange = BxDualNumberStepper.create('left-trigger-range', blankSettings.leftTriggerRange!, params, boundUpdatePreset), ), createSettingRow(t('right-trigger-range'), - this.$rightTriggerRange = BxDualNumberStepper.create('right-trigger-range', this.BLANK_PRESET_DATA.settings.rightTriggerRange, params, boundUpdatePreset), + this.$rightTriggerRange = BxDualNumberStepper.create('right-trigger-range', blankSettings.rightTriggerRange!, params, boundUpdatePreset), ), createSettingRow(t('left-stick-deadzone'), - this.$leftStickDeadzone = BxDualNumberStepper.create('left-stick-deadzone', this.BLANK_PRESET_DATA.settings.leftStickDeadzone, params, boundUpdatePreset), + this.$leftStickDeadzone = BxDualNumberStepper.create('left-stick-deadzone', blankSettings.leftStickDeadzone!, params, boundUpdatePreset), ), createSettingRow(t('right-stick-deadzone'), - this.$rightStickDeadzone = BxDualNumberStepper.create('right-stick-deadzone', this.BLANK_PRESET_DATA.settings.rightStickDeadzone, params, boundUpdatePreset), + this.$rightStickDeadzone = BxDualNumberStepper.create('right-stick-deadzone', blankSettings.rightStickDeadzone!, params, boundUpdatePreset), ), ); } @@ -323,7 +312,7 @@ export class ControllerCustomizationsManagerDialog extends BaseProfileManagerDia } // Add missing settings - presetData.settings = Object.assign({}, this.BLANK_PRESET_DATA.settings, presetData.settings); + presetData.settings = Object.assign({}, this.presetsDb.BLANK_PRESET_DATA.settings, presetData.settings); // Vibration intensity $vibrationIntensity.value = presetData.settings.vibrationIntensity.toString(); @@ -338,7 +327,7 @@ export class ControllerCustomizationsManagerDialog extends BaseProfileManagerDia } private updatePreset() { - const newData: ControllerCustomizationPresetData = deepClone(this.BLANK_PRESET_DATA); + const newData: ControllerCustomizationPresetData = deepClone(this.presetsDb.BLANK_PRESET_DATA); // Set mappings let gamepadKey: unknown; diff --git a/src/modules/ui/dialog/profile-manger/controller-shortcuts-manager-dialog.ts b/src/modules/ui/dialog/profile-manger/controller-shortcuts-manager-dialog.ts index 0390138..ecc3bcf 100755 --- a/src/modules/ui/dialog/profile-manger/controller-shortcuts-manager-dialog.ts +++ b/src/modules/ui/dialog/profile-manger/controller-shortcuts-manager-dialog.ts @@ -21,10 +21,6 @@ export class ControllerShortcutsManagerDialog extends BaseProfileManagerDialog = {}; - protected readonly BLANK_PRESET_DATA = { - mapping: {}, - }; - private readonly BUTTONS_ORDER = [ GamepadKey.Y, GamepadKey.A, GamepadKey.X, GamepadKey.B, GamepadKey.UP, GamepadKey.DOWN, GamepadKey.LEFT, GamepadKey.RIGHT, @@ -138,7 +134,7 @@ export class ControllerShortcutsManagerDialog extends BaseProfileManagerDialog extends BaseLocal protected abstract TABLE_PRESETS: string; protected abstract DEFAULT_PRESETS: PresetRecords; protected abstract readonly DEFAULT_PRESET_ID: number; + abstract readonly BLANK_PRESET_DATA: T['data']; async newPreset(name: string, data: T['data']) { const newRecord = { name, data } as T; diff --git a/src/utils/local-db/controller-customizations-table.ts b/src/utils/local-db/controller-customizations-table.ts index 3170941..cd48ba8 100644 --- a/src/utils/local-db/controller-customizations-table.ts +++ b/src/utils/local-db/controller-customizations-table.ts @@ -1,4 +1,4 @@ -import type { ControllerCustomizationPresetRecord, PresetRecords } from "@/types/presets"; +import type { ControllerCustomizationPresetData, ControllerCustomizationPresetRecord, PresetRecords } from "@/types/presets"; import { LocalDb } from "./local-db"; import { BasePresetsTable } from "./base-presets-table"; import { GamepadKey } from "@/enums/gamepad"; @@ -40,6 +40,17 @@ export class ControllerCustomizationsTable extends BasePresetsTable { }, }, }; + + readonly BLANK_PRESET_DATA = { + mapping: {}, + mouse: { + [MkbPresetKey.MOUSE_MAP_TO]: MouseMapTo.RS, + [MkbPresetKey.MOUSE_SENSITIVITY_X]: 100, + [MkbPresetKey.MOUSE_SENSITIVITY_Y]: 100, + [MkbPresetKey.MOUSE_DEADZONE_COUNTERWEIGHT]: 20, + }, + }; + protected readonly DEFAULT_PRESET_ID = MkbMappingDefaultPresetId.DEFAULT; private constructor() {