diff options
author | DianeXD <64360468+DianeXD@users.noreply.github.com> | 2022-06-10 17:14:09 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-10 11:14:09 +0200 |
commit | 1f5d913551dbf8be5cccf9f2524bae373529cde4 (patch) | |
tree | 5d258ced60c624ffdce7d09646eafecd7d97b50c /src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java | |
parent | 201d883d1e4c7c74ce73ccb6349963144a53008e (diff) | |
download | GT5-Unofficial-1f5d913551dbf8be5cccf9f2524bae373529cde4.tar.gz GT5-Unofficial-1f5d913551dbf8be5cccf9f2524bae373529cde4.tar.bz2 GT5-Unofficial-1f5d913551dbf8be5cccf9f2524bae373529cde4.zip |
Compatible with more saplings for tree farm (#206)
* Compatible with more saplings for tree farm
* Some saplings do not produce logs
* Balance forestry saplings
* Balance forestry saplings
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java')
-rw-r--r-- | src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java b/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java index 694613c3ab..82793aa0d2 100644 --- a/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java +++ b/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java @@ -3,13 +3,20 @@ package gtPlusPlus.xmod.forestry; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import binnie.extratrees.genetics.ExtraTreeSpecies; import cpw.mods.fml.common.Optional; +import forestry.api.arboriculture.EnumGermlingType; +import forestry.api.arboriculture.EnumWoodType; +import forestry.api.arboriculture.TreeManager; +import forestry.arboriculture.genetics.TreeDefinition; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.forestry.bees.items.FR_ItemRegistry; import gtPlusPlus.xmod.forestry.bees.recipe.FR_Gregtech_Recipes; import gtPlusPlus.xmod.forestry.bees.registry.GTPP_Bees; +import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.GregtechMetaTileEntityTreeFarm; import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class HANDLER_FR { @@ -29,6 +36,11 @@ public class HANDLER_FR { if (LoadedMods.Forestry){ FR_Gregtech_Recipes.registerItems(); new GTPP_Bees(); + mapForestrySaplingToLog(); + } + + if (LoadedMods.ExtraTrees){ + mapExtraTreesSaplingToLog(); } } @@ -56,5 +68,41 @@ public class HANDLER_FR { } } + @Optional.Method(modid = "Forestry") + private static void mapForestrySaplingToLog() { + for (TreeDefinition value : TreeDefinition.values()) { + ItemStack aSaplingStack = value.getMemberStack(EnumGermlingType.SAPLING); + EnumWoodType woodType = ReflectionUtils.getField(value, "woodType"); + ItemStack aLog; + if (woodType != null) { + aLog = TreeManager.woodItemAccess.getLog(woodType, false); + + GregtechMetaTileEntityTreeFarm.sLogCache.put(value.getUID(), aLog); + GregtechMetaTileEntityTreeFarm.sLogCache.put(value.getUID() + "fireproof", TreeManager.woodItemAccess.getLog(woodType, true)); + } else { + aLog = ReflectionUtils.getField(value, "vanillaWood"); + + GregtechMetaTileEntityTreeFarm.sLogCache.put(value.getUID(), ReflectionUtils.getField(value, "vanillaWood")); + } + + GregtechMetaTileEntityTreeFarm.addFakeRecipeToNEI(aSaplingStack, aLog); + } + } + + @Optional.Method(modid = "ExtraTrees") + private static void mapExtraTreesSaplingToLog() { + for (ExtraTreeSpecies value : ExtraTreeSpecies.values()) { + ItemStack aSaplingStack = TreeManager.treeRoot.getMemberStack(TreeManager.treeRoot.templateAsIndividual(value.getTemplate()), 0); + ItemStack aLog = null; + if (value.getLog() != null) { + aLog = value.getLog().getItemStack(); + + GregtechMetaTileEntityTreeFarm.sLogCache.put(value.getUID(), aLog); + GregtechMetaTileEntityTreeFarm.sLogCache.put(value.getUID() + "fireproof", aLog); + } + + GregtechMetaTileEntityTreeFarm.addFakeRecipeToNEI(aSaplingStack, aLog); + } + } } |