2,344 Commits over 701 Days - 0.14cph!
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"
Reassign entityPrefab of backpack wearable
Change default volume from `1` to `0`
Rename `itemVolume` to `volume` as unity is confused after changing default value
merge from main -> backpacks
▍▉▉▌▉▊▉ ▇▋▇▉▇▇▅ ▋▋▅▋▍▄▊ ▌▊█▌▆█ █▌▋▉▋▄█▋ ▋▍▊▄ █▆▍ ▆▅▋ ▊▆▌ ▄▌▊▍▄▋▅▄▍▅ ▍▇▅▄▉▄ ▋▌▆▌█▄▌▉
Add BackpackContents container type to LocalPlayerItemContainer
Merge from main -> backpacks
▌▉▆▅▄▆ ▇▆█▇ ▋▉▅▇▇▆▉ ▋█▇ █▇▅▇▌▄▇ ██ ▊▉ (█▄ + ▅▉ ▋▋▍▆▅▉)
Move `OnConectedToServer()` to Awake() to fix NRE with GNB enabled on certain minigame servers
merge from main -> globl_networked_bases
Move team invite from server raycast to clientside to improve reliability of team invite
Add 4th slot to m39 so you can attach scope + muzzle + laser + extended mag
Implement rest of item volume
Fixes
Codegen
More fixes and cherrypicks