@@ -136,7 +136,7 @@ var Ed3d = {
136
136
showGalaxyInfos : false
137
137
} , options ) ;
138
138
139
- $ ( '#loader' ) . show ( ) ;
139
+ Loader . start ( ) ;
140
140
141
141
//-- Set Option
142
142
this . basePath = options . basePath ;
@@ -157,6 +157,7 @@ var Ed3d = {
157
157
158
158
159
159
//-- Load dependencies
160
+ Loader . update ( 'Load core files' ) ;
160
161
161
162
if ( typeof isMinified !== 'undefined' ) return Ed3d . launchMap ( ) ;
162
163
@@ -184,6 +185,7 @@ var Ed3d = {
184
185
185
186
) . done ( function ( ) {
186
187
188
+ Loader . update ( 'Done !' ) ;
187
189
Ed3d . launchMap ( ) ;
188
190
189
191
} ) ;
@@ -196,6 +198,8 @@ var Ed3d = {
196
198
197
199
'rebuild' : function ( options ) {
198
200
201
+ Loader . start ( ) ;
202
+
199
203
// Remove System & HUD filters
200
204
System . remove ( ) ;
201
205
HUD . removeFilters ( ) ;
@@ -206,6 +210,8 @@ var Ed3d = {
206
210
207
211
Action . moveInitalPosition ( ) ;
208
212
213
+ Loader . stop ( ) ;
214
+
209
215
} ,
210
216
211
217
/**
@@ -214,8 +220,11 @@ var Ed3d = {
214
220
215
221
'launchMap' : function ( ) {
216
222
223
+
224
+ Loader . update ( 'Textures' ) ;
217
225
Ed3d . loadTextures ( ) ;
218
226
227
+ Loader . update ( 'Launch scene' ) ;
219
228
Ed3d . initScene ( ) ;
220
229
221
230
// Create grid
@@ -232,9 +241,11 @@ var Ed3d = {
232
241
HUD . create ( "ed3dmap" ) ;
233
242
234
243
// Add galaxy center
244
+ Loader . update ( 'Add Sagittarius A*' ) ;
235
245
Galaxy . addGalaxyCenter ( ) ;
236
246
237
247
// Load systems
248
+ Loader . update ( 'Loading json file' ) ;
238
249
if ( this . jsonPath != null ) Ed3d . loadDatasFromFile ( ) ;
239
250
else if ( this . jsonContainer != null ) Ed3d . loadDatasFromContainer ( ) ;
240
251
@@ -344,7 +355,7 @@ var Ed3d = {
344
355
345
356
'showScene' : function ( ) {
346
357
347
- $ ( '#loader' ) . hide ( ) ;
358
+ Loader . stop ( ) ;
348
359
scene . visible = true ;
349
360
350
361
} ,
@@ -355,6 +366,7 @@ var Ed3d = {
355
366
356
367
'loadDatasFromFile' : function ( ) {
357
368
369
+
358
370
$ . getJSON ( this . jsonPath , function ( data ) {
359
371
360
372
Ed3d . loadDatas ( data ) ;
@@ -363,6 +375,8 @@ var Ed3d = {
363
375
364
376
Ed3d . loadDatasComplete ( ) ;
365
377
378
+ Ed3d . showScene ( ) ;
379
+
366
380
} ) ;
367
381
} ,
368
382
@@ -380,6 +394,8 @@ var Ed3d = {
380
394
381
395
Ed3d . loadDatasComplete ( ) ;
382
396
397
+ Ed3d . showScene ( ) ;
398
+
383
399
} ,
384
400
385
401
'loadDatas' : function ( data ) {
@@ -395,6 +411,7 @@ var Ed3d = {
395
411
396
412
//-- Init Routes
397
413
414
+ Loader . update ( 'Routes...' ) ;
398
415
if ( data . routes != undefined ) {
399
416
$ . each ( data . routes , function ( key , route ) {
400
417
Route . initRoute ( key , route ) ;
@@ -403,6 +420,7 @@ var Ed3d = {
403
420
404
421
//-- Loop into systems
405
422
423
+ Loader . update ( 'Systems...' ) ;
406
424
$ . each ( list , function ( key , val ) {
407
425
408
426
system = System . create ( val ) ;
@@ -498,6 +516,11 @@ var Ed3d = {
498
516
499
517
function animate ( time ) {
500
518
519
+ if ( scene . visible == false ) {
520
+ requestAnimationFrame ( animate ) ;
521
+ return ;
522
+ }
523
+
501
524
refreshWithCamPos ( ) ;
502
525
//controls.noRotate().set(false);
503
526
//controls.noPan().set(false);
@@ -736,3 +759,58 @@ function refreshWithCamPos() {
736
759
camSave . z = Math . round ( camera . position . z / p ) * p ;
737
760
738
761
}
762
+
763
+
764
+ var Loader = {
765
+
766
+ /**
767
+ * Start loader
768
+ */
769
+
770
+ 'start' : function ( ) {
771
+
772
+ $ ( '#loader' ) . remove ( ) ;
773
+ $ ( '<div></div>' )
774
+ . attr ( 'id' , 'loader' )
775
+ . html ( Loader . svgAnim )
776
+ . css ( 'color' , 'rgb(200, 110, 37)' )
777
+ . css ( 'font-size' , '1.5rem' )
778
+ . css ( 'font-family' , 'Helvetica' )
779
+ . css ( 'font-variant' , 'small-caps' )
780
+ . appendTo ( 'body' ) ;
781
+
782
+
783
+ clearInterval ( this . animCount ) ;
784
+ this . animCount = setInterval ( function ( ) {
785
+ var animProgress = $ ( '#loader #loadTimer' ) ;
786
+ animProgress . append ( '.' ) ;
787
+ if ( animProgress . html ( ) . length > 10 ) animProgress . html ( '.' ) ;
788
+ } , 1000 ) ;
789
+
790
+ } ,
791
+
792
+ /**
793
+ * Refresh infos for current loading step
794
+ */
795
+
796
+ 'update' : function ( info ) {
797
+
798
+ $ ( '#loader #loadInfos' ) . html ( info ) ;
799
+
800
+ } ,
801
+
802
+ /**
803
+ * Stop loader
804
+ */
805
+
806
+ 'stop' : function ( ) {
807
+
808
+ $ ( '#loader' ) . remove ( ) ;
809
+ clearInterval ( this . animCount ) ;
810
+
811
+ } ,
812
+
813
+ 'animCount' : null ,
814
+ 'svgAnim' : '<div id="loadInfos"></div><div id="loadTimer">.</div><svg width="100" height="100" viewbox="0 0 40 40"><path d="m5,8l5,8l5,-8z" class="l1 d1" /><path d="m5,8l5,-8l5,8z" class="l1 d2" /><path d="m10,0l5,8l5,-8z" class="l1 d3" /><path d="m15,8l5,-8l5,8z" class="l1 d4" /><path d="m20,0l5,8l5,-8z" class="l1 d5" /><path d="m25,8l5,-8l5,8z" class="l1 d6" /><path d="m25,8l5,8l5,-8z" class="l1 d7" /><path d="m30,16l5,-8l5,8z" class="l1 d8" /><path d="m30,16l5,8l5,-8z" class="l1 d9" /><path d="m25,24l5,-8l5,8z" class="l1 d10" /><path d="m25,24l5,8l5,-8z" class="l1 d11" /><path d="m20,32l5,-8l5,8z" class="l1 d13" /><path d="m15,24l5,8l5,-8z" class="l1 d14" /><path d="m10,32l5,-8l5,8z" class="l1 d15" /><path d="m5,24l5,8l5,-8z" class="l1 d16" /><path d="m5,24l5,-8l5,8z" class="l1 d17" /><path d="m0,16l5,8l5,-8z" class="l1 d18" /><path d="m0,16l5,-8l5,8z" class="l1 d19" /><path d="m10,16l5,-8l5,8z" class="l2 d0" /><path d="m15,8l5,8l5,-8z" class="l2 d3" /><path d="m20,16l5,-8l5,8z" class="l2 d6" /><path d="m20,16l5,8l5,-8z" class="l2 d9" /><path d="m15,24l5,-8l5,8z" class="l2 d12" /><path d="m10,16l5,8l5,-8z" class="l2 d15" /></svg>'
815
+
816
+ }
0 commit comments