diff --git a/Templates/BaseGame/game/core/core.module b/Templates/BaseGame/game/core/core.module new file mode 100644 index 000000000..5318ce1f3 --- /dev/null +++ b/Templates/BaseGame/game/core/core.module @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/Templates/BaseGame/game/core/core.tscript b/Templates/BaseGame/game/core/core.tscript new file mode 100644 index 000000000..07122e787 --- /dev/null +++ b/Templates/BaseGame/game/core/core.tscript @@ -0,0 +1,86 @@ + +function CoreModule::onCreate(%this) +{ + // ---------------------------------------------------------------------------- + // Initialize core sub system functionality such as audio, the Canvas, PostFX, + // rendermanager, light managers, etc. + // + // Note that not all of these need to be initialized before the client, although + // the audio should and the canvas definitely needs to be. I've put things here + // to distinguish between the purpose and functionality of the various client + // scripts. Game specific script isn't needed until we reach the shell menus + // and start a game or connect to a server. We get the various subsystems ready + // to go, and then use initClient() to handle the rest of the startup sequence. + // + // If this is too convoluted we can reduce this complexity after futher testing + // to find exactly which subsystems should be readied before kicking things off. + // ---------------------------------------------------------------------------- + + new Settings(ProjectSettings) { file = "core/settings.xml"; }; + ProjectSettings.read(); + + ModuleDatabase.LoadExplicit( "Core_Rendering" ); + ModuleDatabase.LoadExplicit( "Core_Utility" ); + ModuleDatabase.LoadExplicit( "Core_GUI" ); + ModuleDatabase.LoadExplicit( "Core_Lighting" ); + ModuleDatabase.LoadExplicit( "Core_SFX" ); + ModuleDatabase.LoadExplicit( "Core_PostFX" ); + ModuleDatabase.LoadExplicit( "Core_GameObjects" ); + + exec("data/defaults." @ $TorqueScriptFileExtension); + %prefPath = getPrefpath(); + if ( isFile( %prefPath @ "/clientPrefs." @ $TorqueScriptFileExtension ) ) + exec( %prefPath @ "/clientPrefs." @ $TorqueScriptFileExtension ); + + // Seed the random number generator. + setRandomSeed(); + + // Parse the command line arguments + echo("\n--------- Parsing Arguments ---------"); + parseArgs(); + + // The canvas needs to be initialized before any gui scripts are run since + // some of the controls assume that the canvas exists at load time. + createCanvas($appName); + + //load canvas + //exec("./console/main." @ $TorqueScriptFileExtension); + + ModuleDatabase.LoadExplicit( "Core_Console" ); + + // Init the physics plugin. + physicsInit(); + + sfxStartup(); + + // Set up networking. + setNetPort(0); + + // Start processing file change events. + startFileChangeNotifications(); + + // If we have editors, initialize them here as well + if (isToolBuild()) + { + if(isFile("tools/main." @ $TorqueScriptFileExtension) && !$isDedicated) + exec("tools/main." @ $TorqueScriptFileExtension); + } + + //This is used to build the remap keybind sets for the different actionMaps. + $RemapCount = 0; +} + +function CoreModule::onDestroy(%this) +{ + +} + +//----------------------------------------------------------------------------- +// Called when the engine is shutting down. +function onExit() +{ + // Stop file change events. + stopFileChangeNotifications(); + + ModuleDatabase.UnloadExplicit( "Game" ); +} \ No newline at end of file diff --git a/Templates/BaseGame/game/tools/tools.module b/Templates/BaseGame/game/tools/tools.module new file mode 100644 index 000000000..f680e3e03 --- /dev/null +++ b/Templates/BaseGame/game/tools/tools.module @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/Templates/BaseGame/game/tools/tools.tscript b/Templates/BaseGame/game/tools/tools.tscript new file mode 100644 index 000000000..c9e0e01f5 --- /dev/null +++ b/Templates/BaseGame/game/tools/tools.tscript @@ -0,0 +1,26 @@ + +function ToolsModule::onCreate(%this) +{ + // ---------------------------------------------------------------------------- + // Initialize core sub system functionality such as audio, the Canvas, PostFX, + // rendermanager, light managers, etc. + // + // Note that not all of these need to be initialized before the client, although + // the audio should and the canvas definitely needs to be. I've put things here + // to distinguish between the purpose and functionality of the various client + // scripts. Game specific script isn't needed until we reach the shell menus + // and start a game or connect to a server. We get the various subsystems ready + // to go, and then use initClient() to handle the rest of the startup sequence. + // + // If this is too convoluted we can reduce this complexity after futher testing + // to find exactly which subsystems should be readied before kicking things off. + // ---------------------------------------------------------------------------- + + //ModuleDatabase.LoadExplicit( "MainEditor" ); + //ModuleDatabase.LoadExplicit( "Tools_ObjectViewer" ); +} + +function ToolsModule::onDestroy(%this) +{ + +} \ No newline at end of file