Skip to content

Commit

Permalink
Use FluidUtil to detect fluid in an ItemStack
Browse files Browse the repository at this point in the history
  • Loading branch information
mezz committed Jun 7, 2016
1 parent 4996933 commit 47a29a4
Showing 1 changed file with 17 additions and 28 deletions.
45 changes: 17 additions & 28 deletions src/main/java/mezz/jei/gui/Focus.java
@@ -1,29 +1,25 @@
package mezz.jei.gui;

import com.google.common.collect.ImmutableSet;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import com.google.common.collect.ImmutableSet;
import mezz.jei.Internal;
import mezz.jei.api.IRecipeRegistry;
import mezz.jei.api.recipe.IRecipeCategory;
import mezz.jei.util.StackHelper;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;

import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;

import mezz.jei.Internal;
import mezz.jei.api.IRecipeRegistry;
import mezz.jei.api.recipe.IRecipeCategory;
import net.minecraftforge.fluids.FluidUtil;

public class Focus {
public enum Mode {
Expand Down Expand Up @@ -54,23 +50,20 @@ public Focus(Fluid fluid) {
@Nullable
private static Fluid getFluidFromItemStack(@Nonnull ItemStack stack) {
Item item = stack.getItem();
if (item instanceof IFluidContainerItem) {
IFluidContainerItem fluidContainerItem = (IFluidContainerItem) item;
FluidStack fluidStack = fluidContainerItem.getFluid(stack);
if (fluidStack == null) {
return null;
if (item instanceof ItemBlock) {
Block block = ((ItemBlock) item).getBlock();
Fluid fluid = FluidRegistry.lookupFluidForBlock(block);
if (fluid != null) {
return fluid;
}
return fluidStack.getFluid();
} else if (FluidContainerRegistry.isFilledContainer(stack)) {
FluidStack fluidStack = FluidContainerRegistry.getFluidForFilledItem(stack);
if (fluidStack == null) {
return null;
}

FluidStack fluidContained = FluidUtil.getFluidContained(stack);
if (fluidContained != null) {
Fluid fluid = fluidContained.getFluid();
if (fluid != null) {
return fluid;
}
return fluidStack.getFluid();
} else if (item instanceof ItemBlock) {
ItemBlock itemBlock = (ItemBlock) item;
Block block = itemBlock.getBlock();
return FluidRegistry.lookupFluidForBlock(block);
}

return null;
Expand All @@ -84,10 +77,6 @@ public ItemStack getStack() {
return stack;
}

public boolean isBlank() {
return stack == null && fluid == null;
}

public void setMode(@Nonnull Mode mode) {
this.mode = mode;
}
Expand Down

0 comments on commit 47a29a4

Please sign in to comment.