1 Year Ago
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 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 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 Delete CameraSetup Delete CurrentView Use Map.Camera in place of CurrentView Remove dof and motionblur from ViewDesc 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 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 Convert GameIcon & Home to razor Loading screen to razor Remove FriendLine html template 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 Fix monitor rendering in vr https://i.imgur.com/RxCVQ2h.png 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 Matched the volume of the grass footstep sound to match the rest 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 Fix soundscape NRE Fix PanelList overflow Add support for TSPEC_USE_TYPED_IMAGEFORMAT back, video encoding needs this unfortunately Do not display "Recompile" option for assets that can't be recompiled Not Upload => Pending Upload Added "Copy Asset Path" to context menu in asset.party asset browser Also made "Copy Path" for local assets copy the correct extension Remove rest of fov hacking code, add Screen.CreateVerticalFieldOfView Always add "Compile" option for shader asset type Update TransformTest.cs Fix Gamemode download unit test to use new assembly schema Disable tests that are too much work to get working yet Only suppress texture deletion and not texture loading during managed render layers, fixes hangs 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 Clarify Camera.FieldOfView is vertical and Screen.CreateVerticalFieldOfView converts horizontal -> vertical SceneCamera.IsOrtho is SceneCamera.Ortho fix normal on pavement material/ asset cleanup Merge branch 'master' of sbox Add a couple of events to [ToolEvent.MapEditor] for discoverability Camera.FieldOfView is actually horizontal and not vertical 😳 Convert DevCamera ui to razor Local.PlayerId -> Local.SteamId Make PerformanceStats.Timings.History use a circular buffer, this was starting to take a small amount of time as we collected more and more perf stats Only default VR.Anchor to Local.Pawn.Transform unless it's been explicitly set from a game - that way games can set VR.Anchor whenever and whereever they want Add version to events Add defaults for znear/zfar, so if games don't mess they'll be fine. Add comments with suggested values. Merge pull request #668 from Facepunch/hotload-fixes Hotload Maintenance Merge branch 'master' into pain_day Load the packaged dlls in a determinate order 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 Don't generate resource for any shaders that fail to compile Merge remote-tracking branch 'origin/pain_day' into engine-refactor-2 Move DebugOverlayAttribuite to Event.Debug.Overlay Update GameDebug.cs "getpos" runs clientside, uses Camera.Position, Camera.Rotation - fixes inaccurate values being reported. Removed cl_showpos Remove Entity WaterLevel + WaterEntity Protocol++ Fix some warnings Pressing ESC in asset picker closes it 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 Hammer remote packages use new .bin path, remove all the legacy support Parallelize MapClass parsing Add a "New Shader.." button in the asset browser Make AssemblyInitialize internal Remove ApplicationTimings BBox's "center" constructor takes an optional size argument Input.AnalogLook and Input.AnalogMove are accessible serverside like everthing else in Input Use CircularBuffer for InputHistory Make Input serverside asserts a bit more clear Fix SoundEvent using the max value when not supposed to Breakables follow animations when attached to a bone Adds Model.GetBoneTransform. Transform.RotateAround, Transform.ConcatTransforms Add ability for AnimatedMapEntity to be breakable Follows the same rules as normal props/door models Update Parking Barrier prop to use embedded break pieces Remove this ancient source behaviour we've been keeping around that amplifies the Input.AnalogLook pitch by 1.5 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 props update adding rig/ animation to aircon / fix bad naming convention adding meta data for some props tweaked wall_vent LOD tweaked LOD distance on some props to something useful removing old tree model 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 Fixed writing null strings Merge branch 'master' of github.com:Facepunch/sbox Merge fixes Merge branch 'master' into engine-refactor-2 engine-refactor-2 Engine refactor 2 added animation to the aircon assets to replace the map prefabs Fix VR.Anchor not setting anchor angles Fixed console key not working in editor Added "Animation Speed" property to prop_animated Implement prop_data SpawnMotionDisabled Use prop_data.SpawnMotionDisabled for parking_barrier first gib Add GetParameterType, GetParameterName and GetParameter<T> to AnimationGraph Add AnimatedEntity.GetAnimParameterRotation Add editor for animated entity which extends the entity inspector with animgraph parameter inspector https://files.facepunch.com/layla/1b0911b1/sbox-dev_hLHvjjjIWi.mp4 alphabetic sort on params Merge branch 'master' into sausageman-sucks