13,982 Commits over 1,583 Days - 0.37cph!
Support per triangle physics surfaces on mesh shapes https://files.facepunch.com/layla/1b1411b1/sbox-dev_WzjagCCSeA.mp4
Editor startup cleanup & remove Editor.Utility
Fix path stretching asset browser size - fixes sbox-issues/issues/4609
If we pass in an invalid transform to Steam Audio, just ignore it
Fix SerializedList/Dictionary not converting property - fixes sbox-issues/issues/5104
Refactor Networking/Connection - fixes sbox-issues/issues/4676
Add [RequireComponent]
Postprocess components use [RequireComponent]
https://files.facepunch.com/garry/436210e0-e5e0-44d2-86b5-3456d99bfa33.png
Move Json.Upgrader out of Sandbox,Game, have it filter by type
Add GameResource.ResourceVersion
Inject version into gameresource saves
Change DeserializeToObject to use JsonNodes
GameResources can define JsonUpgraders
v1 upgraders for SceneFile and PrefabFile
Add GameResource.LoadFromJson and use that anywhere we load a GameResource
Fix PrefabFile upgrader doing nothing
Fix tests, supply upgraders
Authority RPC now correctly uses invoke permissions from the AuthorityAttribute. When calling Authority RPC, if there's no owner, the target would be the host connection
Authority check for network destroy - can never arbitrarily destroy unnetworked objects
In the PrefabFile upgrader, upgrade Id to __guid as well if possible, fixes corrupt prefabs from before when it was called Id
Fix NRE if destroying object in animation event
Ensure PanelComponent finds its parent
If PanelComponent gets enabled before WorldPanel it fails to find a valid parent
Resolves sbox-issues/issues/5024
ImageFormat.Default uses RGBA8888
Fixes unable to parse guid error when trying to load properties called "id" but the type is not a guid (Fixes Facepunch/sbox-issues#5181)
Izabu: Don't try to destroy null proxy
Make PhysicsBody Enable and Disable actually work, remove shapes from broadphase and insert them back on enable
Don't trace disabled bodies
When a component is added to a GameObject after it has been network spawned, and it has Sync vars we should register them with the network table
Don't do on the root though save that for the multi-comp PR
Update SceneEditorMenus to use MakeIdGuidsUnique instead of MakeGameObjectsUnique
Revert "Put in guards against people having a property name of "id" (case-insensitive) on a component. Warn them if they do, don't serialize that property or try to deserialize it. Catch exception if trying to deserialize Id as a Guid but it isn't one."
This reverts commit 55d6e5c51d2fd6b663391d9e22c191a6a810603f.
Switch GameObject/Component.Id to be serialized as __guid
Upgrade PrefabFile on load
Merge fix
Unforseen but when we link component reference from a prefab to property on something else in scene, we should still store component reference like we used to. We'll try to find the component in the scene directory by id if we can, but revert to old behavior if not
Put in guards against people having a property name of "id" (case-insensitive) on a component. Warn them if they do, don't serialize that property or try to deserialize it. Catch exception if trying to deserialize Id as a Guid but it isn't one.
Allow turning off sound air absorption, turn it off on 2d sounds by default
Null checks in RefreshContacts
Component Ids (#1501)
* Component id + prune those for refresh as well
* Serialize id properly
* Add unit tests for component id serialization / deserialization - make sure references to Components with Property are properly restored to the correct components by id
* Update GameObjectInspector to use Component.Id to determine already seen components. This makes it rebuild properly for multiple components of the same type
* Serialize as Id not __id so also picked up by MakeGameObjectsUnique
* Scene unique component ids - update serialization test accordingly
* Phase out storing GO guid and component type
* MakeGameObjectsUnique -> MakeIdGuidsUnique (make old method Obsolete and redirect to MakeIdGuidsUnique)
* Unit test for clone with references
* When adding component or game object to Directory - check is there a component or game object with that id already, if so, force change it to a new one and spit a warning out. No component or game object should ever be able to share the same guid anyway but this makes sure
* Add test for loading old reference model type from prefab / json
* Test both old and new formats
* Let's not make this elseif - always check both
Fix unit tests, add SerializedProperty method test
Don't include special name methods in TypeLibrary (getter/setterr spam)
SerializedObject can handle methods
ControlSheet supports buttons/methods
Add [Button]
https://files.facepunch.com/garry/85519e72-553c-4d0c-9ece-42f371fd31d3.png
Add break button to Prop component
Simplified ComponentSheet, makes use of ControlSheet logic more
Editor style tweaks
Refresh physics contacts on tag change https://files.facepunch.com/layla/1b1311b1/sbox-dev_PEDseyvLqF.mp4
Fix exception when deleting object in update
SoundPoint can override distance attenuation, occlusion, reflection
Allow both Sync and HostSync on a property. It means that both the Owner and the Host can control the value. Fixes Facepunch/sbox-issues#5153
Fix some Assets not loading properly from cloud folder on startup
FileSystem.Write/ReadJson - add AllowNamedFloatingPointLiterals to options
Add Panel.TooltipClass - fixes sbox-issues/issues/4746
Completely strip PackageDownloadMode
Cancelling loading cancels properly - fixes sbox-issues/issues/4623
Make download cancelling more convincing, add more download lanes
Try to store package revision id in lobby
Store lobby owner in lobby data, for access from list - fixes sbox-issues/issues/5141
Fix ParticleGradient defaults not saving properly - fixes sbox-issues/issues/5144
Tick UI before resetting input - fixes sbox-issues/issues/5169
Drag & drop components to change their order
Resolves sbox-issues/issues/4254
EditLogs for when a component is moved
Fixed joint keeps the bodies fixed where they are at the moment of joint creation instead of snapping
Joint gizmo just draws a line from self to target game object
Fix prismatic disabling limit when it shouldn't
Create slider with 2 pivots and an axis, this makes the most sense
Base joint passes two physics points for joint creation
Do a pass on all joints to make sure their local frames make sense
Add RigidBody.MotionEnabled
Fix game setup's Launch Mode always falling back to default LaunchMode.Normal
Resolves sbox-issues/issues/4923
ICollisionListener & ITriggerListener have default interface methods + docs
Resolves sbox-issues/issues/4852
Izabu: Move triangle shifting further up the callstack so the fix gets applied to sphere and capsules too
Fix async warning in PreviewMesh
Make joint more robust in finding physics bodies, improve the gizmos a bit
Better anchor points for spring joint
Add Vector3.CatmullRomSpline, Vector3.TcbSpline
Add SceneLineObject
Add LineRenderer component
Add line prefab
Fix NRE