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

项目:EMC    文件:IItem.java   
public boolean isThrowable() {
    if (item instanceof ItemBow || item instanceof ItemSnowball || item instanceof ItemEgg
            || item instanceof ItemEnderPearl || item instanceof ItemSplashPotion
            || item instanceof ItemLingeringPotion || item instanceof ItemFishingRod) {
        return true;
    }
    return false;
}
项目:DankNull    文件:ItemDankNull.java   
@Override
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand hand) {
    ItemStack stack = playerIn.getHeldItem(hand);
    if (playerIn.isSneaking() && hand == EnumHand.MAIN_HAND) {
        /*
        }
        for (int i = 0; i < 5; ++i) {
            RayTraceResult rayTrace = playerIn.rayTrace(i, 1.0F);
            if (rayTrace != null) {
                BlockPos pos = rayTrace.getBlockPos();
                EnumFacing side = rayTrace.sideHit;
                float hitX = (float) rayTrace.hitVec.xCoord;
                float hitY = (float) rayTrace.hitVec.yCoord;
                float hitZ = (float) rayTrace.hitVec.zCoord;
                IBlockState state = worldIn.getBlockState(pos);
                Block block = state.getBlock();
                boolean flag = block.onBlockActivated(worldIn, pos, state, playerIn, hand, itemStackIn, side, hitX, hitY, hitZ);
                if (rayTrace.getBlockPos() != null && (flag || block != Blocks.AIR || block instanceof ITileEntityProvider || (!flag && block.hasTileEntity(state)))) {
                if (rayTrace.getBlockPos() != null && (block != Blocks.AIR || block instanceof ITileEntityProvider || block.hasTileEntity(state))) {
                    return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemStackIn);
                }
            }
        }
        */
        ModGuiHandler.launchGui(GUIType.DANKNULL, playerIn, worldIn, (int) playerIn.posX, (int) playerIn.posY, (int) playerIn.posZ);
        return new ActionResult<ItemStack>(EnumActionResult.FAIL, stack);
    }
    else {
        if (!worldIn.isRemote) {
            InventoryDankNull inventory = new InventoryDankNull(stack);
            ItemStack selectedStack = DankNullUtils.getSelectedStack(inventory);

            if ((selectedStack.getItem() instanceof ItemSnowball) || (selectedStack.getItem() instanceof ItemEnderPearl) || (selectedStack.getItem() instanceof ItemEgg)) {
                //TODO soon!
                return new ActionResult<ItemStack>(EnumActionResult.FAIL, stack);
            }

            EntityPFakePlayer fakePlayer = EntityPFakePlayer.getFakePlayerForParent(playerIn);
            if (fakePlayer.interactionManager.getGameType() != GameType.NOT_SET) {
                fakePlayer.interactionManager.setGameType(GameType.NOT_SET);
            }
            fakePlayer.setHeldItem(EnumHand.MAIN_HAND, selectedStack);
            fakePlayer.setItemInHand(selectedStack);
            fakePlayer.posX = playerIn.posX;
            fakePlayer.posY = playerIn.posY;
            fakePlayer.posZ = playerIn.posZ;
            fakePlayer.setRotationYawHead(playerIn.rotationYawHead);
            fakePlayer.rotationYaw = playerIn.rotationYaw;
            fakePlayer.rotationPitch = playerIn.rotationPitch;
            fakePlayer.eyeHeight = playerIn.eyeHeight;

            if (selectedStack.copy().getItem().onItemRightClick(worldIn, fakePlayer, hand).getType() == EnumActionResult.SUCCESS) {
                DankNullUtils.decrSelectedStackSize(inventory, 0);
            }
            return new ActionResult<ItemStack>(EnumActionResult.FAIL, stack);
        }
    }
    return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, stack);
}
项目:Backmemed    文件:Trajectories.java   
private boolean isThrowable(Item item) {
    return item instanceof ItemBow || item instanceof ItemSnowball
            || item instanceof ItemEgg || item instanceof ItemEnderPearl;
}