fix: add liquid to Forestry Carpenters internal tank filter, so new liquids are accepted

this time via relfection and hopefully working
modified:   src/main/java/modtweaker/mods/forestry/ForestryHelper.java
modified:   src/main/java/modtweaker/mods/forestry/handlers/Carpenter.java
This commit is contained in:
Tobias Wohlfarth committed 2015-01-26 21:12:35 +01:00
1 parent b9805b2209
commit 37e7395682
2 files changed
+31 -1

No files matched your search

@@ -1,5 +1,29 @@
package modtweaker.mods.forestry;
import java.lang.reflect.Field;
import java.util.HashSet;
import net.minecraftforge.fluids.Fluid;
public class ForestryHelper {
@SuppressWarnings("unchecked")
public static void addCarpenterRecipeFluids(Fluid newFluid) {
Class clazz;
try {
clazz = Class.forName("forestry.factory.gadgets.MachineCarpenter$RecipeManager");
Field field_recipeFluids = clazz.getDeclaredField("recipeFluids");
field_recipeFluids.setAccessible(true);
HashSet<Fluid> recipeFluids = (HashSet<Fluid>) field_recipeFluids.get(clazz);
recipeFluids.add(newFluid);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
@@ -28,6 +28,8 @@ import forestry.factory.gadgets.MachineFermenter;
import forestry.factory.gadgets.MachineCarpenter.Recipe;
import forestry.factory.gadgets.MachineCarpenter.RecipeManager;
import modtweaker.mods.forestry.ForestryHelper;
@ZenClass("mods.forestry.Carpenter")
public class Carpenter {
@@ -52,9 +54,13 @@ public class Carpenter {
}
private static class Add extends BaseListAddition {
public Add(Recipe recipe) {
super("Forestry Carpenter", MachineCarpenter.RecipeManager.recipes, recipe);
RecipeManager.recipeFluids.add(recipe.getLiquid().getFluid());
//The Carpenter has a list of valid Fluids, access them via Relfection because of private
if (recipe.getLiquid() != null)
ForestryHelper.addCarpenterRecipeFluids(recipe.getLiquid().getFluid());
}
}