mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-11-27 17:33:03 +00:00
move ngPrompt to new file
This commit is contained in:
parent
e6b9ec2100
commit
3936f739b2
|
@ -17,8 +17,13 @@ import flixel.util.FlxColor;
|
||||||
import flixel.util.FlxTimer;
|
import flixel.util.FlxTimer;
|
||||||
import lime.app.Application;
|
import lime.app.Application;
|
||||||
|
|
||||||
|
#if newgrounds
|
||||||
|
import io.newgrounds.NG;
|
||||||
|
#end
|
||||||
|
|
||||||
import ui.MenuItemList;
|
import ui.MenuItemList;
|
||||||
import ui.Prompt;
|
import ui.Prompt;
|
||||||
|
import ui.NgPrompt;
|
||||||
|
|
||||||
using StringTools;
|
using StringTools;
|
||||||
|
|
||||||
|
@ -141,118 +146,38 @@ class MainMenuState extends MusicBeatState
|
||||||
#if newgrounds
|
#if newgrounds
|
||||||
function selectLogin()
|
function selectLogin()
|
||||||
{
|
{
|
||||||
showNgPrompt(true);
|
openPrompt(NgPrompt.showLogin(),
|
||||||
}
|
function onPromptClose() menuItems.resetItem("login", "logout", selectLogout)
|
||||||
|
|
||||||
function showSavedSessionFailed()
|
|
||||||
{
|
|
||||||
showNgPrompt(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
function showNgPrompt(fromUi:Bool)
|
|
||||||
{
|
|
||||||
var prompt = createNGPrompt("Talking to server...", None);
|
|
||||||
openSubState(prompt);
|
|
||||||
function onLoginComplete(result:ConnectionResult)
|
|
||||||
{
|
|
||||||
switch (result)
|
|
||||||
{
|
|
||||||
case Success:
|
|
||||||
{
|
|
||||||
menuItems.resetItem("login", "logout", selectLogout);
|
|
||||||
prompt.setText("Login Successful");
|
|
||||||
prompt.setButtons(Ok);
|
|
||||||
prompt.onYes = prompt.close;
|
|
||||||
}
|
|
||||||
case Fail(msg):
|
|
||||||
{
|
|
||||||
trace("Login Error:" + msg);
|
|
||||||
prompt.setText("Login failed");
|
|
||||||
prompt.setButtons(Ok);
|
|
||||||
prompt.onYes = prompt.close;
|
|
||||||
}
|
|
||||||
case Cancelled:
|
|
||||||
{
|
|
||||||
if (prompt != null)
|
|
||||||
{
|
|
||||||
prompt.setText("Login cancelled by user");
|
|
||||||
prompt.setButtons(Ok);
|
|
||||||
prompt.onYes = prompt.close;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
trace("Login cancelled via prompt");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NGio.login
|
|
||||||
(
|
|
||||||
function popupLauncher(openPassportUrl)
|
|
||||||
{
|
|
||||||
var choiceMsg = fromUi
|
|
||||||
? #if web "Log in to Newgrounds?" #else null #end // User-input needed to allow popups
|
|
||||||
: "Your session has expired.\n Please login again.";
|
|
||||||
|
|
||||||
if (choiceMsg != null)
|
|
||||||
{
|
|
||||||
prompt.setText(choiceMsg);
|
|
||||||
prompt.setButtons(Yes_No);
|
|
||||||
#if web
|
|
||||||
prompt.buttons.getItem("yes").fireInstantly = true;
|
|
||||||
#end
|
|
||||||
prompt.onYes = function()
|
|
||||||
{
|
|
||||||
prompt.setText("Connecting..." #if web + "\n(check your popup blocker)" #end);
|
|
||||||
prompt.setButtons(None);
|
|
||||||
openPassportUrl();
|
|
||||||
};
|
|
||||||
prompt.onNo = function()
|
|
||||||
{
|
|
||||||
prompt.close();
|
|
||||||
prompt = null;
|
|
||||||
NGio.cancelLogin();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
prompt.setText("Connecting...");
|
|
||||||
openPassportUrl();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onLoginComplete
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectLogout()
|
function selectLogout()
|
||||||
{
|
{
|
||||||
var user = io.newgrounds.NG.core.user.name;
|
openPrompt(NgPrompt.showLogout(),
|
||||||
var prompt = createNGPrompt('Log out of $user?', Yes_No);
|
function onPromptClose() menuItems.resetItem("logout", "login", selectLogin)
|
||||||
prompt.onYes = function()
|
);
|
||||||
{
|
|
||||||
NGio.logout();
|
|
||||||
prompt.close();
|
|
||||||
menuItems.resetItem("logout", "login", selectLogin);
|
|
||||||
};
|
|
||||||
prompt.onNo = prompt.close;
|
|
||||||
openSubState(prompt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createNGPrompt(text:String, style:ButtonStyle = Yes_No)
|
function showSavedSessionFailed()
|
||||||
{
|
{
|
||||||
var oldAutoPause = FlxG.autoPause;
|
openPrompt(NgPrompt.showSavedSessionFailed(),
|
||||||
FlxG.autoPause = false;
|
function onPromptClose() menuItems.resetItem("login", "logout", selectLogout)
|
||||||
menuItems.enabled = false;
|
);
|
||||||
|
}
|
||||||
|
#end
|
||||||
|
|
||||||
var prompt = new Prompt("prompt-ng_login", text, style);
|
public function openPrompt(prompt:Prompt, onClose:Void->Void)
|
||||||
|
{
|
||||||
|
menuItems.enabled = false;
|
||||||
prompt.closeCallback = function ()
|
prompt.closeCallback = function ()
|
||||||
{
|
{
|
||||||
menuItems.enabled = true;
|
menuItems.enabled = true;
|
||||||
FlxG.autoPause = oldAutoPause;
|
if (onClose != null)
|
||||||
|
onClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
return prompt;
|
openSubState(prompt);
|
||||||
}
|
}
|
||||||
#end
|
|
||||||
|
|
||||||
function startExitState(state:FlxState)
|
function startExitState(state:FlxState)
|
||||||
{
|
{
|
||||||
|
@ -286,7 +211,6 @@ class MainMenuState extends MusicBeatState
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private class MainMenuItemList extends MenuTypedItemList<MainMenuItem>
|
private class MainMenuItemList extends MenuTypedItemList<MainMenuItem>
|
||||||
{
|
{
|
||||||
public var atlas:FlxAtlasFrames;
|
public var atlas:FlxAtlasFrames;
|
||||||
|
|
107
source/ui/NgPrompt.hx
Normal file
107
source/ui/NgPrompt.hx
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
package ui;
|
||||||
|
|
||||||
|
import NGio;
|
||||||
|
import ui.Prompt;
|
||||||
|
|
||||||
|
class NgPrompt extends Prompt
|
||||||
|
{
|
||||||
|
public function new (text:String, style:ButtonStyle = Yes_No)
|
||||||
|
{
|
||||||
|
super("prompt-ng_login", text, style);
|
||||||
|
}
|
||||||
|
|
||||||
|
static public function showLogin()
|
||||||
|
{
|
||||||
|
return showLoginPrompt(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static public function showSavedSessionFailed()
|
||||||
|
{
|
||||||
|
return showLoginPrompt(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function showLoginPrompt(fromUi:Bool)
|
||||||
|
{
|
||||||
|
var prompt = new NgPrompt("Talking to server...", None);
|
||||||
|
prompt.openCallback = NGio.login.bind
|
||||||
|
(
|
||||||
|
function popupLauncher(openPassportUrl)
|
||||||
|
{
|
||||||
|
var choiceMsg = fromUi
|
||||||
|
? #if web "Log in to Newgrounds?" #else null #end // User-input needed to allow popups
|
||||||
|
: "Your session has expired.\n Please login again.";
|
||||||
|
|
||||||
|
if (choiceMsg != null)
|
||||||
|
{
|
||||||
|
prompt.setText(choiceMsg);
|
||||||
|
prompt.setButtons(Yes_No);
|
||||||
|
#if web
|
||||||
|
prompt.buttons.getItem("yes").fireInstantly = true;
|
||||||
|
#end
|
||||||
|
prompt.onYes = function()
|
||||||
|
{
|
||||||
|
prompt.setText("Connecting..." #if web + "\n(check your popup blocker)" #end);
|
||||||
|
prompt.setButtons(None);
|
||||||
|
openPassportUrl();
|
||||||
|
};
|
||||||
|
prompt.onNo = function()
|
||||||
|
{
|
||||||
|
prompt.close();
|
||||||
|
prompt = null;
|
||||||
|
NGio.cancelLogin();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
prompt.setText("Connecting...");
|
||||||
|
openPassportUrl();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
function onLoginComplete(result:ConnectionResult)
|
||||||
|
{
|
||||||
|
switch (result)
|
||||||
|
{
|
||||||
|
case Success:
|
||||||
|
{
|
||||||
|
prompt.setText("Login Successful");
|
||||||
|
prompt.setButtons(Ok);
|
||||||
|
prompt.onYes = prompt.close;
|
||||||
|
}
|
||||||
|
case Fail(msg):
|
||||||
|
{
|
||||||
|
trace("Login Error:" + msg);
|
||||||
|
prompt.setText("Login failed");
|
||||||
|
prompt.setButtons(Ok);
|
||||||
|
prompt.onYes = prompt.close;
|
||||||
|
}
|
||||||
|
case Cancelled:
|
||||||
|
{
|
||||||
|
if (prompt != null)
|
||||||
|
{
|
||||||
|
prompt.setText("Login cancelled by user");
|
||||||
|
prompt.setButtons(Ok);
|
||||||
|
prompt.onYes = prompt.close;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
trace("Login cancelled via prompt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return prompt;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public function showLogout()
|
||||||
|
{
|
||||||
|
var user = io.newgrounds.NG.core.user.name;
|
||||||
|
var prompt = new NgPrompt('Log out of $user?', Yes_No);
|
||||||
|
prompt.onYes = function()
|
||||||
|
{
|
||||||
|
NGio.logout();
|
||||||
|
prompt.close();
|
||||||
|
};
|
||||||
|
prompt.onNo = prompt.close;
|
||||||
|
return prompt;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue