4,375 Commits over 1,583 Days - 0.12cph!
Mesh Editor: Add snap edge to edge https://files.facepunch.com/layla/1b2311b1/sbox-dev_47gpBlC2me-00.00.00.000-00.00.21.192.mp4
Don't switch to object tool after creating block
Block tool saves last material used
Add PrimitiveBuilder.Material
Mesh tool selection and block tool are inspector widgets like they should have been in the first place
Clean up mesh control widget
CreateModelFromPolygonMesh add mesh collision automatically
Add modeldoc PhysicsMeshFromRender
Physics hull from render works on render primitive meshes
Add RenderPrimitiveMesh to modeldoc (not created in editor) that can serialize a CModelMesh to allow for inline meshes in vmdl
Add SaveToKV3 and LoadFromKV3 to CModelMesh
Add EditorUtility.CreateModelFromPolygonMesh
Add button to MeshComponent to convert to vmdl
Allow alpha on MeshComponent
CreateModelFromMeshFile uses modeldoc directly to create the document and save instead of using a vmdl template. This has huge potential now that I know it works.
Don't check require component while deserializing, wait until post deserialize
Set bindpose transforms before applying physics bones
ModelBoneTransformProxy.SetWorldTransform needs to set the bone transform local to the renderer transform, fixes bones blowing up when moving them in editor
ModelCollider uses mass and damping properties from model physics parts
Check if aaquality is a valid enum, users are likely to have outdated settings
Don't give gizmo mouse focus when it orbit mode
Include panel parent in hash, fixes panel not rendering when parent is disabled and enabled
OnDestroyInternal calls OnDisabledInternal instead of OnDisabled
Reset panel parent before deleting it
PanelComponent uses internal enable, disable, update
Only clear contacts on tag change if the contacts should have no interaction
Rework terrain casting and sweeping
Terrain collision is per triangle again instead of per cell, should be 100% accurate https://files.facepunch.com/layla/1b1911b1/sbox-dev_bZpdwNGM3P.mp4
Fix terrain collider not updating on heightmap import
Inflate heightfield query cell bounds by 0.5, fixes terrain collision
Asset inspector copy path uses RelativePath to stay consistent with asset browser copy path
Map instance only creates skinned model renderer for props if the model has skinned meshes or morphs
Remove contacts and process intersections just before shape or body remove, this allows intersection end events to run before removal
Invalidate mesh selection on scene change
Include model view bounds too
Improve animated sceneobject bounds, include render bone sphere radius, fallback on mesh bounds
ModelDoc option to disable keyframe interpolation to allow for constant keyframe animations
Reset anim graph instance on model change
Transform local bounds by scene object transform in CMeshSystem::ChangeModel, fixes incorrect bounds on mesh renderer model change
Add Model.Physics.Surfaces to get all physics surfaces used in a model
Created bone objects on skinned model renderer update on model reload and model change
ShaderGraph: Fix ScreenPosition.XY incorrect component count
Sprite shader flips with uv sign
Add SpriteRenderer FlipHorizontal and FlipVertical
ModelPhysics recreates physics on active model change, fixes some props not initializing physics when created in code
Fix terrain trace hit normal
Support per triangle physics surfaces on mesh shapes https://files.facepunch.com/layla/1b1411b1/sbox-dev_WzjagCCSeA.mp4
ImageFormat.Default uses RGBA8888
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
Null checks in RefreshContacts
Refresh physics contacts on tag change https://files.facepunch.com/layla/1b1311b1/sbox-dev_PEDseyvLqF.mp4
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