/// <summary> /// Crea un nuevo jumper. /// </summary> /// <param name="x">Coordenada en x.</param> /// <param name="y">Coordenada en y.</param> /// <param name="z">Coordenada en z.</param> /// <param name="c">Cubo en el cual esta el jumnper.</param> public void crearJumper(int x, int y, int z, Cubo c) { //Si el cubo contiene un hueco lo borra. if (c.Hole != null) { Components.Remove(c.Hole); c.Hole = null; } Vector3 position = new Vector3(x, y, z); foreach (GameObject o in Components) { if (o.Position == position) return; } Jumper j = new Jumper(this, position, SIZE_ESCALERA); Components.Add(j); //Añade el hueco al cubo. c.Jumper = j; }
/// <summary> /// Crea un nuevo cubo. /// </summary> /// <param name="x">Coordenada en x.</param> /// <param name="y">Coordenada en y.</param> /// <param name="z">Coordenada en z.</param> /// <param name="size">Tamaño del cubo.</param> public void crearCubo(int x, int y, int z) { Vector3 position = new Vector3(myMath.roundTo(x, SIZE_CUBO * 2), myMath.roundTo(y, SIZE_CUBO * 2), myMath.roundTo(z, SIZE_CUBO * 2)); foreach (GameObject o in Components) { if (o.Position == position) return; } Cubo c = new Cubo(this, position, SIZE_CUBO); cubos.Add(c); Components.Add(c); //Solo se vuelve a mirar que contorno deben tener los cubos adyacentes a este. if (c.CubosAdyacentes != null) { foreach (Cubo o in c.CubosAdyacentes) o.setContorno(); } }
/// <summary> /// Crea un nuevo hueco. /// </summary> /// <param name="x">Coordenada en x.</param> /// <param name="y">Coordenada en y.</param> /// <param name="z">Coordenada en z.</param> /// <param name="c">Cubo en el cual esta el hueco.</param> public void crearHueco(int x, int y, int z, Cubo c) { //Si el cubo contiene un jumper lo borra. if (c.Jumper != null) { Components.Remove(c.Jumper); c.Jumper = null; } Vector3 position = new Vector3(x, y, z); foreach (GameObject o in Components) { if (o.Position == position) return; } Hole h = new Hole(this, position, SIZE_ESCALERA); Components.Add(h); //Añade el hueco al cubo. c.Hole = h; }
/// <summary> /// Remueve el cubo deseado de la lista de cubos adyacentes. /// </summary> /// <param name="c"></param> public void removeCuboFromAdyacentes(Cubo c) { if (cubosAdyacentes.Contains(c)) cubosAdyacentes.Remove(c); }