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:
Alkalus 2019-12-13 17:13:17 +00:00
parent 7b592a645c
commit be8b163c83
9 changed files with 351 additions and 214 deletions

View file

@ -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

View file

@ -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

View file

@ -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);
}
}
}

View file

@ -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,7 +396,20 @@ 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;
@ -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) {
}
}
}
}

View file

@ -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;
public static boolean registerMagneticraftSifterRecipe(final ItemStack in, final ItemStack out, final ItemStack extra, final float prob) {
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));
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;
public static boolean registerMagneticraftGrinderRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1, final float prob1, final ItemStack out2, final float prob2) {
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));
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;
}
}

View file

@ -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;

View file

@ -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);
}
}
}

View file

@ -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();

View file

@ -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);
}
}
}
}