771 Commits over 122 Days - 0.26cph!
Add header to PageNotifications so it's the same as the others
Fix StartingAnimationName returning "" when it couldnt find anim
Fallback when no obtainable origin for SpriteComponent gizmo
Rename Name -> DisplayName so there's no conflict on KeybindPanel
Cache the overrides so we don't have to keep checking against EditorCookie
Change "F5" -> "editor.toggle-play" on Play menu option
Fix SaveMixer being static
Shortcuts with Function Keys are always to editor even when Game Frame is in focus
F3 and F5 editor commands are now Shortcuts like everything else
Fix shortcut not displaying on Align To View option
Qt Option now takes shortcut ident (eg. "editor.undo") and internally resolves bind (eg. "CTRL+Z"), updating when changed. No longer registers shortcut internally when set.
Cleanup shortcut groups
Added individual Revert button when bind is different from the default
https://files.facepunch.com/CarsonKompon/2024/July/12_08-54-UnimportantTarantula.mp4
Remove the animator stuff for now. If I end up doing this it'll be on another branch
Micro-optimization
Add warning when calling PlayAnimation for an animation that doesnt exist
Allow non-static method shortcuts since there seems to be a good chunk of those
Stop feeding shortcut to Options for now
Fix size of Editor Keybinds page
Fix using the wrong widget for non-static shortcuts
Move EditorPreferences.Keybinds over to new [Shortcut] attribute system on each function
Completely remove EditorPreferences.Keybinds
Change name/groups for a few shortcuts
Order categories by name in PageKeybinds
Remove some debug logs
Create Texture Editor and Actiongraph shortcuts
Create ShaderGraph, Hotspot Editor and some more scene shortcuts
Add GameObject/Transform shortcuts and fix static method issues.
Made grid size shortcuts Window type instead of Widget type
Make all the different editors share a few binds (So there's not a Copy,Cut,Paste,Undo,Redo,ect. per-editor)
Make classes with [Shortcut] attribute properly rebindable (used for editortools)
Created EditorKeybinds.cs with a few starting keybinds
Move Keybinds into EditorPreferences since that makes more sense
Add RegisterShortcuts() function whenever shortcuts are registered and use the EditorPreferences keybind instead of hardcoded string
Added Editor Keybinds page to EditorPreferencesWindow
Subscribe all RegisterShortcut voids to keybinds.update EditorEvent
https://files.facepunch.com/CarsonKompon/2024/July/10_21-46-TautDuck.mp4
Create shortcut for EditorCycleViewMode
Make Keybinds page scrollable, add Reset to Default button, and add Are You Sure popup to Reset button
Use TitleAttribute for keybind names
https://files.facepunch.com/CarsonKompon/2024/July/10_22-23-FakeGourami.png
Add AllowModifiers to KeyBind widget, set to true for Editor Keybinds Page (Allows you to bind CTRL+SHIFT+ALT+Whatever)
Some FileOption binds, but they dont auto-update yet. Will need to find a good way to do that for Option entries
Call keybinds.update EditorEvent on Reset to Default
Created EditorShortcuts.cs to eventually replace EditorPreferences.Keybinds
Need to call this after EditorTypeLibrary is created
Register shortcuts elsewhere and remove some option shortcuts
Change default shortcut type
Register shortcuts on hotload
Convert some older shortcuts into the new [Shortcut] attribute
Change shortcut defaults
Update EditorShortcuts to include Identifier and Keys, including method to get current keys from overrides (player defined overrides)
Display [Shortcut] shortcuts in Editor Keybinds page instead of EditorPreferences.Keybinds
EditorShortcuts rebinding actually works now, much more lightweight than prior version
Make user overrides save properly
Get Name and Group properly, allow attributes to override.
Get keys from shortcut name in Option.cs
Get keys from shortcut name in Option.cs
Call keybinds.update EditorEvent on Reset to Default
Created EditorShortcuts.cs to eventually replace EditorPreferences.Keybinds
Need to call this after EditorTypeLibrary is created
Register shortcuts elsewhere and remove some option shortcuts
Change default shortcut type
Register shortcuts on hotload
Convert some older shortcuts into the new [Shortcut] attribute
Change shortcut defaults
Update EditorShortcuts to include Identifier and Keys, including method to get current keys from overrides (player defined overrides)
Display [Shortcut] shortcuts in Editor Keybinds page instead of EditorPreferences.Keybinds
EditorShortcuts rebinding actually works now, much more lightweight than prior version
Make user overrides save properly
Get Name and Group properly, allow attributes to override.
Add AllowModifiers to KeyBind widget, set to true for Editor Keybinds Page (Allows you to bind CTRL+SHIFT+ALT+Whatever)
Some FileOption binds, but they dont auto-update yet. Will need to find a good way to do that for Option entries
Create shortcut for EditorCycleViewMode
Make Keybinds page scrollable, add Reset to Default button, and add Are You Sure popup to Reset button
Use TitleAttribute for keybind names
https://files.facepunch.com/CarsonKompon/2024/July/10_22-23-FakeGourami.png
Created EditorKeybinds.cs with a few starting keybinds
Move Keybinds into EditorPreferences since that makes more sense
Add RegisterShortcuts() function whenever shortcuts are registered and use the EditorPreferences keybind instead of hardcoded string
Added Editor Keybinds page to EditorPreferencesWindow
Subscribe all RegisterShortcut voids to keybinds.update EditorEvent
https://files.facepunch.com/CarsonKompon/2024/July/10_21-46-TautDuck.mp4
Prevent multiple toolbars in Sprite Editor
Can open multiple Sprite Editors to edit multiple sprites at once now
Remove UpdateWindowTitle from SpriteEditor Preview
Added Animator Dock/Tab to Sprite Editor
Update .sbproj files
Update example files
Serialize Tint and apply to SceneObject when created.
Change project open file filter from ".sbproj" -> "*.sbproj" to find named project files
White outline when selected (similar to renderer components)
Fixed SpriteComponent Gizmo hitbox (Facepunch/sbox-spritetools#2)
https://files.facepunch.com/CarsonKompon/2024/July/10_10-17-BasicChipmunk.mp4
Animation List is has hover highlight and StatusTip
FrameButton now has hover highlight and StatusTip displaying frame number, file name, and sheet rect (if applicable)
Fix BroadcastEvents widget not updating on file change
Remove un-needed Spritesheet Preview Overlay stuff
Properly serialize BroadcastEvents Actiongraph so it saves/loads.
Don't serialize component [Property] variables if they have [JsonIgnore] attribute
Clear appropriate texture caches on file changes when in editor. Also tell respective components to get the new texture from the cache.
https://files.facepunch.com/CarsonKompon/2024/July/09_21-25-ForestgreenInganue.mp4
Fix New Project button in Editor Launcher
Fix GameHud render tree building
More build tree NREs
Fix PlayerHud NRE on chat message
Fix lobby list buttons not working
Only apply SpriteFlags when necessary & Apply Material Offset after playing new animation
Fix some TextureAtlas issues and added Documentation Comments
SpriteResource.Load shorthand
TextureAtlas.GetTextureFromFrame
Sprite AssetPreview with Thumbnails
Animated SpritePreview if there is an animation
Added SpriteInspector. Allows you to view animations similarly to ModelInspector. https://files.facepunch.com/CarsonKompon/2024/July/09_14-38-SerpentineGrassspider.mp4
SpriteResource.GetPreivewTexture and more TextureAtlas fixes
Make SpriteComponent.Sprite public. Not sure why this wasn't before....
Added SpriteDropObject so you can drag-and-drop sprites into the Scene. https://files.facepunch.com/CarsonKompon/2024/July/09_16-17-YellowCorydorascatfish.mp4
Make sure Top 2D view isn't flipped 180deg
(Makes everything face upright at default rotation, perfect for 2D games)
Added ResourceLibrary.GetAll<T>. Resolves Facepunch/sbox-issues#4749
Fixed SwitchControl styling
Display 2 instead of MaxMembers since people can spectate
Make turn length 15s instead of 10s
UV offset gets reset appropriately when changing animation
Update .sbproj
Fixed spectating CPU games creating boards for spectators
Show GameHud as a spectator with some different text
Fix Bot Matches not working
Don't show hints to spectators.
Fixed AttackRandomly not working as non-host
Show player count in lobby. Remove lobby status until it can be properly implemented.
Update .sbproj
Fixed Looping variable not working properly
Make BaseDropObject public so it's accessible to editor tools
Added "Import Spritesheet" button which opens a blank import dialog
Merge branch 'main' into spritesheet-importer
Merge branch 'main' into spritesheet-importer
Merge branch 'main' into spritesheet-importer
TextureAtlas.FromSprites orders list by name so order doesnt matter
TextureAtlas.FromSpritesheet re-orders list so order doesn't matter
Merge branch 'main' into spritesheet-importer
Create SceneWorld thru EditorUtility
Created SpritesheetPreview widget
Created SpriteRenderingWidget as a generic for SpriteEditor and SpritesheetImporter to both extend
Import settings control widgets
Import Settings Groups
Importer window shows importing image
Remove unused shaders and renamed main shader & material to "sprite_2d"
Spritesheet Importer Overlay Buttons
Fixed transparency issues with spritesheet importer
Fixed origin/attachment materials
Created sprite_sheet_grid which draws over the spritesheet import preview
Update sprite_2d vmat initial variables
Attempt at grid shader
Spritesheet Importer Window UI
https://files.facepunch.com/CarsonKompon/2024/July/04_18-39-ImperturbableCorydorascatfish.mp4
Remove debug logs
Remove some other un-needed stuff
Add SpriteSheetRecf to SpriteAnimationFrame
TextureAtlas class now caches the atlas itself instead of just the texture
Created TextureAtlas.FromAnimation which respects sprites *and* spritesheets
Spritesheet Import Button which saves image+rect data to the selected animation
Timeline optimizations with respects to spritesheets
FrameButton supports spritesheet frames
Preview now supports a supplied rect
SpriteComponent now supports sprites with spritesheets
Improve TextureAtlas caching
Support sprites that aren't square aspect ratio in the Sprite Editor UI
Imported some more spritesheet test assets
Fix spritesheet size being used instead of rect size for spritesheet frames
Update Frame List automatically after importing spritesheet
Remove Spritesheet Overlay
Update player and example scene
Fix SpriteFlags not applying OnStart
Timeline optimizations with respects to spritesheets
FrameButton supports spritesheet frames
Preview now supports a supplied rect
SpriteComponent now supports sprites with spritesheets
Improve TextureAtlas caching
Support sprites that aren't square aspect ratio in the Sprite Editor UI
Imported some more spritesheet test assets
Fix spritesheet size being used instead of rect size for spritesheet frames
Update Frame List automatically after importing spritesheet
Remove Spritesheet Overlay
Update player and example scene
Fix SpriteFlags not applying OnStart
Remove debug logs
Remove some other un-needed stuff
Add SpriteSheetRecf to SpriteAnimationFrame
TextureAtlas class now caches the atlas itself instead of just the texture
Created TextureAtlas.FromAnimation which respects sprites *and* spritesheets
Spritesheet Import Button which saves image+rect data to the selected animation
Update sprite_2d vmat initial variables
Attempt at grid shader
Spritesheet Importer Window UI
https://files.facepunch.com/CarsonKompon/2024/July/04_18-39-ImperturbableCorydorascatfish.mp4
Fixed origin/attachment materials
Created sprite_sheet_grid which draws over the spritesheet import preview
Import Settings Groups
Importer window shows importing image
Remove unused shaders and renamed main shader & material to "sprite_2d"
Spritesheet Importer Overlay Buttons
Fixed transparency issues with spritesheet importer
Gave a few SpriteComponent properties "Visuals" Category. Removed FlashAmount in favour of FlashTint.
Fixed Opacity not working on Tint Property
Added SpriteFlags, starting with Horizontal Flip and Vertical Flip.
https://files.facepunch.com/CarsonKompon/2024/June/28_21-54-ShockingYearling.mp4
SpriteComponent doesn't draw backface by default. Added Draw Backface SpriteFlag.
https://files.facepunch.com/CarsonKompon/2024/June/28_22-54-InconsequentialBantamrooster.mp4
Fix NRE in UpdateMaterialOffset
Merge branch 'main' into spritesheet-importer
Create SceneWorld thru EditorUtility
Created SpritesheetPreview widget
Created SpriteRenderingWidget as a generic for SpriteEditor and SpritesheetImporter to both extend
Import settings control widgets
Return to Main Menu button on ResultsHud
Change starting scene to mainmenu.scene
Added timer between turns, forcing you to take your turn after some time.
UI Cleanup
Better UI folder structure.
Added LobbyList to Play Menu
Added Lobby Icons
Various font size fixes
Refactored a few panels so they're split up better