22,466 Commits over 1,614 Days - 0.58cph!
CSS: Better Autogen (#1222)
Leaves out nullability changes for a later pain day, but includes layout cascade auto-gen, transition/animation default value handling w/ auto-generated defaults, and guarantees a value for every property in ComputedStyles (although the compiler isn't aware of this yet).
VCS: only tick for panels that want mouse input
VCS: fix is-pressed style
Turn BaseStyles members into a table containing type, default value, and inheritance state, generate BaseStyles.Defaults
Auto-generate layout cascading based on inheritance state
Use BaseStyles.Default instead of hardcoding defaults
Similar to `css-defaults` branch but this does it better - so I'm
deleting that in favour of this.
Rather than hard-coding the default value every time we fetch it:
```cs
var value = Styles.BackgroundColor ?? Color.White;
```
We should be doing something like:
```cs
var value = Styles.BackgroundColor ?? Default.BackgroundColor;
```
Provide default values as fallbacks for style transitions, use LerpProperty inside BaseStyles.FromLerp
In FromLerp, check if the property we're trying to change is actually changing
Prevents us from stomping property changes when a transition is running
with `transition: all` if you have an animation running simulataneously
Move default styles into `DefaultStyles`, make everything readonly
VirtualScrollPanel uses DefaultStyles
Only use fallback inside Lerp functions if from/to are null
Move null checks into Lerp functions, remove logs
Tidy up, use same code path for lerps
Refer to default values in docstrings, inherited/cascading values lerp to their initial `from` values if `to` is unset
Merge fixes, Name -> TypeName
Generate FillDefaults() function, call inside PreLayout.BuildFinal, add Length.Undefined
Fix a bunch of defaults (need better way to check if a property is set tho)
Add `Style.IsDefault( name )`
Bad idea to call FillDefaults here since it will stomp previous keyframes
backdrop-filter-hueRotate is backdrop-filter-hue-rotate (oops)
mask-position defaults to 0,0
Use IsDefault when necessary inside tests (HasValue will always be true for ComputedStyle properties), only check where necessary (i.e. if we're not also checking the value itself)
Scrolling fixes
Remove DefaultStyles, internalize IsDefault, FillDefaults, ApplyCascading
Handle `overflow` prop defaults separately
Use HasScrollY inside panel input
Get rid of remaining null coalescing shit - ComputedStyle properties are no longer null
ComputedStyles has its own class w/ no nullables, helps clean things up
Remove unused, clean up
Start drafting out UI navigation with controller, by traversing panels
Refactor so we can switch between panel traversal and virtual cursor based on input
Don't revert back to PanelTraversalSystem if analog is empty
Add basic working virtual cursor using PanelInput.UpdateMouse
Fixed calculation of virtual cursor position
Use stylesheet to style virtual cursor, add ScrollSpeed
Refactor, virtual cursor as its own rootpanel so we don't add a panel to every root panel we access
Disable system if mouse is moving at all
Make VirtualCursorOverlay a razor panel
Update SteamInput manifest to include joystick inputs for Menu action set
Hide mouse cursor while we have controller input active
Support processing any number of root panels, make it work in GameMenu
Scale ControllerInput.GetAnalog by Input.ControllerLookYaw(Pitch)Speed
Scale virtual cursor position movement by delta time, no wonder it felt different on GameMenu
Process inputs in MenuDll
Remove some direct controller access, use Input.AnalogMove/AnalogLook instead
Don't moan about missing voice input
Process inputs in MenuDll
Remove some direct controller access, use Input.AnalogMove/AnalogLook instead
TypeSerializedObject handles editing value types from multiple TypeSerializedObject's
Float and integer controls have draggers
Fix ControlWidget.Create sometimes selecting wrong types
Add AnglesControlWidget
RotationControlWidget
Added TransformControlWidget
Add MarginControlWidget
Add RectControlWidget
Add BoolControlWidget
Failing test reproducing #1257
Fixed #1257
Add non inherited variant of GetTypesWithAttribute
Integer editors
Added TypeLibrary.GetEnumDescription
Enum/Flags controls
Fix error on startup
Color.TryParse fixed
Added ColorControlWidget
Add TypeDescription.Fields
TypeDescription and MemberDescription include SourceFile and SourceLine (allows sorting properties by line number)
Add ControlSheet to Widget Gallery
Switch prefab editor to use ControlSheet
Refactor
Redraw widget when dropped on status changes
Hook up properties to texture file settings we care about for 2D
Restore unmodified file on close if file has been modified and not saved
Allow windows to bypass closing (for save prompts etc)
Throw up save prompt when closing with unsaved changes
Add asset browser for quick drag drop of images
Use tab widget for 2d, array, cube types
Don't save if there's been no unsaved changes
Refactor, more lenient on type conversion
WIP widgets
Test support for deep tree SerializedProperty
Fix basic Random primitives (#1219)
* Fix (Rotation / Vector2 / Vector3 / Angles).Random
* Add some System.Random extension methods
* VectorInCircle
* VectorInSphere
* VectorInSquare
* VectorInCube
* Gaussian (+ 2D / 3D / 4D)
Add Sandbox.System to TypeLibrary
Add SerializedProperty.TryGetAsObject
Expose TypeLibrary.GetSerializedObject
Add alternatives to Asset for loading with a Type instead of generics
Make SerializedProperty more useful
Lets start converting widgets over to using SerializedProperty
Fix AssetInspector causing a repaint every frame
Set PropertySheet size mode
Component sheet cleanup
ModelDoc: Add camera near Z setting
Some helper methods for adding nodes
Add generic interfaces for prefab system
Prefab editor doesn't need to be an entity
Big refactor
Renaming / reorganizing
Turn BaseStyles members into a table containing type, default value, and inheritance state, generate BaseStyles.Defaults
Auto-generate layout cascading based on inheritance state
Use BaseStyles.Default instead of hardcoding defaults
Similar to `css-defaults` branch but this does it better - so I'm
deleting that in favour of this.
Rather than hard-coding the default value every time we fetch it:
```cs
var value = Styles.BackgroundColor ?? Color.White;
```
We should be doing something like:
```cs
var value = Styles.BackgroundColor ?? Default.BackgroundColor;
```
Provide default values as fallbacks for style transitions, use LerpProperty inside BaseStyles.FromLerp
In FromLerp, check if the property we're trying to change is actually changing
Prevents us from stomping property changes when a transition is running
with `transition: all` if you have an animation running simulataneously
Move default styles into `DefaultStyles`, make everything readonly
VirtualScrollPanel uses DefaultStyles
Only use fallback inside Lerp functions if from/to are null
Move null checks into Lerp functions, remove logs
Tidy up, use same code path for lerps
Refer to default values in docstrings, inherited/cascading values lerp to their initial `from` values if `to` is unset
Merge fixes, Name -> TypeName
Generate FillDefaults() function, call inside PreLayout.BuildFinal, add Length.Undefined
Fix a bunch of defaults (need better way to check if a property is set tho)
Add `Style.IsDefault( name )`
Bad idea to call FillDefaults here since it will stomp previous keyframes
backdrop-filter-hueRotate is backdrop-filter-hue-rotate (oops)
mask-position defaults to 0,0
Use IsDefault when necessary inside tests (HasValue will always be true for ComputedStyle properties), only check where necessary (i.e. if we're not also checking the value itself)
Scrolling fixes
Remove DefaultStyles, internalize IsDefault, FillDefaults, ApplyCascading
Handle `overflow` prop defaults separately
Use HasScrollY inside panel input
Get rid of remaining null coalescing shit - ComputedStyle properties are no longer null
ComputedStyles has its own class w/ no nullables, helps clean things up
Remove unused, clean up
▄▇▇▋▅▄▋▅▉ ▌▌██▉▆▄ ▌█▅▉▆ ▇▊▍▊▊█▋ ▅█▅▌▌▆.▍▇▆▅█▇▄▇▉▄▆▆▋▌▅ █▊▌ ▍▅▊▊▊.▇▅█▊▍
ComputedStyles has its own class w/ no nullables, helps clean things up
Fix hi-z depth chain with offsetted viewports
Don't recycle depth from aoproxies for dynamic reflections, loses a fast depth prepass but focus on correctness first
Boxing Outfit
https://files.facepunch.com/daniel/1b0811b1/choose_your_fighter.png
Lods and skinning adjustments coming ASAP.
Boxing Gloves + Boxing Shorts
Plus updated version of the Tanktop
Experiments with layering cameras and multiple viewports
Copy tonemap params from ActivePostProcessEntity to scene camera tonemap params
Enable scene camera tonemap by default
Scale ControllerInput.GetAnalog by Input.ControllerLookYaw(Pitch)Speed
Scale virtual cursor position movement by delta time, no wonder it felt different on GameMenu
Add SceneCamera.Skybox, port sky entities & client logic to C#
Make VirtualCursorOverlay a razor panel
Update SteamInput manifest to include joystick inputs for Menu action set
Hide mouse cursor while we have controller input active
Support processing any number of root panels, make it work in GameMenu
Cleanup & document
These should be Entity.IsValid() checks
Use SkyboxScale not Scale
Scale safety check
Start drafting out UI navigation with controller, by traversing panels
Refactor so we can switch between panel traversal and virtual cursor based on input
Don't revert back to PanelTraversalSystem if analog is empty
Add basic working virtual cursor using PanelInput.UpdateMouse
Fixed calculation of virtual cursor position
Use stylesheet to style virtual cursor, add ScrollSpeed
Refactor, virtual cursor as its own rootpanel so we don't add a panel to every root panel we access
Disable system if mouse is moving at all
Refactor, virtual cursor as its own rootpanel so we don't add a panel to every root panel we access
Disable system if mouse is moving at all
Fix joining a server being fucked
Render texture in viewport preview
Support vtex in asset preview widget
Properties dock
Get rid of remaining null coalescing shit - ComputedStyle properties are no longer null
Experiments with layering cameras and multiple viewports
Use HasScrollY inside panel input
Test refactoring, improving graph composition API
Move blueprints to Sandbox.Engine
Basic blueprint test setup
Actually use the sky_camera position
Fix rebase error
I don't think anyone has ever used this command
This cubemap code wasn't even setting any used attributes?
Cleanup
CEnvCubemapFog compatability with C# sky_camera, temp cause we're gonna move that to C# soon enough