Package crazypants.enderio.machine

Source Code of crazypants.enderio.machine.MachineRecipeInput

package crazypants.enderio.machine;

import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidStack;

public class MachineRecipeInput {

  public static ItemStack getInputForSlot(int slot, MachineRecipeInput... inputs) {
    for (MachineRecipeInput ri : inputs) {
      if(ri.slotNumber == slot) {
        return ri.item;
      }
    }
    return null;
  }

  public static MachineRecipeInput create(int slotNumber, ItemStack item) {
    return new MachineRecipeInput(slotNumber, item);
  }

  public final int slotNumber;
  public final ItemStack item;

  public final FluidStack fluid;

  public MachineRecipeInput(int slotNumber, ItemStack item) {
    this.slotNumber = slotNumber;
    this.item = item;
    this.fluid = null;
  }

  public MachineRecipeInput(int slotNumber, FluidStack fluid) {
    this.slotNumber = slotNumber;
    this.item = null;
    this.fluid = fluid;
  }

  public MachineRecipeInput(int slotNumber, ItemStack item, FluidStack fluid) {
    this.slotNumber = slotNumber;
    this.item = item;
    this.fluid = fluid;
  }

  public static MachineRecipeInput readFromNBT(NBTTagCompound root) {
    int slotNum = root.getInteger("slotNum");
    ItemStack item = null;
    FluidStack fluid = null;
    if(root.hasKey("itemStack")) {
      NBTTagCompound stackRoot = root.getCompoundTag("itemStack");
      item = ItemStack.loadItemStackFromNBT(stackRoot);
    } else if(root.hasKey("fluidStack")) {
      NBTTagCompound stackRoot = root.getCompoundTag("fluidStack");
      fluid = FluidStack.loadFluidStackFromNBT(stackRoot);
    }
    return new MachineRecipeInput(slotNum, item, fluid);
  }

  public void writeToNbt(NBTTagCompound root) {
    if(item != null) {
      NBTTagCompound stackRoot = new NBTTagCompound();
      item.writeToNBT(stackRoot);
      root.setTag("itemStack", stackRoot);
    } else if(fluid != null) {
      NBTTagCompound stackRoot = new NBTTagCompound();
      fluid.writeToNBT(stackRoot);
      root.setTag("fluidStack", stackRoot);
    }
    root.setInteger("slotNum", slotNumber);
  }

  public boolean isFluid() {
    return fluid != null;
  }

}
TOP

Related Classes of crazypants.enderio.machine.MachineRecipeInput

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.