Esempio n. 1
0
 private void HandUp()
 {
     if (currentDragger)
     {
         currentDragger.MouseUp();
         currentDragger = null;
     }
 }
Esempio n. 2
0
    private void TapeUp()
    {
        _tapeTool.transform.parent           = transform;
        _tapeTool.transform.localPosition    = _tapeToolOrigin;
        _tapeTool.transform.localEulerAngles = _tapeToolRot;
        _toolReady = true;
        _taping    = false;
        float dist        = Mathf.Min(Vector2.Distance(_tapeBegin, _tapeEnd), _maxTapeLength);
        int   firstBigBoi = -1;
        Core  core;

        RaycastHit2D[] collisions = Physics2D.BoxCastAll(_tapeBegin, Vector2.one * .5f, angle, _tapeEnd - _tapeBegin, dist, _toolHits);
        if (collisions.Length > 1)
        {
            for (int i = 0; i < collisions.Length; i++)
            {
                Core temp = collisions[i].collider.GetComponent <Core>();
                if (temp && temp.ReturnTopParent().tag == "Core")
                {
                    firstBigBoi = i;
                    Debug.Log("Plant is in in group: " + firstBigBoi);
                    break;
                }
            }
            if (firstBigBoi >= 0)
            {
                core = collisions[firstBigBoi].collider.GetComponent <Core>().ReturnTopParent().GetComponent <Core>();
                for (int i = 0; i < collisions.Length; i++)
                {
                    GameObject temp = collisions[i].collider.GetComponent <Core>().ReturnTopParent();
                    if (firstBigBoi >= 0 && i != firstBigBoi && temp.tag != "Core")
                    {
                        temp.transform.parent = core.transform;
                        temp.GetComponent <DragGameSprite>().AttachNewBody(core.rigidbody);
                    }
                    _tape.transform.parent = core.transform;
                }
            }
            else
            {
                DragGameSprite newParent = collisions[0].collider.GetComponent <DragGameSprite>();
                for (int i = 1; i < collisions.Length; i++)
                {
                    DragGameSprite temp = collisions[i].collider.GetComponent <DragGameSprite>().ReturnTopSprite();
                    temp.transform.parent = newParent.transform;
                    temp.AttachNewBody(newParent.rigidbody);
                }
                _tape.transform.parent = newParent.transform;
            }
        }
        if (_tape.transform.parent == null)
        {
            Rigidbody2D _tempTape = _tape.AddComponent <Rigidbody2D>();
            _tempTape.gravityScale = 0;
            Vector2 direction = new Vector2(UnityEngine.Random.Range(-1, 1), UnityEngine.Random.Range(-1, 1)).normalized;
            _tempTape.AddRelativeForce(direction * 100);
        }
    }
Esempio n. 3
0
    public DragGameSprite ReturnTopSprite()
    {
        Transform temp = transform;

        while (temp.parent != null)
        {
            temp = temp.parent;
        }
        DragGameSprite top = temp.GetComponent <DragGameSprite>();

        return(top);
    }
Esempio n. 4
0
    private void HandDown()
    {
        Collider2D collider = Physics2D.OverlapPoint(Camera.main.ScreenToWorldPoint(Input.mousePosition), _toolHits);

        if (collider && collider.gameObject.tag == "Piece")
        {
            Debug.Log("got a piece");
            DragGameSprite piece = collider.gameObject.GetComponent <DragGameSprite>();
            if (piece)
            {
                Debug.Log("the piece exists");
                //Debug.Log(Input.mousePosition);
                piece.MouseDown(Input.mousePosition);
                currentDragger = piece;
            }
        }
    }
