state("MyLittlePonyZephyrHeights") {}

startup
{
	vars.Log = (Action<object>)(output => print("[A Zephyr Heights Mystery] " + output));
	vars.LastSceneName = null;
	vars.CurrentSceneName = null;
	Assembly.Load(File.ReadAllBytes(@"Components/asl-help")).CreateInstance("Unity");
	vars.Helper.LoadSceneManager = true;
	
}

init
{
	vars.Helper.Load();
}

update
{
	if (!vars.Helper.Loaded) return false;

	vars.Helper.Update();

	var name = vars.Helper.Scenes.Active.Name;
	if (name != null && name.Length > 0) {
		vars.LastSceneName = vars.CurrentSceneName;
		vars.CurrentSceneName = vars.Helper.Scenes.Active.Name;
	}
}

start
{
	return vars.LastSceneName == "MainMenu" && vars.CurrentSceneName == "LoadingScene";
}

split
{
	return vars.CurrentSceneName == "LoadingScene" && vars.LastSceneName != "LoadingScene";
}

isLoading
{
	return vars.CurrentSceneName == "LoadingScene";
}

exit
{
	vars.Helper.Reset();
}

shutdown
{
	vars.Helper.Reset();
}