Fix errors when first creating terrain, make sure it's all updated, don't render without storage
Only recreate clipmap if we have to, this takes time to build
Support more than 1 gamepad input action with the same button
Add ParticleVector3
Add LargeNetworkFiles table
Respect JsonIgnoreAttribute when serializing component properties
We were already checking it for fields
Revert "Add LargeNetworkFiles table"
This reverts commit 7365c616af37ef1665abe4961344013815e89b70.
Accidentally rebased master onto a branch - Metapyziks
Fix warnings in ParticleVector3ControlWidget
Fix some download toasts sticking around forever, and incorrectly displaying as cancelled
Populate Json reflection cache in Json.Initialize
We were seeing some long frame times during first-time prefab instantiation caused by this
Do panel bind/parameter events when things change even if tree is empty, Facepunch/sbox-issues#5908
Custom panels that do stuff/populate from attributes etc should work again now, incl settings page
Don't use internal message type for changing level
Fixed retry logic
Docs
Download from server (#1632)
Download game asset files from the server, when not using a package. This allows people to make "local only" games and test them locally and multiplayer.
In the future we can change the download method to upload and download from our backend instead of over network.
Tidy and make some context menus more consistent, prevent selecting unworkable options, add hierarchal path support to create asset menus
Fix for AO outline
AO moved in PP to post-transparent to ensure that sky-dome is rendered before AO
Merge branch 'master' of sbox
Add serialization_warn_time con var
https://files.facepunch.com/ziks/2024-07-24/sbox-dev_0DtqgKK1dt.png
Better particle randoms
Fix Json.PopulateReflectionCache
JsonTypeInfos would only be stored if the JsonSerializerOptions is immutable
LineRenderer has a UseVectorPoints option
Don't implicitly set zfar as infinity, if we want to do so we can do from C# side, but make it respect what we pass as zfar
Fix IBL not working, Transparency in AmbientColor is used to lerp between artist's decided flat color and IBL/GI, defaults to GI
AmbientLight component defaults to Gray color
Fix bug in capsule tracing, fixes picker in modeldoc when using capsules
Fix LineRenderer bug
ParticleFloat, ParticleGradient have evaluations where you pass in the particle , which reduces the risk of fucking up the parameters
Move ParticleRenderer's into own folder
ParticleController has OnParticleCreated
Add Particle.BaseListener - allows creating of classes that run on particle create, update and destroy - with instance data and guaranteed destroy
Add ParticleLightRenderer
Restore skeleton compile to how it used to be, we're missing optimizations by just keeping every bone no matter what
Add ParticleModelRenderer
Fix new game objects created thru heirarchy context menu always spawning at 0,0,0
Fix Vector2.Json serialization only loading x value when supplying string as json object and not number array. Also updated function summaries that said "vector4" instead of "vector2"
Vector2Int and Vector3Int values now serialize to/from JSON properly. Resolves Facepunch/sbox-issues#5821
Created Vector2Int/Vector3Int ControlWidgets. Resolves Facepunch/sbox-issues#5606
Expose particle DeathTime, so effects can use it to do calculations
Fix ParticleSpriteRenderer error when no texture defined
Add ParticleEmitter.RateOverDistance , overrides for manipulating burst count, rate count
Asset picker: will now grab/install remote cloud assets when selected (fixes Facepunch/sbox-issues#5904), improved validation so you can only select resource types you're supposed to
Stop prefab source widget changing value and closing picker before a selection has been submitted
Added a lot more functionality to Vector2Int and Vector3Int. Much more in line with their floating-point counterparts now, only including what makes the most sense for integer values. Also added documentation/summaries to everything. Resolves Facepunch/sbox-issues#5254
Fix Vector3Int converter error
Asset picker: only allow multi selection if we want that
Don't make VectorInt properties readonly since some games set them already (fixes tests failing)
VectorInts are fields instead of properies (like they used to) with [JsonInclude] fields
Added OnOrg to PackageCard and PackageList. Added basic Org Page when clicking org on Main Menu. Helps users find games made by the same creator(s).
https://files.facepunch.com/CarsonKompon/2024/July/26_01-31-CuddlyCaracal.mp4
Disable AssertNoGraphErrorsInScene test temporarily
AssertNoGraphErrorsInScene: assert downloaded package version
Package.FetchAsync: allow fetching specific version
Cache versioned packages separately
Reference package.base from libraries when publishing
Fixes Facepunch/sbox-issues#5899
Use same asset picker size/location cookie regardless of what control created it
Get rid of special case map picker
Don't set active scene on tab hover but still do gizmo hover interactions, drag drop etc. Avoid needing awkward 2nd input, Facepunch/sbox-issues#5728
CRenderDeviceBase::AsyncSetTextureData2: Fix nullptr crash with invalid rects
Don't completely fail to start with an invalid controller plugged in, needs to be properly fixed in C++ though
Disallow np2 textures, crashes the DXT compressor we use, plus disables mips etc.
Expose BlendMode
Move D_BLENDMODE to common/blendmode.hlsl - so we can pull it into other shaders easy
SceneLineObject supports texture + uvs
Autoswitch to game tab when going into playmode again (oops)
UI: Do not render invalid texture background images
Fix missing map select button
Make sure directory tree exists when downloading from server
Stick verbose network files messages behind 'debug_network_files' convar, print elapsed time Facepunch/sbox-issues#5912
Stop big server lists squashing the rows, styling tweaks Facepunch/sbox-issues#5943
Set collision attributes on map instance collision shapes, I missed this out when switching from native aggregate instances
Add ParticleTrailRenderer, TrailRenderer components
Add a margin to the right of component sheet, to accommodate the scrollbar
Fix NRE in SceneNetworkSystem.OnLeave
PhysicsGroupDescription grabs physics tags from aggregate backing data so they can be string token cached. This allows trace result tags to be valid because they'll be reversable by string token
Apply aggregate tags in C# instead of this massive inline bind function
Fix index out of range accessing backing data collision attributes
Use is valid checks in rigidbody
Fix possible project startup NREs
Move all terrain attributes into 1 structured buffer, create a Terrain class any shader can use to provide things like Terrain::GetHeight( worldPos )
Use an AssetPicker for browsing terrain materials instead
Running out of video and system memory is a fatal error
Some error reporting breadcrumbs/tag for identifying game package
Breadcrumb pipeline creation to see what shaders crashing us
Fix exception with no camera
Fix steam callback crash
Fix text cannot be empty exception
Remove Compiler.OnCompilePartialSuccess , don't load assemblies on compile fail, fixes BadImageFormatException
Promote task exceptions to errors, instead of warnings
Fix WorldPanel NRE (if the underlying panel gets deleted, somehow)
Don't report TargetInvocationException, report its InnerException
Tag map for sentry too (if launched with a map)
Validate descriptor bindings of a shader (for real this time, not in a dead method) - prevent crashing by not loading these invalid shaders
Fix error when map couldn't be downloaded
Less simultaneous downloads
Add some high level sentry breadcrumbs
Fix possible NRE in network connect
Add commented out DSN for testing sentry un-rate-limited
Fix NRE in Prop
Add breadcrumb for failed downloads, let us diagnose why it's happening
Don't let OnNetworkSpawn errors break everything
Tweak how httpimages are loaded to make errors more obvious
Wrap RPC resume so things don't fall to bits if it errors
Fix NRE in Rigidbody.OnDisabledInternal
Another out of memory fatal error
Only show lobbies of the same game build
Fix open_asset crashing in non-tools
Don't show lobby cards for games marked as hidden (unless you're in that org)
Protect against host being null when downloading network files
Keep a count of the number of hosts a lobby has had
Mark lobby as toxic if became owner while joining
LargeNetworkFiles output num files
Tweak JoinBestLobby logic
Don't show toxic lobbies
Fix RunDownloadQueue using wrong connection
Don't disconnect from own server and mark it as toxic!
Disconnect from active lobby if it becomes toxic
Fix NRE in TickSceneStats
Fix NRE in ReceiveMessagesOnChannel
Check there's an active scene when calling ISerializer on GameObject/Component
SerializerPacker wraps reader/writer and prints errors
Handle inability to save cookies
Ship with pdb's to our managed dlls
Fix NRE in SoundEvent.GetNextSound
Retry download after a HttpRequestException
Diagnose NRE in ProcessIncomingMessages
Socket iteration error
Fix MapInstance NRE, add breadcrumbs
Fix NRE in Package.FindAsync
SceneObject: If the model is bad, just use an error model
Nicer exception when __sync_SetValue exceptions
Enable indirect lighting from IBL in volumetric fog shader, can be toggled with volume_fog_ibl_indirect
https://files.facepunch.com/sam/1b2711b1/PIwbCCNGYB.png
Terrain_Normal calculates world space normals properly now, remove sobel filter to just a simple bilinear
https://files.facepunch.com/sam/1b2711b1/qNolcysYRH.png
Reenable terrain specular and recompile it with normal fixes
Terrain_Normal: dY was inverted
Fix mesh trace fraction, causing incorrect best result when tracing render meshes and physics world at same time
Fix scene mesh block tool not working on terrain, just ignore box drag when bounding box gizmo is pressed
Add twist/pull forces to particle effect
https://files.facepunch.com/garry/9f0a0575-f148-46d6-8f1f-75cdb8d1b8aa.mp4
Fix NRE in VrHand.cs
Fix NRE in Terrain.UpdateMaterialsBuffer - @handsomematt might wanna check this
Ignore packaged message deserialize errors - assume they're happening while we're joining and don't have the types yet
Diagnose sockets[i] somehow being null
Fix NRE in Input.Process
Ignore NaN positions with a warning instead of an exception
Fix being able to double destroy components
Make CallbackBatch 'safer' by making it always require a scene
Remove max thread count from pooled dynamic vb/ib, fixing crash when used from too many threads (.net threads with unreliable ids)
Report native library not loading as a special exception
SystemInfo has StorageSizeAvailable, StorageSizeTotal
Rename ErrorReports to NativeErrorReporter to create a distinction
Load version info as soon as possible
Move error reporting out of Bootstrap
Catch startup errors
Allow traces to ignore static/dynamic/keyframed bodies
Reset error report counters between games
Better fingerprinting
Error report unit test
Diagnose startup problems by testing individual assemblies before launching
Fix NRE in LibraryDetail
Fix NRE in EnumControlWidget
More missing dependancy diagnostics
Fucked it
Create a CallbackBatch around Udpate/FixedUpdate/Start, so inner calls don't create their own, and callbacks all get called at the end
Make LobbyCards look different from PackageCards so it's a bit more obvious that they are lobbies and not the games themselves.
Add Gizmo.Draw.Grid(GridAxis, Vector2) to draw a grid of non-square size
Added Vector2Int * Vector2Int operator since I forgot it
Update sentry sdk from 0.5.2 to 0.7.7, build targeting lowest windows 8
Fix Component.Destroy CallBacth error
Component.Task returns a cancelled TaskSource if no GameObject
Fix little mistake in FindInPhysics
Fix Save All Scenes only saving the current scene
Add support for number pairs in `aspect-ratio`. Can supply as `16/9`, `4:3` or `2 1`. Resolves Facepunch/sbox-issues#5975
Don't need to change ext here, it's done in CreateWorld
Map objects grab scale from "scales" keyvalue
Merge branch 'master' into editor-keybinds