@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 1.99 kB
JavaScript
import*as i18n from"../../core/i18n/i18n.js";import*as SDK from"../../core/sdk/sdk.js";import{throttlingManager}from"./ThrottlingManager.js";import{ThrottlingPresets}from"./ThrottlingPresets.js";const UIStrings={disabled:"Disabled",presets:"Presets",advanced:"Advanced"},str_=i18n.i18n.registerUIStrings("panels/mobile_throttling/MobileThrottlingSelector.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class MobileThrottlingSelector{populateCallback;selectCallback;options;constructor(t,e){this.populateCallback=t,this.selectCallback=e,SDK.CPUThrottlingManager.CPUThrottlingManager.instance().addEventListener(SDK.CPUThrottlingManager.Events.RateChanged,this.conditionsChanged,this),SDK.NetworkManager.MultitargetNetworkManager.instance().addEventListener(SDK.NetworkManager.MultitargetNetworkManager.Events.ConditionsChanged,this.conditionsChanged,this),this.options=this.populateOptions(),this.conditionsChanged()}optionSelected(t){SDK.NetworkManager.MultitargetNetworkManager.instance().setNetworkConditions(t.network),throttlingManager().setCPUThrottlingRate(t.cpuThrottlingRate)}populateOptions(){const t={title:i18nString(UIStrings.disabled),items:[ThrottlingPresets.getNoThrottlingConditions()]},e={title:i18nString(UIStrings.presets),items:ThrottlingPresets.getMobilePresets()},n={title:i18nString(UIStrings.advanced),items:ThrottlingPresets.getAdvancedMobilePresets()};return this.populateCallback([t,e,n])}conditionsChanged(){const t=SDK.NetworkManager.MultitargetNetworkManager.instance().networkConditions(),e=SDK.CPUThrottlingManager.CPUThrottlingManager.instance().cpuThrottlingRate();for(let n=0;n<this.options.length;++n){const i=this.options[n];if(i&&"network"in i&&i.network===t&&i.cpuThrottlingRate===e)return void this.selectCallback(n)}const n=ThrottlingPresets.getCustomConditions();for(let t=0;t<this.options.length;++t){const e=this.options[t];if(e&&e.title===n.title&&e.description===n.description)return void this.selectCallback(t)}}}