Fixed Build Script.
Fixed IC2C compile issue. Fixed Radiation effect using a statc potion ID. Removed IE, Magneticraft, TiCon and Translocators as compile requirements.
This commit is contained in:
parent
7b592a645c
commit
be8b163c83
9 changed files with 351 additions and 214 deletions
156
build.gradle
156
build.gradle
|
@ -1,10 +1,15 @@
|
|||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
name = "forge"
|
||||
url = "http://files.minecraftforge.net/maven"
|
||||
}
|
||||
jcenter()
|
||||
//maven {
|
||||
// name = "forge"
|
||||
// url = "http://files.minecraftforge.net/maven"
|
||||
//}
|
||||
maven {
|
||||
name = "gt"
|
||||
url = "https://gregtech.overminddl1.com/"
|
||||
}
|
||||
maven {
|
||||
name = "sonatype"
|
||||
url = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
|
@ -15,8 +20,30 @@ buildscript {
|
|||
}
|
||||
}
|
||||
|
||||
apply plugin: 'forge'
|
||||
// Because Forge is too stupid to fix Deprecation Issues, and we cannot fix it on our end! (until we fork Forge)
|
||||
allprojects {
|
||||
tasks.withType(JavaCompile) {
|
||||
options.compilerArgs << "-Xlint:deprecation"
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'eclipse'
|
||||
eclipse {
|
||||
classpath {
|
||||
downloadJavadoc = true
|
||||
downloadSources = true
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'idea'
|
||||
idea{
|
||||
module {
|
||||
downloadJavadoc = true
|
||||
downloadSources = true
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'forge'
|
||||
|
||||
file "build.properties" withReader {
|
||||
def prop = new Properties()
|
||||
|
@ -28,9 +55,12 @@ version = "${config.gt.version}"
|
|||
group= "gregtech"
|
||||
archivesBaseName = "gregtech"
|
||||
|
||||
|
||||
sourceCompatibility = 1.7
|
||||
targetCompatibility = 1.7
|
||||
compileJava.options.bootClasspath = org.gradle.internal.jvm.Jvm.current().getJre().getHomeDir().toString() +"/lib/rt.jar"
|
||||
compileJava {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
minecraft {
|
||||
version = "${config.minecraft.version}-${config.forge.version}"
|
||||
|
@ -46,89 +76,47 @@ configurations {
|
|||
}
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
name 'Forge'
|
||||
url 'http://files.minecraftforge.net/maven'
|
||||
}
|
||||
maven {
|
||||
name = "chickenbones"
|
||||
url = "http://chickenbones.net/maven/"
|
||||
}
|
||||
maven {
|
||||
name = "ic2, forestry"
|
||||
url = "http://maven.ic2.player.to/"
|
||||
}
|
||||
maven { // EnderIO & EnderCore
|
||||
name 'tterrag Repo'
|
||||
url "http://maven.tterrag.com"
|
||||
}
|
||||
maven { // TConstruct
|
||||
name 'DVS1 Maven FS'
|
||||
url 'http://dvs1.progwml6.com/files/maven'
|
||||
}
|
||||
|
||||
maven { // AppleCore
|
||||
url "http://www.ryanliptak.com/maven/"
|
||||
}
|
||||
ivy {
|
||||
name "BuildCraft"
|
||||
artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]"
|
||||
}
|
||||
ivy {
|
||||
name 'CoFHLib'
|
||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.cofhlib.cf}/[module]-[revision].[ext]"
|
||||
}
|
||||
ivy {
|
||||
name 'CoFHCore'
|
||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.cofhcore.cf}/[module]-[revision].[ext]"
|
||||
}
|
||||
ivy {
|
||||
name 'Railcraft'
|
||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.railcraft.cf}/[module]_[revision].[ext]"
|
||||
}
|
||||
ivy {
|
||||
name 'IC2NuclearControl'
|
||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.nc.cf}/[module]-[revision].[ext]"
|
||||
}
|
||||
ivy {
|
||||
name 'ImmersiveEngineering'
|
||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.immeng.cf}/[module]-[revision].[ext]"
|
||||
}
|
||||
ivy {
|
||||
name 'magneticraft'
|
||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.magneticraft.cf}/[module]-[revision].[ext]"
|
||||
}
|
||||
maven {
|
||||
name = "gt"
|
||||
url = "http://gregtech.overminddl1.com/"
|
||||
}
|
||||
maven {
|
||||
name = "ic2"
|
||||
url = "http://maven.ic2.player.to/"
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// compile fileTree(dir: 'libs', include: '*.jar')
|
||||
|
||||
compile "tconstruct:TConstruct:${config.minecraft.version}-${config.tconstruct.version}:deobf"
|
||||
provided ("appeng:appliedenergistics2:${config.ae2.version}:dev") {
|
||||
exclude module: '*'
|
||||
}
|
||||
provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev"
|
||||
provided "codechicken:CodeChickenCore:${config.minecraft.version}-${config.codechickencore.version}:dev"
|
||||
provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev"
|
||||
provided "codechicken:Translocator:${config.minecraft.version}-${config.translocators.version}:dev"
|
||||
provided "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev"
|
||||
provided "net.sengir.forestry:forestry_${config.minecraft.version}:${config.forestry.version}:dev"
|
||||
provided "applecore:AppleCore:${config.applecore.version}:api"
|
||||
provided "com.enderio.core:EnderCore:${config.enderiocore.version}:dev"
|
||||
provided ("com.enderio:EnderIO:${config.enderio.version}:dev") {
|
||||
transitive = false
|
||||
}
|
||||
provided name: 'buildcraft', version: config.buildcraft.version, classifier: "dev", ext: 'jar'
|
||||
provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar'
|
||||
provided name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar'
|
||||
provided name: 'Railcraft', version: config.railcraft.version, ext: 'jar'
|
||||
provided name: 'IC2NuclearControl', version: config.nc.version, ext: 'jar'
|
||||
provided name: 'ImmersiveEngineering', version: config.immeng.version, ext: 'jar'
|
||||
provided name: 'magneticraft', version: config.magneticraft.version, ext: 'jar'
|
||||
// compile files("libs/Galacticraft-API-1.7-${config.gc.version}.jar")
|
||||
// compile files("libs/GalacticraftCore-Dev-${config.gc.version}.jar")
|
||||
provided name: "Galacticraft-API", version: config.gc.version, ext: 'jar'
|
||||
provided name: "GalacticraftCore-Dev", version: config.gc.version, ext: 'jar'
|
||||
// Mostly Used for compileOnly, if you prefer normal IC2, uncomment it instead.
|
||||
//provided "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev"
|
||||
compile "ic2:IC2Classic:1.2.1.8:dev"
|
||||
|
||||
compile "mcp.mobius.waila:Waila:1.5.11-RC2-NONEI_1.7.10:dev"
|
||||
compile "codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev"
|
||||
compile "codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev"
|
||||
compile "codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev"
|
||||
|
||||
compileOnly "com.enderio.core:EnderCore:1.7.10-0.2.0.39_beta:dev"
|
||||
// "com.enderio:EnderIO:1.7.10-2.3.0.429_beta:dev"
|
||||
compileOnly "com.enderio:EnderIO:1.7.10-2.3.0.430_beta:dev"
|
||||
|
||||
compileOnly "cofh:CoFHCore:1.7.10R3.0.4:dev"
|
||||
compileOnly "cofh:CoFHLib:1.7.10R3.0.3:dev"
|
||||
compileOnly "com.mod-buildcraft:buildcraft:7.1.23:dev"
|
||||
compileOnly "net.sengir.forestry:forestry_1.7.10:4.2.16.64:dev"
|
||||
compileOnly "mods.railcraft:Railcraft_1.7.10:9.12.3.0:dev"
|
||||
|
||||
compileOnly "micdoodle8.mods:GalacticraftCore:1.7-3.0.12.504:Dev"
|
||||
compileOnly "micdoodle8.mods:MicdoodleCore:1.7-3.0.12.504:Dev"
|
||||
|
||||
compileOnly "thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev"
|
||||
compileOnly "com.azanor.baubles:Baubles:1.7.10-1.0.1.10:deobf"
|
||||
compileOnly "appeng:appliedenergistics2:rv3-beta-6:dev"
|
||||
compileOnly "applecore:AppleCore:1.7.10-3.1.1:deobf"
|
||||
compileOnly "com.shedar.IC2NuclearControl:IC2NuclearControl:2.4.3a:dev"
|
||||
|
||||
}
|
||||
|
||||
processResources
|
||||
|
|
|
@ -1,30 +1,4 @@
|
|||
minecraft.version=1.7.10
|
||||
forge.version=10.13.4.1566-1.7.10
|
||||
|
||||
gt.version=5.09.31
|
||||
ae2.version=rv2-beta-33
|
||||
applecore.version=1.7.10-1.2.1+107.59407
|
||||
buildcraft.version=7.1.11
|
||||
codechickenlib.version=1.1.3.140
|
||||
codechickencore.version=1.0.7.47
|
||||
cofhcore.cf=2246/920
|
||||
cofhcore.version=[1.7.10]3.0.3-303-dev
|
||||
cofhlib.cf=2246/918
|
||||
cofhlib.version=[1.7.10]1.0.3-175-dev
|
||||
enderio.cf=2219/296
|
||||
enderio.version=1.7.10-2.3.0.417_beta
|
||||
enderiocore.version=1.7.10-0.1.0.25_beta
|
||||
forestry.version=4.2.10.58
|
||||
gc.version=1.7-3.0.12.504
|
||||
forge.version=10.13.4.1614-1.7.10
|
||||
ic2.version=2.2.790-experimental
|
||||
nei.version=1.0.3.57
|
||||
railcraft.cf=2219/321
|
||||
railcraft.version=1.7.10-9.4.0.0
|
||||
nc.cf=2275/987
|
||||
nc.version=2.3.4a
|
||||
immeng.cf=2299/20
|
||||
immeng.version=0.7.7-deobf
|
||||
magneticraft.cf=2276/268
|
||||
magneticraft.version=0.6.1-final
|
||||
tconstruct.version=1.8.4.build951
|
||||
translocators.version=1.1.2.16
|
||||
gt.version=5.09.31
|
|
@ -1,18 +1,18 @@
|
|||
package gregtech.api.items;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import gregtech.api.GregTech_API;
|
||||
import gregtech.api.util.GT_Utility;
|
||||
import ic2.api.reactor.IReactor;
|
||||
import ic2.api.reactor.IReactorComponent;
|
||||
import ic2.core.IC2Potion;
|
||||
import ic2.core.item.armor.ItemArmorHazmat;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implements IReactorComponent {
|
||||
public final int numberOfCells;
|
||||
|
@ -146,7 +146,7 @@ public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implement
|
|||
if (this.sRadiation > 0 && (entity instanceof EntityLivingBase)) {
|
||||
EntityLivingBase entityLiving = (EntityLivingBase) entity;
|
||||
if (!GregTech_API.mIC2Classic&&!ItemArmorHazmat.hasCompleteHazmat(entityLiving)) {
|
||||
IC2Potion.radiation.applyTo(entityLiving, sRadiation * 20, sRadiation * 10);
|
||||
GT_Utility.applyRadioactivity(entityLiving, sRadiation, stack.stackSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,19 @@
|
|||
package gregtech.api.metatileentity.implementations;
|
||||
|
||||
import static gregtech.api.enums.GT_Values.D1;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang3.tuple.MutableTriple;
|
||||
|
||||
import gregtech.GT_Mod;
|
||||
import gregtech.api.GregTech_API;
|
||||
import gregtech.api.enums.*;
|
||||
import gregtech.api.enums.Dyes;
|
||||
import gregtech.api.enums.Materials;
|
||||
import gregtech.api.enums.OrePrefixes;
|
||||
import gregtech.api.enums.SubTag;
|
||||
import gregtech.api.enums.Textures;
|
||||
import gregtech.api.interfaces.ITexture;
|
||||
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
|
||||
import gregtech.api.interfaces.tileentity.ICoverable;
|
||||
|
@ -10,13 +21,12 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
|
|||
import gregtech.api.metatileentity.BaseMetaPipeEntity;
|
||||
import gregtech.api.metatileentity.MetaPipeEntity;
|
||||
import gregtech.api.objects.GT_RenderedTexture;
|
||||
import gregtech.api.util.GT_CoverBehavior;
|
||||
import gregtech.api.objects.XSTR;
|
||||
import gregtech.api.util.GT_CoverBehavior;
|
||||
import gregtech.api.util.GT_Log;
|
||||
import gregtech.api.util.GT_Utility;
|
||||
import gregtech.common.GT_Client;
|
||||
import gregtech.common.covers.GT_Cover_Drain;
|
||||
import gregtech.common.covers.GT_Cover_FluidRegulator;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -30,12 +40,6 @@ import net.minecraftforge.common.util.ForgeDirection;
|
|||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import org.apache.commons.lang3.tuple.MutableTriple;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static gregtech.api.enums.GT_Values.D1;
|
||||
|
||||
public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
|
||||
public final float mThickNess;
|
||||
|
@ -392,8 +396,21 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
|
|||
if (coverBehavior instanceof GT_Cover_Drain) return true;
|
||||
|
||||
// Tinker Construct Faucets return a null tank info, so check the class
|
||||
if (GregTech_API.mTConstruct && tTileEntity instanceof tconstruct.smeltery.logic.FaucetLogic) return true;
|
||||
|
||||
if (GregTech_API.mTConstruct) {
|
||||
try {
|
||||
Class aTinkerFaucet = Class.forName("tconstruct.smeltery.logic.FaucetLogic");
|
||||
if (aTinkerFaucet != null) {
|
||||
if (aTinkerFaucet.isInstance(tTileEntity)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Throwable t) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
final IFluidHandler fTileEntity = (tTileEntity instanceof IFluidHandler) ? (IFluidHandler) tTileEntity : null;
|
||||
|
||||
if (fTileEntity != null) {
|
||||
|
@ -402,8 +419,19 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
|
|||
if (tInfo.length > 0) return true;
|
||||
|
||||
// Translocators return a TankInfo, but it's of 0 length - so check the class if we see this pattern
|
||||
if (GregTech_API.mTranslocator && tTileEntity instanceof codechicken.translocator.TileLiquidTranslocator) return true;
|
||||
if (gTileEntity != null && gTileEntity.getCoverBehaviorAtSide(tSide) instanceof GT_Cover_FluidRegulator) return true;
|
||||
if (GregTech_API.mTranslocator) {
|
||||
try {
|
||||
Class aCodeChickenTranslocator = Class.forName("codechicken.translocator.TileLiquidTranslocator");
|
||||
if (aCodeChickenTranslocator != null) {
|
||||
if (aCodeChickenTranslocator.isInstance(tTileEntity)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Throwable t) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,36 @@
|
|||
package gregtech.api.util;
|
||||
|
||||
import static gregtech.api.enums.GT_Values.B;
|
||||
import static gregtech.api.enums.GT_Values.D1;
|
||||
import static gregtech.api.enums.GT_Values.DW;
|
||||
import static gregtech.api.enums.GT_Values.E;
|
||||
import static gregtech.api.enums.GT_Values.M;
|
||||
import static gregtech.api.enums.GT_Values.RA;
|
||||
import static gregtech.api.enums.GT_Values.V;
|
||||
import static gregtech.api.enums.GT_Values.W;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import cpw.mods.fml.common.event.FMLInterModComms;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import gregtech.GT_Mod;
|
||||
import gregtech.api.GregTech_API;
|
||||
import gregtech.api.enums.*;
|
||||
import gregtech.api.enums.ConfigCategories;
|
||||
import gregtech.api.enums.ItemList;
|
||||
import gregtech.api.enums.Materials;
|
||||
import gregtech.api.enums.OreDictNames;
|
||||
import gregtech.api.enums.OrePrefixes;
|
||||
import gregtech.api.enums.ToolDictNames;
|
||||
import gregtech.api.interfaces.IDamagableItem;
|
||||
import gregtech.api.interfaces.IItemContainer;
|
||||
import gregtech.api.interfaces.internal.IGT_CraftingRecipe;
|
||||
|
@ -29,7 +55,11 @@ import net.minecraft.inventory.InventoryCrafting;
|
|||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.*;
|
||||
import net.minecraft.item.crafting.CraftingManager;
|
||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraft.item.crafting.ShapedRecipes;
|
||||
import net.minecraft.item.crafting.ShapelessRecipes;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntityFurnace;
|
||||
import net.minecraft.world.World;
|
||||
|
@ -38,13 +68,6 @@ import net.minecraftforge.fluids.FluidStack;
|
|||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import static gregtech.api.enums.GT_Values.*;
|
||||
|
||||
/**
|
||||
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
|
||||
* <p/>
|
||||
|
@ -600,13 +623,39 @@ public class GT_ModHandler {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* A static instance of the Immersive Engineering recipe handler to improve reflective access
|
||||
*/
|
||||
private static Method mRecipeIE;
|
||||
|
||||
|
||||
|
||||
public static boolean addImmersiveEngineeringRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3){
|
||||
if(GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes){
|
||||
blusunrize.immersiveengineering.common.IERecipes.addCrusherRecipe(aOutput1, aInput, 6000, aOutput2, 0.15f);
|
||||
//Get IE Recipe Handler
|
||||
try {
|
||||
if (mRecipeIE == null) {
|
||||
mRecipeIE = Class.forName("blusunrize.immersiveengineering.common.IERecipes").getDeclaredMethod("addCrusherRecipe", ItemStack.class, ItemStack.class, int.class, ItemStack.class, float.class);
|
||||
}
|
||||
return (boolean) mRecipeIE.invoke(null, aOutput1, aInput, 6000, aOutput2, 0.15f);
|
||||
}
|
||||
catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||
GT_Log.err.println("WARNING: Bad Reflection into Immersive Engineering Crusher recipe handler.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* A static instance of the Magneticraft recipe handler to improve reflective access
|
||||
*/
|
||||
private static Class mRecipeMag;
|
||||
|
||||
private static Method mRecipeMagSifter;
|
||||
private static Method mRecipeMagCrusher;
|
||||
private static Method mRecipeMagGrinder;
|
||||
|
||||
public static boolean addMagneticraftRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3){
|
||||
if(GregTech_API.mMagneticraft && GT_Mod.gregtechproxy.mMagneticraftRecipes){
|
||||
ItemData tData = GT_OreDictUnificator.getAssociation(aInput);
|
||||
|
@ -621,60 +670,50 @@ public class GT_ModHandler {
|
|||
return true;
|
||||
}
|
||||
|
||||
public static boolean registerMagneticraftSifterRecipe(final ItemStack in, final ItemStack out, final ItemStack extra,
|
||||
final float prob) {
|
||||
//Get Magnetiraft Recipe Handler
|
||||
Class cls;
|
||||
try {
|
||||
cls = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||
//Get registerCrusherRecipe method from class.
|
||||
Method mCrusher = cls.getDeclaredMethod("registerSifterRecipe", ItemStack.class, ItemStack.class,
|
||||
ItemStack.class, float.class);
|
||||
//Invoke Method
|
||||
return (boolean) mCrusher.invoke(null, in, out, extra, prob);
|
||||
|
||||
}
|
||||
catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||
GT_Log.err.println("WARNING: Bad Reflection into Magneticraft Sifter handler.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean registerMagneticraftCrusherRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1,
|
||||
final float prob1, final ItemStack out2, final float prob2) {
|
||||
//Get Magnetiraft Recipe Handler
|
||||
Class cls;
|
||||
try {
|
||||
cls = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||
//Get registerCrusherRecipe method from class.
|
||||
Method mCrusher = cls.getDeclaredMethod("registerCrusherRecipe", ItemStack.class, ItemStack.class,
|
||||
ItemStack.class, float.class, ItemStack.class, float.class);
|
||||
//Invoke Method
|
||||
return (boolean) mCrusher.invoke(null, in, out0, out1,(float)((float)prob1/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), out2,(float)((float)prob2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent));
|
||||
|
||||
public static boolean registerMagneticraftSifterRecipe(final ItemStack in, final ItemStack out, final ItemStack extra, final float prob) {
|
||||
try {
|
||||
if (mRecipeMag == null) {
|
||||
mRecipeMag = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||
}
|
||||
if (mRecipeMagSifter == null) {
|
||||
mRecipeMagSifter = mRecipeMag.getDeclaredMethod("registerSifterRecipe", ItemStack.class, ItemStack.class, ItemStack.class, float.class);
|
||||
}
|
||||
return (boolean) mRecipeMagSifter.invoke(null, in, out, extra, prob);
|
||||
}
|
||||
catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||
GT_Log.err.println("WARNING: Bad Reflection into Magneticraft Crusher handler.");
|
||||
GT_Log.err.println("WARNING: Bad Reflection into Magneticraft Sifter recipe handler.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean registerMagneticraftCrusherRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1, final float prob1, final ItemStack out2, final float prob2) {
|
||||
try {
|
||||
if (mRecipeMag == null) {
|
||||
mRecipeMag = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||
}
|
||||
if (mRecipeMagCrusher == null) {
|
||||
mRecipeMagCrusher = mRecipeMag.getDeclaredMethod("registerCrusherRecipe", ItemStack.class, ItemStack.class, ItemStack.class, float.class, ItemStack.class, float.class);
|
||||
}
|
||||
return (boolean) mRecipeMagCrusher.invoke(null, in, out0, out1,(float)((float)prob1/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), out2,(float)((float)prob2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent));
|
||||
}
|
||||
catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||
GT_Log.err.println("WARNING: Bad Reflection into Magneticraft Crusher recipe handler.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean registerMagneticraftGrinderRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1,
|
||||
final float prob1, final ItemStack out2, final float prob2) {
|
||||
//Get Magnetiraft Recipe Handler
|
||||
Class cls;
|
||||
try {
|
||||
cls = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||
|
||||
//Get registerGrinderRecipe method from class.
|
||||
Method mGrinder = cls.getDeclaredMethod("registerGrinderRecipe", ItemStack.class, ItemStack.class,
|
||||
ItemStack.class, float.class, ItemStack.class, float.class);
|
||||
//Invoke Method
|
||||
return (boolean) mGrinder.invoke(null, in, out0, out1,(float)((float)prob1/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), out2,(float)((float)prob2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent));
|
||||
|
||||
public static boolean registerMagneticraftGrinderRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1, final float prob1, final ItemStack out2, final float prob2) {
|
||||
try {
|
||||
if (mRecipeMag == null) {
|
||||
mRecipeMag = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||
}
|
||||
if (mRecipeMagGrinder == null) {
|
||||
mRecipeMagGrinder = mRecipeMag.getDeclaredMethod("registerGrinderRecipe", ItemStack.class, ItemStack.class, ItemStack.class, float.class, ItemStack.class, float.class);
|
||||
}
|
||||
return (boolean) mRecipeMagGrinder.invoke(null, in, out0, out1,(float)((float)prob1/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), out2,(float)((float)prob2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent));
|
||||
}
|
||||
catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||
GT_Log.err.println("WARNING: Bad Reflection into Magneticraft Grinder handler.");
|
||||
GT_Log.err.println("WARNING: Bad Reflection into Magneticraft Grinder recipe handler.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,39 @@
|
|||
package gregtech.api.util;
|
||||
|
||||
import static gregtech.api.enums.GT_Values.D1;
|
||||
import static gregtech.api.enums.GT_Values.DW;
|
||||
import static gregtech.api.enums.GT_Values.E;
|
||||
import static gregtech.api.enums.GT_Values.GT;
|
||||
import static gregtech.api.enums.GT_Values.L;
|
||||
import static gregtech.api.enums.GT_Values.M;
|
||||
import static gregtech.api.enums.GT_Values.NW;
|
||||
import static gregtech.api.enums.GT_Values.V;
|
||||
import static gregtech.api.enums.GT_Values.W;
|
||||
import static gregtech.common.GT_Proxy.GTPOLLUTION;
|
||||
import static gregtech.common.GT_UndergroundOil.undergroundOilReadInformation;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import cofh.api.transport.IItemDuct;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import gregtech.api.GregTech_API;
|
||||
|
@ -13,7 +47,12 @@ import gregtech.api.events.BlockScanningEvent;
|
|||
import gregtech.api.interfaces.IDebugableBlock;
|
||||
import gregtech.api.interfaces.IProjectileItem;
|
||||
import gregtech.api.interfaces.ITexture;
|
||||
import gregtech.api.interfaces.tileentity.*;
|
||||
import gregtech.api.interfaces.tileentity.IBasicEnergyContainer;
|
||||
import gregtech.api.interfaces.tileentity.ICoverable;
|
||||
import gregtech.api.interfaces.tileentity.IGregTechDeviceInformation;
|
||||
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
|
||||
import gregtech.api.interfaces.tileentity.IMachineProgress;
|
||||
import gregtech.api.interfaces.tileentity.IUpgradableMachine;
|
||||
import gregtech.api.items.GT_EnergyArmor_Item;
|
||||
import gregtech.api.items.GT_Generic_Item;
|
||||
import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable;
|
||||
|
@ -26,10 +65,15 @@ import ic2.api.recipe.IRecipeInput;
|
|||
import ic2.api.recipe.RecipeInputItemStack;
|
||||
import ic2.api.recipe.RecipeInputOreDict;
|
||||
import ic2.api.recipe.RecipeOutput;
|
||||
import ic2.core.IC2Potion;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.*;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityList;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.EnumCreatureAttribute;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
|
@ -62,23 +106,12 @@ import net.minecraftforge.common.util.FakePlayerFactory;
|
|||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.event.ForgeEventFactory;
|
||||
import net.minecraftforge.event.world.BlockEvent;
|
||||
import net.minecraftforge.fluids.*;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import static gregtech.api.enums.GT_Values.*;
|
||||
import static gregtech.common.GT_Proxy.GTPOLLUTION;
|
||||
import static gregtech.common.GT_UndergroundOil.undergroundOilReadInformation;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidContainerItem;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
|
||||
/**
|
||||
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
|
||||
|
@ -367,7 +400,20 @@ public class GT_Utility {
|
|||
if (TE_CHECK && aTileEntity instanceof IItemDuct) return true;
|
||||
if (BC_CHECK && aTileEntity instanceof buildcraft.api.transport.IPipeTile)
|
||||
return ((buildcraft.api.transport.IPipeTile) aTileEntity).isPipeConnected(ForgeDirection.getOrientation(aSide));
|
||||
if (GregTech_API.mTranslocator && aTileEntity instanceof codechicken.translocator.TileItemTranslocator) return true;
|
||||
|
||||
if (GregTech_API.mTranslocator) {
|
||||
try {
|
||||
Class aCodeChickenTranslocator = Class.forName("codechicken.translocator.TileLiquidTranslocator");
|
||||
if (aCodeChickenTranslocator != null) {
|
||||
if (aCodeChickenTranslocator.isInstance(aTileEntity)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Throwable t) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -1309,7 +1355,7 @@ public class GT_Utility {
|
|||
aEntity.addPotionEffect(new PotionEffect(Potion.confusion.id, aLevel * 130 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.confusion)) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7)));
|
||||
aEntity.addPotionEffect(new PotionEffect(Potion.weakness.id, aLevel * 150 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.weakness)) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7)));
|
||||
aEntity.addPotionEffect(new PotionEffect(Potion.hunger.id, aLevel * 130 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.hunger)) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7)));
|
||||
aEntity.addPotionEffect(new PotionEffect(24 /* IC2 Radiation */, aLevel * 180 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.potionTypes[24])) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7)));
|
||||
aEntity.addPotionEffect(new PotionEffect(IC2Potion.radiation.id, aLevel * 180 * aAmountOfItems + Math.max(0, ((tEffect = aEntity.getActivePotionEffect(Potion.potionTypes[24])) == null ? 0 : tEffect.getDuration())), Math.max(0, (5 * aLevel) / 7)));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -4,13 +4,17 @@ import gregtech.GT_Mod;
|
|||
import gregtech.api.GregTech_API;
|
||||
import gregtech.api.enums.GT_Values;
|
||||
import gregtech.api.enums.Materials;
|
||||
import gregtech.api.util.GT_Log;
|
||||
import gregtech.api.world.GT_Worldgen;
|
||||
import gregtech.common.blocks.GT_TileEntity_Ores;
|
||||
import gregtech.loaders.misc.GT_Achievements;
|
||||
import gregtech.loaders.postload.GT_Worldgenloader;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.chunk.IChunkProvider;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
|
@ -37,6 +41,8 @@ public class GT_Worldgen_GT_Ore_Layer
|
|||
public final boolean mAsteroid;
|
||||
public final String aTextWorldgen = "worldgen.";
|
||||
|
||||
private static Method mAddMaterialIE;
|
||||
|
||||
public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, boolean aOverworld, boolean aNether, boolean aEnd, boolean aMoon, boolean aMars, boolean aAsteroid, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) {
|
||||
super(aName, sList, aDefault);
|
||||
this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
|
||||
|
@ -69,7 +75,20 @@ public class GT_Worldgen_GT_Ore_Layer
|
|||
GT_Achievements.registerOre(GregTech_API.sGeneratedMaterials[(mSporadicMeta % 1000)], aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd);
|
||||
sWeight += this.mWeight;
|
||||
if(GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes){
|
||||
blusunrize.immersiveengineering.api.tool.ExcavatorHandler.addMineral(aName.substring(8, 9).toUpperCase()+aName.substring(9), aWeight, 0.2f, new String[]{"ore"+aPrimary.mName,"ore"+aSecondary.mName,"ore"+aBetween.mName,"ore"+aSporadic.mName}, new float[]{.4f,.4f,.15f,.05f});
|
||||
try {
|
||||
if (mAddMaterialIE == null) {
|
||||
mAddMaterialIE = GT_Worldgenloader.mSupportIE.getDeclaredMethod("addMineral", String.class,
|
||||
int.class, float.class, String[].class, float[].class);
|
||||
}
|
||||
mAddMaterialIE
|
||||
.invoke(null, aName.substring(8, 9).toUpperCase() + aName.substring(9), aWeight, 0.2f,
|
||||
new String[] { "ore" + aPrimary.mName, "ore" + aSecondary.mName,
|
||||
"ore" + aBetween.mName, "ore" + aSporadic.mName },
|
||||
new float[] { .4f, .4f, .15f, .05f });
|
||||
} catch (NoSuchMethodException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||
GT_Log.err.println("Could not add Mineral to list for IE Excavator.");
|
||||
GT_Log.err.print(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -43,12 +43,10 @@ public class GT_SensorCard_Item
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public CardState update(TileEntity aPanel, ICardWrapper aCard, int aMaxRange) {
|
||||
return update(aPanel.getWorldObj(), aCard, aMaxRange);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CardState update(World world, ICardWrapper aCard, int aMaxRange) {
|
||||
ChunkCoordinates target = aCard.getTarget();
|
||||
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
package gregtech.loaders.postload;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import bloodasp.galacticgreg.GT_Worldgenerator_Space;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import gregtech.GT_Mod;
|
||||
import gregtech.api.GregTech_API;
|
||||
import gregtech.api.enums.ConfigCategories;
|
||||
import gregtech.api.enums.Materials;
|
||||
import gregtech.api.util.GT_Log;
|
||||
import gregtech.common.GT_Worldgen_GT_Ore_Layer;
|
||||
import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces;
|
||||
import gregtech.common.GT_Worldgen_Stone;
|
||||
|
@ -13,6 +19,28 @@ import gregtech.common.GT_Worldgenerator;
|
|||
|
||||
public class GT_Worldgenloader
|
||||
implements Runnable {
|
||||
|
||||
|
||||
public static final Class mSupportIE;
|
||||
|
||||
//We should use reflection here, since it won't amount to any performance loss.
|
||||
static {
|
||||
Class aTemp;
|
||||
if (GregTech_API.mImmersiveEngineering) {
|
||||
try {
|
||||
aTemp = Class.forName("blusunrize.immersiveengineering.api.tool.ExcavatorHandler");
|
||||
} catch (ClassNotFoundException e) {
|
||||
GT_Log.err.println("Could not access blusunrize.immersiveengineering.api.tool.ExcavatorHandler");
|
||||
GT_Log.err.print(e);
|
||||
aTemp = null;
|
||||
}
|
||||
mSupportIE = aTemp;
|
||||
}
|
||||
else {
|
||||
mSupportIE = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void run() {
|
||||
boolean tPFAA = (GregTech_API.sWorldgenFile.get(ConfigCategories.general, "AutoDetectPFAA", true)) && (Loader.isModLoaded("PFAAGeologica"));
|
||||
|
||||
|
@ -104,9 +132,21 @@ public class GT_Worldgenloader
|
|||
for (int j = GregTech_API.sWorldgenFile.get("worldgen", "AmountOfCustomSmallOreSlots", 16); i < j; i++) {
|
||||
new GT_Worldgen_GT_Ore_SmallPieces("ore.small.custom." + (i < 10 ? "0" : "") + i, false, 0, 0, 0, false, false, false, false, false, false, Materials._NULL);
|
||||
}
|
||||
if (GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes) {
|
||||
blusunrize.immersiveengineering.api.tool.ExcavatorHandler.mineralList.clear();
|
||||
blusunrize.immersiveengineering.api.tool.ExcavatorHandler.mineralCache.clear();
|
||||
if (GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes && mSupportIE != null) {
|
||||
try {
|
||||
Field aMineralList = mSupportIE.getDeclaredField("mineralList");
|
||||
Field aMineralCache = mSupportIE.getDeclaredField("mineralCache");
|
||||
aMineralList.setAccessible(true);
|
||||
aMineralCache.setAccessible(true);
|
||||
Map aEmpty = new HashMap();
|
||||
aMineralList.set(null, aEmpty);
|
||||
aMineralCache.set(null, aEmpty);
|
||||
} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
|
||||
//blusunrize.immersiveengineering.api.tool.ExcavatorHandler.mineralList.clear();
|
||||
//blusunrize.immersiveengineering.api.tool.ExcavatorHandler.mineralCache.clear();
|
||||
GT_Log.err.println("Could not clear Mineral list & cache of IE Excavator.");
|
||||
GT_Log.err.print(e);
|
||||
}
|
||||
}
|
||||
|
||||
new GT_Worldgen_GT_Ore_Layer("ore.mix.naquadah", true, 10, 60, 10, 5, 32, false, false, true, false, true, true, Materials.Naquadah, Materials.Naquadah, Materials.Naquadah, Materials.NaquadahEnriched);
|
||||
|
@ -147,8 +187,13 @@ public class GT_Worldgenloader
|
|||
new GT_Worldgen_GT_Ore_Layer("ore.mix.custom." + (i < 10 ? "0" : "") + i, false, 0, 0, 0, 0, 0, false, false, false, false, false, false, Materials._NULL, Materials._NULL, Materials._NULL, Materials._NULL);
|
||||
}
|
||||
|
||||
if (GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes) {
|
||||
blusunrize.immersiveengineering.api.tool.ExcavatorHandler.recalculateChances(true);
|
||||
if (GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes && mSupportIE != null) {
|
||||
try {
|
||||
mSupportIE.getDeclaredMethod("recalculateChances", boolean.class).invoke(null, true);
|
||||
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
|
||||
GT_Log.err.println("Could not recalculate chances for IE Excavator.");
|
||||
GT_Log.err.print(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue