157 Commits

Author SHA1 Message Date
Garry Newman
675f55005e Pause menu 3 (#3663)
* Add TextureFlags
* Add TextureFlags.PremultipliedAlpha in text block and webpanel textures
* Add BlendMode.PremultipliedAlpha
* Add panel to PauseModal
2025-12-23 15:11:25 +00:00
Layla
677282f1cd fix typo causing unduck headroom check to fail 2025-12-23 14:30:40 +00:00
Antoine Pilote
9331f2bffa Fixed opaque & non-opaque sprite sorting (#3660) 2025-12-22 16:29:31 -08:00
Layla
592575afe5 fix small mistake in EnhancedCcd 2025-12-22 22:15:21 +00:00
Layla
7a3cccfcb4 Rigidbody isbullet (#3649) 2025-12-22 21:35:49 +00:00
Garry Newman
e0ce9ace1d Update default pause screen (#3659) 2025-12-22 18:13:07 +00:00
Layla
99ed8d97b2 fallback to shortcut without modifier if the shortcut doesn't exist with modifier (allows things like tool switching while modifier is down) (#3653) 2025-12-22 08:32:18 +00:00
Layla
35aedbbd79 Advanced properties (#3652) 2025-12-22 08:31:55 +00:00
Sol Williams
c496bedb0d Component context menu tidy (#3582)
* Only show property-prefab options on prefab instances, simplify names a bit

* Tweak these to match

* Transform

* Order

* Guessing this meant to pick the shortest source location path

* dotnet format
2025-12-22 07:15:06 +00:00
Lorenz Junglas
08c4ae6d73 Animgraph pose node optimizations (#3646)
* AddPoseOperation skip work when added transform is equal to identity

* SubtractPoseOperation skip work when added transform is equal to identity

* Fast path for BlendUpdateNode when weights are 1

Don't emit expensive pose op just forward the pose with weight 1

* Fast path for Blend2DUpdateNode when weights are 1

Don't emit expensive pose op just forward the pose with weight 1

* Avoid allocation of Actions in MergeDescendants
2025-12-22 07:09:45 +00:00
Garry Newman
0298759d1f Panel animation uses double time 2025-12-21 08:49:47 +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
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
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
DrakeFruit
3fd6045762 fix prefabs not being added to vmap references 2025-12-17 20:19:27 +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
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
67e5970382 Fix exceptions in ParticleModelEmitter when model is null 2025-12-17 08:40:37 +00:00
Matt Stevens
84f0839ee4 CrashReporter: Add process name to context (#3625) 2025-12-16 23:37:55 +00:00
Layla
f40e74a093 Edge cut tool (#3629) 2025-12-16 17:22:03 +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
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
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
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
Matt Stevens
57d29e6f67 Really fix build 2025-12-11 16:53:19 +00:00
Matt Stevens
1c547b62aa Fix build 2025-12-11 16:34:04 +00:00
Matt Stevens
744cb42baf Menu editor code runs in menu project, and generates csproj 2025-12-11 16:10:51 +00:00
Lorenz Junglas
de71992f7b Manually create .source2 dir for unit tests (#3599)
Fixes public tests failing because of missing directory.
2025-12-11 15:06:21 +00:00
Lorenz Junglas
94bb6f886b Shutdown scene early (#3576)
* Destroy ActiveScene early during game shutdown
* Don't call into native when deleting scenemaps
2025-12-11 09:10:03 +01:00
Matt Stevens
1b80ecd2e9 Managed CrashReporter (#3595)
Remove C++ crashreporter and reimplement in C#, add various session id tags and send payload to our own API
2025-12-10 16:32:17 +00:00
Layla
4e9cf595ff mapping tool mesh selection mode (#3588) 2025-12-10 16:27:44 +00:00
Garry Newman
5046b22eee Sandbox updates 3 (#3589)
* Gibs copy tint
* Add ClientEditableAttribute
* Panel based ControlSheet supports ToggleGroup
* Panel based ControlSheet hides empty titles
* Fix SliderControl default step
* Fix SliderControl text box resizing
* Fix slidercontrol number entry not getting styled
* ControlSheetGroup support ShowIf
* Make wheel joint properties ClientEditable, add steps
2025-12-10 14:43:30 +00:00
Lorenz Junglas
91f8fcf183 Speed up / parallelize tests (#3587)
- Added Sandbox.Test.Unit project (contains independent tests that can run in parallel) 
- Modify some slow/stress tests (e.g. instead of doing a million iterations settle for 10k).

Tests run almost twice as fast now.
2025-12-10 14:23:00 +01:00
Carson Kompon
96ae37b705 Mouse.Visibility no longer affects Game.IsMenu (fixes issue where pause menu can't be interacted with in some games) (#3583) 2025-12-10 08:20:07 -05:00