CompileAll - allows us to compile all assets to binary
CompileModuleAssets - allows us to just compile assets for a specific module
CompileAsset - compile a single asset
Allow taml to be compiled and read as json
All of this was already there just was hidden from cmake and code was commented out so just a commit to reapply this. The rest is just some cleanup
gui padding is a >=0 element
guitabbookctrl.selectedPage defaults to -1
shape editor triggers derived from textrows must ensure they are actually loking aty an entry. -1 is the return value of" not found"
- Updates the position/extent of most of the labels and fields so they no longer cut off or overlap
- Added a new button for explicitly added sequences based on existing sequences. This lets the Add Sequence button be exclusive for adding in new sequences from external assets improving stability and making the general behavior more consistent
- Adding new sequence now prompts a window to pre-fill data like the sequence name, source sequence name and start/end frames
- Made the shapeConstruct handle the adding of sequences handle the lookup of external assets consistent to the rest of the engine
- Fixes name presentation for ShapeAnimationAssets in AB
- Adds separate dropdown for the sequence properties section for picking the desired source sequence name. This makes it possible to pick an external animation source AND the internal sequence name via the UI, instead of needing to script it by hand
- Fixed saving behavior to properly restore the playback thread
- Fixed saving behavior to not needlessly save the asset def when editing sequences but before you clicked the save button
- Made it so clicking the Assets tab in the select window opens the AB, but re-selects the Scene tab so you're not fighting which tab is selected
- Adjusted positioning defaults of all the windows so be more standard
- Fixed openShapeInShapeEditor behavior
soundassets in general: initialize the ease to default
for the ShapeBase::updateAudioState, we never call that without first checking if the asset is defined, *and* isvalid is not valid if it's never tried loading it. so that's both redundant *and* actively counterproductive for a filter
allow a textureCoordCount to be used raw when texrows and coumns are not >1 in order to let the transmitted vector actually be used
correct and augment editDecalDetails to now read
DecalEditorGui.editDecalDetails( %this.instanceId, %pos, %tan, %size, %uvID );
it needed the word split to begin with, and also added the uvID for instance frame tracking/overriding
same token added a getDecalFrame(%this.instanceId); method
todos: add a frame lookup and selector for the instance tab, modify decal display to account for non-square uv portions
ensure if an input file contains mesh data *and* an animation, thats a dts, if it's *just* an armature, that's dsq
also fix shapeanimation tooltip display
and for furutere utility, TSShape::isShapeFileType(Torque::Path filePath); is now static since it only requires a path, not an object instance per-se
- Hides the special-case direct filepath field for ShapeAsset persist fields macro
- Shifts the handling of TSStatics so the shape instance will load materials on the server as well as the client. This opens gameplay options as well as allowing rebaking of meshes functionality more easily
- Expands AssetBase's isValidAsset utility function to actually check validity instead of just returning true
- Adds isValid utility function to AssetPtr
- Added new field flag that makes the field not write out to file
- Removed legacy iconBitmap field from GuiIconButtonCtrl because it was causing errors
- Fixed group filtering check of guiInspector to ignore case
- Removed unneeded isFile checks for common datablock script files in Prototyping module script
- Removed test datablocks from Prototyping module
- Removed unnecessary container control from AssetBrowser
- Adjusted preview regen logic of AssetBrowser so it doesn't trip if you're simply resizing the window
- Fixed issue where row-vs-column layout logic for AssetBrowser when resizing window was fiddly
- Added handling for when Dragging and Dropping datablock from AssetBrowser to spawn, it'll prompt if it spawns the actual object, or a spawnsphere that spawns said object. In the event of an PlayerData will also prompt if it should spawn an AIPlayer
- Added ability to take a TSStatic that uses a baked down mesh and are able to restore it to the cache prefab, or trigger and in-place rebake to refresh it if something has changed in the original contents via RMB menu on the scene tree
- Added ability to explode prefab to RMB menu on scene tree
- Added ability to convert selection to prefab or bake to mesh in RMB menu on scene tree
- Tweaked sizing of the DatablockEditorCreatePrompt window to not have cut off elements and easier to see/work with
- Added sanity check to datablock editor creation
- Fixed preview display of material in Decal Editor
- Made compositeTextureEditor use the cached preview of images
- Fixed sizing/spacing of gui selection dropdown as well as resolution dropdown of GuiEditor
- Fixes MaterialEditor to properly save the group collapse state when editing
- Adds ability to in-flow edit and create datablocks in the NavMesh Editor for the testing panel, and makes the datablock dropdown searchable
- Fixed issue where opening the ShapeEditor via the edit button on a ShapeAsset field would cause the action buttons on the top bar to not show
- Fixed error in shape editor where when exiting it was erroneously checking for a clear value of -1 rather than 0
- Removed unneeded top tabbook and tab page for main editor panel
- Fixed issue where reset button of TerrainBrush Softness Curve editor didn't actually reset
- Resized Object Builder window to not cut off elements and have enough width to show more data
- Added a TypeCommand field type to Object Builder and changed spawnscript field of SpawnSphere to use it rather than a simple text edit field
- Allow SpawnSphere in ObjectBuilder to be passed in spawn class and spawn datablock default info
- Injects button to controllable objects when Inspecting them to make it easy to toggle if you're in control of it or not
-
it's not in itself a force-injection, so we can just use the existing calcs (also. fix the exisitng calcs so slippling is properly cleared)
in addition, rigidshaeps shouldn't be trying to resolve collisions with things mounted to them any more than they should self-collide. it's a hard-locked relational association
asset brower previews were asserting due to a cornercase rt assignment
also ditch mipgen for rts targetting a texture profile that's marked as nomip, and adjust hdr uopsampling shader to compensate for overdarks
Fixed via several solutions to prevent issue from cropping up again.
Firstly, Adjusted behavior script-side so game menu keybind is pushed with the PlayGUI since almost every single game will use the game menu
Secondly, added logic so that the guiInputCtrl, when going to push an ActionMap(if it has one) will check if it's root canvas is active.
Thirdly, to allow guiInputCtrls to respond to a canvas becoming active, such as a GUi-on-Material surface displaying a menu and it's activated, an offscreen canvas becoming active now trips a signal that guiInputCtrl listens for.
- Overhauls the material editor to simplify and streamline the logic behind it since the inspector does most of the work
- Tweak a few order positions of materialdefinition fields to work better
- Sets AO, Rough and Metal channel fields to use an enum type for human readability
- Updates the MaterialPreview gui control to work with assetIds
- MatEd now supports setting of parent material to inherit from
- Creating a new material now can prompt selecting an existing material to inherit from
- Can now edit the mapTo value of a material in the matEd
- New standalone Composite Texture Editor window for convering AO, Roughness and Metalness maps in a material to an ORMMap
- Can also star the creation of a composite texture via RMB context menu in AB on an image asset
- Moved logic of CubemapEditor from MatEd to it's own stuff
- Made ImageAsset fields now be more clear when they have nothing assigned, and also have a clear button to empty the field's value so it's consistent across the board
- Reorganized the layout of the gui and image files for the MatEd to be easier to navigate
- MaterialEditor now overlays the EditorGUI instead of being forcefully embedded in it, allowing easy editing of the MatEd Gui via the Gui editor
revert back to static
because we chache the results of the buffer we cannot use volatile buffers, volatile buffers need to be resubmitted every frame to the ring buffer
move the geo collection into each tile, seems to work better for large levels
add true to getnav in aiconver so it overwrites all goals
cache the triareas so we can use a tool later to modify them
Added ground work for tester tool
tester tool works but needs to fill out list of acceptable datablocks and spawnclasses
navpaths now share 1 navmeshquery
AIControllerData now has a vector of area costs for different polyareas
General cleanup
added an override flag to stop detour from setting our depth mask state. This was causing navmesh to draw through other objects when it wasnt meant to
Reset our bounds box for each draw cache
Clean out the link vars and functions from guinaveditorctrl its now handled by the tool
offmeshcontool: Add ability to continue to draw from the last links end point holding shift
Adds off mesh connection tool
upgrade functionality to allow setting the direction to be bi-directional
added immediate draw to duDebugDrawtorque so we can draw offmesh connections
DebugDraw for recast now caches the results
We now have a drawmode dropdown selector
drawmode changes come from the gui itself no longer from console values
all recast drawmodes are supported with the exception of drawmodes that add abilities like navqueries until the nav tester tool is imlpemented.
cache tiles data if keep intermediate is on
(we only need to cache the results of recast)
fix tile generation (again)
Add !m_geo check so that buildTile can regen the geometry needed to build the tile again.
Added chunkytrimesh - this class splits up the geometry the navmesh is interested in into kdtree for fast traversal, makes the actual navmesh generation work with smaller chunks.
Now only 1 RecastPolylist per navmesh this can be saved out in a future commit.
This is a history commit, all functionality works same as it did before but it matches recasts recommended setup more closely. Future additions may break backwards compatibility.
bump maxheading up to it's proper 180 degree max
bump netpipe for the turret rotations to the *controlling client* but not others to 11 bits per axis
leave the to-others fidelity slim
for player, if we're unmounting because we're being deleted, don't bother animating
for tsthreads in general, not much point in removing the threadlist, then checking if it's scaled
*just* check pathshape/staticshape/terrain for determining if we are attaching/detaching from a pathshape
and don't bother if we're not enabled and not falling
leverage minFaceDistance plus current hieght to try and ensure stepping down into a pathshape/tsstatic within the 0.1 ot -1.0 detection range range doesn't snap you through another one.
Added ability to shader features and shaderGen to create multiple instances of the same feature with the option of calling a static creation function that can take arguments in the form of a struct.
FEATUREMGR now has createFeature to take advantage of this.
The node editor requires this ability as the same node could be used multiple times with different arguments so in its update function we will be calling
```FEATUREMGR->registerFeature(feature_type, (optional default constructor), createFunction);```
then adding it to the feature set with the required arguments to build the shader feature.
```FeatureSet->add(feature_type, index, ParameterStruct);```
add change notification on intialize asset use this callback to update information about the image on refresh. Remove notification when the asset is removed and when the imagefile changes