當前位置: 首頁>>代碼示例>>Java>>正文


Java ClickType.QUICK_CRAFT屬性代碼示例

本文整理匯總了Java中net.minecraft.inventory.ClickType.QUICK_CRAFT屬性的典型用法代碼示例。如果您正苦於以下問題:Java ClickType.QUICK_CRAFT屬性的具體用法?Java ClickType.QUICK_CRAFT怎麽用?Java ClickType.QUICK_CRAFT使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在net.minecraft.inventory.ClickType的用法示例。


在下文中一共展示了ClickType.QUICK_CRAFT屬性的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: slotClick

@Override
public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer playerIn) {
	Slot slot = slotId > -1 && slotId < inventorySlots.size() ? inventorySlots.get(slotId) : null;
	if (slot instanceof SlotPhantom) {
		ItemStack s = TomsModUtils.copyItemStack(playerIn.inventory.getItemStack());
		if (!s.isEmpty()) {
			if (!ItemIgnoreList.accepts(s))
				s.setTagCompound(null);
			slot.putStack(dragType == 1 ? s.splitStack(1) : s);
		} else if (dragType != 1)
			slot.putStack(ItemStack.EMPTY);
		else if (dragType == 1) {
			if (!slot.getStack().isEmpty()) {
				int c = 1;
				if (clickTypeIn == ClickType.PICKUP_ALL)
					c = -1;
				else if (clickTypeIn == ClickType.QUICK_CRAFT)
					c = -phantomSlotChange;
				else if (clickTypeIn == ClickType.CLONE)
					c = phantomSlotChange;
				if (slot.getStack().getMaxStackSize() >= slot.getStack().getCount() + c && slot.getStack().getCount() + c > 0) {
					slot.getStack().grow(c);
				}
			}
		}
		return playerIn.inventory.getItemStack();
	} else if (slot instanceof ISlotClickListener) {
		((ISlotClickListener) slot).slotClick(slotId, dragType, clickTypeIn, playerIn);
		return super.slotClick(slotId, dragType, clickTypeIn, playerIn);
	} else
		return super.slotClick(slotId, dragType, clickTypeIn, playerIn);
}
 
開發者ID:tom5454,項目名稱:Toms-Mod,代碼行數:32,代碼來源:ContainerTomsMod.java

示例2: slotClick

@Override
public ItemStack slotClick(int slotNum, int dragType, ClickType clickType, EntityPlayer player)
{
    if (this.tef.isFiltered())
    {
        if (this.filterSlots.contains(slotNum))
        {
            this.fakeSlotClick(slotNum, dragType, clickType, player);
            return ItemStack.EMPTY;
        }

        // (Starting) or ending a drag and the dragged slots include at least one of our fake slots
        if (clickType == ClickType.QUICK_CRAFT && slotNum == -999)
        {
            for (int i : this.draggedSlots)
            {
                if (this.filterSlots.contains(i))
                {
                    this.fakeSlotClick(i, dragType, clickType, player);
                    return ItemStack.EMPTY;
                }
            }
        }
    }

    return super.slotClick(slotNum, dragType, clickType, player);
}
 
開發者ID:maruohon,項目名稱:enderutilities,代碼行數:27,代碼來源:ContainerInserter.java

示例3: slotClick

@Override
public ItemStack slotClick(int slotNum, int dragType, ClickType clickType, EntityPlayer player)
{
    if (this.filterSlots.contains(slotNum))
    {
        this.fakeSlotClick(slotNum, dragType, clickType, player);
        return ItemStack.EMPTY;
    }

    // (Starting) or ending a drag and the dragged slots include at least one of our fake slots
    if (clickType == ClickType.QUICK_CRAFT && slotNum == -999)
    {
        for (int i : this.draggedSlots)
        {
            if (this.filterSlots.contains(i))
            {
                this.fakeSlotClick(i, dragType, clickType, player);
                return ItemStack.EMPTY;
            }
        }
    }

    ItemStack stack = super.slotClick(slotNum, dragType, clickType, player);

    ItemStack modularStackPost = this.getContainerItem();

    if (player.getEntityWorld().isRemote == false && modularStackPost.isEmpty() == false &&
        modularStackPost.getItem() == EnderUtilitiesItems.PICKUP_MANAGER)
    {
        boolean sent = ((ItemPickupManager) modularStackPost.getItem()).tryTransportItemsFromTransportSlot(
                this.inventoryItemTransmit, player, modularStackPost);

        // The change is not picked up by detectAndSendChanges() because the items are transported out
        // immediately, so the client side container will get out of sync without a forced sync
        if (sent && player instanceof EntityPlayerMP)
        {
            PacketHandler.INSTANCE.sendTo(new MessageSyncSlot(this.windowId, 0, this.getSlot(0).getStack()), (EntityPlayerMP) player);
        }
    }

    this.detectAndSendChanges();

    return stack;
}
 
開發者ID:maruohon,項目名稱:enderutilities,代碼行數:44,代碼來源:ContainerPickupManager.java

示例4: slotClick

@Override
public ItemStack slotClick(int slotNum, int dragType, ClickType clickType, EntityPlayer player)
{
    if (this.filterSlots.contains(slotNum))
    {
        this.fakeSlotClick(slotNum, dragType, clickType, player);
        return ItemStack.EMPTY;
    }

    // (Starting) or ending a drag and the dragged slots include at least one of our fake slots
    if (clickType == ClickType.QUICK_CRAFT && slotNum == -999)
    {
        for (int i : this.draggedSlots)
        {
            if (this.filterSlots.contains(i))
            {
                this.fakeSlotClick(i, dragType, clickType, player);
                return ItemStack.EMPTY;
            }
        }
    }
    // Middle click
    else if (clickType == ClickType.CLONE && dragType == 2)
    {
        int invSlotNum = this.getSlot(slotNum) != null ? this.getSlot(slotNum).getSlotIndex() : -1;

        if (invSlotNum == -1 || (invSlotNum >= 36 && invSlotNum != 40))
        {
            return ItemStack.EMPTY;
        }

        long mask = this.teqsa.getEnabledSlotsMask();
        mask ^= (0x1L << invSlotNum);
        this.teqsa.setEnabledSlotsMask(mask);

        return ItemStack.EMPTY;
    }

    ItemStack stack = super.slotClick(slotNum, dragType, clickType, player);

    if (player instanceof EntityPlayerMP)
    {
        this.detectAndSendChanges();
    }

    return stack;
}
 
開發者ID:maruohon,項目名稱:enderutilities,代碼行數:47,代碼來源:ContainerQuickStackerAdvanced.java


注:本文中的net.minecraft.inventory.ClickType.QUICK_CRAFT屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。