public void LookedAway()
 {
     IinteractableObject.PlayerLookedAwayFromMe();
     LookedAwayFromInteractableEvent();
     CheckForRaycastLeavingInteractableObject = false;
     interactableObject  = null;
     IinteractableObject = null;
 }
    public void ProcessCollision(iInteractable a, iInteractable b)
    {
        Debug.LogError("I have received an event to process collisions");
        Core.QLogger.Assert(a != null && b != null);

        if (a.IsThisPlayer)
        {
            Core.QLogger.Assert(a.listener != null && a.listener is iPlayer);

            iPlayer player = a.listener as iPlayer;
            Debug.LogWarning("Receieved a collision event from " + b.GetName());
            if (b is ItemOnMap)
            {
                ItemOnMap itemOnMap = b as ItemOnMap;
                if (player.WeaponInventory.CanICollect(itemOnMap.itemOnMapType, itemOnMap.count))
                {
                    player.WeaponInventory.Collect(itemOnMap.itemOnMapType, itemOnMap.count);
                    itemOnMap.OnItemCollected();

                    Debug.LogWarning("Item collected : " + b.GetName());
                }
            }
        }
    }