946 Commits over 549 Days - 0.07cph!
Fix mask image test layout
Hide "open menu screen" editor buttons if project isn't active
Don't know if this is permanent. Related to sboxgame/issues/3318
Custom mask-scope property: default for normal masks, filter to apply to any filters
Useful for applying blurs etc. in select areas
https://files.facepunch.com/alexguthrie/1b2311b1/sbox_69UkTGRaTg.mp4
CSS Masks (#1040)
https://files.facepunch.com/alexguthrie/1b2211b1/sbox_fQKTQ4VNsj.mp4
Do optimized compiles for ui_cssbox and ui_filter
Revert temp changes I made to the menu, didn't mean to commit these
Full mask shorthand support - should work with all combinations I think
Fix mask-position
Move image rect calculations into a class shared between background image and mask image
Initial `mask` shorthand support
Initial mask-image implementation
https://files.facepunch.com/alexguthrie/1b1711b1/sbox_YDcpSIrUj9.png
Mask-mode property, supports luminance & alpha
New mask-image tests
Apply css mask in panel layers
https://files.facepunch.com/alexguthrie/1b1811b1/sbox_T4K1fa32Po.png
Tests for mask-position, mask-size
Basic mask-size, mask-position support, use custom alpha texture for tests
We handle proper defaults for mask-size and mask-position, so no need to hack around it
MaskAngle, convert to radians properly after parsing angles
Use dict for angle direction LUT (easier to read)
Fix RotateTexCoord not rotating correctly when given radians as input
Simpler mask image test menu
Simpler mask image test menu
Fix RotateTexCoord not rotating correctly when given radians as input
Basic mask-size, mask-position support, use custom alpha texture for tests
We handle proper defaults for mask-size and mask-position, so no need to hack around it
MaskAngle, convert to radians properly after parsing angles
Use dict for angle direction LUT (easier to read)
Tests for mask-position, mask-size
Apply css mask in panel layers
https://files.facepunch.com/alexguthrie/1b1811b1/sbox_T4K1fa32Po.png
Initial mask-image implementation
https://files.facepunch.com/alexguthrie/1b1711b1/sbox_YDcpSIrUj9.png
Mask-mode property, supports luminance & alpha
Asset list: show padlock on local assets without source content (issues/2364)
Multiple asset browsers (#994)
Refresh cookies when visibility is changed to true rather than inside DoLayout
DoLayout is called every frame in some cases, this fixes flickering caused by that
Make EditorMainWindow default layout more readable, uses a raw string literal
Auto-add widgets created thru DockManager.Create<T> to dock
TryCreate throws exceptions so we'll just make it Create instead
Handle copy/move when dragging from file explorer
When creating widgets by type, pass "this" dockmanager in constructor args instead of calling SetParent manually later
Make widget creation error messages more helpful
Don't append instance count to window titles
Update EditorMainWindow default layout to include managed type data
Remove logs, throw errors where appropriate
Delete on close, any existing windows must be valid
OnCreateDock handles managed types
Add "New Asset Browser" to View menu
Unique cookie keys for asset browser instances, means we can save settings per-window
DockManager.TryCreate public API uses generic type
Clean up creating DockManager widgets based on type name
Hook up managed types names to native dock manager
Squashed commit of all the asset browser drag/drop stuff
Remove crafting bench from dev map
Iron plate prefab, update miner & smelter recipes
Inventory bugfixes
Crafter prefab
Miner / smelter prefabs
Fix crafting recipes not taking more than 1 of each input from inventory
Tidy up building ghosts
Hide crafting menu after crafting something
Simplify Inventory giving code
PlayerControllerMechanic filename reflects class anme
Add built-in building placement tool
Remove build hammer
Fetch inventory items by slot in UI
Crafting successful event
UI notification system, OnEvent attributes
Add prefab reference to crafting recipe
Sync BuildToolComponent target, use for building placement
Miner prefab tweaks
Use warning instead of error for prefabs without tags
Hide placement debug stuff behind debug_buildsystem convar
Cleanup
MenuPanel - set visible class inside OnVisibilityChanged, check for E key as well to close
Abstract show/hide into MenuPanel for Inventory/Crafting, add escape to hide
Move components into sub-folders, move enums out into their own files
Helper method for prefab enumeration
Cleanup
Auto propagate RunGameEvents
Use events to show crafting bench UI
Fix NRE when trying to drop blank inventory slot
Split dropping and removing logic
Basic crafting logic, rename Items to Storage
Just use a transform silly!!
add Item.IsActive prop
Trim unused inputs
Interacting uses RMB, ignores buildzone tag
Crafting Recipe Library
UI cleanup
Building placement bounds check
Separate build component out logically into multiple files
Organise prefabs into folders
Fix oversight where entire inv would become highlighted when dropping active item
Basic building logic
Show character in inventory
Inventory debug UI
Delete unused pistol/smg prefabs
Build hammer prefab 🔨
Highlight active item in hotbar
Set max stack size to 100 instead of 64
Half-decent inventory styling
Add Item.OnDrop
Inventory bugfixes
Inventory - trim the fat, move back to prefabs for consistency between all items
Split Item into Material and Tool, should help keep things a lot more
organised since we can separate their behaviours
dev_islands map w/ build
dev_islands map as default
Build zones
Inventory refactor, supports slots, backed by GameResources
Initial commit
Update .addon, basic inventory
Hook inventory UI up
Placeholder iron ingot model
Iron ingot prefab
Debug - give players all item prefabs on spawn
Show item names in inventory UI
E to open inventory
Hotbar UI & inventory logic
Shite item dropping
Use constant for asset browser instance title
Tidy up MainAssetBrowser, move relevant stuff into MainAssetBrowser.Instances.cs
These docks aren't really transient because they persist between sessions, let's call them dynamic
Move dynamic window creation into DockManager, cleanup
Simplify AddWindow title/name handling
Rename IsTitleMatch to IsMatch, less confusing