From 1c241ce0c5dfd524dc387b74d1e8de44ff8a5cd8 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Mon, 17 Sep 2018 11:35:28 +1000 Subject: + Added the Large Arc Furnace. % Cleaned up Preloader_Transformer_Handler.java. % Tweaked DevHelper.java. --- src/Java/gtPlusPlus/RoadMap.java | 9 +- .../gtPlusPlus/core/handler/COMPAT_HANDLER.java | 1 + .../util/minecraft/network/PacketDispatcher.java | 4 +- .../plugin/fixes/vanilla/VanillaBedHeightFix.java | 2 +- src/Java/gtPlusPlus/preloader/DevHelper.java | 34 +-- .../Preloader_Transformer_Handler.java | 111 ++-------- .../xmod/gregtech/api/enums/GregtechItemList.java | 5 + .../common/blocks/GregtechMetaCasingBlocks4.java | 8 +- ...regtechMetaTileEntity_IndustrialArcFurnace.java | 237 +++++++++++++++++++++ .../gregtech/GregtechIndustrialArcFurnace.java | 22 ++ 10 files changed, 322 insertions(+), 111 deletions(-) create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechIndustrialArcFurnace.java (limited to 'src/Java') 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>mCachedResults = new LinkedHashMap>(); + /*private static final LinkedHashMap>mCachedResults = new LinkedHashMap>(); 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 -- cgit