public void CallDelegateItemRaycast(Item item, System.Action<Item> action) { action(item); ItemDrop itemDrop = item.GetComponent<ItemDrop>(); if (itemDrop != null) { for (int i = 0; i < itemDrop.ChildItemDragList.Count; ++i) { CallDelegateItemRaycast(itemDrop.ChildItemDragList[i].GetComponent<Item>(), action); } } }
public override Ray Snap(Item item, PointerEventData data) { ItemDrag dragItem = item.GetComponent<ItemDrag>(); if (dragItem.AttachPointArray != null && dragItem.AttachPointArray.Length > 0) { for (int i = 0; i < dragItem.AttachPointArray.Length; ++i) { if (ItemUtility.TestTagArrays(dragItem.AttachPointArray[i].TagArray, ChildTagArray)) { return new Ray(transform.position - dragItem.AttachPointArray[i].transform.localPosition, -transform.forward); } } return new Ray(transform.position, -transform.forward); } else { return new Ray(this.transform.position, -transform.forward); } }
private void RemoveUniqueTickRecursive(Item item) { Root.UniqueTickDictionary.Remove(item.UniqueTick); ItemDrop item_Drop = item.GetComponent<ItemDrop>(); if (item_Drop != null) { for (int i = 0; i < item_Drop.ItemSnapArray.Length; ++i) { Root.UniqueTickDictionary.Remove(item_Drop.ItemSnapArray[i].UniqueTick); } } ItemDrop itemDrop = item.GetComponent<ItemDrop>();//TODO WHY IS THIS TWICE?? if (itemDrop != null) { for (int i = 0; i < itemDrop.ChildItemDragList.Count; ++i) { RemoveUniqueTickRecursive(itemDrop.ChildItemDragList[i].GetComponent<Item>()); } } }
private int CallDelegateTagFilterItemRaycast(Item item, System.Func<Item,bool> filterAction, System.Action<Item> trueAction, System.Action<Item> falseAction) { int trueCount = 0; if (filterAction(item)) { trueAction(item); trueCount = 1; } else if (falseAction != null) { falseAction(item); } ItemDrop itemDrop = item.GetComponent<ItemDrop>(); if (itemDrop != null) { for (int i = 0; i < itemDrop.ChildItemDragList.Count; ++i) { trueCount += CallDelegateTagFilterItemRaycast(itemDrop.ChildItemDragList[i].GetComponent<Item>(), filterAction, trueAction, falseAction); } } return trueCount; }