From ddefc4f7b11a3c0fab7f89416beac017634e58e0 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Wed, 24 Apr 2019 17:55:18 +1000 Subject: % More work on rewriting the Tree Farmer. % Renamed Tree Farmer Casing. % Cleaned up a few imports. $ Fixed assorted minor bugs with Multis. $ Fixed Issue with GT_Utilities via ASM. --- .../gregtech/common/helpers/TreeFarmHelper.java | 31 +++++ .../common/helpers/treefarm/TreeGenerator.java | 152 +++++++++++++++------ 2 files changed, 141 insertions(+), 42 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java index 624058f356..a87fac1dfd 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java @@ -285,6 +285,37 @@ public class TreeFarmHelper { } return SAWTOOL.NONE; } + + public static boolean isCorrectPart(final ItemStack aStack) { + if (aStack != null){ + //Utils.LOG_WARNING("Found "+aStack.getDisplayName()+" in the GUI slot."); + if ((aStack.getItem() instanceof GT_MetaGenerated_Item_02) || (aStack.getItem() instanceof GT_MetaGenerated_Tool)){ + if (OrePrefixes.craftingTool.contains(aStack)){ + if (aStack.getDisplayName().toLowerCase().contains("saw") || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01")){ + if (aStack.getItemDamage() == 10){ + return true; + } + else if (aStack.getItemDamage() == 140 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.140")){ + return true; + } + else if (aStack.getItemDamage() == 110 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.110")){ + return true; + } + else if (aStack.getItemDamage() == 112 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.112")){ + return true; + } + else if (aStack.getItemDamage() == 114 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.114")){ + return true; + } + else { + return false; + } + } + } + } + } + return false; + } public static boolean isHumusLoaded = false; public static boolean isForestryLogsLoaded = false; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java index 7437bf19da..c9f2d493ab 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java @@ -2,10 +2,15 @@ package gtPlusPlus.xmod.gregtech.common.helpers.treefarm; import java.util.Random; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.api.objects.minecraft.FakeBlockPos; +import gtPlusPlus.api.objects.minecraft.FakeWorld; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.math.MathUtils; import net.minecraft.block.Block; import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; @@ -15,14 +20,26 @@ import net.minecraftforge.common.util.ForgeDirection; public class TreeGenerator { - public static AutoMap generateOutput(int aTreeSize){ - AutoMap aOutputMap = new AutoMap(); - - - return aOutputMap; + private final FakeTreeInFakeWorldGenerator mTreeData; + + public TreeGenerator() { + Logger.INFO("Created Fake Tree Generator."); + mTreeData = new FakeTreeInFakeWorldGenerator(); + if (!mTreeData.hasGenerated) { + mTreeData.generate(null, CORE.RANDOM, 0, 0, 0); + } + } + + public AutoMap generateOutput(int aTreeSize){ + AutoMap aTemp = new AutoMap(); + AutoMap aOutputMap = mTreeData.getOutputFromTree(); + if (aOutputMap != null && aOutputMap.size() > 0) { + return aOutputMap; + } + return aTemp; } - public class FakeWorldGenerator extends WorldGenAbstractTree + public class FakeTreeInFakeWorldGenerator extends WorldGenAbstractTree { /** The minimum height of a generated tree. */ private final int minTreeHeight; @@ -33,21 +50,29 @@ public class TreeGenerator { /** The metadata value of the leaves to use in tree generation. */ private final int metaLeaves; + private final AutoMap mFakeWorld; + private final int mTreesToGenerate; + + private int mCurrentGeneratorIteration = 0; + private boolean hasGenerated = false; private AutoMap aOutputsFromGenerator = new AutoMap(); - public FakeWorldGenerator() + public FakeTreeInFakeWorldGenerator() { - this(4, 0, 0, false); + this(4, 0, 0, false, 5000); } - public FakeWorldGenerator(int aMinHeight, int aWoodMeta, int aLeafMeta, boolean aVines) + public FakeTreeInFakeWorldGenerator(int aMinHeight, int aWoodMeta, int aLeafMeta, boolean aVines, int aTreeCount) { super(false); this.minTreeHeight = aMinHeight; this.metaWood = aWoodMeta; this.metaLeaves = aLeafMeta; this.vinesGrow = aVines; + this.mFakeWorld = new AutoMap(); + this.mTreesToGenerate = aTreeCount; + Logger.INFO("Created Fake Tree In Fake World Instance."); } @@ -55,17 +80,66 @@ public class TreeGenerator { if (!hasGenerated) { generate(null, CORE.RANDOM, 0, 0, 0); } - return aOutputsFromGenerator; + AutoMap aOutputMap = new AutoMap(); + int aRandomTreeID = MathUtils.randInt(0, this.mFakeWorld.size()-1); + FakeWorld aWorld = this.mFakeWorld.get(aRandomTreeID); + if (aWorld != null) { + aOutputMap = aWorld.getAllBlocksStoredInFakeWorld(); + } + return aOutputMap; + } + @Override + protected boolean func_150523_a(Block p_150523_1_) + { + return p_150523_1_.getMaterial() == Material.air || p_150523_1_.getMaterial() == Material.leaves || p_150523_1_ == Blocks.grass || p_150523_1_ == Blocks.dirt || p_150523_1_ == Blocks.log || p_150523_1_ == Blocks.log2 || p_150523_1_ == Blocks.sapling || p_150523_1_ == Blocks.vine; + } + + @Override + protected boolean isReplaceable(World world, int x, int y, int z) + { + FakeWorld aWorld = getWorld(); + Block block = aWorld.getBlock(x, y, z); + return block.isAir(null, x, y, z) || block.isLeaves(null, x, y, z) || block.isWood(null, x, y, z) || func_150523_a(block); + } @Override - public boolean generate(World aWorld, Random aRand, int aWorldX, int aWorldRealY, int aWorldZ){ - + public boolean generate(World world, Random aRand, int aWorldX, int aWorldRealY, int aWorldZ){ //Only Generate Once - This object is Cached if (hasGenerated) { return hasGenerated; + } + else { + for (int yy=0;yy 0) { + for (FakeWorld aWorld : this.mFakeWorld) { + for (ItemStack aBlockInFakeWorld : aWorld.getAllBlocksStoredInFakeWorld()) { + aOutputsFromGenerator.add(aBlockInFakeWorld); + } + } + return true; + } + else { + return false; + } + } + } + + public FakeWorld getWorld() { + FakeWorld aWorld = this.mFakeWorld.get(mCurrentGeneratorIteration); + if (aWorld == null) { + aWorld = (this.mFakeWorld.set(mCurrentGeneratorIteration, new FakeWorld(200))); } + return aWorld; + } + + public boolean generateTree(int aWorldX, int aWorldRealY, int aWorldZ) { + FakeWorld aWorld = getWorld(); //Set some static values @@ -103,7 +177,7 @@ public class TreeGenerator { { block = aWorld.getBlock(j1, i1, k1); - if (!this.isReplaceable(aWorld, j1, i1, k1)) + if (!this.isReplaceable(null, j1, i1, k1)) { flag = false; } @@ -123,11 +197,12 @@ public class TreeGenerator { else { Block block2 = aWorld.getBlock(aWorldX, aWorldY - 1, aWorldZ); + FakeBlockPos aBlockToGrowPlantOn = aWorld.getBlockAtCoords(aWorldX, aWorldY-1, aWorldZ); boolean isSoil = block2.canSustainPlant(aWorld, aWorldX, aWorldY - 1, aWorldZ, ForgeDirection.UP, (BlockSapling)Blocks.sapling); if (isSoil && aWorldY < 256 - l - 1) { - block2.onPlantGrow(aWorld, aWorldX, aWorldY - 1, aWorldZ, aWorldX, aWorldY, aWorldZ); + aBlockToGrowPlantOn.onPlantGrow(aWorld, aWorldX, aWorldY - 1, aWorldZ, aWorldX, aWorldY, aWorldZ); b0 = 3; byte b1 = 0; int l1; @@ -152,7 +227,7 @@ public class TreeGenerator { { Block block1 = aWorld.getBlock(i2, k1, k2); - if (block1.isAir(aWorld, i2, k1, k2) || block1.isLeaves(aWorld, i2, k1, k2)) + if (block1.isAir(null, i2, k1, k2) || block1.isLeaves(null, i2, k1, k2)) { this.setBlockAndNotifyAdequately(aWorld, i2, k1, k2, Blocks.leaves, this.metaLeaves); } @@ -165,7 +240,7 @@ public class TreeGenerator { { block = aWorld.getBlock(aWorldX, aWorldY + k1, aWorldZ); - if (block.isAir(aWorld, aWorldX, aWorldY + k1, aWorldZ) || block.isLeaves(aWorld, aWorldX, aWorldY + k1, aWorldZ)) + if (block.isAir(null, aWorldX, aWorldY + k1, aWorldZ) || block.isLeaves(null, aWorldX, aWorldY + k1, aWorldZ)) { this.setBlockAndNotifyAdequately(aWorld, aWorldX, aWorldY + k1, aWorldZ, Blocks.log, this.metaWood); @@ -205,24 +280,24 @@ public class TreeGenerator { { for (j2 = aWorldZ - l1; j2 <= aWorldZ + l1; ++j2) { - if (aWorld.getBlock(i2, k1, j2).isLeaves(aWorld, i2, k1, j2)) + if (aWorld.getBlock(i2, k1, j2).isLeaves(null, i2, k1, j2)) { - if (CORE.RANDOM.nextInt(4) == 0 && aWorld.getBlock(i2 - 1, k1, j2).isAir(aWorld, i2 - 1, k1, j2)) + if (CORE.RANDOM.nextInt(4) == 0 && aWorld.getBlock(i2 - 1, k1, j2).isAir(null, i2 - 1, k1, j2)) { this.growVines(aWorld, i2 - 1, k1, j2, 8); } - if (CORE.RANDOM.nextInt(4) == 0 && aWorld.getBlock(i2 + 1, k1, j2).isAir(aWorld, i2 + 1, k1, j2)) + if (CORE.RANDOM.nextInt(4) == 0 && aWorld.getBlock(i2 + 1, k1, j2).isAir(null, i2 + 1, k1, j2)) { this.growVines(aWorld, i2 + 1, k1, j2, 2); } - if (CORE.RANDOM.nextInt(4) == 0 && aWorld.getBlock(i2, k1, j2 - 1).isAir(aWorld, i2, k1, j2 - 1)) + if (CORE.RANDOM.nextInt(4) == 0 && aWorld.getBlock(i2, k1, j2 - 1).isAir(null, i2, k1, j2 - 1)) { this.growVines(aWorld, i2, k1, j2 - 1, 1); } - if (CORE.RANDOM.nextInt(4) == 0 && aWorld.getBlock(i2, k1, j2 + 1).isAir(aWorld, i2, k1, j2 + 1)) + if (CORE.RANDOM.nextInt(4) == 0 && aWorld.getBlock(i2, k1, j2 + 1).isAir(null, i2, k1, j2 + 1)) { this.growVines(aWorld, i2, k1, j2 + 1, 4); } @@ -246,8 +321,6 @@ public class TreeGenerator { } } } - - hasGenerated = true; return true; } else @@ -262,32 +335,27 @@ public class TreeGenerator { } } - /** + /** * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length */ - private void growVines(World aWorld, int aX, int aY, int aZ, int aMeta) + private void growVines(FakeWorld aWorld, int aX, int aY, int aZ, int aMeta) { - this.setBlockAndNotifyAdequately(aWorld, aX, aY, aZ, Blocks.vine, aMeta); - int i1 = 4; - - while (true) - { - --aY; - - if (!aWorld.getBlock(aX, aY, aZ).isAir(aWorld, aX, aY, aZ) || i1 <= 0) - { - return; - } - - this.setBlockAndNotifyAdequately(aWorld, aX, aY, aZ, Blocks.vine, aMeta); - --i1; + int aLoopSize = vinesGrow ? MathUtils.randInt(0, 4) : 0; + for (int i=0;i= 0 && aMeta <= Short.MAX_VALUE)) { + aWorld.setBlockAtCoords(aX, aY, aZ, aBlock, aMeta); + //aOutputsFromGenerator.put(ItemUtils.simpleMetaStack(aBlock, aMeta, 1)); + } } } -- cgit From fa9eef605bdf6017cc09f603f7e7f9582a76d69a Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Wed, 24 Apr 2019 18:52:36 +1000 Subject: $ More Adjustments to the Client Proxy ASM Patch. % Adjusted some Tree Farm code. --- .../transformers/ClassTransformer_GT_Client.java | 168 ++++++--------------- .../Preloader_Transformer_Handler.java | 2 +- .../common/helpers/treefarm/TreeGenerator.java | 3 +- .../production/GregtechMetaTileEntityTreeFarm.java | 10 +- 4 files changed, 55 insertions(+), 128 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java index 4649842698..da6abfe57c 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client.java @@ -1,31 +1,10 @@ package gtPlusPlus.preloader.asm.transformers; -import static org.objectweb.asm.Opcodes.AALOAD; import static org.objectweb.asm.Opcodes.ACC_PUBLIC; -import static org.objectweb.asm.Opcodes.ACONST_NULL; import static org.objectweb.asm.Opcodes.ALOAD; -import static org.objectweb.asm.Opcodes.ARRAYLENGTH; import static org.objectweb.asm.Opcodes.ASM5; -import static org.objectweb.asm.Opcodes.ASTORE; -import static org.objectweb.asm.Opcodes.F_APPEND; -import static org.objectweb.asm.Opcodes.F_FULL; -import static org.objectweb.asm.Opcodes.F_SAME; -import static org.objectweb.asm.Opcodes.F_SAME1; -import static org.objectweb.asm.Opcodes.GETSTATIC; -import static org.objectweb.asm.Opcodes.GOTO; -import static org.objectweb.asm.Opcodes.ICONST_0; -import static org.objectweb.asm.Opcodes.ICONST_1; -import static org.objectweb.asm.Opcodes.IFNULL; -import static org.objectweb.asm.Opcodes.IF_ICMPLT; -import static org.objectweb.asm.Opcodes.ILOAD; -import static org.objectweb.asm.Opcodes.INTEGER; -import static org.objectweb.asm.Opcodes.INVOKEINTERFACE; import static org.objectweb.asm.Opcodes.INVOKESPECIAL; import static org.objectweb.asm.Opcodes.INVOKESTATIC; -import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL; -import static org.objectweb.asm.Opcodes.ISTORE; -import static org.objectweb.asm.Opcodes.LCONST_1; -import static org.objectweb.asm.Opcodes.POP; import static org.objectweb.asm.Opcodes.RETURN; import java.io.File; @@ -61,6 +40,7 @@ import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent; import cpw.mods.fml.relauncher.FMLRelaunchLog; import gregtech.api.GregTech_API; +import gregtech.api.util.GT_Log; import gregtech.api.util.GT_PlayedSound; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; @@ -70,6 +50,7 @@ import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.common.StaticFields59; import gtPlusPlus.xmod.gregtech.loaders.misc.AssLineAchievements; import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatFileWriter; @@ -79,12 +60,15 @@ public class ClassTransformer_GT_Client { private final ClassReader read; private final ClassWriter write; private boolean mModern = true; + private boolean mObfuscated = true; private byte[] mTooledClass; - public ClassTransformer_GT_Client(byte[] basicClass) { + public ClassTransformer_GT_Client(byte[] basicClass, boolean obfuscated) { ClassReader aTempReader = null; ClassWriter aTempWriter = null; + + mObfuscated = obfuscated; aTempReader = new ClassReader(basicClass); aTempWriter = new ClassWriter(aTempReader, ClassWriter.COMPUTE_FRAMES); @@ -214,7 +198,7 @@ public class ClassTransformer_GT_Client { public boolean injectMethod(ClassWriter cw, String string) { MethodVisitor mv; boolean didInject = false; - FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Injecting " + string + "."); + FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Injecting " + string + ". Obfuscated? "+mObfuscated); if (string.equals("onPlayerTickEventClient")) { /** @@ -243,121 +227,36 @@ public class ClassTransformer_GT_Client { mv.visitLocalVariable("aEvent", "Lcpw/mods/fml/common/gameevent/TickEvent$PlayerTickEvent;", null, l0, l2, 1); mv.visitMaxs(1, 2); mv.visitEnd(); + didInject = true; } else if (string.equals("onPostLoad")) { - - String aItemStackClassName; - String aEntityPlayerClassName; - - try { - aItemStackClassName = Class.forName("net/minecraft/item/ItemStack") != null ? "net/minecraft/item/ItemStack" : "add"; - } catch (ClassNotFoundException e) { - aItemStackClassName = "add"; - } - - try { - aEntityPlayerClassName = Class.forName("net/minecraft/entity/player/EntityPlayer") != null ? "net/minecraft/entity/player/EntityPlayer" : "yz"; - } catch (ClassNotFoundException e) { - aEntityPlayerClassName = "yz"; - } - mv = cw.visitMethod(ACC_PUBLIC, "onPostLoad", "()V", null, null); mv.visitCode(); Label l0 = new Label(); - Label l1 = new Label(); - Label l2 = new Label(); - mv.visitTryCatchBlock(l0, l1, l2, "java/lang/Throwable"); - Label l3 = new Label(); - Label l4 = new Label(); - Label l5 = new Label(); - mv.visitTryCatchBlock(l3, l4, l5, "java/lang/Throwable"); - Label l6 = new Label(); - mv.visitLabel(l6); - mv.visitLineNumber(315, l6); + mv.visitLabel(l0); + mv.visitLineNumber(315, l0); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "gregtech/common/GT_Proxy", "onPostLoad", "()V", false); - mv.visitLabel(l3); - mv.visitLineNumber(317, l3); - mv.visitInsn(ICONST_0); - mv.visitVarInsn(ISTORE, 1); - Label l7 = new Label(); - mv.visitLabel(l7); - Label l8 = new Label(); - mv.visitJumpInsn(GOTO, l8); - mv.visitLabel(l0); - mv.visitLineNumber(319, l0); - mv.visitFrame(F_APPEND,1, new Object[] {INTEGER}, 0, null); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/GregTech_API", "METATILEENTITIES", "[Lgregtech/api/interfaces/metatileentity/IMetaTileEntity;"); - mv.visitVarInsn(ILOAD, 1); - mv.visitInsn(AALOAD); - Label l9 = new Label(); - mv.visitJumpInsn(IFNULL, l9); - Label l10 = new Label(); - mv.visitLabel(l10); - mv.visitLineNumber(320, l10); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/GregTech_API", "METATILEENTITIES", "[Lgregtech/api/interfaces/metatileentity/IMetaTileEntity;"); - mv.visitVarInsn(ILOAD, 1); - mv.visitInsn(AALOAD); - mv.visitInsn(LCONST_1); - mv.visitMethodInsn(INVOKEINTERFACE, "gregtech/api/interfaces/metatileentity/IMetaTileEntity", "getStackForm", "(J)L"+aItemStackClassName+";", true); - mv.visitInsn(ACONST_NULL); - mv.visitInsn(ICONST_1); - mv.visitMethodInsn(INVOKEVIRTUAL, ""+aItemStackClassName+"", "getTooltip", "(L"+aEntityPlayerClassName+";Z)Ljava/util/List;", false); - mv.visitInsn(POP); + Label l1 = new Label(); mv.visitLabel(l1); - mv.visitLineNumber(322, l1); - mv.visitJumpInsn(GOTO, l9); + mv.visitLineNumber(316, l1); + mv.visitMethodInsn(INVOKESTATIC, "gtPlusPlus/preloader/asm/transformers/ClassTransformer_GT_Client", "onPostLoad", "()V", false); + Label l2 = new Label(); mv.visitLabel(l2); - mv.visitLineNumber(323, l2); - mv.visitFrame(F_SAME1, 0, null, 1, new Object[] {"java/lang/Throwable"}); - mv.visitVarInsn(ASTORE, 2); - Label l11 = new Label(); - mv.visitLabel(l11); - mv.visitLineNumber(324, l11); - mv.visitVarInsn(ALOAD, 2); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/util/GT_Log", "err", "Ljava/io/PrintStream;"); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Throwable", "printStackTrace", "(Ljava/io/PrintStream;)V", false); - mv.visitLabel(l9); - mv.visitLineNumber(317, l9); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitIincInsn(1, 1); - mv.visitLabel(l8); - mv.visitFrame(F_SAME, 0, null, 0, null); - mv.visitVarInsn(ILOAD, 1); - mv.visitFieldInsn(GETSTATIC, "gregtech/api/GregTech_API", "METATILEENTITIES", "[Lgregtech/api/interfaces/metatileentity/IMetaTileEntity;"); - mv.visitInsn(ARRAYLENGTH); - mv.visitJumpInsn(IF_ICMPLT, l0); - mv.visitLabel(l4); - mv.visitLineNumber(327, l4); - Label l12 = new Label(); - mv.visitJumpInsn(GOTO, l12); - mv.visitLabel(l5); - mv.visitFrame(F_FULL, 1, new Object[] {"gregtech/common/GT_Client"}, 1, new Object[] {"java/lang/Throwable"}); - mv.visitVarInsn(ASTORE, 1); - Label l13 = new Label(); - mv.visitLabel(l13); - mv.visitLineNumber(328, l13); - mv.visitVarInsn(ALOAD, 1); - mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Throwable", "printStackTrace", "()V", false); - mv.visitLabel(l12); - mv.visitLineNumber(330, l12); - mv.visitFrame(F_SAME, 0, null, 0, null); + mv.visitLineNumber(317, l2); mv.visitInsn(RETURN); - Label l14 = new Label(); - mv.visitLabel(l14); - mv.visitLocalVariable("this", "Lgregtech/common/GT_Client;", null, l6, l14, 0); - mv.visitLocalVariable("i", "I", null, l7, l4, 1); - mv.visitLocalVariable("t", "Ljava/lang/Throwable;", null, l11, l9, 2); - mv.visitLocalVariable("var2", "Ljava/lang/Throwable;", null, l13, l12, 1); - mv.visitMaxs(3, 3); - mv.visitEnd(); + Label l3 = new Label(); + mv.visitLabel(l3); + mv.visitLocalVariable("this", "Lgregtech/common/GT_Client;", null, l0, l3, 0); + mv.visitMaxs(1, 1); + mv.visitEnd(); + didInject = true; } - didInject = true; FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Method injection complete."); return didInject; @@ -471,6 +370,31 @@ public class ClassTransformer_GT_Client { } } } + + + + + /** + * GT_Client's onPostLoad + */ + + public static void onPostLoad() { + try { + for (int i = 0; i < GregTech_API.METATILEENTITIES.length; i++) { + try { + if (GregTech_API.METATILEENTITIES[i] != null) { + GregTech_API.METATILEENTITIES[i].getStackForm(1L).getTooltip((EntityPlayer) null, true); + } + } + catch (Throwable t) { + GT_Log.err.println("Error in MetaTileEntity with ID of "+i); + t.printStackTrace(GT_Log.err); + } + } + } catch (Throwable var2) { + var2.printStackTrace(); + } + } 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 c6c92fdb9e..5642b700f5 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java @@ -137,7 +137,7 @@ public class Preloader_Transformer_Handler implements IClassTransformer { //Also Fix Achievements, although currently disabled. if (transformedName.equals("gregtech.common.GT_Client")) { FMLRelaunchLog.log("[GT++ ASM] Gregtech Client Proxy Patch", Level.INFO, "Transforming %s", transformedName); - return new ClassTransformer_GT_Client(basicClass).getByteArray(); + return new ClassTransformer_GT_Client(basicClass, obfuscated).getByteArray(); } //Make GT packets safer, fill them with debug info. diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java index c9f2d493ab..a8603849b8 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java @@ -133,7 +133,8 @@ public class TreeGenerator { public FakeWorld getWorld() { FakeWorld aWorld = this.mFakeWorld.get(mCurrentGeneratorIteration); if (aWorld == null) { - aWorld = (this.mFakeWorld.set(mCurrentGeneratorIteration, new FakeWorld(200))); + this.mFakeWorld.set(mCurrentGeneratorIteration, new FakeWorld(200)); + aWorld = this.mFakeWorld.get(mCurrentGeneratorIteration); } return aWorld; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java index 5968ea189c..23ab9afd61 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java @@ -49,6 +49,11 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase mCryoFuelName = mFuelStack.getLocalizedName(); mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings2Misc, 15); mHatchName = ItemUtils.getLocalizedNameOfBlock(GregTech_API.sBlockMachines, 967); + + if (mTreeData == null) { + mTreeData = new TreeGenerator(); + } + } public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) { @@ -219,10 +224,7 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase } @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - if (mTreeData == null) { - mTreeData = new TreeGenerator(); - } + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (mTreeData != null) { //this.getBaseMetaTileEntity().enableWorking(); } -- cgit From 866b2aee8b00f39c30728612dcdf3f10722e57f1 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Fri, 26 Apr 2019 00:37:36 +1000 Subject: $ Fixed the Tree Farm. --- .../api/objects/minecraft/FakeWorld.java | 39 +++++-- .../minecraft/ThreadFakeWorldGenerator.java | 61 +++++++++++ .../common/helpers/treefarm/TreeGenerator.java | 35 +++++-- .../production/GregtechMetaTileEntityTreeFarm.java | 114 +++++++++++++++++---- 4 files changed, 210 insertions(+), 39 deletions(-) create mode 100644 src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java b/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java index 21e7a7d331..800d8afaa4 100644 --- a/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java +++ b/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java @@ -18,6 +18,8 @@ import net.minecraftforge.common.util.ForgeDirection; public class FakeWorld implements IBlockAccess { + public static HashMap mStaticFakeWorldData; + public HashMap mFakeWorldData = new HashMap(); /** @@ -45,22 +47,36 @@ public class FakeWorld implements IBlockAccess { init(); } - private void init() { - Logger.INFO("Setting all Blocks in Fake World to Air."); - for (int y=0;y<=aWorldHeight;y++) { - for (int x=-aDistanceFromOrigin;x<=aDistanceFromOrigin;x++) { - for (int z=-aDistanceFromOrigin;z<=aDistanceFromOrigin;z++) { - FakeBlockPos aTempPos = new FakeBlockPos(x, y, z, Blocks.air, 0); - mFakeWorldData.put(aTempPos.getLocationString(), aTempPos); + public void init() { + + /*if (mStaticFakeWorldData == null) { + Logger.INFO("Setting all Blocks in Fake World to Air."); + mStaticFakeWorldData = new HashMap(); + for (int y=0;y<=aWorldHeight;y++) { + for (int x=-aDistanceFromOrigin;x<=aDistanceFromOrigin;x++) { + for (int z=-aDistanceFromOrigin;z<=aDistanceFromOrigin;z++) { + FakeBlockPos aTempPos = new FakeBlockPos(x, y, z, Blocks.air, 0); + mStaticFakeWorldData.put(aTempPos.getLocationString(), aTempPos); + } } } - } - Logger.INFO("Initialisation of FakeWorld is now complete."); + }*/ + //if (mStaticFakeWorldData != null) { + //Logger.INFO(" Instancing static air world."); + mFakeWorldData = new HashMap(); + //mFakeWorldData = (HashMap) mStaticFakeWorldData.clone(); + //} + + + //Logger.INFO("Initialisation of FakeWorld is now complete."); } public FakeBlockPos getBlockAtCoords(int x, int y, int z) { String S = ""+x+"@"+y+"@"+z; - FakeBlockPos aBlock = mFakeWorldData.get(S); + FakeBlockPos aBlock = mFakeWorldData.get(S); + if (aBlock == null) { + return new FakeBlockPos(x, y, z, Blocks.air, 0); + } return aBlock; } @@ -73,12 +89,13 @@ public class FakeWorld implements IBlockAccess { public AutoMap getAllBlocksStoredInFakeWorld(){ AutoMap aOutput = new AutoMap(); for (FakeBlockPos aPos : mFakeWorldData.values()) { - if (aPos.getBlockAtPos() == Blocks.air) { + if (aPos == null || aPos.getBlockAtPos() == Blocks.air) { continue; } else { ItemStack aTempStack = ItemUtils.simpleMetaStack(aPos.getBlockAtPos(), aPos.getMetaAtPos(), 1); if (ItemUtils.checkForInvalidItems(aTempStack)) { + //Logger.INFO("Output: "+aTempStack.getDisplayName()); aOutput.put(aTempStack); } } diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java b/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java new file mode 100644 index 0000000000..393d3260b5 --- /dev/null +++ b/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java @@ -0,0 +1,61 @@ +package gtPlusPlus.api.objects.minecraft; + +import gtPlusPlus.xmod.gregtech.common.helpers.treefarm.TreeGenerator; + +public class ThreadFakeWorldGenerator extends Thread { + + public boolean canRun = true; + public boolean isRunning = false; + + private static final long INIT_TIME; + private static long internalTickCounter = 0; + + public TreeGenerator mGenerator; + + private static final ThreadFakeWorldGenerator mThread; + + static { + mThread = new ThreadFakeWorldGenerator(); + INIT_TIME = (System.currentTimeMillis()); + } + + public ThreadFakeWorldGenerator() { + setName("gtpp.handler.fakeworldtrees"); + run(); + } + + public static ThreadFakeWorldGenerator getInstance() { + return mThread; + } + + public static void stopThread() { + mThread.canRun = false; + } + + + @Override + public void run() { + + if (!isRunning) { + isRunning = true; + } + else { + return; + } + + if (canRun){ + if (mGenerator == null) { + mGenerator = new TreeGenerator(); + } + } + + while (mGenerator == null) { + if (mGenerator != null) { + break; + } + } + stopThread(); + } + + +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java index a8603849b8..6093909167 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java @@ -20,11 +20,15 @@ import net.minecraftforge.common.util.ForgeDirection; public class TreeGenerator { - private final FakeTreeInFakeWorldGenerator mTreeData; + private static final FakeTreeInFakeWorldGenerator mTreeData; + + static { + Logger.INFO("Created Fake Tree Generator."); + mTreeData = new FakeTreeInFakeWorldGenerator(); + } + public TreeGenerator() { - Logger.INFO("Created Fake Tree Generator."); - mTreeData = new FakeTreeInFakeWorldGenerator(); if (!mTreeData.hasGenerated) { mTreeData.generate(null, CORE.RANDOM, 0, 0, 0); } @@ -34,12 +38,14 @@ public class TreeGenerator { AutoMap aTemp = new AutoMap(); AutoMap aOutputMap = mTreeData.getOutputFromTree(); if (aOutputMap != null && aOutputMap.size() > 0) { + Logger.INFO("Valid tree data output"); return aOutputMap; } + Logger.INFO("Invalid tree data output"); return aTemp; } - public class FakeTreeInFakeWorldGenerator extends WorldGenAbstractTree + public static class FakeTreeInFakeWorldGenerator extends WorldGenAbstractTree { /** The minimum height of a generated tree. */ private final int minTreeHeight; @@ -78,12 +84,14 @@ public class TreeGenerator { public AutoMap getOutputFromTree(){ if (!hasGenerated) { + Logger.INFO("Generating Tree sample data"); generate(null, CORE.RANDOM, 0, 0, 0); } AutoMap aOutputMap = new AutoMap(); int aRandomTreeID = MathUtils.randInt(0, this.mFakeWorld.size()-1); FakeWorld aWorld = this.mFakeWorld.get(aRandomTreeID); if (aWorld != null) { + Logger.INFO("Getting all block data from fake world"); aOutputMap = aWorld.getAllBlocksStoredInFakeWorld(); } return aOutputMap; @@ -130,6 +138,8 @@ public class TreeGenerator { } } + private FakeWorld aFakeWorld; + public FakeWorld getWorld() { FakeWorld aWorld = this.mFakeWorld.get(mCurrentGeneratorIteration); if (aWorld == null) { @@ -143,7 +153,8 @@ public class TreeGenerator { FakeWorld aWorld = getWorld(); //Set some static values - + + Logger.INFO("Stepping through generateTree [0]"); //Dummy Value int aWorldY = 10; @@ -152,6 +163,7 @@ public class TreeGenerator { if (aWorldY >= 1 && aWorldY + l + 1 <= 256) { + Logger.INFO("Stepping through generateTree [1]"); byte b0; int k1; Block block; @@ -193,16 +205,19 @@ public class TreeGenerator { if (!flag) { + Logger.INFO("Stepping through generateTree [2]"); return false; } else { + Logger.INFO("Stepping through generateTree [3]"); Block block2 = aWorld.getBlock(aWorldX, aWorldY - 1, aWorldZ); FakeBlockPos aBlockToGrowPlantOn = aWorld.getBlockAtCoords(aWorldX, aWorldY-1, aWorldZ); boolean isSoil = block2.canSustainPlant(aWorld, aWorldX, aWorldY - 1, aWorldZ, ForgeDirection.UP, (BlockSapling)Blocks.sapling); - if (isSoil && aWorldY < 256 - l - 1) + if (/*isSoil &&*/ aWorldY < 256 - l - 1) { + Logger.INFO("Stepping through generateTree [4]"); aBlockToGrowPlantOn.onPlantGrow(aWorld, aWorldX, aWorldY - 1, aWorldZ, aWorldX, aWorldY, aWorldZ); b0 = 3; byte b1 = 0; @@ -236,6 +251,7 @@ public class TreeGenerator { } } } + Logger.INFO("Stepping through generateTree [5]"); for (k1 = 0; k1 < l; ++k1) { @@ -269,9 +285,11 @@ public class TreeGenerator { } } } + Logger.INFO("Stepping through generateTree [6]"); if (this.vinesGrow) { + Logger.INFO("Stepping through generateTree [7]"); for (k1 = aWorldY - 3 + l; k1 <= aWorldY + l; ++k1) { i3 = k1 - (aWorldY + l); @@ -306,6 +324,7 @@ public class TreeGenerator { } } } + Logger.INFO("Stepping through generateTree [8]"); if (CORE.RANDOM.nextInt(5) == 0 && l > 5) { @@ -322,16 +341,19 @@ public class TreeGenerator { } } } + Logger.INFO("Stepping through generateTree [9]"); return true; } else { + Logger.INFO("Stepping through generateTree [10]"); return false; } } } else { + Logger.INFO("Stepping through generateTree [11]"); return false; } } @@ -354,6 +376,7 @@ public class TreeGenerator { protected void setBlockAndNotifyAdequately(FakeWorld aWorld, int aX, int aY, int aZ, Block aBlock, int aMeta) { if (aBlock != null && (aMeta >= 0 && aMeta <= Short.MAX_VALUE)) { + Logger.INFO("Setting block "+aX+", "+aY+", "+aZ+" | "+aBlock.getLocalizedName()+" | "+aMeta); aWorld.setBlockAtCoords(aX, aY, aZ, aBlock, aMeta); //aOutputsFromGenerator.put(ItemUtils.simpleMetaStack(aBlock, aMeta, 1)); } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java index 23ab9afd61..2ee2acd726 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java @@ -1,5 +1,9 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + import gregtech.api.GregTech_API; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; @@ -9,8 +13,10 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.api.objects.minecraft.ThreadFakeWorldGenerator; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; @@ -20,6 +26,7 @@ import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.helpers.TreeFarmHelper; import gtPlusPlus.xmod.gregtech.common.helpers.treefarm.TreeGenerator; import net.minecraft.block.Block; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -42,6 +49,16 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase mHatchName = ItemUtils.getLocalizedNameOfBlock(GregTech_API.sBlockMachines, 967); } + + + /* + * Static thread for Fake World Handling + */ + + + private static ScheduledExecutorService executor; + private static ThreadFakeWorldGenerator aThread; + public GregtechMetaTileEntityTreeFarm(final String aName) { super(aName); mFuelStack = FluidUtils.getFluidStack("cryotheum", 1); @@ -50,9 +67,32 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings2Misc, 15); mHatchName = ItemUtils.getLocalizedNameOfBlock(GregTech_API.sBlockMachines, 967); + /*if (executor == null || mTreeData == null) { + if (executor == null) { + executor = Executors.newScheduledThreadPool(10); + } + if (executor != null) { + if (aThread == null) { + aThread = new ThreadFakeWorldGenerator(); + executor.scheduleAtFixedRate(aThread, 0, 1, TimeUnit.SECONDS); + while (aThread.mGenerator == null) { + if (aThread.mGenerator != null) { + break; + } + } + if (aThread.mGenerator != null) { + mTreeData = aThread.mGenerator; + } + } + } + }*/ + if (mTreeData == null) { - mTreeData = new TreeGenerator(); + mTreeData = new TreeGenerator(); } + + + } @@ -117,7 +157,8 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase } public boolean isCorrectMachinePart(final ItemStack aStack) { - return TreeFarmHelper.isCorrectPart(aStack); + //return TreeFarmHelper.isCorrectPart(aStack); + return true; } public boolean isFacingValid(final byte aFacing) { @@ -125,42 +166,71 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase } public boolean checkRecipe(final ItemStack aStack) { - Logger.INFO("Trying to process virtual tree farming"); + //Logger.INFO("Trying to process virtual tree farming"); if (mTreeData != null) { - Logger.INFO("Tree Data is valid"); - this.getBaseMetaTileEntity().enableWorking(); + //Logger.INFO("Tree Data is valid"); + + long tVoltage = getMaxInputVoltage(); + byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); + this.mMaxProgresstime = 100; - this.mEUt = -500; + this.mEUt = 500; + + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); this.mEfficiencyIncrease = 10000; + + // Overclock + if (this.mEUt <= 16) { + this.mEUt = (this.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); + this.mMaxProgresstime = (this.mMaxProgresstime / (1 << tTier - 1)); + } else { + while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { + this.mEUt *= 4; + this.mMaxProgresstime /= 2; + } + } + + if (this.mEUt > 0) { + this.mEUt = (-this.mEUt); + } + + - int aChance = MathUtils.randInt(0, 10000); + int aChance = MathUtils.randInt(0, 10); AutoMap aOutputs = new AutoMap(); try { - Logger.INFO("Output Chance - "+aChance+" | Valid number? "+(aChance < 100)); - if (aChance < 100) { - //1% Chance per Tick - aOutputs = mTreeData.generateOutput(0); - if (aOutputs.size() > 0) { - Logger.INFO("Generated some Loot, adding it to the output busses"); - for (ItemStack aOutputItemStack : aOutputs) { - this.addOutput(aOutputItemStack); - } - Logger.INFO("Updating Slots"); - this.updateSlots(); - } + //Logger.INFO("Output Chance - "+aChance+" | Valid number? "+(aChance < 1000)); + if (aChance < 8) { + //1% Chance per Tick + for (int u=0; u<(Math.max(1, (MathUtils.randInt((3*tTier), 100)*tTier*tTier)/8));u++) { + aOutputs = mTreeData.generateOutput(0); + if (aOutputs.size() > 0) { + Logger.INFO("Generated some Loot, adding it to the output busses"); + + ItemStack aLeaves = ItemUtils.getSimpleStack(Blocks.leaves); + + for (ItemStack aOutputItemStack : aOutputs) { + if (!GT_Utility.areStacksEqual(aLeaves, aOutputItemStack)) { + this.addOutput(aOutputItemStack); + } + } + Logger.INFO("Updating Slots"); + this.updateSlots(); + } + } + } } catch (Throwable t) { t.printStackTrace(); } - Logger.INFO("Valid Recipe"); + //Logger.INFO("Valid Recipe"); return true; } else { - Logger.INFO("Invalid Recipe"); - this.getBaseMetaTileEntity().disableWorking(); + //Logger.INFO("Invalid Recipe"); return false; } //return this.checkRecipeGeneric(4, 100, 100); -- cgit From cf5475a417af586af27ae1de3d5e52e374c5a0b7 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Fri, 26 Apr 2019 00:41:41 +1000 Subject: % Re-enabled Tree Farmer recipes. - Disabled some logging. --- .../api/objects/minecraft/FakeWorld.java | 18 +++++----- .../gtPlusPlus/core/recipe/RECIPES_Machines.java | 8 ++--- .../common/helpers/treefarm/TreeGenerator.java | 38 +++++++++++----------- .../production/GregtechMetaTileEntityTreeFarm.java | 16 ++++----- 4 files changed, 40 insertions(+), 40 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers') diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java b/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java index 800d8afaa4..8ee033a341 100644 --- a/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java +++ b/src/Java/gtPlusPlus/api/objects/minecraft/FakeWorld.java @@ -40,17 +40,17 @@ public class FakeWorld implements IBlockAccess { aWorldSize = aSize; aDistanceFromOrigin = ((aWorldSize-1)/2); aWorldHeight = aDistanceFromOrigin >= 255 ? 255 : aDistanceFromOrigin; - Logger.INFO("Created a Fake World with data:"); - Logger.INFO("World Size: "+aWorldSize); - Logger.INFO("Distance from Origin in each dir: "+aDistanceFromOrigin); - Logger.INFO("World Height: "+aWorldHeight); + Logger.WARNING("Created a Fake World with data:"); + Logger.WARNING("World Size: "+aWorldSize); + Logger.WARNING("Distance from Origin in each dir: "+aDistanceFromOrigin); + Logger.WARNING("World Height: "+aWorldHeight); init(); } public void init() { /*if (mStaticFakeWorldData == null) { - Logger.INFO("Setting all Blocks in Fake World to Air."); + Logger.WARNING("Setting all Blocks in Fake World to Air."); mStaticFakeWorldData = new HashMap(); for (int y=0;y<=aWorldHeight;y++) { for (int x=-aDistanceFromOrigin;x<=aDistanceFromOrigin;x++) { @@ -62,13 +62,13 @@ public class FakeWorld implements IBlockAccess { } }*/ //if (mStaticFakeWorldData != null) { - //Logger.INFO(" Instancing static air world."); + //Logger.WARNING(" Instancing static air world."); mFakeWorldData = new HashMap(); //mFakeWorldData = (HashMap) mStaticFakeWorldData.clone(); //} - //Logger.INFO("Initialisation of FakeWorld is now complete."); + //Logger.WARNING("Initialisation of FakeWorld is now complete."); } public FakeBlockPos getBlockAtCoords(int x, int y, int z) { @@ -82,7 +82,7 @@ public class FakeWorld implements IBlockAccess { public void setBlockAtCoords(int x, int y, int z, Block aBlock, int aMeta) { FakeBlockPos aTempPos = new FakeBlockPos(x, y, z, aBlock, aMeta); - Logger.INFO("Setting "+x+", "+y+", "+z+" to "+aBlock.getLocalizedName()+":"+aMeta); + Logger.WARNING("Setting "+x+", "+y+", "+z+" to "+aBlock.getLocalizedName()+":"+aMeta); mFakeWorldData.put(aTempPos.getLocationString(), aTempPos); } @@ -95,7 +95,7 @@ public class FakeWorld implements IBlockAccess { else { ItemStack aTempStack = ItemUtils.simpleMetaStack(aPos.getBlockAtPos(), aPos.getMetaAtPos(), 1); if (ItemUtils.checkForInvalidItems(aTempStack)) { - //Logger.INFO("Output: "+aTempStack.getDisplayName()); + //Logger.WARNING("Output: "+aTempStack.getDisplayName()); aOutput.put(aTempStack); } } diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java index c26b01d0f7..e9c1da024c 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -801,10 +801,10 @@ public class RECIPES_Machines { RECIPE_IndustrialSieveGrate); } - if (CORE.ConfigSwitches.enableMultiblock_TreeFarmer){/* + if (CORE.ConfigSwitches.enableMultiblock_TreeFarmer){ //Industrial Tree Farmer RECIPE_TreeFarmController = GregtechItemList.Industrial_TreeFarm.get(1); - RECIPE_TreeFarmFrame = GregtechItemList.TreeFarmer_Structural.get(Casing_Amount); + RECIPE_TreeFarmFrame = GregtechItemList.Casing_PLACEHOLDER_TreeFarmer.get(Casing_Amount); //Industrial Tree Farm Controller if (!GTNH) { RecipeUtils.addShapedGregtechRecipe( @@ -813,7 +813,7 @@ public class RECIPES_Machines { "plateEglinSteel", CI.machineCasing_MV, "plateEglinSteel", RECIPE_TreeFarmController); } - if (GTNH) { + else { RecipeUtils.addShapedGregtechRecipe( "plateEglinSteel", "rotorEglinSteel", "plateEglinSteel", "cableGt02Silver", "pipeMediumStainlessSteel", "cableGt02Silver", @@ -826,7 +826,7 @@ public class RECIPES_Machines { "plankWood", "frameGtTumbaga", "plankWood", "plankWood", "plankWood", "plankWood", RECIPE_TreeFarmFrame); - */} + } if (CORE.ConfigSwitches.enableMachine_Tesseracts){ //Tesseracts diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java index 6093909167..b94ebf2918 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java @@ -23,7 +23,7 @@ public class TreeGenerator { private static final FakeTreeInFakeWorldGenerator mTreeData; static { - Logger.INFO("Created Fake Tree Generator."); + Logger.WARNING("Created Fake Tree Generator."); mTreeData = new FakeTreeInFakeWorldGenerator(); } @@ -38,10 +38,10 @@ public class TreeGenerator { AutoMap aTemp = new AutoMap(); AutoMap aOutputMap = mTreeData.getOutputFromTree(); if (aOutputMap != null && aOutputMap.size() > 0) { - Logger.INFO("Valid tree data output"); + Logger.WARNING("Valid tree data output"); return aOutputMap; } - Logger.INFO("Invalid tree data output"); + Logger.WARNING("Invalid tree data output"); return aTemp; } @@ -78,20 +78,20 @@ public class TreeGenerator { this.vinesGrow = aVines; this.mFakeWorld = new AutoMap(); this.mTreesToGenerate = aTreeCount; - Logger.INFO("Created Fake Tree In Fake World Instance."); + Logger.WARNING("Created Fake Tree In Fake World Instance."); } public AutoMap getOutputFromTree(){ if (!hasGenerated) { - Logger.INFO("Generating Tree sample data"); + Logger.WARNING("Generating Tree sample data"); generate(null, CORE.RANDOM, 0, 0, 0); } AutoMap aOutputMap = new AutoMap(); int aRandomTreeID = MathUtils.randInt(0, this.mFakeWorld.size()-1); FakeWorld aWorld = this.mFakeWorld.get(aRandomTreeID); if (aWorld != null) { - Logger.INFO("Getting all block data from fake world"); + //Logger.WARNING("Getting all block data from fake world"); aOutputMap = aWorld.getAllBlocksStoredInFakeWorld(); } return aOutputMap; @@ -154,7 +154,7 @@ public class TreeGenerator { //Set some static values - Logger.INFO("Stepping through generateTree [0]"); + Logger.WARNING("Stepping through generateTree [0]"); //Dummy Value int aWorldY = 10; @@ -163,7 +163,7 @@ public class TreeGenerator { if (aWorldY >= 1 && aWorldY + l + 1 <= 256) { - Logger.INFO("Stepping through generateTree [1]"); + Logger.WARNING("Stepping through generateTree [1]"); byte b0; int k1; Block block; @@ -205,19 +205,19 @@ public class TreeGenerator { if (!flag) { - Logger.INFO("Stepping through generateTree [2]"); + Logger.WARNING("Stepping through generateTree [2]"); return false; } else { - Logger.INFO("Stepping through generateTree [3]"); + Logger.WARNING("Stepping through generateTree [3]"); Block block2 = aWorld.getBlock(aWorldX, aWorldY - 1, aWorldZ); FakeBlockPos aBlockToGrowPlantOn = aWorld.getBlockAtCoords(aWorldX, aWorldY-1, aWorldZ); boolean isSoil = block2.canSustainPlant(aWorld, aWorldX, aWorldY - 1, aWorldZ, ForgeDirection.UP, (BlockSapling)Blocks.sapling); if (/*isSoil &&*/ aWorldY < 256 - l - 1) { - Logger.INFO("Stepping through generateTree [4]"); + Logger.WARNING("Stepping through generateTree [4]"); aBlockToGrowPlantOn.onPlantGrow(aWorld, aWorldX, aWorldY - 1, aWorldZ, aWorldX, aWorldY, aWorldZ); b0 = 3; byte b1 = 0; @@ -251,7 +251,7 @@ public class TreeGenerator { } } } - Logger.INFO("Stepping through generateTree [5]"); + Logger.WARNING("Stepping through generateTree [5]"); for (k1 = 0; k1 < l; ++k1) { @@ -285,11 +285,11 @@ public class TreeGenerator { } } } - Logger.INFO("Stepping through generateTree [6]"); + Logger.WARNING("Stepping through generateTree [6]"); if (this.vinesGrow) { - Logger.INFO("Stepping through generateTree [7]"); + Logger.WARNING("Stepping through generateTree [7]"); for (k1 = aWorldY - 3 + l; k1 <= aWorldY + l; ++k1) { i3 = k1 - (aWorldY + l); @@ -324,7 +324,7 @@ public class TreeGenerator { } } } - Logger.INFO("Stepping through generateTree [8]"); + Logger.WARNING("Stepping through generateTree [8]"); if (CORE.RANDOM.nextInt(5) == 0 && l > 5) { @@ -341,19 +341,19 @@ public class TreeGenerator { } } } - Logger.INFO("Stepping through generateTree [9]"); + Logger.WARNING("Stepping through generateTree [9]"); return true; } else { - Logger.INFO("Stepping through generateTree [10]"); + Logger.WARNING("Stepping through generateTree [10]"); return false; } } } else { - Logger.INFO("Stepping through generateTree [11]"); + Logger.WARNING("Stepping through generateTree [11]"); return false; } } @@ -376,7 +376,7 @@ public class TreeGenerator { protected void setBlockAndNotifyAdequately(FakeWorld aWorld, int aX, int aY, int aZ, Block aBlock, int aMeta) { if (aBlock != null && (aMeta >= 0 && aMeta <= Short.MAX_VALUE)) { - Logger.INFO("Setting block "+aX+", "+aY+", "+aZ+" | "+aBlock.getLocalizedName()+" | "+aMeta); + Logger.WARNING("Setting block "+aX+", "+aY+", "+aZ+" | "+aBlock.getLocalizedName()+" | "+aMeta); aWorld.setBlockAtCoords(aX, aY, aZ, aBlock, aMeta); //aOutputsFromGenerator.put(ItemUtils.simpleMetaStack(aBlock, aMeta, 1)); } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java index 2ee2acd726..4357765303 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java @@ -166,9 +166,9 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase } public boolean checkRecipe(final ItemStack aStack) { - //Logger.INFO("Trying to process virtual tree farming"); + //Logger.WARNING("Trying to process virtual tree farming"); if (mTreeData != null) { - //Logger.INFO("Tree Data is valid"); + //Logger.WARNING("Tree Data is valid"); long tVoltage = getMaxInputVoltage(); byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); @@ -200,13 +200,13 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase AutoMap aOutputs = new AutoMap(); try { - //Logger.INFO("Output Chance - "+aChance+" | Valid number? "+(aChance < 1000)); + //Logger.WARNING("Output Chance - "+aChance+" | Valid number? "+(aChance < 1000)); if (aChance < 8) { //1% Chance per Tick for (int u=0; u<(Math.max(1, (MathUtils.randInt((3*tTier), 100)*tTier*tTier)/8));u++) { aOutputs = mTreeData.generateOutput(0); if (aOutputs.size() > 0) { - Logger.INFO("Generated some Loot, adding it to the output busses"); + Logger.WARNING("Generated some Loot, adding it to the output busses"); ItemStack aLeaves = ItemUtils.getSimpleStack(Blocks.leaves); @@ -215,7 +215,7 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase this.addOutput(aOutputItemStack); } } - Logger.INFO("Updating Slots"); + Logger.WARNING("Updating Slots"); this.updateSlots(); } } @@ -226,11 +226,11 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase t.printStackTrace(); } - //Logger.INFO("Valid Recipe"); + //Logger.WARNING("Valid Recipe"); return true; } else { - //Logger.INFO("Invalid Recipe"); + //Logger.WARNING("Invalid Recipe"); return false; } //return this.checkRecipeGeneric(4, 100, 100); @@ -264,7 +264,7 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase if (!isValidBlockForStructure(tTileEntity, CASING_TEXTURE_ID, true, aBlock, aMeta, ModBlocks.blockCasings2Misc, 15)) { - Logger.INFO("Bad centrifuge casing"); + Logger.WARNING("Bad centrifuge casing"); return false; } ++tAmount; -- cgit