Ejemplo n.º 1
0
    public void Drop()
    {
        if (!m_CurrentInteractable)
        {
            return;
        }

        HoldingSomething = false;
        Rigidbody targetBody = m_CurrentInteractable.GetComponent <Rigidbody>();

        targetBody.velocity        = m_pose.GetVelocity();
        targetBody.angularVelocity = m_pose.GetAngularVelocity();

        m_Joint.connectedBody = null;

        if (m_CurrentInteractable.gameObject.GetComponent <PartScript>() != null)
        {
            m_CurrentInteractable.gameObject.GetComponent <PartScript>().grabbedByHand = false;
        }

        if (m_CurrentInteractable.gameObject.GetComponent <HammerScript>() != null)
        {
            m_CurrentInteractable.gameObject.GetComponent <HammerScript>().InHand = false;
        }

        m_CurrentInteractable.m_ActiveHand = null;
        m_CurrentInteractable = null;
    }
Ejemplo n.º 2
0
    public void ExitArea7(InteractableScript _switch)
    {
        //All Lights out for 2 Seconds
        ToggleLight();

        //All fences sink into the ground
        sinkPos = new Vector3(AllFencesInRoom.transform.position.x, AllFencesInRoom.transform.position.y - 3f, AllFencesInRoom.transform.position.z);

        //Turn Lights on again
        Invoke("ToggleLight", 1f);

        //turn off switch
        _switch.enabled = false;
    }
Ejemplo n.º 3
0
    void OnTriggerExit2D(Collider2D col)
    {
        if (col.tag == INTERACTABLE_TAG)
        {
            InteractableScript interactible = col.GetComponent <InteractableScript>();
            if (interactible == m_targetInteractible)
            {
                m_targetInteractible = null;

                // Temp ========================
                SpriteRenderer sr = col.GetComponent <SpriteRenderer>();
                sr.color = Color.gray;
                // =============================
                interactText.SetActive(false);
            }
        }
    }
Ejemplo n.º 4
0
    void OnTriggerExit2D( Collider2D col )
    {
        if( col.tag == INTERACTABLE_TAG )
        {
            InteractableScript interactible = col.GetComponent<InteractableScript>();
            if( interactible == m_targetInteractible )
            {
                m_targetInteractible = null;

                // Temp ========================
                SpriteRenderer sr = col.GetComponent<SpriteRenderer>();
                sr.color = Color.gray;
                // =============================
                interactText.SetActive(false);
            }
        }
    }
Ejemplo n.º 5
0
    // Update is called once per frame
    void Update()
    {
        Debug.DrawRay(Camera.main.transform.position, Camera.main.transform.forward * 100f, Color.cyan);
        if (Input.GetMouseButtonDown(0))
        {
            //create a raycast from the camera to the plane
            Ray        dir = new Ray(Camera.main.transform.position, Camera.main.transform.forward);
            RaycastHit hit;

            //;

            //if the ray hits the plane, instantiate game object
            if (Physics.Raycast(dir, out hit))
            {
                //if object is obtainable get object
                if (hit.transform.gameObject.tag == "trampoline")
                {
                    InteractableScript script = hit.transform.gameObject.GetComponent <InteractableScript>();
                    obsticle = script.prefab;
                    Destroy(hit.transform.gameObject);
                }
            }
        }
        if (Input.GetMouseButtonDown(1))
        {
            Object.Instantiate(bullet, Camera.main.transform.position, Camera.main.transform.rotation);
            //create a raycast from the camera to the plane

            /*
             * Ray dir = new Ray(Camera.main.transform.position, Camera.main.transform.forward);
             * RaycastHit hit;
             *
             * //if the ray hits the plane, instantiate game object
             * if (Physics.Raycast(dir, out hit))
             * {
             *  hitObj = hit.transform.gameObject;
             *  if (hitObj.tag == "surface")
             *  {
             *      Quaternion objRotation = new Quaternion(hitObj.transform.rotation.x, hitObj.transform.rotation.y, hitObj.transform.rotation.z, hitObj.transform.rotation.w);
             *      Object.Instantiate(obsticle, hit.point, hitObj.transform.rotation);
             *  }
             * }
             */
        }
    }
Ejemplo n.º 6
0
    void OnTriggerEnter2D( Collider2D col )
    {
        if( col.tag == INTERACTABLE_TAG )
        {
            // Temp ========================
            if( m_targetInteractible != null )
            {
                SpriteRenderer otherSr = m_targetInteractible.GetComponent<SpriteRenderer>();
                otherSr.color = Color.gray;
            }
            SpriteRenderer sr = col.GetComponent<SpriteRenderer>();
            sr.color = Color.green;
            // =============================

            m_targetInteractible = col.GetComponent<InteractableScript>();
            interactText.SetActive(true);
        }
    }
Ejemplo n.º 7
0
    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.tag == INTERACTABLE_TAG)
        {
            // Temp ========================
            if (m_targetInteractible != null)
            {
                SpriteRenderer otherSr = m_targetInteractible.GetComponent <SpriteRenderer>();
                otherSr.color = Color.gray;
            }
            SpriteRenderer sr = col.GetComponent <SpriteRenderer>();
            sr.color = Color.green;
            // =============================

            m_targetInteractible = col.GetComponent <InteractableScript>();
            interactText.SetActive(true);
        }
    }
