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. --- src/Java/gtPlusPlus/GTplusplus.java | 2 +- src/Java/gtPlusPlus/core/lib/CORE.java | 2 +- src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java | 33 ++++++---- .../base/GregtechMeta_MultiBlockBase.java | 12 ++++ .../gregtech/common/helpers/TreeFarmHelper.java | 9 +++ .../multi/GregtechMetaTileEntityTreeFarm.java | 77 +++++++++++----------- .../multi/GregtechMetaTileEntity_MultiTank.java | 4 +- 7 files changed, 85 insertions(+), 54 deletions(-) (limited to 'src/Java') diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index 5306b2610c..6d28dd3662 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -41,7 +41,7 @@ import net.minecraft.launchwrapper.Launch; import net.minecraftforge.oredict.OreDictionary; @MCVersion(value = "1.7.10") -@Mod(modid = CORE.MODID, name = CORE.name, version = CORE.VERSION, dependencies = "required-after:Forge; after:PlayerAPI; after:dreamcraft; after:IC2; after:ihl; after:psychedelicraft; after:gregtech; after:Forestry; after:MagicBees; after:CoFHCore; after:Growthcraft; after:Railcraft; after:CompactWindmills; after:ForbiddenMagic; after:MorePlanet; after:PneumaticCraft; after:ExtraUtilities; after:Thaumcraft; after:rftools; after:simplyjetpacks; after:BigReactors; after:EnderIO; after:tectech; after:GTRedtech; beyondrealitycore;") +@Mod(modid = CORE.MODID, name = CORE.name, version = CORE.VERSION, dependencies = "required-after:Forge; after:PlayerAPI; after:dreamcraft; after:IC2; after:ihl; after:psychedelicraft; after:gregtech; after:Forestry; after:MagicBees; after:CoFHCore; after:Growthcraft; after:Railcraft; after:CompactWindmills; after:ForbiddenMagic; after:MorePlanet; after:PneumaticCraft; after:ExtraUtilities; after:Thaumcraft; after:rftools; after:simplyjetpacks; after:BigReactors; after:EnderIO; after:tectech; after:GTRedtech; after:beyondrealitycore;") public class GTplusplus implements ActionListener { //Mod Instance diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 78b7cf4326..11ed154d5a 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -55,7 +55,7 @@ public class CORE { public static final String name = "GT++"; public static final String MODID = "miscutils"; - public static final String VERSION = "1.6.101-prerelease"; + public static final String VERSION = "1.6.102-prerelease"; public static String MASTER_VERSION = NetworkUtils.getContentFromURL("https://raw.githubusercontent.com/draknyte1/GTplusplus/master/Recommended.txt").toLowerCase(); public static String USER_COUNTRY = GeoUtils.determineUsersCountry(); public static boolean isModUpToDate = Utils.isModUpToDate(); diff --git a/src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java b/src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java index 3578eaedf1..af7c7c9c59 100644 --- a/src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java +++ b/src/Java/gtPlusPlus/core/slots/SlotBuzzSaw.java @@ -31,25 +31,36 @@ public class SlotBuzzSaw extends Slot { if (OrePrefixes.craftingTool.contains(itemstack)) { if (itemstack.getDisplayName().toLowerCase().contains("saw") || itemstack.getDisplayName().toLowerCase().contains("gt.metatool.01.10") + || itemstack.getDisplayName().toLowerCase().contains("gt.metatool.01.110") + || itemstack.getDisplayName().toLowerCase().contains("gt.metatool.01.112") + || itemstack.getDisplayName().toLowerCase().contains("gt.metatool.01.114") || itemstack.getDisplayName().toLowerCase().contains("gt.metatool.01.140")) { if (itemstack.getItemDamage() == 10) { isValid = true; this.currentTool = SAWTOOL.SAW; } - if (itemstack.getItemDamage() == 140) { + else if (itemstack.getItemDamage() == 110) { + isValid = true; + this.currentTool = SAWTOOL.CHAINSAW; + } + else if (itemstack.getItemDamage() == 112) { + isValid = true; + this.currentTool = SAWTOOL.CHAINSAW; + } + else if (itemstack.getItemDamage() == 114) { + isValid = true; + this.currentTool = SAWTOOL.CHAINSAW; + } + else if (itemstack.getItemDamage() == 140) { isValid = true; this.currentTool = SAWTOOL.BUZZSAW; } + return isValid; } - } else { - this.currentTool = SAWTOOL.NONE; - } - } else { - this.currentTool = SAWTOOL.NONE; - } - } else { - this.currentTool = SAWTOOL.NONE; - } + } + } + } + this.currentTool = SAWTOOL.NONE; return isValid; } @@ -59,7 +70,7 @@ public class SlotBuzzSaw extends Slot { } public enum SAWTOOL { - NONE, SAW, BUZZSAW + NONE, SAW, BUZZSAW, CHAINSAW } } 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 cda85480a079de30f201a6c87cc7e9997c838a08 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Mon, 18 Dec 2017 13:18:18 +1000 Subject: $ Fixed #169. --- src/Java/gtPlusPlus/GTplusplus.java | 8 +++++--- src/Java/gtPlusPlus/core/util/player/PlayerUtils.java | 10 ++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'src/Java') diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index 6d28dd3662..c989ece8ea 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -1,14 +1,16 @@ package gtPlusPlus; import static gtPlusPlus.core.lib.CORE.DEBUG; -import static gtPlusPlus.core.lib.CORE.ConfigSwitches.*; +import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableCustomCapes; +import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableUpdateChecker; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Collection; -import cpw.mods.fml.common.*; +import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.*; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; import cpw.mods.fml.relauncher.Side; @@ -184,7 +186,7 @@ public class GTplusplus implements ActionListener { private static final void initAnalytics(){ SegmentAnalytics.isEnabled = CORE.ConfigSwitches.enableUpdateChecker; - if (PlayerUtils.isPlayerAlkalus()){ + if (!Utils.isServer() && PlayerUtils.isPlayerAlkalus()){ SegmentAnalytics.isEnabled = true; } diff --git a/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java b/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java index 82de626976..306e3ca6b5 100644 --- a/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java +++ b/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java @@ -1,12 +1,10 @@ package gtPlusPlus.core.util.player; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.UUID; +import java.util.*; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.core.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -157,7 +155,11 @@ public class PlayerUtils { return null; } + @SideOnly(Side.CLIENT) public static final boolean isPlayerAlkalus(){ + if (Utils.isServer()){ + return false; + } return isPlayerAlkalus(Minecraft.getMinecraft().thePlayer); } -- 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. --- src/Java/gtPlusPlus/core/item/ModItems.java | 7 +- src/Java/gtPlusPlus/core/material/ALLOY.java | 47 +++++++- src/Java/gtPlusPlus/core/material/ELEMENT.java | 6 + src/Java/gtPlusPlus/core/material/Material.java | 24 +++- .../core/material/MaterialGenerator.java | 11 +- .../core/util/materials/MaterialUtils.java | 2 +- .../core/util/reflect/ReflectionUtils.java | 2 +- .../xmod/gregtech/loaders/RecipeGen_Recycling.java | 128 +++++++++++++++++---- .../gregtech/GregtechComponentAssembler.java | 2 +- 9 files changed, 191 insertions(+), 38 deletions(-) (limited to 'src/Java') diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index bdb1837aa1..387315a885 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -439,7 +439,6 @@ public final class ModItems { MaterialGenerator.generateNuclearMaterial(NUCLIDE.LiFBeF2ZrF4UF4); MaterialGenerator.generateNuclearMaterial(NUCLIDE.LiFBeF2ThF4UF4); - //Generate some Alloys //Misc Alloys @@ -491,6 +490,12 @@ public final class ModItems { //Super Conductor MaterialGenerator.generate(ALLOY.HG1223, false, false); + //Generate Fictional Materials + MaterialGenerator.generate(ELEMENT.getInstance().TRINIUM, false); + MaterialGenerator.generate(ELEMENT.getInstance().TRINIUM_REFINED, false); + MaterialGenerator.generate(ALLOY.TRINIUM_TITANIUM); + MaterialGenerator.generate(ALLOY.TRINIUM_NAQUADAH, false); + MaterialGenerator.generate(ALLOY.TRINIUM_NAQUADAH_CARBON); //Must be the final Alloy to Generate MaterialGenerator.generate(ALLOY.QUANTUM); diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index 7488a3e0ae..8d1d4e5ecd 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -5,7 +5,7 @@ import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.util.materials.MaterialUtils; public final class ALLOY { - + //Just some GT Alloys that I need within mine. public static final Material BRONZE = MaterialUtils.generateMaterialFromGtENUM(Materials.Bronze); public static final Material STEEL = MaterialUtils.generateMaterialFromGtENUM(Materials.Steel); @@ -528,7 +528,7 @@ public final class ALLOY { new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Kanthal), 3), new MaterialStack(MaterialUtils.generateMaterialFromGtENUM(Materials.Invar), 15) }); - + public static final Material EGLIN_STEEL = new Material( "Eglin Steel", //Material Name MaterialState.SOLID, //State @@ -564,8 +564,49 @@ public final class ALLOY { }); + /** + * Stargate Materials - #D2FFA9 210, 255, 170 + */ - + public static final Material TRINIUM_TITANIUM = new Material( + "Trinium Titanium Alloy", //Material Name + MaterialState.SOLID, //State + new short[]{239,210,200, 0}, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, + -1, + true, //Uses Blast furnace? + new MaterialStack[]{ + new MaterialStack(ELEMENT.getInstance().TRINIUM_REFINED, 3), + new MaterialStack(ELEMENT.getInstance().TITANIUM, 7) + }); + public static final Material TRINIUM_NAQUADAH = new Material( + "Trinium Naquadah Alloy", //Material Name + MaterialState.SOLID, //State + new short[]{255, 243, 117, 0}, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, + -1, + true, //Uses Blast furnace? + new MaterialStack[]{ + new MaterialStack(ELEMENT.getInstance().TRINIUM_REFINED, 5), + new MaterialStack(ELEMENT.getInstance().NAQUADAH, 9) + }); + public static final Material TRINIUM_NAQUADAH_CARBON = new Material( + "Trinium Naquadah Carbonite", //Material Name + MaterialState.SOLID, //State + new short[]{255, 233, 0, 0}, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, + -1, + true, //Uses Blast furnace? + new MaterialStack[]{ + new MaterialStack(TRINIUM_NAQUADAH, 9), + new MaterialStack(ELEMENT.getInstance().CARBON, 1) + }); diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java index 60a27a8769..859ebd86cf 100644 --- a/src/Java/gtPlusPlus/core/material/ELEMENT.java +++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java @@ -128,4 +128,10 @@ public final class ELEMENT { public final Material IGNIS = MaterialUtils.generateMaterialFromGtENUM(Materials.InfusedFire); public final Material TERRA = MaterialUtils.generateMaterialFromGtENUM(Materials.InfusedEarth); public final Material AQUA = MaterialUtils.generateMaterialFromGtENUM(Materials.InfusedWater); + + //Fictional + public final Material NAQUADAH = MaterialUtils.generateMaterialFromGtENUM(Materials.Naquadah); + public final Material TRINIUM = new Material("Trinium", MaterialState.SOLID, new short[]{170, 210, 130}, 604, 4057, 181, 133, false, "Ke", 0, false);//Not a GT Inherited Material + public final Material TRINIUM_REFINED = new Material("Refined Trinium", MaterialState.SOLID, new short[]{210, 255, 170}, 4304, 14057, 181, 133, false, "Ke", 0, new MaterialStack[]{new MaterialStack(TRINIUM, 1)});//Not a GT Inherited Material + //https://github.com/Blood-Asp/GT5-Unofficial/issues/609 } diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index c25b818aa2..40d8461209 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -28,6 +28,8 @@ public class Material { private final Fluid vMoltenFluid; private final Fluid vPlasma; + + private final boolean vGenerateCells; protected Object dataVar = MathUtils.generateSingularRandomHexValue(); @@ -72,14 +74,23 @@ public class Material { public Material(final String materialName, final MaterialState defaultState,final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final String chemicalSymbol, final int radiationLevel, final MaterialStack... inputs){ this(materialName, defaultState, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, chemicalSymbol, radiationLevel, inputs); + } + + public Material(final String materialName, final MaterialState defaultState,final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final String chemicalSymbol, final int radiationLevel, boolean addCells,final MaterialStack... inputs) { + this (materialName, defaultState, 0, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, chemicalSymbol, radiationLevel, addCells, inputs); } public Material(final String materialName, final MaterialState defaultState, final long durability, final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final String chemicalSymbol, final int radiationLevel, final MaterialStack... inputs){ + this (materialName, defaultState, durability, rgba, meltingPoint, boilingPoint, protons, neutrons, blastFurnace, chemicalSymbol, radiationLevel, true, inputs); + } + + public Material(final String materialName, final MaterialState defaultState, final long durability, final short[] rgba, final int meltingPoint, final int boilingPoint, final long protons, final long neutrons, final boolean blastFurnace, final String chemicalSymbol, final int radiationLevel, boolean generateCells, final MaterialStack... inputs){ this.unlocalizedName = Utils.sanitizeString(materialName); this.localizedName = materialName; this.materialState = defaultState; this.RGBA = rgba; + this.vGenerateCells = generateCells; //Add Components to an array. if (inputs == null){ @@ -600,10 +611,10 @@ public class Material { Utils.LOG_WARNING("Generating our own fluid."); //Generate a Cell if we need to - if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+this.getUnlocalizedName(), 1) == null){ - @SuppressWarnings("unused") - final - Item temp = new BaseItemCell(this); + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+this.getUnlocalizedName(), 1) == null){ + if (this.vGenerateCells){ + final Item temp = new BaseItemCell(this); + } } if (this.materialState == MaterialState.SOLID){ @@ -656,6 +667,11 @@ public class Material { return isValid.mPlasma; } } + + if (this.vGenerateCells){ + return null; + } + Utils.LOG_WARNING("Generating our own Plasma."); return FluidUtils.addGTPlasma(this); //return null; diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java index 6e529b3e92..65c0f1e6c0 100644 --- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java +++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java @@ -102,10 +102,9 @@ public class MaterialGenerator { } } else { Item temp; - if (generateEverything == true){ - Block tempBlock; - tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour); - } + Block tempBlock; + tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour); + temp = new BaseItemIngot(matInfo); temp = new BaseItemDust("itemDust"+unlocalizedName, materialName, matInfo, Colour, "Dust", materialTier, sRadiation); temp = new BaseItemDust("itemDustTiny"+unlocalizedName, materialName, matInfo, Colour, "Tiny", materialTier, sRadiation); @@ -145,7 +144,7 @@ public class MaterialGenerator { RecipeGen_Fluids.generateRecipes(matInfo); RecipeGen_Plates.generateRecipes(matInfo); RecipeGen_ShapedCrafting.generateRecipes(matInfo); - RecipeGen_Recycling.generateRecipes(matInfo); + new RecipeGen_Recycling(matInfo); return true; } catch (final Throwable t) { @@ -218,7 +217,7 @@ public class MaterialGenerator { RecipeGen_Fluids.generateRecipes(matInfo); RecipeGen_Assembler.generateRecipes(matInfo); RecipeGen_DustGeneration.generateRecipes(matInfo, true); - RecipeGen_Recycling.generateRecipes(matInfo); + new RecipeGen_Recycling(matInfo); } catch (final Throwable t){ Utils.LOG_INFO(""+matInfo.getLocalizedName()+" failed to generate."); } diff --git a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java index 3e79d46c19..66c991ce99 100644 --- a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java +++ b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java @@ -82,7 +82,7 @@ public class MaterialUtils { if (hasValidRGBA(rgba) || (element == Element.H) || ((material == Materials.InfusedAir) || (material == Materials.InfusedFire) || (material == Materials.InfusedEarth) || (material == Materials.InfusedWater))){ //ModItems.itemBaseDecidust = UtilsItems.generateDecidust(material); //ModItems.itemBaseCentidust = UtilsItems.generateCentidust(material); - return new Material(name, materialState, durability, rgba, melting, boiling, protons, neutrons, blastFurnace, chemicalFormula, radioactivity); + return new Material(name, materialState, durability, rgba, melting, boiling, protons, neutrons, blastFurnace, chemicalFormula, radioactivity, false); } return null; diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java index f88f8e32e0..5f7a60f546 100644 --- a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java +++ b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java @@ -95,7 +95,7 @@ public class ReflectionUtils { public static String getMethodName(final int depth) { final StackTraceElement[] ste = new Throwable().getStackTrace(); //System. out.println(ste[ste.length-depth].getClassName()+"#"+ste[ste.length-depth].getMethodName()); - return ste[depth].getMethodName(); + return ste[depth+1].getMethodName(); } 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. --- src/Java/gtPlusPlus/GTplusplus.java | 3 - src/Java/gtPlusPlus/core/lib/CORE.java | 4 -- src/Java/gtPlusPlus/core/proxy/ClientProxy.java | 4 ++ .../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 +++++++++++++++++++--- 8 files changed, 200 insertions(+), 52 deletions(-) (limited to 'src/Java') diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index c989ece8ea..e532071d26 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -37,7 +37,6 @@ import gtPlusPlus.core.util.player.PlayerUtils; import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools; -import net.minecraft.client.Minecraft; import net.minecraft.item.Item; import net.minecraft.launchwrapper.Launch; import net.minecraftforge.oredict.OreDictionary; @@ -76,8 +75,6 @@ public class GTplusplus implements ActionListener { if(!Utils.isServer()){ enableCustomCapes = true; - //Get Graphics Mode. - CORE.mFancyGraphics = Minecraft.isFancyGraphicsEnabled(); } //Give this a go mate. diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 11ed154d5a..2fb3dd42b4 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -10,8 +10,6 @@ import java.util.concurrent.ConcurrentHashMap; import com.mojang.authlib.GameProfile; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.array.Pair; @@ -46,8 +44,6 @@ public class CORE { public static boolean DEVENV = false; public static boolean DEBUG = false; - @SideOnly(Side.CLIENT) - public static boolean mFancyGraphics = false; //Only can be set in Dev, no config or setting elsewhere. public static final boolean LOAD_ALL_CONTENT = false;; diff --git a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java index 448188379a..b7525e2863 100644 --- a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java +++ b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java @@ -37,9 +37,13 @@ public class ClientProxy extends CommonProxy implements Runnable{ private final HashSet mCapeList = new HashSet(); private final GTPP_CapeRenderer mCapeRenderer; + @SideOnly(Side.CLIENT) + public static boolean mFancyGraphics = false; public ClientProxy(){ mCapeRenderer = new GTPP_CapeRenderer(mCapeList); + //Get Graphics Mode. + mFancyGraphics = Minecraft.isFancyGraphicsEnabled(); } @SubscribeEvent 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. --- src/Java/gtPlusPlus/GTplusplus.java | 33 ++++ src/Java/gtPlusPlus/core/material/ALLOY.java | 2 +- src/Java/gtPlusPlus/core/material/ELEMENT.java | 17 +- src/Java/gtPlusPlus/core/material/Material.java | 218 ++++++++++++++------- .../core/material/MaterialGenerator.java | 14 +- .../core/material/nuclear/FLUORIDES.java | 1 + .../gtPlusPlus/core/material/nuclear/NUCLIDE.java | 14 +- .../gtPlusPlus/preloader/Preloader_GT_OreDict.java | 2 +- .../gtPlusPlus/xmod/eio/material/MaterialEIO.java | 13 +- .../gregtech/loaders/RecipeGen_DustGeneration.java | 28 +-- .../xmod/gregtech/loaders/RecipeGen_Recycling.java | 64 ++++-- 11 files changed, 273 insertions(+), 133 deletions(-) (limited to 'src/Java') diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index e532071d26..22727fa130 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -15,6 +15,7 @@ import cpw.mods.fml.common.event.*; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.r