public void VacuumAllItems() { foreach (Collider2D itemCol in allItemsColliders) { ClickableItemBehaviour item = itemCol.GetComponent <ClickableItemBehaviour>(); item.VacuumTowards(blackHole.transform.position); } }
public void ReleaseHeldItem(ClickableItemBehaviour item, Vector3 mousePosition, Vector3 mousePositionAtLastFrame) { Vector3 newVelocity = (mousePosition - mousePositionAtLastFrame) / Time.deltaTime; Vector2 newVelocity2D = new Vector2(newVelocity.x, newVelocity.y); item.GetComponent <Rigidbody2D>().isKinematic = false; item.GetComponent <Rigidbody2D>().velocity = newVelocity2D; }
public ClickableItemBehaviour GetClickedItem(Vector3 mousePosition) { ClickableItemBehaviour clickedItem = null; Vector2 mousePos2D = new Vector2(mousePosition.x, mousePosition.y); foreach (Collider2D col in allItemsColliders) { if (col != null && col.OverlapPoint(mousePos2D)) { clickedItem = col.GetComponent <ClickableItemBehaviour>(); break; } } return(clickedItem); }
private void HandleMouseRelease(Vector3 mousePosition) { if (spawnSpellActive) { GameEngineBehaviour.instance.StopSpawnEffect(); spawnSpellActive = false; } else if (holdItem) { GameEngineBehaviour.instance.ReleaseHeldItem(currentHeldItem, mousePosition, previousMousePosition); if (!isDraggingItem) { GameEngineBehaviour.instance.ComputeClickOnItem(currentHeldItem); } currentHeldItem = null; } }
private void HandleMouseDown(Vector3 mousePosition) { timeSinceMouseDown = Time.time; positionWhenMouseDown = mousePosition; isDraggingItem = false; currentHeldItem = GameEngineBehaviour.instance.GetClickedItem(mousePosition); if (currentHeldItem != null) { // we just clicked on an item holdItem = true; GameEngineBehaviour.instance.StartHoldingItem(currentHeldItem, mousePosition); } else { // no click on item : we start spawn spell Vector3 positionInSpace = Camera.main.ScreenToWorldPoint(Input.mousePosition + distanceFromWorld * Vector3.forward); GameEngineBehaviour.instance.StartSpawnEffect(positionInSpace); spawnSpellActive = true; } }
public void ComputeClickOnItem(ClickableItemBehaviour item) { item.HandleClick(); }
public void UpdateHeldItemPosition(ClickableItemBehaviour item, Vector3 mousePosition) { item.GetComponent <Rigidbody2D>().MovePosition(new Vector2(mousePosition.x, mousePosition.y)); }
public void StartHoldingItem(ClickableItemBehaviour item, Vector3 mousePosition) { item.GetComponent <Rigidbody2D>().isKinematic = true; }