Esempio n. 1
0
 private void SetInWichBoxIsThisPlayer(OnCollisionObject player)
 {
     for (int i = 0; i < _box.Count; i++)
     {
         if (_box[i].BoxManager.IsObjectInsideBox(player.PlayerController.RigidBody.transform.position))
         {
             _box[i].BoxManager.AllPlayerInside.AddIfNotContain(player);
             player.PlayerController.AllBoxInside.AddIfNotContain(_box[i]);
         }
     }
 }
Esempio n. 2
0
    public int GetNumberPlayerPushingMyAglomera(OnCollisionObject aglomera)
    {
        Aglomera aglo = aglomera.Aglomera;

        aglo.AllPlayerColliding.Clear();

        for (int i = 0; i < aglomera.ListRigidBodyPlayer.Count; i++)
        {
            aglo.AllPlayerColliding.AddIfNotContain(aglomera.ListRigidBodyPlayer[i]);
        }

        TryToAddOtherToAglomera(aglo);

        return(aglo.AllPlayerColliding.Count);
    }
Esempio n. 3
0
    public void AddThisBoxToOurAglomera(OnCollisionObject other)
    {
        if (!_allBoxManager.Contains(other.BoxManager))
        {
            //here add a new box to our aglomera !
            Debug.Log("here add a new box to our aglomera !");
            other.BoxManager.AglomeraRef = this;
            _allBoxManager.AddIfNotContain(other.BoxManager);
            other.BoxManager.transform.SetParent(transform);
            other.enabled = false;

            Destroy(other.BoxManager.RbBox);
            _onCollisionObject.ListRigidBodyBox.Remove(other);
        }
    }
Esempio n. 4
0
    /// <summary>
    /// count how many player are pushing this box
    /// </summary>
    /// <param name="toTest"></param>
    /// <returns></returns>
    public int GetNumberPlayerPushingMyBox(OnCollisionObject toTest)
    {
        BoxManager box = toTest.BoxManager;



        box.AllPlayerColliding.Clear();

        for (int i = 0; i < _player.Count; i++)
        {
            if (_player[i].DoWeAreCollidingWithThat(toTest))
            {
                box.AllPlayerColliding.AddIfNotContain(_player[i]);
            }
        }
        TryToAddOtherInBox(box);


        return(box.AllPlayerColliding.Count);
    }
    private void OnCollisionExit2D(Collision2D collision)
    {
        OnCollisionObject collisionObject = collision.collider.GetExtComponentInParents <OnCollisionObject>(99, true);

        if (collisionObject && ListRigidBody.Contains(collisionObject))
        {
            ListRigidBody.Remove(collisionObject);

            //if other is a player
            if (collisionObject.TypeRigidBodyMe == TypeObject.PLAYER)
            {
                ListRigidBodyPlayer.Remove(collisionObject);
            }
            //if other is a box
            else if (collisionObject.TypeRigidBodyMe == TypeObject.BOX)
            {
                ListRigidBodyBox.Remove(collisionObject);
            }
        }
    }
    /// <summary>
    /// if we collide with other OnCollisionObject
    /// </summary>
    /// <param name="collision"></param>
    private void OnCollisionStay2D(Collision2D collision)
    {
        OnCollisionObject collisionObject = collision.collider.GetExtComponentInParents <OnCollisionObject>(99, true);


        if (collisionObject && !ListRigidBody.Contains(collisionObject))
        {
            //don't add if we are an Aglomera, and this object is a child of ourself !
            if (collisionObject.TypeRigidBodyMe == TypeObject.AGLOMERA)
            {
                if (collisionObject.Aglomera && Aglomera && collisionObject.Aglomera.GetInstanceID() == Aglomera.GetInstanceID())
                {
                    return;
                }
            }

            ListRigidBody.Add(collisionObject);
            collisionObject.ListRigidBody.AddIfNotContain(this);
        }

        if (collisionObject == null)
        {
            return;
        }

        //if other is a player
        if (collisionObject.TypeRigidBodyMe == TypeObject.PLAYER)
        {
            ListRigidBodyPlayer.AddIfNotContain(collisionObject);
        }
        //if other is a box
        else if (collisionObject.TypeRigidBodyMe == TypeObject.BOX)
        {
            ListRigidBodyBox.AddIfNotContain(collisionObject);
        }
    }
Esempio n. 7
0
 /// <summary>
 /// add box at start
 /// </summary>
 public void AddBox(OnCollisionObject box)
 {
     _box.AddIfNotContain(box);
 }
Esempio n. 8
0
 /// <summary>
 /// add player at start
 /// </summary>
 public void AddPlayer(OnCollisionObject player)
 {
     _player.AddIfNotContain(player);
 }
 /// <summary>
 /// return true if we are colliding with that specific object
 /// </summary>
 /// <param name="collisionObject"></param>
 /// <returns></returns>
 public bool DoWeAreCollidingWithThat(OnCollisionObject collisionObject)
 {
     return(ListRigidBody.Contains(collisionObject));
 }