1515
1616public class ModLoadingListener {
1717 public enum State {
18- CONSTRUCT ("Construction " ), PRE_INIT ("Pre Initialization " ), INIT ( "Initialization" ), POST_INIT ( "Post Initialization " ), LOAD_COMPLETE (
19- "Completed " ), FINAL_LOADING ( "Reloading Resource Packs" , true );
18+ CONSTRUCT ("construction " ), PRE_INIT ("pre_initialization " ), LITE_LOADER_INIT ( "lite" , true , true ), INIT ( "initialization " ), POST_INIT (
19+ "post_initialization " ), LOAD_COMPLETE ( "completed" ), FINAL_LOADING ( "reloading_resource_packs" , true , false );
2020
21- final String displayName ;
21+ private String translatedName = null ;
22+ final String name ;
2223 /** If this state is only called once. This is false for all except for FINAL_LOADING */
2324 final boolean isLoneState ;
25+ /** If this is true, then ModStage.getNext will skip this, but it will still be included in the percentage
26+ * calculation */
27+ final boolean shouldSkip ;
2428
25- State (String name , boolean mods ) {
26- displayName = name ;
29+ State (String name , boolean mods , boolean skip ) {
2730 isLoneState = mods ;
31+ this .name = name ;
32+ shouldSkip = skip ;
2833 }
2934
3035 State (String name ) {
31- this (name , false );
36+ this (name , false , false );
37+ }
38+
39+ public String translate () {
40+ if (translatedName != null )
41+ return translatedName ;
42+ String failure = name .replaceAll ("\\ _" , " " );
43+ String [] split = failure .split (" " );
44+ failure = "" ;
45+ for (int i = 0 ; i < split .length ; i ++) {
46+ failure += i == 0 ? "" : " " ;
47+ failure += split [i ].substring (0 , 1 ).toUpperCase ().concat (split [i ].substring (1 ));
48+ }
49+ translatedName = Translation .translate ("betterloadingscreen.state." + name , failure );
50+ return translatedName ;
3251 }
3352 }
3453
35- public static class ModStage {
54+ private static class ModStage {
3655 public final State state ;
3756
3857 @ Override
@@ -56,21 +75,24 @@ public ModStage getNext() {
5675 if (ord == State .values ().length )
5776 return null ;
5877 s = State .values ()[ord ];
78+ if (s .shouldSkip )
79+ return new ModStage (s , ind ).getNext ();
5980 }
6081 return new ModStage (s , ind );
6182 }
6283
6384 public String getDisplayText () {
6485 if (state .isLoneState )
65- return state .displayName ;
66- return state .displayName + ": loading " + listeners .get (index ).mod .getName ();
86+ return state .translate ();
87+ return state .translate () + ": " + Translation .translate ("betterloadingscreen.loading" , "loading" ) + " "
88+ + listeners .get (index ).mod .getName ();
6789 }
6890
69- public double getProgress () {
70- double values = 100 / (float ) State .values ().length ;
71- double part = state .ordinal () * values ;
72- double size = listeners .size ();
73- double percent = values * index / size ;
91+ public float getProgress () {
92+ float values = 100 / (float ) State .values ().length ;
93+ float part = state .ordinal () * values ;
94+ float size = listeners .size ();
95+ float percent = values * index / size ;
7496 return part + percent ;
7597 }
7698 }
0 commit comments