5,132 Commits over 1,552 Days - 0.14cph!
Add tests
It's important to yoga to be fp:precise because it uses nan
Update to yoga 3, embed in engine
vpc fixes
Remove Facebook.Yoga
Convert style setters
add support for multiple scene views, orthographic scene views, and configurable grid axis
add keybind to cycle camera plane around selection
refactor bits into SceneEditorViewport, re/store gizmo settings alongside viewport cookie
rework to single layout and splitter, disable new tab creation for now
add support for per-widget toolbar actions
save/restore sceneview layout
move viewport/instance gizmo settings to EditorCookie from ProjectCookie
move save/restore viewport cookies to addon space
no reason to copy+set camera transform anymore
use active SceneOverlayWidget directly
use a single toolmanager instance
fix nudging
remove some global gizmoinstance refs
tuck camera alignment shortcuts away in camera menu
maintain layout config when toggling viewport fullscreen
remove log
camera fixes: make orthographic clipping more predictable, add smooth(er) perspective/ortho transitions, fix gizmotest widget, reenable scene camera copy
add setting to lock scene camera rotation
fix incorrectly sized gizmo hitboxes in ortho view
replace remaining direct scene camera transform accessors
tweak sprite gizmo hitbox scale in ortho views
cleanup scene tick/draw flow with multiple viewports
replace legacy global GizmoInstance
snip unneeded multi-tab leftovers
use state/gizmo settings for scene view control
replace remaining ray length with Gizmo.RayDepth
don't try to save scene-specific viewport config for untitled scenes
use alternate check for IsUnderMouse
move viewport settings to ViewportState from GizmoSettings, use shared gizmo settings for all viewports
shift camera settings to EditorPreferences, simplify viewport options
restore single EditorScene gizmo settings
revert camera extension changes, fix pan and orbit zoom, tidy
use hammer's linked splitters for uniform viewport resizing
Misc fixes
Move EnablePostProcessing from GizmoSettings to ViewportState
Default each viewport to a unique perspective
Misc post-scenetab fixes
Hide skybox in 2d views
Split scene view layout/viewport classes into separate files
Tidy
Use frustum RayDepth for terrain, hitbox traces
Make 2d clipping less crap
Use black background for 2d views
We don't need to do this anymore
Fix perpendicular rotation handles being unusable in ortho views
Fix 2d box selection: Frustum.FromCorners does ortho properly, gizmo tweaks
Use correct gizmo settings for dragdrop
Use correct plane for 2d view drag drop
Prevent map cookie from overriding 2d viewmode rotation
Draw grid on top in 2d views
Merge branch 'master' into hackweek-multi-scene-view
Add Widget.GetAncestor<T>
Move Grid, Scene toolbars to header bar, remove SceneViewToolbar
Fix warnings
HeaderBar switch layout
Tweak viewport menu, so you can see the checkboxes
Merge pull request #1582 from Facepunch/hackweek-multi-scene-view
Multi-viewport and Ortho Scene views
HeaderBar switch layout
Tweak viewport menu, so you can see the checkboxes
Add Widget.GetAncestor<T>
Move Grid, Scene toolbars to header bar, remove SceneViewToolbar
▄█▅'▋ ▍▅▇▄▊▌ ▊▉██ ▄▋▄▄▄▉ ▇▆▇ ▍▉▍▇▅ ▆▉█▊▋█ ▉▊▌█ ▇ █▆▌▄▆▍, ▍▉█▌ ▄▆▄▅▇ ▊▌▄▅ ▅▄▌ ▅▋▄ ▇▍▌▄
▍█▍▊▋▉▇▉▆▅▍▊: ▇▌▆▅▆█▉▇▌▋▉▊▆▆▉▅▅ ▍▌▄▄▉▉ █▅▊▆▉▄▅▉, ▍▆█▊▍▌▉▋▍ ▇█'▅ ▅.▌▇▇ █▄▆█▆ ▇▌▉▌▇ (▌▄▊▅ ▄▇▊▅ ▊█▋ ▉▉▆▉▆▌▋▊)
▇▇▉ ▋▆▌█▌ ▋▇ ▉▇▌▋ ▊▄ ▉▅▋ ▆▄▉▄▆▍▉▌█▍▍ ▄█ ▅▍▉▄ ▆▆ ▇ ▇▉▉▍▋▄▄▍▋ ▍▅▍▅▅. ▉▉▌▆▇▌▋▍ ▄▌▋▇▅▅▌▆▉/▋▆▋█-▊▉▉▇▅▌#▊▄█▋
▍▌▇▊█▋▋▌█ ▊▇▉▋▆█▍▍ ▄▉▇▇▊▇▊▌ ▍▆▍▅▍▄▌▊▄ ▌█▋▉██▌▍ ▌▅▄▅▌▇▌▆▍/▊▉▄█-▇▉▊▋██#▌▊█▉
█▍▊▇▍▅▇▉▄ ▉█▌▅▉▋▅▍▄▍▄█▇▉▊ █▍▄▋▍▄▍▆ ▇▊▊▆▅▍▍▄▉/▄██▍-█▇▅▄▇█#▋▊█▄
▅▇▄ [▍▄▅▊▉( ▄, ... )] ▊▆ █▉▍▉▍▄.▄▍█▇▍ ▄▋▍ ▉▍▋▊▉▅.▉▍▉▉, ▌▅▄▍▌▍ █▇▌▊. ▄▌▅▉ ▇ █▊▋▄▋▅ ▆.▆▍ █▅▍▍ ▉█▋█▄ █▊▌▄▅▄█ ▌▉▆▄ ▍▋▋▅▇▄ ▉ ▌▍▌▇▊▌▅█ ▋▄▉▋█
▍▉▋ ▋▌▉█▉▊▉▌▉▄▆.▍▋▇▋▊█▍▍▉▆▄▄▍▍ ▊▇ ▇▇▌▋ ▅▇▍▄▆ ▋ ▊▍▅▇▍▌ ▉▊ ▅▋█▇▍▇▉▄▄ ▉▊▌ ▉▉▍▇▆▉▋ ▆▅▊▋ ▇█▌ ▌▍▋▆▆▆█▇▋▌▌▄▇
▉▆▄▇▇▇█▅▅▍▌▅█: ▄▇██▍▅ ▍▅█▉▆▌▆█▇▆▋ ▄█▆▅▆, ▄▄ ▇█▍▍ ▊▋▍ ▌▄▌▆▅▌▆ ▌▋▄▆▄▊ ▋█▄▍▅▌▇▌█ ▍▆▋ ▆█▅ ▉▅▍█ ▊▉█▋█
▆▅██▆▊▅ ▍▅█▆▌▇▄▌▋█▄▇▅.▊█▍█▅▆▉▅▋█▄
▇▋▊▊▍█▌▊ ▌▋▇▊▌▅▇▆▅▄▋▆▉▄▉▋▌▆▄.▇▍▄▍() - ▅▋▇ ▍▄▊▇▍▇ ▉█ ▉█ ▇.▋▅▇▋ ▍█▄▄ ▅▉▆▆▌▌
▊█▉▊▋ ▌▅▌█▅▆▊▋▅█▋ ▄▉▅█▄▅▋▉▄ ▉▌ ▄▊'▌▊ ▋▋█ ▆▌▄▋▋▉ ▅▍ ▊▅▉▇ ▊▍▊█ █▋▅█▌▉▋ ▍▊▅▍▅ ▆▊▉█
! ▌▇▍▉▊▆ ▋▉▇▄█▊▄▊▌ ▍▇▅▇▌▊▇▉▊▅▄▅▉▉▍, ▋▄▉'▄ ▉▇▄▅ ▋▆▄ ▉▄▌▄▄ ▍▄ ▆▄▋▄ ▆▊▌ █▋▆
▇▊▅▅▍▇▇ █▄▄▅ ▉▌▆█▅ ▌▄ ▆▋▊ ▄▅▅▆ ▉▆▊▋▍ ▅▄▉▋▋▅
▄▌▉▋▉▉▄ ▌▌▋▅█▊▅▌ ▋▆▄▉▇▉▄ ▌█▅▊▋ ▅▌▅▍▄ ▉▇▄ ▍█▉▆ ▄▄▆▆▉▇▋ ▍▊ ▄▇▋▉▆ █▉▄▄▅▉ ▌▌ ▍▄▋▋▄▍▇▄▌▇▊▌▉▇▆▋▇ ▅▇▊▄▄█ - ▇█▌▅▋ ▍▍▇▍ ▇▅▄▆▉▋▆ ▌▊▉ ▆▄▅▊▊▅ ▇▇▊▄▆ ▅▌▌▉▇▆▅▌▊ ▄▍▍ ▊█▇▆ ▄▆▉▌▉▄ █▌ █▆▌▅▍█ ▊▆ ▇▋▆▇▆▋ ▅▉▅▍▍█▆▅ ▉▅▇▌▆ ▄▅▆▊▄▇▄▄ ▅█▍ ▌▆█▋▊▌▆▍▄
▆▄▄▊ ▉▅▍ ▉▇▋▋▌▄▅▉▄▄▅▅▄▅▊▍ ▅▅▅▋ ▄▉█▊▌▇▌ ▍▄ ▅▉▄▍▇█▋█▋▅▋ ▄▌▊▉▋▄▍▌▊
▄▌▉ █▇▌▄ ▌▄▌█▅▅▉ ▍▉▅ ▆▊▋▌▉ █▍▇▊▆▍▌, ▍▌▇'▄ ▇▍▆▍ ▉▉██ ▍█▌▊▉ ▍▇▊▍
▊▌▇ ▄▋▉█▉▅▊▊▅▍▅ ▄▄▅▋▉▋▊▉▊
▅▇▍ ▅▉▇ ▋▋▍▆▍ ▇▍ ▄▄▉█▋▇█▌▌▆▍▆▌▉ █▅ ▋▍▇▄▅ ▆▋▌'█ ▍▆▇▍ ▋▌ ▄▋▄ ▄▄▆ ▅▄▆▄▌▆▄
▍▌▊▋▇ ▊▅▇▉▆▌▌▆▋ ▄▌▅ ▄▍▅█ ▌▉▌▉▇▍▉ ▍▅▍▇ ▍▊ ▌▉▆▉ ▄▇▉▉▉█▆ ▆▌▉▅▅://▄▄▌▅▊.▅▆▌▅▍▊▊█▇.▇█▌/▊▌█▉▊/▄▉▉▍▇▄▉▇/▉▇█▋-▅▍█_▋▄▋▆█▇▄▊▍▄.▆▅▋
▇▅▊▊▊ █▍▆▉▋▌ '▆▆▌█▇▅' ▋▆▇▍ ▄▉▄▅▄▇▄▍-▊▌▅▌▋-▍▇▊▋▄-▊▄▆▅
Add BBox + Sphere GetVolume()
Call AudioProcessor.OnDestroy properly
Make DspProcessor public
Store and restore Mixer config when playing game in editor
Update Processors in mixer UI to show enabled status
catch and report exceptions when disposing GameObjectSystems
Dsp tweaks
Make Gizmo.Control.BoundingBox much more visually simple
Json Serialize Sphere properly (!)
Gizmo.Control.BoundingBox - adjust depth bias so we can always touch the handles through geo
This reverts
Expose Sphere
Add ControlSheet.CreateLabel( SerializedProperty property )
Add [InlineEditor], which will make structs editable inline when applied to a property
Add Editor.FileSystem.Config
Add string.GetFilenameSafe()
Layouts are stored in game/config/editor/layout/
Add/Update default layout
Add a small cache on Timings.Get
Extra checks in ByteStream
Where possible, cache DelegateFunctionPointer instead of calling GetFunctionPointerForDelegate every time
Completely avoid DelegateFunctionPointer.Get in PhysicsTrace
Fixed prefab scene bullshit
Fixes sbox-issues/issues/5636
Fixes sbox-issues/issues/5635
Fix bytestream overflows (and add test)
Make a bunch of stuff sealed
Fix SerializedPropertyProxy not forwarding TryGetAsObject, As (fixes sbox-issues/issues/5631)
Restore conversion from .object to .prefab
Fix NRE in SceneWidget when scene is deleted
Fix PrefabScene placeholder loading whole scene
Scenes free their SceneWorld/PhysicsWorld/GizmoInstance on close/destroy/finalize
Clean GetPrefabScene - actually load the prefab scene if not loaded (although I feel like this would already be doing that if it should be doing it)
Add TypeDescription.GetValue, SetValue - handles both properties and fields for QOL
TextDialog cleanup
ControlSheet.AddRow just creates a ControlWidgetRow (single path)
Move ComponentSheetHeader to its own file
Now GameObjectTransformControl uses the new path, we don't need to manually align margins
MakeIdGuidsUnique returns a translation dictionary
Store prefab guid to instance guid translation table on prefab instance root GameObject
Add EditorUtility.Prefabs.CreateAsset, obsolete GameObject.GetAsPrefab
Add CloneConfig.PrefabVariables
Add PrefabFile.VariableList
Simplify prefab instance lookup object by id
Add PrefabScene.VariableCollection
Prefab variables end to end
Show variable names when inspecting prefab
Prefab variables widget, editing, grouping, deleting
Fix ControlSheet stretching horizontally
Store variables in the prefab's RootObject, makes most sense
Variable star opens a menu instead
PrefabVariable UI https://files.facepunch.com/garry/83829991-476d-4934-ad39-099fc0f7ce6d.png
Fix prefab changes not updating after save
UI tweaks
Remove Scene.Save - way too confusing
Merge pull request #1603 from Facepunch/prefab-variables
Prefab Variables
Remove Scene.Save - way too confusing
Fix prefab changes not updating after save
UI tweaks
PrefabVariable UI https://files.facepunch.com/garry/83829991-476d-4934-ad39-099fc0f7ce6d.png
Variable star opens a menu instead
Store variables in the prefab's RootObject, makes most sense
Fix ControlSheet stretching horizontally
Show variable names when inspecting prefab
Prefab variables widget, editing, grouping, deleting
Clean GetPrefabScene - actually load the prefab scene if not loaded (although I feel like this would already be doing that if it should be doing it)
Add TypeDescription.GetValue, SetValue - handles both properties and fields for QOL
TextDialog cleanup
ControlSheet.AddRow just creates a ControlWidgetRow (single path)
Move ComponentSheetHeader to its own file
Now GameObjectTransformControl uses the new path, we don't need to manually align margins
MakeIdGuidsUnique returns a translation dictionary
Store prefab guid to instance guid translation table on prefab instance root GameObject
Add EditorUtility.Prefabs.CreateAsset, obsolete GameObject.GetAsPrefab
Add CloneConfig.PrefabVariables
Add PrefabFile.VariableList
Simplify prefab instance lookup object by id
Add PrefabScene.VariableCollection
Prefab variables end to end
Fixed scene selection not updating when switching active scene
Scene tab fixes
- Fix scene tabs being invisible when restoring layout
- Save/restore scene tab position in window state
- Place new scene tabs with existing scene tab when possible
Fixed ability to create an infinite destroy loop in QObject
ToolWindowManager: don't delete a window if we're removing it as a result of it being deleted
Add TypeLibrary.Create<T> that accepts args
Add GizmoInstance.Clear
Add DockManager.RaiseDock( Widget )
Move ShowCloseDialog to SceneEditorSession (it makes no sense on GameEditorSession)
EditorMainWindow exists during startup, but made visible after startup
Add Scene.Editor.FrameTo (replaces hacky "scene.frame" event) that doesn't work with multiple active scene sessions)
Make SceneEditorSession.Tick a member
Make SceneEditorSession .UpdateEditorTitle non static
Create a SceneDock for each open scene
Give playing scene tab a proper name
Add SceneEditorSession.BringToFront()
Don't try to save tool widget windows that have no name
Hide GameEditorSession + PrefabEditorSession , (its confusing people), refactor, document
Clean SceneViewWidget a bit
Use a different icon for prefab scenes
Add Gizmo.CursorMoveDelta , CursorDragDelta
If we move the mouse while pressing a GameObject, clear it as pressed
Move ObjectEditorTool to its own folder, to highlight that it's self contained
Feed ToolManager to current SceneCamera when updating
GameObject.GetBounds() returns a 1x1x1 square on the transform if no ModelRenderer's are found
Add Gizmo.Draw.ScreenRect
Cache ControlWidget type lookup
Add GameObject.HasGimzoHandle (this is gonna change at some point)
Get rid of this EntityPrefabEditor namespace
Add Rect.FromPoints
Add Frustum.FromCorners
Add SceneCamera.GetFrustum( rect )
Refactor Gizmo.Pressed
Move object selection to EditorTool
Remove Scene.HasUnsavedChanges
Open editor undo system up, debug dock
Delete SceneWorld objects when processing scene deletes
Components/GameObjects start disabled when creating, to avoid enable and quickly disable
Fix possible NRE when deleting camera
Call SceneWorld.DeletePendingObjects when clearing scene
Add Scene.Editor (ISceneEditorSession), allows game to talk to the EditorSession (gizmos etc)
Also make selection its own undo system - don't need to save the scene on every click
Fix undo system's snapshot system not complying with other undo actions
Add SoundHandle.Loopback, use voice_loopback to determine (for local voice)
Bounce talking party member
Mic icon when chatting
Switch to ServerGarbageCollection (we'll want to benchmark this when we have benchmarks)
Multiple threads to handle garbage collection, utilizing all available CPU cores.
Better performance in multi-core environments.
Reduced latency due to parallel processing.
Add Sound.UncompressVoiceData
Make Friend comparable
Basic party voice chat
PartyRoom - run tick at set interval, cache owner
Add Panel.ToggleClass
Remove ButtonGroupConstructor
Can change party title, capacity, public state
Fix enter/leave not updating chat box
Add party_id to rich presence
Add Connection.PartyId
Add more CompileCodeArchive tests
Fix buffer overrun (80% confidence)
Fix NotImplementedException in SteamLobbySocket - fixes sbox-issues/issues/5560
Sorry I'm an idiot
Switch from Marshal.SizeOf to Unsafe.SizeOf in a bunch of places where Marshal is wrong
Fix bone merged skinned model first frame being wrong
PartyRoom.SendChatMessage
Make lobby callbacks interface based, simpler, easier
Add retry resilience to DownloadString
When finding files to publish, also look in libraries
Highlight parties that are playing a game
Tweak to avoid game join timeout
Lets put a social bar on the pause menu
Fix not following leader into MP game
Validate download size in CodeArchive test