244,581 Commits over 3,898 Days - 2.61cph!
Inventory Saves/Loads with Selected Character. Replaced GiveItem with TryGiveItem. Added OverflowContainer
Add Inventory separate from Hotbar. Giving items to the Hotbar will overflow to the Inventory (and vice versa). Can view inventory in TAB Menu
Inventory HUD slots update properly. Other inventory fixes
IsValid check for Local Player on Compass so there aren't errors on first load
Add item icon editor, tree node, tree branch item (pending model)
Update: Rewriting ServerInfo to use StringView for Tags
This revealed a bunch of other dependencies that needed to be updated. Some of them got plugged up by string copies, some by uninmplemented StringView.Substring. Overall, seems doable, though revealed a number of shortcomings - for example, we'll need to implement our own <numeric>.TryParse(StringView) logic. On the flipside, it allows us to do String pooling a bit more aggressively in our steam library(if we decide to go that far).
Tests: Opened GameServer, observed list being populated and interactible.
Bugfix: fixing utility algs in StringView
Tests: server browser displayed all results (next CL)
Tree and dead tree
Merge branch 'main' of sbox-hc2
Updated industrial.ceiling.lamp.compact to have a better emission texture
Added body mesh back into prefab
Updated frontier hazmat rig, skeleton definition & prefabs (just backpack for now)
Bunch of bug fixes
Added remove all force methods to planter. Removes all with no fibre drops when radioactive water is used
Spawn world item over network
Better world placement for node-created items
Removed ruby animgraph, use code to spin world items around
Add Wheel component for new roller model
Updated industrial.ceiling.lamp.compact to use a new model and materials
Fillwater command now supports radioactive water
Radioactive water will kill all plants in a planter when splashed
Add Rollerball component for the rollers
https://files.facepunch.com/ziks/2024-08-13/sbox-dev_VQidCjB8ib.mp4
Update shaders with AO on lighting pass
Don't destroy the world item if we can't insert it into our inventory
Stub for shadow class, enumize lightflags
Move pixel.raytrace.ssr.hlsl to ScreenSpaceTrace and make it a class, move crap from it to be all shared
More adjustments for screenspace shadowing, fix valid hit test always returning true
Iteration on screenspace shadows, make screenspace tracing work half res again
Rebase fixes
Inventory Refactored to no longer use GameObjects/Components
Add item stacking
Minor fix post-rebase
Add WorldItem, resource node drops items on the ground, collide with world item to pick it up
Added icon to radioactive water
Radioactive water will merge together with water or salt water in containers, turning them into radioactive water
▉▌▇▍█▋▄ ▊▋▋▆▅▇▇▆█▉▅▄ ▌▉▉ (▍▌▊ ▉▉▄)
Don't tell the network system we've finished loading if we're loading an editor scene
Add: new StringView utility
It's essentially a ReadOnlySpan that keeps alive it's referred-to string, and is able to be stored as a member variable. Only contains a smidgen of algorithms that are needed to use it as part of ServerBrowserList. Goal is to find out how much code we need to update to be able to eliminate most allocations in the browser refresh flow.
Tests: none
Voxel models can have their own palette using a structured buffer
Resource node depletion visuals, regeneration
Phrases build without the DLL
Placeholder resource node
Don't call NetworkSpawnRecursive in editor 🤦♂️🤦♂️
Fixed source generator broken reference
Keep the map as low res as possible (256x256) since we only have a couple of radioactive water objects
Use arrays for the voxel normals in shader
Swapped radioactive water check from physics checks to a texture map instead
Can collect items from resource nodes