Bläddra i källkod

Changed findModule default version value to 1 to match default module version number
Added running of onCreateGameServer and onDestoyGameServer callOnModules for core modules as well to enable default datablock stuffs
Added default datablocks, materials and shaders for some base required objects such as spawn markers, ribbon particles and the like.
Includes ExampleModule to act as a template/documentation case for how modules should be set up
Includes GameUI module so there's a PlayGUI gui object by default.

Areloch 6 år sedan
förälder
incheckning
07b8619bf3

+ 3 - 3
Engine/source/module/moduleManager_ScriptBinding.h

@@ -1,4 +1,4 @@
-//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 // Copyright (c) 2013 GarageGames, LLC
 //
 // Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -115,7 +115,7 @@ DefineEngineMethod(ModuleManager, unloadExplicit, bool, (const char* pModuleId),
 
 //-----------------------------------------------------------------------------
 
-DefineEngineMethod(ModuleManager, findModule, String, (const char* pModuleId, U32 pVersionId), ("", 0),
+DefineEngineMethod(ModuleManager, findModule, String, (const char* pModuleId, U32 pVersionId), ("", 1),
    "Find the specific module Id optionally at the specified version Id.\n"
    "@param moduleId The module Id to find.\n"
    "@param versionId The version Id to find.\n"
@@ -386,4 +386,4 @@ DefineEngineMethod(ModuleManager, ignoreLoadedGroups, void, (bool doIgnore), (fa
 {
    // Check whether the merge modules can current happen or not.
    return object->setIgnoreLoadedGroups(doIgnore);
-}
+}

+ 3 - 2
Templates/BaseGame/game/core/clientServer/scripts/server/server.cs

@@ -164,7 +164,8 @@ function createServer(%serverType, %level)
          schedule(0,0,startHeartbeat);
    }
    
-   callOnModules("onCreateServer", "Game");
+   callOnModules("onCreateGameServer", "Core");
+   callOnModules("onCreateGameServer", "Game");
    
    // Let the game initialize some things now that the
    // the server has been created
@@ -240,7 +241,7 @@ function destroyServer()
    deleteDataBlocks();
    
    //Get our modules so we can exec any specific server-side loading/handling
-   callOnModules("onDestroyServer", "Game");
+   callOnModules("onDestroyGameServer", "Game");
    
    // Save any server settings
    %prefPath = getPrefpath();

+ 25 - 0
Templates/BaseGame/game/core/gameObjects/Core_GameObjects.cs

@@ -4,4 +4,29 @@ function Core_GameObjects::onCreate(%this)
 
 function Core_GameObjects::onDestroy(%this)
 {
+}
+
+function Core_GameObjects::initServer( %this )
+{
+}
+
+function Core_GameObjects::onCreateGameServer(%this)
+{
+   %this.registerDatablock("./datablocks/defaultDatablocks.cs");
+}
+
+function Core_GameObjects::onDestroyGameServer(%this)
+{
+}
+
+function Core_GameObjects::initClient( %this )
+{
+}
+
+function Core_GameObjects::onCreateClientConnection(%this)
+{
+}
+
+function Core_GameObjects::onDestroyClientConnection(%this)
+{
 }

+ 35 - 0
Templates/BaseGame/game/core/utility/scripts/module.cs

@@ -56,4 +56,39 @@ function loadModuleMaterials(%moduleGroup)
          exec( %file );
       }
    }
+}
+
+function SimSet::getModulePath(%scopeSet)
+{
+   %name = %scopeSet.getName();
+   %moduleDef = ModuleDatabase.findModule(%name);
+     
+   if(isObject(%moduleDef))
+      return %moduleDef.ModulePath;
+   
+   return "";
+}
+
+function SimSet::registerDatablock(%scopeSet, %datablockFilePath)
+{
+   %name = %scopeSet.getName();
+   %moduleDef = ModuleDatabase.findModule(%name);
+     
+   if(!isObject(%moduleDef))
+   {
+      error("Module::registerDatablock() - unable to find a module with the moduleID of " @ %name);
+      return;
+   }
+   
+   if(!isObject(DatablockFilesList))
+   {
+      error("Module::registerDatablock() - DatablockFilesList array object doesn't exist!");
+      return;
+   }
+   
+   %relativePath = makeRelativePath(%datablockFilePath);
+   
+   %fullPath = pathConcat(%moduleDef.ModulePath, %relativePath);
+   
+   DatablockFilesList.add(%fullPath);
 }

