After removing galacticraft, input hatch accepts oxygen (that is, blast furnace works perfectly).
That line of code: return mRecipeMap == null || mRecipeMap.containsInput(aFluid);
part 1: mRecipeMap == null
Is true when chunk is very recently loaded. Not very interesting.
part 2: mRecipeMap.containsInput(aFluid)
calls: https://github.com/Blood-Asp/G…/util/GT_Recipe.java#L221
then: https://github.com/Blood-Asp/G…/util/GT_Recipe.java#L226
last line: return aFluid != null && mRecipeFluidMap.containsKey(aFluid);
where mRecipeFluidMap is public final Map<Fluid, Collection<GT_Recipe>> mRecipeFluidMap = new HashMap<Fluid, Collection<GT_Recipe>>();
So there is a map with a key of class Fluid (from forge). When keys are equal for containsKey() method?
I didn't find this specified for HashMap, but for Map it is: [size=10](key==null ? k==null : key.equals(k)) http://docs.oracle.com/javase/…Key%28java.lang.Object%29
Does forge Fluid implement equals() or hashCode()? No: https://github.com/MinecraftFo…ftforge/fluids/Fluid.java
Then equality implementation of Object is used. Which may be comparison of internal addresses (pointers?) of objects. Oracle java documentation about that: http://docs.oracle.com/javase/…bject.html#hashCode%28%29
What happens, when there are multiple oxygens, and only one is in a hash mRecipeFluidMap? Only that one will be accepted.
I don't know what exactly happens, but:
without galacticraft - everything works
with galacticraft - right after chunk load some oxygen (like 5000 liters) is accepted to input hatch (because mRecipeMap == null). After that, no oxygen is accepted. My base is far from world spawn, so chunk actually unloads/loads when I reconnect to server or switch dimensions. Oxygen in electrolyzer's output looks like the same GT oxygen, but that is just a visual, so might be disguised galacticraft's oxygen.