diff options
author | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2021-12-24 01:23:11 +0800 |
---|---|---|
committer | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2021-12-24 01:23:11 +0800 |
commit | a9b64d621f31d7b3f92c27115c2bb50139788e15 (patch) | |
tree | 0e3fb96cf11d18b8f31c02a6af446b59e9dd6bc3 /features/settings/settingThings | |
parent | af90f8e220733b26098d3c4f4758bccf9f08908c (diff) | |
download | SoopyV2-a9b64d621f31d7b3f92c27115c2bb50139788e15.tar.gz SoopyV2-a9b64d621f31d7b3f92c27115c2bb50139788e15.tar.bz2 SoopyV2-a9b64d621f31d7b3f92c27115c2bb50139788e15.zip |
make ingame toggle for cosmetics
Diffstat (limited to 'features/settings/settingThings')
-rw-r--r-- | features/settings/settingThings/FakeRequireToggle.js | 27 | ||||
-rw-r--r-- | features/settings/settingThings/settingBase.js | 12 |
2 files changed, 39 insertions, 0 deletions
diff --git a/features/settings/settingThings/FakeRequireToggle.js b/features/settings/settingThings/FakeRequireToggle.js new file mode 100644 index 0000000..41932f3 --- /dev/null +++ b/features/settings/settingThings/FakeRequireToggle.js @@ -0,0 +1,27 @@ + +class FakeRequireToggle{ + constructor(val){ + this.val = val + + this.thisToggleEvents = [] + + this.toggleObject = { + addEvent: (event)=>{ + this.thisToggleEvents.push(event) + } + } + } + + set(newVal){ + if(this.val === newVal) return + this.val = newVal + + this.thisToggleEvents.forEach(e=>e._trigger(this, [this.val])) + } + + getValue(){ + return this.val + } +} + +export default FakeRequireToggle
\ No newline at end of file diff --git a/features/settings/settingThings/settingBase.js b/features/settings/settingThings/settingBase.js index a0d3bc7..02cfd9f 100644 --- a/features/settings/settingThings/settingBase.js +++ b/features/settings/settingThings/settingBase.js @@ -40,6 +40,10 @@ class SettingBase { this.temp_val = temp_val_temp this.requiresO = undefined + + this.onchangethings = [] + + this.initTime = Date.now() } getValue(){ @@ -47,6 +51,7 @@ class SettingBase { } setValue(val){ + if(this.val === val) return this.val = val; if(!this.requiresO || this.requiresO.getValue()){ @@ -63,6 +68,8 @@ class SettingBase { this.module.FeatureManager.featureSettingsDataLastUpdated = true } + + if(this.onchangethings && Date.now()-this.initTime > 1000) this.onchangethings.forEach(([fun, context])=>{fun.call(context)}) } getName(){ @@ -102,6 +109,11 @@ class SettingBase { delete(){ settingsCommunicator.removeSetting(this.module, this.settingId) } + + onchange(context, fun){ + this.onchangethings.push([fun, context]) + return this + } } export default SettingBase
\ No newline at end of file |