public virtual void Actualizar(SuvirvalCraft contexto, float elapsedTime) { if (hayInteraccion) { if (barraEstado != null) { barraEstado.ActualizarEstado(Resistencia); } } else { if (barraEstado != null) { barraEstado.Liberar(); barraEstado = null; } } //Preguntamos por el tiempo del ultimo golpe porque queremos que la barra de estado se muestre durante 5 segudos despues de cada golpe, //independientemente de que no haya interaccion if (SuperoTiempoGolpe(contexto.tiempo)) { //Esto maneja la sincronización, ya que siempre se ejecuta primero las colisiones e interacciones y luego las actualizaciones. hayInteraccion = false; } }
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 Actualizar(SuvirvalCraft contexto, float elapsedTime) { base.Actualizar(contexto, elapsedTime); if (estaCreando) { tiempoCreacion += elapsedTime; if (tiempoCreacion > TiempoTotalCreacion()) { progresoCreacion.Liberar(); progresoCreacion = null; tiempoCreacion = 0; estaCreando = false; tieneQueCrear = false; Mesh = Mesh1; } else { progresoCreacion.ActualizarEstado(tiempoCreacion); } } else { if (tieneQueCrear && elementosQueContiene().Count > 0) { progresoCreacion = new BarraEstado(new Vector3(BoundingBox().PMin.X, BoundingBox().PMax.Y, BoundingBox().PMax.Z), BoundingBox().PMax, TiempoTotalCreacion()); estaCreando = true; tieneQueCrear = false; } } }
public override void Actualizar(SuvirvalCraft contexto, float elapsedTime) { base.Actualizar(contexto, elapsedTime); if (SeEstaAbriendo()) { tiempoApertura += elapsedTime; if (tiempoApertura > TiempoTotalApertura()) { progresoApertura.Liberar(); progresoApertura = null; tiempoApertura = 0; estaAbierto = true; } else { progresoApertura.ActualizarEstado(tiempoApertura); } } }