branchrust_reboot/main/world_update_2cancel
138 Commits over 31 Days - 0.19cph!
Fixed ocean water depth on map sometimes being misleading
Added configurable SpawnFilterMode to PlaceCliffs, PlaceDecorUniform, PlaceDecorValueNoise and PlaceDecorWhiteNoise
Improved terrain blending in areas where rivers flow into the ocean
Added GenerateOceanTopology to refresh ocean topology after all monuments have been placed (fixes missing water near harbors / ferry terminal)
PlaceDecorUniform, PlaceDecorValueNoise and PlaceDecorWhiteNoise can now all have their TerrainAnchorMode adjusted
Spawn populations can now specify monument types they want to avoid
Rowboats now avoid spawning in oasis
Adjusted MinDistanceSameType and MinDistanceDifferentType for canyons, lakes and oasis to take their fixed bounds into account
Added oasis and canyon monument types
Assigned correct monument types to canyons, lakes and oasis
Assigned correct monument bounds to canyons, lakes and oasis
Improved erosion splats
Erosion now avoids cliffs
Improved erosion distribution, simulation length and blending
Added ProceduralMapCliff test map
Rowboat.Population avoids "Decor" topology
Added RadialBlur to AlwaysIncludedShaders
Fixed Parallel.For ignoring its start index parameter, which luckily has so far always been 0 (introduced in 2017)
Hopefully made WaterBody water level determination work on the server (now using collider instead of renderer)
Renamed bridge to swamp in terrain paint modes (as that's what it's actually painting)
Replacing several Pool.GetList and FreeList with the new Pool.Get and FreeUnmanaged (post merge cleanup)
Removing Terrain_Distance from Shader.SetGlobalTexture as its unused on the shader side (all use cases covered by Terrain_ShoreVector)
CraggyIsland TopologyMap fixes
TerrainTexturing.ShoreVector doesn't need to take water volumes into account (this was from when lakes were using water volumes)
Post merge formatting fixes
Removed WaterSystem.GetHeight / GetNormal / MinLevel / MaxLevel as several places were misusing it (everything should go through WaterLevel)
Main Camera post merge prefab fix
WaterLevel post merge compile fix
Merge from main (this will likely need some post-merge fixes)
Fixed terrain shader parameters not updating when TerrainConfig is adjusted
Forgotten file (WaterBody)
Don't place lakes where their water level would end up below 0 (lake / ocean rendering issue that would need wider water shader changes)
Fixed various errors in edit mode
Fixed water being invisible in edit mode
Subtracting
103462 (causing water rendering regressions)
Set SlopeScale for cliff_hills_large_temperate and cliff_hills_mid_temperate to 3 (baseline new functionality test)
Removed center terrain anchor from cliff_hills_large_temperate and cliff_hills_mid_temperate as it blocks placement on steeper slopes
Exposed TargetCount, TargetLength, AnchorModeInitial and AnchorModeRepeat in PlaceCliffs
Reduced TargetCount for cliff_hills_large_temperate from 8 to 4 (reduces generation time by order of magnitude with little visual impact)
Adjusted AnchorModeRepeat for cliff_hills_large_temperate and cliff_hills_mid_temperate to MaximizeHeight to ensure they stick out of the terrain as much as possible
Added TerrainAnchor.SlopeScale (scales anchor extents and offset as they are increasingly rotated, including its edit-time gizmos for easier tweaking)
Prefab<T> caches PrefabAttribute on repeat calls
Discard ocean fragments entirely if there's no chance the camera is inside the ocean (fixes remaining depth corruption issues while preserving underwater mask coverage while underwater)
More shitty workarounds for underwater effects inside lakes
Fixed oasis_a, b and c having ocean topology painted at the center of their lake (I disabled the transfer of ocean topology on the Monument script instead of removing it, this is probably from some automated import and may reappear)
ProceduralMapEmpty up to date
Fixed TSAA / AO image effect issues when flying above canyons looking down (caused motion vector / depth / normal artifacts)
Fixed lake volume sides sometimes being visible under the terrain (only visible when admin flying)
Updating RustNative (removed old lake logic, fixes issues at shallow ocean areas)
Decor topology is now considered blocked for road and river generation
Place river source object right after river generation, so it can be avoided by road and rail generation
Fixed issues related to DecorSwim and WaterCheck
Added terrainHeight to WaterInfo since we already retrieve it, saves duplicate calls into TerrainHeightMap by callers
Added GetWaterAndTerrainSurface (returns both) and GetWaterOrTerrainSurface (returns the max of them) to WaterLevel
Buoyancy fixes inside canyons
Don't cull lake water if swamp topology exists
Added forgiveness radius when creating the water culling mask to work around slight inaccuracies in the painted topologies (may have to dial this back in the future, so let's try and make the topologies as accurate as possible)
Encoded water body type into shore vector w component, instead of just ocean mask
Use ocean, lake and river topology to cull water (depending on the water type)
TODO: Lakes need lakeside topology around their water volume (covering some of their beach, see Asana)
TODO: Oceanside topology needs improving (will do next)
River flow improvements (follows a sin wave on flat terrain)
River distance improvements (rivers keep a more reasonable distance from each other)
Small river width randomization fix
Fixed 35-40 calls of TerrainWaterMap vs. WaterLevel