public float distanciaA(Elemento unElemento) { var aux = new Vector3(unElemento.posicion().X - posicion().X, unElemento.posicion().Y - posicion().Y, unElemento.posicion().Z - posicion().Z); return(aux.Length()); }
public override void Actualizar(SuvirvalCraft contexto, float elapsedTime) { if (EstaCocinando()) { tiempoCoccion += elapsedTime; if (tiempoCoccion > TiempoCoccionElementos()) { if (elementoCoccion != null) { EliminarElemento(elementoCoccion); tiempoCoccion = 0; progresoCoccion.Liberar(); progresoCoccion = null; var contenido = elementoCoccion.DestruirSolo(); foreach (var cont in contenido) { cont.posicion(elementoCoccion.posicion()); } //this.AgregarElementos(contenido); contexto.elementos.Remove(elementoCoccion); elementoCoccion = null; contexto.elementos.AddRange(contenido); contexto.optimizador.ForzarActualizacionElementosColision(); } } else { progresoCoccion.ActualizarEstado(tiempoCoccion); } } }
public override void ProcesarColisionConElemento(Elemento elemento) { if (elemento.GetTipo().Equals(Alimento)) { if (!elementosQueContiene().Contains(elemento)) { //Le coloca la misma posicion que tiene la olla pero sobre su altura elemento.posicion(posicion() + new Vector3(0, 25, 0)); agregarElemento(elemento); elementoCoccion = elemento; tiempoCoccion = 0; progresoCoccion = new BarraEstado(new Vector3(BoundingBox().PMin.X, BoundingBox().PMax.Y, BoundingBox().PMax.Z), BoundingBox().PMax, TiempoCoccionElementos()); } } }
public override void ProcesarColisionConElemento(Elemento elemento) { if (elemento.GetTipo().Equals(Olla)) { //Le coloca la misma posicion que tiene el fuego pero sobre su altura elemento.posicion(posicion() + new Vector3(0, BoundingBox().PMax.Y - BoundingBox().PMin.Y, 0)); //Agrega el elemento a su lista agregarElemento(elemento); } if (elemento.GetTipo().Equals(Alimento)) { if (elementosQueContiene().Count > 0) { //Por el momento asumimos que esta cocinando si tiene un elementos foreach (var elem in elementosQueContiene()) { if (elem.GetTipo().Equals(Olla)) { elem.ProcesarColisionConElemento(elemento); } } } } }