private void GenerateGalaxyThread(object sender, DoWorkEventArgs e)
{
lock (_lockGalaxy)
{
GALAXYTYPE galaxyType;
int minPlanets;
int maxPlanets;
Random r;
try
{
GalaxyArgs args = (GalaxyArgs) e.Argument;
galaxyType = args.GalaxyType;
minPlanets = args.MinPlanets;
maxPlanets = args.MaxPlanets;
r = args.Random;
}
catch (Exception)
{
return;
}
bool[][] grid = GenerateRandom(galaxyType);
/*switch (galaxyType)
{
case GALAXYTYPE.RANDOM:
{
grid = GenerateRandom(size);
} break;
case GALAXYTYPE.CLUSTER:
{
grid = GenerateCluster(size);
} break;
case GALAXYTYPE.STAR:
{
grid = GenerateStar(size);
} break;
case GALAXYTYPE.DIAMOND:
{
grid = GenerateDiamond(size);
} break;
case GALAXYTYPE.RING:
{
grid = GenerateRing(size);
} break;
}*/
GalaxySize = grid.Length;
int numberOfStars = 0;
switch (galaxyType)
{
case GALAXYTYPE.SMALL:
numberOfStars = 24;
break;
case GALAXYTYPE.MEDIUM:
numberOfStars = 48;
break;
case GALAXYTYPE.LARGE:
numberOfStars = 70;
break;
case GALAXYTYPE.HUGE:
numberOfStars = 108;
break;
}
FillGalaxyWithStars(numberOfStars, minPlanets, maxPlanets, grid, r);
}
}