244,554 Commits over 3,898 Days - 2.61cph!
Serialize state tags instead of hardcoding them, partial port of the code FSM to the new UI
Update: StringView - prefer ctor overloads instead of default args
Saves a couple branches in some scenarios.
- Also expanded tests to cover all ctors and arg ranges
Tests: Ran new unit tests and checked server browser
Added Main Menu Toasts
Added Toast that pops up after playing a game you haven't yet interacted with. Clicking will open a Review Page Modal.
https://files.facepunch.com/CarsonKompon/2024/August/19_12-04-UnlinedWeaverbird.png
Fixed floating wallpaper world model in first person view
Icons test
- ██▉ ▇▊▉▄▋▊ ▆▇ ▅█▅▆▉▅▍▌▌▆ ▇▄▌▄█▌▉▊ ▄▊▆ ▍▆▌▊▆▉ ▇▆ ▄▋▅▋▌▇ ▌▅▉▉ ▅▊▊ ▄▋ ▄█▋▆▅▊ █▅ ▉▉▅ ▆▆▇▊▇ ▊▊▊▋
- █▆▆ ▍▋▊ ▋▄ ▄▍▄▉▌▉▋▆▉ ▇▅▉▉▊▉▆▋▅▉▌ ▌▆█▍ ▍▆▇▌▅ ▋▉█▍█▅ ▊█ ▉▇▋ ▉█▌▇▉▅▅▋ ▋▄▆▊▅ ▍▅▌█▅▊▊▅
- ▍▄▋ ▋▊▉▅▉▌ ▌▅ ▌▌▆▇█▅ █▌▅▉▅▅ ▉▍▇ ▄▇▆▆▇ ▍▊▉▊▇▄▉▌▉ ▄▆▌▅▄▌▆▊
GetVoxel: return 0 for unallocated chunks
Clean: Updating the docs of StringView to compare against Memory
Turns out I missed System.memory during my initial research, which serves a very similar purpose. Sadly, it doesn't cover all our use cases, so we still need StringView - I've mentioned these shortcomings in the xml doc.
Tests: none, trivial change
More protection around BlockPlacer. Added a better Inventory.HasItem method that doesn't have us making a new inventory item instance every time
ranged sight texture update
Viewmodel and world model texture swapping wip
Set viewmodel default texture to blue (the default wallpaper skin)
Fixed problem with blue viper material
Update: Finalizing StringView
- StringView's constructor now follow's Span form (source, start, len) instead of (source, start, end). Fixed updated unit tests.
- Reimplemented CompareIgnoreCase via EqualityComparer<T> instead of IEqualityComparer<T> as per MS recommendation.
- Annotated every public method with xml docs
Test: ran unit tests - all green. Checked ServerBrowser - still good.
Call PrepareGeometryChange before moving TransitionItem
Reset view on Home key press
Updated industrial.ceiling.lamp.compact textures and material
Enable read/write on legacy wood pile importer
Update: Expanding HashEquality test for StringView
To confirm that the required interface is implemented correctly and gets invoked.
Tests: Ran the updated unit test
Adding wallpaper skins for retro, royal, polka dots, clouds, geometric
Show red icons for erroring state actions too (#9)
"Create model..." now shows up when right clicking an .obj file
Can now drag folders to/from the TreeView on the left side of the Assets Browser. Resolves Facepunch/sbox-issues#4742
Show red labels for invalid transition conditions / actions (#9)
https://files.facepunch.com/ziks/2024-08-19/sbox-dev_YyyXVN5F46.png
Fix warnings from RangedFloat API changes
Allow loading fsm scriptable objects into the runtime fsm component
RangedFloat cleanup
* Add Min / Max properties instead of x / y fields, fields are obsoleted
* Max always equals Min for Fixed range type, unlike the old y field
* ToString returns "<min>" for fixed values, or "<min> <max>" for ranges, instead of "<min>,<max>,<type>"
* Parse supports old format
* Can deconstruct: `var (min, max) = range;`
* Add tests parsing old format
Merge: from main
Tests: built all modes. Server Browser still works
Update: Reimplement tag support in server browser
Fixes the break I left when running the experiment with StringView
Tests: Clicked through server browser's various filter options
World Update 2 -> Legacy Woodpile
▇▉▊ ▉█▍▍▆▆▆█ ▄▍▅ ▇▋▌▆▅ █▊▋█▇█▅▊▋ ▅▆▋▄▄▉██ ▌▅ ▋▌▇▆▊▋▊▉▊ ▋▌▍▍█▄▉▇▊ ▄▆▅▇ ▇ ▅▄▍▉▇▍▇▊▍▌ ▊▉ ▆▄▇▄▋
Recompile a bunch of decals and fixed some using wrong shader
Improve fsm editor UX, create new states next to currently selected ones, link them, and select the new one
Clean up serialized data containing fields that don't exist anymore
Generate code and manifest
Added prevent build volumes to buoys and divesites
Divesite underwater check
Add fsm UI support for tag transitions, complete transitions, start states and link states
Wallpaper viewmodel deploy animation when deploying
Reset wallpaperID to 0 after removing wallpaper
Removed unused wallpaper code in Spraycan ChangeItemSkin RPC
Refactor to use Component.INetworkSnapshot for sending initial world data
Idea for custom writing / reading data to snapshot per component (if it overrides those methods)
Some docs
Explicit ISnapshotWriter interface
Read snapshot immediately - no need for this prop
Dispose ByteStream properly
Rename to INetworkSnapshot
Component.INetworkSnapshot - improve some docs