74 if (!(
params instanceof AsteroidFieldParams))
return;
78 float fieldRadius = params.minRadius + (params.maxRadius -
params.minRadius) * rand.nextFloat();
79 params.bandWidthInEngine = fieldRadius;
80 params.middleRadius = fieldRadius / 2f;
83 LocationAPI location =
entity.getContainingLocation();
84 if (location ==
null)
return;
85 for (
int i = 0; i <
params.numAsteroids; i++) {
86 float size = params.minSize + (params.maxSize -
params.minSize) * rand.nextFloat();
87 AsteroidAPI asteroid = location.addAsteroid(size);
88 asteroid.setFacing(rand.nextFloat() * 360f);
90 float r = rand.nextFloat();
93 float currRadius = fieldRadius * r;
95 float minOrbitDays = Math.max(1f, currRadius * 0.05f);
96 float maxOrbitDays = Math.max(2f, currRadius * 2f * 0.05f);
97 float orbitDays = minOrbitDays + rand.nextFloat() * (maxOrbitDays - minOrbitDays);
99 float angle = rand.nextFloat() * 360f;
100 asteroid.setCircularOrbit(this.
entity, angle, currRadius, orbitDays);
101 Misc.setAsteroidSource(asteroid,
this);