diff options
author | Jordan Byrne <draknyte1@hotmail.com> | 2018-02-04 16:48:16 +1000 |
---|---|---|
committer | Jordan Byrne <draknyte1@hotmail.com> | 2018-02-04 16:48:16 +1000 |
commit | 0ac82fb73ed9bfdb3ea7b66a7ed6b44025faa03e (patch) | |
tree | 8f24879d652e068a2303496d6c694085d8707af8 /src/Java | |
parent | c736d1091698a2ef1a4a4c953392683d12abdc93 (diff) | |
download | GT5-Unofficial-0ac82fb73ed9bfdb3ea7b66a7ed6b44025faa03e.tar.gz GT5-Unofficial-0ac82fb73ed9bfdb3ea7b66a7ed6b44025faa03e.tar.bz2 GT5-Unofficial-0ac82fb73ed9bfdb3ea7b66a7ed6b44025faa03e.zip |
$ Fixed Field injection ASM doing double injections.
$ Fixed Super Chest ID collision.
% Made Super Chests hold 1/2 as much.
Diffstat (limited to 'src/Java')
4 files changed, 28 insertions, 20 deletions
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java index 059e9ad5dc..db5a6e2a74 100644 --- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java +++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java @@ -46,17 +46,13 @@ public class COMPAT_HANDLER { /* 829 --- - //837 - //to - //839 - --- - 851 + 859 to 868 --- - 890 + 899 to - 950 + 945 */ new RECIPES_LaserEngraver(); diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java index 99f82e6462..6f5f642456 100644 --- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java +++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_ClassTransformer2.java @@ -14,6 +14,7 @@ import gregtech.api.GregTech_API; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtech.common.blocks.GT_Block_Machines; import gtPlusPlus.api.objects.Logger; @@ -46,13 +47,12 @@ public class Preloader_ClassTransformer2 { - - NBTTagCompound mItemStorageNBT = new NBTTagCompound(); - + public static boolean mHasSetField = false; + private final static Class<BaseMetaTileEntity> customTransformer2 = BaseMetaTileEntity.class; public static final class GT_MetaTile_Visitor extends ClassVisitor { private boolean isGt_Block_Machines = false; - private boolean mHasSetField = false; + public GT_MetaTile_Visitor(ClassVisitor cv, boolean isGt_Block_Machines) { super(ASM5, cv); this.isGt_Block_Machines = isGt_Block_Machines; @@ -61,7 +61,7 @@ public class Preloader_ClassTransformer2 { @Override public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { FieldVisitor j = super.visitField(access, name, desc, signature, value); - if (!mHasSetField) { + if (!mHasSetField && !isGt_Block_Machines) { mHasSetField = true; FMLRelaunchLog.log("[GT++ ASM] NBTFixer", Level.INFO, "Injecting field 'mItemStorageNBT' into BaseMetaTileEntity.java. Access OpCode: "+access); j = cv.visitField(0, "mItemStorageNBT", "Lnet/minecraft/nbt/NBTTagCompound;", null, null); @@ -203,7 +203,10 @@ public class Preloader_ClassTransformer2 { else { Logger.REFLECTION("mFluid was not found."); } - BaseMetaTileEntity tMetaTileEntity = o; + NBTTagCompound mItemStorageNBT = (NBTTagCompound) ReflectionUtils.getField(customTransformer2, "mItemStorageNBT").get(o); + + MetaTileEntity tMetaTileEntity = (MetaTileEntity) ReflectionUtils.getField(customTransformer2, "mMetaTileEntity").get(o); + //BaseMetaTileEntity tMetaTileEntity = o; Logger.REFLECTION("tID: "+(tID != 0)); Logger.REFLECTION("tRecipeStuff: "+(tRecipeStuff != null)); @@ -215,11 +218,15 @@ public class Preloader_ClassTransformer2 { Logger.REFLECTION("tCoverSides: "+(tCoverSides != null)); Logger.REFLECTION("tCoverData: "+(tCoverData != null)); Logger.REFLECTION("tMetaTileEntity: "+(tMetaTileEntity != null)); + Logger.REFLECTION("mItemStorageNBT: "+(mItemStorageNBT != null)); + //mItemStorageNBT + ItemStack rStack = new ItemStack(GregTech_API.sBlockMachines, 1, tID); NBTTagCompound tNBT = new NBTTagCompound(); if (tRecipeStuff != null && !tRecipeStuff.hasNoTags()) tNBT.setTag("GT.CraftingComponents", tRecipeStuff); + if (mItemStorageNBT != null && !mItemStorageNBT.hasNoTags()) tNBT.setTag("GT.ItemNBT", mItemStorageNBT); if (tMuffler) tNBT.setBoolean("mMuffler", tMuffler); if (tLockUpgrade) tNBT.setBoolean("mLockUpgrade", tLockUpgrade); if (tSteamConverter) tNBT.setBoolean("mSteamConverter", tSteamConverter); @@ -236,20 +243,20 @@ public class Preloader_ClassTransformer2 { } } - //Set Item NBT + /*//Set Item NBT if (!o.isInvalid()){ - ((IMetaTileEntity) tMetaTileEntity).setItemNBT(tNBT); //Valid? Idk + ((MetaTileEntity) tMetaTileEntity).setItemNBT(tNBT); //Valid? Idk } else { try { Logger.REFLECTION("Trying to set NBT data to Itemstack from invalid tile, World might explode."); - ((IMetaTileEntity) tMetaTileEntity).setItemNBT(tNBT); //Valid? Idk + ((MetaTileEntity) tMetaTileEntity).setItemNBT(tNBT); //Valid? Idk } catch (Throwable t){ Logger.REFLECTION("getDropsHack1"); t.printStackTrace(); } - } + }*/ //Set stack NBT if (!tNBT.hasNoTags()) rStack.setTagCompound(tNBT); @@ -270,12 +277,17 @@ public class Preloader_ClassTransformer2 { GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ); final TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ); if (tTileEntity instanceof IGregTechTileEntity) { - final IGregTechTileEntity tGregTechTileEntity = (IGregTechTileEntity) tTileEntity; + final IGregTechTileEntity tGregTechTileEntity = (IGregTechTileEntity) tTileEntity; final Random tRandom = new XSTR(); GT_Block_Machines.mTemporaryTileEntity.set(tGregTechTileEntity); for (int i = 0; i < tGregTechTileEntity.getSizeInventory(); ++i) { final ItemStack tItem = tGregTechTileEntity.getStackInSlot(i); if (tItem != null && tItem.stackSize > 0 && tGregTechTileEntity.isValidSlot(i)) { + + //Try inject this + tGregTechTileEntity.getMetaTileEntity().setItemNBT((NBTTagCompound) tItem.getTagCompound().copy()); + Logger.INFO("Hopefully saved ItemNBT data."); + final EntityItem tItemEntity = new EntityItem(aWorld, (double) (aX + tRandom.nextFloat() * 0.8f + 0.1f), (double) (aY + tRandom.nextFloat() * 0.8f + 0.1f), diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java index e3c7cbded5..cc6a22c372 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java @@ -19,7 +19,7 @@ import net.minecraft.nbt.NBTTagCompound; public class GT_MetaTileEntity_TieredChest extends GT_MetaTileEntity_TieredMachineBlock { public int mItemCount = 0; public ItemStack mItemStack = null; - private final static double mStorageFactor = (270000.0D/8); + private final static double mStorageFactor = (270000.0D/16); public GT_MetaTileEntity_TieredChest(int aID, String aName, String aNameRegional, int aTier) { super(aID, aName, aNameRegional, aTier, 3, diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechSuperTanks.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechSuperTanks.java index 3a5199197c..4f7ff4add9 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechSuperTanks.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechSuperTanks.java @@ -13,7 +13,7 @@ import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GT_MetaTileEntity_Ti public class GregtechSuperTanks { public static void run() { - int mId = 890; + int mId = 946; GregtechItemList.Super_Chest_LV.set((new GT_MetaTileEntity_TieredChest(mId++, "super.chest.tier.01", "Super Chest I", 1)).getStackForm(1L)); GregtechItemList.Super_Chest_MV.set((new GT_MetaTileEntity_TieredChest(mId++, "super.chest.tier.02", "Super Chest II", 2)).getStackForm(1L)); GregtechItemList.Super_Chest_HV.set((new GT_MetaTileEntity_TieredChest(mId++, "super.chest.tier.03", "Super Chest III", 3)).getStackForm(1L)); |