public bool ComPrato() { if (!espacoMesa || espacoMesa.Vazio()) { return(false); } string id = espacoMesa.itemAbrigado.GetComponent <GbjID>().id; bool ePrato = id.Substring(0, 6) == "#prato"; if (ePrato) { int cor_i = espacoMesa.itemAbrigado.GetComponent <Prato>().cor_i; if (cor_i == cor_esperada && id == idPratoEsperado) { Item pratoItem = espacoMesa.Soltar(); Vector3 pos = pratoItem.transform.position; espacoCliente.Abrigar(pratoItem); pratoItem.bloqueado = true; pratoItem.transform.position = pos; return(true); } else { SlimeBravo(); return(false); } } return(false); }
IEnumerator ConsumirEDestruir(EspacoItem espacoItem, float intervaloPrato) { Paciencia paciencia = GetComponent <Paciencia>(); paciencia.consumir = false; // paciencia.Recuperar(); if (SistemaPausa.pausado) { yield return(new WaitWhile(() => SistemaPausa.pausado)); } yield return(new WaitForSeconds(intervaloPrato)); if (SistemaPausa.pausado) { yield return(new WaitWhile(() => SistemaPausa.pausado)); } espacoItem.itemAbrigado.bloqueado = false; Item itemPrato = espacoItem.Soltar(); Destroy(itemPrato.gameObject); terminou = true; }
void Update() { if (SistemaPausa.pausado) { return; } if (espacoBalcao.Vazio()) { if (tinhaPrato) { SistemaEfeitoSonoro.Disparar(EfeitoSonoro.PratoPego); } tinhaPrato = false; return; } if (espacoBalcao.itemAbrigado.GetComponent <TipoItem>().tipo != TipoItem.Tipo.Pedido) { return; } SistemaEfeitoSonoro.Disparar(EfeitoSonoro.PedidoEntregue); Item itemItem = espacoBalcao.Soltar(); // itemItem não pode ser nulo por conta da verificação do Vazio Assert.IsNotNull(itemItem); Pedido itemPedido = itemItem.GetComponent <Pedido>(); Assert.IsNotNull(itemPedido); for (int i = 0; i < transacoes.Length; i++) { if (itemPedido.pratoId == transacoes[i].entrada) { StartCoroutine(InstanciarPrato(i, itemItem.transform.position, itemPedido.cor_prato)); break; } } Destroy(itemItem.gameObject); }
void Update() { if (SistemaPausa.pausado) { compVelocidade.direcao.x = 0; compVelocidade.direcao.y = 0; compVelocidade.direcao.z = 0; compVelocidade.velocidade = 0; return; } // rotação e direção float H = ctrl.ctrlValores.eixoHorizontal; float V = ctrl.ctrlValores.eixoVertical; direcao.x = 0; direcao.y = 0; direcao.z = 0; if ((H < -0.1f || H > 0.1f) || (V < -0.1f || V > 0.1f)) { if (H < -0.1f) { direcao.x = -1; } else if (H > 0.1f) { direcao.x = 1; } if (V < -0.1f) { direcao.z = -1; } else if (V > 0.1f) { direcao.z = 1; } direcao.Normalize(); Vector3 pontoOlhar = tr.position + direcao; Quaternion rotBkup = olhador.rotSuave.tr.rotation; tr.LookAt(pontoOlhar); olhador.alvo = pontoOlhar; olhador.rotSuave.tr.rotation = rotBkup; } else { olhador.alvo = tr.position + tr.forward; } // velocidade compVelocidade.direcao.x = 0; compVelocidade.direcao.y = 0; compVelocidade.direcao.z = Mathf.Ceil(direcao.magnitude); compVelocidade.velocidade = ctrl.velocidade; // pegar ou soltar item if (ctrl.ctrlValores.eixoAcao1) { if (!espacoItem.Vazio()) { Item item = espacoItem.Soltar(); // !espacoItem.Vazio() deve assegurar que item soltado não seja nula! Assert.IsNotNull(item); if (!listaDeEspacosItensProximas.Vazio()) { GameObject espacoGbj = listaDeEspacosItensProximas.ObterMaisProximo(); // !listaDeEspacosItensProximas.Vazio() deve assegurar que espacoGbj não seja nula! Assert.IsNotNull(espacoGbj); var espacoItemProximo = espacoGbj.GetComponent <EspacoItem>(); // espacoGbj deve conter um componente Espacoitem Assert.IsNotNull(espacoItemProximo); espacoItemProximo.Abrigar(item); } } else if (!listaDeItensProximos.Vazio()) { // a verificação de Vazio acima garante que ObterMaisProximo não retornará nula GameObject itemGbj = listaDeItensProximos.ObterMaisProximo(); // !listaDeItensProximos.Vazio() deve assegurar que itemGbj não seja nula Assert.IsNotNull(itemGbj); var item = itemGbj.GetComponent <Item>(); // itemGbj deve conter um componente Item Assert.IsNotNull(item); espacoItem.Abrigar(item); } } }