/// <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(); }
/// <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(); }
/// <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); } }
/// <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; }