+ 138 - 138
Templates/BaseGame/game/tools/settings.xml

@@ -1,187 +1,187 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <EditorSettings>
-    <Group name="RiverEditor">
-        <Setting name="HoverNodeColor">255 255 255 255</Setting>
-        <Setting name="DefaultWidth">10</Setting>
-        <Setting name="DefaultDepth">5</Setting>
-        <Setting name="SelectedSplineColor">0 255 0 255</Setting>
-        <Setting name="DefaultNormal">0 0 1</Setting>
-        <Setting name="HoverSplineColor">255 0 0 255</Setting>
-    </Group>
-    <Group name="GuiEditor">
-        <Setting name="previewResolution">1024 768</Setting>
-        <Setting name="lastPath">tools/gui</Setting>
-        <Group name="Selection">
-            <Setting name="fullBox">0</Setting>
-        </Group>
-        <Group name="EngineDevelopment">
-            <Setting name="showEditorProfiles">0</Setting>
-            <Setting name="showEditorGuis">0</Setting>
-            <Setting name="toggleIntoEditor">0</Setting>
-        </Group>
-        <Group name="Snapping">
-            <Setting name="snapToCenters">1</Setting>
-            <Setting name="snap2Grid">0</Setting>
-            <Setting name="snap2GridSize">8</Setting>
-            <Setting name="snapToGuides">1</Setting>
-            <Setting name="snapToEdges">1</Setting>
-            <Setting name="snapToControls">1</Setting>
-            <Setting name="snapToCanvas">1</Setting>
-            <Setting name="sensitivity">2</Setting>
+    <Group name="LevelInformation">
+        <Setting name="levelsDirectory">data/FPSGameplay/levels</Setting>
+        <Group name="levels">
+            <Group name="PbrMatTest.mis">
+                <Setting name="cameraSpeed">5</Setting>
+            </Group>
+            <Group name="BlankRoom.mis">
+                <Setting name="cameraSpeed">25</Setting>
+            </Group>
         </Group>
-        <Group name="Help">
-            <Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
-            <Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
-            <Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
+    </Group>
+    <Group name="AxisGizmo">
+        <Setting name="rotationSnap">15</Setting>
+        <Setting name="mouseScaleScalar">0.8</Setting>
+        <Setting name="renderWhenUsed">0</Setting>
+        <Setting name="snapRotations">0</Setting>
+        <Setting name="mouseRotateScalar">0.8</Setting>
+        <Setting name="renderInfoText">1</Setting>
+        <Setting name="axisGizmoMaxScreenLen">100</Setting>
+        <Group name="Grid">
+            <Setting name="gridColor">255 255 255 20</Setting>
+            <Setting name="snapToGrid">0</Setting>
+            <Setting name="planeDim">500</Setting>
+            <Setting name="renderPlane">0</Setting>
+            <Setting name="gridSize">10 10 10</Setting>
+            <Setting name="renderPlaneHashes">0</Setting>
         </Group>
-        <Group name="Rendering">
-            <Setting name="drawBorderLines">1</Setting>
-            <Setting name="drawGuides">1</Setting>
+    </Group>
+    <Group name="TerrainEditor">
+        <Setting name="currentAction">lowerHeight</Setting>
+        <Group name="Brush">
+            <Setting name="brushSoftness">1</Setting>
+            <Setting name="brushType">ellipse</Setting>
+            <Setting name="maxBrushSize">40 40</Setting>
+            <Setting name="brushPressure">1</Setting>
+            <Setting name="brushSize">40 40</Setting>
         </Group>
-        <Group name="Library">
-            <Setting name="viewType">Categorized</Setting>
+        <Group name="ActionValues">
+            <Setting name="noiseFactor">1</Setting>
+            <Setting name="adjustHeightVal">10</Setting>
+            <Setting name="SlopeMinAngle">0</Setting>
+            <Setting name="SlopeMaxAngle">90</Setting>
+            <Setting name="softSelectDefaultFilter">1.000000 0.833333 0.666667 0.500000 0.333333 0.166667 0.000000</Setting>
+            <Setting name="softSelectFilter">1.000000 0.833333 0.666667 0.500000 0.333333 0.166667 0.000000</Setting>
+            <Setting name="smoothFactor">0.1</Setting>
+            <Setting name="scaleVal">1</Setting>
+            <Setting name="softSelectRadius">50</Setting>
+            <Setting name="setHeightVal">100</Setting>
         </Group>
     </Group>
     <Group name="WorldEditor">
