Commit graph

79 commits

Author SHA1 Message Date
AzaezelX 5ffa3b81f1 dial back nullPtr usage
while it still remains a good idea to port as many NULL compares and assignments over to nullPtr as feasable, we do still need to sort out how to better support scripted empty, false, and zero assigns for things like objectIDs.

this means we'll need to both fully convert the backend of the parser to support that kind of thing, but also alter most if not all exisiting NULLs. up to and including things like SAFE_DELETE. while that's certainly feasable, given there's aproximatel 400 nullptr assigns/checks prior to this commit, and roughly 1800 of the prior, if it terminates in a script call and not an aip one direct, we'll be dialing that back until such time as fork fully fopcused on converting and resolving any lingering mismatches is completed.
2025-12-29 17:45:09 -06:00
AzaezelX 5b2274d203 don't trip onInspectorFieldModified unless the value actually changed 2025-12-23 11:49:24 -06:00
JeffR 12ebebff46 Update of Particle Editor to standardize it up and utilize inspectors rather than adhoc guis 2025-12-21 16:39:19 -06:00
JeffR f3cad0d77e Converts the ad-hoc design of the Material Editor to utilize the same inspector interface as most everything else does.
- 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
2025-08-03 12:03:02 -05:00
marauder2k7 fd7342668c streamline shape asset
shape asset now has the same import "@" as image asset
cut out extra filename parameters that arent needed
refresh hopefully fixed
2025-06-20 15:58:20 +01:00
marauder2k7 c025ea86b4 more cleanups
cleanup the type removing the refactor tag
materialManager restored to its original state
2025-03-27 08:59:50 +00:00
marauder2k7 0da0903599
Merge branch 'development' into imageAsset_refactor_rev3 2025-03-24 20:07:06 +00:00
AzaezelX fa760fa746 add numerous new validators
as well as inspector support to treat a significant chunk of the codebase as range-clmped values which can take a guisliderbarctrl with a configurable at the validator level fidelity variable
additionally adds a new addfieldV and addprotetedfieldV for further callback validated slider-presented variables
*also* adds an on additional callbacks to the inspector itself, like onPreinspectobject, onPostinspectObject, and onPostInspectorfieldModified
in addition to *that*, adds a new hidefield command to tag a given specific field not to show in inspector
2025-03-09 11:51:54 -05:00
AzaezelX 79782148ec fix another potential crash with firstresponder code 2025-03-06 23:32:38 -06:00
AzaezelX 53a87af2b1 inspector aug: docs as tooltips
convert feilddocs to an 80-char per line tooltip to better help folks understand what a given variables intent is
2025-03-01 15:09:32 -06:00
AzaezelX 5fb73edc00 setFirstResonder Safeties
make sure we've properly added gui elements before trying to set the to be the responding one, or running callbacks against them
2025-02-25 18:23:45 -06:00
AzaezelX b36ec14194 add typeS16 2025-02-22 18:57:27 -06:00
marauder2k7 eb746a1142 console spam
moved error printout in guiType guiControlProfile incLoadCount inside a check to make sure the profile has a bitmap asset set.

