4,510 Commits over 1,249 Days - 0.15cph!
    
    
    
        
            
            
            
                
                merge from update_manifest_oct_25 -> main
                
                
                
                
             
         
        
            
            
            
                
                Prefab changes after generating manifest
                
                
                
                
             
         
        
        
        
            
            
            
                
                 Delete client_modding ophaned prefab to fix GenerateManifest() throwing exception
                
                
                
                
             
         
        
            
            
            
                
                merge from optimize_water_body_culling -> main
                
                
                
                
             
         
        
            
            
            
                
                Add a bunch of profiler samples to other things in OnPreCull() and code that uses CommandBufferManager to clarify profiling output
                
                
                
                
             
         
        
            
            
            
                
                Fix typo in CommandBuffer.EndSample() name
                
                
                
                
             
         
        
            
            
            
                
                Start with simple culling of frustum planes on main thread
- cuts command buffer from 0.40ms -> 0.10ms (0.20ms on 2.5km render range?), increases creation of CommandBuffer from 0.10ms -> 0.13ms
- add more profiler samples
                
                
                
                
             
         
        
            
            
            
                
                Add sample names to the FillCommandBuffer_Depth CommandBuffer so you can see how long the WaterCamera part of the command buffer takes and how long specifically for lakes and rivers to render
                
                
                
                
             
         
        
            
            
            
                
                merge from optimize_auth_list -> main
                
                
                
                
             
         
        
            
            
            
                
                merge from optimize_findbyid -> main
                
                
                
                
             
         
        
            
            
            
                
                merge from naval_update -> deep_sea
                
                
                
                
             
         
        
            
            
            
                
                merge from fix_boat_drift -> naval_update
                
                
                
                
             
         
        
            
            
            
                
                Shrink ValidBounds back to 8km * 8km (old size) and rely on ValidBounds checking the DeepSeaBounds separately (we already added it but were both increasing the size & checking if the entity was inside the deep sea)
                
                
                
                
             
         
        
            
            
            
                
                Try again because I didn't realize we check both worldBounds (hardcoded physx area) and TerrainMeta.Margin (TerrainSize * 3) inside ValidBounds, so need to account for both of those
                
                
                
                
             
         
        
            
            
            
                
                Modify distance portal spawns so it always spawns far enough inside that the world repel force won't affect it
                
                
                
                
             
         
        
            
            
            
                
                Expose world boundary repel force as convars instead of hardcoded
- world_boundary_force_start_distance
- world_boundary_force_offset
                
                
                
                
             
         
        
            
            
            
                
                Lock behind `boat_drift_deep_sea` convar instead of hardcoded blocking it
                
                
                
                
             
         
        
            
            
            
                
                Prevent boats from doing normal drifting to shore in the deep sea until we are sure that the shore vectors are correct
                
                
                
                
             
         
        
            
            
            
                
                 Fix NONE compile error in Shield.cs
                
                
                
                
             
         
        
            
            
            
                
                merge from dynamic_occlusion_pausing  -> main
                
                
                
                
             
         
        
        
            
            
            
                
                Set dynamic_occlusion_pausing to enabled instead of disabled
                
                
                
                
             
         
        
            
            
            
                
                merge from industrial_pipe_batching -> main
                
                
                
                
             
         
        
            
            
            
                
                Add `print_memory_batching_detailed` command to print out memory usage of individual batches
- can supply filter to filter based on material name
                
                
                
                
             
         
        
            
            
            
                
                merge from industrial_pipe_batching -> main
                
                
                
                
             
         
        
            
            
            
                
                Make `batch_industrial_pipes` a non-admin convar
                
                
                
                
             
         
        
            
            
            
                
                Add `print_memory_industrial` and `print_memory_batching` commands to show how much memory is being used by batching and industrial pipe meshes respectfully
- batching will include both inactive renderers and active renderers since mesh memory is still used while the renderer is turned off
                
                
                
                
             
         
        
            
            
            
                
                merge from optimize_sprinklers -> main
                
                
                
                
             
         
        
        
            
            
            
                
                Add `skinned_placeholder` convar to control if sprinklers will use static placeholders or not
- default enabled
- refresh_renderers will update placeholders if convar is changed
                
                
                
                
             
         
        
            
            
            
                
                Fix DeferredDecal component not being stripped from server entities
                
                
                
                
             
         
        
            
            
            
                
                Refactor copypaste into multiple methods to try and figure out why certain foundations and walls are missing from pastes
- unsure if it's a problem with copying or pasting so starting with pasting
- move RemoveOpthanedChildren() above when we start to spawn entities
- try to spawn entities in multiple passes to ensure parents are all spawned before children
- add more logging
                
                
                
                
             
         
        
            
            
            
                
                Switch certain dynamic occlusion entities to static occludees when we know they can't move
- convar `dynamic_occlusion_pausing` (0 = off, 1 = codelocks + industrial adapters on boxes, 2 = codelocks on doors)
- currently (and by default) every entity is considered dynamic if parented
- now certain entities can indicate if they are static (like boxes)
- converts codelocks to dynamic while the door is opening, converts back to static once finished
- will check all parents so a box parented to a tugboat will still be considered dynamic since it will find the tugboat as root parent
- reduces dynamic ocludee count by 80% (417->74) on a sample base (converts nearly all codelocks and industrial adapters)
- refresh entity dynamic status when running `refresh_renderers`
                
                
                
                
             
         
        
        
            
            
            
                
                Make dynamicOccludees list public so it works with the command
                
                
                
                
             
         
        
            
            
            
                
                Set industrial adapter to not be dynamic
- still gets set to dynamic at all times since it's always spawned parented to an entity
                
                
                
                
             
         
        
            
            
            
                
                Add `print_occlusion` command to print the amount of dynamic ocludees
                
                
                
                
             
         
        
            
            
            
                
                merge from fix_puzzle_reset_analytics_nre
                
                
                
                
             
         
        
            
            
            
                
                Fix NRE in puzzle reset analytics when SpawnGroup referenced is destroyed
                
                
                
                
             
         
        
            
            
            
                
                merge from fix_console_chat_message -> main
                
                
                
                
             
         
        
            
            
            
                
                Catch error if supplying a console color that isn't a valid enum
- try catch the entire console logging thread so an error won't break the console
                
                
                
                
             
         
        
            
            
            
                
                Add `console_print_color` command to confirm colored console messages work
                
                
                
                
             
         
        
            
            
            
                
                Fix colorOverride being overwritten by LogType
                
                
                
                
             
         
        
            
            
            
                
                Fix chat messages not being logged to console due to stacktrace being null when PrintColoured() is called
                
                
                
                
             
         
        
            
            
            
                
                merge from fix_non_harvestable_trees -> naval_update
                
                
                
                
             
         
        
            
            
            
                
                Fix server tree entities being spawned on both the client attached to the deep sea islands and on the server 
- modify PrefabpreProcess to always remove child entities from client entities because they should always be realm removed whether the component is attached or not?
                
                
                
                
             
         
        
            
            
            
                
                Add `batch_industrial_pipes` convar to toggle the behavior
- still need to call `refresh_renderers` to refresh them after changing behavior
                
                
                
                
             
         
        
            
            
            
                
                Add support to override the max verticies per mesh for individual RendererBatch instead of changing global convar
- increase from 1k -> 5k specifically for industrial pipes to capture more than the short stubby pipes
- rest of the batching system stays the same
- change original solution from adding RendererBatch at runtime to adding the RendererBatch to the PipeRenderer prefab and set it disabled since we can't set the override to 5000 before OnEnabled() is called
- this causes every single prefab to be reimported but is safer than cranking global convar