private void HandUp() { if (currentDragger) { currentDragger.MouseUp(); currentDragger = null; } }
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); } }
public DragGameSprite ReturnTopSprite() { Transform temp = transform; while (temp.parent != null) { temp = temp.parent; } DragGameSprite top = temp.GetComponent <DragGameSprite>(); return(top); }
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; } } }
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; }
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; } } }