remove older typeImageAssetId from group and variable inspector classes
2025-01-23 22:13:49 +00:00
marauder2k7 22037bf94f moar refactors 2025-01-23 22:13:46 +00:00
JeffR 10d1aeca1f Shift tracking of dynamicObjects from strict child objects for Scenes, to tracking the objects but keeping them in the Cleanup Group to fix prefab loading behavior
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
2024-10-27 20:04:13 -05:00
AzaezelX fe5e81a27a fix fighting itterators 2024-05-13 21:31:20 -05:00
Areloch 0d2aeac303 Cleaned up unneeded formatting values on the TypePointX field elements
Adds logic checks so we don't multi-apply edits from applyWord fields, causing redundant extra undo's
2024-05-01 21:58:18 -05:00
Areloch fdadfa5eea Adds handling for complex fields such as Point2, Point3 and Point4's to be able to apply value changes to only one axis across a multi-object set without affecting other axis' 2024-04-30 18:44:17 -05:00
Brian Roberts 05a083ca6f
Merge pull request #1234 from marauder2k9-torque/virtuals-override
Virtuals override
2024-03-21 10:43:26 -05:00
AzaezelX 8549c17a42 crashfix for inpector dynamic field editing 2024-03-20 14:32:09 -05:00
marauder2k7 2b295fb7f0 rest of virtuals removed
virtuals removed and replaced with override where necessary on the rest of the code base, clang-tidy to the rescue.
2024-03-18 18:40:22 +00:00
marauder2k7 efbe5e90f5 virtuals removed
virtuals removed and replaced with override where necessary, clang-tidy to the rescue.
2024-03-18 18:13:00 +00:00
Areloch d890c530f9 Adds logic to be able to set a search string on an inspector that will be used to filter displayed fields.
Adds a textEdit filter box to the main world inspector that hooks into the primary inspector for said search functionality
2024-02-13 20:33:14 -06:00
Brian Roberts 600a6b8ebc
Merge pull request #1192 from Areloch/EditorPopupEXFieldExpansion
Usability improvements for editor fields utilizing popup menus
2024-02-07 19:29:07 -06:00
Areloch 7ef4552196 Fixed category filtering logic for datablockField populateMenu 2024-02-04 15:25:35 -06:00
Areloch 4646d5eac3 Adds ability to force the inspector to only show a set index of array'd fields. Mostly for specific editor tool use(like editing material's individual layers/stages) 2024-02-04 00:21:54 -06:00
Areloch d952722811 Updates the field types used in the editor to utilize the GuiPopUpMenuCtrlEx to make them support categories and be able to search filter them
Updates the dataBlock field type to properly present categorized listings
Expands the datablock Field to have an edit and add buttons on the field to make the workflow simpler
Adds utility functions to GuiPopUpMenuCtrlEx to control indentation, categories and searchability
Expands datablock editor functionality to be able to create a datablock of a type to pre-set the inheritFrom param of the process early(used for the add new button on DB fields to carry-through the current DB to the creation process of a derivative)
2024-02-03 16:10:28 -06:00
AzaezelX 113b3324a8 filter out component inspector button callbacks
specifically targets the undo manager via avoiding onInspectorFieldModified et al tripping on clicks
2023-11-27 19:45:15 -06:00
Lukas Aldershaab 89b0c7f73b Console Refactor 2023-09-13 10:33:20 +02:00
marauder2k7 cbe2bd4c7b Conversions
Commit from Azaezel to fix the naming of inspector fields.
TypeMatrixField still messes around on first responder, we know these functions convert angAxis to eul properly and from eul to angAxis but when the data comes to TypeMatrix it changes.... weird issue is weird.
2023-06-11 21:59:03 +01:00
marauder2k7 92920dbcd9 Change to GuiTextEditSliderCtrl
Change dimension elements to a guiTextEditSliderCtrl
add a button to copy all elements of the multi dimension class to the platform clipboard
2023-06-10 21:30:58 +01:00
marauder2k7 e6dbe0a860 Add multi dimensional entries to inspector
-Added 3 new classes
GuiInspectorType2DValue - 2 dimensional value
GuiInspectorType3DValue - 3 dimensional value
GuiInspectorType4DValue - 4 dimensional value

