Java 类net.minecraft.item.ItemMultiTexture 实例源码

项目:Alchemy    文件:EatDirt.java   
@Patch.Exception
@Hook("net.minecraft.item.ItemMultiTexture#func_77654_b")
public static Hook.Result onItemUseFinish(ItemMultiTexture item, ItemStack stack, World world, EntityLivingBase living) {
    if (item == dirt) {
        stack.setCount(stack.getCount() - 1);
        if (living instanceof EntityPlayer) {
            EntityPlayer player = (EntityPlayer) living;
            world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_PLAYER_BURP,
                SoundCategory.PLAYERS, 0.5F, world.rand.nextFloat() * 0.1F + 0.9F);
            if (Always.isServer()) {
                player.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 40, 150));
                player.addStat(StatList.getObjectUseStats(item));
            }
        }
        return new Hook.Result(stack);
    } else
        return Hook.Result.VOID;
}
项目:Alchemy    文件:EatDirt.java   
@Patch.Exception
@Hook("net.minecraft.item.ItemMultiTexture#func_77659_a")
public static Hook.Result onItemRightClick(ItemMultiTexture item, ItemStack stack, World world, EntityPlayer player, EnumHand hand) {
    if (item == dirt) {
        RayTraceResult rayTrace = item.rayTrace(world, player, false);
        if (player.canEat(true) && rayTrace == null) {
            player.setActiveHand(hand);
            return new Hook.Result(new ActionResult(EnumActionResult.SUCCESS, stack));
        }
    }
    return Hook.Result.VOID;
}
项目:Alchemy    文件:EatDirt.java   
@Patch.Exception
@Hook("net.minecraft.item.ItemMultiTexture#func_77661_b")
public static Hook.Result getItemUseAction(ItemMultiTexture item, ItemStack stack) {
    return item == dirt ? new Hook.Result(EnumAction.EAT) : Hook.Result.VOID;
}
项目:Alchemy    文件:EatDirt.java   
@Patch.Exception
@Hook("net.minecraft.item.ItemMultiTexture#func_77626_a")
public static Hook.Result getMaxItemUseDuration(ItemMultiTexture item, ItemStack stack) {
    return item == dirt ? new Hook.Result(32) : Hook.Result.VOID;
}
项目:BlazeLoader    文件:ApiBlock.java   
/**
 * Replaces an existing block with the given block and gives it an
 *  ItemMultiTexture with the given function for determining what name to display.
 * <p>
 * Works best if the replacement block supports all the states of the one it is replacing.
 * @param original  Original block to replace
 * @param block     New block to insert
 * @param nameFunc  Function used by the itemblock to get the display name
 * @param <K> The type of the block you are replacing
 * @param <V> The type of the new block you are replacing it with. Must extend the original.
 */
public static <K extends Block,V extends K> void replaceBlock(K original, V block, Function nameFunc) {
    replaceBlock(original, block, new ItemMultiTexture(block, block, nameFunc));
}