3,309 Commits over 945 Days - 0.15cph!
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
Save the equipment & storage inventory separately in protobuf
Don't show "Open Storage" menu option if they have no saddle bags equipped / no storage slots
Create seperate loot panels for horse equipment + stats & horse storage to support >6 storage per saddle bag
Increase saddle bag from 6 -> 12 storage slots again
Split into two inventories: one for equipment, one for storage (rather than first 4 slots being only for equipment and using clientside loot panel to pretend they are different)
Create a new menu option for "animal storage", keep examine as the equipment loot panel
Fix #SERVER compile error
When resuming industrial line, check LOS of each segment incase a wall was placed that blocks part of the pending pipe (clientside, server already validates it)
Updated code from `threadsafe_protobuf`
Fix pending wire sometimes not being cleared when starting a new wire
Don't play wire connect effect when reconnecting wire
Wire tool saves current wire when unequipping it
Right click for <0.15s to disconnect wire
Hold right click to clear wire
Make disconnect & clear duration configurable in the wiretool entity (rather than hardcoded)
Apply same values to pipe tool & hose tool
Fixed wire not being reversed when connecting a wire to the same IO entity and disconnecting the input
Fix protobuf generator not having updated generated code from `threadsafe_protobuf`
#CLIENT and #SERVER compile fixes
merge from main -> wire_tool_reconnect
Refactor "altMove" and "backpackOpen" into a enum "ItemMoveModifiers", add in ctrl + shift modifiers as well (unused)
Prevent backpack being dropped because the locker can't accept a backpack with items, instead keep it in the player's inventory
Add skinned backpack mesh
Fix cell size of backpack inventory
Try commiting GameUI.Inventory again
Add GameUI.Inventory.Backpack to GameUI.Inventory
Add BackpackInventoryPanel
Set backpack panel to resizable
merge from main -> hackweek_backpacks_2
Set occupationOver of backpack to back
Cherrypick "prevent parenting"