aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-09-17 11:35:28 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-09-17 11:35:28 +1000
commit1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8 (patch)
treeff1ce8a6a3f80ff983b4b4d7f28a88071192d60f
parentd97a7ac46781088de352c6998c18c9e91da0200d (diff)
downloadGT5-Unofficial-1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8.tar.gz
GT5-Unofficial-1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8.tar.bz2
GT5-Unofficial-1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8.zip
+ Added the Large Arc Furnace.
% Cleaned up Preloader_Transformer_Handler.java. % Tweaked DevHelper.java.
-rw-r--r--src/Java/gtPlusPlus/RoadMap.java9
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java1
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/network/PacketDispatcher.java4
-rw-r--r--src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java2
-rw-r--r--src/Java/gtPlusPlus/preloader/DevHelper.java34
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java111
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java5
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java8
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java237
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIndustrialArcFurnace.java22
10 files changed, 322 insertions, 111 deletions
diff --git a/src/Java/gtPlusPlus/RoadMap.java b/src/Java/gtPlusPlus/RoadMap.java
index 47a0116192..95d00dab95 100644
--- a/src/Java/gtPlusPlus/RoadMap.java
+++ b/src/Java/gtPlusPlus/RoadMap.java
@@ -1,5 +1,12 @@
package gtPlusPlus;
+import java.util.LinkedHashMap;
+
+import com.google.common.base.Objects;
+
+import gtPlusPlus.api.objects.data.ObjMap;
+import net.minecraft.item.ItemStack;
+
/**
* This Class purely exists to note down ideas and or plans to (re)implement things.
*
@@ -63,7 +70,7 @@ public class RoadMap {
return false;
}*/
-/* private static final LinkedHashMap<String, ObjMap<Integer, Boolean>>mCachedResults = new LinkedHashMap<String, ObjMap<Integer, Boolean>>();
+ /*private static final LinkedHashMap<String, ObjMap<Integer, Boolean>>mCachedResults = new LinkedHashMap<String, ObjMap<Integer, Boolean>>();
public boolean contains(ItemStack aStack) {
if (aStack == null){
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index 2b442823b4..ff31fa6cdf 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -117,6 +117,7 @@ public class COMPAT_HANDLER {
GregtechIndustrialMixer.run();
GregtechCustomHatches.run();
GregtechNaqReactor.run();
+ GregtechIndustrialArcFurnace.run();
//New Horizons Content
NewHorizonsAccelerator.run();
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/network/PacketDispatcher.java b/src/Java/gtPlusPlus/core/util/minecraft/network/PacketDispatcher.java
index 3e3801bff3..f61a6f2b6c 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/network/PacketDispatcher.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/network/PacketDispatcher.java
@@ -59,7 +59,7 @@ public class PacketDispatcher {
Method a, b;
try {
- a = DevHelper.getInstance().getForgeMethod(PlayerManager.class, "getOrCreateChunkWatcher", int.class, int.class, boolean.class);
+ a = DevHelper.getForgeMethod(PlayerManager.class, "getOrCreateChunkWatcher", int.class, int.class, boolean.class);
}
catch (Throwable t) {
a = ReflectionHelper.findMethod(playerInstanceClass, (Object) null,
@@ -67,7 +67,7 @@ public class PacketDispatcher {
new Class[]{Integer.TYPE, Integer.TYPE, Boolean.TYPE});
}
try {
- b = DevHelper.getInstance().getForgeMethod(PlayerManager.class, "sendToAllPlayersWatchingChunk", Packet.class);
+ b = DevHelper.getForgeMethod(PlayerManager.class, "sendToAllPlayersWatchingChunk", Packet.class);
}
catch (Throwable t) {
b = ReflectionHelper.findMethod(playerInstanceClass, (Object) null,
diff --git a/src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java b/src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
index d0ef4587df..e0fef80b52 100644
--- a/src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
+++ b/src/Java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java
@@ -18,7 +18,7 @@ public class VanillaBedHeightFix implements IBugFix {
public VanillaBedHeightFix() {
if (DevHelper.isValidHelperObject()) {
- Method m = DevHelper.getInstance().getForgeMethod(EntityPlayer.class, "sleepInBedAt", int.class, int.class,
+ Method m = DevHelper.getForgeMethod(EntityPlayer.class, "sleepInBedAt", int.class, int.class,
int.class);
if (m != null) {
mSleepInBedAt = m;
diff --git a/src/Java/gtPlusPlus/preloader/DevHelper.java b/src/Java/gtPlusPlus/preloader/DevHelper.java
index 1bfbc0b6eb..9b90617c8e 100644
--- a/src/Java/gtPlusPlus/preloader/DevHelper.java
+++ b/src/Java/gtPlusPlus/preloader/DevHelper.java
@@ -48,12 +48,11 @@ public class DevHelper {
}
@SuppressWarnings("rawtypes")
- public Method getForgeMethod(Class c, String s, Class... varags) {
+ public static Method getForgeMethod(Class c, String s, Class... varags) {
String s1, s2;
Method a, b;
s1 = s;
- s2 = getSRG(s);
-
+ s2 = getSRG(s);
try {
a = ReflectionUtils.getMethod(c, s1, varags);
if (a != null) {
@@ -101,7 +100,7 @@ public class DevHelper {
- public static synchronized final DevHelper getInstance() {
+ private static synchronized final DevHelper getInstance() {
return mInstance;
}
@@ -109,20 +108,31 @@ public class DevHelper {
return mIsValidHelper;
}
- public String getSRG(String mForgeName) {
- return DevHelperInternals.forgeToSrg.get(mForgeName);
+ public static String getSRG(String mForgeName) {
+ String aSRG = DevHelperInternals.forgeToSrg.get(mForgeName);
+ return aSRG != null ? aSRG : "BAD_SRG_NAME";
}
- public String getForge(String mSrgName) {
- return DevHelperInternals.srgToForge.get(mSrgName);
+ public static String getForge(String mSrgName) {
+ String aForgeName = DevHelperInternals.srgToForge.get(mSrgName);
+ return aForgeName != null ? aForgeName : "BAD_FORGE_NAME";
+ }
+
+ public static String getMinecraftClassName(String adeObName, boolean obfuscated) {
+ if (obfuscated) {
+ return getObfuscated(adeObName);
+ }
+ return adeObName;
}
- public String getObfuscated(String mDeob) {
- return DevHelperInternals.deObToOb.get(mDeob);
+ public static String getObfuscated(String mDeob) {
+ String obfuscatedClassname = DevHelperInternals.deObToOb.get(mDeob);
+ return obfuscatedClassname != null ? obfuscatedClassname : "BAD_OBFUSCATED_CLASS_NAME";
}
- public String getDeobfuscated(String mOb) {
- return DevHelperInternals.obToDeOb.get(mOb);
+ public static String getDeobfuscated(String mOb) {
+ String deobfuscatedClassname = DevHelperInternals.obToDeOb.get(mOb);
+ return deobfuscatedClassname != null ? deobfuscatedClassname : "BAD_DEOBFUSCATED_CLASS_NAME";
}
public static class DevHelperInternals {
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
index 525db7e961..ea08c07f48 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
@@ -59,18 +59,12 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
}
// Fix Tinkers Fluids
- if (findMod("TConstruct")) {
if (transformedName.equals("tconstruct.smeltery.blocks.TConstructFluid")) {
FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_TiConFluids("getLightValue", obfuscated, basicClass).getWriter().toByteArray();
}
- }
- else {
- FMLRelaunchLog.log("[GT++ ASM] Bright Fluids", Level.INFO, "TiCon Bright Fluids ASM not loaded.");
- }
//Fix GC stuff
- if (findMod("GalacticraftCore")) {
if (transformedName.equals("micdoodle8.mods.galacticraft.core.util.FluidUtil")) {
FMLRelaunchLog.log("[GT++ ASM] Galacticraft FluidUtils Patch", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_GC_FluidUtil(basicClass).getWriter().toByteArray();
@@ -79,13 +73,25 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
FMLRelaunchLog.log("[GT++ ASM] Galacticraft Fuel_Loader Patch", Level.INFO, "Transforming %s", transformedName);
return new ClassTransformer_GC_FuelLoader(basicClass).getWriter().toByteArray();
}
- }
- else {
- FMLRelaunchLog.log("[GT++ ASM] GC Fuel Patch", Level.INFO, "GC Fuel Loader ASM not loaded.");
- }
-
- //Improve OB Sprinklers
- if (findMod("OpenBlocks-1.7.10")) {
+
+
+ if (mEnabled) {
+ if (transformedName.equals("gregtech.api.metatileentity.BaseMetaTileEntity")) {
+ FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Transforming %s", transformedName);
+ ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
+ ClassReader x = new ClassReader(basicClass);
+ x.accept(new GT_MetaTile_Visitor(classWriter, false), ClassReader.EXPAND_FRAMES);
+ return classWriter.toByteArray();
+ }
+ if (transformedName.equals("gregtech.common.blocks.GT_Block_Machines")) {
+ FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Transforming %s", transformedName);
+ ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
+ ClassReader x = new ClassReader(basicClass);
+ x.accept(new GT_MetaTile_Visitor(classWriter, true), ClassReader.EXPAND_FRAMES);
+ return classWriter.toByteArray();
+ }
+
+ //Improve OB Sprinklers
if (transformedName.equals("openblocks.common.tileentity.TileEntitySprinkler")) {
FMLRelaunchLog.log("[GT++ ASM] OpenBlocks Sprinkler Patch", Level.INFO, "Transforming %s", transformedName);
/*try {
@@ -109,86 +115,9 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
e.printStackTrace();
}*/
return new ClassTransformer_OB_Sprinkler(obfuscated, basicClass).getWriter().toByteArray();
- }
- }
- else {
- FMLRelaunchLog.log("[GT++ ASM] OpenBlocks Sprinkler Patch", Level.INFO, "OpenBlocks Sprinkler ASM not loaded.");
- }
-
- if (mEnabled) {
- if (transformedName.equals("gregtech.api.metatileentity.BaseMetaTileEntity")) {
- FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Transforming %s", transformedName);
- ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
- ClassReader x = new ClassReader(basicClass);
- x.accept(new GT_MetaTile_Visitor(classWriter, false), ClassReader.EXPAND_FRAMES);
- return classWriter.toByteArray();
- }
- if (transformedName.equals("gregtech.common.blocks.GT_Block_Machines")) {
- FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Transforming %s", transformedName);
- ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
- ClassReader x = new ClassReader(basicClass);
- x.accept(new GT_MetaTile_Visitor(classWriter, true), ClassReader.EXPAND_FRAMES);
- return classWriter.toByteArray();
}
}
return basicClass;
}
-
- public static boolean findMod(final String aModName) {
-
- /*File mMods = new File(Launch.minecraftHome, "mods");
- if (mMods.isDirectory()) {
- for (File modFile : mMods.listFiles()) {
- if (modFile != null && modFile.getName().toLowerCase().contains(aModName.toLowerCase())) {
- FMLRelaunchLog.log("[GT++ ASM]", Level.INFO, "Found "+aModName);
- return true;
- }
- else {
- //FMLRelaunchLog.log("[GT++ ASM]", Level.INFO, "Found mod: "+modFile.getName());
- }
- }
- } */
- boolean exists = true;
- return exists;
- }
-
- public byte[] toByteArray(String aClassName) throws IOException {
- return Launch.classLoader.getClassBytes(aClassName);
- }
-
- public static class GetBytecode implements ClassFileTransformer {
- private static Instrumentation inst;
-
- public static synchronized void agentmain(String args, Instrumentation inst) {
- GetBytecode.inst = inst;
- }
-
- public static synchronized void premain(String args, Instrumentation inst) {
- GetBytecode.inst = inst;
- }
-
- public static synchronized byte[] getClassFile(Class cls) throws UnmodifiableClassException {
- Instrumentation inst = GetBytecode.inst;
- if (inst == null) {
- throw new IllegalStateException("Agent has not been loaded");
- }
-
- GetBytecode transformer = new GetBytecode();
- inst.addTransformer(transformer, true);
- inst.retransformClasses(cls);
- inst.removeTransformer(transformer);
- return transformer.classFile;
- }
-
- private byte[] classFile;
-
- @Override
- public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined,
- ProtectionDomain pd, byte[] classFile) throws IllegalClassFormatException {
- if (classBeingRedefined != null) {
- this.classFile = classFile;
- }
- return null;
- }
- }
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
index 13b6b50d98..5139ed974e 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/enums/GregtechItemList.java
@@ -271,6 +271,10 @@ public enum GregtechItemList implements GregtechItemContainer {
Casing_Naq_Reactor_C,
Controller_Naq_Reactor,
Casing_Containment,
+
+ //Arc Furnace
+ Industrial_Arc_Furnace,
+ Casing_Industrial_Arc_Furnace,
@@ -502,6 +506,7 @@ public enum GregtechItemList implements GregtechItemContainer {
Cover_Overflow_ULV, Cover_Overflow_LV, Cover_Overflow_MV, Cover_Overflow_HV, Cover_Overflow_EV, Cover_Overflow_IV,
+
//----------------------------------------------------------------------------
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
index 289424ab1b..8a17b7df31 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks4.java
@@ -24,7 +24,7 @@ extends GregtechMetaCasingBlocksAbstract {
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".0.name", "Naquadah Reactor Base"); //48
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".1.name", "Reactor Piping");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".2.name", "Naquadah Containment Chamber");
- GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".3.name", "");
+ GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".3.name", "Tempered Arc Furnace Casing");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".4.name", "");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".5.name", "");
GT_LanguageManager.addStringLocalization(this.getUnlocalizedName() + ".6.name", "");
@@ -40,8 +40,8 @@ extends GregtechMetaCasingBlocksAbstract {
GregtechItemList.Casing_Naq_Reactor_A.set(new ItemStack(this, 1, 0));
GregtechItemList.Casing_Naq_Reactor_B.set(new ItemStack(this, 1, 1));
GregtechItemList.Casing_Naq_Reactor_C.set(new ItemStack(this, 1, 2));
- /*GregtechItemList.Casing_Refinery_Internal.set(new ItemStack(this, 1, 3));
- GregtechItemList.Casing_WashPlant.set(new ItemStack(this, 1, 4));
+ GregtechItemList.Casing_Industrial_Arc_Furnace.set(new ItemStack(this, 1, 3));
+ /*GregtechItemList.Casing_WashPlant.set(new ItemStack(this, 1, 4));
GregtechItemList.Casing_Sifter.set(new ItemStack(this, 1, 5));
GregtechItemList.Casing_SifterGrate.set(new ItemStack(this, 1, 6));
GregtechItemList.Casing_Vanadium_Redox.set(new ItemStack(this, 1, 7));
@@ -70,7 +70,7 @@ extends GregtechMetaCasingBlocksAbstract {
return TexturesGtBlock.TEXTURE_ORGANIC_PANEL_A_GLOWING.getIcon();
//Coke Oven Casing Tier 2
case 3:
- return TexturesGtBlock.Casing_Material_Grisium.getIcon();
+ return TexturesGtBlock.Casing_Material_MaragingSteel.getIcon();
//Material Press Casings
case 4:
return TexturesGtBlock.Casing_Material_Grisium.getIcon();
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java
new file mode 100644
index 0000000000..dd5916b80e
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java
@@ -0,0 +1,237 @@
+package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.TAE;
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Recipe;
+
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+
+public class GregtechMetaTileEntity_IndustrialArcFurnace
+extends GregtechMeta_MultiBlockBase {
+
+ //862
+ private static final int mCasingTextureID = TAE.getIndexFromPage(3, 3);
+ public static String mCasingName = "Tempered Arc Furnace Casing";
+ private boolean mPlasmaMode = false;
+
+ public GregtechMetaTileEntity_IndustrialArcFurnace(final int aID, final String aName, final String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings4Misc, 3);
+ }
+
+ public GregtechMetaTileEntity_IndustrialArcFurnace(final String aName) {
+ super(aName);
+ mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings4Misc, 3);
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
+ return new GregtechMetaTileEntity_IndustrialArcFurnace(this.mName);
+ }
+
+ @Override
+ public String getMachineType() {
+ return "(Plasma/Electric) Arc Furnace";
+ }
+
+ @Override
+ public String[] getDescription() {
+
+ if (mCasingName.toLowerCase().contains(".name")) {
+ mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings4Misc, 3);
+ }
+
+ return new String[]{
+ "Controller Block for Industrial Arc Furnace",
+ "250% faster than using single block machines of the same voltage",
+ "Processes 8 items per operation",
+ "Size: 3x3x5 [WxHxL] (Hollow)",
+ "Controller (front centered)",
+ "1x Input Bus (anywhere)",
+ "1x Output Bus (anywhere)",
+ "1x Energy Hatch (anywhere)",
+ "1x Muffler Hatch (anywhere)",
+ "1x Maintenance Hatch (Back Center)",
+ mCasingName+"s for the rest (28 at least!)",
+ getPollutionTooltip(),
+ getMachineTooltip(),
+ CORE.GT_Tooltip};
+ }
+
+ @Override
+ public String getSound() {
+ return GregTech_API.sSoundList.get(Integer.valueOf(203));
+ }
+
+ @Override
+ public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[mCasingTextureID], new GT_RenderedTexture(aActive ? TexturesGtBlock.Overlay_Machine_Controller_Default_Active : TexturesGtBlock.Overlay_Machine_Controller_Default)};
+ }
+ return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[mCasingTextureID]};
+ }
+
+ @Override
+ public boolean hasSlotInGUI() {
+ return false;
+ }
+
+ @Override
+ public String getCustomGUIResourceName() {
+ return "IndustrialExtruder";
+ }
+
+ @Override
+ public GT_Recipe.GT_Recipe_Map getRecipeMap() {
+ return mPlasmaMode ? GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes : GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes;
+ }
+
+ @Override
+ public boolean isFacingValid(final byte aFacing) {
+ return aFacing > 1;
+ }
+
+ @Override
+ public boolean checkRecipe(final ItemStack aStack) {
+ return this.checkRecipeGeneric(8, 100, 250);
+ }
+
+ @Override
+ public void startProcess() {
+ this.sendLoopStart((byte) 1);
+ }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ public boolean checkMachine(final IGregTechTileEntity aBaseMetaTileEntity, final ItemStack aStack) {
+ final byte tSide = this.getBaseMetaTileEntity().getBackFacing();
+ if ((this.getBaseMetaTileEntity().getAirAtSideAndDistance(this.getBaseMetaTileEntity().getBackFacing(), 1)) && (this.getBaseMetaTileEntity().getAirAtSideAndDistance(this.getBaseMetaTileEntity().getBackFacing(), 2) && (this.getBaseMetaTileEntity().getAirAtSideAndDistance(this.getBaseMetaTileEntity().getBackFacing(), 3)))) {
+ for (byte i = 2; i < 6; i = (byte) (i + 1)) {
+ IGregTechTileEntity tTileEntity;
+ if ((null != (tTileEntity = this.getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(i, 2))) &&
+ (tTileEntity.getFrontFacing() == this.getBaseMetaTileEntity().getFrontFacing()) && (tTileEntity.getMetaTileEntity() != null) &&
+ ((tTileEntity.getMetaTileEntity() instanceof GregtechMetaTileEntity_IndustrialArcFurnace))) {
+ //Utils.LOG_INFO("False 1");
+ return false;
+ }
+ }
+ final int tX = this.getBaseMetaTileEntity().getXCoord();
+ final int tY = this.getBaseMetaTileEntity().getYCoord();
+ final int tZ = this.getBaseMetaTileEntity().getZCoord();
+ for (byte i = -1; i < 2; i = (byte) (i + 1)) {
+ for (byte j = -1; j < 2; j = (byte) (j + 1)) {
+ if ((i != 0) || (j != 0)) {
+ for (byte k = 0; k < 5; k = (byte) (k + 1)) {
+ if ((this.getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == this.getCasingBlock()) && (this.getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == this.getCasingMeta())) {
+ }
+ else if (!this.addToMachineList(this.getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)), getCasingTextureIndex()) && (!this.addEnergyInputToMachineList(this.getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)), getCasingTextureIndex()))) {
+ Logger.WARNING("False 2");
+ return false;
+ }
+ }
+ }
+ }
+ }
+ if ((this.mInputBusses.size() == 0) || (this.mOutputBusses.size() == 0)) {
+ Logger.WARNING("Incorrect amount of Input || Output busses.");
+ return false;
+ }
+ this.mMaintenanceHatches.clear();
+ final IGregTechTileEntity tTileEntity = this.getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(this.getBaseMetaTileEntity().getBackFacing(), 4);
+ if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) {
+ if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Maintenance)) {
+ this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) tTileEntity.getMetaTileEntity());
+ ((GT_MetaTileEntity_Hatch) tTileEntity.getMetaTileEntity()).mMachineBlock = this.getCasingTextureIndex();
+ } else {
+ Logger.WARNING("Maintenance hatch must be in the middle block on the back.");
+ return false;
+ }
+ }
+ if ((this.mMaintenanceHatches.size() != 1)) {
+ Logger.WARNING("Incorrect amount of Maintenance hatches.");
+ return false;
+ }
+ } else {
+ Logger.WARNING("False 5");
+ return false;
+ }
+ Logger.WARNING("True");
+ return true;
+ }
+
+ @Override
+ public int getMaxEfficiency(final ItemStack aStack) {
+ return 10000;
+ }
+
+ @Override
+ public int getPollutionPerTick(final ItemStack aStack) {
+ return 120;
+ }
+
+ @Override
+ public int getAmountOfOutputs() {
+ return 1;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(final ItemStack aStack) {
+ return false;
+ }
+
+ public Block getCasingBlock() {
+ return ModBlocks.blockCasings4Misc;
+ }
+
+
+ public byte getCasingMeta() {
+ return 3;
+ }
+
+ public byte getCasingTextureIndex() {
+ return (byte) mCasingTextureID;
+ }
+
+ @Override
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ);
+ this.mPlasmaMode = Utils.invertBoolean(mPlasmaMode);
+ if (mPlasmaMode) {
+ PlayerUtils.messagePlayer(aPlayer, "["+EnumChatFormatting.RED+"MODE"+EnumChatFormatting.RESET+"] "+EnumChatFormatting.LIGHT_PURPLE+"Plasma"+EnumChatFormatting.RESET);
+ }
+ else {
+ PlayerUtils.messagePlayer(aPlayer, "["+EnumChatFormatting.RED+"MODE"+EnumChatFormatting.RESET+"] "+EnumChatFormatting.YELLOW+"Electric"+EnumChatFormatting.RESET);
+ }
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ aNBT.setBoolean("mPlasmaMode", mPlasmaMode);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ mPlasmaMode = aNBT.getBoolean("mPlasmaMode");
+ }
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIndustrialArcFurnace.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIndustrialArcFurnace.java
new file mode 100644
index 0000000000..fb8f69e865
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIndustrialArcFurnace.java
@@ -0,0 +1,22 @@
+package gtPlusPlus.xmod.gregtech.registration.gregtech;
+
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing.GregtechMetaTileEntity_IndustrialArcFurnace;
+
+public class GregtechIndustrialArcFurnace {
+
+ public static void run() {
+ if (gtPlusPlus.core.lib.LoadedMods.Gregtech) {
+ Logger.INFO("Gregtech5u Content | Registering Industrial Arc Furnace Multiblock.");
+ run1();
+ }
+
+ }
+
+ private static void run1() {
+ // Industrial Arc Furnace Multiblock
+ GregtechItemList.Industrial_Arc_Furnace.set(new GregtechMetaTileEntity_IndustrialArcFurnace(862, "industrialarcfurnace.controller.tier.single", "High Current Industrial Arc Furnace").getStackForm(1L));
+
+ }
+} \ No newline at end of file