82 lines
2 KiB
C#
82 lines
2 KiB
C#
using System;
|
|
|
|
using UnityEngine;
|
|
|
|
using GamecraftModdingAPI.Utility;
|
|
|
|
namespace GamecraftModdingAPI.App
|
|
{
|
|
/// <summary>
|
|
/// The Gamecraft application that is running this code right now.
|
|
/// </summary>
|
|
public class Client
|
|
{
|
|
// extensible engine
|
|
protected static AppEngine appEngine = new AppEngine();
|
|
|
|
/// <summary>
|
|
/// An event that fires whenever the main menu is loaded.
|
|
/// </summary>
|
|
public static event EventHandler<MenuEventArgs> EnterMenu
|
|
{
|
|
add => appEngine.EnterMenu += value;
|
|
remove => appEngine.EnterMenu -= value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// An event that fire whenever the main menu is exited.
|
|
/// </summary>
|
|
public static event EventHandler<MenuEventArgs> ExitMenu
|
|
{
|
|
add => appEngine.ExitMenu += value;
|
|
remove => appEngine.ExitMenu -= value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gamecraft build version string.
|
|
/// Usually this is in the form YYYY.mm.DD.HH.MM.SS
|
|
/// </summary>
|
|
/// <value>The version.</value>
|
|
public string Version
|
|
{
|
|
get => Application.version;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Unity version string.
|
|
/// </summary>
|
|
/// <value>The unity version.</value>
|
|
public string UnityVersion
|
|
{
|
|
get => Application.unityVersion;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Game saves currently visible in the menu.
|
|
/// These take a second to completely populate after the EnterMenu event fires.
|
|
/// </summary>
|
|
/// <value>My games.</value>
|
|
public Game[] MyGames
|
|
{
|
|
get
|
|
{
|
|
if (!appEngine.IsInMenu) return new Game[0];
|
|
return appEngine.GetMyGames();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Whether Gamecraft is in the Main Menu
|
|
/// </summary>
|
|
/// <value><c>true</c> if in menu; <c>false</c> when loading or in a game.</value>
|
|
public bool InMenu
|
|
{
|
|
get => appEngine.IsInMenu;
|
|
}
|
|
|
|
internal static void Init()
|
|
{
|
|
MenuEngineManager.AddMenuEngine(appEngine);
|
|
}
|
|
}
|
|
}
|