package ic2.api.item;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
/**
* Allows an item to act as a terraformer blueprint.
*/
public interface ITerraformingBP {
/**
* Get the energy consumption per operation of the blueprint.
* @param stack TODO
*
* @return Energy consumption in EU
*/
double getConsume(ItemStack stack);
/**
* Get the maximum range of the blueprint.
* Should be a divisor of 5.
* @param stack TODO
*
* @return Maximum range in blocks
*/
int getRange(ItemStack stack);
boolean canInsert(ItemStack stack, EntityPlayer player, World world, BlockPos pos);
/**
* Perform the terraforming operation.
* @param stack TODO
* @param world world to terraform
* @param x X position to terraform
* @param z Z position to terraform
* @param yCoord Y position of the terraformer
*
* @return Whether the operation was successful and the terraformer should consume energy.
*/
boolean terraform(ItemStack stack, World world, BlockPos pos);
}