4,342 Commits over 1,249 Days - 0.14cph!
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
Add industiral pipes to the batching system to reduce draw calls significantly when rendering industiral pipes
Fix textures that are resized to the nearest NPOT by Unity on import being incorrectly flagged as "compression disabled" by the texture analyzer tool
Fix pool used for Vis.Entities() in AddNearbyTurrets() not returned to pool
merge from fix_console_flickering -> main
Fix all the flickering in the windows console and all the pre-existing bugs
- boils down to avoiding clearing text (by writing spaces) before writing the new characters, to prefering straight overwrite where possible
- changed both status text and input text to only be updated when needed
- that change created a bunch more bugs (not listed here for our sanity) and made below bugs stand out more
- fix multi-line log messages cutting off when reaching the bottom of the buffer
- fixed the cursor bouncing around as you are typing commands
Add /copypaste/ and /demos/ to shared ignore.conf file
Try to fix windows server console flickering
- only clear 1 line when there are pending lines to log or status text to update instead of clearing all 3 lines
- only redraw status text when we recieve status update
- switch from 20 fps -> 50 fps (via Task.Delay())
- remove input.Update() redrawing the input line every 0.5s
merge from copy_paste_boats -> naval_update
Add `copyboat` command
- functions identical to 'copybuilding' but has a bit of special handling for boats
- add "GetRootParentEntity()" to BaseEntity to get the highest level parent
- fix "snap to terrain" paste setting causing bases (and boats) to snap to the bottom of the ocean instead of top of the water
merge from ghost_ship_parenting -> deep_sea
Add "ShouldChildrenInheritNetworkGroup()" to allow a parent to prevent any of it's children from inheriting network group
- set to false so ghost ships don't network children to the whole deep sea
Add component to floating city prefab and deep sea island prefab
Switch from unparenting every entity spawned in the deep sea to using a EntityParentSettings component to ocnfigure detaching children after spawn & skipping running DisableInternalCollisions()
- using separate component so we avoid reserializing every entity prefab for now
Add floating city to "Scenes/Monuments/" menu in editor
merge from disable_island_parenting -> deep_sea
Unparent all the child entiites on the deep sea islands so they only network when up close
- simplier and easier than dealing with inheriting network groups
Change OutlineManager to only use "PhysicsDebris" as the Vis.Entities() layer instead of every single layer
- fixes 0.5ms lag spike every 0.5s
Replace normal sprinkler visuals with "new" sprinkler_model in electric.sprinkler.deployed prefab