예제 #1
0
    /// <summary>
    /// Called when this slot is left clicked on by the cursor
    /// </summary>
    public virtual void OnPrimaryClick(InventoryCursor Cursor)
    {
        ItemStack curItem = Cursor.mCurrentItem;
        ItemStack invItem = mCurrentItem;

        // Add as much to cursor as possible
        if (curItem.mItemID == invItem.mItemID && curItem.mItemCount != curItem.mMaxStackCount)
        {
            int spare = curItem.mMaxStackCount - curItem.mItemCount;

            if (invItem.mItemCount <= spare)
            {
                curItem.mItemCount += invItem.mItemCount;
                invItem             = new ItemStack(0);
            }
            else
            {
                curItem.mItemCount += (ushort)spare;
                invItem.mItemCount -= (ushort)spare;
            }

            Cursor.mCurrentItem = curItem;
            mCurrentItem        = invItem;
        }

        // Swap contents of this slot with cursor contents
        else
        {
            Cursor.mCurrentItem = invItem;
            mCurrentItem        = curItem;
        }
    }
예제 #2
0
    /// <summary>
    /// Called when this slot is right clicked on by the cursor
    /// </summary>
    public virtual void OnSecondaryClick(InventoryCursor Cursor)
    {
        ItemStack curItem = Cursor.mCurrentItem;
        ItemStack invItem = mCurrentItem;

        // Put 1 of this item into cursor
        if (curItem.mType == ItemType.None)
        {
            curItem = new ItemStack(invItem.mItemID, 1);
            if (--invItem.mItemCount == 0)
            {
                invItem = new ItemStack(0);
            }

            Cursor.mCurrentItem = curItem;
            mCurrentItem        = invItem;
        }

        // Add 1 more to cursor
        else if (curItem.mItemID == invItem.mItemID && curItem.mItemCount < curItem.mMaxStackCount)
        {
            curItem.mItemCount++;
            invItem.mItemCount--;
            if (invItem.mItemCount == 0)
            {
                invItem = new ItemStack(0);
            }

            Cursor.mCurrentItem = curItem;
            mCurrentItem        = invItem;
        }
    }
예제 #3
0
    /// <summary>
    /// Called when this slot is left clicked on by the cursor
    /// </summary>
    public override void OnPrimaryClick(InventoryCursor Cursor)
    {
        ItemStack curItem = Cursor.mCurrentItem;
        ItemStack invItem = mCurrentItem;

        // Add as much to cursor as possible
        if (curItem.mItemID == invItem.mItemID && curItem.mItemCount != curItem.mMaxStackCount)
        {
            int spare = curItem.mMaxStackCount - curItem.mItemCount;

            if (invItem.mItemCount <= spare)
            {
                curItem.mItemCount += invItem.mItemCount;
                invItem             = new ItemStack(0);

                Cursor.mCurrentItem = curItem;
                mCurrentItem        = invItem;
            }
        }

        else if (curItem.mType == ItemType.None)
        {
            Cursor.mCurrentItem = invItem;
            mCurrentItem        = new ItemStack(0);
        }
    }
예제 #4
0
    private void Awake()
    {
        #region Singleton

        if (Instance == null)
        {
            Instance = this;
        }
        else
        {
            Destroy(gameObject);
        }

        DontDestroyOnLoad(gameObject);

        #endregion

        rectTransform = GetComponent <RectTransform>();
    }
예제 #5
0
 private void Awake()
 {
     instance = this;
 }
예제 #6
0
 /// <summary>
 /// Called when this slot is right clicked on by the cursor
 /// </summary>
 public override void OnSecondaryClick(InventoryCursor Cursor)
 {
     OnPrimaryClick(Cursor);
 }
예제 #7
0
 private void Start()
 {
     cursor = InventoryCursor.instance;
 }