-        <Setting name="torsionPath">AssetWork_Debug.exe</Setting>
         <Setting name="displayType">6</Setting>
-        <Setting name="forceLoadDAE">0</Setting>
         <Setting name="orthoShowGrid">1</Setting>
-        <Setting name="orthoFOV">50</Setting>
         <Setting name="undoLimit">40</Setting>
-        <Setting name="currentEditor">WorldEditorInspectorPlugin</Setting>
         <Setting name="dropType">screenCenter</Setting>
-        <Group name="Render">
-            <Setting name="renderPopupBackground">1</Setting>
-            <Setting name="renderObjText">1</Setting>
-            <Setting name="showMousePopupInfo">1</Setting>
-            <Setting name="renderSelectionBox">1</Setting>
-            <Setting name="renderObjHandle">1</Setting>
+        <Setting name="torsionPath">AssetWork_Debug.exe</Setting>
+        <Setting name="forceLoadDAE">0</Setting>
+        <Setting name="orthoFOV">50</Setting>
+        <Setting name="currentEditor">WorldEditorInspectorPlugin</Setting>
+        <Group name="Docs">
+            <Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
+            <Setting name="forumURL">http://www.garagegames.com/products/torque-3d/forums</Setting>
+            <Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
+            <Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
         </Group>
         <Group name="Color">
-            <Setting name="selectionBoxColor">255 255 0 255</Setting>
+            <Setting name="objSelectColor">255 0 0 255</Setting>
             <Setting name="popupBackgroundColor">100 100 100 255</Setting>
-            <Setting name="objMouseOverSelectColor">0 0 255 255</Setting>
-            <Setting name="objMouseOverColor">0 255 0 255</Setting>
             <Setting name="dragRectColor">255 255 0 255</Setting>
-            <Setting name="objSelectColor">255 0 0 255</Setting>
+            <Setting name="selectionBoxColor">255 255 0 255</Setting>
             <Setting name="objectTextColor">255 255 255 255</Setting>
+            <Setting name="objMouseOverColor">0 255 0 255</Setting>
+            <Setting name="objMouseOverSelectColor">0 0 255 255</Setting>
         </Group>
-        <Group name="Theme">
-            <Setting name="windowTitleFontColor">215 215 215 255</Setting>
-            <Setting name="windowTitleBGColor">50 50 50 255</Setting>
-            <Setting name="windowTitleBGHLColor">48 48 48 255</Setting>
-            <Setting name="windowTitleFontHLColor">255 255 255 255</Setting>
-            <Setting name="windowTitleBGNAColor">180 180 180 255</Setting>
+        <Group name="Render">
+            <Setting name="renderSelectionBox">1</Setting>
+            <Setting name="showMousePopupInfo">1</Setting>
+            <Setting name="renderObjText">1</Setting>
+            <Setting name="renderObjHandle">1</Setting>
+            <Setting name="renderPopupBackground">1</Setting>
+        </Group>
+        <Group name="Grid">
+            <Setting name="gridOriginColor">255 255 255 100</Setting>
+            <Setting name="gridSize">1</Setting>
+            <Setting name="gridColor">102 102 102 100</Setting>
+            <Setting name="gridMinorColor">51 51 51 100</Setting>
+            <Setting name="gridSnap">0</Setting>
         </Group>
         <Group name="Tools">
             <Setting name="dropAtScreenCenterMax">100</Setting>
-            <Setting name="objectsUseBoxCenter">1</Setting>
-            <Setting name="snapSoftSize">2</Setting>
+            <Setting name="dropAtScreenCenterScalar">1</Setting>
             <Setting name="snapGround">0</Setting>
-            <Setting name="snapSoft">0</Setting>
             <Setting name="boundingBoxCollision">0</Setting>
-            <Setting name="dropAtScreenCenterScalar">1</Setting>
+            <Setting name="snapSoftSize">2</Setting>
+            <Setting name="snapSoft">0</Setting>
+            <Setting name="objectsUseBoxCenter">1</Setting>
         </Group>
-        <Group name="Grid">
-            <Setting name="gridSnap">0</Setting>
-            <Setting name="gridColor">102 102 102 100</Setting>
-            <Setting name="gridOriginColor">255 255 255 100</Setting>
-            <Setting name="gridMinorColor">51 51 51 100</Setting>
-            <Setting name="gridSize">1</Setting>
+        <Group name="Theme">
+            <Setting name="windowTitleBGColor">50 50 50 255</Setting>
+            <Setting name="windowTitleBGNAColor">180 180 180 255</Setting>
+            <Setting name="windowTitleFontColor">215 215 215 255</Setting>
+            <Setting name="windowTitleFontHLColor">255 255 255 255</Setting>
+            <Setting name="windowTitleBGHLColor">48 48 48 255</Setting>
         </Group>
