/*
     *	Funcion: spawnInCircle()
     *
     *	Simula la introduccion de liquido en celdas alrededor del centro del entorno.
     */
    public void spawnInCircle()
    {
        if (testDelay > 0)
        {
            testDelay = 0;

            Vector3 indexes = sicStartPosition;
            if (indexes.x <= tamano_x / 4 && indexes.z < tamano_z / 4 * 3)
            {
                indexes.z++;
            }
            if (indexes.z >= tamano_z / 4 * 3 && indexes.x < tamano_x / 4 * 3)
            {
                indexes.x++;
            }
            if (indexes.x >= tamano_x / 4 * 3 && indexes.z > tamano_z / 4)
            {
                indexes.z--;
            }
            if (indexes.z <= tamano_z / 4 && indexes.x > tamano_x / 4)
            {
                indexes.x--;
            }

            Celda cell = getCelda((int)indexes.x, (int)indexes.y, (int)indexes.z);
            if (cell.estaVacia() && !cell.esCeldaSolida())
            {
                cell.setSaturacion(1f);
            }

            sicStartPosition = indexes;
        }

        testDelay++;
    }
Example #2
0
 /*
  *	Funcion: renderNewCelda()
  *
  *	Si <celda> no ha sido rendered, y <celda> no esta vacia (saturacion > 0), ejecuta la operacion de render para la nueva celda.
  */
 public void renderNewCelda(Celda celda, int sc_index)
 {
     if (!celda.rendered)
     {
         if (!celda.estaVacia())
         {
             renderNuevaCelda(celda, sc_index);
         }
     }
 }
Example #3
0
 /*
  *	Funcion: renderCelda()
  *
  *	Si <celda> ya ha sido rendered, y <celda> esta vacia (saturacion = 0), ejecuta la operacion de unrender para <celda>.
  *	Si <celda> no esta vacia (saturacion > 0), ejecuta la operacion de actualizacion de render para <celda>.
  */
 public void renderCelda(Celda celda, int act_index)
 {
     if (celda.rendered)
     {
         if (celda.estaVacia())
         {
             unrenderCelda(celda, act_index);
         }
         else
         {
             actualizarCelda(celda);
         }
     }
 }
    /*
     *	Funcion: spawnAtRandom()
     *
     *	Simula la introduccion de liquido en celdas aleatorias del entorno.
     */
    public void spawnAtRandom()
    {
        if (testDelay > 0)
        {
            testDelay = 0;

            float   min_height = 0.7f;
            Vector3 indexes    = new Vector3(UnityEngine.Random.Range(0, tamano_x), UnityEngine.Random.Range(tamano_y * min_height, tamano_y), UnityEngine.Random.Range(0, tamano_z));
            Celda   cell       = getCelda((int)indexes.x, (int)indexes.y, (int)indexes.z);
            if (cell.estaVacia() && !cell.esCeldaSolida())
            {
                cell.setSaturacion(1f);
            }
        }

        testDelay++;
    }