Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 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>();
     }
 }
Ejemplo n.º 5
0
        internal override void Build(CSpriteBuildArgs a)
        {
            base.Build(a);

            this.WorldPos = this.GetWorldPos(this.TileCubePos.Value);
        }
Ejemplo n.º 6
0
 internal override void Build(CSpriteBuildArgs a)
 {
     base.Build(a);
 }
Ejemplo n.º 7
0
 internal override void Build(CSpriteBuildArgs a)
 {
     base.Build(a);
     this.WorldPos = this.GetRandomWorldPos(a.QuadrantBuildArgs.RandomGenerator);
 }