Added GuiInspectorTypePoint3F for 3 dimensional positions.
Added GuiInspectorTypeMatrixRotation for object rotation. Translates rotation to degrees atm. Input from this is not accounted for just yet.
2023-06-10 16:50:59 +01:00
Areloch b4f62a8005 Adds console methods to GuiInspectorField to ensure we can set the special edit variable name, type and callbacks for proper editor integration of script-managed types.
Adds default value for mVariableType to prevent bad data causing a crash.
2023-03-25 13:56:30 -05:00
Areloch a62024a677 Fixes the handling for special edit fields in the inspector to properly hook into the field's docs display 2023-03-21 19:48:25 -05:00
Areloch 2f40b843d4 Adds expanded ability to create and insert specialized script-based inspector fields
Adds logic during the editor script initialization to let game modules have embedded tools
Changed setting to force prompt for target modules when creating things like datablocks to minimize confusion about where they save to
2023-03-18 02:22:47 -05:00
Areloch 14d099ce37 Corrects logic handling the TypeString for the onInspect dynamic field behavior. 2023-03-08 13:01:52 -06:00
Areloch 3991019912 Adds logic and handling for Inspected SimObjects to be able to inject new InspectorGroups and InspectorFields when being inspected for editing.
Allows for expanded editing capabilities of existing classes without needing to add static fields to classes
2023-03-04 19:04:44 -06:00
JeffR 52368a0428 Fixes issue where creating a new ForestItem wouldn't have it show in the ForestItemData dropdown on brushes until you restart. 2022-05-24 02:10:06 -05:00
Robert MacGregor 41e5988c46 * BugFix: Correct a scoping error with ConsoleValue in the updated code in GuiInspectorField. 2021-11-24 14:14:24 -05:00
Robert MacGregor f1a48df676 * [GuiInspectorField] BugFix: Correct data corruption potential caused by casting the result of Con::evaluatef directly to a const char. 2021-11-24 09:16:09 -05:00
Robert MacGregor b33e1b400b * BugFix: Correct a crash in the variable inspector caused by keeping pointers into tVector managed memory. 2021-11-02 17:32:26 -04:00
Robert MacGregor 5cce344bb1 * BugFix: Fix a missing <vector> include for GCC.
* BugFix: Correct some globally used local variables in the editor code.
2021-09-03 00:26:48 -04:00
Areloch ec85e9021c Misc Quality of Life and Bug fixes
Added handling for if preview images on image assets fails to generate, will fallback to using the full image
Added handling for double clicking or drag-n-dropping terrain assets to create them
Improved handling of field labels in variable inspector by making the stringtable be case sensitive.
Added editor settings for handling of asset double click behavior. Can now select between Edit Asset and Spawn Asset. Support is asset type dependent.
Added editor setting for auto-importing loose files when navigating to a folder. If on and the user has flagged to also enable auto-import generally, will auto import all unaffiliated loose files in as assets.
Added editor setting for default module to use when creating new assets. Updated various tooling logic so when creating a new material, if this and the 'Always Prompt Module Target' setting is off, it will fill in the target module and target asset path info based on the default module.
Fixed issue with editors that use managedData scripts where if the path didn't exist, the script file wouldn't be made.
Fixed display issue in terrain editor where if you clear the detail map, the normal/macro/orm maps would disable, but not also clear.
Fixed handling of cleared maps in terrain editor so it no longer fills empty maps in with the no image image.
Fixed handling of creating new material where it would fill in the diffuse with a no texture image as the default.
Fixed issue where canceling out of creating a module would still prompt to create the common default folders.
Fixed issue where the Select Module window couldn't be closed via the cancel or x buttons.
Based on feedback, reduced default size of the Text Pad window.
Fixed issue where the Drop At menu list wouldn't correctly display which item was marked after it was changed.
Fixed spawning shape asset handling so it uses whatever the editor's Drop At setting is.
Improved themeing of regular bitmap buttons in the editor.
Based on feedback, flipped layout of Target Module and Target Path in the Create New Asset window.
Improved handling of setting up the Target Path for when creating new assets. If a path is not set, and the user has a Default Module, it will default the path to that module.
2021-08-28 18:51:27 -05:00
Areloch 555c563b39 More updating of editor icons to assets
Fixed handling of convex shape editor's active and default materials
Fixed assignment of material for convex shapes via editor
Fixed material editor map assignment logic
Added utility function to detect possible duplicate files in project to ProjectImporter
Added conversion of legacy sky and water classes to importer
Fixed bufferLen issue with guiTreeViewCtrl
2021-08-07 19:27:01 -05:00
Areloch 5525f8ecdd Converts all game, gui editor, and system classes to utilize assets
Processed core, tools and default modules to utilize assets
Converted all console types that were string based, such as TypeImageFilename to utilize const char*/the string table, which avoids a lot of type swapping shenanigans and avoids string corruption
Removed unneeded MainEditor mockup module
Removed some unused/duplicate image assets from the tools
2021-07-19 01:07:08 -05:00
Lukas Aldershaab c999baf7ed Moves from using dStrCmp to the new String::compare static functions. Keeps things cleaner, consistent, and works with intellisense. 2020-10-03 14:37:55 +02:00
Areloch 8956559bfd Various misc. tweaks and fixes based on static code analysis to minimize/fix memleaks, crashes, or other performance impacting code. 2020-09-19 18:25:10 -05:00
AzaezelX 9fef1b3cd1 uninitialized variables-gui 2020-05-11 15:03:27 -05:00
Areloch f7b891442a Updated path handling for loose asset files for CPP, Image, Level, Material, PostFX, Shape, Terrain, TerrainMat and StateMachine assets to be more predictable in when and how they expando the loose file path into a full, useable path
Fixed loose file bindings for all associated slots in level asset, such as postFX file, decals, etc
Expanded TSStatic onInspect testcase to parse materialSlots and hook-in a specialized material field for editing/quick reference from the inspector
Adjusted expand behavior of guiTree to be more reliable
Added internal name 'stack' to inspectorGroup's stack child objects for easier access to add programatic fields
Removed redundant PreMult translucency type code
Added setting of feature so probes work when in forward/basic lit mode
Corrected indexing error in SQLiteObject class so it properly parses with the updated console API
Tweaked the FOV setting logic in GameConnection::onControlObjectChange to not be spammy
Fixed var when trying to bind the camera to the client
Added project setting field to dictate the default render mode between Forward or Deferred
Integrated MotionBlur PostFX into updated PostFX Editor paradigm and exposed the samples uniform as an editable field
Integrated DOF PostFX into updated PostFX Editor paradigm
Updated setting group name for vignette postFX
Shifted shaderCache to be in data/cache along with other cached files
Added helper function to replace strings in a file
Fixed ExampleCppObject asset to have correct loose file references
Adjusted editor default level logic so it can be modifed and then stored, as well as reset back to the original default
Fixed verve reference to root scene group
Adjusted location of a nonmodal gui profile so it loads at the correct time
Reorganized AssetBrowser loading and refresh logic so it doesn't stack multiple refresh requests back-to-back causing lag
Updated the search behavior to search not just the current address, but all child folders as well, making it far more useful
Initial work into zip and folder drag-and-drop asset importing support
Removed the import config setting for 'always display material maps' as it is redundant with the new importer context menu actions
Updated example asset type file
Ensured all asset types have proper handling for move, rename and delete actions
Fixed double-click behavior on folders in the AB
Fixed CPP asset preview
Added better logic to discern if a top-level folder belongs to a module or not in the AB directory browser
Added ability to convert a non-module top-level folder in the AB into a module
Added initial hooks for being able to generate a new Editor Tool, similar to how the AB can generate modules
Renamed CPP asset template files to have the .template so they aren't accidentally picked up by cmake
Fixed convex editor's material handling to work with AB and reference back properly
Updated AB images for folder up/down navigation buttons, and the breadcrumb divider arrow
Made PostFX Editor properly allow for input pass-through so you can still edit the level with it open
Added some additional common text gui profiles
Disabled calls to old editor settings logic in various editors to remove spam
Added callOnModules call so tools can initialize properly when the world editor is opened
Fixed logic test for visualizers
Added ability for cmake to scan tools directory for any tools that add source files
2020-02-04 01:47:28 -06:00
Areloch 66cc6fb9d1 Removes current implement of shadow caching
Also removes EC stuff as it's not ready for prime-time yet
2019-12-13 01:14:03 -06:00