Exemplo n.º 1
0
        public static Entity CreatePlanet(IEntityLookup entityLookup, string name, double mass, double radius)
        {
            var planet = new Entity(entityLookup);

            planet.AddComponent(new InformationComponent {
                Name = name
            });
            planet.AddComponent(EllipticalOrbitalPositionComponent.CreateUnpoweredBody());
            planet.AddComponent(new OrbitalBodyCharacteristicsComponent
            {
                Mass   = mass,
                Radius = radius,
            });

            entityLookup.RegisterEntity(planet);
            return(planet);
        }
Exemplo n.º 2
0
        public static Entity CreatePlanet(IEntityLookup entityLookup, string name, EntityId parentId, double mass, double radius, double semiMajorAxis, double eccentricity, double longitudeOfPeriapsis, double meanAnomaly, bool isRetrograde, int epoch)
        {
            var planet = new Entity(entityLookup);

            planet.AddComponent(new InformationComponent {
                Name = name
            });

            // TODO: calculate correct initial position usinig epoch

            planet.AddComponent(EllipticalOrbitalPositionComponent.CreateUnpoweredBody(parentId, semiMajorAxis, eccentricity, longitudeOfPeriapsis, meanAnomaly, isRetrograde));
            planet.AddComponent(new OrbitalBodyCharacteristicsComponent
            {
                Mass   = mass,
                Radius = radius,
            });

            entityLookup.RegisterEntity(planet);
            return(planet);
        }
Exemplo n.º 3
0
        public static Entity CreateShip(IEntityLookup entityLookup, string name, Point startingPoint)
        {
            var ship = new Entity(entityLookup);

            ship.AddComponent(new InformationComponent {
                Name = name
            });
            ship.AddComponent(EllipticalOrbitalPositionComponent.CreatePoweredBody(startingPoint));
            ship.AddComponent(new OrbitalBodyCharacteristicsComponent
            {
                Mass   = 5E7,
                Radius = 200,
            });
            ship.AddComponent(new OrbitalUnitDesignComponent
            {
                MaxSpeedPerTick = 5E10,
            });
            ship.AddComponent(new OrdersComponent());

            entityLookup.RegisterEntity(ship);
            return(ship);
        }