mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-17 05:33:47 +00:00
Have initServer only get called when a server is actually started for the first time Added utility method callGamemodeFunction to streamline exec'ing of gamemode function calls Added onClientConnect gamemode function, called when the client establishes the connection Added onInitialControlSet gamemode function, called when the client actively gains control in the game, to allow gamemodes to special override GUI settings or input commands Cleaned up init'ng of the engine so stock UI module isn't required to trip configuration of the canvas Added fallback so if nothing set the main content control for the UI after boot, we attempt to set the defined mainMenuGUI, on the chance nothing explicitly sets it on load
89 lines
No EOL
2.4 KiB
C#
89 lines
No EOL
2.4 KiB
C#
|
|
// 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 )
|
|
{
|
|
}
|
|
|
|
function UI::onDestroy( %this )
|
|
{
|
|
}
|
|
|
|
function UI::initServer(%this){}
|
|
|
|
function UI::onCreateGameServer(%this){}
|
|
|
|
function UI::onDestroyGameServer(%this){}
|
|
|
|
function UI::initClient(%this)
|
|
{
|
|
//Load UI stuff
|
|
//we need to load this because some of the menu profiles use the sounds here
|
|
exec("./datablocks/guiSounds.cs");
|
|
|
|
//Profiles
|
|
exec("./scripts/profiles.cs");
|
|
|
|
//Now gui files
|
|
exec("./guis/mainMenu.gui");
|
|
exec("./guis/mainMenu.cs");
|
|
|
|
exec("./guis/chooseLevelDlg.gui");
|
|
exec("./guis/chooseLevelDlg.cs");
|
|
|
|
exec("./guis/joinServerMenu.gui");
|
|
exec("./guis/joinServerMenu.cs");
|
|
|
|
exec("./guis/loadingGui.gui");
|
|
|
|
exec("./guis/optionsMenu.gui");
|
|
exec("./guis/optionsMenu.cs");
|
|
|
|
exec("./guis/pauseMenu.gui");
|
|
exec("./guis/pauseMenu.cs");
|
|
|
|
exec("./guis/remapDlg.gui");
|
|
exec("./guis/remapConfirmDlg.gui");
|
|
|
|
exec("./guis/profiler.gui");
|
|
exec("./guis/profiler.cs");
|
|
|
|
exec("./guis/netGraphGui.gui");
|
|
exec("./guis/RecordingsDlg.gui");
|
|
|
|
//exec("./guis/FileDialog.gui");
|
|
//exec("./guis/FileDialog.cs");
|
|
|
|
exec("./guis/guiMusicPlayer.gui");
|
|
exec("./guis/guiMusicPlayer.cs");
|
|
|
|
exec("./guis/startupGui.gui");
|
|
exec("./guis/startupGui.cs");
|
|
|
|
//Load scripts
|
|
exec("./scripts/optionsList.cs");
|
|
exec("./scripts/graphicsMenu.cs");
|
|
exec("./scripts/controlsMenu.cs");
|
|
exec("./scripts/messageBoxes.cs");
|
|
exec("./scripts/help.cs");
|
|
exec("./scripts/cursors.cs");
|
|
|
|
//exec("./scripts/GuiTreeViewCtrl.cs");
|
|
|
|
loadStartup();
|
|
}
|
|
|
|
function UI::onCreateClientConnection(%this){}
|
|
|
|
function UI::onDestroyClientConnection(%this){} |