4,014 Commits over 1,461 Days - 0.11cph!
Same bounds fix for DirtyControlMapRegion
Hide terrain component, don't create this manually
Make block primitive hollow option work
Clamp instead of throw in DirtyHeightmapRegion so we can paint on terrain boundary
Collide against heightfield grid instead of trying to triangulate it exactly, slightly less accurate but faster
Draw open edges with half thickness
Render open edges with smaller thickness until I render hash marks for them
Add PolygonMesh.IsEdgeOpen
GetEdgeVertices has two out vertices, instead of returning array
Create grid debug shape for heightfield, faster but could be faster
Don't build steam audio static mesh for heightfields, too slow currently (do we care?)
Update terrain collider when terrain is dirty
MeshEditor: More robust u and v axis face calculation, only set texture axis if the face can calculate a valid normal
Delete block tool scene object if creation gets cancelled
Support heightfield in CPhysicsShape::GetTriangulation
Move resize box to world space position before snapping it https://files.facepunch.com/layla/1b0711b1/sbox-dev_fVEF49E04T.mp4
Protect against invalid transform in CPhysicsBody::AddMeshShape, fixes crash some games are having
Bounds checking in izCreateBVH to be safe
Use order attribute in component sheet to allow property order
Add scene mesh tools https://files.facepunch.com/layla/1b0611b1/sbox-dev_Ml4FygXEwC.mp4
Remove these editor checks, we want to still update the mesh while playing
Polygon mesh and mesh component
Add Mesh.TriangulatePolygon to triangulate a polygon without needing a massive library
Move primitive builders to Editor.MeshEditor
Fix scene asset drag drop not working while an asset is already selected
If drag drop trace doesn't hit anything, try hitting grid plane
Check for non uniform scale properly
Approximate hull for sphere collider when it has non uniform scale https://files.facepunch.com/layla/1b2511b1/sbox-dev_cEmmJpViho.mp4
Change nudge shortcut to Alt+ (blocks text input otherwise)
Build runtime models ray trace objects with mesh collision data, this makes more sense for now and doesn't fuck up triangle order when you want multiple materials
Add arrow key nudging to scene menu https://files.facepunch.com/layla/1b2411b1/sbox-dev_jsu3UScQxU.mp4
Add IMaterialSetter for material drops
UseRenderMeshes for material drops as they don't care about tags
Make these functions more readable
Add Rotation.ClosestAxis - Will give you the axis most aligned with the given normal
Add Gizmo.Nudge - Will give you a nudge vector along the most aligned left and up axis of the rotation
Fix PositionEditorTool not snapping properly in localspace
Editor tools can create subtools, move, rotation, scale become subtools
Change Gizmo.Contol.BoundingBox to new box resize gizmo because this function isn't being used anymore
Create runtime buffers for dynamically created meshes so they can create trace data, allows them to be scene traced
Early out of CreateToolsTriangleList when there's no runtime buffers but also assert because ideally this should happen
Init frustum as ortho when using ortho, fixes PointToScreenPixels. Obsolete OrthoWidth
Adjust size of EnumControlWidget popup to see if that fixes weird position sometimes
Also don't add icon button if there's no icon
Clear cache body parts on model so that bodygroups in inspector can update properly
Add material groups and body parts to their control widget value hashes so they refresh on model reload https://files.facepunch.com/layla/1b1511b1/sbox-dev_10llRRdkD3.mp4
Add PhysicsBody.AddCylinderShape and PhysicsBody.AddConeShape
Add hull collider component to combine multiple hull shapes with selector (box, cone, cylinder) https://files.facepunch.com/layla/1b1511b1/sbox-dev_KwarwIJ8dm.mp4
Fix Camera.RenderToTexture incorrect aspect when using ortho, just use ortho height, we don't use ortho width and it should be removed
Add SkinnedModelRenderer.AnimationGraph to override animgraph
Abs the radius in Gizmo.Draw.LineCylinder so it isn't all fucky
Allow multiple ShowIfAttributes, will show property if any of them are true
Add SerializedProperty.GetAttributes, will be needed if we want to get multiple attributes