aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util
diff options
context:
space:
mode:
authorKiwi <42833050+Kiwi233@users.noreply.github.com>2020-05-24 08:28:19 +0800
committerGitHub <noreply@github.com>2020-05-24 08:28:19 +0800
commitf0bce85d3faf040d87a22d83250ae2d9767c3642 (patch)
treeed60c1d975c8b06a27cae03d148714f7bb9e9805 /src/main/java/gregtech/api/util
parentac7282a30ef161101cabc921e52db5c5d7e0096c (diff)
parentd6c19a9b6434c8a4c59ea8452603f85cfd2ad208 (diff)
downloadGT5-Unofficial-f0bce85d3faf040d87a22d83250ae2d9767c3642.tar.gz
GT5-Unofficial-f0bce85d3faf040d87a22d83250ae2d9767c3642.tar.bz2
GT5-Unofficial-f0bce85d3faf040d87a22d83250ae2d9767c3642.zip
Merge pull request #1 from GTNewHorizons/experimental
5/24
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r--src/main/java/gregtech/api/util/GT_Assemblyline_Server.java585
-rw-r--r--src/main/java/gregtech/api/util/GT_CLS_Compat.java145
-rw-r--r--src/main/java/gregtech/api/util/GT_CoverBehavior.java22
-rw-r--r--src/main/java/gregtech/api/util/GT_Forestry_Compat.java80
-rw-r--r--src/main/java/gregtech/api/util/GT_GC_Compat.java47
-rw-r--r--src/main/java/gregtech/api/util/GT_LanguageManager.java2
-rw-r--r--src/main/java/gregtech/api/util/GT_ModHandler.java94
-rw-r--r--src/main/java/gregtech/api/util/GT_ProcessingArray_Manager.java31
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java3648
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeRegistrator.java103
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java176
11 files changed, 2763 insertions, 2170 deletions
diff --git a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java
index 0374f221a8..358e21a9a6 100644
--- a/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java
+++ b/src/main/java/gregtech/api/util/GT_Assemblyline_Server.java
@@ -5,9 +5,6 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
-import com.google.common.collect.ImmutableMap;
-
-import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
@@ -16,316 +13,330 @@ import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
public class GT_Assemblyline_Server {
-
-
- public static LinkedHashMap<String,String> lServerNames = new LinkedHashMap<String,String>();
- private static LinkedHashMap<String,String> internal2= new LinkedHashMap<String,String>(),internal3 = new LinkedHashMap<String,String>(),internal4= new LinkedHashMap<String,String>();
+
+
+ public static LinkedHashMap<String, String> lServerNames = new LinkedHashMap<String, String>();
+ private static LinkedHashMap<String, String> internal2 = new LinkedHashMap<String, String>(), internal3 = new LinkedHashMap<String, String>(), internal4 = new LinkedHashMap<String, String>();
private static HashMap<String, Property> internal = new HashMap<String, Property>();
-
+
public static void fillMap(FMLPreInitializationEvent aEvent) {
-
+
String s = new String(aEvent.getModConfigurationDirectory().getAbsolutePath());
- s = s.substring(0, aEvent.getModConfigurationDirectory().getAbsolutePath().length()-6);
+ s = s.substring(0, aEvent.getModConfigurationDirectory().getAbsolutePath().length() - 6);
s = s + "GregTech.lang";
File f = new File(s);
s = "";
Configuration conf = new Configuration(f);
-
+
ConfigCategory cat = conf.getCategory("languagefile");
internal.putAll(cat.getValues());
- for (Map.Entry<String, Property> entry : internal.entrySet())
- {
- s=entry.getValue().getString().replaceAll("%", "");
+ for (Map.Entry<String, Property> entry : internal.entrySet()) {
+ try {
+ s = entry.getValue().getString().replaceAll("%", "");
- if (entry.getKey().contains("metaitem") && s.contains("material"))
- internal2.put(entry.getKey(), s);
- else if (entry.getKey().contains("blockmachines") && s.contains("material"))
- internal3.put(entry.getKey(), s);
- else if ((entry.getKey().contains("blockores")||(entry.getKey().contains("blockmetal")||entry.getKey().contains("blockgem"))) && s.contains("material"))
- internal4.put(entry.getKey(), s);
- else
- lServerNames.put(entry.getKey(), s);
+ if (entry.getKey().contains("metaitem") && s.contains("material"))
+ internal2.put(entry.getKey(), s);
+ else if (entry.getKey().contains("blockmachines") && s.contains("material"))
+ internal3.put(entry.getKey(), s);
+ else if ((entry.getKey().contains("blockores") || (entry.getKey().contains("blockmetal") || entry.getKey().contains("blockgem"))) && s.contains("material"))
+ internal4.put(entry.getKey(), s);
+ else
+ lServerNames.put(entry.getKey(), s);
+ } catch (Exception ignored) {
+ }
}
for (Map.Entry<String, String> entry : internal2.entrySet()) {
- if (entry.getKey().contains("name")) {
- int i = Integer.parseInt(entry.getKey().substring("gt.metaitem.01.".length(), entry.getKey().length()-".name".length()));
- i=i%1000;
- lServerNames.put(entry.getKey(), entry.getValue().replace("material",GregTech_API.sGeneratedMaterials[i].toString()));
+ try {
+ if (entry.getKey().contains("name")) {
+ int i = Integer.parseInt(entry.getKey().substring("gt.metaitem.01.".length(), entry.getKey().length() - ".name".length()));
+ i = i % 1000;
+ if (GregTech_API.sGeneratedMaterials[i] != null)
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", GregTech_API.sGeneratedMaterials[i].toString()));
+ else
+ lServerNames.put(entry.getKey(), null);
+ }
+ } catch (Exception ignored) {
}
}
for (Map.Entry<String, String> entry : internal3.entrySet()) {
- if (entry.getKey().contains("cable"))
- lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.cable.".length(), entry.getKey().length()-".01.name".length())));
- else if (entry.getKey().contains("gt_frame_"))
- lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_frame_".length(), entry.getKey().length()-".name".length())));
- else if(entry.getKey().contains("gt_pipe_")) {
- if(
- !entry.getKey().contains("_huge") &&
- !entry.getKey().contains("_large") &&
- !entry.getKey().contains("_nonuple")&&
- !entry.getKey().contains("_quadruple")&&
- !entry.getKey().contains("_small")&&
- !entry.getKey().contains("_tiny")
+ try {
+ if (entry.getKey().contains("cable"))
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.cable.".length(), entry.getKey().length() - ".01.name".length())));
+ else if (entry.getKey().contains("gt_frame_"))
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_frame_".length(), entry.getKey().length() - ".name".length())));
+ else if (entry.getKey().contains("gt_pipe_")) {
+ if (
+ !entry.getKey().contains("_huge") &&
+ !entry.getKey().contains("_large") &&
+ !entry.getKey().contains("_nonuple") &&
+ !entry.getKey().contains("_quadruple") &&
+ !entry.getKey().contains("_small") &&
+ !entry.getKey().contains("_tiny")
)
- lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-".name".length())));
- else if (entry.getKey().contains("_huge")||entry.getKey().contains("_tiny"))
- lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_tiny.name".length())));
- else if (entry.getKey().contains("_large")||entry.getKey().contains("_small"))
- lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_large.name".length())));
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length() - ".name".length())));
+ else if (entry.getKey().contains("_huge") || entry.getKey().contains("_tiny"))
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length() - "_tiny.name".length())));
+ else if (entry.getKey().contains("_large") || entry.getKey().contains("_small"))
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length() - "_large.name".length())));
else if (entry.getKey().contains("_nonuple"))
- lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_nonuple.name".length())));
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length() - "_nonuple.name".length())));
else if (entry.getKey().contains("_quadruple"))
- lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length()-"_quadruple.name".length())));
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.gt_pipe_".length(), entry.getKey().length() - "_quadruple.name".length())));
+ } else if (entry.getKey().contains("wire"))
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.wire.".length(), entry.getKey().length() - ".01.name".length())));
+ else
+ lServerNames.put(entry.getKey(), entry.getValue());
+ } catch (Exception ignored) {
}
- else if (entry.getKey().contains("wire"))
- lServerNames.put(entry.getKey(), entry.getValue().replace("material", entry.getKey().substring("gt.blockmachines.wire.".length(), entry.getKey().length()-".01.name".length())));
- else
- lServerNames.put(entry.getKey(), entry.getValue());
}
for (Map.Entry<String, String> entry : internal4.entrySet()) {
- if (entry.getKey().contains("blockores")) {
- int i = Integer.parseInt(entry.getKey().substring("gt.blockores.".length(), entry.getKey().length()-".name".length()));
- i=i%1000;
- lServerNames.put(entry.getKey(), entry.getValue().replace("material",GregTech_API.sGeneratedMaterials[i].toString()));
- }
- else if(entry.getKey().contains("blockmetal")) {
- Materials[] mMats = null;
- String t = entry.getKey().substring("gt.blockmetal".length());
- t=t.substring(0,1);
- int i = Integer.parseInt(t);
- switch (i) {
- case 1:
- mMats=new Materials[]{
- Materials.Adamantium,
- Materials.Aluminium,
- Materials.Americium,
- Materials.AnnealedCopper,
- Materials.Antimony,
- Materials.Arsenic,
- Materials.AstralSilver,
- Materials.BatteryAlloy,
- Materials.Beryllium,
- Materials.Bismuth,
- Materials.BismuthBronze,
- Materials.BlackBronze,
- Materials.BlackSteel,
- Materials.BlueAlloy,
- Materials.BlueSteel,
- Materials.Brass
- };
- break;
- case 2:
- mMats=new Materials[]{
- Materials.Bronze,
- Materials.Caesium,
- Materials.Cerium,
- Materials.Chrome,
- Materials.ChromiumDioxide,
- Materials.Cobalt,
- Materials.CobaltBrass,
- Materials.Copper,
- Materials.Cupronickel,
- Materials.DamascusSteel,
- Materials.DarkIron,
- Materials.DeepIron,
- Materials.Desh,
- Materials.Duranium,
- Materials.Dysprosium,
- Materials.Electrum
- };
- break;
- case 3:
- mMats=new Materials[]{
- Materials.ElectrumFlux,
- Materials.Enderium,
- Materials.Erbium,
- Materials.Europium,
- Materials.FierySteel,
- Materials.Gadolinium,
- Materials.Gallium,
- Materials.Holmium,
- Materials.HSLA,
- Materials.Indium,
- Materials.InfusedGold,
- Materials.Invar,
- Materials.Iridium,
- Materials.IronMagnetic,
- Materials.IronWood,
- Materials.Kanthal
- };
- break;
- case 4:
- mMats=new Materials[]{
- Materials.Knightmetal,
- Materials.Lanthanum,
- Materials.Lead,
- Materials.Lutetium,
- Materials.Magnalium,
- Materials.Magnesium,
- Materials.Manganese,
- Materials.MeteoricIron,
- Materials.MeteoricSteel,
- Materials.Trinium,
- Materials.Mithril,
- Materials.Molybdenum,
- Materials.Naquadah,
- Materials.NaquadahAlloy,
- Materials.NaquadahEnriched,
- Materials.Naquadria
- };
- break;
- case 5:
- mMats=new Materials[]{
- Materials.Neodymium,
- Materials.NeodymiumMagnetic,
- Materials.Neutronium,
- Materials.Nichrome,
- Materials.Nickel,
- Materials.Niobium,
- Materials.NiobiumNitride,
- Materials.NiobiumTitanium,
- Materials.Osmiridium,
- Materials.Osmium,
- Materials.Palladium,
- Materials.PigIron,
- Materials.Platinum,
- Materials.Plutonium,
- Materials.Plutonium241,
- Materials.Praseodymium
- };
- break;
- case 6:
- mMats=new Materials[]{
- Materials.Promethium,
- Materials.RedAlloy,
- Materials.RedSteel,
- Materials.RoseGold,
- Materials.Rubidium,
- Materials.Samarium,
- Materials.Scandium,
- Materials.ShadowIron,
- Materials.ShadowSteel,
- Materials.Silicon,
- Materials.Silver,
- Materials.SolderingAlloy,
- Materials.StainlessSteel,
- Materials.Steel,
- Materials.SteelMagnetic,
- Materials.SterlingSilver
- };
- break;
- case 7:
- mMats=new Materials[]{
- Materials.Sunnarium,
- Materials.Tantalum,
- Materials.Tellurium,
- Materials.Terbium,
- Materials.Thaumium,
- Materials.Thorium,
- Materials.Thulium,
- Materials.Tin,
- Materials.TinAlloy,
- Materials.Titanium,
- Materials.Tritanium,
- Materials.Tungsten,
- Materials.TungstenSteel,
- Materials.Ultimet,
- Materials.Uranium,
- Materials.Uranium235
- };
- break;
- case 8:
- mMats=new Materials[]{
- Materials.Vanadium,
- Materials.VanadiumGallium,
- Materials.WroughtIron,
- Materials.Ytterbium,
- Materials.Yttrium,
- Materials.YttriumBariumCuprate,
- Materials.Zinc,
- Materials.TungstenCarbide,
- Materials.VanadiumSteel,
- Materials.HSSG,
- Materials.HSSE,
- Materials.HSSS,
- Materials.Steeleaf,
- Materials.Ichorium
- };
- break;
+ try {
+ if (entry.getKey().contains("blockores")) {
+ int i = Integer.parseInt(entry.getKey().substring("gt.blockores.".length(), entry.getKey().length() - ".name".length()));
+ i = i % 1000;
+ if (GregTech_API.sGeneratedMaterials[i] != null)
+ lServerNames.put(entry.getKey(), entry.getValue().replace("material", GregTech_API.sGeneratedMaterials[i].toString()));
+ else
+ lServerNames.put(entry.getKey(), null);
+ } else if (entry.getKey().contains("blockmetal")) {
+ Materials[] mMats = null;
+ String t = entry.getKey().substring("gt.blockmetal".length());
+ t = t.substring(0, 1);
+ int i = Integer.parseInt(t);
+ switch (i) {
+ case 1:
+ mMats = new Materials[]{
+ Materials.Adamantium,
+ Materials.Aluminium,
+ Materials.Americium,
+ Materials.AnnealedCopper,
+ Materials.Antimony,
+ Materials.Arsenic,
+ Materials.AstralSilver,
+ Materials.BatteryAlloy,
+ Materials.Beryllium,
+ Materials.Bismuth,
+ Materials.BismuthBronze,
+ Materials.BlackBronze,
+ Materials.BlackSteel,
+ Materials.BlueAlloy,
+ Materials.BlueSteel,
+ Materials.Brass
+ };
+ break;
+ case 2:
+ mMats = new Materials[]{
+ Materials.Bronze,
+ Materials.Caesium,
+ Materials.Cerium,
+ Materials.Chrome,
+ Materials.ChromiumDioxide,
+ Materials.Cobalt,
+ Materials.CobaltBrass,
+ Materials.Copper,
+ Materials.Cupronickel,
+ Materials.DamascusSteel,
+ Materials.DarkIron,
+ Materials.DeepIron,
+ Materials.Desh,
+ Materials.Duranium,
+ Materials.Dysprosium,
+ Materials.Electrum
+ };
+ break;
+ case 3:
+ mMats = new Materials[]{
+ Materials.ElectrumFlux,
+ Materials.Enderium,
+ Materials.Erbium,
+ Materials.Europium,
+ Materials.FierySteel,
+ Materials.Gadolinium,
+ Materials.Gallium,
+ Materials.Holmium,
+ Materials.HSLA,
+ Materials.Indium,
+ Materials.InfusedGold,
+ Materials.Invar,
+ Materials.Iridium,
+ Materials.IronMagnetic,
+ Materials.IronWood,
+ Materials.Kanthal
+ };
+ break;
+ case 4:
+ mMats = new Materials[]{
+ Materials.Knightmetal,
+ Materials.Lanthanum,
+ Materials.Lead,
+ Materials.Lutetium,
+ Materials.Magnalium,
+ Materials.Magnesium,
+ Materials.Manganese,
+ Materials.MeteoricIron,
+ Materials.MeteoricSteel,
+ Materials.Trinium,
+ Materials.Mithril,
+ Materials.Molybdenum,
+ Materials.Naquadah,
+ Materials.NaquadahAlloy,
+ Materials.NaquadahEnriched,
+ Materials.Naquadria
+ };
+ break;
+ case 5:
+ mMats = new Materials[]{
+ Materials.Neodymium,
+ Materials.NeodymiumMagnetic,
+ Materials.Neutronium,
+ Materials.Nichrome,
+ Materials.Nickel,
+ Materials.Niobium,
+ Materials.NiobiumNitride,
+ Materials.NiobiumTitanium,
+ Materials.Osmiridium,
+ Materials.Osmium,
+ Materials.Palladium,
+ Materials.PigIron,
+ Materials.Platinum,
+ Materials.Plutonium,
+ Materials.Plutonium241,
+ Materials.Praseodymium
+ };
+ break;
+ case 6:
+ mMats = new Materials[]{
+ Materials.Promethium,
+ Materials.RedAlloy,
+ Materials.RedSteel,
+ Materials.RoseGold,
+ Materials.Rubidium,
+ Materials.Samarium,
+ Materials.Scandium,
+ Materials.ShadowIron,
+ Materials.ShadowSteel,
+ Materials.Silicon,
+ Materials.Silver,
+ Materials.SolderingAlloy,
+ Materials.StainlessSteel,
+ Materials.Steel,
+ Materials.SteelMagnetic,
+ Materials.SterlingSilver
+ };
+ break;
+ case 7:
+ mMats = new Materials[]{
+ Materials.Sunnarium,
+ Materials.Tantalum,
+ Materials.Tellurium,
+ Materials.Terbium,
+ Materials.Thaumium,
+ Materials.Thorium,
+ Materials.Thulium,
+ Materials.Tin,
+ Materials.TinAlloy,
+ Materials.Titanium,
+ Materials.Tritanium,
+ Materials.Tungsten,
+ Materials.TungstenSteel,
+ Materials.Ultimet,
+ Materials.Uranium,
+ Materials.Uranium235
+ };
+ break;
+ case 8:
+ mMats = new Materials[]{
+ Materials.Vanadium,
+ Materials.VanadiumGallium,
+ Materials.WroughtIron,
+ Materials.Ytterbium,
+ Materials.Yttrium,
+ Materials.YttriumBariumCuprate,
+ Materials.Zinc,
+ Materials.TungstenCarbide,
+ Materials.VanadiumSteel,
+ Materials.HSSG,
+ Materials.HSSE,
+ Materials.HSSS,
+ Materials.Steeleaf,
+ Materials.Ichorium,
+ Materials.Firestone
+ };
+ break;
+ }
+ t = entry.getKey().substring("gt.blockmetal1.".length(), entry.getKey().length() - ".name".length());
+ i = Integer.parseInt(t);
+ lServerNames.put(entry.getKey(), "Block of " + mMats[i].toString());
+ mMats = null;
+ } else if (entry.getKey().contains("blockgem")) {
+ Materials[] mMats = null;
+ String t = entry.getKey().substring("gt.blockgem".length());
+ t = t.substring(0, 1);
+ int i = Integer.parseInt(t);
+ switch (i) {
+ case 1:
+ mMats = new Materials[]{
+ Materials.InfusedAir,
+ Materials.Amber,
+ Materials.Amethyst,
+ Materials.InfusedWater,
+ Materials.BlueTopaz,
+ Materials.CertusQuartz,
+ Materials.Dilithium,
+ Materials.EnderEye,
+ Materials.EnderPearl,
+ Materials.FoolsRuby,
+ Materials.Force,
+ Materials.Forcicium,
+ Materials.Forcillium,
+ Materials.GreenSapphire,
+ Materials.InfusedFire,
+ Materials.Jasper
+ };
+ break;
+ case 2:
+ mMats = new Materials[]{
+ Materials.Lazurite,
+ Materials.Lignite,
+ Materials.Monazite,
+ Materials.Niter,
+ Materials.Olivine,
+ Materials.Opal,
+ Materials.InfusedOrder,
+ Materials.InfusedEntropy,
+ Materials.Phosphorus,
+ Materials.Quartzite,
+ Materials.GarnetRed,
+ Materials.Ruby,
+ Materials.Sapphire,
+ Materials.Sodalite,
+ Materials.Tanzanite,
+ Materials.InfusedEarth
+ };
+ break;
+ case 3:
+ mMats = new Materials[]{
+ Materials.Topaz,
+ Materials.Vinteum,
+ Materials.GarnetYellow,
+ Materials.NetherStar,
+ Materials.Charcoal,
+ Materials.Blaze
+ };
+ break;
+ }
+ t = entry.getKey().substring("gt.blockgem1.".length(), entry.getKey().length() - ".name".length());
+ i = Integer.parseInt(t);
+ lServerNames.put(entry.getKey(), "Block of " + mMats[i].toString());
+ mMats = null;
}
- t = entry.getKey().substring("gt.blockmetal1.".length(), entry.getKey().length()-".name".length());
- i = Integer.parseInt(t);
- lServerNames.put(entry.getKey(),"Block of "+mMats[i].toString());
- mMats = null;
- }
- else if(entry.getKey().contains("blockgem")) {
- Materials[] mMats = null;
- String t = entry.getKey().substring("gt.blockgem".length());
- t=t.substring(0,1);
- int i = Integer.parseInt(t);
- switch (i) {
- case 1:
- mMats=new Materials[]{
- Materials.InfusedAir,
- Materials.Amber,
- Materials.Amethyst,
- Materials.InfusedWater,
- Materials.BlueTopaz,
- Materials.CertusQuartz,
- Materials.Dilithium,
- Materials.EnderEye,
- Materials.EnderPearl,
- Materials.FoolsRuby,
- Materials.Force,
- Materials.Forcicium,
- Materials.Forcillium,
- Materials.GreenSapphire,
- Materials.InfusedFire,
- Materials.Jasper
- };
- break;
- case 2:
- mMats=new Materials[]{
- Materials.Lazurite,
- Materials.Lignite,
- Materials.Monazite,
- Materials.Niter,
- Materials.Olivine,
- Materials.Opal,
- Materials.InfusedOrder,
- Materials.InfusedEntropy,
- Materials.Phosphorus,
- Materials.Quartzite,
- Materials.GarnetRed,
- Materials.Ruby,
- Materials.Sapphire,
- Materials.Sodalite,
- Materials.Tanzanite,
- Materials.InfusedEarth
- };
- break;
- case 3:
- mMats=new Materials[]{
- Materials.Topaz,
- Materials.Vinteum,
- Materials.GarnetYellow,
- Materials.NetherStar,
- Materials.Charcoal,
- Materials.Blaze
- };
- break;
- }
- t = entry.getKey().substring("gt.blockgem1.".length(), entry.getKey().length()-".name".length());
- i = Integer.parseInt(t);
- lServerNames.put(entry.getKey(),"Block of "+mMats[i].toString());
- mMats = null;
+ } catch (Exception ignored) {
}
}
-
+
internal = null;
internal2 = null;
internal3 = null;
internal4 = null;
}
-
-}
+} \ No newline at end of file
diff --git a/src/main/java/gregtech/api/util/GT_CLS_Compat.java b/src/main/java/gregtech/api/util/GT_CLS_Compat.java
new file mode 100644
index 0000000000..738b04a3b3
--- /dev/null
+++ b/src/main/java/gregtech/api/util/GT_CLS_Compat.java
@@ -0,0 +1,145 @@
+package gregtech.api.util;
+
+import cpw.mods.fml.common.ProgressManager;
+import gregtech.GT_Mod;
+import gregtech.api.enums.Materials;
+import gregtech.common.GT_Proxy;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Optional;
+import java.util.Set;
+
+@SuppressWarnings("rawtypes, unchecked, deprecation")
+public class GT_CLS_Compat {
+
+ private static Class alexiilMinecraftDisplayer;
+ private static Class alexiilProgressDisplayer;
+
+ private static Method getLastPercent;
+ private static Method displayProgress;
+
+ private static Field isReplacingVanillaMaterials;
+ private static Field isRegisteringGTmaterials;
+
+ static {
+ //CLS
+ try {
+ alexiilMinecraftDisplayer = Class.forName("alexiil.mods.load.MinecraftDisplayer");
+ alexiilProgressDisplayer = Class.forName("alexiil.mods.load.ProgressDisplayer");
+ } catch (ClassNotFoundException ex) {
+ GT_Mod.GT_FML_LOGGER.catching(ex);
+ }
+
+ Optional.ofNullable(alexiilMinecraftDisplayer).ifPresent(e -> {
+ try {
+ getLastPercent = e.getMethod("getLastPercent");
+ isReplacingVanillaMaterials = e.getField("isReplacingVanillaMaterials");
+ isRegisteringGTmaterials = e.getField("isRegisteringGTmaterials");
+ } catch (NoSuchMethodException | NoSuchFieldException ex) {
+ GT_Mod.GT_FML_LOGGER.catching(ex);
+ }
+
+ });
+
+ Optional.ofNullable(alexiilProgressDisplayer).ifPresent(e -> {
+ try {
+ displayProgress = e.getMethod("displayProgress", String.class, float.class);
+ } catch (NoSuchMethodException ex) {
+ GT_Mod.GT_FML_LOGGER.catching(ex);
+ }
+ });
+ }
+
+ public static void stepMaterialsCLS(Collection<GT_Proxy.OreDictEventContainer> mEvents, ProgressManager.ProgressBar progressBar) throws IllegalAccessException, InvocationTargetException {
+ int sizeStep = GT_CLS_Compat.setStepSize(mEvents);
+ int size = 0;
+ for (GT_Proxy.OreDictEventContainer tEvent : mEvents) {
+ sizeStep--;
+
+ String materialName = tEvent.mMaterial == null ? "" : tEvent.mMaterial.toString();
+
+ displayProgress.invoke(null, materialName, ((float) size) / 100);
+
+ if (sizeStep == 0) {
+ if (size % 5 == 0)
+ GT_Mod.GT_FML_LOGGER.info("Baking: " + size + "%");
+ sizeStep = mEvents.size() / 100 - 1;
+ size++;
+ }
+
+ progressBar.step(materialName);
+ GT_Proxy.registerRecipes(tEvent);
+ }
+ ProgressManager.pop(progressBar);
+ isRegisteringGTmaterials.set(null, false);
+ }
+
+
+ public static int setStepSize(Collection mEvents) {
+ try {
+ isRegisteringGTmaterials.set(null, true);
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ GT_Mod.GT_FML_LOGGER.catching(e);
+ }
+
+ return mEvents.size() / 100 - 1;
+ }
+
+ private GT_CLS_Compat() {
+ }
+
+ private static int[] setSizeSteps(Set<Materials> replaceVanillaItemsSet){
+ int sizeStep;
+ int sizeStep2;
+ if (replaceVanillaItemsSet.size() >= 100) {
+ sizeStep = replaceVanillaItemsSet.size() / 100 - 1;
+ sizeStep2 = 1;
+ } else {
+ sizeStep = 100 / replaceVanillaItemsSet.size();
+ sizeStep2 = sizeStep;
+ }
+ return new int[]{sizeStep, sizeStep2};
+ }
+
+ private static void displayMethodAdapter(int counter, String mDefaultLocalName, int size) throws InvocationTargetException, IllegalAccessException {
+ if (counter == 1) {
+ displayProgress.invoke(null, mDefaultLocalName, ((float) 95) / 100);
+ } else if (counter == 0) {
+ displayProgress.invoke(null, mDefaultLocalName, (float) 1);
+ } else {
+ displayProgress.invoke(null, mDefaultLocalName, ((float) size) / 100);
+ }
+ }
+
+ public static void doActualRegistrationCLS(ProgressManager.ProgressBar progressBar, Set<Materials> replaceVanillaItemsSet) throws InvocationTargetException, IllegalAccessException {
+ int size = 0;
+ int counter = replaceVanillaItemsSet.size();
+ try {
+ isReplacingVanillaMaterials.set(null, true);
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ GT_Mod.GT_FML_LOGGER.catching(e);
+ }
+
+ int[] sizeSteps = setSizeSteps(replaceVanillaItemsSet);
+
+ for (Materials m : replaceVanillaItemsSet) {
+ counter--;
+ sizeSteps[0]--;
+
+ displayMethodAdapter(counter,m.mDefaultLocalName,size);
+ GT_Mod.doActualRegistration(m);
+
+ size += sizeSteps[1];
+ progressBar.step(m.mDefaultLocalName);
+ }
+ }
+
+ public static void pushToDisplayProgress() throws InvocationTargetException, IllegalAccessException {
+ isReplacingVanillaMaterials.set(null, false);
+ displayProgress.invoke(null, "Post Initialization: loading GregTech", getLastPercent.invoke(null));
+ }
+
+}
diff --git a/src/main/java/gregtech/api/util/GT_CoverBehavior.java b/src/main/java/gregtech/api/util/GT_CoverBehavior.java
index a540601dd1..c0ad751add 100644
--- a/src/main/java/gregtech/api/util/GT_CoverBehavior.java
+++ b/src/main/java/gregtech/api/util/GT_CoverBehavior.java
@@ -1,8 +1,11 @@
package gregtech.api.util;
+import gregtech.api.enums.GT_Values;
import gregtech.api.interfaces.tileentity.ICoverable;
+import gregtech.api.net.GT_Packet_TileEntityCoverGUI;
import gregtech.api.objects.GT_ItemStack;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
@@ -47,6 +50,25 @@ public abstract class GT_CoverBehavior {
}
/**
+ * Called when someone shift-rightclicks this Cover with no tool. Doesn't call @onCoverRightclick in this Case.
+ */
+ public boolean onCoverShiftRightclick(byte aSide, int aCoverID, int aCoverVariable, ICoverable aTileEntity, EntityPlayer aPlayer) {
+ if(hasCoverGUI() && aPlayer instanceof EntityPlayerMP) {
+ GT_Values.NW.sendToPlayer(new GT_Packet_TileEntityCoverGUI(aSide, aCoverID, aCoverVariable, aTileEntity, (EntityPlayerMP) aPlayer), (EntityPlayerMP) aPlayer);
+ return true;
+ }
+ return false;
+ }
+
+ public boolean hasCoverGUI() {
+ return false;
+ }
+
+ public Object getClientGUI(byte aSide, int aCoverID, int coverData, ICoverable aTileEntity) {
+ return null;
+ }
+
+ /**
* Checks if the Cover can be placed on this.
*/
public boolean isCoverPlaceable(byte aSide, GT_ItemStack aStack, ICoverable aTileEntity) {
diff --git a/src/main/java/gregtech/api/util/GT_Forestry_Compat.java b/src/main/java/gregtech/api/util/GT_Forestry_Compat.java
new file mode 100644
index 0000000000..c59e551373
--- /dev/null
+++ b/src/main/java/gregtech/api/util/GT_Forestry_Compat.java
@@ -0,0 +1,80 @@
+package gregtech.api.util;
+
+import forestry.api.recipes.ICentrifugeRecipe;
+import forestry.api.recipes.ISqueezerRecipe;
+import forestry.api.recipes.RecipeManagers;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;