internal override void Build(CSpriteBuildArgs a) { base.Build(a); var aRandomGenerator = a.QuadrantBuildArgs.RandomGenerator; this.YearDuration = TimeSpan.FromSeconds(aRandomGenerator.NextFromDoubleRange(this.TrabantYearDurationRange)); this.OrbitStartRadians = (aRandomGenerator.NextDouble() * Math.PI * 2d); this.UpdateCurrentRadians(); this.WorldPos = this.GetWorldPosByOrbitRadians(0d); this.UpdateOrbit(); }
internal override void Build(CSpriteBuildArgs a) { base.Build(a); var aRandomGenerator = a.QuadrantBuildArgs.RandomGenerator; var aWorld = this.World; this.WorldPos = this.GetRandomWorldPos(aRandomGenerator); //this.OriginalWorldPos = this.GenerateOriginalWorldPos(aRandomGenerator); this.Radius = this.BuildRadius(aRandomGenerator); this.Color = aRandomGenerator.NextWorldPos(); this.TargetCubePos = aRandomGenerator.NextCubePos(); this.WormholeIsEnabled = true; }
internal override void Build(CSpriteBuildArgs a) { base.Build(a); var aWorld = this.World; var aRandomGenerator = a.QuadrantBuildArgs.RandomGenerator; this.OrbitPlaneSlopeMaxM = a.QuadrantBuildArgs.RandomGenerator.NextDouble(); this.OrbitPlaneSlopeMax = this.ParentOrbIsDefined ? this.ParentOrb.OrbitPlaneSlopeMax : this.OrbitPlaneSlopeMaxM.Value; this.GeneratedOrbitPlaneSlope = aRandomGenerator.NextVector3Dbl(Math.PI * 2) * new CVector3Dbl(this.OrbitPlaneSlopeMax); this.OrbitPlaneSlopeCur = this.OrbitPlaneSlopeValue.Value ? this.GeneratedOrbitPlaneSlope : new CVector3Dbl(0d); this.DayDuration = TimeSpan.FromSeconds(aRandomGenerator.NextDouble(aWorld.OrbDayDurationMin, aWorld.OrbDayDurationMax)); if (!this.ParentOrbIsDefined) { this.OwnInheritOrbPlaneSlope = aRandomGenerator.NextDouble() < CStaticParameters.SolarSystem_InheritOrbPlaneSlopePropabiltiy; } this.BuildTrabants(a); }
private void BuildTrabants(CSpriteBuildArgs aSpriteBuildArgs) { if (this.HasTrabants) { var aWorld = this.World; var aRandomGenerator = aSpriteBuildArgs.QuadrantBuildArgs.RandomGenerator; var aTrabantCountRange = this.TrabantCountRange; var aHasTrabants = this.TrabantPropability >= aRandomGenerator.NextDouble(); var aTrabantCount = aHasTrabants ? aRandomGenerator.NextInteger(aTrabantCountRange.Item1, aTrabantCountRange.Item2) : 0; this.Trabants.DeallocateItems(); var aTrabants = new CTrabant[aTrabantCount]; if (aTrabantCount > 0) { var aOrbitRange = this.TrabantOrbitRange; var aOrbRadius = this.Radius; var aOrbitRangeMin = aOrbitRange.Item1 * aOrbRadius; var aOrbitRangeMax = aOrbitRange.Item2 * aOrbRadius; var aOrbitRadius = aRandomGenerator.NextDouble(aOrbitRangeMin.Value, aOrbitRangeMax.Value); for (var aIdx = 0; aIdx < aTrabantCount; ++aIdx) { var aTrabantOrbit = ((double)aIdx + 1) * aOrbitRadius; var aTrabant = this.AllocateTrabantNullable(); if (aTrabant is object) { aTrabant.OrbitRadius = aTrabantOrbit; aTrabant.OrbitRadius = aTrabantOrbit; aTrabant.Build(aSpriteBuildArgs); } aTrabants[aIdx] = aTrabant; } } this.Trabants = aTrabants; } else { this.Trabants = Array.Empty <CTrabant>(); } }
internal override void Build(CSpriteBuildArgs a) { base.Build(a); this.WorldPos = this.GetWorldPos(this.TileCubePos.Value); }
internal override void Build(CSpriteBuildArgs a) { base.Build(a); }
internal override void Build(CSpriteBuildArgs a) { base.Build(a); this.WorldPos = this.GetRandomWorldPos(a.QuadrantBuildArgs.RandomGenerator); }