Esempio n. 1
0
    /// <summary>
    /// Método responsavel por ativar icone do mouse.
    /// </summary>
    /// <remarks>Esse método é passado como um evento para os scripts de slot</remarks>
    /// <see cref="ISlotEngrenagem"/>
    /// <param name="slot">Recebe um slot como parametro</param>
    public void AtivarIcone(ISlotEngrenagem slot)
    {
        _icone.enabled = true;

        _icone.color = _corControle.ConverterEnumParaCor(slot.Cor);

        _origem = slot;
    }
 /// <summary>
 /// Método responsavel por registrar remocao de um engrenagem.
 /// </summary>
 /// <param name="slot">Recebe o slot onde a engrenagem sera removida.</param>
 public void RemoverGear(ISlotEngrenagem slot)
 {
     if (_slotsMundo.ContainsKey(slot.IndexDoSlot))
     {
         _slotsMundo.Remove(slot.IndexDoSlot);
     }
     VerificarSlots();
 }
Esempio n. 3
0
    /// <summary>
    /// Método responsavel por registrar slot destino da engrenagem, caso o slot esteja oculpado nada acontecerá.
    /// </summary>
    /// <remarks>Esse método é passado como um evento para os scripts de slot</remarks>
    /// <see cref="ISlotEngrenagem"/>
    /// <param name="slot">Recebe um slot como parametro</param>
    public void EnterSlot(ISlotEngrenagem slot)
    {
        if (_origem == null)
        {
            return;
        }

        _destino = slot;
    }
    /// <summary>
    /// Método responsavel por registrar adicao de engrenagem ao slot.
    /// </summary>
    /// <param name="slot">Recebe como parametro o slot onde a engrenagem sera adicionada</param>
    public void AddGear(ISlotEngrenagem slot)
    {
        if (_slotsMundo.ContainsKey(slot.IndexDoSlot))
        {
            _slotsMundo[slot.IndexDoSlot] = (SlotMundo)slot;
        }
        else
        {
            _slotsMundo.Add(slot.IndexDoSlot, (SlotMundo)slot);
        }

        VerificarSlots();
    }
Esempio n. 5
0
    /// <summary>
    /// Rotina desenhada para verificar comandos do mouse.
    /// </summary>
    /// <returns></returns>
    IEnumerator CheckClick()
    {
        while (true)
        {
            if (Input.GetMouseButtonUp(0))
            {
                DesativarIcone();

                if (_origem != null && _destino == null)
                {
                    _origem.MostrarEngrenagem();

                    _origem = null;
                }
                else if (_origem != null)
                {
                    _destino.MudarCor(_corControle.ConverterEnumParaCor(_origem.Cor), _origem.Cor);

                    _destino.MostrarEngrenagem();

                    if (_destino.GetType() == typeof(SlotMundo))
                    {
                        onAdd?.Invoke(_destino);
                    }
                    if (_origem.GetType() == typeof(SlotMundo))
                    {
                        onRemove?.Invoke(_origem);
                    }


                    _destino = null;

                    _origem = null;
                }
            }
            yield return(null);
        }
    }
Esempio n. 6
0
 /// <summary>
 /// Método responsavel por apagar registrar slot destino da engrenagem.
 /// </summary>
 /// <remarks>Esse método é passado como um evento para os scripts de slot</remarks>
 public void ExitSlot()
 {
     _destino = null;
 }