Esempio n. 1
0
 /// <summary>
 ///     //TODO. Refactorizar los parametros que recibe!!!!
 /// </summary>
 /// <param name="contexto"></param>
 /// <param name="elemento"></param>
 public override void ActualizarRenderizar(SuvirvalCraft contexto, Elemento elemento)
 {
     if (HayQueIluminarConElementos(contexto))
     {
         var iluminador = AlguienIluminaAElemento(elemento);
         if (iluminador != null)
         {
             //Setea primero aquellos parámetros que son propios del efecto en cuestión.
             GetEfectoShader().SetValue("time", contexto.tiempo);
             GetEfectoShader().SetValue("distanciaAnimacion", elemento.Flexibilidad);
             GetEfectoShader().SetValue("vibracionPorGolpe", elemento.ObtenerVibracion(contexto.tiempo));
             iluminador.Iluminar(this, contexto.personaje.mesh.Position, elemento.ColorEmisor(),
                                 elemento.ColorAmbiente(),
                                 elemento.ColorDifuso(), elemento.ColorEspecular(), elemento.EspecularEx());
             elemento.Mesh.render();
         }
         else
         {
             GetEfectoShader().SetValue("time", contexto.tiempo);
             GetEfectoShader().SetValue("distanciaAnimacion", elemento.Flexibilidad);
             GetEfectoShader().SetValue("vibracionPorGolpe", elemento.ObtenerVibracion(contexto.tiempo));
             contexto.dia.GetSol()
             .Iluminar(contexto.personaje.mesh.Position, this, elemento.ColorEmisor(),
                       elemento.ColorAmbiente(),
                       elemento.ColorDifuso(), elemento.ColorEspecular(), elemento.EspecularEx());
             elemento.Mesh.render();
         }
     }
     else
     {
         GetEfectoShader().SetValue("time", contexto.tiempo);
         GetEfectoShader().SetValue("distanciaAnimacion", elemento.Flexibilidad);
         GetEfectoShader().SetValue("vibracionPorGolpe", elemento.ObtenerVibracion(contexto.tiempo));
         contexto.dia.GetSol()
         .Iluminar(contexto.personaje.mesh.Position, this, elemento.ColorEmisor(), elemento.ColorAmbiente(),
                   elemento.ColorDifuso(), elemento.ColorEspecular(), elemento.EspecularEx());
         elemento.Mesh.render();
     }
 }