Torque3D/Templates/BaseGame/game/data/UI/UI.tscript
2025-12-20 18:13:01 -07:00

102 lines
2.9 KiB
Plaintext

// The general flow of a gane - server's creation, loading and hosting clients, and then destruction is as follows:
// First, a client will always create a server in the event that they want to host a single player
// game. Torque3D treats even single player connections as a soft multiplayer game, with some stuff
// in the networking short-circuited to sidestep around lag and packet transmission times.
// initServer() is called, loading the default server scripts.
// After that, if this is a dedicated server session, initDedicated() is called, otherwise initClient is called
// to prep a playable client session.
// When a local game is started - a listen server - via calling StartGame() a server is created and then the client is
// connected to it via createAndConnectToLocalServer().
function UI::onCreate( %this )
{
exec("./scripts/utility");
// create and set as core a defaultTable LanguageTable for localization purposes
// example usage for quick language appending
// addLanguage("defaultTable","check","ch");
// addLanguage("defaultTable","try","tr");
createLangTable("defaultTable");
setCoreLangTable("defaultTable");
if(isFile("./langs/languageMap"))
exec("./langs/languageMap");
}
function UI::onDestroy( %this )
{
}
function UI::initServer(%this){}
function UI::onCreateGameServer(%this){}
function UI::onDestroyGameServer(%this){}
function UI::initClient(%this)
{
//Load UI stuff
//Profiles
%this.queueExec("./scripts/profiles");
%this.queueExec("./guis/mainMenu");
%this.queueExec("./guis/mainMenu.gui");
%this.queueExec("./guis/ChooseLevelMenu");
%this.queueExec("./guis/ChooseLevelMenu.gui");
%this.queueExec("./guis/joinServerMenu");
%this.queueExec("./guis/joinServerMenu.gui");
%this.queueExec("./guis/loadingGui.gui");
%this.queueExec("./guis/optionsMenu");
%this.queueExec("./guis/optionsMenu.gui");
%this.queueExec("./guis/GameMenu");
%this.queueExec("./guis/GameMenu.gui");
%this.queueExec("./guis/remapDlg");
%this.queueExec("./guis/remapDlg.gui");
%this.queueExec("./guis/profiler");
%this.queueExec("./guis/profiler.gui");
%this.queueExec("./guis/netGraphGui.gui");
%this.queueExec("./guis/startupGui");
%this.queueExec("./guis/startupGui.gui");
%this.queueExec("./guis/messageBoxDlg");
%this.queueExec("./guis/messageBoxDlg.gui");
%this.queueExec("./guis/SystemMenu");
%this.queueExec("./guis/SystemMenu.gui");
//Load scripts
%this.queueExec("./scripts/cursors");
if(isToolBuild())
%this.queueExec("./tools/creator.tscript");
//GameMenu actionmap
%this.queueExec("./scripts/defaultKeybinds.tscript");
}
function UI::onCreateClientConnection(%this)
{
GameMenuToggleActionMap.push();
}
function UI::onDestroyClientConnection(%this)
{
GameMenuToggleActionMap.pop();
}
function UI::registerGameMenus(%this, %menusArrayObj)
{
%menusArrayObj.add("System", SystemMenu);
}