mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2026-04-27 05:01:38 +00:00
better mp message boxes
This commit is contained in:
parent
d7acac9227
commit
a0d01656ab
5 changed files with 141 additions and 21 deletions
|
|
@ -117,13 +117,14 @@ class JoinServerGui extends GuiImage {
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// MarbleGame.canvas.setContent(new MultiplayerLoadingGui("Connecting"));
|
MarbleGame.canvas.setContent(new MPMessageGui("Please Wait", "Connecting"));
|
||||||
var failed = true;
|
var failed = true;
|
||||||
haxe.Timer.delay(() -> {
|
haxe.Timer.delay(() -> {
|
||||||
if (failed) {
|
if (MarbleGame.canvas.content is MPMessageGui) {
|
||||||
MarbleGame.canvas.setContent(new JoinServerGui());
|
var loadGui:MPMessageGui = cast MarbleGame.canvas.content;
|
||||||
MarbleGame.canvas.pushDialog(new MessageBoxOkDlg("Failed to connect to server. Please try again."));
|
if (loadGui != null) {
|
||||||
Net.disconnect();
|
loadGui.setTexts("Error", "Failed to connect to server");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, 15000);
|
}, 15000);
|
||||||
Net.joinServer(ourServerList[curSelection].name, "", () -> {
|
Net.joinServer(ourServerList[curSelection].name, "", () -> {
|
||||||
|
|
|
||||||
106
src/gui/MPMessageGui.hx
Normal file
106
src/gui/MPMessageGui.hx
Normal file
|
|
@ -0,0 +1,106 @@
|
||||||
|
package gui;
|
||||||
|
|
||||||
|
import net.Net;
|
||||||
|
import hxd.res.BitmapFont;
|
||||||
|
import src.ResourceLoader;
|
||||||
|
import h3d.Vector;
|
||||||
|
import src.MarbleGame;
|
||||||
|
import src.Util;
|
||||||
|
import src.Settings;
|
||||||
|
|
||||||
|
class MPMessageGui extends GuiImage {
|
||||||
|
public function new(titleText:String, msgText:String) {
|
||||||
|
function chooseBg() {
|
||||||
|
var rand = Math.random();
|
||||||
|
if (rand >= 0 && rand <= 0.244)
|
||||||
|
return ResourceLoader.getImage('data/ui/backgrounds/gold/${cast (Math.floor(Util.lerp(1, 12, Math.random())), Int)}.jpg');
|
||||||
|
if (rand > 0.244 && rand <= 0.816)
|
||||||
|
return ResourceLoader.getImage('data/ui/backgrounds/platinum/${cast (Math.floor(Util.lerp(1, 28, Math.random())), Int)}.jpg');
|
||||||
|
return ResourceLoader.getImage('data/ui/backgrounds/ultra/${cast (Math.floor(Util.lerp(1, 9, Math.random())), Int)}.jpg');
|
||||||
|
}
|
||||||
|
var img = chooseBg();
|
||||||
|
super(img.resource.toTile());
|
||||||
|
|
||||||
|
function loadButtonImages(path:String) {
|
||||||
|
var normal = ResourceLoader.getResource('${path}_n.png', ResourceLoader.getImage, this.imageResources).toTile();
|
||||||
|
var hover = ResourceLoader.getResource('${path}_h.png', ResourceLoader.getImage, this.imageResources).toTile();
|
||||||
|
var pressed = ResourceLoader.getResource('${path}_d.png', ResourceLoader.getImage, this.imageResources).toTile();
|
||||||
|
return [normal, hover, pressed];
|
||||||
|
}
|
||||||
|
|
||||||
|
var markerFelt32fontdata = ResourceLoader.getFileEntry("data/font/MarkerFelt.fnt");
|
||||||
|
var markerFelt32b = new BitmapFont(markerFelt32fontdata.entry);
|
||||||
|
@:privateAccess markerFelt32b.loader = ResourceLoader.loader;
|
||||||
|
var markerFelt48 = markerFelt32b.toSdfFont(cast 42 * Settings.uiScale, MultiChannel);
|
||||||
|
var markerFelt28 = markerFelt32b.toSdfFont(cast 26 * Settings.uiScale, MultiChannel);
|
||||||
|
|
||||||
|
this.horizSizing = Width;
|
||||||
|
this.vertSizing = Height;
|
||||||
|
this.position = new Vector(0, 0);
|
||||||
|
this.extent = new Vector(640, 480);
|
||||||
|
|
||||||
|
var container = new GuiControl();
|
||||||
|
container.horizSizing = Center;
|
||||||
|
container.vertSizing = Center;
|
||||||
|
container.position = new Vector(80, 60);
|
||||||
|
container.extent = new Vector(640, 480);
|
||||||
|
|
||||||
|
this.addChild(container);
|
||||||
|
|
||||||
|
var wnd = new GuiImage(ResourceLoader.getResource("data/ui/mp/window.png", ResourceLoader.getImage, this.imageResources).toTile());
|
||||||
|
wnd.position = new Vector(64, 91);
|
||||||
|
wnd.extent = new Vector(511, 297);
|
||||||
|
wnd.horizSizing = Center;
|
||||||
|
wnd.vertSizing = Center;
|
||||||
|
container.addChild(wnd);
|
||||||
|
|
||||||
|
var title = new GuiText(markerFelt48);
|
||||||
|
title.text.text = titleText;
|
||||||
|
title.text.textColor = 0xFFFFFF;
|
||||||
|
title.text.dropShadow = {
|
||||||
|
dx: 1,
|
||||||
|
dy: 1,
|
||||||
|
alpha: 0.5,
|
||||||
|
color: 0
|
||||||
|
};
|
||||||
|
title.horizSizing = Center;
|
||||||
|
title.position = new Vector(47, 26);
|
||||||
|
title.extent = new Vector(416, 14);
|
||||||
|
title.justify = Center;
|
||||||
|
wnd.addChild(title);
|
||||||
|
|
||||||
|
var msg = new GuiText(markerFelt28);
|
||||||
|
msg.text.text = msgText;
|
||||||
|
msg.text.textColor = 0xFFFFFF;
|
||||||
|
msg.text.dropShadow = {
|
||||||
|
dx: 1,
|
||||||
|
dy: 1,
|
||||||
|
alpha: 0.5,
|
||||||
|
color: 0
|
||||||
|
};
|
||||||
|
msg.horizSizing = Relative;
|
||||||
|
msg.vertSizing = Relative;
|
||||||
|
msg.position = new Vector(15, 136);
|
||||||
|
msg.extent = new Vector(483, 65);
|
||||||
|
msg.justify = Center;
|
||||||
|
wnd.addChild(msg);
|
||||||
|
|
||||||
|
var cancelBtn = new GuiButton(loadButtonImages('data/ui/mp/join/cancel'));
|
||||||
|
cancelBtn.position = new Vector(208, 210);
|
||||||
|
cancelBtn.extent = new Vector(94, 45);
|
||||||
|
cancelBtn.horizSizing = Center;
|
||||||
|
cancelBtn.vertSizing = Top;
|
||||||
|
cancelBtn.pressedAction = (e) -> {
|
||||||
|
Net.disconnect();
|
||||||
|
MarbleGame.canvas.setContent(new JoinServerGui());
|
||||||
|
}
|
||||||
|
wnd.addChild(cancelBtn);
|
||||||
|
|
||||||
|
setTexts = (t, m) -> {
|
||||||
|
title.text.text = t;
|
||||||
|
msg.text.text = m;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public dynamic function setTexts(titleText:String, msgText:String) {}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package net;
|
package net;
|
||||||
|
|
||||||
|
import gui.MPMessageGui;
|
||||||
import gui.JoinServerGui;
|
import gui.JoinServerGui;
|
||||||
import gui.MessageBoxOkDlg;
|
import gui.MessageBoxOkDlg;
|
||||||
import src.MarbleGame;
|
import src.MarbleGame;
|
||||||
|
|
@ -295,8 +296,12 @@ class MasterServerClient {
|
||||||
@:privateAccess Net.client.setRemoteDescription(sdpObj.sdp, sdpObj.type);
|
@:privateAccess Net.client.setRemoteDescription(sdpObj.sdp, sdpObj.type);
|
||||||
}
|
}
|
||||||
if (conts.type == "connectFailed") {
|
if (conts.type == "connectFailed") {
|
||||||
MarbleGame.canvas.setContent(new JoinServerGui());
|
if (MarbleGame.canvas.content is MPMessageGui) {
|
||||||
MarbleGame.canvas.pushDialog(new MessageBoxOkDlg(conts.reason));
|
var loadGui:MPMessageGui = cast MarbleGame.canvas.content;
|
||||||
|
if (loadGui != null) {
|
||||||
|
loadGui.setTexts("Error", conts.reason);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (conts.type == "turnserver") {
|
if (conts.type == "turnserver") {
|
||||||
Net.turnServer = conts.server; // Turn server!
|
Net.turnServer = conts.server; // Turn server!
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package net;
|
package net;
|
||||||
|
|
||||||
|
import gui.MPMessageGui;
|
||||||
import gui.MessageBoxOkDlg;
|
import gui.MessageBoxOkDlg;
|
||||||
import gui.JoinServerGui;
|
import gui.JoinServerGui;
|
||||||
import gui.MPPreGameDlg;
|
import gui.MPPreGameDlg;
|
||||||
|
|
@ -214,8 +215,14 @@ class Net {
|
||||||
MarbleGame.instance.quitMission();
|
MarbleGame.instance.quitMission();
|
||||||
}
|
}
|
||||||
if (!weLeftOurselves || forceShow) {
|
if (!weLeftOurselves || forceShow) {
|
||||||
MarbleGame.canvas.setContent(new JoinServerGui());
|
if (MarbleGame.canvas.content is MPMessageGui) {
|
||||||
MarbleGame.canvas.pushDialog(new MessageBoxOkDlg(msg));
|
var loadGui:MPMessageGui = cast MarbleGame.canvas.content;
|
||||||
|
if (loadGui != null) {
|
||||||
|
loadGui.setTexts("Error", msg);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
MarbleGame.canvas.setContent(new MPMessageGui("Error", msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -289,12 +296,12 @@ class Net {
|
||||||
}
|
}
|
||||||
openFlags |= idx;
|
openFlags |= idx;
|
||||||
if (openFlags == 3) {
|
if (openFlags == 3) {
|
||||||
// if (MarbleGame.canvas.content is MultiplayerLoadingGui) {
|
if (MarbleGame.canvas.content is MPMessageGui) {
|
||||||
// var loadGui:MultiplayerLoadingGui = cast MarbleGame.canvas.content;
|
var loadGui:MPMessageGui = cast MarbleGame.canvas.content;
|
||||||
// if (loadGui != null) {
|
if (loadGui != null) {
|
||||||
// loadGui.setLoadingStatus("Handshaking");
|
loadGui.setTexts("Please Wait", "Handshaking");
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
Console.log("Successfully connected!");
|
Console.log("Successfully connected!");
|
||||||
clients.set(client, new ClientConnection(0, client, clientDatachannel, clientDatachannelUnreliable)); // host is always 0
|
clients.set(client, new ClientConnection(0, client, clientDatachannel, clientDatachannelUnreliable)); // host is always 0
|
||||||
clientIdMap[0] = clients[client];
|
clientIdMap[0] = clients[client];
|
||||||
|
|
@ -420,8 +427,10 @@ class Net {
|
||||||
if (MarbleGame.instance.world != null) {
|
if (MarbleGame.instance.world != null) {
|
||||||
MarbleGame.instance.quitMission();
|
MarbleGame.instance.quitMission();
|
||||||
}
|
}
|
||||||
MarbleGame.canvas.setContent(new JoinServerGui());
|
if (!(MarbleGame.canvas.content is MPMessageGui)) {
|
||||||
MarbleGame.canvas.pushDialog(new MessageBoxOkDlg("Timed out"));
|
var loadGui = new MPMessageGui("Error", "Timed out");
|
||||||
|
MarbleGame.canvas.setContent(loadGui);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package net;
|
package net;
|
||||||
|
|
||||||
|
import gui.MPMessageGui;
|
||||||
import gui.MessageBoxOkDlg;
|
import gui.MessageBoxOkDlg;
|
||||||
import gui.JoinServerGui;
|
import gui.JoinServerGui;
|
||||||
import gui.MPExitGameDlg;
|
import gui.MPExitGameDlg;
|
||||||
|
|
@ -270,16 +271,14 @@ class NetCommands {
|
||||||
if (MarbleGame.instance.world != null) {
|
if (MarbleGame.instance.world != null) {
|
||||||
MarbleGame.instance.quitMission();
|
MarbleGame.instance.quitMission();
|
||||||
}
|
}
|
||||||
MarbleGame.canvas.setContent(new JoinServerGui());
|
MarbleGame.canvas.setContent(new MPMessageGui("Info", "Server closed"));
|
||||||
MarbleGame.canvas.pushDialog(new MessageBoxOkDlg("Server closed"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@:rpc(server) public static function getKicked() {
|
@:rpc(server) public static function getKicked() {
|
||||||
if (Net.isClient) {
|
if (Net.isClient) {
|
||||||
Net.disconnect();
|
Net.disconnect();
|
||||||
MarbleGame.canvas.setContent(new JoinServerGui());
|
MarbleGame.canvas.setContent(new MPMessageGui("Info", "You have been kicked from the server"));
|
||||||
MarbleGame.canvas.pushDialog(new MessageBoxOkDlg("Kicked from server"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue