1,025 Commits over 1,127 Days - 0.04cph!
Terrain: Import heightmaps PNG 8bit :( or RAW 8 or 16 bit
Terrain.RayIntersects transforms ray into local space
Move brush list out of component editor, popup menu on brush preview
Terrain: transform local normal by terrain world transform
Editor tools can use SkiaSharp
Add wireframe button to scene toolbar
MapComponentMapLoader: prop_static is never in entity lump
SceneMapLoader: don't create disabled lights
MapComponentMapLoader: Static prop_physics are static
SceneSunLight -> SceneDirectionalLight - consistent with component and native name
Terrain: Brush strength/invert to compute shader
Revert "Imply console apps want rendersystemempty, maybe revisit this in the future if we want them to do any kind of GPU compute"
This reverts commit e9ddbb31c58de3596aeecacae6f1b77d45c2c338.
CI or whatever should opt out of this, Hammer running resourcecompiler
and probably other stuff needs a valid one.
Null check model in AssetVideo
Hammer entity definitions can live on life support in Sandbox.Tools
Terrain size is stored on TerrainData, specify the total world size instead of confusing units per texel
Fix grid axis colors being the wrong way
Use Gizmo colors for grid axis & add SrgbGammaToLinear so the colors aren't fucked
Document ComputeShader, remove obsolete, Dispatch throws exception for bad parameters instead of silently failing
Terrain shader write to depth
Brush preview works again
Use compute shader to modify terrain heightmap instead of shitty interpolations on CPU
Terrain: Use ShadowRenderType
Lighter terrain grid
Implement attributes on ReflectionSerializedObject.SerializedProperty
Move Terrain editor into an EditorTool
ReflectionSerializedObject property SetValue<T> will convert value, catch exceptions
TypeSerializedObject SerializedProperty.TryGetAsObject don't throw if null
Brush settings widget window
FloatControlWidget blurs entry on range slider drag
Only modify terrain on mouse drag
Change brush order, circle first
SceneOverlayWidget updates position when window is moved too
Fixes sbox-issues/#4378
Gizmo shaders display in ToolsVis mode
█▅▆▆▍▍/█▍▆█▌▅ ▅▉█▆▋ ▆▅▇▌ ▄▆▉▄▄ ▋-▍▊-▆_
Fix and tidy up terrain data serialization
Clear QPixmap on create so it's not full of uninitialized data
Compress TerrainData heightmap/controlmap data with deflate, simple rle is probably best
Shadergraph: Transform Normal can output in tangent or world space (default is tangent to match material output)
Don't save the file 9 times everytime in Asset.SaveToDisk
Store TerrainData in a versioned gameresource with custom serialization, so we can reuse it in multiple scenes and not have absurd file sizes
When we dispose of a SceneCamera, queue the native volumetric fog to be disposed of at frame end since a render view with it is likely already queued
Unused server/client methods and gizmo instances
Unused physics trace filters
Language.Init() after we mount filesystem
File watch for hotloading textures and localization files too
Fix ResolveTargetD3D11 srcBox limiting not accounting for offset on dest width min
Graphics.GrabFrameTexture uses Graphics.Viewport
Fix typos and inconsistent screen uv calc in postprocess shader
OnAwake/OnDestroy respect Component.ExecuteInEditor
Add InputContext for Scene.FixedUpdate so inputs are reliable when FPS is higher than the fixed update rate
Grid shader: Don't lose all our interpolation precision by multiplying grid scale in vertex stage. Also tessellate mesh a little for better depth bias
Updater for "snaprotationangle" int -> float, so it stops fucking spamming
Rewrite font manager to not use filename, instead uses font family name like normal css
All ttf and otf font files are loaded from /fonts/ folder and mapped to
their font family name, weight, style.
This is likely to be a breaking change if you had weird named fonts.
Stop scene first person camera shaking from continuous quaternion <-> angle conversions
Move CodeGenerator to Sandbox.System
CodeGen: Set MemberIdent on wrapped properties
Rewrite to [ConCmd] [ConVar], use new codegen, make scene games able to use them
Load fonts from scene games filesystem too
Log when can't find font, should help some people debug
TransformControlWidget: Non-uniform scaling
Apply a depth bias to grid to stop z-fighting and make it render double sided
https://files.facepunch.com/matt/1b1511b1/sbox-dev_vUfVeC7hKH.png
TabWidget.AddPage allow optional null properly
Don't create a CVolumetricFogRenderer if enabled but there's no fog volumes
SceneCamera is disposable, CameraComponent disposes it OnDestroy(), frees native resources mainly volumetric fog clipmaps
Editor doesn't use volumetric clipmaps
Check scene fog volumes not legacy ones
Terrain shader includes in terrain folder
Terrain obeys its transform
https://files.facepunch.com/matt/1b1511b1/sbox-dev_a95eXdB3HZ.png
Draw a configurable grid in editor scenes
https://files.facepunch.com/matt/1b1511b1/sbox-dev_4OQJeFR5bU.png
Build debug at 1am
Get rid of MultiProcMaxCount from build retail bat I missed, reasoning in 0ce21462b8ec81ee7c89328fb10e083cdac2f442
Additional Gizmo Controls
Gizmo.Draw.LineCircle: fix starting angle always being a little too much
Improve Gizmo.Draw.LineCapsule
Improve Gizmo.Control.Capsule
ColliderCapsuleComponent has gizmo controls
Fix Gizmo.Control.BoundingBox
Don't care about file mod changed for compile state, doesn't make sense and was causing constant recompiles when 2 assets of the same name existed
▍▉▍▌█▆ ▊▅▌▇▆_▆▅▌▇▋▅▇ - ▇▇▅ ▄▉▍▇ ▉▇█ ▌▉▇▊▊ ▇▉▅ ▊▋▊▉▄▌ ▄▌▇▆▉▆▆ ▆▇▇▋▍▇▌▄ ▍█▌▍ ▆# ▆▇▍▉▉▋
Pull workflow: build content before tests
Shut the couldn't find driver version warning up
Fix anim subgraphs not compiling with contentbuilder because there's no assetsystem
Update these vmdls that are failing to compile, using some mega old schema text
ci: test-managed depends on built content
ci: turn off orphan deletion on contentbuilder
Remove looptypeclientserver
Delete demos
Delete rcon
Remove clockdriftmgr
Delete gameeventsystem
Remove userinfochangeservice
ShaderGraph add ToolsWireframe and ToolsShadingComplexity modes
Fixes sboxgame/issues/issues/4104
ShaderGraph add Camera node with position, direction, near/far plane
https://files.facepunch.com/matt/1b1111b1/sbox-dev_0SbvbXMF1c.png
Fixes sboxgame/issues/issues/3996
Shadergraph transforms the given tangent normal into world space
MapNode.OnAddedToDocument & MapNode.OnRemovedFromDocument
Run Scene.EditorTick() from Hammer
Get some scene prefabs going in Hammer
Hammer map worlds get a backing Scene, add that Scene's SceneWorlds to the render list
Add ComponentEditorWidget which can be decorated with CustomEditorAttribute
Example usage:
```cs
[CustomEditor( typeof( Terrain ))]
public class TerrainEditor : ComponentEditorWidget
{
// ...
}
```
Delete unused enums and networkclient defs
Pass engine version to discover api
Update default editor layout
Get rid of Sandbox.Server and Sandbox.Client
Rename Entity to HammerEntityDefinition, make it internal, delete some other things and mark lots of attributes as internal
Give test-managed a 10 min timeout