138,246 Commits over 4,474 Days - 1.29cph!
Bugfix: batch of Transform replacements with TransformHandle in save code when using Jobs 4
Tests: TestMTSave - 32 -> 29 fails
Adding a graffiti in oilrig to explain the PMM logic
Corridor collapse blocker - fixed offset concrete collider, zeroed out gibs. Moved collision component to top level of entity to prevent ever-present stage 1 col. Set up LOD chain and disabled shadows for later LODs. Updated mani
Bugfix: batch of replacement for Time usage with ThreadSafeTime
Only 1 skipped out for now, BuildingPriviledge - that one does lazy-eval, which is problematic
Tests: TestMTSave - 42 -> 32
Bugfix: BasePlayer - avoid Time.time when evaluating mortarCooldown
There's one more issue to resolve, but it doesn't affect unit tests, will resolve later
Tests: TestMTSave - 59 -> 42 fails
Bugfix: vehicle related Time api fixes
- TimeSince and TimeUntil now have a member method allowing to calculate from passed time (to avoid Time.time invoke)
- TrainCar uses GetNetworkTime(ThreadSafeTime) overload
Tests: ran TestMTSave, 74 -> 59 fails
Tests: TestMTSave
merge from generic mount subsystem branch
Bugfix: don't use cached fuel fraction, just calculate it when saving
Avoids TimeUntil sample, which isn't safe in MT
Tests: TestMTSave(AttachHelicopter) pass
▆▆▅▌▍▊▇▋▌█▄ ▋▇▄▆▇█▄▋ ▉▋▆▇▄ ▍▋▅█▋▅▅ ▇▍▋▌ ▅▅▌█ ▉▆█▊▉▋▌
Update(tests): another small batch of patches and skips that I missed
Tests: TestMTSave 81 -> 75 failures
Bugfix: BaseNPC - fallback to original GetNtworkRotation implementation for server side entity
It knows how to fetch local rotation in MT-safe way
Tests: TestMTSave - 94 -> 81 failures
Optimised stage 1 gibs for blast door blocker. Renamed other gib parts to match conventions.
Update(tests, editor): last batch of patches and bypasses to spawn entities
- Renamed Prefabs editor script into PrefabTools, as it was conflicting with PRefabs.Misc.GhostShip
I can finally get to fixing save issues for MT
Tests: relevant TestMTSave pass
Add satellite_crate.entity, unlootable until fire goes out. Uses the new crate model.
Spawn them in at impact instead of previous crates.
amend remaining ore bounds
Update(tests): batch of various patches and prefab spawn skips
Got about 10 patches to apply before starting to fix saving for MT
Tests: relevant TestMTSave pass
Fixed skin viewer not resetting models rotation on init
merge from skinviewer_rotation_fix
Rotated one of the park benches in the playground so you mount it the correct way . Ran S2P
Blast door monument blocker - updated bounds and navmesh collision, added LOD chain and set LOD component, fixed gib pivots and assigned phys material, set health
Update(tests): skip marker spawning in tests for DeliveryDrone
Tests: TestMTSave(DeliveryDrone) pass
Update(tests): patch GraveyardFence
Tests: TestMTSave(GraveyardFence) pass
Update(tests): patch StringFirecracker
Tests: TestMTSave(StringFirecracker) pass
Update(tests): patch CookingWorkbench
Tests: TestMTSave(CookingWorkbench) fails on Save now (realtimeSinceStartup)
Update(tests): patch WaterInflatable
Tests: TestMTSave(WaterInflatable) pass
Update(tests): TestServer now creates TreeManager
Tests: TestMTSave(TreeEntity) pass
Merge the 3 separate Vis.Entities calls in ClearArea (players, construction, vegetation) into a single Vis.Entities with all the required layers, then pass the results to the 3 kill functions to parse.
Update(tests): patch ThrownBoomerang
Tests: TestMTSave(ThrownBoomerang) pass
Update(tests): patch SingleUseMissionStorageContainer
- also have TestServer explicitly create InvokeHandlerFixedTime to avoid DontDestroy call
Tests: TestMTSave(SingleUseMSC) pass
Add KillVegetationInRadius() during impact, kills trees, harvestable stuff
Use separate args for terrain depthprepass and a split culling step allowing closer distance culling for prepass
Only render prepass when holes are visible
Update(tests): patch SantaSleigh
Tests: TestMTSave(SantaSleigh) pass
Potential fix for occasional SqliteException: Failed to prepare query: database is locked (5) in Unity editor, requiring editor restart to fix it.
Update(tests): patch MobilePhone
Tests: TestMTSave(MobilePhone) pass
Update(tests): patch DisplayingBoxStorage
Tests: TestMTSave(DisplayingBoxStorage) pass
Update(tests): patch ConstructableEntity
Tests: TestMTSave(ContainerCorpse) pass
Update(tests): patch BallistaGun
Tests: TestMTSave(BallistaGun) pass
Update(tests): patch WildlifeHazard
Tests: TestMTSave(WildlifeHazard) pass
Bugfix(editor): rename TreeManager.Reset into ResetTrees
Unity was derping trying to call instance Reset when it was marked as static
Tests: TestMTSave(TreeManager) pass
Update(tests): ensure patched BaseCombatEnt have non-0 starting health
Allows for Stocking to survive during initial damage tick on spawn
Tests: TestMTSave(Stocking) pass
Update(tests): redirect relationship db location to temp path in tests
Tests: TestMTSave(RelationshipManager) pass
Merge from playermaintainedmonuments
Update(tests): skip generation and map marker of ProceduralDynamicDungeon in tests
Tests: TestMTSave(ProceduralDynamicDungeon) pass
Update(tests): patch PatrolHelicopter
- also bypass map marker spawn in unit tests
Tests: TestMTSave(PatrolHelicopter) - fails on transform access in save
Update(tests): bypass mapMarkerPrefab spawning in unit tests
Tests: TestMTSave(MLRSRocket) pass
Update(tests): patch MiningQuarry
- also bypass deposit spawning in unit tests
Tests: TestMTSave(MiningQuarry) pass
Update(tests): patch InvisibleVendingMachine
Tests: TestMTSave(InvisibleVendingMachine) - fails on translation token
Added skin viewer to premium tab