Merge pull request #1550 from draknyte1/Fix-Build-Process
Fixed GT5 Build process. Made some dependencies optional via use of reflection. Made GT use the IC2 radiotation ID instead of it being hardcoded.
This commit is contained in:
commit
2ee9d15321
9 changed files with 351 additions and 214 deletions
142
build.gradle
142
build.gradle
|
@ -1,9 +1,14 @@
|
||||||
buildscript {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
jcenter()
|
||||||
|
//maven {
|
||||||
|
// name = "forge"
|
||||||
|
// url = "http://files.minecraftforge.net/maven"
|
||||||
|
//}
|
||||||
maven {
|
maven {
|
||||||
name = "forge"
|
name = "gt"
|
||||||
url = "http://files.minecraftforge.net/maven"
|
url = "https://gregtech.overminddl1.com/"
|
||||||
}
|
}
|
||||||
maven {
|
maven {
|
||||||
name = "sonatype"
|
name = "sonatype"
|
||||||
|
@ -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'
|
apply plugin: 'idea'
|
||||||
|
idea{
|
||||||
|
module {
|
||||||
|
downloadJavadoc = true
|
||||||
|
downloadSources = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'forge'
|
||||||
|
|
||||||
file "build.properties" withReader {
|
file "build.properties" withReader {
|
||||||
def prop = new Properties()
|
def prop = new Properties()
|
||||||
|
@ -28,9 +55,12 @@ version = "${config.gt.version}"
|
||||||
group= "gregtech"
|
group= "gregtech"
|
||||||
archivesBaseName = "gregtech"
|
archivesBaseName = "gregtech"
|
||||||
|
|
||||||
|
|
||||||
sourceCompatibility = 1.7
|
sourceCompatibility = 1.7
|
||||||
targetCompatibility = 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 {
|
minecraft {
|
||||||
version = "${config.minecraft.version}-${config.forge.version}"
|
version = "${config.minecraft.version}-${config.forge.version}"
|
||||||
|
@ -47,88 +77,46 @@ configurations {
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven {
|
maven {
|
||||||
name 'Forge'
|
name = "gt"
|
||||||
url 'http://files.minecraftforge.net/maven'
|
url = "http://gregtech.overminddl1.com/"
|
||||||
}
|
}
|
||||||
maven {
|
maven {
|
||||||
name = "chickenbones"
|
name = "ic2"
|
||||||
url = "http://chickenbones.net/maven/"
|
|
||||||
}
|
|
||||||
maven {
|
|
||||||
name = "ic2, forestry"
|
|
||||||
url = "http://maven.ic2.player.to/"
|
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]"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// compile fileTree(dir: 'libs', include: '*.jar')
|
// compile fileTree(dir: 'libs', include: '*.jar')
|
||||||
|
|
||||||
compile "tconstruct:TConstruct:${config.minecraft.version}-${config.tconstruct.version}:deobf"
|
// Mostly Used for compileOnly, if you prefer normal IC2, uncomment it instead.
|
||||||
provided ("appeng:appliedenergistics2:${config.ae2.version}:dev") {
|
//provided "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev"
|
||||||
exclude module: '*'
|
compile "ic2:IC2Classic:1.2.1.8:dev"
|
||||||
}
|
|
||||||
provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev"
|
compile "mcp.mobius.waila:Waila:1.5.11-RC2-NONEI_1.7.10:dev"
|
||||||
provided "codechicken:CodeChickenCore:${config.minecraft.version}-${config.codechickencore.version}:dev"
|
compile "codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev"
|
||||||
provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev"
|
compile "codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev"
|
||||||
provided "codechicken:Translocator:${config.minecraft.version}-${config.translocators.version}:dev"
|
compile "codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev"
|
||||||
provided "net.industrial-craft:industrialcraft-2:${config.ic2.version}:dev"
|
|
||||||
provided "net.sengir.forestry:forestry_${config.minecraft.version}:${config.forestry.version}:dev"
|
compileOnly "com.enderio.core:EnderCore:1.7.10-0.2.0.39_beta:dev"
|
||||||
provided "applecore:AppleCore:${config.applecore.version}:api"
|
// "com.enderio:EnderIO:1.7.10-2.3.0.429_beta:dev"
|
||||||
provided "com.enderio.core:EnderCore:${config.enderiocore.version}:dev"
|
compileOnly "com.enderio:EnderIO:1.7.10-2.3.0.430_beta:dev"
|
||||||
provided ("com.enderio:EnderIO:${config.enderio.version}:dev") {
|
|
||||||
transitive = false
|
compileOnly "cofh:CoFHCore:1.7.10R3.0.4:dev"
|
||||||
}
|
compileOnly "cofh:CoFHLib:1.7.10R3.0.3:dev"
|
||||||
provided name: 'buildcraft', version: config.buildcraft.version, classifier: "dev", ext: 'jar'
|
compileOnly "com.mod-buildcraft:buildcraft:7.1.23:dev"
|
||||||
provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar'
|
compileOnly "net.sengir.forestry:forestry_1.7.10:4.2.16.64:dev"
|
||||||
provided name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar'
|
compileOnly "mods.railcraft:Railcraft_1.7.10:9.12.3.0:dev"
|
||||||
provided name: 'Railcraft', version: config.railcraft.version, ext: 'jar'
|
|
||||||
provided name: 'IC2NuclearControl', version: config.nc.version, ext: 'jar'
|
compileOnly "micdoodle8.mods:GalacticraftCore:1.7-3.0.12.504:Dev"
|
||||||
provided name: 'ImmersiveEngineering', version: config.immeng.version, ext: 'jar'
|
compileOnly "micdoodle8.mods:MicdoodleCore:1.7-3.0.12.504:Dev"
|
||||||
provided name: 'magneticraft', version: config.magneticraft.version, ext: 'jar'
|
|
||||||
// compile files("libs/Galacticraft-API-1.7-${config.gc.version}.jar")
|
compileOnly "thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev"
|
||||||
// compile files("libs/GalacticraftCore-Dev-${config.gc.version}.jar")
|
compileOnly "com.azanor.baubles:Baubles:1.7.10-1.0.1.10:deobf"
|
||||||
provided name: "Galacticraft-API", version: config.gc.version, ext: 'jar'
|
compileOnly "appeng:appliedenergistics2:rv3-beta-6:dev"
|
||||||
provided name: "GalacticraftCore-Dev", version: config.gc.version, ext: 'jar'
|
compileOnly "applecore:AppleCore:1.7.10-3.1.1:deobf"
|
||||||
|
compileOnly "com.shedar.IC2NuclearControl:IC2NuclearControl:2.4.3a:dev"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources
|
processResources
|
||||||
|
|
|
@ -1,30 +1,4 @@
|
||||||
minecraft.version=1.7.10
|
minecraft.version=1.7.10
|
||||||
forge.version=10.13.4.1566-1.7.10
|
forge.version=10.13.4.1614-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
|
|
||||||
ic2.version=2.2.790-experimental
|
ic2.version=2.2.790-experimental
|
||||||
nei.version=1.0.3.57
|
gt.version=5.09.31
|
||||||
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
|
|
|
@ -1,18 +1,18 @@
|
||||||
package gregtech.api.items;
|
package gregtech.api.items;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import gregtech.api.GregTech_API;
|
import gregtech.api.GregTech_API;
|
||||||
|
import gregtech.api.util.GT_Utility;
|
||||||
import ic2.api.reactor.IReactor;
|
import ic2.api.reactor.IReactor;
|
||||||
import ic2.api.reactor.IReactorComponent;
|
import ic2.api.reactor.IReactorComponent;
|
||||||
import ic2.core.IC2Potion;
|
|
||||||
import ic2.core.item.armor.ItemArmorHazmat;
|
import ic2.core.item.armor.ItemArmorHazmat;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
|
|
||||||
public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implements IReactorComponent {
|
public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implements IReactorComponent {
|
||||||
public final int numberOfCells;
|
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)) {
|
if (this.sRadiation > 0 && (entity instanceof EntityLivingBase)) {
|
||||||
EntityLivingBase entityLiving = (EntityLivingBase) entity;
|
EntityLivingBase entityLiving = (EntityLivingBase) entity;
|
||||||
if (!GregTech_API.mIC2Classic&&!ItemArmorHazmat.hasCompleteHazmat(entityLiving)) {
|
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;
|
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.GT_Mod;
|
||||||
import gregtech.api.GregTech_API;
|
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.ITexture;
|
||||||
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
|
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
|
||||||
import gregtech.api.interfaces.tileentity.ICoverable;
|
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.BaseMetaPipeEntity;
|
||||||
import gregtech.api.metatileentity.MetaPipeEntity;
|
import gregtech.api.metatileentity.MetaPipeEntity;
|
||||||
import gregtech.api.objects.GT_RenderedTexture;
|
import gregtech.api.objects.GT_RenderedTexture;
|
||||||
import gregtech.api.util.GT_CoverBehavior;
|
|
||||||
import gregtech.api.objects.XSTR;
|
import gregtech.api.objects.XSTR;
|
||||||
|
import gregtech.api.util.GT_CoverBehavior;
|
||||||
import gregtech.api.util.GT_Log;
|
import gregtech.api.util.GT_Log;
|
||||||
import gregtech.api.util.GT_Utility;
|
import gregtech.api.util.GT_Utility;
|
||||||
import gregtech.common.GT_Client;
|
import gregtech.common.GT_Client;
|
||||||
import gregtech.common.covers.GT_Cover_Drain;
|
import gregtech.common.covers.GT_Cover_Drain;
|
||||||
import gregtech.common.covers.GT_Cover_FluidRegulator;
|
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
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.FluidStack;
|
||||||
import net.minecraftforge.fluids.FluidTankInfo;
|
import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
import net.minecraftforge.fluids.IFluidHandler;
|
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 class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
|
||||||
public final float mThickNess;
|
public final float mThickNess;
|
||||||
|
@ -392,7 +396,20 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
|
||||||
if (coverBehavior instanceof GT_Cover_Drain) return true;
|
if (coverBehavior instanceof GT_Cover_Drain) return true;
|
||||||
|
|
||||||
// Tinker Construct Faucets return a null tank info, so check the class
|
// 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;
|
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;
|
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
|
// 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 (GregTech_API.mTranslocator) {
|
||||||
if (gTileEntity != null && gTileEntity.getCoverBehaviorAtSide(tSide) instanceof GT_Cover_FluidRegulator) return true;
|
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;
|
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.event.FMLInterModComms;
|
||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
import gregtech.GT_Mod;
|
import gregtech.GT_Mod;
|
||||||
import gregtech.api.GregTech_API;
|
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.IDamagableItem;
|
||||||
import gregtech.api.interfaces.IItemContainer;
|
import gregtech.api.interfaces.IItemContainer;
|
||||||
import gregtech.api.interfaces.internal.IGT_CraftingRecipe;
|
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.Item;
|
||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
import net.minecraft.item.ItemStack;
|
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.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntityFurnace;
|
import net.minecraft.tileentity.TileEntityFurnace;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
@ -38,13 +68,6 @@ import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
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!!!
|
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
|
||||||
* <p/>
|
* <p/>
|
||||||
|
@ -600,13 +623,39 @@ public class GT_ModHandler {
|
||||||
return true;
|
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){
|
public static boolean addImmersiveEngineeringRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3){
|
||||||
if(GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes){
|
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;
|
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){
|
public static boolean addMagneticraftRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3){
|
||||||
if(GregTech_API.mMagneticraft && GT_Mod.gregtechproxy.mMagneticraftRecipes){
|
if(GregTech_API.mMagneticraft && GT_Mod.gregtechproxy.mMagneticraftRecipes){
|
||||||
ItemData tData = GT_OreDictUnificator.getAssociation(aInput);
|
ItemData tData = GT_OreDictUnificator.getAssociation(aInput);
|
||||||
|
@ -621,60 +670,50 @@ public class GT_ModHandler {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean registerMagneticraftSifterRecipe(final ItemStack in, final ItemStack out, final ItemStack extra,
|
public static boolean registerMagneticraftSifterRecipe(final ItemStack in, final ItemStack out, final ItemStack extra, final float prob) {
|
||||||
final float prob) {
|
|
||||||
//Get Magnetiraft Recipe Handler
|
|
||||||
Class cls;
|
|
||||||
try {
|
try {
|
||||||
cls = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
if (mRecipeMag == null) {
|
||||||
//Get registerCrusherRecipe method from class.
|
mRecipeMag = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||||
Method mCrusher = cls.getDeclaredMethod("registerSifterRecipe", ItemStack.class, ItemStack.class,
|
}
|
||||||
ItemStack.class, float.class);
|
if (mRecipeMagSifter == null) {
|
||||||
//Invoke Method
|
mRecipeMagSifter = mRecipeMag.getDeclaredMethod("registerSifterRecipe", ItemStack.class, ItemStack.class, ItemStack.class, float.class);
|
||||||
return (boolean) mCrusher.invoke(null, in, out, extra, prob);
|
}
|
||||||
|
return (boolean) mRecipeMagSifter.invoke(null, in, out, extra, prob);
|
||||||
}
|
}
|
||||||
catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||||
GT_Log.err.println("WARNING: Bad Reflection into Magneticraft Sifter handler.");
|
GT_Log.err.println("WARNING: Bad Reflection into Magneticraft Sifter recipe handler.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean registerMagneticraftCrusherRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1,
|
public static boolean registerMagneticraftCrusherRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1, final float prob1, final ItemStack out2, final float prob2) {
|
||||||
final float prob1, final ItemStack out2, final float prob2) {
|
|
||||||
//Get Magnetiraft Recipe Handler
|
|
||||||
Class cls;
|
|
||||||
try {
|
try {
|
||||||
cls = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
if (mRecipeMag == null) {
|
||||||
//Get registerCrusherRecipe method from class.
|
mRecipeMag = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||||
Method mCrusher = cls.getDeclaredMethod("registerCrusherRecipe", ItemStack.class, ItemStack.class,
|
}
|
||||||
ItemStack.class, float.class, ItemStack.class, float.class);
|
if (mRecipeMagCrusher == null) {
|
||||||
//Invoke Method
|
mRecipeMagCrusher = mRecipeMag.getDeclaredMethod("registerCrusherRecipe", ItemStack.class, ItemStack.class, ItemStack.class, float.class, ItemStack.class, float.class);
|
||||||
return (boolean) mCrusher.invoke(null, in, out0, out1,(float)((float)prob1/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), out2,(float)((float)prob2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent));
|
}
|
||||||
|
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) {
|
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 Crusher recipe handler.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean registerMagneticraftGrinderRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1,
|
public static boolean registerMagneticraftGrinderRecipe(final ItemStack in, final ItemStack out0, final ItemStack out1, final float prob1, final ItemStack out2, final float prob2) {
|
||||||
final float prob1, final ItemStack out2, final float prob2) {
|
|
||||||
//Get Magnetiraft Recipe Handler
|
|
||||||
Class cls;
|
|
||||||
try {
|
try {
|
||||||
cls = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
if (mRecipeMag == null) {
|
||||||
|
mRecipeMag = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
|
||||||
//Get registerGrinderRecipe method from class.
|
}
|
||||||
Method mGrinder = cls.getDeclaredMethod("registerGrinderRecipe", ItemStack.class, ItemStack.class,
|
if (mRecipeMagGrinder == null) {
|
||||||
ItemStack.class, float.class, ItemStack.class, float.class);
|
mRecipeMagGrinder = mRecipeMag.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));
|
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) {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,39 @@
|
||||||
package gregtech.api.util;
|
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 cofh.api.transport.IItemDuct;
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
import gregtech.api.GregTech_API;
|
import gregtech.api.GregTech_API;
|
||||||
|
@ -13,7 +47,12 @@ import gregtech.api.events.BlockScanningEvent;
|
||||||
import gregtech.api.interfaces.IDebugableBlock;
|
import gregtech.api.interfaces.IDebugableBlock;
|
||||||
import gregtech.api.interfaces.IProjectileItem;
|
import gregtech.api.interfaces.IProjectileItem;
|
||||||
import gregtech.api.interfaces.ITexture;
|
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_EnergyArmor_Item;
|
||||||
import gregtech.api.items.GT_Generic_Item;
|
import gregtech.api.items.GT_Generic_Item;
|
||||||
import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable;
|
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.RecipeInputItemStack;
|
||||||
import ic2.api.recipe.RecipeInputOreDict;
|
import ic2.api.recipe.RecipeInputOreDict;
|
||||||
import ic2.api.recipe.RecipeOutput;
|
import ic2.api.recipe.RecipeOutput;
|
||||||
|
import ic2.core.IC2Potion;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.enchantment.Enchantment;
|
import net.minecraft.enchantment.Enchantment;
|
||||||
import net.minecraft.enchantment.EnchantmentHelper;
|
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.item.EntityItem;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
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.common.util.ForgeDirection;
|
||||||
import net.minecraftforge.event.ForgeEventFactory;
|
import net.minecraftforge.event.ForgeEventFactory;
|
||||||
import net.minecraftforge.event.world.BlockEvent;
|
import net.minecraftforge.event.world.BlockEvent;
|
||||||
import net.minecraftforge.fluids.*;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData;
|
import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import java.lang.reflect.Constructor;
|
import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
import java.lang.reflect.Field;
|
import net.minecraftforge.fluids.IFluidContainerItem;
|
||||||
import java.lang.reflect.Method;
|
import net.minecraftforge.fluids.IFluidHandler;
|
||||||
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;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
|
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
|
||||||
|
@ -367,7 +400,20 @@ public class GT_Utility {
|
||||||
if (TE_CHECK && aTileEntity instanceof IItemDuct) return true;
|
if (TE_CHECK && aTileEntity instanceof IItemDuct) return true;
|
||||||
if (BC_CHECK && aTileEntity instanceof buildcraft.api.transport.IPipeTile)
|
if (BC_CHECK && aTileEntity instanceof buildcraft.api.transport.IPipeTile)
|
||||||
return ((buildcraft.api.transport.IPipeTile) aTileEntity).isPipeConnected(ForgeDirection.getOrientation(aSide));
|
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;
|
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.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.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(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 true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -4,13 +4,17 @@ import gregtech.GT_Mod;
|
||||||
import gregtech.api.GregTech_API;
|
import gregtech.api.GregTech_API;
|
||||||
import gregtech.api.enums.GT_Values;
|
import gregtech.api.enums.GT_Values;
|
||||||
import gregtech.api.enums.Materials;
|
import gregtech.api.enums.Materials;
|
||||||
|
import gregtech.api.util.GT_Log;
|
||||||
import gregtech.api.world.GT_Worldgen;
|
import gregtech.api.world.GT_Worldgen;
|
||||||
import gregtech.common.blocks.GT_TileEntity_Ores;
|
import gregtech.common.blocks.GT_TileEntity_Ores;
|
||||||
import gregtech.loaders.misc.GT_Achievements;
|
import gregtech.loaders.misc.GT_Achievements;
|
||||||
|
import gregtech.loaders.postload.GT_Worldgenloader;
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.chunk.IChunkProvider;
|
import net.minecraft.world.chunk.IChunkProvider;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
@ -37,6 +41,8 @@ public class GT_Worldgen_GT_Ore_Layer
|
||||||
public final boolean mAsteroid;
|
public final boolean mAsteroid;
|
||||||
public final String aTextWorldgen = "worldgen.";
|
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) {
|
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);
|
super(aName, sList, aDefault);
|
||||||
this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
|
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);
|
GT_Achievements.registerOre(GregTech_API.sGeneratedMaterials[(mSporadicMeta % 1000)], aMinY, aMaxY, aWeight, aOverworld, aNether, aEnd);
|
||||||
sWeight += this.mWeight;
|
sWeight += this.mWeight;
|
||||||
if(GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes){
|
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) {
|
public CardState update(TileEntity aPanel, ICardWrapper aCard, int aMaxRange) {
|
||||||
return update(aPanel.getWorldObj(), aCard, aMaxRange);
|
return update(aPanel.getWorldObj(), aCard, aMaxRange);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public CardState update(World world, ICardWrapper aCard, int aMaxRange) {
|
public CardState update(World world, ICardWrapper aCard, int aMaxRange) {
|
||||||
ChunkCoordinates target = aCard.getTarget();
|
ChunkCoordinates target = aCard.getTarget();
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
package gregtech.loaders.postload;
|
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 bloodasp.galacticgreg.GT_Worldgenerator_Space;
|
||||||
import cpw.mods.fml.common.Loader;
|
import cpw.mods.fml.common.Loader;
|
||||||
import gregtech.GT_Mod;
|
import gregtech.GT_Mod;
|
||||||
import gregtech.api.GregTech_API;
|
import gregtech.api.GregTech_API;
|
||||||
import gregtech.api.enums.ConfigCategories;
|
import gregtech.api.enums.ConfigCategories;
|
||||||
import gregtech.api.enums.Materials;
|
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_Layer;
|
||||||
import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces;
|
import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces;
|
||||||
import gregtech.common.GT_Worldgen_Stone;
|
import gregtech.common.GT_Worldgen_Stone;
|
||||||
|
@ -13,6 +19,28 @@ import gregtech.common.GT_Worldgenerator;
|
||||||
|
|
||||||
public class GT_Worldgenloader
|
public class GT_Worldgenloader
|
||||||
implements Runnable {
|
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() {
|
public void run() {
|
||||||
boolean tPFAA = (GregTech_API.sWorldgenFile.get(ConfigCategories.general, "AutoDetectPFAA", true)) && (Loader.isModLoaded("PFAAGeologica"));
|
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++) {
|
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);
|
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) {
|
if (GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes && mSupportIE != null) {
|
||||||
blusunrize.immersiveengineering.api.tool.ExcavatorHandler.mineralList.clear();
|
try {
|
||||||
blusunrize.immersiveengineering.api.tool.ExcavatorHandler.mineralCache.clear();
|
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);
|
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);
|
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) {
|
if (GregTech_API.mImmersiveEngineering && GT_Mod.gregtechproxy.mImmersiveEngineeringRecipes && mSupportIE != null) {
|
||||||
blusunrize.immersiveengineering.api.tool.ExcavatorHandler.recalculateChances(true);
|
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