public override bool Tap(Vector3 position) { float playerScale = GameObject.Find("Managers").GetComponent <SettingsManager>().playerScale; float selectDist = defaultSelectDistance * playerScale * 0.50f; DCGElement elem = selectElement(position, selectDist); return(elem == null ? false : TapDCG(elem)); }
public List <Point> Select(DCGElement elem) { elem.isSelected = true; elem.Lock(); if (ItemBase.sItems.Count > 0) { Item.Pop(); } return(elem.GetPoints()); }
public void DeselectChildren(DCGElement e) { List <DCGElement> elems = e.GetChildren(); foreach (DCGElement elem in elems) { if (elem.isSelected) { Deselect(elem); DCGBase.sElements.Remove(elem); } } }
public override bool Tap(Vector3 position) { float playerScale = GameObject.Find("Managers").GetComponent <SettingsManager>().playerScale; selectDistance = defaultSelectDistance * playerScale * 0.50f; DCGElement nearestElement = DCGBase.NearestElement(position, selectDistance); Item item = ItemBase.itemBase.findNearestItem(position); return((item == null && nearestElement == null) ? false : (item == null ? TapDCG(nearestElement) : (nearestElement == null ? TapItem(item) : (item.Distance(position) > nearestElement.Distance(position) ? TapDCG(nearestElement) : TapItem(item))))); }
public override bool TapDCG(DCGElement nearestElement) { if (nearestElement != null && !nearestElement.isLocked) { List <Point> newSel = Select(nearestElement); DCGBase.sElements.Remove(nearestElement); DCGBase.sElements.Add(nearestElement); foreach (Point p in newSel) { DCGBase.sPoints.Remove(p); //If the point exists in the point list, remove the copy before adding it in DCGBase.sPoints.Add(p); } return(true); } else { return(false); } }
public virtual bool TapDCG(DCGElement nearestElement) { if (nearestElement == null) { return(false); } if (nearestElement.ParentSelected()) { return(false); } if (nearestElement != null && !nearestElement.isLocked) { List <Point> newSel = Select(nearestElement); DeselectChildren(nearestElement); DCGBase.sElements.Remove(nearestElement); DCGBase.sElements.Add(nearestElement); foreach (Point p in newSel) { DCGBase.sPoints.Remove(p); //If the point exists in the point list, remove the copy before adding it in DCGBase.sPoints.Add(p); } if (nearestElement.GetType() != typeof(Solid)) { List <DCGElement> elems = nearestElement.GetParents(); foreach (DCGElement elem in elems) { TapDCG(elem); } } else { Solid s = (Solid)nearestElement; s.addPointsToDCG(); } return(true); } else { return(false); } }
public void Deselect(DCGElement e) { e.isSelected = false; e.Unlock(); }