public interface INewHorizons
[Obsolete("Create(Dictionary<string, object> config) is deprecated, please use LoadConfigs(IModBehaviour mod) instead")]
void Create(Dictionary<string, object> config);
[Obsolete("Create(Dictionary<string, object> config) is deprecated, please use LoadConfigs(IModBehaviour mod) instead")]
void Create(Dictionary<string, object> config, IModBehaviour mod);
/// Will load all configs in the regular folders (planets, systems, translations, etc) for this mod.
/// The NH addon config template is just a single call to this API method.
void LoadConfigs(IModBehaviour mod);
/// Retrieve the root GameObject of a custom planet made by creating configs.
/// Will only work if the planet has been created (see GetStarSystemLoadedEvent)
GameObject GetPlanet(string name);
/// The name of the current star system loaded.
string GetCurrentStarSystem();
/// An event invoked when the player begins loading the new star system, before the scene starts to load.
/// Gives the name of the star system being switched to.
UnityEvent<string> GetChangeStarSystemEvent();
/// An event invoked when NH has finished generating all planets for a new star system.
/// Gives the name of the star system that was just loaded.
UnityEvent<string> GetStarSystemLoadedEvent();
/// An event invoked when NH has finished a planet for a star system.
/// Gives the name of the planet that was just loaded.
UnityEvent<string> GetBodyLoadedEvent();
/// Uses JSONPath to query a body
object QueryBody(Type outType, string bodyName, string path);
/// Uses JSONPath to query a body
T QueryBody<T>(string bodyName, string path);
/// Uses JSONPath to query the current star system
object QuerySystem(Type outType, string path);
/// Uses JSONPath to query the current star system
T QuerySystem<T>(string path);
/// Allows you to overwrite the default system. This is where the player is respawned after dying.
bool SetDefaultSystem(string name);
/// Allows you to instantly begin a warp to a new star system.
/// Will return false if that system does not exist (cannot be warped to).
bool ChangeCurrentStarSystem(string name);
/// Returns the uniqueIDs of each installed NH addon.
string[] GetInstalledAddons();
/// Allows you to spawn a copy of a prop by specifying its path.
/// This is the same as using Props->details in a config, but also returns the spawned gameObject to you.
GameObject SpawnObject(GameObject planet, Sector sector, string propToCopyPath, Vector3 position, Vector3 eulerAngles,
float scale, bool alignWithNormal);
/// Allows you to spawn an AudioSignal on a planet.
/// This is the same as using Props->signals in a config, but also returns the spawned AudioSignal to you.
/// This method will not set its position. You will have to do that with the returned object.
AudioSignal SpawnSignal(IModBehaviour mod, GameObject root, string audio, string name, string frequency,
float sourceRadius = 1f, float detectionRadius = 20f, float identificationRadius = 10f, bool insideCloak = false,
bool onlyAudibleToScope = true, string reveals = "");
/// Allows you to spawn character dialogue on a planet. Also returns the RemoteDialogueTrigger if remoteTriggerRadius is specified.
/// This is the same as using Props->dialogue in a config, but also returns the spawned game objects to you.
/// This method will not set the position of the dialogue or remote trigger. You will have to do that with the returned objects.
(CharacterDialogueTree, RemoteDialogueTrigger) SpawnDialogue(IModBehaviour mod, GameObject root, string xmlFile, float radius = 1f,
float range = 1f, string blockAfterPersistentCondition = null, float lookAtRadius = 1f, string pathToAnimController = null,
float remoteTriggerRadius = 0f);