3,110 Commits over 915 Days - 0.14cph!
Add `player_state_cache_evictions` convar to print the number of times the cache has been evicted due to not enough capacity
Add `player_state_cache_count` convar to print the current size of the player state cache
Add `player_state_cache_size` convar to change & print the capacity of the player state cache
Increase cache size from 1k -> 10k to reduce the cache misses & reserialization when at high pop with teammates offline
Prevent wire tool from NREing when trying to right click remove points if it gets into an invalid state
▇▉▉▆▉▇▌ ▅▊▉▆▌▇▊▍ █▇▆▋ ▊▄▍▆▄ ▍▌▉▅▆▉▋▇ ▆▌ ▍▄▇▆▊ ▊█▌▆▇▍'▉ ▇▄█▊▊▆▇▇▍█▇ █▆ ▋▌▋▍▄▌▌▉ ▉▋▌▄ ▄▊▄ ▆▆▊▍▅██ █▊ ▉▍█▄▍▌ ▉▋▍ ▄▌▌▊▍▅█▄▍ ▌▇ ▊▊▉ ▊▆▄▋▋█ ▆▋▇█▅█▅ ▇▌▊ ▊▅▅
Changed HBHF from radial menu (hold E) to a dialog (like electric branch)
Added checkbox to toggle "Authorized Players" and "Unauthorized Players"
Changed default of HBHF from auth + unauth -> unauthed players only
Allow configuring HBHF before they are plugged in, as long as you have building privledge
Add deployable filter category to industrial (the "Items" F1 tab) as it was missing
Leather gloves 5min -> 20min
Roadsign gloves 5min -> 40min
Tact gloves 5min -> 40min
Spas12 shotgun 5min -> 60min
Basic tea 5min -> 20min
Advanced tea 5min -> 40min
Pure tea 5min -> 60min
Increase despawn time of diesel from 5min -> 60min (only changing despawn rarity)
Increase stacksize of hbhf sensor from 1 -> 5
Turret will only accept the ammo of the current equipped gun
Turned off darkening of voxels as they are damaged as I don't think it improves the look
Remove corner conditional models from stone walls as they get in the way of voxels
Added splash damage to C4 against voxels
Fixed voxels NREing or reseting when neighbor building block changes
Various fixes and changes
Fix walls not resetting when sent to pool
Fix voxels being reset when a nearby building block is destroyed
Fix splash damage being inconsistant with voxels
Set health of building block to average health of all voxels
Add 3x3 voxels to stone floor (since it looks nicer artwork wise to line up with the 3x3 tiles)
Fix destroyed entities NREing because voxel entities can technically be hit multiple times
Split stone wall into 16 segments (4x4 grid)
Explosive damage applied to each part of the stone wall individiually
When a piece reaches 0 hp, it is destroyed
Stone wall deletes when every "voxel" is destroyed
When a voxel is destroyed it spawns gibs for that specific piec
Fix analytics NRE that occured on startup
Fix clientside NRE when trying to connect a pending wire with one side missing
Fix potential NREs in `WireTool.RequestClear()`
Fix repair bench only playing repair sound within 1s of eachother instead of skipping sounds within 1s of eachother
Fix wiretool trying to resume a wire after clearing it and reholstering wire tool
Fix wiretool not resuming a direct connection with 0 extra points between it
Force disable GNB because of issues with mirrors
Start with caching the list of nearby turrets so we don't need to do a spherecast every time we want to update interference
Disable frustum culling when a mirror is visible
Render global networking from each mirror's camera
Add toggle back to culling shader for frustum culling
Disabled global rendering on armored window
Add `job_system_threads` to control the number of workers in the job system
`0` or `-1` will set it back to default amount
Moved #CLIENT outside of #SERVER block to fix unload ammo menu option not showing
Merge from main -> ammo_count_in_chests
▌▋▊ ▉█▌▉▇▌ ▉▅ ▌▄▊▍▊▅█▆ ▊▆█▄▆ ▅▋ ▇ ▋▅▋▆▆ ▍█ ▇▌██▄▋ ▊ ▄▊▍▆▊▉▄▍ ▊▄▍ ▅ ▆ ▊▇▋▇▇▋ █▋▅▄▆▍▍▉▆▅▅▋█
█▍▆▌▄ ▄▉ ▅ ▇▋▉▋▇▄ ▊▌ ▍▅▅▄▆▇ ▌ ▌▉▊▆▋▍▋▌ █▆█▊▆█▉▊ ▆▌▉▅▄▊▇ ▍▌▆▋ ▆▄▄ ▊▅▅▄▇▇ (▇▋ ▋▆▊▌▄ █▌▇█▇██▌▅ ▋▆▌▆▆▋▇▉▅█▌ █▊▆▉▆▅ ▅▆ █▅ & ▇▉▅▉▍▄ ▉▌█▌▉▅)
Fixed SERVER compile errors
Remove tracking every item on the server
Instead, get the ammo count from the held entity when calling Item.Save()
Merge from main -> ammo_count_in_chests
Add radiation to oil rig to prevent players camping and preventing crate from respawning
Add `oilrig_radiation_amount_scale` and `oilrig_radiation_time_scale` to scale the delay and amount of rads
Add `oil_rig_radiation` entity that controls the radiation and listens for crate hacking & puzzle reset
S2P both oil rigs
Codegen
PLACEHOLDER VALUES:
- starts 45min after crate starts being hacked
- ramps up to 100 rads over 5 minutes
thumb_up
127
thumb_down
6
Only allow bait & caught fish to go into the survival fish trap's inventory
Allow jackhammer to be repaired inside the workbench for free
Add `ItemModRepairable.canUseRepairBench` to control which `ItemModRepairable` can also be repaired in the repair bench
Play the air sound effect when it is repaired
Keep backpack panel open when selecting items inside the backpack
merge from main -> backpacks
Allow unloading guns inside chests
Update ItemIcon.selectedItem before calling OnInventoryUpdated() so that menu options update when your selected item changes
Add `ammoCount` to Item and fallback to the item's ammo count when inside a chest / locker / player inventory (other than hotbar)
Track all items on the server in `ItemManager.serverItems` dictionary so the item can be updated every time the `BaseProjectile` ammo is modified (normally it only can find item when inside player inventory)
Save ammoCount in protobuf as an Int where 0 = null, 1 = 0, etc (since protobuf doesn't support nullable types)
Holding shift while right clicking items into the repair bench will apply the last skin automatically
Allow skinning <0.75s but don't play the effect if it occured under that delay
Only save number of storage slots for client, let server recalculate them on startup
Fix using phrase `Examine` instead of `Loot`
Add `CheckParent` as an optional parameter to the `MaxDistance` attribue instead of manual checks
Apply `CheckParent` to Keylock as well
Apply same fix to picking up the codelock
Fix not being able to enter code on one side of the door, when you are too far away from the codelock but within interaction range of the door
Merge from main -> horse_loot_panel_fix_2
Add IO slots to spooky speaker to turn it on and off, no power required to run