Added functions to AssetManager to pack/unpack assets using an id hash instead of their id string this cuts down how much data is sent across the network for assets
All asset macros updated to use this new functionality.
Updates groundCover to utilize TerrainMaterialAsset macros in place of straight StringTableEntry for type layers
Fixes formatting for several asset types' inspector fields so they correctly call down into prompting the AssetBrowser being shown with correct field naming, thus allowing fields that are arrays to have the right index when setting the target variable
Updates several asset helper macros to handle blank values for network traffic to actually be sent to client, thus allowing setting an asset to blank on the client, rather than only falling back
AppMesh position was being scaled twice since the node is now being scaled
Try and resolve fps from file instead of default 30
maxKeyTime should be outside the loop
Assimp importer now sets the collada options to fix up axis transformation
bounds are now created by tsmesh
top level nodes are now added to the processNodes stack so bounds and other root nodes can be found correctly
Allows traversing an xml document by element without needing to know the element name
Blind traversal allows more dynamic loading of xml docs and logic to wrap different outcomes
new script functions:
prevElement
nextElement
nextChildElement
<main> <--- we are here
<child> <-- nextChildElement will take us here
</child>
<child2> <-- after nextChildElement nextElement will take us here
</child2>
</main>
<main2> <-- next element will bring us here
</main2>
Adds the ability to declare defaults for function arguments
eg
function testFunc(%x = 1, %y = 1)
{
return %x + %y;
}
can now be called as
testFunc(10) and it will return the value of 11.
multiple preloads were failing to return false or mesages on failure of mandatory entries.
clear out redundant isScriptFile definition
fix default order of /scripts/managedData script files
- Updates addSequence for the TSShapeConstructor so it can properly understand if it's handed an assetId or not, and if it is, stores that as the source data for use later
- Has the added benefit of ensuring no erroneous double-ups of data causing accidental overwrites when saving the shapeConstructor because it thinks the data 'changed'
- Fixed saving of new added sequences in shape constructor to properly trip whitespace
- Adds ability to manually trigger a ShapeAsset to load the shape data
- Adjusted the logic for getting a shape/animation asset's constructor when adding a new sequence to avoid false reporting of no constructor existing(by manually loading it)
- Fixed formatting on ShapeEd Anim window to properly scale
- Added onWake calls for the ShapeEd select and properties windows to better prep them position/extents-wise so they should behave more consistently
- Fixed issue of Not closing material editor if it was opened via the Edit Selected Material button in the ShapeEd
- Fixed issue of highlighting of material not going away when ShapeEditor is closed
fix spam on saving, we only care about compression when baml is being written out. set it to false for all apart from where specified as binary, if the format is specified then turn off auto format. This warning was also wrong its binary format
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