5,998 Commits over 1,614 Days - 0.15cph!
Update the rest of the code to work with the new NativeArrays for mapdata
Add support to TerrainMap to return a NativeArray
Switch WorldSerialization to use NativeArray
- make sure it frees the MapData explicitly as normally the GC is collecting the managed arrays
Switch the MapData protobuf from managed -> NativeArray<byte>
Add support for NativeArray<byte> in protobuf codegen
- instead of byte[]
Fix the server not clearing unused World Serialization maps
- saves about 175MB on 4500 map
Reduce memory usage of the server's SpawnDistributions by 750MB (780MB -> 40MB) and make it 3x faster to sample (2.1 us -> 0.7 us)
- store in tiles of 16x16 values
- 85% of the tiles are all zeros (fun fact)
- tiles that are all the same value store as negative tile index so it can avoid looking up the tile (mainly all zeros)
- deduplicate the remaining tiles (saves a little more)
- palette packing on top for tiles that have mixed values (2 - 4 bits / value)
- reduces server startup time from 4s -> 2.5s
Implement maximum amount of TCs placed IN SOFTCORE ONLY
- maximum 3 for now
- follows how the "maximum sleeping bag" system works with the amount shown on the icon & toast when you reach the limit
██ ▌▅▋▊▉ ▄▌▇▅▅▆ ▋▊ ▇▌▌▆▆▌ ▄▆▊█▅▊█▄ ▆▇▌ ▇▊▌▆▉▊ ██▋ ▋▄▉▋▉▉▇▄▌▊▆▆ ▌█▇▅ ▅▊▊▄ ▅▍▊▄▆▌ ▉▌▇▋▆▇▌█ ▅▄▋▍ ▍▉▆ █▆▉▅ ▉█▆▉ ▅▇▍▌▇▊▌▇▉█▊▄█ ▊▄█▌█▇ ▆▆█▅ ▊▅▌▊▋ ▄▍▋ ▇▆▇▆▇▆▉█▌ ▆▋ ▅█▆▉▋▋▅▅▆ ▄▅▍▆ ▋▆▇ ▋▉ ▍▄▆▊ ▋▇▋▄█ ▊▅▇▍ █▍▉ ▆▊ █▉▄▌ ▉▍▊▊▆▆▅█▅
merge from qol_loadout_inventory_preview -> main
merge from fix_apartment_teammate_door -> main
merge from fix_apartment_transfer_items -> main
merge from main -> fix_apartment_teammate_door
merge from fix_custom_item_drag -> main
merge from fix_jungle_plant_water -> main
merge from fix_sentry_modded_tag -> main
merge from fix_motorcycle_dismount_order -> main
merge from fix_client_sail_wind -> main
█▍ ▊▇▍█▍ ▍▅█▆ ▆▊▌█▉▉▇▄█▋▌█▊▍▉▄▍▇▅▇▋▌▉ ▌▆ █▆▊▇
▉ ▍▌▊ ▇▊▇█▄▅▋ ▍▍▍▉▍▇▌▉▌ ▉▊▊▊▇▉█ █▊█▅▆▍▅▌ ▉▇▊▋ ▊▇▆ ▍█▉ ▄▅ ▇▌ ▉▇▌▉▄ ▋▍▇ ▅▇▋▅▍▋▉ ▄█▍▌▅▄ ▊▊ ▅▌█ ▆▊▅▅▆█▄▉▅▅▆▋▍▇▍▆▆▇▍█
Add logging to memsnap commands
- indicate if you are on a release builds and they won't work (keep the commands listed though instead of removing them)
- log a message after they run
- print to server console / logfile / rcon if the dump worked
merge from main -> qol_loadout_inventory_preview
Make sail wind behavior fully server sided
- used to evaluate on both client & server so it could mismatch
- client now just waits for server to send the flag
- convar "sailblockedupdateinterval" to control the 5s polling the sail does to see if it's blocked (same interval as before)
▌▌ ▅▊▆▇▌ ▅▋▊▌▍▅ ▊▋ ▉█▅▅▇ ▋█▍▇▆▅█▌▇█ ▉▄▄▄▊█ █▍▊▉█▋ ▅▌▄▊▇ ▋▌ ▌▆▍▇ ▊▍ █▍▋█▅▌▄ ▋▇▅▌▌▅▄ ▇▄▉ ▉▉▌▄▆ ▄▇▊ ▋▊▍▉▅▊▋█▄▅ ▉▋█ █▊▇▍▋▋▆ ▋▅▋▉▋▋█▋▋▍ ▅▌█▌▇ ▆▄ ▆▆ █▄█ ▅▍▋▇▄▄▍█▄ ▉▆▅▌▊ ▌█ ▋▇ ▅▍▊ ▅▍▊ ▆▊ ▄█▇▊█▆ ▅▆▄▌▋█▋▇▌ ▆▌▊▉ ▇▍▋▇▊█▍ ▇▄▋▄▍▄▄
▇▍ ▄▄▍▊▉▊█ ▉▊▉▅▅▊ ▊▅▆▄▅▇▊█▇▍ ▅▌▍▉▍█▆▌▍▉▇ ▄▌▅▌▅ ▌█▉█▍▇▋ ▉█▍▉ ▅▍▇ ▊▉▋▄▋▌▉▅█▅█▋ ▅▉▇ ▊▆▅▆▍█▆ ▌▌▍▌▅ █▅▄▌▅▌▉ ▍▋▆▋▇ ▄▉ ▋▍█▄▆ ▅▆▆ ▋▊█▍▍▍▇▊▌ ▅▌▋▅▍▇ ▆▆▍▊▊▉▇█▌ ▅█▊▆█▌▋▋▌▅ ▇██▅▌ ▊▉▅ █▊█▇█▋▊▅ ▋▇▉▊▊█▅
Fix modded servers crashing before fully starting not being tagged as modded
▌▆ ▇▍▉▌▉▉ ▆▆▄▄▄▇▋▉▇ ▌▊ █▉▄▋▊█ ▇▍▄ ▋▅▉▋▅▄ ▅▆ ▄▇▊▋▅▄ ▋▌▌▉▆ ▌█ ▉▇▆▅▆▄▋▉ ▊█▅▌ █▋▅▊ ▆▍▍▆█▉ ▍▆▍▆▉▇▍▋▍▄▅ ▉▅▋▇ ▉▌▄▇▋▇▌█▌ ▋▆ ▊▅▉▊ ▆▉▄▄█ ▍▆▄▉█▉ ▌▉▄▋▌▉▇▆▋▄▍ ▌▊▅ ▄▌▄█▆▊ ▋▅▆ ▌▉▉ ▅▇█▇▌ ▉▍▅█ ▇▇▄▌ ▋▇▌▌ ▉▇ ▊█▌█▄
Fix potential NRE in codelock inside Codelock.Load()
Fix custom items dragged from vending machine not using the custom icon
Set sleeping bag range convar to replicated
- fixes clients not showing "orange" guide correctly when the convar was changed (despite the server enforcing the sleeping bag distance)
Fixed jungle having a groundwater level of 0 causing plants placed on terrain to have no water
Fix SocketMod_TerrainCheck.cs after merge
Fix Antihack.cs after merge
merge from main -> fix_foundation_clipping_rocks
Fix medieval doors not counting as closed for base occlusion (they were prefab variants not straight skins)
merge from main -> base_occlusion
Fix all motorcycles & bicycles dismounting on top instead of the side
- the mount points were sorted to closest which always picked the top dismount
- switched to ordered so it will try the points on the side first
merge from fix_browser_invalid_operation -> main
Remove start of cached query storing all addresses in a hashset and comparing them to the list of banned servers
- the code became redundant at some point
Fix InvalidOperationException() when multiple browser refreshes happen at the same time and the list is cleared while another query is filling it
Expand the `spawnvendor` command to cover every single vendor in the game
- can spawn vending machines and vendors from all monuments
- can choose the respective stock from each type of vendor
Fix IO entities not being reassigned after the convar for "should IO entities be occluded" is changed
- fixes the failing test properly
- not planning on supporting IO entities for a while as it's complex to handle the occlusion of wires, but keeping the convar to make testing easier
merge from main -> base_occlusion
Disable room occlusion test that is failing (toggling IO entity convar and server updating automatically)