protected override List <SkeletonPoint> Generate() { var result = new List <SkeletonPoint>(); Params.InitialPoints?.ForEach(_ => result.Add(new SkeletonPoint(_, new EntityType(Color.green, "Initial")))); for (var i = 0; i < Params.RandomPointsCount; i++) { var criteria = new List <IGeneratorCriteria <SkeletonPoint> > { new AvoidNearSkeletonPointGeneratorCriteria(result) }; var skeletonPointGeneratorParams = new SkeletonPointGeneratorParams { MaximalX = Params.MaximalX, MinimalX = Params.MinimalX, MaximalY = Params.MaximalY, MinimalY = Params.MinimalY }; var skeletonPointGenerator = new SkeletonPointGenerator(skeletonPointGeneratorParams, criteria); var newPoint = skeletonPointGenerator.Execute(); if (newPoint == null) { return(null); } result.Add(newPoint); } return(result); }
public LevelSkeletonGenerator(LevelSkeletonGeneratorParams generatorParams, IEnumerable <IGeneratorCriteria <LevelSkeleton> > generatorCriteria = null) : base(generatorParams, generatorCriteria) { var pointGeneratorParams = new SkeletonPointGeneratorParams { RandomPointsCount = 10, MinimalX = -10, MaximalX = 10, MinimalY = -5, MaximalY = 5, InitialPoints = new List <Vector2> { new Vector2(11, 2), new Vector2(-11, -3) } }; _skeletonPointGenerator = new SkeletonPointGenerator(pointGeneratorParams); }
public SkeletonPointGenerator(SkeletonPointGeneratorParams generatorParams, IEnumerable <IGeneratorCriteria <List <SkeletonPoint> > > generatorCriteria = null) : base(generatorParams, generatorCriteria) { }