mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
33 lines
1.3 KiB
C#
33 lines
1.3 KiB
C#
using NewHorizons.External;
|
|
using NewHorizons.OrbitalPhysics;
|
|
using NewHorizons.Utility;
|
|
using PacificEngine.OW_CommonResources.Game.Resource;
|
|
using PacificEngine.OW_CommonResources.Game.State;
|
|
using PacificEngine.OW_CommonResources.Geometry.Orbits;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using UnityEngine;
|
|
|
|
namespace NewHorizons.Builder.General
|
|
{
|
|
public static class HeavenlyBodyBuilder
|
|
{
|
|
public static void Make(GameObject body, IPlanetConfig config, float SOI, GravityVolume bodyGravity, InitialMotion initialMotion)
|
|
{
|
|
var size = new Position.Size(config.Base.SurfaceSize, SOI);
|
|
var G = GravityVolume.GRAVITATIONAL_CONSTANT;
|
|
var gravity = new Gravity(G, bodyGravity == null ? 0 : bodyGravity.GetFalloffExponent(), bodyGravity == null ? 0 : bodyGravity.GetStandardGravitationalParameter() / G);
|
|
var parent = HeavenlyBody.FromString(config.Orbit.PrimaryBody);
|
|
var orbit = OrbitalHelper.KeplerCoordinatesFromOrbitModule(config.Orbit);
|
|
|
|
var hb = new HeavenlyBody(config.Name);
|
|
var planetoid = new Planet.Plantoid(size, gravity, body.transform.rotation, initialMotion._initAngularSpeed, parent, orbit);
|
|
|
|
Planet.mapping.Add(hb, planetoid);
|
|
}
|
|
}
|
|
}
|