aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/GT_Mod.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/GT_Mod.java')
-rw-r--r--src/main/java/gregtech/GT_Mod.java48
1 files changed, 35 insertions, 13 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 156825c11c..de199ac057 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -12,6 +12,7 @@ import gregtech.api.enums.*;
import gregtech.api.interfaces.internal.IGT_Mod;
import gregtech.api.objects.ItemData;
import gregtech.api.objects.XSTR;
+import gregtech.api.threads.GT_Runnable_MachineBlockUpdate;
import gregtech.api.util.*;
import gregtech.common.GT_DummyWorld;
import gregtech.common.GT_Network;
@@ -59,6 +60,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.*;
+import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -766,6 +768,7 @@ public class GT_Mod implements IGT_Mod {
new GT_Worldgenloader().run();
new GT_CoverLoader().run();
new GT_AE2EnergyTunnelLoader().run();
+
LoadArmorComponents.init();
GT_RecipeRegistrator.registerUsagesForMaterials(null, false, new ItemStack(Blocks.planks, 1), new ItemStack(Blocks.cobblestone, 1), new ItemStack(Blocks.stone, 1), new ItemStack(Items.leather, 1));
@@ -797,17 +800,19 @@ public class GT_Mod implements IGT_Mod {
GT_FML_LOGGER.info("Replacing Vanilla Materials in recipes, please wait.");
ProgressManager.ProgressBar progressBar = ProgressManager.push("Register materials", replaceVanillaItemsSet.size());
- for (Materials m : replaceVanillaItemsSet) {
- progressBar.step(m.mDefaultLocalName);
- //GT_FML_LOGGER.info("Replacing Vanilla Recipes for: " + m.mDefaultLocalName);
- String platename = OrePrefixes.plate.get(m).toString();
- boolean noSmash = !m.contains(SubTag.NO_SMASHING);
- if ((m.mTypes & 2) != 0)
- GT_RecipeRegistrator.registerUsagesForMaterials(platename, noSmash, m.getIngots(1));
- if ((m.mTypes & 4) != 0)
- GT_RecipeRegistrator.registerUsagesForMaterials(platename, noSmash, m.getGems(1));
- if (m.getBlocks(1) != null)
- GT_RecipeRegistrator.registerUsagesForMaterials(null, noSmash, m.getBlocks(1));
+ if (GT_Values.cls_enabled){
+ try {
+ GT_CLS_Compat.doActualRegistrationCLS(progressBar,replaceVanillaItemsSet);
+ GT_CLS_Compat.pushToDisplayProgress();
+ } catch (InvocationTargetException | IllegalAccessException e) {
+ GT_Mod.GT_FML_LOGGER.catching(e);
+ }
+ }
+ else {
+ replaceVanillaItemsSet.forEach(m -> {
+ progressBar.step(m.mDefaultLocalName);
+ doActualRegistration(m);
+ });
}
ProgressManager.pop(progressBar);
GT_FML_LOGGER.info("Congratulations, you have been waiting long enough (" + (System.currentTimeMillis() - ms) / 1000 + "s / " + (System.currentTimeMillis() - ms) + "ms). Have a Cake.");
@@ -970,7 +975,7 @@ public class GT_Mod implements IGT_Mod {
}
}
}
- Materials.getMaterialsMap().values().parallelStream().forEach(tMaterial -> {
+ Materials.getMaterialsMap().values().stream().forEach(tMaterial -> {
if ((tMaterial.mElement != null) && (!tMaterial.mElement.mIsIsotope) && (tMaterial != Materials.Magic) && (tMaterial.getMass() > 0L)) {
ItemStack tOutput = ItemList.Tool_DataOrb.get(1L);
Behaviour_DataOrb.setDataTitle(tOutput, "Elemental-Scan");
@@ -1007,6 +1012,9 @@ public class GT_Mod implements IGT_Mod {
}
}
+ if (Loader.isModLoaded("bartworks"))
+ GT_BW_VoidminerLoader.initDeepDark();
+
addSolidFakeLargeBoilerFuels();
achievements = new GT_Achievements();
@@ -1053,6 +1061,17 @@ public class GT_Mod implements IGT_Mod {
};
}
+ public static void doActualRegistration(Materials m){
+ String platename = OrePrefixes.plate.get(m).toString();
+ boolean noSmash = !m.contains(SubTag.NO_SMASHING);
+ if ((m.mTypes & 2) != 0)
+ GT_RecipeRegistrator.registerUsagesForMaterials(platename, noSmash, m.getIngots(1));
+ if ((m.mTypes & 4) != 0)
+ GT_RecipeRegistrator.registerUsagesForMaterials(platename, noSmash, m.getGems(1));
+ if (m.getBlocks(1) != null)
+ GT_RecipeRegistrator.registerUsagesForMaterials(null, noSmash, m.getBlocks(1));
+ }
+
@Mod.EventHandler
public void onServerStarted(FMLServerStartedEvent aEvent) {
gregtechproxy.onServerStarted();
@@ -1183,6 +1202,8 @@ public class GT_Mod implements IGT_Mod {
}
aEvent.registerServerCommand(new GT_Command());
+ //Sets a new Machine Block Update Thread everytime a world is loaded
+ GT_Runnable_MachineBlockUpdate.initExecutorService();
}
public boolean isServerSide() {
@@ -1225,7 +1246,6 @@ public class GT_Mod implements IGT_Mod {
@Mod.EventHandler
public void onServerStopping(FMLServerStoppingEvent aEvent) {
-
for (Runnable tRunnable : GregTech_API.sBeforeGTServerstop) {
try {
tRunnable.run();
@@ -1308,6 +1328,8 @@ public class GT_Mod implements IGT_Mod {
e.printStackTrace(GT_Log.err);
}
}
+ //Interrupt IDLE Threads to close down cleanly
+ GT_Runnable_MachineBlockUpdate.shutdownExecutorService();
}
private void addSolidFakeLargeBoilerFuels() {