14,144 Commits over 1,583 Days - 0.37cph!
Update some Hammer outliner icons
https://files.facepunch.com/rubat/1b1111b1/vK6p0Py1jk.png
Added filepath to 'Static Overlay' in Hammer outliner
FPArms: on punching, foundations & placeholder anims for new first-person features
New Outfit piece - Skirt
Gone the days of just jeans and trousers, we have a skirt! A slightly more feminine outfit piece. All LOD'd. Also small changes to longsleeve shirt and jacket to fit the new skirt.
Block tool specifies it's materials in C#, don't stomp from C++ - lets you specify specific materials on certain faces in a PrimitiveBuilder, useful for if you want certain faces to be player clips
Don't be lazy, update Hammer.CurrentMaterial on change
Make PolygonMesh face Material work
Add Hammer.CurrentMaterial
Iterate PolygonMesh API, remove dumb "Simple" naming from classes, Polygons are Faces instead, document better and optimize.
PolygonMesh keeps it's own vertex list, allowing more advanced usages and simpler data stream construction
* AddPolygon renamed to AddFace
* PolygonMesh.AddVertex( ... ) returns an index you can use with AddFace( params int[] )
Fix assert in CChoiceUpdateNode
Set m_flCycleZeroTime to anim time if it's zero, fixes newly spawned entities not starting the animgraph at the start of the first sequence cycle. there's probably a better way to do this
Check if Steam is running on clients asap, prevents some crashes from us using Steamworks super early
Hammer: Fix duplicate or remove non-working view modes / options in the view, mainly dota things
Remove another premature GetSteamUniverse() call that wasn't doing anything
Don't try to SteamAPI_Init() on dedicated servers or initialize the SteamGameServerAPIContext before we've called SteamGameServer_Init
Updated Hammer Key binding to include RT Baked Lighting
Hammer: Curved stairs primitive (experimental), not sure how to make it interact nicely within the bounding box. Need to expand the PolygonMesh API some more to allow face data UV axis too.
https://files.facepunch.com/matt/1b1011b1/sbox_22SJRcVCiW.png
Remove QToolBlockUI which was just glue and do the whole thing in C#, remove some resulting dead code in CToolBlock
Remove redundant mapdoclib stocksolids
Hammer: Entity tool uses Block tool to place solid meshes w/ listeners, same way nav meshes are placed.
https://files.facepunch.com/matt/1b1011b1/sbox_CsQvkTwpm5.png
Mark these transform operations as internal, let's not just blindly expose C++ ways to the public API
Enable creating, enabling, disabling tool addons
traffic cone - fix for #203
traffic cone - #203
Merge branch 'master' of sbox
Expirable SyncContext refactor
* Rename MainThreadContext to ExpirableSynchronizationContext
* ExpirableSynchronizationContext supports having multiple live instances on different threads
* Added SyncContext static class to handle resetting on session end
* MainThreadContext.Instance is now SyncContext.MainThread etc
More control over addon tasks running on worker threads
* Added an ExpirableSynchronizationContext for worker tasks
* WorkerThread.Start() spawns a bunch of long running tasks to process addon tasks off the main thread
* WorkerThread.Stop() causes those worker tasks to exit, can be restarted later
* Stop worker threads during hotload
* Fixed case where addon tasks that refuse to cancel could keep running forever on a worker thread
Fixed errors after rebase
Hammer transform operation -> C#
ui prelayout is 3x faster
Add nullcheck for static callers
Fix chart not updating
Fix unit tests
Add Widget.Lower, Widget.Raise
Performance tab options
Remove calls to GetVideoMemoryInfo (slow)
Making SimpleMeshPolygon a class, since it's holding a List there's no benefit in it being a struct,
Newlines after steam api context warning
Formalize initialization of SimpleMeshPolygon
Release the QueryInterface ptr
Set multithread protected on d3d device https://docs.microsoft.com/en-us/windows/win32/api/mfobjects/nf-mfobjects-imfdxgidevicemanager-resetdevice
Add D3D11_CREATE_DEVICE_VIDEO_SUPPORT to device flags, encoder degrades performance without it
Make sure video encoder uses even width and height, nvidia drivers doesn't like encoding odd sizes
Render AO on dynamic objects, don't render it on monitors
Refactor aoproxy code, add stub for cylinder aoproxy shape
Aoproxy_splat objects
Decreased fog in Avatar editor
Updated Hammer Block Primitive
You can now enable and disable faces.
New Full Outfit - Medieval Outfit
For the King! Something a bit out-there. We have this nice new full set of clothing, chest armour - chainmail - and leg armour. All integrated and LOD'd. Works with other modular clothing pieces to create some fun results. More feminine outfits around the corner.
Namespace Hammer/MapDoc under Tools.MapEditor
Add a simple MapMesh API for creating simple n-gon polygons programatically in tools addon layer
Move Hammer Block tool to C# addon layer, developers can implement any geometry shapes using the simple polygon mesh API and full hotloading.
Ported the following shapes to C# so far: Quad, Block, Cylinder
Cleanup naming of everything, create the tool interface in a more sane way, port over more primitives.
* GeometryTool -> BlockTool, keep the naming consistent with Hammer, it is a blocking out tool after all
* Geometry -> PrimitiveBuilder
* SimplyPolygonMeshDescription -> PolygonMesh - way less insane and future proofs us to binding it with CHammerPolyMesh, different ways to use it can be done on the class
* Port Spike and Hole primitives, Linq makes them super easy to do
* Hotloading triggers an update on the block tool, so when creating PrimitiveBuilders you see the changes straight away
* Glue "Orient to the 2D view plane direction" checkbox to set the option in native
Add Sphere primitive to C# block tool
Trim panel InnerHtml content from labels
Don't recreate Steam Api in dedicated server, so ip and steamid doesn't keep changing
Strip some tv relay stuff
Only show download UI when downloading
reset this shit here because they allocate arrays based on the number of bones, and while they change when the model handle changes, the model handle might not have changed (because it might have just changed from an error to loaded)
On client model download, reload the model
Reallocate CCompositeParentSpaceState if bone count changed
CBodyGameSystem always RegisterToolsResourceListener
Try to deal with broken resource reloads by restoring their old models and clearing the list
Pass opacity to lightmapper for foliage shader
Allow models to have textures in RT bake preview
adding decals and material color variation
Merge branch 'master' of sbox
Citizen: adding a couple more aim matrixes (no left-right yet)
Don't copy texture using shaders on nvidia hardware, isn't needed for video encoding on nvidia and could fix driver bug
Citizen: added a nice aim matrix to standing pistol
Hammer: Fixed particle effects control points resetting to world origin when hidden and then shown
Fixed ent_fire saying it failed when it didn't
Fixed Open()ing an open door that rotates away from player behaving incorrectly
Minor changes
Implement EntityIO matching classes for outputs
Merge branch 'master' of sbox
Replace MapIO with EntityIO where applicable for consistency
Added Entity.ClassName (internal for now) and used it where needed
Reimplemented ent_fire in c#
Add high quality light preview option
Regular: https://files.facepunch.com/ognik/1b0911b1/2022-03-03_28-33-1674ea0f-eecb-4339-b8cc-43c9e6aa8ff0-9UpQLZBP.png
High: https://files.facepunch.com/ognik/1b0911b1/2022-03-03_29-19-ae614fac-8e1d-42ae-a3bb-96aa694b8724-cM6BdVtZ.png