userDaniel Pcancel

2,864 Commits over 700 Days - 0.17cph!

10 Days Ago
Update: StringView - add StringOptions overloads to StartsWith, EndsWith - added unit tests to cover new methods Tests: ran unit tests
10 Days Ago
Update: StringView now supports StringComparisons when comparing to other StringViews - expanded unit tests to cover this Tests: ran unit tests
10 Days Ago
Bugfix: StringView - ensure defaulted string view can compare to empty string as equal - left a note about string.Equals(object) not recognizing StringView - reorganized comparisons in Ranges test to make them pass Tests: ran unit tests
10 Days Ago
Update(tests): add a bit more coverage to IndexOf and IndexOfAny null tests Tests: ran tests
10 Days Ago
Merge: from main
11 Days Ago
Merge: from tovector3_parse_format_fix - Bugfix: fixes another edge case of weirdly formatted vec3 using StringView.ToVec3 Tests: unit tests
11 Days Ago
Merge: from main
11 Days Ago
Bugfix: StringView.ToVec3 - ensure we grab first-of-a-set separator Tests: ran StringView and Command unit tests
11 Days Ago
Update: add StringView.IndexOfAny - expanded unit test to cover Will need it to bugfix ToVec3 again Tests: ran unit test
11 Days Ago
Update(editor): add a couple more ToVec3 Tests: catches failing cases
11 Days Ago
Update: StringView now allows construction from null strings - expanded unit tests This brings it closer to ReadOnlySpan semantics. Tests: some unit tests failing, will investigate later
11 Days Ago
Merge: from tovector3_parse_format_fix - Bugfix: fixes ToVector3 parsing bugs for various spacing configurations of Vec3, added unit tests to cover it Tests: ran unit tests, checked F3 modes camera offset is correct and spawned entities appear where expecte
11 Days Ago
Bugfix: StringView.ToVector3 - trim off both whitespaces and , Tests: StringView and Command unit tests pass
11 Days Ago
Update: add a couple more test cases to ToVector3 unit test Tests: still fails, as expected
11 Days Ago
New: add Facepunch.UnityEngine.Tests assembly - added StringView.ToVector3 unit test Currently fails, as reported Tests: ran unit test, fails as expected
11 Days Ago
Merge: from main
11 Days Ago
Clean: remove NetWrite.BytesWithSize(byte[]...) overloads Tests: editor compiles
11 Days Ago
Clean: remove acouple obsolete things - Get rid of IStreamReader/Writer - they're not used anywhere - get rid of NetWrite.Bytes(byte[]) overload - superceded by Bytes(ReadOnlySpan<byte>) Tests: editor compiles
11 Days Ago
Merge: from main
11 Days Ago
Merge: from player_benchmark_improvements - Bugfix for PlayerModelBenchmark scene missing from builds Tests: none, trivial change
11 Days Ago
Bugfix: mark PlayerModelBenchmark.unity for maps bundle Tests: none, trivial change
11 Days Ago
Merge: from main
11 Days Ago
Update: in progress work to support ReadOnlySpan<byte> in NetWrite - Rust.SourceGenerator updated to support ReadOnlySpan<byte>-like types in RPC sigs - NetWrite pipes most byte[] calls to ReadOnlySpan overload Still need to cleanup and figure out if IStreamWriter is needed Tests: editor compiles
14 Days Ago
▊▋▊▅▊▊▄ ▄▄▊▉ ▄▊▋▉▅▅▄▊▆▇▇▅▊▊▍▇▅▅▄▆█▅▇▄▍▅ ▌▆▉▆▋▅█ ▅▍▄▍▄▉ ▍██▊▆▆▊▍▉ ▊▇▍▌▄▇ ▄▍ ▇▊ ▉▍▆ ▌▄▍▊▆▊▉▊▍▇▅ ▊▅▌▄█▅▋▇ ▅▇▊▆▇▌▄▅▄ ▍▋▇█▉▊▊▇▋▊ ▄▍▇▌▋▍▌▆▍▉▄█▅▌▆▋▍▅ ▌▉▋▅▉ ▉▋▅▄▊▄█ ▆▊▋█▋▇
14 Days Ago
▄█▍▍▅▌▊▉ ▍▇▌▆▍▅ ▌█▊█▊▌▆▄▄ ▇▉▇▉▉▌▆▍▆ ▋▇▊▌▆ ▅▄▍▉█▉▇▉▄ ▋▍▍▇▋▍ ▋█ ▄▍█▉ █ ▌▆▄▊▋ ▇▊ ▉▊█▍▆ ▉▇▊▇▋▉ ▊▋█ ▊▉▉██▍█ ▆▆▋ ▇▋▋▆▊█▌ ▌▍ ▍█▄█▄▅▆▊▅ ▅▆ █▌ ▌▍▆▋█ ▆▇█▅▆▇ ▋▉ █▋▅▍ ▌▍▋▊▋▍ ▉▄▉▆▅▆▇▅ ▍▆ ▉▌ ▌ ▄▍▍▊█▉▌▆▋▊█▋▉▉▅▆▇▊▅ ▄▍▊▋▍ ▍▅▅▋▅▇▉ ▄▊▍▄▄▍
14 Days Ago
Merge: from alloc_clean_june2026 - Optim: amortise or remove 19 allocation sources Tests: on craggy, gathered resources, built a mini base
15 Days Ago
Merge: from main
15 Days Ago
Optim: Replace Physics.OverlapBox with Physics.CheckBox in BaseVehicle.VehicleFixedUpdate Saves allocating the results array, and should be cheaper as well Tests: none, trivial change
15 Days Ago
Optim: get rid of string alloc in BaseCombatEntity.Hurt 1alloc/32b Tests: none, trivial change
15 Days Ago
Merge: from main
15 Days Ago
Optim: SpawnGroup - SpawnInstances not returns a List instead of IEnumerable Allows to save on iterator allocation, 40b Tests: none, trivial change
15 Days Ago
Optim: cache UpdateNetworkGroup invoke Saves 1 alloc/128b Tests: none, trivial change
15 Days Ago
Optim: cache PlayRadioChatter invoke Saves 1 alloc/128b Tests: none, trivial change
15 Days Ago
Optim: cache 2 invokes in Buoyancy.CheckSleepState Saves 2 allocs/256b Tests: none, trivial change
15 Days Ago
Optim: cache RemoveCorpse invoke Saves 3 allocs, 384b total Tests: none, trivial change
15 Days Ago
Undo of previous change - since entities can only be demolished once, the change was useless (and wasted memory)
15 Days Ago
Optim: cache StopBeingDemolishable invoke 1 alloc/128b Tests: none, trivial change
15 Days Ago
Optim: use static action in ServerBuildingManager.Split Should save another 2 allocs/160b per building block Tests: none, trivial change
15 Days Ago
Clean: tabs -> spaces, get rid of explicit generic args Tests: none, trivial change
15 Days Ago
Optim: use static callback to avoid allocs in ServerBuildingManager.CheckMerge Saves 2 allocs, 160b total Tests: none, trivial change
15 Days Ago
Optim: get rid of LINQ in Planner.FindSocket Saves 3 allocs/180b total Tests: none, trivial change
15 Days Ago
Optim: cache UpdatedVisibleHolsteredItems invoke Saves 1 alloc/128b Tests: none, trivial change
15 Days Ago
Optim: avoid boxing allocs in Azure.LogResource Weirdly Enum.ToString has 2 boxing allocs, totalling 48b. Tests: none, trivial change
15 Days Ago
Clean: fixup formatting in BasePlayer.OnProjectileAttack Tests: none, trivial change
15 Days Ago
▍ ▊▋▌▇▅▋ ▄▆▄█▍ ▄▊█ ▊▇▋▆▉ ▄▇▄▇ ▌▇▊ ▄ ▋▅▉▉▇▉▋▄▍▌█▉▋▍▍▉▅█ ▅▋ ▇█ ▅█▄▄ ▉ ▊▊█▄▍█▋▇▅ █▌▉█ ▍▇▊▉▆▋▋▅█ █▅ ▇▅▍▊▆▍▅▉ ▇▍ ▄█▉▌▉▄▍▉▋▄▇▍▋ ▋▄▋▊▅ ▇▆█▅▅▇▊ ▋▉▅▄▅▇
15 Days Ago
Optim: cache RemoveOldNoises invoke Saves 1-2 allocs, 128b each Tests: none, trivial changes
15 Days Ago
Optim: use pooling in BaseNetworkable::OnNetworkLimitStart Saves us 3 allocs, 100b min Tests: none, trivial change
15 Days Ago
Optim: cache action in PlayerLoot.MarkDirty 1 alloc/128b Tests: none, trivial change
15 Days Ago
Optim: cache PlayerLoot.MarkDirty action creation Saves 1 alloc/128b per container Tests: none, trivial change
15 Days Ago
Optim: cache actions in TrainEngine.PlayerServerInput Saves 2 actions, 128b per Tests: none, trivial change