-        <Group name="Docs">
-            <Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
-            <Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
-            <Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
-            <Setting name="forumURL">http://www.garagegames.com/products/torque-3d/forums</Setting>
+        <Group name="Images">
+            <Setting name="defaultHandle">tools/worldEditor/images/DefaultHandle</Setting>
+            <Setting name="selectHandle">tools/worldEditor/images/SelectHandle</Setting>
+            <Setting name="lockedHandle">tools/worldEditor/images/LockedHandle</Setting>
         </Group>
         <Group name="ObjectIcons">
-            <Setting name="fadeIcons">1</Setting>
-            <Setting name="fadeIconsStartDist">8</Setting>
             <Setting name="fadeIconsEndDist">20</Setting>
-            <Setting name="fadeIconsStartAlpha">255</Setting>
+            <Setting name="fadeIconsStartDist">8</Setting>
+            <Setting name="fadeIcons">1</Setting>
             <Setting name="fadeIconsEndAlpha">0</Setting>
-        </Group>
-        <Group name="Images">
-            <Setting name="selectHandle">tools/worldEditor/images/SelectHandle</Setting>
-            <Setting name="defaultHandle">tools/worldEditor/images/DefaultHandle</Setting>
-            <Setting name="lockedHandle">tools/worldEditor/images/LockedHandle</Setting>
+            <Setting name="fadeIconsStartAlpha">255</Setting>
         </Group>
     </Group>
-    <Group name="TerrainEditor">
-        <Setting name="currentAction">lowerHeight</Setting>
-        <Group name="Brush">
-            <Setting name="brushType">ellipse</Setting>
-            <Setting name="brushSize">40 40</Setting>
-            <Setting name="maxBrushSize">40 40</Setting>
-            <Setting name="brushSoftness">1</Setting>
-            <Setting name="brushPressure">1</Setting>
+    <Group name="GuiEditor">
+        <Setting name="previewResolution">1024 768</Setting>
+        <Setting name="lastPath">tools/gui</Setting>
+        <Group name="Snapping">
+            <Setting name="snap2Grid">0</Setting>
+            <Setting name="snapToCanvas">1</Setting>
+            <Setting name="snapToGuides">1</Setting>
+            <Setting name="snapToCenters">1</Setting>
+            <Setting name="snapToControls">1</Setting>
+            <Setting name="snap2GridSize">8</Setting>
+            <Setting name="sensitivity">2</Setting>
+            <Setting name="snapToEdges">1</Setting>
         </Group>
-        <Group name="ActionValues">
-            <Setting name="softSelectFilter">1.000000 0.833333 0.666667 0.500000 0.333333 0.166667 0.000000</Setting>
-            <Setting name="adjustHeightVal">10</Setting>
-            <Setting name="setHeightVal">100</Setting>
-            <Setting name="scaleVal">1</Setting>
-            <Setting name="softSelectDefaultFilter">1.000000 0.833333 0.666667 0.500000 0.333333 0.166667 0.000000</Setting>
-            <Setting name="SlopeMinAngle">0</Setting>
-            <Setting name="noiseFactor">1</Setting>
-            <Setting name="softSelectRadius">50</Setting>
-            <Setting name="smoothFactor">0.1</Setting>
-            <Setting name="SlopeMaxAngle">90</Setting>
+        <Group name="Rendering">
+            <Setting name="drawGuides">1</Setting>
+            <Setting name="drawBorderLines">1</Setting>
         </Group>
