@@ -7,7 +7,7 @@ window.onload = function () {
77 if ( tags [ 0 ] [ 'name' ] > version )
88 Log ( "New release available: " + tags [ 0 ] [ 'name' ] ) ;
99 }
10-
10+ var gui ;
1111 var options = {
1212 ui_rain_matrixSpeed : 24 ,
1313 fpsInterval : calculateFpsInterval ( 24 ) ,
@@ -29,7 +29,23 @@ window.onload = function () {
2929 ui_audio_audioResponsive : false ,
3030 ui_audio_audioSensetivity : 50 ,
3131 ui_audio_silenceAnimation : true ,
32- ui_audio_silenceTimeoutSeconds : 3
32+ ui_audio_silenceTimeoutSeconds : 3 ,
33+ Save ( ) {
34+ window . localStorage . setItem ( "preset" , JSON . stringify ( gui . save ( ) ) ) ;
35+ Log ( "Saved preset." ) ;
36+ } ,
37+ Load ( ) {
38+ let preset = JSON . parse ( window . localStorage . getItem ( "preset" ) ) ;
39+ if ( preset ) {
40+ gui . load ( preset ) ;
41+ Log ( "Loaded preset." ) ;
42+ } else
43+ Log ( "No preset found." ) ;
44+ } ,
45+ Reset ( ) {
46+ gui . reset ( ) ;
47+ Log ( "Settings reset to default." ) ;
48+ }
3349 }
3450
3551 if ( window . wallpaperRegisterAudioListener )
@@ -40,8 +56,8 @@ window.onload = function () {
4056 drawGui ( ) ;
4157
4258 function drawGui ( ) {
43- gui = new lil . GUI ( { autoPlace : false } ) ;
44-
59+ gui = new lil . GUI ( { autoPlace : false , width : 400 } ) ;
60+
4561 const rainFolder = gui . addFolder ( 'Rain' ) ;
4662 rainFolder . add ( options , 'ui_rain_matrixSpeed' ) . min ( 1 ) . max ( 60 ) . step ( 1 ) . name ( 'Matrix Speed' ) . onChange ( ( ) => {
4763 options . fpsInterval = calculateFpsInterval ( options . ui_rain_matrixSpeed ) ;
@@ -78,6 +94,10 @@ window.onload = function () {
7894 fallAnimation ( ) ;
7995 } ) ;
8096
97+ gui . add ( options , "Save" ) ;
98+ gui . add ( options , "Load" ) ;
99+ gui . add ( options , "Reset" ) ;
100+
81101 customContainer = document . getElementById ( 'gui' ) ;
82102 customContainer . appendChild ( gui . domElement ) ;
83103 }
@@ -154,6 +174,8 @@ window.onload = function () {
154174 updateMask ( ) ;
155175 updateCharSet ( ) ;
156176 updateFont ( ) ;
177+ if ( gui )
178+ options . Load ( ) ;
157179 startAnimating ( ) ;
158180
159181 function updateCanvasSize ( ) {
@@ -390,17 +412,15 @@ window.onload = function () {
390412 return map ( value , - 1 , 1 , 0.05 , - 0.05 ) ;
391413 }
392414
393- function makeCodes ( codesText ) {
415+ function makeCodes ( codesText ) {
394416 var codes = codesText . split ( "," )
395417 codes . push ( "IP.AF" ) ;
396418 return codes ;
397419 }
398420
399421 function Log ( text ) {
400- if ( logs . length > 0 )
401- if ( logs [ logs . length - 1 ] == text )
402- return ;
403422 debug . classList . remove ( "hide" ) ;
423+ void debug . offsetWidth ;
404424 logs . push ( text ) ;
405425 if ( logs . length > 10 )
406426 logs . splice ( 0 , 1 ) ;
0 commit comments