Commit Graph

223 Commits

Author SHA1 Message Date
Garry Newman
87db59546e Remove pointer-events: all from slidercontrol 2025-12-19 20:59:21 +00:00
Garry Newman
30f85d5270 Make a bunch of BaseControls SupportsMultiEdit 2025-12-19 16:37:55 +00:00
Garry Newman
d84f64c2c3 Fix wheel joint steering axis 2025-12-19 16:37:54 +00:00
Carson Kompon
551e10f8ee Make sure UI/Panel Eyedropper Tool works with recent GameEditorSession changes (#3637) 2025-12-19 08:04:55 -05:00
Lorenz Junglas
bf8a22f40b Avoid allocations in MergeDescendants by using recursion instead of yield return (#3644)
yield return creates a lot of garbage and is easily avoidable here, by using recusing instead.
2025-12-19 12:12:51 +01:00
Maxime Lebled
b2b9b03e46 Animgraph optimisations (#3645)
* Citizen/animgraph: optimise the skid layer by cutting it out completely if there has been no wish movement for the past 3 seconds. ~10% performance gain for players who are standing still.

* Citizen/animgraph: optimise the locomotion wish layer by cutting it out if wish values have been equal to 0 for the past 3 seconds. ~5% performance gain for players who are standing still.

* Citizen/animgraph: optimise the "turn poses / rotation lean" layer by cutting it out if move_rotationspeed has been 0 for the past 3 seconds. ~5-10% performance gain for players who are standing still or moving in a straight line.

* Citizen/animgraph: optimise the "standing shuffle" layer by cutting it out when move_rotationspeed has been 0 for the past 3 seconds. ~2-4% performance gain for players who are standing still and not turning.

* Citizen/animgraph: optimise the height scaling layer by cutting out scale_heel completely if you're not wearing high heels, and bypassing the entire layer if your height is default. ~3% performance gain for players with default height; unmeasurable if different height while without heels.

* Citizen/animgraph: oops, the skid layer optimisation should be checking against the skid values, not wish

* Citizen/animgraph: optimise the facial animation subgraph by cutting out the voice lipsync bone mask & blend nodes if the voice level has been 0 for more than 3 seconds, and by replacing the random blink machine, previously based on a Choice node that effectively rolled a 85/15 dice every second (but relied on 2 constantly playing sequences) by a state machine with the new "random time between" feature. The add node is now only active during a blink. Time between blinks is now random between 0.1 and 5.0 seconds.

* Humans: derive animgraphs from Citizen updates
2025-12-19 01:26:03 +00:00
Lorenz Junglas
3be8514e6d Partially revert "Fix additive scenes applying their NavMesh properties" (#3643)
Apply navmesh overrides from additive scenes, only ignore overrides from system scenes.

For some reason our startup scenes load as additive, so the navmesh settings of the startup scene would have been ignored.

Partially reverts https://github.com/Facepunch/sbox/pull/3555

We could also fully revert it if we want system scenes to be able to override navmesh settings.
2025-12-18 19:41:36 +00:00
bakscratch
d5daad537b Fast texture tool improvements (#3624)
https://files.facepunch.com/louie/1b1811b1/sbox-dev_wPVinlJTtE.png

-Support Tiling in the fast texture tool.
-Shortcuts.
-Escaping out resets to orignal uv.
-Unwrap Square better.
-World Mapping.
-Apply active material when entering fast texturing.
-Clicking in the rect view with no rect file fills to the full uv.
-Snapping toggle.
-Reset uv and focus buttons.
-New cleaner UI.
2025-12-18 16:30:58 +00:00
bakscratch
9c76279626 Pivot Picker (#3617)
https://files.facepunch.com/louie/1b1711b1/sbox-dev_tBYxduuoAY.mp4
2025-12-18 16:26:07 +00:00
Lorenz Junglas
4a050a9ab9 Animation optimizations v3 (#3635)
* Cleanup SkinnedModelRendererSetBoneMerge

* Proper bookkeeping for SkinnedModelRenderer Hierarchy

* Use ConcurrentQueue instead of Channel to reduce lock contention

* Limit animation update parallelism to Environment.ProcessorCount - 1

* BoneMerge in parallel

* Speed up native anim decompression using (lock-free) LRU posecache

* Remove some unused debug counters
2025-12-18 17:02:20 +01:00
Layla
3844a66923 Text rendering scope font smooth & 1 px aliased outline support (#3642) https://files.facepunch.com/laylad/1b1811b1/sbox-dev_CExpJeBiL5.png 2025-12-18 14:47:05 +00:00
Garry Newman
f241f16212 Simplifies WheelJoint creation (#3639) 2025-12-18 14:44:35 +00:00
bakscratch
b0d724d917 Bevel Tool Fixes (#3638)
Match bevel tool closer to hammer
-Steps more accurate
-Smooth normal option
2025-12-18 12:31:21 +00:00
sboxbot
bdbdbb9f2b Scope last selected SceneViewportWidget to SceneViewWidget (#3616)
- Remove static LastSelected SceneViewportWidget. It should be scoped to the last selected viewport within a particular Scene view
- Add LastSelectedViewportWidget to SceneViewWidget
- Re-add focusing the last selected widget that was hotfixed in #114

---------

Co-authored-by: aidencurtis <109600275+aidencurtis@users.noreply.github.com>
Co-authored-by: Carson Kompon <carsokompo@gmail.com>
2025-12-17 16:06:37 -05:00
DrakeFruit
3fd6045762 fix prefabs not being added to vmap references 2025-12-17 20:19:27 +00:00
Matt Stevens
0334844da0 Store hero 2025-12-17 20:11:15 +00:00
trende2001
cb69593be1 Fix UI not being resized to screenshot_highres dimensions 2025-12-17 18:17:01 +01:00
Carson Kompon
57b5efb655 Only download packages from the current project when opening in the Editor (#3619)
- Only download packages from the current project when opening in the editor
- Make sure to download packages referenced within any libraries in the current project
2025-12-17 09:59:28 -05:00
Layla
1b9ac54a83 Mapping tools resize mode (#3630) 2025-12-17 12:47:10 +00:00
Garry Newman
dc25e9f401 Fix DropDown control struggling with empty/null values 2025-12-17 12:03:03 +00:00
Sol Williams
f22c6ee375 ServiceWorldRequests while async map load is unfinished 2025-12-17 11:13:50 +00:00
Matt Stevens
8c25780848 Fix Compiler.config not being initialized by default
* Extended whitelist tests to use the other method of creating a compiler without explicit compiler settings
* Initialize Compiler._config as it's a struct so everything was zeroed before
2025-12-17 11:07:19 +00:00
Garry Newman
9ad0943c6a Add g_vSelfIllumOffset to shared ps code 2025-12-17 09:13:49 +00:00
Garry Newman
67e5970382 Fix exceptions in ParticleModelEmitter when model is null 2025-12-17 08:40:37 +00:00
bakscratch
dd62d51b63 Revert old Material palette style
https://files.facepunch.com/louie/1b1611b1/sbox-dev_ryYgKhzZ5X.png
2025-12-17 00:13:37 +00:00
Matt Stevens
84f0839ee4 CrashReporter: Add process name to context (#3625) 2025-12-16 23:37:55 +00:00
Matt Stevens
e0bf78e4d8 Optimize winter main menu 2025-12-16 20:02:34 +00:00
Layla
f40e74a093 Edge cut tool (#3629) 2025-12-16 17:22:03 +00:00
Antoine Pilote
c25d0aa594 Added ControlSheet.CreateRow 2025-12-16 11:18:45 -05:00
bakscratch
10c74fa037 Material palette groups (#3596)
https://files.facepunch.com/louie/1b1511b1/sbox-dev_yO6MOKHQIG.mp4
2025-12-16 14:09:07 +00:00
Garry Newman
b2122ed23e Fix popup/dropdown stylesheets 2025-12-16 12:56:04 +00:00
James King
fc1ed44b7e Make sure MovieResource.EditorData is set when saving (#3627)
Fixes Facepunch/sbox-issues#9744
2025-12-16 12:09:31 +01:00
Tony Ferguson
9f5a1917d8 Fix QtAppSystem steamApiDll never getting assigned (#3591) 2025-12-15 11:48:10 +00:00
Layla
0697a99bb8 Mapping polygon tool (#3620) 2025-12-15 10:35:09 +00:00
Layla
6e6bd37ac8 always draw brush preview (#3609) 2025-12-15 10:34:36 +00:00
sboxbot
34b0916da6 Add Collision Rules to NavMeshAgent Ground Trace (#3621)
Co-authored-by: J Shwiizzle <160753124+SwagAccount@users.noreply.github.com>
2025-12-13 19:12:47 +00:00
Carson Kompon
ceed0ccda5 Fix nametags showing above menu for humans on main menu 2025-12-13 13:43:15 +00:00
Andy
c3994087f9 Prevent INetworkListener OnDisconnected being called on clients 2025-12-13 13:41:36 +00:00
Carson Kompon
574de7aa0c Scene Mapping - Fast Texturing Tool (#3573)
- `PolygonMesh.SetFaceTextureCoords()` now properly sets `IsDirty`
- Added `PolygonMesh.GetFaceTextureCoords()`
- Added `FastTextureWindow` (which extends RectEditor.Window) and `FastTextureSettings` classes
- Added `MeshRectangle` which is a RectEditor `Rectangle` that contains faces from a mesh unwrapped within the rectangle, reflecting any transform changes made back to the associated mesh faces
- Added `EdgeAwareFaceUnwrapper` class which handles all UV unwrapping
- Added a "Fast Texturing Tool" button to the Mapping Tool's Texture Mode which opens a FastTextureWindow with the selected faces. This can also be opened with the shortcut CTRL+G (from the Texture Mode OR the Face Mode)
- If a Fast Texturing Tool window is open and the faces are deselected (or the user exits the Mapping Tool) the window will automatically close itself
- Implemented U/V Alignment Settings (+ Horizontal/Vertical Flip)
- Implemented Inset X/Y Settings
- Implemented Square Unwrap, Planar Unwrap, and Use Existing mapping modes
- If the selected material has a rect asset, you can double-click on a rect to automatically fit your UV rectangle to the one you double-clicked. (You can also toggle the visibility of the material's rects)
- Implemented the "Pick Edge" button which allows you to select an edge from the unwrap and automatically orient the UVs so that the selected edge is aligned with the grid.
- Added `Rectangle,CanDelete`, used by MeshRectangles so they cant be deleted
- Fixed `RectView.DragResizeRect` behaviour so that resizing a rect will snap the dragged edges to the grid instead of just increasing/decreasing by the grid size
- Added Panning/Zooming to the Rect Editor
- Disabling the Grid in the RectEditor now disables grid snapping
- Can now resize rects in on themselves to resize in the other direction without making an invalid rect
- Added Tile View to RectView
2025-12-12 11:20:30 -05:00
Matt
6d96831e2d Reset Game.IsPaused when the scene is stopped.
Tint pause button blue when the game is paused.
2025-12-12 13:40:02 +00:00
sboxbot
d3c9e389d0 Fix GameObjects in GameObjectSystem NetLists being null on clients (#3613)
* Fixes GameObject references in GameObjectSystem NetLists and NetDictionaries being null on clients.

* dotnet format

---------

Co-authored-by: Andy <10728824+andy013@users.noreply.github.com>
2025-12-12 13:39:40 +00:00
Andy
62c7df605d Call SceneLoaded listeners for clients 2025-12-12 13:39:00 +00:00
Carson Kompon
e09b8c18d8 Allow scss variables to be used in @keyframes (#3607) 2025-12-12 08:04:09 -05:00
Matt Stevens
85802c7d35 Terrain: Create buffers once with sane defaults, make sure they are always bound 2025-12-12 12:38:53 +00:00
Conna Wiles
c570971a1d NetList/NetDictionary Callbacks (#3556) 2025-12-12 11:07:55 +00:00
sboxbot
a28a2b7fac Fix package visibility overlay (#3597)
---------

Co-authored-by: DrakeFruit <foxflowgaming@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-12 11:04:16 +00:00
sboxbot
af5ab2abfe Add formatting to indicate state of sound preview toggle buttons (#3610)
---------

Co-authored-by: johncosfm <splatterbiker@gmail.com>
2025-12-12 11:03:43 +00:00
Kicks
909f4f3df8 Fix overload of Gizmo.Draw.Model
Fixes an overload of Gizmo.Draw.Model returning SceneObject instead of SceneModel
2025-12-12 11:03:11 +00:00
Andy
aa7f9e1965 Fix DebugOverlay.Text being culled when looking away from the scene origin 2025-12-12 11:02:22 +00:00
Layla
be03c4c12c add merge meshes operation to mesh selection mode (#3611) 2025-12-12 07:16:29 +00:00