public bool Reciclar(ObjReciclavel reciclavel) { if (listaReciclando.Count >= TamanhoLista()) { return false; } reciclavel.Reciclar(transform, ultimaDuracao); listaReciclando.Add(reciclavel); ObjGerenciadorLixo.CriarXP( xpAoMandarReciclar, reciclavel.transform); if (listaReciclando.Count == 1) { proximoTempoReciclagem = Time.time + DuracaoReciclagemAtual(); } return true; }
public static bool Adicionar(ObjReciclavel reciclavel) { if (instancia == null) return false; lock(instancia.listaReciclaveis) { try { if (!instancia.listaReciclaveis.Contains(reciclavel)) { reciclavel.transform.SetParent( instancia.transform, false); instancia.listaReciclaveis.Add(reciclavel); } return true; } catch (UnityException e) { Debug.Log (e.Message); } } return false; }
public static void VerificarSoltarReciclavel( ObjReciclavel reciclavel, Vector2 area) { foreach(ObjAreaReciclavel oar in instancia.areasReciclagem) { if (oar.tipo == reciclavel.tipo) { Vector2 p = reciclavel.transform.position; Vector2 o = oar.transform.position; Vector2 a = (oar.area / 2) * FuncoesCamera.relacaoAltura; if (p.x >= o.x - a.x && p.x <= o.x + a.x && p.y >= o.y - a.y && p.y <= o.y + a.y) { if (!oar.Reciclar(reciclavel)) { ManterNaArea(reciclavel.transform, area); Som.Tocar(Som.Tipo.ErrarLixeira); } } else { ManterNaArea(reciclavel.transform, area); //Som.Tocar(Som.Tipo.ErrarLixeira); } } /* else { ManterNaArea(reciclavel.transform, area); Debug.Log("Nome: " + instancia.gameObject.name + " - Tipo diferente"); } */ } }
public static bool Remover(ObjReciclavel reciclavel) { if (instancia == null) return false; lock(instancia.listaReciclaveis) { try { if (instancia.listaReciclaveis.Contains(reciclavel)) { instancia.listaReciclaveis.Remove(reciclavel); } return true; } catch (UnityException e) { Debug.Log (e.Message); } } return false; }
public static void VerificarSoltarReciclavel( ObjReciclavel reciclavel, Vector2 area) { foreach(ObjAreaReciclavel oar in instancia.areasReciclagem) { if (oar.tipo == reciclavel.tipo) { Vector2 p = reciclavel.transform.position; Vector2 o = oar.transform.position; Vector2 a = (oar.area / 2) * FuncoesCamera.relacaoAltura; if (p.x >= o.x - a.x && p.x <= o.x + a.x && p.y >= o.y - a.y && p.y <= o.y + a.y) { if (!oar.Reciclar(reciclavel)) { ManterNaArea(reciclavel.transform, area); } } else { ManterNaArea(reciclavel.transform, area); } } } }