From 2214833189caf3eb262f049746be4987b97aa6a7 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Fri, 15 Dec 2017 18:15:08 +1000 Subject: More fixes pre-gtnh update (#168) $ Tree Farmer Fix (a) $ Multitank Fix. ^ Version Bump. * + Added Chainsaw support to treefarm. + Added check for creative tools to tree farm for creative testing. --- .../base/GregtechMeta_MultiBlockBase.java | 12 ++++ .../gregtech/common/helpers/TreeFarmHelper.java | 9 +++ .../multi/GregtechMetaTileEntityTreeFarm.java | 77 +++++++++++----------- .../multi/GregtechMetaTileEntity_MultiTank.java | 4 +- 4 files changed, 61 insertions(+), 41 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java index fdcdab63fe..484a156e0f 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java @@ -5,8 +5,10 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Iterator; +import gregtech.api.enums.Materials; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; @@ -19,6 +21,7 @@ import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_MultiMachine; import gtPlusPlus.xmod.gregtech.api.gui.GUI_MultiMachine; +import gtPlusPlus.xmod.gregtech.api.items.tools.GT_MetaGenTool; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBattery; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBattery; import net.minecraft.entity.player.InventoryPlayer; @@ -213,6 +216,15 @@ GT_MetaTileEntity_MultiBlockBase { } super.updateSlots(); } + + public boolean isToolCreative(ItemStack mStack){ + Materials t1 = GT_MetaGenerated_Tool.getPrimaryMaterial(mStack); + Materials t2 = GT_MetaGenerated_Tool.getSecondaryMaterial(mStack); + if (t1 == Materials._NULL && t2 == Materials._NULL){ + return true; + } + return false; + } @Override public boolean addToMachineList(final IGregTechTileEntity aTileEntity, diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java index ed11baa5ed..3a0031c5d3 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java @@ -239,6 +239,15 @@ public class TreeFarmHelper { else if (aStack.getItemDamage() == 140 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.140")){ return SAWTOOL.BUZZSAW; } + else if (aStack.getItemDamage() == 110 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.110")){ + return SAWTOOL.CHAINSAW; + } + else if (aStack.getItemDamage() == 112 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.112")){ + return SAWTOOL.CHAINSAW; + } + else if (aStack.getItemDamage() == 114 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.114")){ + return SAWTOOL.CHAINSAW; + } else { return SAWTOOL.NONE; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java index eccc96c253..6d951b7221 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java @@ -15,10 +15,7 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.metatileentity.implementations.*; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; @@ -35,6 +32,7 @@ import gtPlusPlus.core.util.particles.BlockBreakParticles; import gtPlusPlus.xmod.forestry.trees.TreefarmManager; import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_TreeFarmer; import gtPlusPlus.xmod.gregtech.api.gui.GUI_TreeFarmer; +import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.helpers.TreeFarmHelper; import net.minecraft.block.Block; @@ -48,7 +46,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; -public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlockBase { +public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase { /* private */ private int treeCheckTicks = 0; /* private */ private int plantSaplingTicks = 0; @@ -102,10 +100,10 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock @Override public void saveNBTData(final NBTTagCompound aNBT) { - + Utils.LOG_INFO("Called NBT data save"); aNBT.setLong("mInternalPower", this.mInternalPower); - + //Save [Buzz]Saw final NBTTagList list = new NBTTagList(); for(int i = 0;i<2;i++){ @@ -119,14 +117,14 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock } } aNBT.setTag("Items", list); - + super.saveNBTData(aNBT); } @Override public void loadNBTData(final NBTTagCompound aNBT) { this.mInternalPower = aNBT.getLong("mInternalPower"); - + //Load [Buzz]Saw final NBTTagList list = aNBT.getTagList("Items", 10); for(int i = 0;i(); this.mEnergyHatches = new ArrayList<>(); - this.canChop = this.checkMachine(aBaseMetaTileEntity, this.mInventory[1]); + if (aBaseMetaTileEntity != null && this.mInventory[1] != null){ + this.canChop = this.checkMachine(aBaseMetaTileEntity, this.mInventory[1]); + } } } } @@ -989,7 +986,9 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock //Call Cleanup Task last, before ticking. if (this.cleanupTicks == 600){ - this.checkMachine(aBaseMetaTileEntity, this.mInventory[1]); + if (aBaseMetaTileEntity != null && this.mInventory[1] != null){ + this.checkMachine(aBaseMetaTileEntity, this.mInventory[1]); + } /*Utils.LOG_MACHINE_INFO("Looking For rubbish to cleanup - Serverside | "+this.cleanupTicks); TreeFarmHelper.cleanUp(aBaseMetaTileEntity);*/ } @@ -1002,7 +1001,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock } - //@Deprecated + //@Deprecated //public static boolean damageOrDechargeItem(ItemStack aStack, int aDamage, int aDecharge, EntityLivingBase aPlayer) { // if ((GT_Utility.isStackInvalid(aStack)) || ((aStack.getMaxStackSize() <= 1) && (aStack.stackSize > 1))) // return false; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java index b908e5439c..b8f2535b1f 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MultiTank.java @@ -172,7 +172,7 @@ extends GregtechMeta_MultiBlockBase { public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); - if (this.internalStorageTank.amount >= this.maximumFluidStorage){ + if ((this.internalStorageTank != null) && this.internalStorageTank.amount >= this.maximumFluidStorage){ if (this.internalStorageTank.amount > this.maximumFluidStorage){ this.internalStorageTank.amount = this.maximumFluidStorage; } @@ -589,4 +589,4 @@ extends GregtechMeta_MultiBlockBase { this.getBaseMetaTileEntity().markDirty();*/ return true; } -} +} \ No newline at end of file -- cgit From b24a09c6a2684be77aa7ee5e1255409051249fe0 Mon Sep 17 00:00:00 2001 From: Alkalus Date: Mon, 18 Dec 2017 13:25:25 +1000 Subject: + Added Trinium and Trinium related Alloys. (#170) + Added more recycling recipes. $ Fixed bad materials in component assembler recipes. --- .../xmod/gregtech/loaders/RecipeGen_Recycling.java | 128 +++++++++++++++++---- .../gregtech/GregtechComponentAssembler.java | 2 +- 2 files changed, 108 insertions(+), 22 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java index f7e294ad0b..d0651f783c 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java @@ -7,30 +7,40 @@ import java.util.Map; import org.apache.commons.lang3.reflect.FieldUtils; +import gregtech.api.enums.GT_Values; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.array.Pair; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.oredict.OreDictionary; public class RecipeGen_Recycling implements Runnable { final Material toGenerate; - static Map mNameMap; + public static Map mNameMap; public RecipeGen_Recycling(final Material M) { this.toGenerate = M; - mNameMap = this.getNameMap(); + if (mNameMap == null){ + mNameMap = this.getNameMap(); + } + if (mNameMap != null){ + generateRecipes(this.toGenerate); + } } @Override public void run() { - generateRecipes(this.toGenerate); + } public static void generateRecipes(final Material material) { @@ -46,14 +56,20 @@ public class RecipeGen_Recycling implements Runnable { Utils.LOG_INFO("Found " + mValidPrefixesAsString.length + " valid OreDict prefixes."); if (mValidPrefixesAsString.length >= 1) { for (final OrePrefixes validPrefix : mValidPrefixesAsString) { - try { - final ItemStack tempStack = ItemUtils - .getItemStackOfAmountFromOreDict(validPrefix + material.getLocalizedName(), 1); - - if ((tempStack != null) && (tempStack != ItemUtils.getSimpleStack(ModItems.AAA_Broken))) { + + if (material.getState() != MaterialState.SOLID){ + continue; + } + + final ItemStack tempStack = get(validPrefix, material, 1); + final ItemStack mDust = getDust(material, validPrefix); + final Pair mData = getDustData(material, validPrefix); + int mFluidAmount = (int) GT_Utility.translateMaterialToFluidAmount(mData.getKey().mMaterialAmount, true); + + //Maceration + if (tempStack != null) { // mValidItems[mSlotIndex++] = tempStack; - final ItemStack mDust = getDust(material, validPrefix); if ((mDust != null) && GT_ModHandler.addPulverisationRecipe(tempStack, mDust)) { Utils.LOG_INFO("Recycle Recipe: " + material.getLocalizedName() + " - Success - Recycle " + tempStack.getDisplayName() + " and obtain " + mDust.getDisplayName()); @@ -65,9 +81,30 @@ public class RecipeGen_Recycling implements Runnable { } } } + + //Arc Furnace + if (tempStack != null) { + + } + + //Fluid Extractor + if (tempStack != null) { + // mValidItems[mSlotIndex++] = tempStack; + if ((mDust != null) && GT_Values.RA.addFluidExtractionRecipe(tempStack, null, material.getFluid(mFluidAmount), 0, 30, 8)) { + Utils.LOG_INFO("Recycle Recipe: " + material.getLocalizedName() + " - Success - Recycle " + + tempStack.getDisplayName() + " and obtain " + mDust.getDisplayName()); + } + else { + Utils.LOG_INFO("Recycle Recipe: " + material.getLocalizedName() + " - Failed"); + if (mDust == null) { + Utils.LOG_INFO("Invalid Dust output."); + } + } + } + } catch (final Throwable t) { - // t.printStackTrace(); + t.printStackTrace(); // Utils.LOG_INFO("Returning Null. Throwable Info: // "+t.getMessage()); // Utils.LOG_INFO("Throwable Info: "+t.toString()); @@ -79,28 +116,69 @@ public class RecipeGen_Recycling implements Runnable { } } + public static Pair getDustData(final Material aMaterial, final OrePrefixes aPrefix) { + return getDustData(aMaterial, aPrefix.mMaterialAmount); + } + + public static Pair getDustData(final Material aMaterial, final long aMaterialAmount) { + ItemStack mDust = null; + OrePrefixes mPrefix = null; + + if (aMaterial == null || aMaterialAmount <= 0) { + return null; + } + if ((((aMaterialAmount % M) == 0) || (aMaterialAmount >= (M * 16)))) { + mDust = get(OrePrefixes.dust, aMaterial, aMaterialAmount / M); + mPrefix = OrePrefixes.dust; + } + if ((mDust == null) && ((((aMaterialAmount * 4) % M) == 0) || (aMaterialAmount >= (M * 8)))) { + mDust = get(OrePrefixes.dustSmall, aMaterial, (aMaterialAmount * 4) / M); + mPrefix = OrePrefixes.dustSmall; + } + if ((mDust == null) && (((aMaterialAmount * 9) >= M))) { + mDust = get(OrePrefixes.dustTiny, aMaterial, (aMaterialAmount * 9) / M); + mPrefix = OrePrefixes.dustTiny; + } + + if (mPrefix != null && mDust != null){ + Utils.LOG_INFO("Built valid dust pair."); + return new Pair(mPrefix, mDust); + } + else { + Utils.LOG_INFO("mPrefix: "+(mPrefix!=null)); + Utils.LOG_INFO("mDust: "+(mDust!=null)); + } + Utils.LOG_INFO("Failed to build valid dust pair."); + return null; + } + public static ItemStack getDust(final Material aMaterial, final OrePrefixes aPrefix) { return aMaterial == null ? null : getDust(aMaterial, aPrefix.mMaterialAmount); } - + public static ItemStack getDust(final Material aMaterial, final long aMaterialAmount) { if (aMaterialAmount <= 0) { return null; } ItemStack rStack = null; if ((((aMaterialAmount % M) == 0) || (aMaterialAmount >= (M * 16)))) { + Utils.LOG_INFO("Trying to get a Dust"); rStack = get(OrePrefixes.dust, aMaterial, aMaterialAmount / M); } if ((rStack == null) && ((((aMaterialAmount * 4) % M) == 0) || (aMaterialAmount >= (M * 8)))) { + Utils.LOG_INFO("Trying to get a Small Dust"); rStack = get(OrePrefixes.dustSmall, aMaterial, (aMaterialAmount * 4) / M); } if ((rStack == null) && (((aMaterialAmount * 9) >= M))) { + Utils.LOG_INFO("Trying to get a Tiny Dust"); rStack = get(OrePrefixes.dustTiny, aMaterial, (aMaterialAmount * 9) / M); } if (rStack == null) { Utils.LOG_INFO("Returning Null. Method: " + ReflectionUtils.getMethodName(0)); Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(1)); Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(2)); + Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(3)); + Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(4)); } return rStack; @@ -114,18 +192,13 @@ public class RecipeGen_Recycling implements Runnable { return get(aName, aReplacement, aAmount, true, true); } - public static ItemStack get(final OrePrefixes aPrefix, final Object aMaterial, final long aAmount) { + public static ItemStack get(final OrePrefixes aPrefix, final Material aMaterial, final long aAmount) { return get(aPrefix, aMaterial, null, aAmount); } - public static ItemStack get(final OrePrefixes aPrefix, final Object aMaterial, final ItemStack aReplacement, + public static ItemStack get(final OrePrefixes aPrefix, final Material aMaterial, final ItemStack aReplacement, final long aAmount) { - /* - * if (OrePrefixes.mPreventableComponents.contains(aPrefix) && - * aPrefix.mDisabledItems.contains(aMaterial)) { return aReplacement; - * //TODO } - */ - return get(aPrefix.get(aMaterial), aReplacement, aAmount, false, true); + return get(aPrefix.name()+Utils.sanitizeString(aMaterial.getLocalizedName()), aReplacement, aAmount, false, true); } public static ItemStack get(final Object aName, final ItemStack aReplacement, final long aAmount, @@ -134,6 +207,8 @@ public class RecipeGen_Recycling implements Runnable { Utils.LOG_INFO("Returning Null. Method: " + ReflectionUtils.getMethodName(0)); Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(1)); Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(2)); + Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(3)); + Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(4)); return null; } if (!mNameMap.containsKey(aName.toString()) && aMentionPossibleTypos) { @@ -148,10 +223,13 @@ public class RecipeGen_Recycling implements Runnable { Utils.LOG_INFO("Returning Null. Method: " + ReflectionUtils.getMethodName(0)); Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(1)); Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(2)); + Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(3)); + Utils.LOG_INFO("Called from method: " + ReflectionUtils.getMethodName(4)); return null; } final ItemStack tStack = (ItemStack) mNameMap.get(aName.toString()); if (GT_Utility.isStackValid(tStack)) { + Utils.LOG_INFO("Found valid stack."); return GT_Utility.copyAmount(aAmount, new Object[] { tStack }); } return GT_Utility.copyAmount(aAmount, getOres(aName).toArray()); @@ -161,17 +239,25 @@ public class RecipeGen_Recycling implements Runnable { final String aName = (aOreName == null) ? "" : aOreName.toString(); final ArrayList rList = new ArrayList(); if (GT_Utility.isStringValid(aName)) { - rList.addAll(getOres(aName)); + Utils.LOG_INFO("Making a list of all OreDict entries for "+aOreName+"."); + if (rList.addAll(OreDictionary.getOres(aName))){ + Utils.LOG_INFO("Added "+rList.size()+" elements to list."); + } + else { + Utils.LOG_INFO("Failed to Add Collection from oreDictionary, forcing an entry."); + rList.add(ItemUtils.getItemStackOfAmountFromOreDict((String) aOreName, 1)); + } } return rList; } - public Map getNameMap() { + public Map getNameMap() { Map tempMap; try { tempMap = (Map) FieldUtils.readStaticField(GT_OreDictUnificator.class, "sName2StackMap", true); if (tempMap != null) { + Utils.LOG_INFO("Found 'sName2StackMap' in GT_OreDictUnificator.class."); return tempMap; } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechComponentAssembler.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechComponentAssembler.java index 86ce88311e..33e17c8c0e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechComponentAssembler.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechComponentAssembler.java @@ -241,7 +241,7 @@ public class GregtechComponentAssembler { private static boolean addRecipePump(int tier, Materials main, Materials pipe, Materials cable) { try { - ItemStack cableStack = ItemUtils.getGregtechOreStack(OrePrefixes.cableGt01, main, 1); + ItemStack cableStack = ItemUtils.getGregtechOreStack(OrePrefixes.cableGt01, cable, 1); ItemStack screwStack = ItemUtils.getGregtechOreStack(OrePrefixes.screw, main, 1); ItemStack rotorStack = ItemUtils.getGregtechOreStack(OrePrefixes.rotor, main, 1); ItemStack pipeStack = ItemUtils.getGregtechOreStack(OrePrefixes.pipeMedium, pipe, 1); -- cgit From f0b0ced99b15884fd485129c1fb231c04eaa9e42 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 18 Dec 2017 14:23:05 +1000 Subject: + Added some safety handling to Bee generation since they will not generate in older versions of Forestry. % Made all of Growthcraft support reflective. --- .../xmod/forestry/bees/custom/GTPP_Bees.java | 21 +++--- .../xmod/forestry/bees/custom/ItemCustomComb.java | 17 +++-- .../xmod/growthcraft/fishtrap/FishTrapHandler.java | 47 +++++++++++-- .../xmod/growthcraft/fishtrap/Growthcraft_New.java | 78 +++++++++++++++++++--- .../xmod/growthcraft/fishtrap/Growthcraft_Old.java | 78 +++++++++++++++++++--- 5 files changed, 196 insertions(+), 45 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod') diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java index 8873aa6a80..0d15f16964 100644 --- a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java +++ b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java @@ -1,23 +1,14 @@ package gtPlusPlus.xmod.forestry.bees.custom; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; +import java.lang.reflect.*; import org.apache.commons.lang3.reflect.FieldUtils; -import com.google.common.collect.ImmutableMap; - import cpw.mods.fml.common.Loader; -import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IAllele; -import forestry.api.recipes.RecipeManagers; import gregtech.GT_Mod; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.*; import gtPlusPlus.core.item.base.ingots.BaseItemIngot_OLD; import gtPlusPlus.core.item.base.misc.BaseItemMisc; import gtPlusPlus.core.item.base.misc.BaseItemMisc.MiscTypes; @@ -68,9 +59,15 @@ public class GTPP_Bees { setMaterials(); setCustomItems(); + try { combs = new ItemCustomComb(); combs.initCombsRecipes(); - GTPP_Bee_Definition.initBees(); + GTPP_Bee_Definition.initBees(); + } + catch (Throwable t){ + Utils.LOG_INFO("[Bees] Failed to load bees, probably due to an ancient forestry version"); + t.printStackTrace(); + } } } diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java index adfa6cbf11..d95993f2d2 100644 --- a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java +++ b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java @@ -1,16 +1,19 @@ package gtPlusPlus.xmod.forestry.bees.custom; +import java.lang.reflect.Field; +import java.util.List; + +import org.apache.commons.lang3.reflect.FieldUtils; + import com.google.common.collect.ImmutableMap; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import forestry.api.core.Tabs; import forestry.api.recipes.RecipeManagers; import gregtech.GT_Mod; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.ItemList; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.*; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.lib.CORE; @@ -21,11 +24,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -import java.lang.reflect.Field; -import java.util.List; - -import org.apache.commons.lang3.reflect.FieldUtils; - public class ItemCustomComb extends Item { @SideOnly(Side.CLIENT) private IIcon secondIcon; @@ -68,6 +66,7 @@ public class ItemCustomComb extends Item { return 2; } + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister) { this.itemIcon = par1IconRegister.registerIcon("forestry:beeCombs.0"); diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java index 687a5afa3b..aaaa0a0dee 100644 --- a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java +++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java @@ -1,5 +1,8 @@ package gtPlusPlus.xmod.growthcraft.fishtrap; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + import gregtech.api.enums.GT_Values; import gregtech.api.util.GT_ModHandler; import gtPlusPlus.core.lib.LoadedMods; @@ -11,30 +14,62 @@ import net.minecraft.item.ItemStack; public class FishTrapHandler { private static final String[] fishTypes = {"fish", "junk", "treasure"}; + private static Object mFishingRegistry; + private static Growthcraft_Old mHandler; + + public static Object getFishingRegistry(){ + if (mFishingRegistry != null){ + return mFishingRegistry; + } + else { + return setFishTrapRegistry(); + } + } + + private final static Object setFishTrapRegistry(){ + Class mFishingRegistryClass; + try { + mFishingRegistryClass = Class.forName("growthcraft.api.fishtrap.FishTrapRegistry"); + final Method mFishingRegistryMethod = mFishingRegistryClass.getDeclaredMethod("getInstance", null); + mFishingRegistry = mFishingRegistryMethod.invoke(null); + if (mFishingRegistry != null){ + return mFishingRegistry; + } + } + catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + } + return null; + } protected static void addFish(final String lootType, final ItemStack lootStack, final int lootChance){ + if (mFishingRegistry == null){ + setFishTrapRegistry(); + } + if (mHandler == null){ + mHandler = new Growthcraft_Old(); + } + final String GCVersion = LoadedMods.getModVersion("Growthcraft"); - final String[] versionString = GCVersion.split("//."); if (LoadedMods.getModVersion("Growthcraft").contains("2.3.1") || versionString[1].equals("3")){ if (lootType.equals(fishTypes[0])){ - Growthcraft_Old.addTrapFish(lootStack, lootChance); + mHandler.addTrapFish(lootStack, lootChance); Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as an extra Fish for Growthcraft Fishtraps."); } else if (lootType.equals(fishTypes[1])){ - Growthcraft_Old.addTrapJunk(lootStack, lootChance); + mHandler.addTrapJunk(lootStack, lootChance); Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as extra Junk for Growthcraft Fishtraps."); } else if (lootType.equals(fishTypes[2])){ - Growthcraft_Old.addTrapTreasure(lootStack, lootChance); + mHandler.addTrapTreasure(lootStack, lootChance); Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as extra Treasure for Growthcraft Fishtraps."); } else { return; } - } + }/* else if (LoadedMods.getModVersion("Growthcraft").contains("2.7.2")){ if (lootType.equals(fishTypes[0])){ Growthcraft_New.addTrapFish(lootStack, lootChance); @@ -51,7 +86,7 @@ public class FishTrapHandler { else { return; } - } + }*/ else { Utils.LOG_INFO("Extra Fish loot for Growthcraft Fishtraps disabled. Found V."+LoadedMods.getModVersion("Growthcraft")); diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java index 4405709888..3b6b46d630 100644 --- a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java +++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java @@ -1,24 +1,84 @@ package gtPlusPlus.xmod.growthcraft.fishtrap; -import growthcraft.api.fishtrap.FishTrapEntry; -import growthcraft.api.fishtrap.FishTrapRegistry; +import java.lang.reflect.*; + import net.minecraft.item.ItemStack; public class Growthcraft_New { - public static void addTrapJunk(final ItemStack loot, final int lootChance){ - FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance)); - + Method addTrapJunk; + Method addTrapTreasure; + Method addTrapFish; + Object FishTrapRegistryO; + + public Growthcraft_New(){ + setFishTrapRegistry(); + } + + void setFishTrapRegistry(){ + try { + Class FishTrapRegistryClass = Class.forName("gtPlusPlus.xmod.growthcraft.fishtrap.FishTrapHandler.mFishingRegistry"); + Class FishTrapEntry = Class.forName("growthcraft.api.fishtrap.FishTrapEntry"); + if (FishTrapRegistryClass.isInstance(FishTrapHandler.getFishingRegistry())){ + addTrapJunk = FishTrapRegistryClass.getDeclaredMethod("addTrapJunk", FishTrapEntry); + addTrapTreasure = FishTrapRegistryClass.getDeclaredMethod("addTrapTreasure", FishTrapEntry); + addTrapFish = FishTrapRegistryClass.getDeclaredMethod("addTrapFish", FishTrapEntry); + FishTrapRegistryO = FishTrapHandler.getFishingRegistry(); + } + } + catch (ClassNotFoundException | NoSuchMethodException | SecurityException e) { + e.printStackTrace(); + } + } + + private Object createFishTrapEntry(ItemStack loot, int chance){ + try { + Class FishTrapEntry = Class.forName("growthcraft.api.fishtrap.FishTrapEntry"); + Object o = FishTrapEntry.getConstructor(ItemStack.class, int.class); + if (FishTrapEntry != null){ + Constructor[] constructors = FishTrapEntry.getDeclaredConstructors(); + constructors[0].setAccessible(true); + Object x = constructors[0].newInstance(loot, chance); + if (x != null){ + return x; + } + } + } + catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {} + + return null; + } + + private boolean invoke(Method m, ItemStack o, int p){ + try { + Object I = createFishTrapEntry(o, p); + m.invoke(FishTrapRegistryO, I); + return true; + } + catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {} + return false; } - public static void addTrapTreasure(final ItemStack loot, final int lootChance){ - FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance)); + public void addTrapJunk(final ItemStack loot, final int lootChance){ + //FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance)); + if (addTrapJunk != null){ + invoke(addTrapJunk, loot, lootChance); + } } - public static void addTrapFish(final ItemStack loot, final int lootChance){ - FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance)); + public void addTrapTreasure(final ItemStack loot, final int lootChance){ + //FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance)); + if (addTrapTreasure != null){ + invoke(addTrapTreasure, loot, lootChance); + } + } + public void addTrapFish(final ItemStack loot, final int lootChance){ + //FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance)); + if (addTrapFish != null){ + invoke(addTrapFish, loot, lootChance); + } } } diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java index f988abd53a..62fe2f29cb 100644 --- a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java +++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java @@ -1,24 +1,84 @@ package gtPlusPlus.xmod.growthcraft.fishtrap; -import growthcraft.api.fishtrap.FishTrapEntry; -import growthcraft.api.fishtrap.FishTrapRegistry; +import java.lang.reflect.*; + import net.minecraft.item.ItemStack; public class Growthcraft_Old { - public static void addTrapJunk(final ItemStack loot, final int lootChance){ - FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance)); - + Method addTrapJunk; + Method addTrapTreasure; + Method addTrapFish; + Object FishTrapRegistryO; + + public Growthcraft_Old(){ + setFishTrapRegistry(); + } + + void setFishTrapRegistry(){ + try { + Class FishTrapRegistryClass = Class.forName("gtPlusPlus.xmod.growthcraft.fishtrap.FishTrapHandler.mFishingRegistry"); + Class FishTrapEntry = Class.forName("growthcraft.api.fishtrap.FishTrapEntry"); + if (FishTrapRegistryClass.isInstance(FishTrapHandler.getFishingRegistry())){ + addTrapJunk = FishTrapRegistryClass.getDeclaredMethod("addTrapJunk", FishTrapEntry); + addTrapTreasure = FishTrapRegistryClass.getDeclaredMethod("addTrapTreasure", FishTrapEntry); + addTrapFish = FishTrapRegistryClass.getDeclaredMethod("addTrapFish", FishTrapEntry); + FishTrapRegistryO = FishTrapHandler.getFishingRegistry(); + } + } + catch (ClassNotFoundException | NoSuchMethodException | SecurityException e) { + e.printStackTrace(); + } + } + + private Object createFishTrapEntry(ItemStack loot, int chance){ + try { + Class FishTrapEntry = Class.forName("growthcraft.api.fishtrap.FishTrapEntry"); + Object o = FishTrapEntry.getConstructor(ItemStack.class, int.class); + if (FishTrapEntry != null){ + Constructor[] constructors = FishTrapEntry.getDeclaredConstructors(); + constructors[0].setAccessible(true); + Object x = constructors[0].newInstance(loot, chance); + if (x != null){ + return x; + } + } + } + catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {} + + return null; + } + + private boolean invoke(Method m, ItemStack o, int p){ + try { + Object I = createFishTrapEntry(o, p); + m.invoke(FishTrapRegistryO, I); + return true; + } + catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {} + return false; } - public static void addTrapTreasure(final ItemStack loot, final int lootChance){ - FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance)); + public void addTrapJunk(final ItemStack loot, final int lootChance){ + //FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance)); + if (addTrapJunk != null){ + invoke(addTrapJunk, loot, lootChance); + } } - public static void addTrapFish(final ItemStack loot, final int lootChance){ - FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance)); + public void addTrapTreasure(final ItemStack loot, final int lootChance){ + //FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance)); + if (addTrapTreasure != null){ + invoke(addTrapTreasure, loot, lootChance); + } + } + public void addTrapFish(final ItemStack loot, final int lootChance){ + //FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance)); + if (addTrapFish != null){ + invoke(addTrapFish, loot, lootChance); + } } } -- cgit From 2a4795f65d98ff60a177d7d6a5552fd687d9f6e8 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 20 Dec 2017 17:30:21 +1000 Subject: + Added support for GTNH Trinium. $ Fixed excessive fluid cells being generated. $ Further improve material recycling recipes. --- .../gtPlusPlus/xmod/eio/material/MaterialEIO.java | 13 +++-- .../gregtech/loaders/RecipeGen_DustGeneration.java | 28 +++++----- .../xmod/gregtech/loaders/RecipeGen_Recycling.java | 64 +++++++++++++++++----- 3 files changed, 71 insertions(+), 34 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod') diff --git a/src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java b/src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java index cdb04c9b45..a8c5382a21 100644 --- a/src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java +++ b/src/Java/gtPlusPlus/xmod/eio/material/MaterialEIO.java @@ -1,10 +1,6 @@ package gtPlusPlus.xmod.eio.material; -import gtPlusPlus.core.material.ALLOY; -import gtPlusPlus.core.material.ELEMENT; -import gtPlusPlus.core.material.Material; -import gtPlusPlus.core.material.MaterialStack; -import gtPlusPlus.core.material.NONMATERIAL; +import gtPlusPlus.core.material.*; import gtPlusPlus.core.material.state.MaterialState; public class MaterialEIO { @@ -18,6 +14,7 @@ public class MaterialEIO { 10, 10, false, //Uses Blast furnace? + false, //Generates a cell //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ELEMENT.getInstance().GOLD, 1), @@ -33,6 +30,7 @@ public class MaterialEIO { 10, 10, false, //Uses Blast furnace? + false, //Generates a cell //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ELEMENT.getInstance().IRON, 1), @@ -48,6 +46,7 @@ public class MaterialEIO { 10, 10, false, //Uses Blast furnace? + false, //Generates a cell //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ELEMENT.getInstance().IRON, 1), @@ -63,6 +62,7 @@ public class MaterialEIO { 10, 10, false, //Uses Blast furnace? + false, //Generates a cell //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ALLOY.STEEL, 3), @@ -78,6 +78,7 @@ public class MaterialEIO { 10, 10, false, //Uses Blast furnace? + false, //Generates a cell //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ELEMENT.getInstance().GOLD, 1), @@ -94,6 +95,7 @@ public class MaterialEIO { 10, 10, false, //Uses Blast furnace? + false, //Generates a cell //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ENERGETIC_ALLOY, 1), @@ -109,6 +111,7 @@ public class MaterialEIO { 10, 10, false, //Uses Blast furnace? + false, //Generates a cell //Material Stacks with Percentage of required elements. new MaterialStack[]{ new MaterialStack(ELEMENT.getInstance().SILICON, 1), diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java index 46bf36c445..b7af6eadac 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java @@ -114,12 +114,12 @@ public class RecipeGen_DustGeneration implements Runnable{ //Is this a composite? if ((inputStacks != null) && !disableOptional){ //Is this a composite? - Utils.LOG_INFO("mixer length: "+inputStacks.length); + Utils.LOG_WARNING("mixer length: "+inputStacks.length); if ((inputStacks.length != 0) && (inputStacks.length <= 4)){ //Log Input items Utils.LOG_WARNING(ItemUtils.getArrayStackNames(inputStacks)); final long[] inputStackSize = material.vSmallestRatio; - Utils.LOG_INFO("mixer is stacksizeVar null? "+(inputStackSize != null)); + Utils.LOG_WARNING("mixer is stacksizeVar null? "+(inputStackSize != null)); //Is smallest ratio invalid? if (inputStackSize != null){ //set stack sizes on an input ItemStack[] @@ -168,19 +168,19 @@ public class RecipeGen_DustGeneration implements Runnable{ (int) Math.max(material.getMass() * 2L * 1, 1), 2 * material.vVoltageMultiplier)) //Was 6, but let's try 2. This makes Potin LV, for example. { - Utils.LOG_INFO("Dust Mixer Recipe: "+material.getLocalizedName()+" - Success"); + Utils.LOG_WARNING("Dust Mixer Recipe: "+material.getLocalizedName()+" - Success"); } else { - Utils.LOG_INFO("Dust Mixer Recipe: "+material.getLocalizedName()+" - Failed"); + Utils.LOG_WARNING("Dust Mixer Recipe: "+material.getLocalizedName()+" - Failed"); } //Add Shapeless recipe for low tier alloys. if (tVoltageMultiplier <= 30){ if (RecipeUtils.addShapedGregtechRecipe(inputStacks, outputStacks)){ - Utils.LOG_INFO("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Success"); + Utils.LOG_WARNING("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Success"); } else { - Utils.LOG_INFO("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Failed"); + Utils.LOG_WARNING("Dust Shapeless Recipe: "+material.getLocalizedName()+" - Failed"); } } } @@ -200,12 +200,12 @@ public class RecipeGen_DustGeneration implements Runnable{ //Is this a composite? if ((inputStacks != null)){ //Is this a composite? - Utils.LOG_INFO("mixer length: "+inputStacks.length); + Utils.LOG_WARNING("mixer length: "+inputStacks.length); if ((inputStacks.length >= 1) && (inputStacks.length <= 4)){ //Log Input items Utils.LOG_WARNING(ItemUtils.getArrayStackNames(inputStacks)); final long[] inputStackSize = material.vSmallestRatio; - Utils.LOG_INFO("mixer is stacksizeVar not null? "+(inputStackSize != null)); + Utils.LOG_WARNING("mixer is stacksizeVar not null? "+(inputStackSize != null)); //Is smallest ratio invalid? if (inputStackSize != null){ //set stack sizes on an input ItemStack[] @@ -215,7 +215,7 @@ public class RecipeGen_DustGeneration implements Runnable{ } } //Relog input values, with stack sizes - Utils.LOG_INFO(ItemUtils.getArrayStackNames(inputStacks)); + Utils.LOG_WARNING(ItemUtils.getArrayStackNames(inputStacks)); //Get us four ItemStacks to input into the mixer ItemStack input1, input2, input3, input4; @@ -254,24 +254,24 @@ public class RecipeGen_DustGeneration implements Runnable{ (int) Math.max(material.getMass() * 2L * 1, 1), 2 * material.vVoltageMultiplier)) //Was 6, but let's try 2. This makes Potin LV, for example. { - Utils.LOG_INFO("Dust Mixer Recipe: "+material.getLocalizedName()+" - Success"); + Utils.LOG_WARNING("Dust Mixer Recipe: "+material.getLocalizedName()+" - Success"); return true; } else { - Utils.LOG_INFO("Dust Mixer Recipe: "+material.getLocalizedName()+" - Failed"); + Utils.LOG_WARNING("Dust Mixer Recipe: "+material.getLocalizedName()+" - Failed"); return false; } } else { - Utils.LOG_INFO("inputStackSize == NUll - "+material.getLocalizedName()); + Utils.LOG_WARNING("inputStackSize == NUll - "+material.getLocalizedName()); } } else { - Utils.LOG_INFO("InputStacks is out range 1-4 - "+material.getLocalizedName()); + Utils.LOG_WARNING("InputStacks is out range 1-4 - "+material.getLocalizedName()); } } else { - Utils.LOG_INFO("InputStacks == NUll - "+material.getLocalizedName()); + Utils.LOG_WARNING("InputStacks == NUll - "+material.getLocalizedName()); } return false; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java index d0651f783c..f48d9822f0 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Recycling.java @@ -9,10 +9,7 @@ import org.apache.commons.lang3.reflect.FieldUtils; import gregtech.api.enums.GT_Values; import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; -import gtPlusPlus.core.item.ModItems; +import gregtech.api.util.*; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.util.Utils; @@ -20,7 +17,6 @@ import gtPlusPlus.core.util.array.Pair; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; public class RecipeGen_Recycling implements Runnable { @@ -51,21 +47,59 @@ public class RecipeGen_Recycling implements Runnable { OrePrefixes.plate, OrePrefixes.plateDense, OrePrefixes.plateDouble, OrePrefixes.plateTriple, OrePrefixes.plateQuadruple, OrePrefixes.plateQuintuple, OrePrefixes.stick, OrePrefixes.stickLong, OrePrefixes.bolt, OrePrefixes.screw, OrePrefixes.ring, OrePrefixes.rotor, OrePrefixes.gearGt, - OrePrefixes.gearGtSmall }; + OrePrefixes.gearGtSmall, OrePrefixes.gear, OrePrefixes.block, OrePrefixes.cableGt01, OrePrefixes.cableGt02, + OrePrefixes.cableGt04, OrePrefixes.cableGt08, OrePrefixes.cableGt12, OrePrefixes.wireFine, OrePrefixes.wireGt01, + OrePrefixes.wireGt02, OrePrefixes.wireGt04, OrePrefixes.wireGt08, OrePrefixes.wireGt12, OrePrefixes.wireGt16, + OrePrefixes.foil, OrePrefixes.frameGt, OrePrefixes.pipeHuge, OrePrefixes.pipeLarge, OrePrefixes.pipeMedium, OrePrefixes.pipeSmall, OrePrefixes.pipeTiny, + }; - Utils.LOG_INFO("Found " + mValidPrefixesAsString.length + " valid OreDict prefixes."); + int mSlotIndex = 0; + Pair[] mValidPairs = new Pair[mValidPrefixesAsString.length]; + + for (int r=0;r(mValidPrefixesAsString[r], temp.copy()); + } + else { + Utils.LOG_INFO("Invalid Item: "+mValidPrefixesAsString[r].name()+Utils.sanitizeString(material.getLocalizedName())); + } + } + + if (mValidPairs.length > 0){ + int validCounter = 0; + Pair[] temp = mValidPairs; + for (Pair temp2 : mValidPairs){ + if (temp2 != null){ + Utils.LOG_INFO("Valid: "+temp2.getValue().getDisplayName()); + validCounter++; + } + } + Pair temp3[] = new Pair[validCounter]; + int temp4 = 0; + for (Pair r : mValidPairs){ + if (r != null){ + temp3[temp4++] = r; + } + } + if (temp3.length > 0){ + mValidPairs = temp3.clone(); + } + } + + Utils.LOG_INFO("Found " + mValidPairs.length + " valid OreDict prefixes."); if (mValidPrefixesAsString.length >= 1) { - for (final OrePrefixes validPrefix : mValidPrefixesAsString) { + for (final Pair validPrefix : mValidPairs) { try { if (material.getState() != MaterialState.SOLID){ continue; } - final ItemStack tempStack = get(validPrefix, material, 1); - final ItemStack mDust = getDust(material, validPrefix); - final Pair mData = getDustData(material, validPrefix); - int mFluidAmount = (int) GT_Utility.translateMaterialToFluidAmount(mData.getKey().mMaterialAmount, true); + final ItemStack tempStack = validPrefix.getValue(); + final ItemStack mDust = getDust(material, validPrefix.getKey()); + final Pair mData = getDustData(material, validPrefix.getKey()); + int mFluidAmount = (int) GT_Utility.translateMaterialToFluidAmount(validPrefix.getKey().mMaterialAmount, true); //Maceration if (tempStack != null) { @@ -91,11 +125,11 @@ public class RecipeGen_Recycling implements Runnable { if (tempStack != null) { // mValidItems[mSlotIndex++] = tempStack; if ((mDust != null) && GT_Values.RA.addFluidExtractionRecipe(tempStack, null, material.getFluid(mFluidAmount), 0, 30, 8)) { - Utils.LOG_INFO("Recycle Recipe: " + material.getLocalizedName() + " - Success - Recycle " - + tempStack.getDisplayName() + " and obtain " + mDust.getDisplayName()); + Utils.LOG_INFO("Fluid Recycle Recipe: " + material.getLocalizedName() + " - Success - Recycle " + + tempStack.getDisplayName() + " and obtain " + mFluidAmount+"mb of "+material.getFluid(1).getLocalizedName()+"."); } else { - Utils.LOG_INFO("Recycle Recipe: " + material.getLocalizedName() + " - Failed"); + Utils.LOG_INFO("Fluid Recycle Recipe: " + material.getLocalizedName() + " - Failed"); if (mDust == null) { Utils.LOG_INFO("Invalid Dust output."); } -- cgit From 5715a32d2901922503fd850f3a68503fb77467c3 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 20 Dec 2017 23:39:49 +1000 Subject: - Disabled some logging. % Minor Project Clean-up, added missing Override annotations to 100+ methods & removed pointless casts. % Moved Logging to it's own class. $ Fixed Multi-block handling of Pollution. $ Fixed the GT 5.09 material enabler system. (From My Side, it's still borked on GTs). + Added a Dynamic Proxy invocation for IMaterialHandler. + Added an AutoMap data type, which is a Auto-incremental ID'd Hashmap wrapper. --- .../xmod/bop/blocks/base/LeavesBase.java | 3 +- .../xmod/bop/blocks/base/SaplingBase.java | 19 +- .../blocks/rainforest/SaplingRainforestTree.java | 4 +- .../features/trees/WorldGenRainForestTree_Ex.java | 30 +-- src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java | 4 +- .../forestry/bees/custom/GTPP_Bee_Definition.java | 30 +-- .../xmod/forestry/bees/custom/GTPP_Bees.java | 72 ++--- .../bees/custom/GTPP_Branch_Definition.java | 18 +- .../bees/inventory/InventoryDenseBeeHouse.java | 12 +- .../xmod/forestry/trees/TreefarmManager.java | 6 +- .../interfaces/internal/Interface_ToolStats.java | 1 + .../xmod/gregtech/api/items/Gregtech_MetaTool.java | 5 +- .../gregtech/api/items/tools/GT_MetaGenTool.java | 5 + .../GT_MetaTileEntity_DeluxeMachine.java | 38 +-- .../GT_MetaTileEntity_DeluxeTank.java | 4 +- .../GT_MetaTileEntity_Hatch_InputBattery.java | 13 +- .../GT_MetaTileEntity_Hatch_OutputBattery.java | 14 +- .../base/GregtechMetaPipeEntityBase_Cable.java | 6 +- .../base/GregtechMeta_MultiBlockBase.java | 67 +++-- .../GregtechDoubleFuelGeneratorBase.java | 88 +++---- .../base/machines/GregtechMetaSafeBlockBase.java | 30 +-- .../api/world/GTPP_Worldgen_GT_Ore_Layer.java | 11 +- .../xmod/gregtech/common/Meta_GT_Proxy.java | 4 +- .../common/blocks/fluid/GregtechFluidHandler.java | 13 +- .../common/blocks/textures/TexturesGtBlock.java | 6 +- .../common/blocks/textures/TexturesGtTools.java | 4 +- .../gregtech/common/helpers/ChargingHelper.java | 53 ++-- .../gregtech/common/helpers/CraftingHelper.java | 4 +- .../gregtech/common/helpers/TreeFarmHelper.java | 20 +- .../helpers/autocrafter/AC_Helper_Container.java | 16 +- .../helpers/autocrafter/AC_Helper_Utils.java | 10 +- .../common/helpers/tesseract/TesseractHelper.java | 34 +-- .../common/items/MetaGeneratedGregtechItems.java | 5 +- .../GT_MetaTileEntity_TesseractGenerator.java | 18 +- .../generators/GT_MetaTileEntity_Boiler_Base.java | 4 +- .../GT_MetaTileEntity_SemiFluidGenerator.java | 25 +- .../GregtechMetaTileEntitySolarGenerator.java | 8 +- .../generators/GregtechMetaTileEntity_RTG.java | 10 +- .../basic/GT_MetaTileEntity_WorldAccelerator.java | 14 +- .../GregtechMetaAtmosphericReconditioner.java | 28 +- .../basic/GregtechMetaPollutionCreator.java | 3 +- .../basic/GregtechMetaPollutionDetector.java | 4 +- ...regtechMetaTileEntity_CompactFusionReactor.java | 61 ++--- .../machines/multi/GT4Entity_AutoCrafter.java | 18 +- .../machines/multi/GT4Entity_ThermalBoiler.java | 4 +- .../machines/multi/GregtechMTE_NuclearReactor.java | 96 +++---- .../multi/GregtechMetaTileEntityAnimalFarm.java | 60 ++--- .../GregtechMetaTileEntityGeneratorArray.java | 41 +-- .../multi/GregtechMetaTileEntityTreeFarm.java | 139 +++++----- .../GregtechMetaTileEntity_AlloyBlastSmelter.java | 6 +- .../GregtechMetaTileEntity_CatalyticReactor.java | 54 ++-- .../multi/GregtechMetaTileEntity_Cyclotron.java | 26 +- ...regtechMetaTileEntity_IndustrialCentrifuge.java | 38 +-- .../GregtechMetaTileEntity_IndustrialCokeOven.java | 14 +- ...echMetaTileEntity_IndustrialCuttingMachine.java | 20 +- ...gtechMetaTileEntity_IndustrialElectrolyzer.java | 4 +- ...GregtechMetaTileEntity_IndustrialMacerator.java | 22 +- ...regtechMetaTileEntity_IndustrialPlatePress.java | 4 +- .../GregtechMetaTileEntity_IndustrialSifter.java | 82 +++--- .../GregtechMetaTileEntity_IndustrialSinter.java | 22 +- ...MetaTileEntity_IndustrialThermalCentrifuge.java | 34 ++- ...GregtechMetaTileEntity_IndustrialWashPlant.java | 32 +-- .../GregtechMetaTileEntity_IndustrialWireMill.java | 22 +- .../GregtechMetaTileEntity_MassFabricator.java | 56 ++-- .../multi/GregtechMetaTileEntity_MultiTank.java | 73 +++--- ...chMetaTileEntity_PowerSubStationController.java | 79 +++--- .../multi/GregtechMetaTileEntity_Refinery.java | 52 ++-- .../storage/GregtechMetaEnergyBuffer.java | 6 +- .../common/tools/TOOL_Gregtech_Choocher.java | 1 + .../xmod/gregtech/loaders/GT_Material_Loader.java | 292 +++++++++++++++++++++ .../xmod/gregtech/loaders/Gregtech_Blocks.java | 8 +- .../loaders/ProcessingToolHeadChoocher.java | 16 +- .../gregtech/loaders/RecipeGen_BlastSmelter.java | 60 ++--- .../loaders/RecipeGen_BlastSmelterGT_Ex.java | 5 +- .../gregtech/loaders/RecipeGen_DustGeneration.java | 58 ++-- .../xmod/gregtech/loaders/RecipeGen_Extruder.java | 32 +-- .../xmod/gregtech/loaders/RecipeGen_Fluids.java | 42 +-- .../xmod/gregtech/loaders/RecipeGen_Plates.java | 24 +- .../xmod/gregtech/loaders/RecipeGen_Recycling.java | 88 ++++--- .../gregtech/loaders/RecipeGen_ShapedCrafting.java | 44 ++-- .../xmod/gregtech/recipes/GregtechRecipeAdder.java | 153 +++++------ .../recipes/machines/RECIPEHANDLER_CokeOven.java | 52 ++-- .../recipes/machines/RECIPEHANDLER_Dehydrator.java | 52 ++-- .../machines/RECIPEHANDLER_MatterFabricator.java | 52 ++-- .../registration/gregtech/Gregtech4Content.java | 10 +- .../gregtech/GregtechAdvancedBoilers.java | 4 +- .../gregtech/GregtechAdvancedMixer.java | 6 +- .../gregtech/GregtechComponentAssembler.java | 4 +- .../registration/gregtech/GregtechConduits.java | 33 +-- .../registration/gregtech/GregtechCyclotron.java | 4 +- .../registration/gregtech/GregtechDehydrator.java | 4 +- .../gregtech/GregtechEnergyBuffer.java | 4 +- .../GregtechGeothermalThermalGenerator.java | 4 +- .../gregtech/GregtechIndustrialBlastSmelter.java | 4 +- .../gregtech/GregtechIndustrialCentrifuge.java | 4 +- .../gregtech/GregtechIndustrialCokeOven.java | 4 +- .../gregtech/GregtechIndustrialCuttingFactory.java | 4 +- .../gregtech/GregtechIndustrialElectrolyzer.java | 4 +- .../gregtech/GregtechIndustrialFuelRefinery.java | 4 +- .../gregtech/GregtechIndustrialGeneratorArray.java | 4 +- .../gregtech/GregtechIndustrialMacerator.java | 4 +- .../gregtech/GregtechIndustrialMassFabricator.java | 4 +- .../gregtech/GregtechIndustrialMultiTank.java | 4 +- .../gregtech/GregtechIndustrialPlatePress.java | 4 +- .../gregtech/GregtechIndustrialSifter.java | 4 +- .../GregtechIndustrialThermalCentrifuge.java | 4 +- .../gregtech/GregtechIndustrialTreeFarm.java | 4 +- .../gregtech/GregtechIndustrialWashPlant.java | 4 +- .../gregtech/GregtechIndustrialWiremill.java | 4 +- .../gregtech/GregtechIronBlastFurnace.java | 4 +- .../registration/gregtech/GregtechLFTR.java | 4 +- .../gregtech/GregtechMiniRaFusion.java | 4 +- .../gregtech/GregtechNitroDieselFix.java | 35 +-- .../gregtech/GregtechPollutionDevices.java | 4 +- .../gregtech/GregtechPowerSubStation.java | 4 +- .../registration/gregtech/GregtechRTG.java | 4 +- .../gregtech/GregtechRocketFuelGenerator.java | 4 +- .../registration/gregtech/GregtechSafeBlock.java | 4 +- .../gregtech/GregtechSolarGenerators.java | 4 +- .../gregtech/GregtechSteamCondenser.java | 4 +- .../gregtech/GregtechTieredFluidTanks.java | 8 +- .../gregtech/GregtechTreeFarmerTE.java | 4 +- .../gregtech/GregtechWirelessChargers.java | 3 +- .../gregtech/NewHorizonsAccelerator.java | 4 +- .../xmod/growthcraft/fishtrap/FishTrapHandler.java | 10 +- .../gtPlusPlus/xmod/ic2/recipe/RECIPE_IC2.java | 16 +- .../gtPlusPlus/xmod/mekanism/HANDLER_Mekanism.java | 8 +- .../thaumcraft/common/ItemBlockThaumcraft.java | 1 + .../thaumcraft/common/tile/TCTileEntities.java | 4 +- .../xmod/thermalfoundation/HANDLER_TF.java | 12 +- .../xmod/thermalfoundation/fluid/TF_Fluids.java | 18 +- .../recipe/TF_Gregtech_Recipes.java | 12 +- 132 files changed, 1735 insertions(+), 1384 deletions(-) create mode 100644 src/Java/gtPlusPlus/xmod/gregtech/loaders/GT_Material_Loader.java (limited to 'src/Java/gtPlusPlus/xmod') diff --git a/src/Java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java b/src/Java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java index 6ac0800b85..93a8d1febb 100644 --- a/src/Java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java +++ b/src/Java/gtPlusPlus/xmod/bop/blocks/base/LeavesBase.java @@ -7,6 +7,7 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; @@ -58,7 +59,7 @@ public class LeavesBase extends BlockLeaves { } } else { - Utils.LOG_WARNING("Unable to drop anything, Leaf Type array and Loot array are different sizes."); + Log