1,056 Commits over 183 Days - 0.24cph!
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
StatsPanel styling
SidePanel styling
Made CPUs attack more fairly
Make SFX less ear-piercing
Add cursors to Resource Files
Remove unneeded assets
Singleplayer/Multiplayer buttons on Main Menu + Minor styling changes
Added Stats (Games Played/Won/Lost, Coins Spent/Earned, Bugs Killed, Damage Dealt)
Added Pause Menu
More MainMenu styling, added content-panel for stats
Add MainMenu to Battlebugs namespace
Added StatsPanel
Removing in PlacementInput doesnt give opponent money anymore
Fix score percent value in pre-playing state(s)
Replace Weak Rock weapon with Double Rock. Start with 3 of each Weapon now.
Don't show default rock in shop. Disable scrolling.
Updated description on all weapons
Created PlayerHud component from GameHud and added chat support (bubbles beneath each player)
Playtest Balancing
Hint Notification SFX
Coin SFX
Added weighted bar to the top of the screen to show who's currently ahead
Made Cell colours more vibrant
Game End State
Split BugListHud into SidePanel and BugList
Revealing a cell has a chance to drop coins
Apply angular damping to rock as well
Created ResultsHud + Some various polish and bugfixes
Fix typos
Rocks properly detect when they have come to a complete stop
Make BroadcastHit an Authority call
Apply friction to rocks once they've hit the ground
Added "Place Bugs For Me" button
Basic Hint System. Give hints for the different revealed cell colours.
Finished Shop and it's functionality. Can purchase new weapons from the shop with earned coins.
Remove more debug logs
Bugs only drop coins on death, not on deletion
Player Coins
Add to coin count on bug death
Fix segment order on InspectorPanel
Don't consume pebble HitCount when hitting an already hit cell
Added Cost to WeaponResource
More coin drop fixes
Created ShopPanel and button to open Shop
AttackingInput does nothing when in Shop
Added Weak Rock Weapon
Remove CPU debug log
Mantis -> Dragonfly
Update Thumbnails & Thumbnail Generation
CPU fires more accurately at revealed bugs
Started support for CPU Board/Opponent
CPU Boards save their bug references properly
CPU Opponents now attack on their turn, chosing a random weapon when attacking.
Fixed lingering highlight component when hovering multiple bugs quickly
Create Coin Prefab and Component
Spawn Coins on Bug Death
Remove some unneeded debug logs
Position bugs on their cell properly
Bees float on sin wave with offset based on cell position
Remove unnecessary collisions from game_environment prefab
Model references in BugResource
Thumbnail generation Editor Tool for BugList UI
PlacingHud now shows bug thumbnails instead of coloured icons
Draw thumbnail icons on BugList, drawing correct segment type
Display thumbnail icons in inspector panel
Don't tint the bugs to their colour anymore.
Reposition body in prefabs, give each proper colliders
Determines head/body/corner/tail pieces and the needed rotational offset
Added BugListSegment to BugListEntry
Hovering a BugListSegment highlights the segment on the board if visible (and shows its inspector)
Assign categories to Bug GameResource
Rename Bug -> BugResource
Rename Weapon -> WeaponResource
BugResource now has definitions for different body part prefabs.
PlacingInput now determines which prefab to use on each cell when placing.
Fixed issues with calculating segment rotation on creation.