Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
FogNetwork
GitHub Repository: FogNetwork/Tsunami
Path: blob/main/public/games/files/garbage-collector/js/config/settings.js
1036 views
1
/*globals define*/
2
define([
3
'utils'
4
], function( Utils ) {
5
'use strict';
6
7
// Settings singleton data.
8
var settings;
9
10
// Quality levels.
11
var lowSettings = {
12
background: false,
13
explosions: false,
14
glow: false,
15
gradients: false,
16
trail: false
17
};
18
19
var highSettings = {
20
background: true,
21
explosions: true,
22
glow: true,
23
gradients: true,
24
trail: true
25
};
26
27
// Basic setter functions for each quality level.
28
var settingsFn = function( quality ) {
29
return function() {
30
settings = Utils.defaults( {}, quality );
31
};
32
};
33
34
var low = settingsFn( lowSettings ),
35
high = settingsFn( highSettings );
36
37
// Set default to high.
38
high();
39
40
// Settings singleton, with quality setters.
41
var Settings = {
42
low: low,
43
high: high
44
};
45
46
// Define a getter function for each property.
47
var properties = Object.keys( settings ).reduce(function( object, key ) {
48
object[ key ] = {
49
get: function() {
50
return settings[ key ];
51
},
52
53
set: function( value ) {
54
settings[ key ] = value;
55
}
56
};
57
58
return object;
59
}, {} );
60
61
Object.defineProperties( Settings, properties );
62
63
Object.defineProperty( Settings, 'keys', {
64
get: function() {
65
return Object.keys( settings );
66
}
67
});
68
69
return Settings;
70
});
71
72