aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/GT_Mod.java76
-rw-r--r--src/main/java/gregtech/api/util/GT_OreDictUnificator.java28
-rw-r--r--src/main/java/gregtech/common/GT_RecipeAdder.java8
3 files changed, 34 insertions, 78 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 45a152a98c..1d6b059411 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -1,55 +1,22 @@
package gregtech;
import com.google.common.base.Stopwatch;
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.LoadController;
-import cpw.mods.fml.common.Loader;
-import cpw.mods.fml.common.Mod;
-import cpw.mods.fml.common.ModContainer;
-import cpw.mods.fml.common.ProgressManager;
-import cpw.mods.fml.common.SidedProxy;
-import cpw.mods.fml.common.event.FMLInitializationEvent;
-import cpw.mods.fml.common.event.FMLModIdMappingEvent;
-import cpw.mods.fml.common.event.FMLPostInitializationEvent;
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
-import cpw.mods.fml.common.event.FMLServerAboutToStartEvent;
-import cpw.mods.fml.common.event.FMLServerStartedEvent;
-import cpw.mods.fml.common.event.FMLServerStartingEvent;
-import cpw.mods.fml.common.event.FMLServerStoppingEvent;
+import cpw.mods.fml.common.*;
+import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
import gregtech.api.enchants.Enchantment_EnderDamage;
import gregtech.api.enchants.Enchantment_Radioactivity;
-import gregtech.api.enums.ConfigCategories;
-import gregtech.api.enums.Dyes;
-import gregtech.api.enums.Element;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.enums.SubTag;
-import gregtech.api.enums.Textures;
+import gregtech.api.enums.*;
import gregtech.api.interfaces.internal.IGT_Mod;
import gregtech.api.objects.ItemData;
import gregtech.api.objects.ReverseShapedRecipe;
import gregtech.api.objects.ReverseShapelessRecipe;
import gregtech.api.objects.XSTR;
import gregtech.api.threads.GT_Runnable_MachineBlockUpdate;
-import gregtech.api.util.GT_Assemblyline_Server;
-import gregtech.api.util.GT_CLS_Compat;
-import gregtech.api.util.GT_Config;
-import gregtech.api.util.GT_Forestry_Compat;
-import gregtech.api.util.GT_ItsNotMyFaultException;
-import gregtech.api.util.GT_LanguageManager;
-import gregtech.api.util.GT_Log;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_RecipeRegistrator;
-import gregtech.api.util.GT_SpawnEventHandler;
-import gregtech.api.util.GT_Utility;
+import gregtech.api.util.*;
import gregtech.common.GT_DummyWorld;
import gregtech.common.GT_Network;
import gregtech.common.GT_Proxy;
@@ -69,23 +36,8 @@ import gregtech.loaders.load.GT_SonictronLoader;
import gregtech.loaders.misc.GT_Achievements;
import gregtech.loaders.misc.GT_Bees;
import gregtech.loaders.misc.GT_CoverLoader;
-import gregtech.loaders.postload.GT_BlockResistanceLoader;
-import gregtech.loaders.postload.GT_BookAndLootLoader;
-import gregtech.loaders.postload.GT_CraftingRecipeLoader;
-import gregtech.loaders.postload.GT_CropLoader;
-import gregtech.loaders.postload.GT_ExtremeDieselFuelLoader;
-import gregtech.loaders.postload.GT_ItemMaxStacksizeLoader;
-import gregtech.loaders.postload.GT_MachineRecipeLoader;
-import gregtech.loaders.postload.GT_MinableRegistrator;
-import gregtech.loaders.postload.GT_RecyclerBlacklistLoader;
-import gregtech.loaders.postload.GT_ScrapboxDropLoader;
-import gregtech.loaders.postload.GT_Worldgenloader;
-import gregtech.loaders.preload.GT_Loader_CircuitBehaviors;
-import gregtech.loaders.preload.GT_Loader_ItemData;
-import gregtech.loaders.preload.GT_Loader_Item_Block_And_Fluid;
-import gregtech.loaders.preload.GT_Loader_MetaTileEntities;
-import gregtech.loaders.preload.GT_Loader_OreDictionary;
-import gregtech.loaders.preload.GT_Loader_OreProcessing;
+import gregtech.loaders.postload.*;
+import gregtech.loaders.preload.*;
import ic2.api.recipe.IRecipeInput;
import ic2.api.recipe.RecipeOutput;
import net.minecraft.creativetab.CreativeTabs;
@@ -110,21 +62,9 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.PrintStream;
+import java.io.*;
import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
index f3eb77bc40..be0fe0d8a3 100644
--- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
+++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
@@ -13,10 +13,8 @@ import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.annotation.Nullable;
+import java.util.*;
import java.util.Map.Entry;
import static gregtech.api.enums.GT_Values.*;
@@ -161,7 +159,7 @@ public class GT_OreDictUnificator {
public static ItemStack get_nocopy(ItemStack aStack) {
return get_nocopy(true, aStack);
}
-
+
/** Doesn't copy the returned stack or set quantity. Be careful and do not mutate it;
* intended only to optimize comparisons */
static ItemStack get_nocopy(boolean aUseBlackList, ItemStack aStack) {
@@ -313,7 +311,7 @@ public class GT_OreDictUnificator {
public static boolean isItemStackInstanceOf(ItemStack aStack, Object aName) {
if (GT_Utility.isStringInvalid(aName) || GT_Utility.isStackInvalid(aStack)) return false;
- for (ItemStack tOreStack : getOres(aName.toString()))
+ for (ItemStack tOreStack : getOresImmutable(aName.toString()))
if (GT_Utility.areStacksEqual(tOreStack, aStack, true)) return true;
return false;
}
@@ -471,4 +469,22 @@ public class GT_OreDictUnificator {
if (GT_Utility.isStringValid(aName)) rList.addAll(OreDictionary.getOres(aName));
return rList;
}
+
+ /**
+ * Fast version of {@link #getOres(Object)},
+ * which doesn't call {@link System#arraycopy(Object, int, Object, int, int)} in {@link ArrayList#addAll}
+ */
+ public static List<ItemStack> getOresImmutable(@Nullable Object oreName) {
+ return getOresImmutable(oreName != null ? oreName.toString() : null);
+ }
+
+ /**
+ * Fast version of {@link #getOres(Object)},
+ * which doesn't call {@link System#arraycopy(Object, int, Object, int, int)} in {@link ArrayList#addAll}
+ */
+ public static List<ItemStack> getOresImmutable(@Nullable String oreName) {
+ if(oreName == null) oreName = E;
+
+ return GT_Utility.isStackValid(oreName) ? Collections.unmodifiableList(OreDictionary.getOres(oreName)) : Collections.emptyList();
+ }
}
diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java
index 96c1374059..7d1a2d0900 100644
--- a/src/main/java/gregtech/common/GT_RecipeAdder.java
+++ b/src/main/java/gregtech/common/GT_RecipeAdder.java
@@ -359,7 +359,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
public boolean addAssemblerRecipe(ItemStack aInput1, Object aOreDict,int aAmount, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt){
- for(ItemStack tStack : GT_OreDictUnificator.getOres(aOreDict)){
+ for(ItemStack tStack : GT_OreDictUnificator.getOresImmutable(aOreDict)){
if(GT_Utility.isStackValid(tStack))
addAssemblerRecipe(aInput1, GT_Utility.copyAmount(aAmount, tStack), aFluidInput, aOutput1, aDuration, aEUt);
}
@@ -367,7 +367,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
}
public boolean addAssemblerRecipe(ItemStack[] aInputs, Object aOreDict, int aAmount, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt){
- for(ItemStack tStack : GT_OreDictUnificator.getOres(aOreDict)){
+ for(ItemStack tStack : GT_OreDictUnificator.getOresImmutable(aOreDict)){
if(GT_Utility.isStackValid(tStack)) {
ItemStack[] extendedInputs = new ItemStack[aInputs.length + 1];
System.arraycopy(aInputs, 0, extendedInputs, 0, aInputs.length);
@@ -450,7 +450,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
for (int oreID : OreDictionary.getOreIDs(aInputs[i])) {
String odName = OreDictionary.getOreName(oreID);
if (odName.contains("circuit")) {
- for (ItemStack tStack : GT_OreDictUnificator.getOres(odName)) {
+ for (ItemStack tStack : GT_OreDictUnificator.getOresImmutable(odName)) {
if (!GT_Utility.isStackValid(tStack))
continue;
aInputs[i] = new ItemStack(tStack.getItem(),aInputs[i].stackSize,tStack.getItemDamage());
@@ -1339,7 +1339,7 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
for (int oreID : OreDictionary.getOreIDs(aInputs[i])) {
String odName = OreDictionary.getOreName(oreID);
if (odName.contains("circuit")) {
- for (ItemStack tStack : GT_OreDictUnificator.getOres(odName)) {
+ for (ItemStack tStack : GT_OreDictUnificator.getOresImmutable(odName)) {
if (!GT_Utility.isStackValid(tStack))
continue;
aInputs[i] = new ItemStack(tStack.getItem(),aInputs[i].stackSize,tStack.getItemDamage());