/// <summary> /// Raises the item click event. /// </summary> /// <param name="item">Item.</param> public void OnItemUse(GameObject item) { if (item != null) { StackItem stackItem = item.GetComponent <StackItem>(); if (stackItem != null) { StackGroup sourceGroup = Gets.GetComponentInParent <StackGroup>(item.transform); if (sourceGroup != null && (sourceGroup == firstGroup || sourceGroup == secondGroup)) { StackGroup destinationGroup = sourceGroup == firstGroup ? secondGroup : firstGroup; // Try to place item into free space of specified stack group if (destinationGroup.AddItem(stackItem, stackItem.GetStack()) <= 0) { // If group have no free space for item // Get similar items in that group List <StackItem> similarItems = destinationGroup.GetSimilarStackItems(stackItem); if (similarItems.Count > 0) { // Try to replace with first similar item destinationGroup.ReplaceItems(similarItems[0], stackItem, sourceGroup); } } } } } }
/// <summary> /// Raises the item click event. /// </summary> /// <param name="item">Item.</param> public void OnItemClick(GameObject item) { if (item != null) { StackItem stackItem = item.GetComponent <StackItem>(); if (stackItem != null) { // Try to lace item into free space of specified stack group if (targetStackGroup.AddItem(stackItem, stackItem.GetStack()) <= 0) { // If group have no free space for item // Get similar items in that group List <StackItem> similarItems = targetStackGroup.GetSimilarStackItems(stackItem); if (similarItems.Count > 0) { // Try to replace with first similar item targetStackGroup.ReplaceItems(similarItems[0], stackItem, myStackGroup); } } } } }