697 Commits over 122 Days - 0.24cph!
Flip attach points when sprite is flipped
Don't update attachments in SpriteAnimationSystem, only do it when necessary
Update Sprite Tools
Added basic enemy aggro, chasing nearest player
Enemy faces in moving direction
Update Attachments properly for non-square aspect ratios
Updated Sprite Tools
Added Wood Enemy Sprite (Fucker with the abnormal aspect ratio)
Don't stretch asset preview/thumbnail for sprites with non-square aspect ratio
Timeline FrameButtons no longer stretch Sprites with non-square aspect ratio
Add TextureAtlas.AspectRatio
SpriteComponent now supports Sprites of non-square aspect ratios
Fixed not being able to click on Sprite Components to select them in the Scene
TextureAtlas now supports packing textures of non-square aspect ratio
Added Sprite Tools -> Flush Texture Cache to Menu
Fix origin/attach point pixel snapping on images that weren't square aspect ratios
Fix origin/attach point bounds and dragging on images that aren't square aspect ratio
"Point Controls" shortcut buttons now set origin directly instead of setting via the draggable
Add CTRL+Wheel to quickly zoom in/out of Sprite Editor Timeline
https://files.facepunch.com/CarsonKompon/2024/July/16_08-21-ThoroughVerdin.mp4
DeathProgress no longer [Sync] var
Thing networking changes
Changed some [Broadcast] RPCs to [Authority]
Added Singleplayer button to main menu
Initial commit
Update .sbproj
Add Sprite Tools library
Temporary CC0 Player Sprite/Textures
Temporary CC0 Weapon Sprite
Basic Entity and Player Component
Basic Player Movement and Aiming/Camera Movement
Make the Player a prefab
Simple GameManager which purely acts as a Network Manager for now (without actually hosting a lobby)
Basic Weapon Component. Player is given a weapon and will hold it in the aim direction
Added WeaponResource and renamed Weapon to WeaponComponent. Store most of everything in the resource.
Add collisions to the Player
Update Sprite Tools
Update Sprite Tools
Create Projectile prefab and update all SpriteComponents to use new default UpDirection
[Sync] some properties and add some IsProxy checks
WeaponComponent fires Projectiles on LMB
Add CameraManager. Screen Shake on fire
Added FireSound to WeaponComponent and added muzzle flash to first frame of bullet sprite
Added some basic enemies that act as some nice bullet sponges
Fix default rotationOffset when placing a new sprite
Make sure attach points respect the UpDirection
Fix the Top 2D View (so X is horizontal and Y is vertical)
Added UpDirection to SpriteComponent. Added JsonUpgrader to prevent previous components from becoming the new default.
Fix Frame -> Duplicate creating a duplicate reference of the current frame instead of a duplicate copy
Fix ShortcutOverrides not loading properly
Use CodeToString(ButtonCode) instead of the weird enum parsing I was doing.
Fix typo "ChildrentWantMouseInput" -> "ChildrenWantMouseInput"
Make Mouse.OverridingVisibility internal
Added setter to Mouse.Visible so you don't have to create a panel with pointer-events just to unlock your mouse.
Basic 2d player movement for example scene
https://files.facepunch.com/CarsonKompon/2024/July/14_21-17-MemorableSteed.mp4
SpriteDropObject now respects camera rotation
Remove shit we don't need in the example project anymore
Right Click -> Delete in the Sprite Editor Timeline will delete all selected frames if multiple are selected
Update Ninja Frog sprite to include all necessary animations
Add `HasBroadcastEvents` to SpriteComponent. Hide Broadcast Events in Inspector if `!HasBroadcastEvents`. Add `Bounds` to SpriteComponent
Add "footstep" events to Ninja Frog sprite
Remove all the old code files from the example project
Update the example scene
Updated Player footstep events and made Footsteps component play based on broadcast event
Dash adds velocity to the player instead of firing a trace. Allows player to keep momentum with dash
Fix broadcast events not firing on the first frame on the first loop. Fixed BroadcastEvents not firing when PlaybackSpeed is negative (reverse).
Yummier, squishier squish
Update minimal scene so its not running upgraders when you make a new project.
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