package com.laytonsmith.abstraction.bukkit;
import com.laytonsmith.abstraction.MCFurnaceRecipe;
import com.laytonsmith.abstraction.MCItemStack;
import com.laytonsmith.abstraction.enums.MCRecipeType;
import org.bukkit.Material;
import org.bukkit.inventory.FurnaceRecipe;
/**
*
* @author jb_aero
*/
public class BukkitMCFurnaceRecipe extends BukkitMCRecipe implements MCFurnaceRecipe {
FurnaceRecipe fr;
public BukkitMCFurnaceRecipe(FurnaceRecipe recipe) {
super(recipe);
fr = recipe;
}
public BukkitMCFurnaceRecipe(MCItemStack result) { // Why? because no one has ever thought to put his in a furnace
this(new FurnaceRecipe(((BukkitMCItemStack) result).asItemStack(), Material.PISTON_MOVING_PIECE));
}
@Override
public MCRecipeType getRecipeType() {
return MCRecipeType.FURNACE;
}
@Override
public MCItemStack getResult() {
return new BukkitMCItemStack(fr.getResult());
}
@Override
public Object getHandle() {
return fr;
}
@Override
public MCItemStack getInput() {
return new BukkitMCItemStack(fr.getInput());
}
@Override
public MCFurnaceRecipe setInput(MCItemStack input) {
int type = input.getTypeId();
int data = 0;
if (type < 256) {
data = input.getData() != null ? input.getData().getData() : 0;
} else {
data = input.getDurability();
}
return this.setInput(type, data);
}
@Override
public MCFurnaceRecipe setInput(int type, int data) {
fr.setInput(Material.getMaterial(type), data);
return this;
}
}