Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
 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);
         }
     }
 }
Esempio n. 3
0
 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;
         }
     }
 }
Esempio n. 4
0
 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);
         }
     }
 }