130,443 Commits over 4,201 Days - 1.29cph!
    
    
    
        
            
            
            
                
                merge from world_update_2
                
                
                
                
             
         
        
            
            
            
                
                Merge: from main
Tests: editor compiled
                
                
                
                
             
         
        
            
            
            
                
                Update: Assertions to catch leaking ItemContainer on init
- Removed lazy cleanup on init - due to Load-Init flow it's dead code
- Removed a redundant ItemContainer.Clear call
Tests: Booted Craggy - no asserts. Booted a save game from a proc map - no asserts.
                
                
                
                
             
         
        
            
            
            
                
                Clean: removing redundant ItemContainer.Kill calls
- Removed a comment since it became obsolete
Returning to Pool will "Kill" them.
Tests: None, trivial changes
                
                
                
                
             
         
        
        
            
            
            
                
                Restrict storage barrel being able to be placed deep inside the world layer
                
                
                
                
                    
    
        
            thumb_up
        
        13
    
    
        
            thumb_down
        
        11
    
 
                 
             
         
        
            
            
            
                
                Merge from elevator_parenting_collision_improvements
                
                
                
                
             
         
        
        
            
            
            
                
                Fix Scene2Scene process running HLOD generation 3 times when generating prefabs and scenes
Only run the first bake, subsequent HLODBounds generation calls will use cached mesh and materials (still runs everything else)
Needs to be implemented when calling the S2P generation methods (see HLODBounds.ResetMultiBake in SceneToPrefab
                
                
                
                
             
         
        
            
            
            
                
                merge from fix_ramp_wall_placement -> main
                
                
                
                
             
         
        
            
            
            
                
                Fix wall placed beside ramp not able to be replaced after it's destroyed
- applies to all walls: full size, half size, doorway, frame, window & low wall
- https://files.facepunch.com/jakerich/iojYkzF7bnBKc9Sp/b0nGqYrAiPHtL3Zz.jpg
                
                
             
         
        
            
            
            
                
                Rework UnwrapBakers final asset output process to update and resave assets instead of deleting and recreating assets
Fixes Scene2Scene workflow missing HLOD meshes because subsequent runs would delete the assets, losing their connection
                
                
                
                
             
         
        
            
            
            
                
                merge from fix_foundation_terrain_placement -> main
                
                
                
                
             
         
        
            
            
            
                
                initial viewmodel base rig file, anim clips, animator and viewmodel prefab setup
                
                
                
                
             
         
        
            
            
            
                
                Fix foundations not being placeable when the middle is clipping into terrain or rocks
- as long as one corner or edge of a foundation is still above the terrain, it will place
- still block placement if the foundation is completely under the terrain
- add new SocketMod_Grouping to control multiple socket checks (which is how it checks multiple points on foundation)
- applied to both square foundation and triangle foundation
                
                
                
                
             
         
        
        
        
            
            
            
                
                Converted hill cliffs generation to PlaceCliffsUniform
                
                
                
                
             
         
        
            
            
            
                
                Lowered LOD distances on all cliffs
                
                
                
                
             
         
        
        
            
            
            
                
                ▋▉▄ ▇▋▄▇▉▅▍▍▆▌█ █▊ ▍▅▅▊▄▊▍▄█
                
                
                
                
             
         
        
            
            
            
                
                add smoothness and specular reflectivity multipliers to splat base layers
                
                
                
                
             
         
        
            
            
            
                
                re-exported viewmodel mesh fbx to face positive z
                
                
                
                
             
         
        
        
            
            
            
                
                Case sensitive include (Linux compile fix)
                
                
                
                
             
         
        
            
            
            
                
                Groundwork for PE changes
Particle browser with previews for Particle Editor
https://files.facepunch.com/rubat/2024/September16-554-RoughAsiansmallclawedotter.png
                
                
             
         
        
            
            
            
                
                Huge reword and restructure to radioactive items~
Any item can now be radioactive
Added new flag on containers to check if any radioactive material is inside before they end up having to count up all their rads. Only used on the ItemModContainerRads for the moment
BaseRadioactiveMaterial now declared 
Extra comments
Huge code cleanup with clearer method names
                
                
                
                
             
         
        
            
            
            
                
                Clean: removing overriden-but-not-really method from LootableCorpse
Tests: none, trivial change
                
                
                
                
             
         
        
            
            
            
                
                Clean: simplifying ItemContainer.MarkDirty
Tests: none, trivial changes
                
                
                
                
             
         
        
            
            
            
                
                Update: ModularVehicleInventory pools ItemContainer
- Had to cause it to discard MVI on server destroy to properly clean up pool containers. Can add MVI pooling later.
Tests: on craggy approached one of spawned vehicles, inserted pistons in the engine then blew up with c4. Pistons dropped, next spawned vehicle didn't have them. Telemetry had expected values.
                
                
                
                
             
         
        
            
            
            
                
                only apply surface breaking drag to non-kinematic players
(fixes warning when DPV would submerge)
                
                
                
                
             
         
        
            
            
            
                
                Quick change to rear ratchet
                
                
                
                
             
         
        
            
            
            
                
                Defined limits.
Tweak strength and duration.
                
                
                
                
             
         
        
            
            
            
                
                Update: ContainerIOEntity pools ItemContainer
- reimplemented inventory accessor to be backed by an explicit private var
Tests: spawned small rain collector, destroyed it - saw expected changes in telemetry
                
                
                
                
             
         
        
            
            
            
                
                Poll rad amount inside container when opening
Centralised MaterialToRadsRatio inside Radiation.cs
                
                
                
                
             
         
        
            
            
            
                
                Blockout of catapult (not functional yet)
                
                
                
                
             
         
        
            
            
            
                
                sanity checking tools for non-convex mesh colliders
                
                
                
                
             
         
        
            
            
            
                
                Update: ItemBasedFlowRestrictor pools ItemContainer
Tests: in editor on Craggy made fusebox mortal and shot it - saw ItemContainer returned to pool
                
                
                
                
             
         
        
        
            
            
            
                
                Add more perf markers to nav agent
                
                
                
                
             
         
        
            
            
            
                
                Buffed radioactive water.
Hazmat still more than enough protection
                
                
                
                
             
         
        
            
            
            
                
                Update: DroppedItemContainer pools ItemContainer
Tests: spawned a wooden box, added rock and torch, destoyed it with AK. Looted the dropped container, it disappeared. Saw the uptick and downtick in telemetry when expected.
                
                
                
                
             
         
        
            
            
            
                
                Reworked ItemModContainerRads to only cache rad updates on item added/removed
Should improve reliability whilst also preventing checks on OnDirty providing a decent performance increase
                
                
                
                
             
         
        
            
            
            
                
                Bugfix: Avoid dangling ItemContainer reference on Clear.
- ItemContainer.Clear now removes items immediately, rather than deferring them to ItemManager's removal queue
- Callbacks are also invoked earlier, before the ItemManager's removal queue pumping
- Instead of sending out per-item ItemContainer-MarkDirty events, we only do 1 for all
- ItemContainer.Kill also clears onPreItemRemove and parent
This prevents a pooling bug where we recycle ItemContainers in same frame before ItemManager removal queue being pumped. It would lead to "invisible" items occupying the inventory.
Tests: Spawned a wooden box, filled it up with stuffs, destroyed it - dropped container spawned with inventory(instead of dropping on the ground). Looting it caused it to despawn(instead of stay in the world).
                
                
                
                
             
         
        
            
            
            
                
                TerrainFilter supports a radius
TerrainTopologyMap.GetTopology checks an actual circle, not a square
                
                
                
                
             
         
        
            
            
            
                
                Ensure ItemModConsumeContents also calls onItemAddedRemove
                
                
                
                
             
         
        
            
            
            
                
                Drinking from a vessel now calls onItemAddedRemoved
                
                
                
                
             
         
        
            
            
            
                
                Bugfix: don't invalidate ItemModContainer's availableSlots
- Also restricted access to availableItems to prevent future accidents and make it easier to reason about list's lifetime.
This is my bug - Pooling resets available slots on ItemContainer, so if they're shared by ref - original source gets nuked.
Tests: got ak47 with ext mag, dropped it, it despawned, spawned new one, tried to put rock into gear slots - it got rejected
                
                
                
                
             
         
        
            
            
            
                
                Fixed above / below ground rail transitions not checking mountain topology when finding their spawn location
                
                
                
                
             
         
        
            
            
            
                
                Split into different 1st and 3rd prefabs because reasons.
Movement improvements/fixes