3,547 Commits over 1,522 Days - 0.10cph!
Remove log tags
Remove the rest of the log tags
Texture.Update doesn't crash with wrong sized data, can update the first mip only, will generate the other mipmaps if only updating the first mip
SkiaTextBlock will update the texture instead of disposing and creating a new one
Add names for other runtime textures to aid debugging
Add logging menu to editor, can switch Trace/Detailed logging on
https://files.facepunch.com/garry/88a623bf-7fcd-4245-bf05-13ae6da6f5d9.png
Don't need special checks for IClient anymore in netcode, because it's an IEntity
IClient and IEntity can be [Net]
Dedicated server fixes
MapSchema experiment (unexposed)
Re-add ResetMap, HammerID is a string
Protocol++ (sorry, HammerId forced it)
Remove Entity.IsClient, Entity.IsServer (just add Game. in front of them)
Strip out built in noclip
Devcam cleanup
PackageExtensions to SandboxGameExtensions
Transform.ConcatTransforms => Transform.Concat
Move GameServices to Sandbox.Internal
Organize base extensions into one class
Move Assert to Sandbox.Diagnostics
NullChecks => SandboxGameExtensions
Move internal EntityUtility to OOBChecks
Move DevCam stuff to Sandbox.UI.DevCam from Sandbox
Move Sandbox.MenuEngine.FileSystem.OpenFileDialog to Sandbox.MenuUtility.OpenFileDialog
Rename Sandbox.FileSystem in System.Tools to Editor.FileSystem
Move Sandbox.IMenuAddon to Sandbox.Internal and make it an interface
Added "Animation Speed" property to prop_animated
Implement prop_data SpawnMotionDisabled
Use prop_data.SpawnMotionDisabled for parking_barrier first gib
PackageExtensions to SandboxGameExtensions
Transform.ConcatTransforms => Transform.Concat
Move GameServices to Sandbox.Internal
NullChecks => SandboxGameExtensions
Move internal EntityUtility to OOBChecks
Move DevCam stuff to Sandbox.UI.DevCam from Sandbox
Move Sandbox.MenuEngine.FileSystem.OpenFileDialog to Sandbox.MenuUtility.OpenFileDialog
Rename Sandbox.FileSystem in System.Tools to Editor.FileSystem
Move Sandbox.IMenuAddon to Sandbox.Internal and make it an interface
Revert "Move DevCam stuff to Sandbox.UI.DevCam from Sandbox"
This reverts commit e084b44e963a5ada259328585b83444dfc66d5d0.
Merge branch 'rubat-pain-day-2' of sbox into rubat-pain-day-2
Make Global a real static class, Remove GameService completely (we can take another run at this)
Rename Sandbox.Global to Sandbox.Game
Remove Rand, add Game.Random
Fix devcam scss
Delete Host, move everything to Game
Remove Client, replace with IClient, Client.All is now Game.Clients
Move Local.UserPreference to Game.Preferences
Remove 'Local', all moved to Game
Moved everything from Map. into Game. and deleted Map
Merge branch 'master' into engine-refactor-3
protocol++
Fixed console key not working in editor
Removed Sandbox.Hooks obsolete code
Moved VoiceSpeaker, VoiceEntry, VoiceList to Sandbox.UI namespace, removed Style.Dirty usage
Tools: Remove Utility.RunCommand, replace with ConsoleSystem.Run (to match Sandbox.Game)
Replace tools addon usage of Utility.RunCommand
Merge branch 'master' into pain_day
Merge remote-tracking branch 'origin/pain_day' into engine-refactor-2
Move DebugOverlayAttribuite to Event.Debug.Overlay
Update GameDebug.cs
Remove Entity WaterLevel + WaterEntity
Protocol++
Hide EntityComponentAccessor, make component system interface based, accessible on IEntity (from tools etc)
Clear that up, add some extensions to get water level easier
Remove PhysicsBody.WaterLevel
Show components in Entity list
TypeLibrary.GetDescription becomes TypeLibrary.GetType
Make AssemblyInitialize internal
Remove ApplicationTimings
BBox's "center" constructor takes an optional size argument
Remove env_tonemap_controller,
Remove EnginePostProcess, Remove ITonemapEntity, make SceneTonemapParameters internal
Warning fixes
SandboxEditor becomes Editor
Rename Tools to Editor
ToolEvent to EditorEvent
Can change visibility of Razor created panels using @visibility
https://files.facepunch.com/garry/ba7154d8-e33c-4ce8-b799-09ad82dc8d17.png
Move PhysicsJoint, CollisionRules, PhysicsSettings to Sandbox.Physics
Move Sandbox.Easing to Sandbox.Utility.Easing
Move PerformanceStats to Sandbox.Diagnostics
Put CircularBuffer in Sandbox.Utility
Flatten all the extension classes to per-assembly classes
Move Logger to Sandbox.Diagnostics, making Logging internal
Make Sandbox.TextureLoader.Image internal
Delete AboutDialog
Move Task related stuff to Sandbox.Tasks
Move Noise to Sandbox.Utility
Squashed commit of the following:
commit 9f84591e8130aa00e90d4ea6a6ceab96a0860585
Author: Tony <devultj@gmail.com>
Date: Mon Nov 14 14:16:54 2022 +0000
Update Water and VoxelChunk to use tags
commit e178470dbc3917cf3b5321c3326a69e2726dfd1a
Author: Tony <devultj@gmail.com>
Date: Mon Nov 14 14:08:32 2022 +0000
Refactor DamageInfo to use tags instead of flags
- Obsolete DamageFlags, DamageInfo.Flags, DamageInfo.WithFlag, DamageInfo.Explosion
- Add DamageInfo.FromExplosion, DamageInfo.WithTag, DamageInfo.HasTag
- Replaced all obsolete flag usage with new tag usage
Completely remove DamageFlags
Minimal addon correct fov calculation
Move glow component to addon code
Don't switch loading screen to addons
Remove further obsoletes
Merge branch 'master' into engine-refactor-2
Merge fixes
Merge branch 'master' into engine-refactor-2
engine-refactor-2
Engine refactor 2
Assure Base Runtime is available when loading a runtime game
Add an assembly manifest to addons so we don't need the hack in the future when we let people add more assemblies
Load the packaged dlls in a determinate order
Fixed ConditionalWeakTableUpgrader
Handles the case where oldInstance == newInstance, or if the collection gets modified while being processed
Simplify JsonSerializerOptionsUpgrader
Directly process JsonConverters inside existing JsonSerializerOptions, without creating a new instance. Handles case where we can't create a new instance, and the options aren't mutable. Also make sure we process static fields in System.Text.Json assembly. Possible fix for #640
Add some more easy hotload skips to save a few milliseconds
JsonSerializerOptionsUpgrader .NET 7 fixes
Log path to instance when a hotload error occurs
Some nicer paths for items in common collections
Replace TypeDescription / MemberDescription instances during swap
Tests for TypeDescription / MemberDescription replacing
Make hotload tests more strict
Warn when encountering delegates that can't be upgraded
Even simpler way to clear System.Text.Json cache on hotload
Readonly field hotload test
Trace instance paths when doing hotload tests
Stop watching System.Text.Json since we're clearing its cache now
Ignore LiteDB types during hotload
Merge remote-tracking branch 'origin/master' into hotload-fixes
Get rid of soon-to-be-unused "context" arg in OnTryCreateNewInstance
Some more permutations of lambda method types
Big DelegateUpgrader rewrite
* A lot more careful about matching generated methods that change name
* Fixed case where swapping unchanged code would substitute in the wrong lambda method
* Now replace lambdas we can't find a match for with one that throws a helpful error (before they would become null)
Easy case for delegate methods from non-swapped assemblies
Failing delegate swap involving same-named methods
Strategies for fixing HotloadTests.Delegate11
Split DelegateUpgrader up, mocked up same-named scope method solution
Refactor to assume we have Mono.Cecil, WIP method resolution
Fixed HotloadTests.Delegate11
Hotload message type consistency
Warning: non-fatal, but recommend reloading the game
Error: something went wrong that we should fix
Fixed resolving nested type definitions
Merge remote-tracking branch 'origin/master' into hotload-fixes
Failing test for lambdas with a generator context method
Fixed upgrading lambdas with a generator context method
Tests for finding definitions of methods involving generic parameters
More generic type / method fixes in hotload
Added failing test for handling removed lambda with a return type
Test case for nested lambdas
Fixed generating error delegate if original lambda had a return type
Some more test cases for upgrading delegates
Fixed resolving multi-dimensional array parameter methods
ByRef and async method tests
Fixed resolving method definitions with ByRef parameters
Support for upgrading lambdas defined in async methods
More array and ByRef fixes
Type equivalence fixes
Apparently MakeArrayType( 1 ) != MakeArrayType()
We can skip cached lambda instances now
They'll still get upgraded if they're referenced in a non-cache field somewhere
Merge remote-tracking branch 'origin/master' into hotload-fixes
Merge pull request #668 from Facepunch/hotload-fixes
Hotload Maintenance
Add version to events
Add defaults for znear/zfar, so if games don't mess they'll be fine. Add comments with suggested values.
Vector2.Dot returns float
Vector3.Equals doesn't use AlmostEqual, but the == and != operators do
Move a bunch of stuff from Client to IClient, PlayerId is now SteamId
Client.Pawn is an IEntity
Game becomes GameController, added Sandbox.Game namespace
Move stuff from GameController to BaseGameController where possible
Remove Sandbox.Hooks
Rename CameraMode to CameraComponent
Make CameraSetup internal
Delete FixedCamera.cs
Delete LookAtCamera.cs
Obsolete [UseTemplate] so we appreciate the scope of removing it
Move Event.Frame to Event.Client.Frame, add ToolEvent.Frame
Add Event.Client.PreCamera, PostCamera
Move Event.BuildInput to Event.Client.BuildInput
Move default BuildInput to internal BaseGameController
Rename files to match new classnames
GameController becomes GameManager
Delete CameraSetup
Delete CurrentView
Use Map.Camera in place of CurrentView
Remove dof and motionblur from ViewDesc
Delete BrushEntity.Solid (was obsolete)
SurroundingBoundsType.Obb => SurroundingBoundsType.OBB
Use RangedFloat in SoundEvent resource
This change will make existing assets lose their PitchRandom/VolumeRandom until updated
Move GlobalRpcHandler to Sandbox.Internal
Make Sound.Index internal
Hide Prediction.CommandsAcknowledged/LastExecutedPacketNum
Move QTextBlock to Tools namespace
Rename ModelDoc namespace to Sandbox.ModelEditor
Also moved all ModelDoc node classes to Sandbox.ModelEditor.Nodes
Renamed ModelDocAttributes.cs to ModelEditorAttributes.cs
Delete Sandbox.ConstantBuffer (obsolete & unused)
Delete TriggerHurt and TriggerTeleport (obsolete aliases)
Delete TriggerMultiple.Wait (obsolete alias)
Delete ModelBreakPiece.CollisionGroupOverride (obsolete)
Delete CameraMode.DoFPoint/DoFBlurSize (obsolete)
Add Local.UserPreference.DefaultFieldOfView
Remove unused properties of Sandbox.Water
EnableShadows/EnableFog/EnableRefraction
Fixed main SceneCamera not controlling the render properly
Remove SharedRendering/SetDevLayer hack
Delete more obsoletes
Deleted PhysicsWorld.IsPointWater
Deleted Sandbox.Component.Glow.Active/RangeMin/RangeMax
Deleted FogStength from all light entities
Deleted OrthoLightEntity.UseFogNoShadows
Deleted Global.IsDedicatedServer/PhysicsSubSteps/PhysicsTimeScale
Deleted ScenePanel.CameraPosition/CameraRotation/FieldOfView/AmbientColor/ClearColor/ZNear/ZFar/DisablePostProcessing/SceneAttributes
Delete CameraComponent
DevCamera tweaks
Remove Map.Camera, add global Camera
Don't use EyeRotation for view angles - because it's laggy and fucked and I'm gonna remove it
Remove Entity.,EyePosition, Entity.EyeRotation, Entity.EyeLocalPosition, Entity.EyeLocalRotation, Added Entity.GetAimRay()
Delete StandardPlayerAnimator, PawnAnimator
Refactoring
Cleaning
Notes for future
Remove unsued
Merge remote-tracking branch 'origin/pain-day-rubat1' into engine-refactor-1
Rename SurroundingBoundsType.OBB to SurroundingBoundsType.Object, comment out unused
Remove now unused constant buffer binds
Defaults for main camera
Minimal template fixes
Reduce default vertex size
Move some stuff from base addon into the game dll
protocol++
Add prediction tolerance to m_vecOrigin
Split base and compiled assembly again
Only compile base addon if we're a runtime game
Remove debug
Remove rest of fov hacking code, add Screen.CreateVerticalFieldOfView
Update TransformTest.cs
Fix Gamemode download unit test to use new assembly schema
Disable tests that are too much work to get working yet
Don't allow LocalScale < 0
Don't complain about TaskCanceledException on game shutdown
Add Copy To Clipboard button to Stack property
Add facepunch.unicycle_frenzy to test
Lets mark a bunch of stuff as obsoleted so people aren't surprised
Set default FOV back
Merge pull request #669 from Facepunch/engine-refactor-1
orgs/sboxgame/discussions/2652
Fix soundscape NRE
Fix PanelList overflow
Squashed commit of the following:
commit f5d20681b7389cd09e9c877d4ea0d9e260762a44
Author: Rubat <3299036+robotboy655@users.noreply.github.com>
Date: Mon Dec 5 21:48:02 2022 +0200
Delete Sandbox.Internal.Decals
commit c9ed0a3acf8a248f4533109ddb63edba3a3c5330
Author: Rubat <3299036+robotboy655@users.noreply.github.com>
Date: Mon Dec 5 21:43:19 2022 +0200
Remove obsoletes
Removed Sandbox.SpotLightCone
Removed Sandbox.SceneSpotLight.SpotCone
Removed Sandbox.UI.DataSource.ArraySource
Removed Sandbox.UI.DataSource.BaseDataSource
Removed Sandbox.UI.DataSource.BindMethod
Removed Sandbox.UI.DataSource.Property
Removed Assert.True( bool ) in favor of Assert.True( bool, string=null )
Removed Assert.False( bool ) in favor of Assert.False( bool, string=null )
Removed Vector3.LerpTo( Vector3, float ) in favor of Vector3.LerpTo( Vector3, float, bool = true )
Removed Vector3.LerpTo( Vector3, Vector3 ) in favor of Vector3.LerpTo( Vector3, Vector3, bool = true )
Removed Sandbox.DecalSystem
Nothing should be named "dynamic.*" anymore
protocol++
Experimental / PoC
Limit stored custom inputs to a maximum of 256, removing older entries as new ones are added
Added ButtonState intended for use with [ClientInput]
Use TypeDescription to fetch property for [ClientInput]
Add extensions for reading/writing Transform
Add Transform.Read and Transform.Write
Add support for Transform to [ClientInput]
Added ButtonState.Pressed and ButtonState.Released with docs
Fixed compile error from copy paste 🥴
Make ButtonState a struct again but add a method `Set` so it doesn't need to be a class for the property
Revert "Make ButtonState a struct again but add a method `Set` so it doesn't need to be a class for the property"
This reverts commit 6d29a14ea85614a2c91c8f670f73e5ebb30e60cf.
Fixed IsDown / WasDown and also Pressed / Released being swapped
Delta values for some stuff (only send stuff that changed since last cmd)
Tidy up + add ManagedInputs
Rename to PawnInput
Just use TypeLibrary as its cached anyway
Add comments + use TypeLibrary
Add HasAttribute<T>()
Merge branch 'master' into custom-client-input
Don't add const to ArgPointer if asref is specified
Rid of CUtlVectorByte in favor of direct byte arrays
Make ButtonState a struct with implicit bool conversion
Write dynamic assembly hash to managed input message. Check hashes match when deserializing, if they don't skip that input
Merge branch 'master' into custom-client-input
Prepare to move a bunch of stuff from user cmd to managed. Clear out eye angle stuff
Start stripping out stuff that'll need implementing on pawn
Merge branch 'master' into custom-client-input
Match structs
Input.LookDelta and Input.MoveDelta analog inputs + copy PawnInput props in MimicBot from target client
Update (obsolete) player and controller examples to use the managed input / pawn inputs
Try stripping out InputBuilder and see how it feels...
Merge branch 'master' into custom-client-input
Some extra docs + rename PawnInput to ClientInput
Remove redundant inputs. Reverse yaw for bots
Some additional documentation
Move MimicBot to base addon
Write -1 if entity is null
Add ActiveChildInput and ensure children get added to Inventory on ClientSpawn so they match
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Can pass RenderAttributes into VertexBuffer.Draw
Avoid conflicts
Merge branch 'master' into custom-client-input
Add Tony's change for always record voice in VR
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Remove code I added that wasn't needed
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge in Matt's Input.Pressed fix for when FPS is lower than tick rate
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Make sure StopProcessing is reset in Input.Process so that it isn't remembered next time
Ensure InputDirection client input is consistently set to Input.AnalogMove for parity with old system
Merge branch 'master' into custom-client-input
Support extra types
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Early out if no managed inputs to write
Additional types
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge branch 'master' into custom-client-input
Merge fixes incompatible
Merge branch 'master' into custom-client-input
Merge remote-tracking branch 'origin/custom-client-input'
protocol++
Remove obsolete
Disable api protection unit tests (we're breaking the api now)
Api++
Remove Package.Query
Clean up + document protocol stuff in c#
Pass api protocol when querying packages
Oops, unmangle engine.def
Moved network and api protocol into src/common/protocol.h, deleted unused version stuff
This test is a bit subjective, lets give it more breathing room
Fix potential NRE in Panel.TickInternal()
OnAssetFileChanged doesn't throw an exception when the file was deleted
Handle and report template parsing exception
Fixed exception reporting wrongly classifying old addons as engine exceptions
Fix menu exceptions getting ignored
Error reporting classify tools propertly
Update exception dsn
Fix editor crash on exit (causing layout to not save)
BuildShaders.bat needs to build the whole resource system now because shaders and resources. So do that.
Build rendersystemempty when building shaders
Fix crash when closing console and restoring default layout
Fix unable to close/open game view dock
Arrange View/ menu alphabetically
Fix gameframe fullscreen
Update Facepunch.SymStore.exe
Update Facepunch.SymStore.exe
Revert "Fixed an issue with bind proxies change detection"
This reverts commit 25876a3af2d31f764e5ccbcc3774b36b39b992e1.
Added upgraded docking system
Show facets in asset browser
https://files.facepunch.com/garry/ad56d755-b646-4e12-a854-f43e1b1cad49.png
Asset Browser handle spaces better https://files.facepunch.com/garry/0c89437d-84c0-439e-85e5-6fb5e5232f8b.png
Asset party type selector
Move TagPicker to TagPicker files
Fix NRE when hotloading after closing hammer
TagEdit - updated asset browser & publisher
https://files.facepunch.com/garry/cfb1e92e-6654-43c7-95ec-b587a7fe34b4.png
Diagnostic fixes
Move Debug Overlay options
Add Sandbox.Utility.DisposeAction
More startup time diagnostics
Hotload diagnostics
Double click project row to open properties
Package Settings page
Use project settings window to configure asset packages
Project publish wizard foundation
Enforce/Signal package ident length to avoid silent fails
Get rid of IWebProgress, add simple action callback instead
New publisher works
Delete old PublishWindow
Merge fix
Upload wizard fixes
Clean up and make it all work for non single file projects
Clear the package cache after successful upload so it'll be usable immediately
Delete PackageSettings page, replace with button
Add ContextMenu which automatically deletes itself on close. Try to use this whenever popping up a one time context menu.
Move Project Enabled context menu option to first position
Return early in DrawTextBox if rect is invalid
Sully the project list with stats and warnings
New package facets api replaces categories
Fixed text panels not updating when string changed
Clear background image if setting to a missing/invalid image
Add Package.FindAsync (new api) replaces Package.Query
Only compile runtime local addons if they need compiling
Load runtime addon resources on activate (so sounds work etc)
Add active property to button
We only need to rebuild the panel's box if yoga or our parent position changed
Add checker for HasNewLayout
Don't try to cache null packages
Fix transitions causing recursive selector checks
Speed up HasClasses
Refactor Panel system so PreLayout only recurses when it really really needs to
Only call FinalLayout if we need to
https://files.facepunch.com/garry/8df37b66-e43c-4c46-9123-022f6888b7e7.png
Fix backwards compatibility
Fix Panel.OnParametersSet getting called twice
Don't use localhost api - I knew I was gonna do this eventually
Switch to new find/get api endpoints
Local packages untangled from remote packages
Local packages now end in #local and are completely separate from remote packages. This means you don't have to disable your game project to test the published version. It also means your launch configs are now broken. To fix just go in the config for each one and set them back up.
I've updated the Game list page to razor so we could have the local game tab.
Fix compiler not finding runtime game dll when compiling runtime addon
Can get TypeDescription by fullname (namespace.typename)
Runtime addons can define their primary class
Automatically rebuild the project page on hotload
Disable debug spam
Package.MountAsync can load the addon assembly too
Update tooltip text if tooltip text changes while visible