Also adds a check so if we have spawned as just a camera, it scopes down to the client correctly
Correctly has the shortcut calls activate for the spawn override callbacks if no modules or gamemodes are able to respond to them
Added logic to ModuleManager's findModules method to allow priority sorting as well as pre-filtering by a given module group
Adjusts the %isFine argument for the onMapLoadFailed callback events to %canContinueOnFail for a bit more clarity on what the arg conveys
Shifts the setSpawnObjectType, setSpawnPoint and onPostSpawn call stack to utilize an event manager to allow the setup process for spawners and gamemode prepwork to run in it's own time, if needbe. Such as if a gamemode has to generate a map and there's no guarantees on when it'll b e done for one client vs another
Added getModulesAndGameModesList, callOnObjectList and getNumCanCallOnObjectList utility functions
By default this list of variables would be:
%this.spawnClass = "Camera";
%this.spawnDBType = "CameraData";
%this.spawnDataBlock = "Observer";
%this.playerSpawnGroups = "PlayerSpawnPoints PlayerDropPoints";
%this.spawnPoint = "";
%this.spawnLocation = "0 0 0";
Also adds several callbacks so that these values can be overridden by modules and gamemodes, kicked off from the %client.spawnControlObject(); command :
callOnModules("setSpawnObjectType", "Game", %this);
callGamemodeFunction("setSpawnObjectType", %this);
callOnModules("setSpawnPoint", "Game", %this);
callGamemodeFunction("setSpawnPoint", %this);
callOnModules("onPostSpawn", "Game", %this);
callGamemodeFunction("onPostSpawn", %this);
This is to ensure that a game mode can supersede modules, but even modules can dictate spawn behaviors for minimalist implementations and drop-in interop support
Fixes behavior with gamemode selection in ChooseLevelMenu so if there is only one gamemode, it is auto-selected and advances to the level selection
Update ExampleLevel in ExampleModule to have updated gamemodes field name
Added mode toggle for if changing the transform influences the child objects of a SubScene or not
Added onSelected/onUnselected callbacks for SimObjects to allow contextual behavior in the editor
Added functionality of programmatic/dynamic Tool Button Palettes
Added logic so when selecting SubScenes the world editor palette has new buttons for letting the move/rotate actions influence the child objects
Shifted to utilizing SimGroupInterator and persistenceManager to fix saving issues with SubScenes
Shifted to utilizing SimGroupIterator for Scene saving to standardize and minimize object misses
Changed prefab load file logic to add loaded child simgroup to rootscene for consistent tracking and avoiding conflicts with subScene's hijacking the ImmediateGroup var
Reduced duplication of build<type>field callback for inspectors
Added more standard field type lookups to inspector group when creating a field to avoid misses for types like 'F32' or similar.
Folded the added-on MinSize/MaxSize/SimgroupSelect fields for SimGroup editing into a single compound field and fixed bugs with it's behavior so it works as expected now
adds an isValid(gridinfo tile) command to prefilter out grid elements of a specified nature
applies that to SetEmptyAction::process
also corrects sliderbar positions for terrain painting elements, as ell as adds a min/max slope for removal
potential TODOs: apply it more places pending feedback. add a min/max hieght filter as well
Adds loadIf conditional logic to evaluate if a subscene is 'allowed' to load when tested
Adds isAlwaysActive to GameMode to be able to flag a gamemode as being defaulted to on and used automatically
Updated GetGameModesList function to return an arrayObject of the gamemodes found
Overhauled CallGameModeFunction to utilize the gamemodes list with active/alwaysActive modes being called against, rather than level-scanning
Updated ChooseLevelMenu to be able to toggle on/off multiple gamemodes with an image indicator if it's active or not
Added extra large font to the windowed console. Use the [-A] [A+] buttons to change the size.
Preferably would introduce "lineSpacing" to the GuiConsole object for improved readability; as well to store this into the prefs.
Remove the tabs from the asset browser and windowed console. There were some issues and asset browser will be changed soon. Downside is that the windowed console and asset browser will now open on top of each other.
Some text was black on dark which is hard to read. Due to use of non-existing or incorrect profiles. Title is also updated to be visually in line with the rest of the world editor.
Because of the large width & height of the Arial font at 18 did the window titles not fit properly. Font has been decreased and made bold for the sake of distinction. Additional has the terrainpainter window's position been corrected (terrainEditor.ed.tscript)
Correct the background of the world editor main tab with a (new) solid fill. Sometimes it appeared as black, magenta or the just the scene itself. Color is fixed for now as it is a unique situation regarding the use of tabs here.
Sidepanels of the world editors got shifted due to the introduction of the editor tab. Several corrected overall. Some minor tweaks to be expected in a later commit.