Example #1
0
 private void OnTriggerExit2D(Collider2D col)
 {
     // if it's not my receptor I'm exiting, there is nothing to do.
     if (col.GetComponent <DragAndDropReceptor>() == receptor)
     {
         if (OverlapsNoReceptor())
         {
             receptor = null;
             OnExitedAllReceptors();
         }
         else
         {
             // If this does not hold a receptor, or if the overlappingReceptor priority is enough, cache the overlapping receptor
             DragAndDropReceptor receptorCandidate = GetValidOverlappingReceptor();
             if (receptor == null)
             {
                 receptor = receptorCandidate;
             }
             else if (receptorCandidate != null && receptor.Priority <= receptorCandidate.Priority)
             {
                 if (receptorCandidate == receptor)
                 {
                     L.ogWarning(this, "Damn, How can this be overlapping something it exited?");
                 }
                 receptor = receptorCandidate;
             }
             else
             {
                 // I exited my receptor and I'm not overlapping nothing interesting enough
                 receptor = null;
             }
         }
     }
 }
Example #2
0
    protected override void OnEnteredAReceptor(DragAndDropReceptor receptor)
    {
        bool isTheTipOfHowToUseTips = ((TipReceptor)receptor).Title == text.text;

        if (!isTheTipOfHowToUseTips)
        {
            text.fontStyle = FontStyle.Bold;
        }
    }
Example #3
0
    private void IfIsAboveASingleReceptorMakeItBecomeTheReceptor()
    {
        int count = 0;

        ForEachOverlappingValidReceptorDo(() => { count++; });
        if (count == 1)
        {
            receptor = GetValidOverlappingReceptor();
        }
    }
Example #4
0
    private void RegisterIfIsReceptorAndCallWhosInterested(Collider2D possibleReceptorCollider)
    {
        DragAndDropReceptor maybeAReceptor = possibleReceptorCollider.GetComponent <DragAndDropReceptor>();

        if (maybeAReceptor.GetDragAndDropReceptorType() == GetDragAndDropType())
        {
            this.receptor = maybeAReceptor;
            OnEnteredAReceptor(maybeAReceptor);
        }
    }
Example #5
0
    private void OnTriggerEnter2D(Collider2D col)
    {
        DragAndDropReceptor maybeAReceptor = col.GetComponent <DragAndDropReceptor>();

        if (maybeAReceptor != null)
        {
            if (ConditionToReplace(maybeAReceptor))
            {
                RegisterIfIsReceptorAndCallWhosInterested(possibleReceptorCollider: col);
            }
        }
    }
Example #6
0
    private void ForEachOverlappingValidReceptorDo(DoForEachValidOverlappingReceptor doForEachValidReceptor)
    {
        // Get all colliders that overlap this object's collider.
        Collider2D[]    colliders     = new Collider2D[10];
        ContactFilter2D contactFilter = new ContactFilter2D();
        int             colliderCount = GetComponent <Collider2D>().OverlapCollider(contactFilter.NoFilter(), colliders);

        for (int i = 0; i < colliderCount; i++)
        {
            maybeAReceptor = colliders[i].GetComponent <DragAndDropReceptor>();

            if (maybeAReceptor != null && maybeAReceptor.GetDragAndDropReceptorType() == GetDragAndDropType())
            {
                doForEachValidReceptor();
            }
        }
    }
Example #7
0
    public void Drop()
    {
        if (snap)
        {
            BeforeDrop();

            snap = false;

            if (this.receptor != null)
            {
                this.receptor.OnDroppedInReceptor();
            }
            else
            {
                ReturnToOriginalPosition();
            }

            OnDroppedSpecificBehaviour();

            this.receptor = null;
        }
    }
Example #8
0
        public DragAndDropReceptor Get()
        {
            dragAndDrop.ForEachOverlappingValidReceptorDo(() => { validOverlappingReceptor = dragAndDrop.maybeAReceptor; });

            return(validOverlappingReceptor);
        }
Example #9
0
 protected abstract void OnEnteredAReceptor(DragAndDropReceptor receptor);
Example #10
0
 protected virtual bool ConditionToReplace(DragAndDropReceptor maybeAReceptor)
 {
     return(receptor == null || (receptor != null && receptor.Priority <= maybeAReceptor.Priority));
 }