public bool AddItem(Takeable item)
    {
        if (Items.Count >= 10)
        {
            return(false);
        }
        else
        {
            Rigidbody itemRigidbody = item.GetComponent <Rigidbody>();
            if (itemRigidbody)
            {
                itemRigidbody.isKinematic = true;
            }
            Collider itemCollider = item.GetComponent <Collider>();
            if (itemCollider)
            {
                itemCollider.enabled = false;
            }
            MeshRenderer renderer = item.GetComponent <MeshRenderer>();
            if (renderer)
            {
                renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
            }
            item.transform.parent        = InventorySpot;
            item.transform.localPosition = Vector3.zero;
            item.transform.localRotation = Quaternion.identity;

            uint index = (uint)Items.Count;
            Items.Add(item);
            item.gameObject.SetActive(false);
            _uiItems[index].gameObject.SetActive(true);
            SetCurrentItem(index);
            return(true);
        }
    }
Example #2
0
    private void take(Takeable theObject)
    {
        inHand = theObject;
        inHand.transform.parent        = gameObject.transform;
        inHand.transform.localPosition = new Vector2(0.69f, 0f);
        var type = whichRoom.GetComponent <TypeRoom>().getTypeRoom();

        inHand.GetComponent <SpriteRenderer>().sprite = type == Lightness.LIGHT ? inHand.getCarriedLight() : inHand.getCarriedDark();
    }
Example #3
0
 public void put(Takeable takeable)
 {
     Debug.Log("Putting takeable " + takeable.name + " in release area");
     if (takeable && takeable.getTheType() == typeObjectToGoHere)
     {
         takeable.transform.parent = transform;
         takeable.GetComponent <SpriteRenderer>().sprite = renderedArea;
         this.takeable = takeable;
         if (releaseAction)
         {
             releaseAction.doOnRelease();
         }
         takeable.transform.localPosition = positionReleasedObject.localPosition;
     }
 }
Example #4
0
    /// <summary>
    /// Grabs the targetable object if it is not a pre selection object.
    /// </summary>
    private void Grab()
    {
        if (TaskController.Instance.currentGameObjects.Count == 0)
        {
            return;
        }

        if (Time.realtimeSinceStartup - lastFullGrabTime <= rotationModeTimeWindow)
        {
            rotationMode = true;
            rotationLever.gameObject.SetActive(true);
        }

        Takeable takeable = TaskController.Instance.currentGameObjects[0].GetComponent <Takeable>();

        takeable.takeObject(primaryHand);

        if (!takeable.preTaskObject && takeable.GetComponent <Interactable>() != null)
        {
            currentTakeable         = takeable;
            startGrabObjectPosition = currentTakeable.transform.position;
            barMaterial.SetMainColorAlpha(1);
            if (!rotationMode)
            {
                translationLever.gameObject.SetActive(true);
            }
        }
        else
        {
            // disable grab until the next release so the start task object is
            // not grabbed directly after the pre selection task object is grabbed
            grabDisabled = true;
        }

        startGrabHandPosition = GetHandPos();
    }
Example #5
0
    public void PickUp(Takeable takeable)
    {
        //get obj
        m_CurrentTakeable = takeable;

        //null check
        if (!m_CurrentTakeable)
        {
            return;
        }

        //already held check
        if (m_CurrentTakeable.m_ActivePointer)
        {
            m_CurrentTakeable.m_ActivePointer.Drop();
        }

        //pleassssssseeeeee
        // Enemy_ranged script = m_CurrentTakeable.gameObject.GetComponent<Enemy_ranged>();
        // StopCoroutine(script.FireObject());

        //position
        m_CurrentTakeable.transform.position = reference.position;
        m_CurrentTakeable.transform.rotation = reference.rotation;

        //Attach
        Rigidbody targetBody = m_CurrentTakeable.GetComponent <Rigidbody>();

        targetBody.isKinematic = false;
        m_Joint.connectedBody  = targetBody;

        takeable.StopMove = true;

        //set active pointer
        m_CurrentTakeable.m_ActivePointer = this;
    }