public PlainRandomWorldGenerator(
            WorldSizeRelativeValue fromYRV,
            WorldSizeRelativeValue toYRV,
            TileTypeProbability[] originalProbabilities)
        {
            this.fromYRV = fromYRV;
            this.toYRV = toYRV;

            List<TileTypeProbability> probs = new List<TileTypeProbability>();

            probs.AddRange(originalProbabilities);

            probs.Sort(SortByProbability);

            probabilityRange = 0;
            foreach (TileTypeProbability p in probs)
                probabilityRange += p.probability;

            for (int i = 1; i < probs.Count; i++)
            {
                TileTypeProbability p = probs[i];
                p.probability += probs[i - 1].probability;
                probs[i] = p;
            }

            this.probabilities = probs.ToArray();
        }
        public PlainRandomWorldGenerator(
            WorldSizeRelativeValue fromYRV,
            WorldSizeRelativeValue toYRV,
            TileTypeProbability[] originalProbabilities)
        {
            this.fromYRV = fromYRV;
            this.toYRV   = toYRV;

            List <TileTypeProbability> probs = new List <TileTypeProbability>();

            probs.AddRange(originalProbabilities);

            probs.Sort(SortByProbability);

            probabilityRange = 0;
            foreach (TileTypeProbability p in probs)
            {
                probabilityRange += p.probability;
            }

            for (int i = 1; i < probs.Count; i++)
            {
                TileTypeProbability p = probs[i];
                p.probability += probs[i - 1].probability;
                probs[i]       = p;
            }

            this.probabilities = probs.ToArray();
        }
 static private int SortByProbability(TileTypeProbability a, TileTypeProbability b)
 {
     return b.probability.CompareTo(a.probability);
 }
 static private int SortByProbability(TileTypeProbability a, TileTypeProbability b)
 {
     return(b.probability.CompareTo(a.probability));
 }