Adds a universal way to get thumbnail images.
- `thumb:entities/sents/npc/scientist.sent` - resources/assets
- `thumb:mount://ns2/ns2/models/effects/exosuit_part1.model.vmdl` -mount files
- `thumb:facepunch.snowman` - packages
This greatly simplifies UI like the spawnmenu that needs to show thumbnails for these things.
We also add `AssetTypeFlags.IncludeThumbnails`. If this is set then when the package is published, any asset types with this flag will include a "[path].c.png" thumbnail image of it.
Also does Api++ protocol increase.
* 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
- `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
* Stop generating solutions via -test flag add -generatesolution
* Add TestAppSystem remove Application.InitUnitTest
Avoids some hacks and also makes sure our tests are as close to a real AppSystem as possible.
* Add shutdown unit test
shuts down an re-inits the engine
* Properly dispose native resources hold by managed during shutdown
Should fix a bunch of crashes
* Fix filesystem and networking tests
* StandaloneTest does proper Game Close
* Make sure package tests clean up properly
* Make sure menu scene and resources are released on shutdown
* Report leaked scenes on shutdown
* Ensure DestroyImmediate is not used on scenes
* Fix unmounting in unit tests not clearing native refs
* Force destroy native resource on ResourceLib Clear
- Now supports drawing on a BaseLayer and OverlayLayer
- Terrain Tools displays a material palette in a sidebar
- Added C# API to sample terrain material at a given position
- Can now import multiple splatmaps at once mapping to texture indices ( [0, 3], [4, 7], etc.)
https://files.facepunch.com/antopilo/1b0511b1/sbox-dev_An6nbxpqe3.mp4
* Fix SSR not reprojecting correctly and drifting on downsample, reference original code and backport some of the stuff from motion vectors too, major cleanup
* Logic for RenderTarget.GetTemporary probably shouldn't ceil, causes a lot of drifting in SSR even though the logic is correct, can see downsampling up to 10 and still remaining sharp
https://files.facepunch.com/sampavlovic/1b2511b1/sbox-dev_dB9j5ipUTA.mp4
* Barriers are very strict on Intel ARC, make them explicit for SSAO and SSR, while at it make this logic for SSR simpler
For reference this is how it could appear on Intel ARC B580
https://files.facepunch.com/sampavlovic/1b2511b1/sbox-dev_UjkEGVD4k4.mp4
* CommandList.ResourceBarrierTransition for Textures/RenderTargets
* Fix Reflections_GetHitPositionReprojection while being aware of Motion::Get for future Motion Vector API, deal with temporal stability better
https://files.facepunch.com/sampavlovic/1b2811b1/sbox-dev_He8gAbtPau.mp4
* Build shader
* Format
* Impact damage system added to Rigidbody
* Fix Rigidbody Velocity and AngularVelocity not getting applied if object wasn't created yet
* Props only ignite from impact damage if it's significant
* Fix gibs not properly inheriting parent object velocity