initServer callback is run the once
onCreateGameServer callback is run every mission load
for queueexec("filename",true); to work, that has to be from the same callback pool being executed.
given resources use the initServer, pool, shifted the damagemodel baseline there as well.
may want to revisit this one as time allows for quicker prototyping turnaround
Also adds callbacks so gamemodes/modules can provide custom camera modes.
This gives more control and integration of specialty camera types so it doesn't have to fight the editor's handling of camera modes/toggles.
camerasplines in general previously assumed you would always want to ease in and out at the first and final node. even when looping. adds an mUsease to it, and to pathshapedata to optionally shut that off. (on by default to behave as legacy)
Also fixes how the shapeConstructor is searched/parsed when doing reimports vs new import creations
Fixes incorrect assetId usage in some of the prototyping shape constructors so they match now
this laregly occured due to adding ribbon nodes in smaller increments than the size of a given quad.
we therefore skip adding new ribbon nodes if velocity, as determined by the point deltas, would be below 10% of the largest scale a given quad for that link in the ribbon would be.
as this will result in lower than a max length ribbon, also adds a timeout mechanism of removing a link every TickMS (32 ticks/second, or roughly how often one would also be aded when in a growth state)
for full finalization do still need to circle back and adress why there remains 1 quad spawned after motion.
similar https://github.com/TorqueGameEngines/Torque3D/pull/1497,
Con::executef( object, "onEditorRender", getIdString(), buf[0], buf[1] );
floods the console, making trace(true/false); unusable, so add a guard for that that shuts that off for that case.
- Adds proper marking of Load status for levelAsset, so if no mis file is defined then the asset fails to load and has proper error code
- Adjusts the get*Path() util methods for getting stuff like postFXPrefix or decal files to have a fallback if one isn't currently defined in the assetDef, as it could be a broken link but the file does exist
- Adjusts saving logic of level so it will properly update the levelAsset for postfx prefix or decal files so if they were added after creation of the assetdef, they're saved and updated as expected
- Adjusts the setter methods for the *File fields to correctly separate the File variable and Path variable to make things behave more clearly and consistently.
- Keeps checks for *.mis.decals file pattern, but shifts new creations of decals files to just be *.decals to better match other level-associated files like *.nav or *.forest
- Clicking the [...] button from the Particle Emitter tab now opens to the Particle tab *and* properly selects the particle data to be edited
- Selecting an emitter object in the map and opening the particle editor now selects the Particle Data to be edited
- Selecting a new Particle Data for a particles slot on a Particle Emitter in the editor now correctly updates the values and updates the field display
- Made it so if clicking [...] button on the ParticleEmitterData or other similar fields for objects, it will now open to the Particle editor instead of the Datablock editor
add minimal padding to counteract floating point flurrer when rounding due to changes in parent element scale
revisit the aspect maintining resizer math to correct a few failures with live editing the values.
the player class (and resource derivatives, contain a mix of hardcoded animation names, as well as scriptable ones that can be tripped via playthread/setActionThread.
to determine if an animation within the stored vector is hardcoded or a scripted oneoff for that mesh, theres a demarcation at NumTableActionAnims for the up to 512 animation slots available.
when deriving from player, we must therefore allow that entry to be overridden for any class which adds additional hardcoded animations
therefore this introduces a datablock-level entry for the marked slot.
update bitmapPng reading from libpng to have context in warnings and errors, also add a bit of a better structure around the read and write functions.
Interlaced PNG's were never being accounted for before so add the png_set_interlace_handling for interlaced pngs