Example #1
0
    public override bool Generar(SeccionDeLayout seccion)
    {
        var primeraPasada = base.Generar(seccion);

        if (!primeraPasada)
        {
            return(false);
        }

        var diamPuertas = seccion.arbol.OverlapMinimoParaConectar;

        var bouds = new Bounds();

        bouds.SetMinMax(new Vector3(
                            seccion.cuartosPropios.Min(cuarto => cuarto.Offset.x - cuarto.Size.x / 2f),
                            seccion.cuartosPropios.Min(cuarto => cuarto.Offset.y - cuarto.Size.y / 2f), 0f),
                        new Vector3(
                            seccion.cuartosPropios.Max(cuarto => cuarto.Offset.x + cuarto.Size.x / 2f),
                            seccion.cuartosPropios.Max(cuarto => cuarto.Offset.y + cuarto.Size.y / 2f), 0f)
                        );

        // seccion.cuartosPropios.OrderBy(cuarto=>cuarto.)
        // pisos.AddRange(
        // seccion.cuartosPropios.Select(cuarto=>new Piso(){
        //     altura = cuarto.Offset.y-cuarto.Size.y/2f,
        //     segmentos = new List<Vector2>(new []{new Vector2(bouds.min.x,bouds.max.x)}),
        // }).Concat(
        // seccion.Puertas.Select(puerta=>new Piso(){
        //     altura = puerta.y-diamPuertas/2f,
        //     segmentos = new List<Vector2>(new []{new Vector2(bouds.min.x,bouds.max.x)}),
        // }).Concat(
        //     subCuartos.
        // ).ToArray());

        return(primeraPasada);
    }
 public abstract bool Generar(SeccionDeLayout seccion);
 public bool ReGenerar(SeccionDeLayout seccion)
 {
     Clear();
     return(Generar(seccion));
 }
 public virtual float SeccionUsable(SeccionDeLayout seccion)
 {
     return(1f);
 }