Ejemplo n.º 8
0
    private InteractableScript GetNearestInteractable()
    {
        InteractableScript nearest = null;
        float minDistance          = float.MaxValue;
        float distance             = 0.0f;

        foreach (InteractableScript interactable in m_ContactInteractables)
        {
            distance = (interactable.transform.position - transform.position).sqrMagnitude;

            if (distance < minDistance)
            {
                minDistance = distance;
                nearest     = interactable;
            }
        }

        return(nearest);
    }
    public void DestroyObject(InteractableScript spawn, bool tree)
    {
        InteractableScript newObj = null;
        InteractableScript obj = objects[selection];
        Debug.Log ("?????? " + selection + " size " + objects.Count);
        if (obj == spawn) {
            ChangeSelection (true);
            newObj = objects [selection];
        }
        objects.Remove(spawn);
        if (obj == spawn) selection = objects.IndexOf (newObj);

        if (tree)
            --trees;
        else {
            --buildings;
            GameObject.Find("TreeCreator").GetComponent<TreeCreatorScript>().IncreaseLifeSpan();
        }
        Debug.Log ("asdfasdfasdfasdf");
    }
Ejemplo n.º 10
0
    // For cases where a larger collider hasn't been exited
    // and a smaller, overlapping collider has been entered and exited
    void OnTriggerStay2D( Collider2D col )
    {
        if( m_targetInteractible != null )
        {
            // Early return
            return;
        }

        if( col.tag == INTERACTABLE_TAG )
        {
            // Temp ========================
            SpriteRenderer sr = col.GetComponent<SpriteRenderer>();
            sr.color = Color.green;
            // =============================

            if(GameMaster.CurrentGameState == GameState.Customization)
                interactText.SetActive(false);

            m_targetInteractible = col.GetComponent<InteractableScript>();
        }
    }
Ejemplo n.º 11
0
    public void Pickup()
    {
        m_CurrentInteractable = GetNearestInteractable();

        if (!m_CurrentInteractable)
        {
            return;
        }

        HoldingSomething = true;
        if (m_CurrentInteractable.m_ActiveHand)
        {
            m_CurrentInteractable.m_ActiveHand.Drop();
        }

        if (m_CurrentInteractable.gameObject.GetComponent <PartScript>() != null)
        {
            m_CurrentInteractable.gameObject.GetComponent <PartScript>().grabbedByHand = true;
        }

        if (m_CurrentInteractable.gameObject.GetComponent <HammerScript>() != null)
        {
            m_CurrentInteractable.gameObject.GetComponent <HammerScript>().InHand = true;
        }

        if (m_CurrentInteractable.gameObject.GetComponent <RestartCubeScript>() != null)
        {
            m_CurrentInteractable.gameObject.GetComponent <RestartCubeScript>().restart = true;
        }

        m_CurrentInteractable.transform.position = transform.position;

        Rigidbody targetBody = m_CurrentInteractable.GetComponent <Rigidbody>();

        m_Joint.connectedBody = targetBody;

        m_CurrentInteractable.m_ActiveHand = this;
    }
Ejemplo n.º 12
0
    // For cases where a larger collider hasn't been exited
    // and a smaller, overlapping collider has been entered and exited
    void OnTriggerStay2D(Collider2D col)
    {
        if (m_targetInteractible != null)
        {
            // Early return
            return;
        }

        if (col.tag == INTERACTABLE_TAG)
        {
            // Temp ========================
            SpriteRenderer sr = col.GetComponent <SpriteRenderer>();
            sr.color = Color.green;
            // =============================

            if (GameMaster.CurrentGameState == GameState.Customization)
            {
                interactText.SetActive(false);
            }

            m_targetInteractible = col.GetComponent <InteractableScript>();
        }
    }
    public void BeginCombat()
    {
        InteractableScript name = GameObject.FindObjectOfType <InteractableScript>();

        name.Menu(shipsInStack, shipsInStack.Length);
    }
Ejemplo n.º 14
0
 public void SetInteractable(InteractableScript interactable)
 {
     currentInteractable = interactable;
 }
Ejemplo n.º 15
0
 public void RemoveInteractable()
 {
     currentInteractable = null;
 }
Ejemplo n.º 16
0
	void OnTriggerStay2D(Collider2D col)
	{
		float currentInteractiveDistance = Vector2.Distance( this.transform.position, col.gameObject.transform.position); 


		if (closestInteractiveDistance == 0) {
			collided = col.gameObject.GetComponent<InteractableScript> ();
		} else if (currentInteractiveDistance < closestInteractiveDistance) {
			collided = col.gameObject.GetComponent<InteractableScript> ();
		}

		closestInteractiveDistance = Math.Max(lastClosestInteractiveDistance, currentInteractiveDistance);
		lastClosestInteractiveDistance = currentInteractiveDistance; 

	}
Ejemplo n.º 17
0
	void OnTriggerExit2D(Collider2D col)
	{
		collided = null;
		closestInteractiveDistance = 0f; 

	}
    //let the creators update the game manager about objects they've created so we can add it to our list
    public void ObjectWasCreated(InteractableScript spawn, bool tree)
    {
        spawn.Create ();
        objects.Add (spawn);
        Debug.Log ("Add " + spawn);

        if (tree) {
            ++trees;
            ++totalTrees;
            GameObject.Find ("TreeCreator").GetComponent<TreeCreatorScript> ().IncreaseLifeSpan ();
        } else {
            ++buildings;
            ++totalBuildings;
            GameObject.Find ("TreeCreator").GetComponent<TreeCreatorScript> ().DecreaseLifeSpan ();
        }
    }