62 lines
1.8 KiB
Java
62 lines
1.8 KiB
Java
package appeng.recipes.handlers;
|
|
|
|
import java.util.List;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import appeng.api.exceptions.MissingIngredientError;
|
|
import appeng.api.exceptions.RecipeError;
|
|
import appeng.api.exceptions.RegistrationError;
|
|
import appeng.api.recipes.ICraftHandler;
|
|
import appeng.api.recipes.IIngredient;
|
|
import appeng.recipes.RecipeHandler;
|
|
import appeng.util.Platform;
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
|
|
public class Smelt implements ICraftHandler, IWebsiteSeralizer
|
|
{
|
|
|
|
IIngredient in;
|
|
IIngredient out;
|
|
|
|
@Override
|
|
public void setup(List<List<IIngredient>> input, List<List<IIngredient>> output) throws RecipeError
|
|
{
|
|
if ( input.size() == 1 && output.size() == 1 )
|
|
{
|
|
List<IIngredient> inputList = input.get( 0 );
|
|
List<IIngredient> outputList = output.get( 0 );
|
|
if ( inputList.size() == 1 && outputList.size() == 1 )
|
|
{
|
|
in = inputList.get( 0 );
|
|
out = outputList.get( 0 );
|
|
return;
|
|
}
|
|
}
|
|
throw new RecipeError( "Smelting recipe can only have a single input and output." );
|
|
}
|
|
|
|
@Override
|
|
public void register() throws RegistrationError, MissingIngredientError
|
|
{
|
|
if ( in.getItemStack().getItem() == null )
|
|
throw new RegistrationError( in.toString() + ": Smelting Input is not a valid item." );
|
|
|
|
if ( out.getItemStack().getItem() == null )
|
|
throw new RegistrationError( out.toString() + ": Smelting Output is not a valid item." );
|
|
|
|
GameRegistry.addSmelting( in.getItemStack(), out.getItemStack(), 0 );
|
|
}
|
|
|
|
@Override
|
|
public boolean canCraft(ItemStack reqOutput) throws RegistrationError, MissingIngredientError {
|
|
return Platform.isSameItemPrecise( out.getItemStack(),reqOutput );
|
|
}
|
|
|
|
@Override
|
|
public String getPattern( RecipeHandler h ) {
|
|
return "smelt "+out.getQty()+"\n"+
|
|
h.getName(in)+"\n"+
|
|
h.getName(out);
|
|
}
|
|
}
|