Ejemplo n.º 1
0
    void Update()
    {
        if (Input.GetButtonDown(GameplayStatics.RepairerInputLookup[RepairerInput.Repairer_UseItem]))
        {
            if (HeldItem == null)
            {
                Ray mouseToWorldRay = mainCamera.ScreenPointToRay(Input.mousePosition);
                int layerMask       = LayerMask.GetMask(GameplayStatics.REPAIRER_INTERACTIBLE_OBJECTS_LAYER_NAME);

                var InteractableItemsUnderMouse = Physics.RaycastAll(mouseToWorldRay, 200f,
                                                                     layerMask);
                foreach (var InteractableObject in InteractableItemsUnderMouse)
                {
                    Debug.Log(InteractableObject.collider.gameObject.name);
                    HeldItem = InteractableObject.collider.gameObject.GetComponent <DragableObject>();
                    if (HeldItem != null)
                    {
                        HeldItem.AttachToMouse();
                        break;
                    }
                }
            }
        }
        else if (Input.GetButtonDown(GameplayStatics.RepairerInputLookup[RepairerInput.Repairer_DropItem]) && HeldItem != null)
        {
            HeldItem?.DropItem();
            HeldItem = null;
        }
    }
    public void AddBehaviour(DragableObject dragableObject)
    {
        for (int i = 0; i < barSquares.Count - dragableObject.size + 1; i++)
        {
            if (barSquares[i].contained != null || barSquares[i].locked || barSquares[i].erased)
            {
                continue;
            }
            if (dragableObject.size == 1)
            {
                barSquares[i].OnAdd(dragableObject);
                return;
            }


            for (int j = 0; j < dragableObject.size - 1; j++)
            {
                if (barSquares[i].followingSquares[j].locked || barSquares[i].followingSquares[j].erased)
                {
                    break;
                }
                if (j == dragableObject.size - 2)
                {
                    barSquares[i].OnAdd(dragableObject);
                    return;
                }
            }
        }
    }
Ejemplo n.º 3
0
	// Use this for initialization
	void Start () {
	   	obj = GetComponent<DragableObject>();
		fader = GetComponent<AudioFader>();
		obj.OnDragStart += OnDragStart;
		obj.OnDragStop += OnDragStop;

		glowObj = new GameObject ("glow");
		glowObj.transform.parent = this.transform;
		glow = glowObj.AddComponent<SpriteRenderer> ();
		glow.sprite = GetComponent<SpriteRenderer> ().sprite;
		glow.GetComponent<Renderer>().enabled = false;
	}
    public static void DeselectObject(GameObject obj)
    {
        DragableObject dragScript = obj.GetComponent <DragableObject>();

        if (!dragScript)
        {
            Debug.Log("ERROR NO DRAG SCRIPT ON DESELECT", obj);
            return;
        }
        dragScript.StopDragging();
        currentlyHeld = null;
    }
Ejemplo n.º 5
0
        private void Rotate(Vector2 offset, Vector3 newMousePosition, DragableObject o)
        {
            _currentRotation -= Time.deltaTime * offset.x * 10000 * rotationSpeed;
            _currentRotation  = Mathf.Clamp(_currentRotation, rotatableObjectSO.minAngle, rotatableObjectSO.maxAngle);

            SetRotation();

            if ((_isOn && _currentRotation == rotatableObjectSO.closedAngle) ||
                (!_isOn && _currentRotation == rotatableObjectSO.openedAngle))
            {
                _isOn = !_isOn;
                NotifyOnStateChanged();
            }
        }
Ejemplo n.º 6
0
    public void next()
    {
        DragableObject dragableObject = enigmes[status].GetComponentInChildren <DragableObject>();

        if (dragableObject != null)
        {
            dragableObject.isDragable = false;
        }
        else
        {
            SpinObject spinObject = enigmes[status].GetComponentInChildren <SpinObject>();
            if (spinObject != null)
            {
                spinObject.isDragable = false;
            }
            else
            {
                PorteEnigme enigmeObject = enigmes[status].GetComponentInChildren <PorteEnigme>();
                if (enigmeObject != null)
                {
                    enigmeObject.isDragable = false;
                }
            }
        }


        if (status < enigmes.Length - 1)
        {
            enigmes[status + 1].SetActive(true);
            if (idEnigme == 1 && status == 1)
            {
                enigmes[0].SetActive(false);
                enigmes[1].SetActive(false);
                for (int i = 0; i < objectsToChange.Length; i++)
                {
                    objectsToChange[i].sprite = correspondinNewSprites[i];
                }
            }
        }
        else
        {
            StartCoroutine(End());
        }

        VFXSource.PlayOneShot(successClips[status]);
        status++;
    }
