574 Commits over 153 Days - 0.16cph!
Bugfix: Prevent Scene2Prefab from always switching to default scene
I dingussed up in the previous commit by doing extra changes after testing. Reverted small part of the change because Scene handle becomes invalid when loading a new scene.
Tests: Ran "Locate Renderers with no LOD Components" - it returned back to original scene properly
Clean: Fixing depr warnings in Editor/Rust
- Added a bit of error checking to SceneToPrefabs to avoid accidents
- EditorApplication -> EditorSceneManager for all scene related work
- ListView event changes, onItemsChosen -> itemsChosen, onSelectionChange -> selectionChanged
27 warnings to go.
Tests: ran Scene2Prefab/Locate Renderers with no LOD Components - it detected a number of issues, so green. Other changes are trivial.
Clean: Fixing depr warnings in Scripts/Procedural
- EditorGUIUtility.LookLikeControls -> manual setting field and label widths
47 to go (I hope)
Tests: None, trivial changes
Bugfix: Reimplementing PowerLineWireUndo
Unity deprecated a couple Undo APIs that broke our utility, so replaced them with new API. Also upgraded PrefabUtility usage and nuked a couple unused public methods (since they used deprecated APIs).
Tests: Tested Undo-Redo when adding a new line on power line platform - works
Clean: Fixing depr warnings in LeavesBlowing.cs
- Also cleaned empty method
65 to go - I thought this was going to be 0, but turns out there's 65 more errors hiding, so the counter restarts
Tests: none, trivial changes
Clean: Fixing depr warnings in Rust.AI/
3 to go.
Tests: none, trivial changes
Clean: fixing depr warnings in Scripts/PostProcessing
Done by taking Unity's official repo upstream patches for our version of unity for these specific file segments. We should replace our source package via a core package.
5 to go.
Tests: Setup debug overlay for normals - still works (though wonky)
Clean: fixed depr warnings in Scripts/Analytics
Now outputs refresh rate as a decimal fraction
Tests: none, trivial change
Clean: fixing depr warnings in Scripts/Diagnostics
Now able to return 2GB+ values for dump convar. 8 to go.
Tests: Generated a dump, validated the padding is alright
Bugfix: KeyBindUI once more avoids modifying original prefab name
This got broken in 2018.3, about a year after our code submit. Also sneaking in depr fixing in UI/Main Menu
- Replaced obsolete PrefabUtils API calls in KeyBindUI
- WWW -> UnityWebRequest
10 errors to go
Tests: Checked main menu news still download and dispaly. checked KeyBinds prefab doesn't get polluted with bind names and options prefabs get renamed properly
Clean: Fixing depr warnings in Scripts/ConsoleCommands
`objects` and `textures` vars can return 2GB+ memory size values per object now.
- Application -> SceneManager
- refreshRate -> Round(refrestRateRatio.value)
14 to go
Tests: none, trivial changes
Clean: Fixing depr warnings in Scripts/ViewModel
- More ParticleSystem module usage
- Also removed obvious comments
19 to go - there's basically no more large groupings, so the CLs will continue to be small
Tests: none, trivial changes
Clean: Fixing depr warnings in Scripts/Client
- More ParticleSystem module usage
- Application -> SceneManager
23 to go
Tests: None, trivial changes
Clean: Fixing depr warnings in Scripts/Procedural
- Removal of dead Render.mateiralType
- Renderer.castShadows -> shadowCastingMode
- WWW -> UnityWebRequest
- Explicitly use default QueryParameters for a RaycastCommand
26 to go
Tests: None, trivial changes
BugFix: TerrainMeta now updates Terrain Material if it's missmatching
Unity's deprecation made it so that our validate-and-update logic broke with 2019.2 and it's been silently skipping it.
- Removed obsolete code (it always returned MaterialType.Custom)
- Updated Hapis TerrainConfig to reference Terrain.v3.Hapis material (so that new logic doesn't set the wrong material on validation)
Tests: Validated that all Release worlds have matching materials as in their TerrainConfig.
Clean: fixing depr warnings in Scripts/Effects
It's all just ParticleSystem module usage additions. 39 warnings to go.
Tests: none, trivial changes
Clean: fixing depr warnings in Scripts/Game/
- SceneToPrefab - using SaveAsPrefabAsset instead of ReplacePrefab
- More ClientRPC(RpcTarget) usage
- More ParticleSystem module usage
- CreatorGibSpawner now caches and restore entire Random state when changing seed
- prefabAssetPath -> assetPath
Tests: Tested SceneToPrefab workflow by building "water well" monument prefab - although it produced inconsistent diffs, original impl also did. Checked the generated prefab visually - it matched. Also walked through Unity's call tree - the controlling variables were the same.
About 55 left
Clean: fixing depr warnings in Scripts/Server
- Server performance can now report memory usage past 4GB
Tests: None, trivial changes
Clean: Fixing depr warnings in Scripts/Entity
- Deleted VehicleModuleSeating.EditorCopyIntoBaseVehicle - all prefabs had up-to-date seating (we can remove the field soon)
- Deleted not-referenced Casette.FailedNetworkFileRequest (been marked as "deleteme" for 3-4y)
- Converted more types to use IServerFileReceiver - Casette, Signage. Ran RPC codegen to clean up.
- More ParticleSystems module use
- More ClientRPC RpcTarget-overload usage
- BasePlayer - explicitly read/write u64s (was happening implicitly via obsolete api)
Tests: none, trivial changes
Clean: fixing depr warnings in Scripts/Util
- Part of AssetStorage clean added a warning when compression gets ignored (we only have 1 use case right now, Terrain normal maps)
- Remove TextureImporter obsolete field usage
- TextureImporter.linearTexture -> .sRGBTexture
- MeshRenderer.motionVectors -> .motionVectorGenerationMode
- More ParticleSystem module usage
98 warnings to go
Tests: None, trivial changes
Clean: fixed depr warnings in Assets/Prefabs
- RequestFileFromServer to use IServerFileReceiver overload + ran RPC codegen
- ClientPRCPlayer -> ClientRPC
- more using particle system modules directly
About 115 to go
Tests: checked bradley effects work, checked chainsaw effects work, checked photoframe drawing works
Clean: Fixing deprecation warnings in Content
Also did a drive-by on all the extra newlines
Tests: spawned a vehicle with the component, observed vfx in water
Clean: Fixed deprecation warnings in Third Party/Community package
Replaced obsolete RequestFileFromServer by implementing IServerFileReciever. Regenerated RPC codegen. Will need to update the public repo as well.
Tests: insufficient, booted up local session, but couldn't test the new API.
Clean: Fixing deprecated code in most of Third Party packages
- Removal of dead code dependent on SystemInfo.supportsImageEffects or SystemInfo.supportsRenderTextures
- Removal of MarkRestoreExpected calls
- Using ParticleSystem.MainModule to set multipliers
Tests: none, trivial changes
Clean: fixing deprecation warnings in Standard Assets
- Removed dead code around SystemInfo.supportsImageEffects
- Removed MarkRestoreExpected calls
- Use ParticleSystem's module to control multipliers
Tests: none, trivial changes
Clean: upgrade deprecated code in Plugins
- Replacing WWW with UnityWebRequest, also updated success checks to more generic versions
- Texture.Resize -> Texture.Reinitialize
- Mute deprecation warning when accessing a value (since we validate beforehand)
- EditorGUILayout.EnumMaskField -> EditorGUILayout.EnumFlagsField
Tests: Booted up local session - no new warnings/errors in logs, code took expected branches
Clean: Disable Obsolete warnings in TextMeshPro pkg
This is external package, so we should just ignore what happens in their pond.
Tests: none, trivial change
Update: Fixing deprecation warnings from obsolete Pool API use
Tests: none, trivial changes
Optim: Avoid unboxing in Pool.Free(ListDictionary)
Was reported by Clr Heap Allocation Analyzer and I missed it originally.
Tests: none, trivial change
Merge: from main
Tests: built all targets, ran around solo on CraggyIsland
Update: disabling ServerTests to not mislead that they are working
Tests: none, trivial change
Merge: from main
Tests: ran new unit tests - all green
Update: Refactoring code to not need Pool.FreeDynamic
Since there's no more users of Pool.FreeDynamic, removing it as well.
Tests: Ran CompanionServerTests - all green.
Clean: Makign tests available only in CLIENT+SERVER
Also adding assert messages to CompanionServerTests for slightly more clarity
Tests: built all targets in editor - pass. Ran all CompanionServer tests couple times - all green.
Bugfix: Tests now able to run after a play session
- ServerMgr now cleans up players on shutdown in editor
- Tests are able to temp overwrite TerrainTexturing
- Tests disable gameplay analytics
Tests: ran all tests multiple times - all green
Optim: Don't wait full timeout for CompanionServer if it's done
Tests now run 2.5s instead of 12s.
Tests: Ran all tests multiple times - all green
Update: Adding last tests to CompanionServerTests
One of them, TestNexusAuth, doesn't do deep testing since it requires setup of NexusServer, which is incompatible because of DontDestroyOnLoad.
Tests: Ran all unit tests multiple times - all green
Update: Avoiding multiple GameObject instatiation in CompanionServerTests
There's now one testDummy that can be used as a component storage. This allows to have proper "alive" components. This revealed a couple issues (late database cleanup leading to locks, not fully configured clan participation) which I've fixed.
Tests: reran all tests multiple times - all green
Update: Added Subscription-related tests to CompanionServerTests
2 more down, 2 to go.
Tests: ran all tests multiple times - all green
Update: Adding EntityInfo related tests to CompanionServerTests.cs
2 down, 4 to go.
Tests: ran all unit tests multiple times - all green
Update: Adding Camera-related tests to CompanionServerTests.cs
This adds 3 more (total 13, 6 to go). These tests don't setup an environment to validate the full flow, but they do prove that request handling is correct.
Tests: ran all tests multipel times - they pass.
Update: Adding Clat-related tests to CompanionServerTests
This adds 4 mote tests. Added test-related funcitonality to ClanManager to init/deinit.
Tests: ran new unit tests individually, together with rest, multiple times - all pass.
Update: Adding Team related tests to CompanionServerTests
This adds 4 new tests. Expanded RelationshipManager access for testing, also allowing skipping of sending updates on team changes (as it makes tracking responses harder). Lastly, removed an extra update send for player joining a team as it was already sent in MarkDirty.
Tests: ran new unit tests repeatedly, they pass
Bugfix: RelationshipManager.PlayerTeam implements IPooled
My new batch of tests revealed that PlayerTeam wasn't properly cleaned up when returned to the pool, causing test failures on repeated runs(teams still had members in them after disbanding).
Tests: ran new tests (submitted in next CL), they pass
Update: consolidating CompanionServerTests logic
Now that patterns are relatively clear we can simplify logic. This'll make adding the remaining 19 tests faster/easier.
Tests: ran new tests
New: Starting set of CompanionServerTests
A set of functional tests that validate operation of CompanionServer (Rust+). This only covers 3 request types out of 19, but proves that this should work in principle. Next up is adding the remaining tests and making it safe in regards to server-client modes.
Tests: Ran new unit tests - they pass.
New: Adding Server unit tests foundation
Sadly, they're not fully functional now - the client and server connect to each other, but the full client handshake doesn't happen. Will chase this up after I setup companion server tests (what I originally intended to test).
Tests: none, as I know it's borked
Update: Fixing all deprecated uses of Pool since merge from main
Tests: built all targets
Update: merge from main
Tests: built all targets
Update: Pool uses warnings instead of errors for deprecated API
Motivation: This will prevent causing errors for our modders/existing plugins and send a message that it needs to be updated. I'll remove these deprecated APIs next patch cycle.
- Also removed a couple TODO since they're either not viable for now or complete.
Tests: none