package thaumcraft.api.wands; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import thaumcraft.api.aspects.AspectList; public interface IWandFocus { public enum WandFocusAnimation { WAVE, CHARGE; } /** * @return The color the focus should be changed to. */ public int getFocusColor(); /** * @return An icon that will be drawn as a block inside the focus "block". */ Icon getFocusDepthLayerIcon(); public Icon getOrnament(); public WandFocusAnimation getAnimation(); /** * Gets the amount of vis used per aspect per click or tick. This cost is actually listed as * a hundredth of a single point of vis, so a cost of 100 will equal one vis per tick/click. * It is returned as an AspectList to allow for multiple vis types in different ratios. */ public AspectList getVisCost(); public boolean isVisCostPerTick(); public ItemStack onFocusRightClick(ItemStack itemstack, World world, EntityPlayer player, MovingObjectPosition movingobjectposition); public void onUsingFocusTick(ItemStack itemstack, EntityPlayer player, int count); public void onPlayerStoppedUsingFocus(ItemStack itemstack, World world, EntityPlayer player, int count); /** * Helper method to determine in what order foci should be iterated through when * the user presses the 'change focus' keybinding. * @return a string of characters that foci will be sorted against. * For example AA00 will be placed before FG12 *
As a guide build the sort string from two alphanumeric characters followed by * two numeric characters based on... whatever. */ public String getSortingHelper(ItemStack itemstack); boolean onFocusBlockStartBreak(ItemStack itemstack, int x, int y, int z, EntityPlayer player); public boolean acceptsEnchant(int id); }