248,561 Commits over 3,928 Days - 2.64cph!
Merge from world_update_2
- Removed the last vestige of code that allows servers to arbitrarily set the loading messages
- Moved the queue language into the client with proper localization
- Cleaned up order of connection/queue processing, instead of putting every player through the queue process, we only queue players when the server is actually full
- Packet type Message.Type.Message can now be used to set a custom tip in the loading screen (will disable existing rotating tips), only accepts a single string instead of two previously.
Fix NRE when attempting to repair an item and removing the item from the repair bench at the same time
Merge from fix_monument_scenes_map_gen -> main
Fix monument scenes not being disabled when the client is doing local map generation
- this shouldn't occur often as servers now serve procgen maps as downloadable files
Fix issues with Character Select Buttons
Update conflicting prefab id on br_sphere prefab
Manifest
merge from fix_barricade_snapping -> world_update_2
Fix socket mods not working after Construction.Placement was refactored from class to struct
- showed up as high walls and barricades not snapping
Update SpriteTools
Update all Tile Dictionaries to use Vectors as the key instead of parsing to/from strings now that we actually can.
Updated SpriteTools
Add Dig Tiles to Tileset, add Digging functionality to WorldManager.
Created PreviewItem so items have Generated Thumbnails
Created Shovel Holdable which digs up earth, regenerating after a random time.
Dig Tiles now properly save to the world. Optimized world saves in the process
Fixed mesh import settings on a bunch of divesite meshes
Fixed seaweed decal not rendering (incorrect decal layer)
Human/citizen: more "prefabization" & poor man's RBF backport to Citizen
Added TilesetComponent.GetLayerFromName and TilesetComponent.GetLayerFromIndex
Add new panels that can be parented by community UI
- all panels are scaled by uiscale
Names
- Inventory
- Crafting
- Contacts
- Clans
- TechTree
- Map
Added proper documentation to TilesetComponent, made a few things internal and changed some terminology. JsonUpgraders to ensure everyones stuff still works
Updated example files
TreeView nodes do not call OnItemActivate when double clicking the expand/collapse button
Fixes Facepunch/sbox-issues#6487
Allowed foliage to spawn on cliff topology to fix blank gaps in between cliffs
Custom height map colliders for all cliffs (this should fix floating foliage issue)
Underwater light extinction fix test
merge from world_update_2
radtown music missing files
junkpile_water and oceanwreckbuoys seaweed dressing
Add ReadAsPropertyName/WriteAsPropertyName to all Vector2/3/4/Int JsonConverters. This means Vectors will be serialized properly when used as Keys in a Dictionary.
Give titles to windows build scripts, so I know what's running
Merged ghostanim.mdl and blackout.mdl
Instead of doing a hack for Episode 1, just merge all these models from all the half-life 2 games, and including portal 1
Episodic Poison Zombie model with fixed animation events
Advisor episodic model hack
The models are too different to be merged, so we swap the ep2 one in, on spawn
Try / catch around new node types in FindAllReflectionNodeTypes
Update existing refs in GameResources when updating package
Normal GameResource processor uses versioned idents too
Consistently sort reference lists alphabetically so diffs aren't so mental to read
Only update references inside project assets folder
Avoid walking into a LoadResource exception, we don't really care that much
Differentiate between persistent and preview contexts when fetching cloud assets, only update references for persistent installs
Show remote/latest version info, incl version id, in PackagePopup
▇▊▅▅▄ ▍▋█▉ ▍▋▋▋▋█▆▉▋▄▋_▊▆▊▅▋_▋▊▋ (▌▋▆▊▊ ▅▄█▄█ ▌▉█▊▅▌▊▆▋▌▅)
Optim: Send trees in batches over multiple frames to avoid spike on player connection
This is experimental, but it seems stable initially. On 4.5k procgen world from a save it took 90ms(very rough numbers, including client-side spawning overhead) in total to send all trees, but each frame 1 player took on average 0.2ms to gather & send data. Also need to fix a bunch of bugs
Tests: Ran craggy in local editor session - no exceptions.
GameObject.Deserialize removes existing components not included in serialization when in editor
Disable components when breaking apart a disabled prop. Don't recreate prop components when changing tint etc, only model change needs to
Fix action graph node list not showing new members after hotload
Allow creating instances of simple user types in action graph
```csharp
public record ExampleRecord( int Foo, string Bar );
```
https://files.facepunch.com/ziks/2024-09-25/sbox-dev_PyZRMaMzAu.png
sbox.game browser -> cloud browser
Fix chips height based on whether there are / aren't any
Cloud list view
https://files.facepunch.com/alexguthrie/1b2511b1/sbox-dev_PP05UtzRQT.png
TextRenderer exposes BlendMode
Fixed ScreenPanel not keeping screen dpi in bind when scaling down
It's fine to call NetworkSpawn multiple times, just ignore it
Wrap GameObjectSystem's init in a Scene.Push
waterflow changes
- corrected ordering of writing water flow from shorevectors and river tangents
- moved generation of WaterFlowMap into PostProcessing and put it all in one place
Don't allow wall slide on same wall
Cloud chips
Fixes
Accumulate tags
https://files.facepunch.com/alexguthrie/1b2511b1/sbox-dev_a9UaWWMIeH.mp4
Remove cloud from asset locations
radioactive_water -> world_update_2
Interpolate pan, move center on hero logic to camera
Water purifier no longer purifies radioactive water
Adjusted hill cliffs anchors to fix a gap
Pushed all hill cliffs slightly deeper to prevent similar issues
Ensure throwing out water forces a rad count on the vessel
▄▍▍ ▊▌▍▉▇▉ ▄▍▆▋█ ▆▆▌▌ ▊▉▉▆▍ ▉▅█▍▋█ ▌▇█▅▋ █▋▌▉▅█ ▅▆▍▄▅▅▆ (▉▉▆▆▉ █▆▌▋ ▍▇▉ ▇▄▋▍▋▋█▄▍▍█ █ ▇▋▆ ▇▇▇▍▇▄ ▅▇▆▅ ▉▋▄▍▍? ▋▌█▄▋ ██ ▇▆▆▊ ▅▇ ▊▅▌▍)