diff options
author | â€huajijam <strhuaji@gmail.com> | 2019-05-05 20:44:58 +0800 |
---|---|---|
committer | â€huajijam <strhuaji@gmail.com> | 2019-05-05 20:44:58 +0800 |
commit | a124b545e09a931d33452a4f244e16b8da0f2e95 (patch) | |
tree | 124ff569d7f1c48ef7c3cee7b055b69942e1cc0a | |
parent | 63c33c98c3fca4d89adc4fa61fa5de5ae77a11eb (diff) | |
parent | e054e77358c4ca1cd5f794274740c3200aed9940 (diff) | |
download | GT5-Unofficial-a124b545e09a931d33452a4f244e16b8da0f2e95.tar.gz GT5-Unofficial-a124b545e09a931d33452a4f244e16b8da0f2e95.tar.bz2 GT5-Unofficial-a124b545e09a931d33452a4f244e16b8da0f2e95.zip |
Automatic synchronization
Former-commit-id: 32793104761362ce8b4ce11b288b883f5d6088cc
6 files changed, 573 insertions, 49 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/ASM/BWCore.java b/src/main/java/com/github/bartimaeusnek/ASM/BWCore.java index 031ff30512..b32537378c 100644 --- a/src/main/java/com/github/bartimaeusnek/ASM/BWCore.java +++ b/src/main/java/com/github/bartimaeusnek/ASM/BWCore.java @@ -60,13 +60,16 @@ public class BWCore extends DummyModContainer { public void preInit(FMLPreInitializationEvent event) { shouldTransform[0] = Loader.isModLoaded("ExtraUtilities") && ConfigHandler.enabledPatches[0]; shouldTransform[1] = Loader.isModLoaded("ExtraUtilities") && ConfigHandler.enabledPatches[1]; - BWCore.BWCORE_LOG.info("Extra Utilities found? " + shouldTransform[0]); + shouldTransform[3] = Loader.isModLoaded("Thaumcraft") && ConfigHandler.enabledPatches[3]; + BWCore.BWCORE_LOG.info("Extra Utilities found and ASM Patch enabled? " + shouldTransform[0]); + BWCore.BWCORE_LOG.info("Thaumcraft found and ASM Patch enabled? " + shouldTransform[3]); } @Override public List<ArtifactVersion> getDependants() { List<ArtifactVersion> ret = new ArrayList<ArtifactVersion>(); ret.add(new DefaultArtifactVersion("ExtraUtilities", true)); + ret.add(new DefaultArtifactVersion("Thaumcraft", true)); ret.add(new DefaultArtifactVersion(BartWorksCrossmod.MOD_ID, true)); return ret; } diff --git a/src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java b/src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java index bcc67b18d3..1f2d6f942c 100644 --- a/src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java +++ b/src/main/java/com/github/bartimaeusnek/ASM/BWCoreTransformer.java @@ -39,52 +39,61 @@ public class BWCoreTransformer implements IClassTransformer { public static final String[] DESCRIPTIONFORCONFIG = { "REMOVING RAIN FROM LAST MILLENIUM (EXU)", "REMVOING CREATURES FROM LAST MILLENIUM (EXU)", - "PATCHING GLOBAL RENDERER FOR USE WITH MY GALACTIC DIMS" + "PATCHING GLOBAL RENDERER FOR USE WITH MY GALACTIC DIMS", + "PATCHING THAUMCRAFT WAND PEDESTAL TO PREVENT VIS DUPLICATION", }; public static final String[] CLASSESBEEINGTRANSFORMED = { "com.rwtema.extrautils.worldgen.endoftime.WorldProviderEndOfTime", "com.rwtema.extrautils.worldgen.endoftime.ChunkProviderEndOfTime", "net.minecraft.client.renderer.RenderGlobal", + "thaumcraft.common.tiles.TileWandPedestal", }; - public static boolean obfs = false; - - public static boolean[] shouldTransform = new boolean[CLASSESBEEINGTRANSFORMED.length]; - -// public void checkForMods() { -// //hacky way to detect if the mods are loaded -// try{ -// Class.forName("com.rwtema.extrautils.core.Tuple"); -// shouldTransform[0] = true; -// shouldTransform[1] = true; -// }catch (ClassNotFoundException e){ -// BWCore.BWCORE_LOG.info("Extra Utilities not found!"); -// shouldTransform[0] = false; -// shouldTransform[1] = false; -// } -// try{ -// Class.forName("micdoodle8.mods.galacticraft.core.Constants"); -// shouldTransform[2] = true; -// }catch (ClassNotFoundException e){ -// BWCore.BWCORE_LOG.info("micdoodle Core not found!"); -// shouldTransform[2] = false; -// } -// } + static boolean obfs; + + public static boolean[] shouldTransform = new boolean[BWCoreTransformer.CLASSESBEEINGTRANSFORMED.length]; + + /** + * Made by DarkShaddow44 + */ + private static MethodNode transformThaumcraftWandPedestal(MethodNode method) { + InsnList nu = new InsnList(); + for (int j = 0; j < method.instructions.size(); j++) { + AbstractInsnNode instruction = method.instructions.get(j); + nu.add(instruction); + if (instruction.getOpcode() == INVOKEVIRTUAL) { + MethodInsnNode invokevirtual = (MethodInsnNode) instruction; + if (invokevirtual.name.equals("addVis")) { + AbstractInsnNode beginning = method.instructions.get(j - 7); + LabelNode label = new LabelNode(); + nu.insertBefore(beginning, new VarInsnNode(ALOAD, 0)); + nu.insertBefore(beginning, new FieldInsnNode(GETFIELD, "thaumcraft/common/tiles/TileWandPedestal", obfs ? "field_145850_b" : "worldObj", "Lnet/minecraft/world/World;")); + nu.insertBefore(beginning, new FieldInsnNode(GETFIELD, "net/minecraft/world/World", obfs ? "field_72995_K" : "isRemote", "Z")); + nu.insertBefore(beginning, new JumpInsnNode(IFNE, label)); + nu.add(new InsnNode(POP)); + nu.add(label); + j++; // Skip actual Pop + } + } + } + method.instructions = nu; + return method; + } public static byte[] transform(int id, byte[] basicClass) { if (!BWCoreTransformer.shouldTransform[id]) { - BWCore.BWCORE_LOG.info("Patch: " + DESCRIPTIONFORCONFIG[id] + " is disabled, will not patch!"); + BWCore.BWCORE_LOG.info("Patch: " + BWCoreTransformer.DESCRIPTIONFORCONFIG[id] + " is disabled, will not patch!"); return basicClass; } if (id < BWCoreTransformer.CLASSESBEEINGTRANSFORMED.length) { - BWCore.BWCORE_LOG.info(DESCRIPTIONFORCONFIG[id]); + BWCore.BWCORE_LOG.info(BWCoreTransformer.DESCRIPTIONFORCONFIG[id]); ClassReader classReader = new ClassReader(basicClass); ClassNode classNode = new ClassNode(); classReader.accept(classNode, ClassReader.SKIP_FRAMES); List<MethodNode> methods = classNode.methods; switch (id) { case 0: { - BWCore.BWCORE_LOG.info("Could find: " + CLASSESBEEINGTRANSFORMED[id]); + BWCore.BWCORE_LOG.info("Could find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]); String name_deObfs = "canDoRainSnowIce"; String dsc_deObfs = "(Lnet/minecraft/world/chunk/Chunk;)Z"; @@ -112,7 +121,7 @@ public class BWCoreTransformer implements IClassTransformer { break; } case 1: { - BWCore.BWCORE_LOG.info("Could find: " + CLASSESBEEINGTRANSFORMED[id]); + BWCore.BWCORE_LOG.info("Could find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]); String name_deObfs = "getPossibleCreatures"; String name_src = "func_73155_a"; String name_Obfs = "a"; @@ -142,7 +151,7 @@ public class BWCoreTransformer implements IClassTransformer { String dsc_universal = "(F)V"; String field_deObfs = "locationSunPng"; String field_src = "field_110928_i"; - BWCore.BWCORE_LOG.info("Could find: " + CLASSESBEEINGTRANSFORMED[id]); + BWCore.BWCORE_LOG.info("Could find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]); for (int i = 0; i < methods.size(); i++) { MethodNode toPatch = methods.get(i); if (ASMUtils.isCorrectMethod(methods.get(i), name_deObfs, name_Obfs, name_src) && ASMUtils.isCorrectMethod(methods.get(i), dsc_universal)) { @@ -157,7 +166,7 @@ public class BWCoreTransformer implements IClassTransformer { String nameFieldToPatch; for (int j = 0; j < toPatch.instructions.size(); j++) { - if (toPatch.instructions.get(j) instanceof FieldInsnNode && ((FieldInsnNode) toPatch.instructions.get(j)).getOpcode() == GETSTATIC && !(nameFieldToPatch = ASMUtils.matchAny(((FieldInsnNode) toPatch.instructions.get(j)).name, field_deObfs, field_src)).isEmpty()) { + if (toPatch.instructions.get(j) instanceof FieldInsnNode && toPatch.instructions.get(j).getOpcode() == GETSTATIC && !(nameFieldToPatch = ASMUtils.matchAny(((FieldInsnNode) toPatch.instructions.get(j)).name, field_deObfs, field_src)).isEmpty()) { boolean useSrc = nameFieldToPatch.equals(field_src); if (useSrc) BWCore.BWCORE_LOG.info("Found either Optifine or Fastcraft... this patch was annoying to make compatible to them..."); @@ -182,9 +191,9 @@ public class BWCoreTransformer implements IClassTransformer { } else { if (j < toPatch.instructions.size() - 2) { - if (toPatch.instructions.get(j + 2) instanceof FieldInsnNode && ((FieldInsnNode) toPatch.instructions.get(j + 2)).getOpcode() == GETSTATIC && !ASMUtils.matchAny(((FieldInsnNode) toPatch.instructions.get(j + 2)).name, field_deObfs, field_src).isEmpty()) + if (toPatch.instructions.get(j + 2) instanceof FieldInsnNode && toPatch.instructions.get(j + 2).getOpcode() == GETSTATIC && !ASMUtils.matchAny(((FieldInsnNode) toPatch.instructions.get(j + 2)).name, field_deObfs, field_src).isEmpty()) continue; - if (toPatch.instructions.get(j + 1) instanceof FieldInsnNode && ((FieldInsnNode) toPatch.instructions.get(j + 1)).getOpcode() == GETSTATIC && !ASMUtils.matchAny(((FieldInsnNode) toPatch.instructions.get(j + 1)).name, field_deObfs, field_src).isEmpty()) + if (toPatch.instructions.get(j + 1) instanceof FieldInsnNode && toPatch.instructions.get(j + 1).getOpcode() == GETSTATIC && !ASMUtils.matchAny(((FieldInsnNode) toPatch.instructions.get(j + 1)).name, field_deObfs, field_src).isEmpty()) continue; } nu.add(toPatch.instructions.get(j)); @@ -196,8 +205,24 @@ public class BWCoreTransformer implements IClassTransformer { } break; } + case 3: { + BWCore.BWCORE_LOG.info("Could find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]); + String name_deObfs = "updateEntity"; + String name_src = "func_145845_h"; + String name_Obfs = "h"; + String dsc_universal = "()V"; + + for (int i = 0; i < methods.size(); i++) { + if (ASMUtils.isCorrectMethod(methods.get(i), name_deObfs, name_Obfs, name_src) && ASMUtils.isCorrectMethod(methods.get(i), dsc_universal, dsc_universal)) { + BWCore.BWCORE_LOG.info("Found " + (name_deObfs) + "! Patching!"); + methods.set(i, BWCoreTransformer.transformThaumcraftWandPedestal(methods.get(i))); + break; + } + } + break; + } default: { - BWCore.BWCORE_LOG.info("Could not find: " + CLASSESBEEINGTRANSFORMED[id]); + BWCore.BWCORE_LOG.info("Could not find: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]); return basicClass; } } @@ -207,7 +232,7 @@ public class BWCoreTransformer implements IClassTransformer { classNode.accept(classWriter); byte[] ret = classWriter.toByteArray(); if (Arrays.hashCode(basicClass) == Arrays.hashCode(ret)) - BWCore.BWCORE_LOG.warn("Could not patch: " + CLASSESBEEINGTRANSFORMED[id]); + BWCore.BWCORE_LOG.warn("Could not patch: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[id]); return ret; } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/configs/ConfigHandler.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/configs/ConfigHandler.java index 669417a345..92aeef9c3f 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/configs/ConfigHandler.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/configs/ConfigHandler.java @@ -69,8 +69,8 @@ public class ConfigHandler { for (int i = 0; i < BWCoreTransformer.CLASSESBEEINGTRANSFORMED.length; i++) { BWCoreTransformer.shouldTransform[i] = ConfigHandler.c.get("ASM fixes", BWCoreTransformer.DESCRIPTIONFORCONFIG[i] + " in class: " + BWCoreTransformer.CLASSESBEEINGTRANSFORMED[i], true).getBoolean(true); } - enabledPatches = new boolean[BWCoreTransformer.shouldTransform.length]; - enabledPatches = Arrays.copyOf(BWCoreTransformer.shouldTransform,BWCoreTransformer.shouldTransform.length); + ConfigHandler.enabledPatches = new boolean[BWCoreTransformer.shouldTransform.length]; + ConfigHandler.enabledPatches = Arrays.copyOf(BWCoreTransformer.shouldTransform,BWCoreTransformer.shouldTransform.length); ConfigHandler.ross128BID = ConfigHandler.c.get("CrossMod Interactions", "DimID - Ross128b", -64, "The Dim ID for Ross128b").getInt(-64); ConfigHandler.ross128BAID = ConfigHandler.c.get("CrossMod Interactions", "DimID - Ross128ba", -63, "The Dim ID for Ross128ba (Ross128b's Moon)").getInt(-63); @@ -83,7 +83,7 @@ public class ConfigHandler { ConfigHandler.c.save(); } - public static void setUpComments() { + private static void setUpComments() { ConfigHandler.c.addCustomCategoryComment("ASM fixes", "Disable ASM fixes here."); ConfigHandler.c.addCustomCategoryComment("Multiblocks", "Multliblock Options can be set here."); ConfigHandler.c.addCustomCategoryComment("Singleblocks", "Singleblock Options can be set here."); diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/classic/BW_TileEntity_LESU_Redux.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/classic/BW_TileEntity_LESU_Redux.java new file mode 100644 index 0000000000..49cb2f30eb --- /dev/null +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/classic/BW_TileEntity_LESU_Redux.java @@ -0,0 +1,493 @@ +///* +// * Copyright (c) 2019 bartimaeusnek +// * +// * Permission is hereby granted, free of charge, to any person obtaining a copy +// * of this software and associated documentation files (the "Software"), to deal +// * in the Software without restriction, including without limitation the rights +// * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// * copies of the Software, and to permit persons to whom the Software is +// * furnished to do so, subject to the following conditions: +// * +// * The above copyright notice and this permission notice shall be included in all +// * copies or substantial portions of the Software. +// * +// * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// * SOFTWARE. +// */ +// +//package com.github.bartimaeusnek.bartworks.common.tileentities.classic; +// +//import com.github.bartimaeusnek.bartworks.API.ITileAddsInformation; +//import com.github.bartimaeusnek.bartworks.API.ITileDropsContent; +//import com.github.bartimaeusnek.bartworks.API.ITileHasDifferentTextureSides; +//import com.github.bartimaeusnek.bartworks.API.ITileWithGUI; +//import com.github.bartimaeusnek.bartworks.MainMod; +//import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler; +//import com.github.bartimaeusnek.bartworks.util.ChatColorHelper; +//import com.github.bartimaeusnek.bartworks.util.ConnectedBlocksChecker; +//import cpw.mods.fml.common.FMLCommonHandler; +//import cpw.mods.fml.relauncher.Side; +//import gregtech.api.interfaces.tileentity.IEnergyConnected; +//import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +//import gregtech.api.objects.XSTR; +//import net.minecraft.block.Block; +//import net.minecraft.client.renderer.texture.IIconRegister; +//import net.minecraft.entity.player.EntityPlayer; +//import net.minecraft.inventory.IInventory; +//import net.minecraft.item.ItemStack; +//import net.minecraft.tileentity.TileEntity; +//import net.minecraft.util.StatCollector; +//import net.minecraft.world.World; +//import net.minecraft.world.biome.BiomeGenBase; +//import net.minecraftforge.fluids.IFluidHandler; +// +//import java.nio.ByteBuffer; +//import java.util.ArrayList; +// +// +//public class BW_TileEntity_LESU_Redux extends TileEntity implements ITileHasDifferentTextureSides, ITileAddsInformation, ITileWithGUI, ITileDropsContent, IEnergyConnected { +// +// public ConnectedBlocksChecker connectedcells; +// public ItemStack[] circuits = new ItemStack[5]; +// private long[] storage; +// private long input; +// private long output; +// ByteBuffer eu; +// +// @Override +// public String[] getInfoData() { +// ArrayList<String> e = new ArrayList<>(); +// String[] dsc = StatCollector.translateToLocal("tooltip.tile.lesu.0.name").split(";"); +// for (int i = 0; i < dsc.length; i++) { +// e.add(dsc[i]); +// } +// e.add(StatCollector.translateToLocal("tooltip.tile.lesu.1.name") + " " + ConfigHandler.energyPerCell + "EU"); +// dsc = StatCollector.translateToLocal("tooltip.tile.lesu.2.name").split(";"); +// for (int i = 0; i < dsc.length; i++) { +// e.add(dsc[i]); +// } +// e.add(ChatColorHelper.RED + StatCollector.translateToLocal("tooltip.tile.lesu.3.name")); +// e.add(StatCollector.translateToLocal("tooltip.bw.1.name") + ChatColorHelper.DARKGREEN + " BartWorks"); +// return e.toArray(new String[0]); +// } +// +// @Override +// public void registerBlockIcons(IIconRegister par1IconRegister) { +// par1IconRegister.registerIcon(MainMod.MOD_ID + ":LESU_CASING_" + i); +// } +// +// @Override +// public int getGUIID() { +// return 0; +// } +// +// @Override +// public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage) { +// if (inputEnergyFrom(aSide)){ +// +// } +// return 0; +// } +// +// @Override +// public boolean inputEnergyFrom(byte b) { +// return true; +// } +// +// @Override +// public boolean outputsEnergyTo(byte b) { +// return false; +// } +// +// @Override +// public byte getColorization() { +// return 0; +// } +// +// @Override +// public byte setColorization(byte b) { +// return 0; +// } +// +// @Override +// public World getWorld() { +// return null; +// } +// +// @Override +// public int getXCoord() { +// return 0; +// } +// +// @Override +// public short getYCoord() { +// return 0; +// } +// +// @Override +// public int getZCoord() { +// return 0; +// } +// +// @Override +// public boolean isServerSide() { +// return !isClientSide(); +// } +// +// @Override +// public boolean isClientSide() { +// if (getWorld() != null) +// return getWorld().isRemote; +// return FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT; +// } +// +// @Override +// public int getRandomNumber(int i) { +// return new XSTR().nextInt(i); +// } +// +// @Override +// public TileEntity getTileEntity(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public TileEntity getTileEntityOffset(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public TileEntity getTileEntityAtSide(byte b) { +// return null; +// } +// +// @Override +// public TileEntity getTileEntityAtSideAndDistance(byte b, int i) { +// return null; +// } +// +// @Override +// public IInventory getIInventory(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public IInventory getIInventoryOffset(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public IInventory getIInventoryAtSide(byte b) { +// return null; +// } +// +// @Override +// public IInventory getIInventoryAtSideAndDistance(byte b, int i) { +// return null; +// } +// +// @Override +// public IFluidHandler getITankContainer(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public IFluidHandler getITankContainerOffset(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public IFluidHandler getITankContainerAtSide(byte b) { +// return null; +// } +// +// @Override +// public IFluidHandler getITankContainerAtSideAndDistance(byte b, int i) { +// return null; +// } +// +// @Override +// public IGregTechTileEntity getIGregTechTileEntity(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public IGregTechTileEntity getIGregTechTileEntityOffset(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public IGregTechTileEntity getIGregTechTileEntityAtSide(byte b) { +// return null; +// } +// +// @Override +// public IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte b, int i) { +// return null; +// } +// +// @Override +// public Block getBlock(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public Block getBlockOffset(int i, int i1, int i2) { +// return null; +// } +// +// @Override +// public Block getBlockAtSide(byte b) { +// return null; +// } +// +// @Override +// public Block getBlockAtSideAndDistance(byte b, int i) { +// return null; +// } +// +// @Override +// public byte getMetaID(int i, int i1, int i2) { +// return 0; +// } +// +// @Override +// public byte getMetaIDOffset(int i, int i1, int i2) { +// return 0; +// } +// +// @Override +// public byte getMetaIDAtSide(byte b) { +// return 0; +// } +// +// @Override +// public byte getMetaIDAtSideAndDistance(byte b, int i) { +// return 0; +// } +// +// @Override +// public byte getLightLevel(int i, int i1, int i2) { +// return 0; +// } +// +// @Override +// public byte getLightLevelOffset(int i, int i1, int i2) { +// return 0; +// } +// +// @Override +// public byte getLightLevelAtSide(byte b) { +// return 0; +// } +// +// @Override +// public byte getLightLevelAtSideAndDistance(byte b, int i) { +// return 0; +// } +// +// @Override +// public boolean getOpacity(int i, int i1, int i2) { +// return false; +// } +// +// @Override +// public boolean getOpacityOffset(int i, int i1, int i2) { +// return false; +// } +// +// @Override +// public boolean getOpacityAtSide(byte b) { +// return false; +// } +// +// @Override +// public boolean getOpacityAtSideAndDistance(byte b, int i) { +// return false; +// } +// +// @Override +// public boolean getSky(int i, int i1, int i2) { +// return false; +// } +// +// @Override +// public boolean getSkyOffset(int i, int i1, int i2) { +// return false; +// } +// +// @Override +// public boolean getSkyAtSide(byte b) { +// return false; +// } +// +// @Override +// public boolean getSkyAtSideAndDistance(byte b, int i) { +// return false; +// } +// +// @Override +// public boolean getAir(int i, int i1, int i2) { +// return false; +// } +// +// @Override +// public boolean getAirOffset(int i, int i1, int i2) { +// return false; +// } +// +// @Override +// public boolean getAirAtSide(byte b) { +// return false; +// } +// +// @Override +// public boolean getAirAtSideAndDistance(byte b, int i) { +// return false; +// } +// +// @Override +// public BiomeGenBase getBiome() { +// return null; +// } +// +// @Override +// public BiomeGenBase getBiome(int i, int i1) { +// return null; +// } +// +// @Override +// public int getOffsetX(byte b, int i) { +// return 0; +// } +// +// @Override +// public short getOffsetY(byte b, int i) { +// return 0; +// } +// +// @Override +// public int getOffsetZ(byte b, int i) { +// return 0; +// } +// +// @Override +// public boolean isDead() { +// return false; +// } +// +// @Override +// public void sendBlockEvent(byte b, byte b1) { +// +// } +// +// @Override +// public long getTimer() { +// return 0; +// } +// +// @Override +// public void setLightValue(byte b) { +// +// } +// +// @Override +// public boolean isInvalidTileEntity() { +// return false; +// } +// +// @Override +// public boolean openGUI(EntityPlayer entityPlayer, int i) { +// return false; +// } +// +// @Override +// public boolean openGUI(EntityPlayer entityPlayer) { +// return false; +// } +// +// @Override +// public int[] getAccessibleSlotsFromSide(int p_94128_1_) { +// return new int[0]; +// } +// +// @Override +// public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { +// return false; +// } +// +// @Override +// public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { +// return false; +// } +// +// @Override +// public int getSizeInventory() { +// return 0; +// } +// +// @Override +// public ItemStack getStackInSlot(int p_70301_1_) { +// return null; +// } +// +// @Override +// public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) { +// return null; +// } +// +// @Override +// public ItemStack getStackInSlotOnClosing(int p_70304_1_) { +// return null; +// } +// +// @Override +// public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) { +// +// } +// +// @Override +// public String getInventoryName() { +// return null; +// } +// +// @Override +// public boolean hasCustomInventoryName() { +// return false; +// } +// +// @Override +// public int getInventoryStackLimit() { +// return 0; +// } +// +// @Override +// public boolean isUseableByPlayer(EntityPlayer p_70300_1_) { +// return false; +// } +// +// @Override +// public void openInventory() { +// +// } +// +// @Override +// public void closeInventory() { +// +// } +// +// @Override +// public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { +// return false; +// } +// +// @Override +// public int[] getDropSlots() { +// return new int[0]; +// } +//} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java index 5cd012821c..a1b10d27a8 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java @@ -236,17 +236,17 @@ public class GT_TileEntity_Windmill extends GT_MetaTileEntity_MultiBlockBase { itemStack.stackSize -= 1; this.mMaxProgresstime = 60 * 20 * 100; if (new XSTR().nextInt(2) == 0) - this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)); + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 12L)); else - this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L)); return true; } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.log2)) { itemStack.stackSize -= 1; this.mMaxProgresstime = 60 * 20 * 100; if (new XSTR().nextInt(2) == 0) - this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 2L)); + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 12L)); else - this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)); + this.mOutputItems[0] = (GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L)); return true; } else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.pumpkin)) { itemStack.stackSize -= 1; diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java index fb13cc7c85..77578b3c1c 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/oredict/OreDictHandler.java @@ -55,14 +55,17 @@ public class OreDictHandler { OreDictHandler.cacheNonBW.clear(); for (String s : used) { if (!OreDictionary.getOres(s).isEmpty()) { - ItemStack tmp = OreDictionary.getOres(s).get(0).copy(); - Pair<Integer,Short> p = new Pair<>(Item.getIdFromItem(tmp.getItem()), (short) tmp.getItemDamage()); + ItemStack tmpstack = OreDictionary.getOres(s).get(0).copy(); + Pair<Integer, Short> p = new Pair<>(Item.getIdFromItem(tmpstack.getItem()), (short) tmpstack.getItemDamage()); cache.put(s, p); - GameRegistry.UniqueIdentifier UI = GameRegistry.findUniqueIdentifierFor(tmp.getItem()); - if (UI == null) - UI = GameRegistry.findUniqueIdentifierFor(Block.getBlockFromItem(tmp.getItem())); - if (!UI.modId.equals(MainMod.MOD_ID) && !UI.modId.equals(BartWorksCrossmod.MOD_ID) && !UI.modId.equals("BWCore")){ - OreDictHandler.cacheNonBW.add(p); + for (ItemStack tmp : OreDictionary.getOres(s)) { + Pair<Integer, Short> p2 = new Pair<>(Item.getIdFromItem(tmp.getItem()), (short) tmp.getItemDamage()); + GameRegistry.UniqueIdentifier UI = GameRegistry.findUniqueIdentifierFor(tmp.getItem()); + if (UI == null) + UI = GameRegistry.findUniqueIdentifierFor(Block.getBlockFromItem(tmp.getItem())); + if (!UI.modId.equals(MainMod.MOD_ID) && !UI.modId.equals(BartWorksCrossmod.MOD_ID) && !UI.modId.equals("BWCore")) { + OreDictHandler.cacheNonBW.add(p2); + } } } } |