Exemple #1
0
        void OnAreaTriggerEnter(Collider col)
        {
            var newItem = col.GetComponent <Pickable>() ?? col.GetComponentInParent <Pickable>();

            if (newItem)
            {
                FocusedItem = newItem;
                FocusedItem.OnFocused.Invoke(true);
                OnFocusedItem.Invoke(FocusedItem);
                CanPickUp.Invoke(true);
                if (AutoPick.Value && !animal.IsPlayingMode)
                {
                    TryPickUp();
                }
            }
        }
Exemple #2
0
        public virtual void TryPickUp()
        {
            if (FocusedItem)
            {
                item = FocusedItem;

                if (item.PickAnimations)
                {
                    UsePickUpAnimations();
                }
                else
                {
                    PickUpItem();
                }
            }
        }
Exemple #3
0
        /// <summary>Pick Up Logic. It can be called by the ANimator</summary>

        public void PickUpItem()
        {
            item.Picked();                               //Tell the Item that it was picked
            item.transform.parent           = Holder;    //Parent it to the Holder
            item.transform.localPosition    = PosOffset; //Offset the Position
            item.transform.localEulerAngles = RotOffset; //Offset the Rotation

            PickUpArea?.gameObject.SetActive(false);     //Disable the Pick Up Area

            FocusedItem?.OnFocused.Invoke(false);
            FocusedItem = null;                         //Remove the Focused Item

            animal?.UpdateAttackTriggers();

            OnPicking.Invoke(item.ID);                         //Invoke the Method
        }
Exemple #4
0
        void _OnTriggerEnter(Collider col)
        {
            var newItem = col.FindComponent <Pickable>();

            if (newItem)
            {
                FocusedItem = newItem;
                FocusedItem.OnFocused.Invoke(true);
                OnFocusedItem.Invoke(FocusedItem);
                CanPickUp.Invoke(true);

                if (FocusedItem.AutoPick)
                {
                    TryPickUp();
                }
            }
        }
Exemple #5
0
        public virtual void DropItem()
        {
            if (Has_Item)
            {
                //Debug.Log("DropItem");

                item.Drop();                                 //Tell the item is being droped
                OnDropping.Invoke(item.ID);                  //Invoke the method
                OnItem.Invoke(null);
                item = null;                                 //Remove the Item

                if (m_HidePickArea.Value)
                {
                    PickUpArea.gameObject.SetActive(true);         //Enable the Pick up Area
                }
                if (FocusedItem != null && !FocusedItem.AutoPick)
                {
                    AreaTrigger.ResetTrigger();
                }
            }
        }
Exemple #6
0
 private void OnEnable()
 {
     m              = (Pickable)target;
     script         = MonoScript.FromMonoBehaviour(target as MonoBehaviour);
     PickAnimations = serializedObject.FindProperty("PickAnimations");
     PickUpMode     = serializedObject.FindProperty("PickUpMode");
     PickUpAbility  = serializedObject.FindProperty("PickUpAbility");
     DropAnimations = serializedObject.FindProperty("DropAnimations");
     DropMode       = serializedObject.FindProperty("DropMode");
     DropAbility    = serializedObject.FindProperty("DropAbility");
     Align          = serializedObject.FindProperty("Align");
     AlignTime      = serializedObject.FindProperty("AlignTime");
     AlignDistance  = serializedObject.FindProperty("AlignDistance");
     OnFocused      = serializedObject.FindProperty("OnFocused");
     OnPicked       = serializedObject.FindProperty("OnPicked");
     OnDropped      = serializedObject.FindProperty("OnDropped");
     ShowEvents     = serializedObject.FindProperty("ShowEvents");
     FloatID        = serializedObject.FindProperty("m_Value");
     IntID          = serializedObject.FindProperty("m_ID");
     m_collider     = serializedObject.FindProperty("m_collider");
 }