22,418 Commits over 1,614 Days - 0.58cph!
Experiment: Hitbox as a struct instead of a handle w/ interopgen
nullptr checks for Hammer.ActiveMap
MapEntity / MapMesh constructors will default to active map doc if not specified
MapView wraps CMapView so we can use it in addon space
Add `[CanDrop( string AssetFileExtension )]` that support `IMapViewDropTarget.DragEnter( Asset ... )`, make it all accessible to addon space
Move MaterialDropTarget to addon space
Hammer: Add SoundDropTarget - creates snd_event_point for .sound assets
Fixed FromNotAutoPropertyStruct leaderboard test
Support building a leaderboard type from a single field type
Support for Leaderboard<float>
Some typed leaderboard tests
Delete unused/non functioning fog override convars
Delete fog properties from sky_camera - they do not work
Mark GradientInfo internal, text gradients set explicitly by style
Update Topten.RichTextKit.dll
Tuck gradient type away into GradientInfo
Code-first typed leaderboards, support for creation / writing / reading
Read leaderboard type info from local addon assemblies in tools
Display custom leaderboard types in the menu
https://files.facepunch.com/ziks/1b2011b1/sbox-dev_xm1fXA5ej8.png
Fixed leaderboard details having too much padding
Support for marking entries as deleted in the backend
Refactor to nest leaderboard attributes etc in the Leaderboard struct
Built-in support for periodic leaderboards (daily / weekly / monthly)
More refactoring
* Leaderboard has too many fields to justify being a struct anymore
* Nested Leaderboard.Update and Leaderboard.Entry
* Leaderboard<T> can inherit from Leaderboard now, much less repetition
Leaderboard API documentation
Finish merging in Histograms
Initial work for new text gradients
Support for closest-corner, farthest-corner, .., and radial offset
Small cleanup
Update Topten.RichTextKit.dll
Cleanup & some parser error awareness
Remove D_TEXT_BACKGROUND_IMAGE
Update (obsolete) player and controller examples to use the managed input / pawn inputs
Make Asset.TryLoadGameResource<T> work on compiled assets w/o source files by implementing in EngineGlue::LoadJsonAsset for compiled files
Added test for adding properties with default values
Support for log value histograms
https://files.facepunch.com/ziks/2022-10-10/sbox-dev_YnroiYzjt5.png
Documentation pass for SceneWorld and related classes
Obsolete non implemented methods of SceneSkyBox
Zero out native pointer of SceneWorld in its Delete() method
Fixing up TextureBuilder documentation
Rearrange texture builder methods
Input.LookDelta and Input.MoveDelta analog inputs + copy PawnInput props in MimicBot from target client
Add cascading parameters
Move game creation out of game screen
UI Template unit test
Add Sandbox.Utility.Scripting.StatementEvaluator (testing)
Add TypeLibrary.GetPropertyValue
Add description attributes to Surface asset for the editor
Make "clear" option available for "Unknown asset" in AssetProperty editor
Fixed "Collection has a fixed size" error when trying to remove items from an array in an asset
Updated all surface assets
Added grass surface & footsteps
Fixed Resources not loading when networked from server
Fixes shatter glass being invisible for clients who are not the host
Hammer Map Nodes API
Split Hammer save/load logic into different file and document all the internals so anyone other than me can know what the fuck is going on
Fix double filesystem dispose with addon config
Closes #498
Fixed some histograms being offset horizontally
Only show histogram markers that are in range
Add Hotload.AssemblyResolver, warn if not assigned when needed
Set HotloadManager.AssemblyResolver for client / menu / server
Documentation pass
Hides Prop.weldParent, Prop.childrenProps and Prop.clonedShapes
TagAttribute can now accept multiple tags at the same time
Documentation pass
VertexBuffer index methods throw if buffer is not indexed
Obsolete TextureArrayBuilder
Readd single string constructor for TagAttribute
Hook up the CMapView's CToolCamera so we can have the camera pos/angles and able to build rays from 2d coords
Hammer traces return their hit MapNode by managed handle so can do `if ( tr.MapNode is MapMesh mesh )` now
Add MapMesh.SetMaterial( Material )
Real simple drag handler for material packages - this code is all getting shit though time to rip it up
Refactored map view drop targets into an interface with attributes: `[CanDrop( Package.Type.Model )] class ModelDropTarget : IMapViewDropTarget`
Once I wrap CMapView I'll make this public and make it work with standard AssetType too, so you'd be able to create custom drop targets for your game resources.
Simple color picker for color properties
Snap to color on mouse press
Add comments to new publics
Merge pull request #573 from Facepunch/color-picker
Simple color picker for color properties
Merge branch 'master' into custom-client-input
Start stripping out stuff that'll need implementing on pawn
Prepare to move a bunch of stuff from user cmd to managed. Clear out eye angle stuff
Need to set a CUtlBuffer to READONLY to read non null terminated data
Serialize blob data of feature
Cleanup
Simple color picker for color properties
Snap to color on mouse press
Add comments to new publics
Merge pull request #573 from Facepunch/color-picker
Simple color picker for color properties
Snap to color on mouse press
Add comments to new publics
Remove unused RecompileMenu
TypeLibrary.SetProperty will convert to string if passed object isn't a string
Add Panel.OnParametersSet - which is called after all template parameters have been set/changed
Remove unused UI2/Data Sources
Remove CompileTarget from vfx, we always compile for the shader models we want to target
Remove vfx targets we'd never ever support, remove fallback table, deprecate d3d9 registers from shader
Nicely unserialize shader features
Remove VMPI stuff from vfxcompile
Print memory in decimals for verbose shader compiling
Simple color picker for color properties
Scrap trying to do managed cubemap entities, no real benefit
Reload env map texture resource, needed because buildcubemaps may have updated it
Build in game cubemaps by searching entity key values instead of game entities
Fix crash trying to run buildcubemaps when not in game
No longer need env_cubemap_box
Destroy cubemap object when entity is destroyed
Support cubemap handshake, this is needed for static objects to find their cubemap
Fix typelibrary trying to replace an assembly with itself
Hook up the CMapView's CToolCamera so we can have the camera pos/angles and able to build rays from 2d coords
Hammer traces return their hit MapNode by managed handle so can do `if ( tr.MapNode is MapMesh mesh )` now
Add MapMesh.SetMaterial( Material )
Real simple drag handler for material packages - this code is all getting shit though time to rip it up
Refactored map view drop targets into an interface with attributes: `[CanDrop( Package.Type.Model )] class ModelDropTarget : IMapViewDropTarget`
Once I wrap CMapView I'll make this public and make it work with standard AssetType too, so you'd be able to create custom drop targets for your game resources.
When compiling packed assembly don't use absolute source paths
Obsolete ResourcePaths
Add Tags to addonconfig
Move content and generic addon setup to addon settings
Don't use freetype in editor
Remove D_TEXT_BACKGROUND_IMAGE
Cleanup & some parser error awareness
Fix multiple addon uploading errors
Readd single string constructor for TagAttribute
Documentation pass
VertexBuffer index methods throw if buffer is not indexed
Obsolete TextureArrayBuilder
Added test for adding properties with default values
Code-first typed leaderboards, support for creation / writing / reading
Read leaderboard type info from local addon assemblies in tools
Display custom leaderboard types in the menu
https://files.facepunch.com/ziks/1b2011b1/sbox-dev_xm1fXA5ej8.png
Fixed leaderboard details having too much padding
Support for marking entries as deleted in the backend
Refactor to nest leaderboard attributes etc in the Leaderboard struct
Built-in support for periodic leaderboards (daily / weekly / monthly)
More refactoring
* Leaderboard has too many fields to justify being a struct anymore
* Nested Leaderboard.Update and Leaderboard.Entry
* Leaderboard<T> can inherit from Leaderboard now, much less repetition
Leaderboard API documentation
Finish merging in Histograms
Compile gamemode before extensions
Better errors when we can't find the package reference
Switch packaged assembly path
Change how compiler multiple paths works so we don't get stomping
Documentation pass
Hides Prop.weldParent, Prop.childrenProps and Prop.clonedShapes
TagAttribute can now accept multiple tags at the same time
Summary for bake resource attribute
Forgot to calculate radiance SH
Skip loading/transporting "base" addon when using a packaged gamemode
Add Hotload.AssemblyResolver, warn if not assigned when needed
Set HotloadManager.AssemblyResolver for client / menu / server
Remove CollectAssemblies
Fix game addons not hotloading
Only actually compile a compiler if it needs it
CompileGroup.BuildAsync can just return a bool
Allow compilers to reference themselves, passively ignore
Add addon compiler settings references
Packaged addon complain if missing assembly, make available to compilegroup
Gamemodes also provide themselves as the base addon
Fix extensions not loading second time around
Give packaged assemblies the first priority - because they might be mocking as base
Extension compile referencing package gamemode end to end unit test
Support cubemap array index
Fixed some histograms being offset horizontally
Only show histogram markers that are in range