-    </Group>
-    <Group name="AxisGizmo">
-        <Setting name="rotationSnap">15</Setting>
-        <Setting name="mouseRotateScalar">0.8</Setting>
-        <Setting name="mouseScaleScalar">0.8</Setting>
-        <Setting name="renderInfoText">1</Setting>
-        <Setting name="renderWhenUsed">0</Setting>
-        <Setting name="axisGizmoMaxScreenLen">100</Setting>
-        <Setting name="snapRotations">0</Setting>
-        <Group name="Grid">
-            <Setting name="snapToGrid">0</Setting>
-            <Setting name="gridSize">10 10 10</Setting>
-            <Setting name="planeDim">500</Setting>
-            <Setting name="renderPlaneHashes">0</Setting>
-            <Setting name="renderPlane">0</Setting>
-            <Setting name="gridColor">255 255 255 20</Setting>
+        <Group name="Help">
+            <Setting name="documentationURL">http://www.garagegames.com/products/torque-3d/documentation/user</Setting>
+            <Setting name="documentationReference">../../../Documentation/Torque 3D - Script Manual.chm</Setting>
+            <Setting name="documentationLocal">../../../Documentation/Official Documentation.html</Setting>
+        </Group>
+        <Group name="Selection">
+            <Setting name="fullBox">0</Setting>
+        </Group>
+        <Group name="EngineDevelopment">
+            <Setting name="toggleIntoEditor">0</Setting>
+            <Setting name="showEditorGuis">0</Setting>
+            <Setting name="showEditorProfiles">0</Setting>
+        </Group>
+        <Group name="Library">
+            <Setting name="viewType">Categorized</Setting>
         </Group>
     </Group>
+    <Group name="RiverEditor">
+        <Setting name="DefaultNormal">0 0 1</Setting>
+        <Setting name="DefaultWidth">10</Setting>
+        <Setting name="SelectedSplineColor">0 255 0 255</Setting>
+        <Setting name="HoverSplineColor">255 0 0 255</Setting>
+        <Setting name="HoverNodeColor">255 255 255 255</Setting>
+        <Setting name="DefaultDepth">5</Setting>
+    </Group>
     <Group name="Theme">
-        <Setting name="fieldBGSELColor">100 98 96 255</Setting>
         <Setting name="tooltipBGColor">43 43 43 255</Setting>
-        <Setting name="windowBackgroundColor">32 31 30 255</Setting>
         <Setting name="tooltipTextColor">255 255 255 255</Setting>
-        <Setting name="dividerLightColor">96 94 92 255</Setting>
         <Setting name="fieldTextSELColor">240 240 240 255</Setting>
-        <Setting name="tooltipDividerColor">72 70 68 255</Setting>
-        <Setting name="headerColor">50 49 48 255</Setting>
-        <Setting name="tabsHLColor">50 49 48 255</Setting>
+        <Setting name="fieldBGHLColor">72 70 68 255</Setting>
+        <Setting name="fieldBGColor">59 58 57 255</Setting>
         <Setting name="fieldTextHLColor">234 232 230 255</Setting>
-        <Setting name="headerTextColor">236 234 232 255</Setting>
-        <Setting name="dividerMidColor">50 49 48 255</Setting>
-        <Setting name="tabsSELColor">59 58 57 255</Setting>
         <Setting name="tabsColor">37 36 35 255</Setting>
-        <Setting name="fieldTextColor">178 175 172 255</Setting>
-        <Setting name="fieldBGColor">59 58 57 255</Setting>
+        <Setting name="dividerMidColor">50 49 48 255</Setting>
+        <Setting name="headerColor">50 49 48 255</Setting>
+        <Setting name="fieldBGSELColor">100 98 96 255</Setting>
+        <Setting name="windowBackgroundColor">32 31 30 255</Setting>
+        <Setting name="dividerLightColor">96 94 92 255</Setting>
         <Setting name="dividerDarkColor">17 16 15 255</Setting>
-        <Setting name="fieldBGHLColor">72 70 68 255</Setting>
+        <Setting name="fieldTextColor">178 175 172 255</Setting>
+        <Setting name="tooltipDividerColor">72 70 68 255</Setting>
+        <Setting name="headerTextColor">236 234 232 255</Setting>
+        <Setting name="tabsHLColor">50 49 48 255</Setting>
+        <Setting name="tabsSELColor">59 58 57 255</Setting>
     </Group>
     <Group name="ConvexEditor">
         <Setting name="materialName">Grid_512_Orange</Setting>
     </Group>
-    <Group name="LevelInformation">
-        <Setting name="levelsDirectory">data/FPSGameplay/levels</Setting>
-        <Group name="levels">
-            <Group name="BlankRoom.mis">
-                <Setting name="cameraSpeed">25</Setting>
-            </Group>
-            <Group name="PbrMatTest.mis">
-                <Setting name="cameraSpeed">5</Setting>
-            </Group>
-        </Group>
-    </Group>
     <Group name="NavEditor">
         <Setting name="SpawnClass">AIPlayer</Setting>
     </Group>