Ejemplo n.º 7
0
    public void OnAdd(DragableObject objectToAdd)
    {
        OnRemove();

        GameObject draggedObj = Instantiate(objectToAdd.gameObject, transform.position, transform.rotation, transform.parent);

        draggedObj.GetComponent <RectTransform>().sizeDelta = new Vector2(100, 100);
        contained         = draggedObj.GetComponent <DragableObject>();
        contained.dragged = false;

        contained.transform.SetSiblingIndex(0);

        //Unlock
        for (int i = 0; i < followingSquares.Count; i++)
        {
            if (followingSquares[i].locked)
            {
                followingSquares[i].Unlock();
            }
            else
            {
                break;
            }
        }


        //Lock
        for (int i = 0; i < Mathf.Min(followingSquares.Count, contained.size - 1); i++)
        {
            followingSquares[i].Lock();
            if (followingSquares[i].contained != null)
            {
                Destroy(followingSquares[i].contained.gameObject);
            }
        }

        Image[] imagesDragged = contained.GetComponentsInChildren <Image>();
        for (int i = 0; i < imagesDragged.Length; i++)
        {
            imagesDragged[i].raycastTarget = false;
        }

        OnPointerExit(null);

        CharacterBehaviourManager.instance.AddBehaviour(contained.action);
    }
Ejemplo n.º 8
0
    public void OnBeginDrag(PointerEventData eventData)
    {
        if (Input.GetMouseButton(2))
        {
            return;
        }
        GameObject     draggedObj = Instantiate(gameObject, transform.position, transform.rotation, transform.parent);
        DragableObject dra        = draggedObj.GetComponent <DragableObject>();

        dra.dragged = true;

        Image[] imagesDragged = dra.GetComponentsInChildren <Image>();
        for (int i = 0; i < imagesDragged.Length; i++)
        {
            imagesDragged[i].raycastTarget = false;
        }

        MemoryBarManager.instance.dragedObject = dra;
    }
    public static void ObjectClicked(GameObject obj)
    {
        if (currentlyHeld == obj)
        {
            DeselectObject(currentlyHeld);
            return;
        }
        if (currentlyHeld != null)
        {
            DeselectObject(currentlyHeld);
        }
        DragableObject dragScript = obj.GetComponent <DragableObject>();

        if (!dragScript)
        {
            Debug.Log("ERROR NO DRAG SCRIPT ON SELECT", obj);
            return;
        }
        currentlyHeld = obj;
        dragScript.StartDragging();
    }
Ejemplo n.º 10
0
        /// <summary>
        /// Moves parent object when dragableObject is dragged
        /// </summary>
        /// <param name="offset">Mouse offset</param>
        /// <param name="newMousePosition"></param>
        /// <param name="dragableObject">Object being dragged by user</param>
        public void Move(Vector2 offset, Vector3 newMousePosition, DragableObject dragableObject)
        {
            var pos = GetNewWorldPosition(newMousePosition);

            if (IsOverlapping(pos))
            {
                return;
            }

            transform.position = pos;

            if (((transform.position - closedTransform.position).magnitude >= movableObjectSO.distanceToOpened ||
                 (transform.position - closedTransform.position).magnitude > movableObjectSO.precision) &&
                !_isOn)
            {
                ChangeStateAndNotify();
            }
            else if ((transform.position - closedTransform.position).magnitude <= movableObjectSO.precision &&
                     _isOn)
            {
                transform.position = closedTransform.position;
                ChangeStateAndNotify();
            }
        }
Ejemplo n.º 11
0
    // Update is called once per frame
    void Update()
    {
        if (!mdb.gameStarted)
        {
            return;
        }

        if (!isPlaying)
        {
            return;
        }

        if (!mdb.hasTimeLeft() && !allClothClean)
        {
            isPlaying = false;
            mdb.EndedGameLose();
            return;
        }


        allClothClean = true;
        for (int i = 0; i < dishes.Count; i++)
        {
            DragableObject obj = dishes [i].GetComponent <DragableObject> ();
            if (obj.isAtDestination == false)
            {
                allClothClean = false;
                break;
            }
        }

        if (allClothClean)
        {
            EndGame();
        }
    }
Ejemplo n.º 12
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            DragableObject obj = value as LineBez;

            return(obj != null? Visibility.Visible : Visibility.Hidden);
        }
Ejemplo n.º 13
0
 /// <summary>
 /// Saves offset to dragable object on start drag
 /// </summary>
 /// <param name="mousePosition"></param>
 /// <param name="dragableObject"></param>
 public void OnStartMove(Vector3 mousePosition, DragableObject dragableObject)
 {
     _offsetToObj = transform.position - GetMouseWorldPoint(mousePosition);
 }