/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under the
* Botania License: http://botaniamod.net/license.php
*
* File Created @ [Jan 14, 2014, 6:34:34 PM (GMT)]
*/
package vazkii.botania.api.internal;
import java.util.List;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import vazkii.botania.api.boss.IBotaniaBoss;
import vazkii.botania.api.corporea.IWrappedInventory;
import vazkii.botania.api.lexicon.LexiconPage;
import vazkii.botania.api.lexicon.multiblock.MultiblockSet;
import vazkii.botania.api.recipe.RecipeBrew;
import vazkii.botania.api.recipe.RecipeElvenTrade;
import vazkii.botania.api.recipe.RecipeManaInfusion;
import vazkii.botania.api.recipe.RecipePetals;
import vazkii.botania.api.recipe.RecipeRuneAltar;
import vazkii.botania.api.subtile.SubTileEntity;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* Any methods that refer to internal methods in Botania are here.
* This is defaulted to a dummy handler, whose methods do nothing.
* This handler is set to a proper one on PreInit. Make sure to
* make your mod load after Botania if you have any intention of
* doing anythign with this on PreInit.
*/
public interface IInternalMethodHandler {
public LexiconPage textPage(String key);
public LexiconPage elfPaperTextPage(String key);
public LexiconPage imagePage(String key, String resource);
public LexiconPage craftingRecipesPage(String key, List<IRecipe> recipes);
public LexiconPage craftingRecipePage(String key, IRecipe recipe);
public LexiconPage petalRecipesPage(String key, List<RecipePetals> recipes);
public LexiconPage petalRecipePage(String key, RecipePetals recipe);
public LexiconPage runeRecipesPage(String key, List<RecipeRuneAltar> recipes);
public LexiconPage runeRecipePage(String key, RecipeRuneAltar recipe);
public LexiconPage manaInfusionRecipesPage(String key, List<RecipeManaInfusion> recipes);
public LexiconPage manaInfusionRecipePage(String key, RecipeManaInfusion recipe);
public LexiconPage elvenTradePage(String key, List<RecipeElvenTrade> recipes);
public LexiconPage elvenTradesPage(String key, RecipeElvenTrade recipe);
public LexiconPage brewPage(String key, String bottomText, RecipeBrew recipe);
public LexiconPage multiblockPage(String key, MultiblockSet mb);
public IManaNetwork getManaNetworkInstance();
public ItemStack getSubTileAsStack(String subTile);
public ItemStack getSubTileAsFloatingFlowerStack(String subTile);
public String getStackSubTileKey(ItemStack stack);
public IIcon getSubTileIconForName(String name);
public void registerBasicSignatureIcons(String name, IIconRegister register);
public boolean shouldForceCheck();
public int getPassiveFlowerDecay();
public IInventory getBaublesInventory(EntityPlayer player);
public void breakOnAllCursors(EntityPlayer player, Item item, ItemStack stack, int x, int y, int z, int side);
public boolean hasSolegnoliaAround(Entity e);
@SideOnly(Side.CLIENT)
public void drawSimpleManaHUD(int color, int mana, int maxMana, String name, ScaledResolution res);
@SideOnly(Side.CLIENT)
public void drawComplexManaHUD(int color, int mana, int maxMana, String name, ScaledResolution res, ItemStack bindDisplay, boolean properlyBound);
@SideOnly(Side.CLIENT)
public ItemStack getBindDisplayForFlowerType(SubTileEntity e);
@SideOnly(Side.CLIENT)
public void renderLexiconText(int x, int y, int width, int height, String unlocalizedText);
@SideOnly(Side.CLIENT)
public ResourceLocation getDefaultBossBarTexture();
@SideOnly(Side.CLIENT)
public void setBossStatus(IBotaniaBoss status);
public boolean isBuildcraftPipe(TileEntity tile);
public void sparkleFX(World world, double x, double y, double z, float r, float g, float b, float size, int m);
public long getWorldElapsedTicks();
public boolean isBotaniaFlower(World world, int x, int y, int z);
public void sendBaubleUpdatePacket(EntityPlayer player, int slot);
/**
* Wrap inventories in the network into wrappers providing compatibility for storage mods.
*/
List<IWrappedInventory> wrapInventory(List<IInventory> inventories);
}