33
33
import net .minecraftforge .common .MinecraftForge ;
34
34
import nova .core .deps .MavenDependency ;
35
35
import nova .core .event .ServerEvent ;
36
- import nova .core .loader .Loadable ;
37
36
import nova .core .wrapper .mc .forge .v17 .NovaMinecraftPreloader ;
38
37
import nova .core .wrapper .mc .forge .v17 .depmodules .ClientModule ;
39
38
import nova .core .wrapper .mc .forge .v17 .depmodules .ComponentModule ;
61
60
import nova .internal .core .launch .InitializationException ;
62
61
import nova .internal .core .launch .NovaLauncher ;
63
62
63
+ import java .util .HashSet ;
64
64
import java .util .List ;
65
65
import java .util .Set ;
66
66
import java .util .stream .Collectors ;
@@ -82,7 +82,12 @@ public class NovaMinecraft {
82
82
public static NovaMinecraft instance ;
83
83
private static NovaLauncher launcher ;
84
84
85
- private static Set <Loadable > nativeConverters ;
85
+ private static Set <ForgeLoadable > nativeConverters ;
86
+ private static Set <ForgeLoadable > novaWrappers = new HashSet <>();
87
+
88
+ public static void registerWrapper (ForgeLoadable wrapper ) {
89
+ novaWrappers .add (wrapper );
90
+ }
86
91
87
92
/**
88
93
* ORDER OF LOADING.
@@ -154,27 +159,25 @@ public void preInit(FMLPreInitializationEvent evt) {
154
159
/**
155
160
* Instantiate native loaders
156
161
*/
157
- nativeConverters = Game .natives ().getNativeConverters ().stream ().filter (n -> n instanceof Loadable ).map (n -> (Loadable ) n ).collect (Collectors .toSet ());
158
- nativeConverters .stream ().forEachOrdered (Loadable ::preInit );
159
-
160
- Game .blocks ().init ();
161
- Game .items ().init ();
162
- Game .entities ().init ();
163
- Game .render ().init ();
164
- Game .language ().init ();
165
-
166
- //Load preInit
167
- progressBar = ProgressManager .push ("Pre-initializing NOVA mods" , modClasses .isEmpty () ? 1 : modClasses .size ());
168
- launcher .preInit (new FMLProgressBar (progressBar ));
169
- ProgressManager .pop (progressBar );
162
+ nativeConverters = Game .natives ().getNativeConverters ().stream ().filter (n -> n instanceof ForgeLoadable ).map (n -> (ForgeLoadable ) n ).collect (Collectors .toSet ());
163
+ nativeConverters .stream ().forEachOrdered (loadable -> loadable .preInit (evt ));
170
164
171
165
// Initiate config system TODO: Storables
172
166
// launcher.getLoadedModMap().forEach((mod, loader) -> {
173
167
// Configuration config = new Configuration(new File(evt.getModConfigurationDirectory(), mod.name()));
174
168
// ConfigManager.instance.sync(config, loader.getClass().getPackage().getName());
175
169
// });
176
170
177
- proxy .preInit ();
171
+ Game .language ().init ();
172
+ Game .render ().init ();
173
+ Game .blocks ().init ();
174
+ Game .items ().init ();
175
+ Game .entities ().init ();
176
+
177
+ //Load preInit
178
+ novaWrappers .stream ().forEachOrdered (wrapper -> wrapper .preInit (evt ));
179
+
180
+ proxy .preInit (evt );
178
181
179
182
/**
180
183
* Register event handlers
@@ -192,11 +195,9 @@ public void preInit(FMLPreInitializationEvent evt) {
192
195
@ Mod .EventHandler
193
196
public void init (FMLInitializationEvent evt ) {
194
197
try {
195
- ProgressManager .ProgressBar progressBar = ProgressManager .push ("Initializing NOVA mods" , NovaMinecraftPreloader .modClasses .isEmpty () ? 1 : NovaMinecraftPreloader .modClasses .size ());
196
- proxy .init ();
197
- nativeConverters .stream ().forEachOrdered (Loadable ::init );
198
- launcher .init (new FMLProgressBar (progressBar ));
199
- ProgressManager .pop (progressBar );
198
+ proxy .init (evt );
199
+ nativeConverters .stream ().forEachOrdered (forgeLoadable -> forgeLoadable .init (evt ));
200
+ novaWrappers .stream ().forEachOrdered (wrapper -> wrapper .init (evt ));
200
201
} catch (Exception e ) {
201
202
System .out .println ("Error during init" );
202
203
e .printStackTrace ();
@@ -207,12 +208,10 @@ public void init(FMLInitializationEvent evt) {
207
208
@ Mod .EventHandler
208
209
public void postInit (FMLPostInitializationEvent evt ) {
209
210
try {
210
- ProgressManager .ProgressBar progressBar = ProgressManager .push ("Post-initializing NOVA mods" , NovaMinecraftPreloader .modClasses .isEmpty () ? 1 : NovaMinecraftPreloader .modClasses .size ());
211
211
Game .recipes ().init ();
212
- proxy .postInit ();
213
- nativeConverters .stream ().forEachOrdered (Loadable ::postInit );
214
- launcher .postInit (new FMLProgressBar (progressBar ));
215
- ProgressManager .pop (progressBar );
212
+ proxy .postInit (evt );
213
+ nativeConverters .stream ().forEachOrdered (forgeLoadable -> forgeLoadable .postInit (evt ));
214
+ novaWrappers .stream ().forEachOrdered (wrapper -> wrapper .postInit (evt ));
216
215
} catch (Exception e ) {
217
216
System .out .println ("Error during postInit" );
218
217
e .printStackTrace ();
0 commit comments