Esempio n. 5
0
 private void GlueDown()
 {
     if (_toolReady)
     {
         int          firstBigBoi = -1;
         Core         core;
         Collider2D[] colliders = Physics2D.OverlapCircleAll(Camera.main.ScreenToWorldPoint(Input.mousePosition), 1f, _toolHits);
         if (colliders.Length > 1)
         {
             for (int i = 0; i < colliders.Length; i++)
             {
                 Core temp = colliders[i].GetComponent <Core>();
                 if (temp && temp.ReturnTopParent().tag == "Core")
                 {
                     firstBigBoi = i;
                     Debug.Log("Plant is in in group: " + firstBigBoi);
                     break;
                 }
             }
             if (firstBigBoi >= 0)
             {
                 core = colliders[firstBigBoi].GetComponent <Core>().ReturnTopParent().GetComponent <Core>();
                 for (int i = 0; i < colliders.Length; i++)
                 {
                     GameObject temp = colliders[i].GetComponent <Core>().ReturnTopParent();
                     if (firstBigBoi >= 0 && i != firstBigBoi && temp.tag != "Core")
                     {
                         temp.transform.parent = core.transform;
                         temp.GetComponent <DragGameSprite>().AttachNewBody(core.rigidbody);
                     }
                 }
                 _glue = Instantiate(_glueProto);
                 _glue.SetActive(true);
                 Vector3 gluepos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                 gluepos.z = materialz;
                 _glue.transform.position = gluepos;
                 _glue.transform.parent   = core.transform;
                 _glueRenderer            = _glue.GetComponent <SpriteRenderer>();
                 _glueRenderer.sprite     = _glueShapes[UnityEngine.Random.Range(0, _glueShapes.Count)];
                 _glueRenderer.color      = _colours[UnityEngine.Random.Range(0, _colours.Count)];
             }
             else
             {
                 DragGameSprite newParent = colliders[0].GetComponent <DragGameSprite>();
                 for (int i = 1; i < colliders.Length; i++)
                 {
                     DragGameSprite temp = colliders[i].GetComponent <DragGameSprite>().ReturnTopSprite();
                     temp.transform.parent = newParent.transform;
                     temp.AttachNewBody(newParent.rigidbody);
                 }
                 _glue = Instantiate(_glueProto);
                 _glue.SetActive(true);
                 Vector3 gluepos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                 gluepos.z = materialz;
                 _glue.transform.position = gluepos;
                 _glue.transform.parent   = newParent.transform;
                 _glueRenderer            = _glue.GetComponent <SpriteRenderer>();
                 _glueRenderer.sprite     = _glueShapes[UnityEngine.Random.Range(0, _glueShapes.Count)];
                 _glueRenderer.color      = _colours[UnityEngine.Random.Range(0, _colours.Count)];
             }
         }
         else
         {
             Debug.Log("one or fewer");
         }
     }
     _toolReady = false;
 }
Esempio n. 6
0
    private void StaplerDown()
    {
        Collider2D first     = Physics2D.OverlapCircle(transform.TransformPoint(Vector3.up * 0.25f), 0.1f, _toolHits);
        Collider2D second    = Physics2D.OverlapCircle(transform.TransformPoint(Vector3.down * 0.25f), 0.1f, _toolHits);
        Core       firstTest = null;

        if (first)
        {
            firstTest = first.gameObject.GetComponent <Core>();
        }
        Core secondTest = null;

        if (second)
        {
            secondTest = second.gameObject.GetComponent <Core>();
        }
        if (firstTest && secondTest && (firstTest.ReturnTopParent().tag != "Core" || secondTest.ReturnTopParent().tag != "Core"))
        {
            if (first && second && first != second)
            {
                DragGameSprite firstObject  = first.gameObject.GetComponent <DragGameSprite>();
                DragGameSprite secondObject = second.gameObject.GetComponent <DragGameSprite>();
                if (first.tag == "Core" || firstObject.CheckForCore())
                {
                    if (first.tag == "Core")
                    {
                        secondObject.ReturnTopParent().transform.parent = first.transform;
                        first.GetComponent <Core>().SetAllChildren();
                        PlaceStaple(first.transform);
                    }
                    else
                    {
                        secondObject.ReturnTopParent().transform.parent = firstObject.ReturnTopParent().transform;
                        firstObject.ReturnTopParent().GetComponent <Core>().SetAllChildren();
                        PlaceStaple(firstObject.ReturnTopParent().transform);
                    }
                }
                else if (second.tag == "Core" || second.GetComponent <DragGameSprite>().CheckForCore())
                {
                    if (second.tag == "Core")
                    {
                        firstObject.ReturnTopParent().transform.parent = second.transform;
                        second.GetComponent <Core>().SetAllChildren();
                        PlaceStaple(second.transform);
                    }
                    else
                    {
                        firstObject.ReturnTopParent().transform.parent = secondObject.ReturnTopParent().transform;
                        Debug.Log("got to else");
                        secondObject.ReturnTopParent().GetComponent <Core>().SetAllChildren();
                        PlaceStaple(secondObject.ReturnTopParent().transform);
                    }
                }
                else
                {
                    firstObject.ReturnTopParent().transform.parent = secondObject.ReturnTopParent().transform;
                    DragGameSprite top = secondObject.ReturnTopParent().GetComponent <DragGameSprite>();
                    top.AttachNewBody(top.rigidbody);
                    PlaceStaple(secondObject.ReturnTopParent().transform);
                }
                // Spawn a staple;
            }
        }
    }