aboutsummaryrefslogtreecommitdiff
path: root/features/settings/settingThings
diff options
context:
space:
mode:
authorSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2021-12-24 01:23:11 +0800
committerSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2021-12-24 01:23:11 +0800
commita9b64d621f31d7b3f92c27115c2bb50139788e15 (patch)
tree0e3fb96cf11d18b8f31c02a6af446b59e9dd6bc3 /features/settings/settingThings
parentaf90f8e220733b26098d3c4f4758bccf9f08908c (diff)
downloadSoopyV2-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.js27
-rw-r--r--features/settings/settingThings/settingBase.js12
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