17,196 Commits over 1,308 Days - 0.55cph!
Add PhysicsBody.GameObject (for non entity)
Cleanup editor ui
QHammerMainWnd is a managed DockWindow, start moving Hammer dock widgets over to DockManager
Everything in hammer is added through managed DockManager
Asset browser doesn't need to be made from native, use [Dock]
DockManager manages View toolbars menu, delete all native for it
Dock widgets dont need to be QDockWidget anymore
Use StateCookie to save Hammer layout, add a default layout
Added Tags to Surface (HasTag, HasAnyTag, HasAllTags - define tags in resource)
Remove ClientEntity.HasPermission (unused)
Fix up editor for entity workflow
Shadergraph: Save prompt when closing with unsaved changes
Remove global light usage (used in dota pipeline?)
Remove unused deferred_light files
Delete sprite entities, mostly to get rid of the toolobject
Texture editor (#1259)
Creates 2D textures and basic 2D sprite sheets to avoid having to write vtex and mks by hand
Load sheet data from vtex json
Load from sheet data if we have more than 1 image
Trim the bullshit from vtex json, we only care about 2D and sprite sheets for now
Creating texture through context menu with multiple selected textures creates sheet
Custom button drawing for list property so they don't look awful
If we open editor with vtex with dmx encoding, just create empty texture file
Property sheet target can now just be the texture file
Only mark as modified if json has changed
Set known Game.Server fields when running Game.Menu.StartServerAsync (sboxgame/issues#3980)
Decrease block increment size, can get finer selections (i.e PackageCard modal button)
Fix FindPanelsAt never finding more than 1 panel
Give eligible panels a score and give it some data to score by, focus the lowest scoring panel, also hook up selection and scrolling
Make Hammer gizmo sceneworld get added to view again
Using abs here tries to use stdlib and it's not linked, use V_fabsf instead
Starting on the interpreter
Sizes passed to ImageRect.Calculate with Undefined unit will correctly use default size
Default text overflow to "None", spec default is clip but ours behaves differently - this will do for now
Give `line-height`, `letter-spacing` and `word-spacing` default values, no need to null check them
Don't implicitly clamp backgrounds if background-size is `cover`
Handle LengthUnit.Undefined gracefully, document
Remove links if types become invalid
Implement updating node parameters
Work on finding panels from delta, fixed not finding an initial focused panel
Add VerticalLayout, clean up layout system
Fix not loading entity prefabs
Fix editor FirstPersonCamera not obeying dpi scaling
Cleaner selection
Noodling with nodes
More noodling
WIP blueprint node interface
Fleshed out NodeType
NodeType tweaks
Input / output signal support in NodeType
Blueprint<T> skeleton
Some more example nodes
Blueprint node graph modification methods
MethodNodeType, refactoring
Move blueprints to Sandbox.Engine
Basic blueprint test setup
Test refactoring, improving graph composition API
Big refactor
Renaming / reorganizing
Some helper methods for adding nodes
WIP dealing with dynamic node definitions
For example Event nodes that have different output sockets
Add EntityPrefab.JsonValue (replaces Value, which is still there for backcompat)
Add Json.ToNode, Json.FromNode
Serialize/Deserialize [Property]'s on IPrefabComponent manually
Changing prefab interface names
Call GetPixels() on backdrop filter props instead of getting Value directly, fixes percentage/fraction-based filters
Fix edge case for FindDeepestNodeContainingSpan
Ignore SourceLocationAttribute in ILHotload
Fix edge case for FindDeepestNodeContainingSpan
Add PanelTraversalOverlay (for lack of a better name)
Refactor, add ControllerOverlay, so we can add another overlay for panel traversal selection
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