aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java
diff options
context:
space:
mode:
authorDianeXD <64360468+DianeXD@users.noreply.github.com>2022-06-10 17:14:09 +0800
committerGitHub <noreply@github.com>2022-06-10 11:14:09 +0200
commit1f5d913551dbf8be5cccf9f2524bae373529cde4 (patch)
tree5d258ced60c624ffdce7d09646eafecd7d97b50c /src/main/java/gtPlusPlus/xmod/forestry/HANDLER_FR.java
parent201d883d1e4c7c74ce73ccb6349963144a53008e (diff)
downloadGT5-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.java48
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);
+ }
+ }
}