Exemple #1
0
        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());
        }
Exemple #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);
         }
     }
 }
Exemple #3
0
 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());
         }
     }
 }
Exemple #4
0
 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);
                 }
             }
         }
     }
 }