Editor window and preview widget
Fix material adding duplicate params
Get material description, as json
Build features description for material
Serialize feature descriptions
Features list UI https://files.facepunch.com/layla/1b0911b1/sbox_AQUvbCPcCn.mp4
group combo and label (really should make a radio selection widget for this)
Remove GetKV3MaterialDescription binding
Grab variable descriptions based on feature state
Add group to variable description
Display variables
Decode sort key (todo: do this in C#)
Only show variable groups that have at least one enabled variable, don't create widget for disabled variable
Add state cookie to variable list expanders
Sort variable groups
Create property widgets for variables
Create correct property widgets for variables
Custom tab widget to tab multiple sessions
Try to grab feature state from material
Move material editing to a session class so we can have multiple sessions going at once
Don't add duplicate variable desc to kv3, don't know why these are showing up, probably because I'm not recompiling material on feature change
Bind CompileAndReplaceResource and DiscardInMemoryReplacement
Discard in memory replacement on session close
Create new tab for new sessions
Get active session from current tab page
Change preview material on session change
Allow Material.Create to set feature states
Only skip duplicate variable descs that are disabled (no idea why there are duplicates in the first place)
Recreate new unsaved materials when features change
Don't update material variables through events
Switch tab when adding new session
Allow sessions to be closed
Process in memory compile reload requests after replacing resource
Add dummy material in core for material editor to piggy back off of
Recompile material when features or textures change
Recompile material on session change
Include params in replacement resource
Don't forget checkboxes
Undo passing features to Material.Create, no longer using this for material editor
Restore texture property state when rebuilding variable list
Do the same for color, float and checkbox properties
Build material output so we can save it, check against feature and variable desc for what key values should be output
Allow tab pages to be closeable or not
Save session to file, register asset
Format colors and floats so old material editor can read them
Reset session preview on hotload, fixes preview breaking on hotload
Switch page after on page close callback so we don't stomp material with replacement discard
Only discard replacement if asset isn't being used in another session
Include session name in window title
Fix non closable pages not switching
Add raw output tab
Fix NRE adding new session, keep a copy of material output
Use text edit for output
Hook up menu bar to actions
Menu bar shortcuts
Open file dialog
Create session for opened material
Parse material to get feature and variable states
Parse color states
Add new line after every variable group in output
Remove Material.GetFeaturesState, parse material in tool code instead
Allow modified material to be saved
Do a recompile before saving, resource replacement is getting stomped
Dock the preview, might want to have it fullscreen