5,230 Commits over 1,583 Days - 0.14cph!
Fixup some styles to work with new layout
Mark panelnode dirty if children changed
More useful panel selection overlay
https://files.facepunch.com/garry/c5dea16a-bb19-4317-b7ad-2c9168cda48e.png
Add GameScenePicker
Added panel picker
https://files.facepunch.com/garry/ed393fe0-c5db-499b-8bc8-a85747e2a0b7.mp4
IPanel.GetPanelAt uses RenderOrder
Fix line counting
Don't create empty text elements
Create a test to assure that panel size doesn't change due to border
Add Panel.OnAfterTreeRender( firsttime )
Refactor
support for @onevents that call with a PanelEvent
https://files.facepunch.com/garry/d194801e-8c7b-426a-bfd5-b6a95ed69bb9.png
Converting PartyDeck to razor
Hide sourcefile from panel list if it's empty
Keep track of <T> panels too
Set markup elementname
Correctly add /> for void elements
Fix DebuggerDisplay exception in Node
Support for scss #id selectors
html templates let Id pass through to the panel
Add source file and line to razor created panels
Make panel list editor a bit less useless https://files.facepunch.com/garry/a3777b18-1145-49a2-85fe-c5ccc19bc82a.png
Add [StyleSheetAttribute]
Fix stylesheet logic
Add <root> support
Markup applies attributes
Keep a list of created panels and call ParametersChanged after first creation
Markup support slots
Make menu work again (using razor)
Update Microsoft.CodeAnalysis.CSharp
Support no namespace
Add Panel.StateHasChanged()
<style> block support (scss)
Handle @on* without taghelpers
Don't add extra line in #line default
Remove unused
Removed old event tags
Event tests
Trim more unused
Remove more unused
Support generic callbacks
Fix some warnings
It's totally possible that the reference cleaning method will throw an exception, so just handle it
Wrap more user code in #line pragmas
Ref/Event generation tests
Strip typeparam
Remove RazorExtension
Remove a bunch of RazorProject stuff we'll never use
Strip @inject
Do @ref manually - strip out the nest of bullshit
Remove debug
Panel/Component support (treat an element as a Panel if it starts with a cap)
Simplify markup process
Panel.SiblingIndex is now 0 based
Razor SiblingOrder tests
Remove unused
Add option for razor source to write to disk
In unit test only generate code if $BuildingForLiveUnitTesting is not true 😓
Support @ref=
Lets also commit my game breaking test code
Call EntityManager & UISystem OnHotloaded events manually
Compare checksum of rendertree after hotload and clear/destroy if changed
Create dynamic content
Handle looping
Add Panel.SetChildIndex( Panel child, int newIndex )
Add Panel.MoveAfterSibling( Panel previousSibling )
Rendertree enforces sibling order
Comment out debug
Compiler watch .razor files
Re-render tree on events or parameter change
Change Microsoft.CodeAnalysis.CSharp version so source generators work in live unit test
Fix RenderTree scopes
Don't call onmousemove every frame
Razor gen overrides HasRenderTree to true
Add Host.InitUnitTest
Calculate lod level clamps to max lod level of model
ModelDoc: Clean up code for new morph frame compiling now that we know it works
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
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
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
Make Asset.TryLoadGameResource<T> work on compiled assets w/o source files by implementing in EngineGlue::LoadJsonAsset for compiled files
Delete unused/non functioning fog override convars
Delete fog properties from sky_camera - they do not work
Basics + tests
A generator thirdparty
Update project template
Clean up generator
Use our variables
Fix namespaces not working
Fix LUT
Register events
Compiler collect additionalfiles, recompile on razor file changed
Extension addon
When generating solutions download parent addon if not available locally
Refactor
Mount/compile local extensions when starting game
Undo this
Switch compiler to not use Filesystem
Added CompileGroup, deleted CompileManager - menu works
Tool addons use CompileGroup
Strip out ToolAddon CodeFileSystem
Delete GameCompiler, seal Compiler
Build watching compiler for changes into the compiler
Menu recompiles on changes nicer
Watch tool code for changes
Fix tool hotload only working on accident
Fix stack trace stretching the screen
Remove rubbish
Rename AddonManager to ToolAddonManager
And rename file
Clean up server addon building
Build in printing compile errors to console in CompileGroup
Fix server compiles not working
Simplify CompilerSetup
Strip unused
Compiler unit test
Clean up compiler references/dependancies, tests
Fix NRE in entity list
When compiling a compilegroup, even if we don't need to compile them, we still return referenced assemblies
Strip all of the code path stuff from ServerAddon/AddonRuntime
Cleaning network file list
Decrease hotload change detection from 0.3s to 0.1s
Don't add network files twice if they exist in the code folder
Reduce max size for embedded file to 64k
Don't embed _c files- because they won't be accessible by engine anyway
Compiler detect cyclic dependencies,. throw exception + unit test
Unit test for package dll dependants
Clean MetadataReference collection
More clean up
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
Skip loading/transporting "base" addon when using a packaged gamemode
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
Fix multiple addon uploading errors
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
Fix typelibrary trying to replace an assembly with itself
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
Add cascading parameters
Move game creation out of game screen
UI Template unit test
Add Sandbox.Utility.Scripting.StatementEvaluator (testing)
Add TypeLibrary.GetPropertyValue
Fix double filesystem dispose with addon config
Closes #498
Compiler collect additionalfiles, recompile on razor file changed
Rebase fixes
Merge branch 'html-sucks' into tier2addons
Compiler collect additionalfiles, recompile on razor file changed
Basics + tests
A generator thirdparty
Update project template
Clean up generator
Use our variables
Fix namespaces not working
Fix LUT
Register events
Add cascading parameters
Move game creation out of game screen
UI Template unit test
Add Sandbox.Utility.Scripting.StatementEvaluator (testing)
Add TypeLibrary.GetPropertyValue
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
Fix typelibrary trying to replace an assembly with itself
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
Fix multiple addon uploading errors
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
Skip loading/transporting "base" addon when using a packaged gamemode
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
Unit test for package dll dependants
Clean MetadataReference collection
More clean up
Extension addon
When generating solutions download parent addon if not available locally
Refactor
Mount/compile local extensions when starting game
Undo this
Switch compiler to not use Filesystem
Added CompileGroup, deleted CompileManager - menu works
Tool addons use CompileGroup
Strip out ToolAddon CodeFileSystem
Delete GameCompiler, seal Compiler
Build watching compiler for changes into the compiler
Menu recompiles on changes nicer
Watch tool code for changes
Fix tool hotload only working on accident
Fix stack trace stretching the screen
Remove rubbish
Rename AddonManager to ToolAddonManager
And rename file
Clean up server addon building
Build in printing compile errors to console in CompileGroup
Fix server compiles not working
Create .lutignore
Simplify CompilerSetup
Strip unused
Compiler unit test
Clean up compiler references/dependancies, tests
Fix NRE in entity list
When compiling a compilegroup, even if we don't need to compile them, we still return referenced assemblies
Strip all of the code path stuff from ServerAddon/AddonRuntime
Cleaning network file list
Decrease hotload change detection from 0.3s to 0.1s
Don't add network files twice if they exist in the code folder
Reduce max size for embedded file to 64k
Don't embed _c files- because they won't be accessible by engine anyway
Compiler detect cyclic dependencies,. throw exception + unit test
Compiler detect cyclic dependencies,. throw exception + unit test
Decrease hotload change detection from 0.3s to 0.1s
Don't add network files twice if they exist in the code folder
Reduce max size for embedded file to 64k
Don't embed _c files- because they won't be accessible by engine anyway
Cleaning network file list
Strip all of the code path stuff from ServerAddon/AddonRuntime
Clean up compiler references/dependancies, tests
Fix NRE in entity list
When compiling a compilegroup, even if we don't need to compile them, we still return referenced assemblies
Create .lutignore
Simplify CompilerSetup
Strip unused
Compiler unit test
Fix stack trace stretching the screen
Remove rubbish
Rename AddonManager to ToolAddonManager
And rename file
Clean up server addon building
Build in printing compile errors to console in CompileGroup
Fix server compiles not working
Build watching compiler for changes into the compiler
Menu recompiles on changes nicer
Watch tool code for changes
Fix tool hotload only working on accident
Strip out ToolAddon CodeFileSystem
Delete GameCompiler, seal Compiler
Switch compiler to not use Filesystem
Added CompileGroup, deleted CompileManager - menu works
Tool addons use CompileGroup
Refactor
Mount/compile local extensions when starting game
Undo this
When generating solutions download parent addon if not available locally
Complain when sending too many console commands
Fix exception when uploading over 2gb
Should fix OverflowException
Allow setting network vars when client created
Handle ResolveDepthBuffer better