135,069 Commits over 4,293 Days - 1.31cph!
Fix error from trying to stop one shot animations when the player is already gone, for e.g. when exiting network range.
cherrypicked and fixed shutter frames branch (scripts only, no prefab changes)
merge from fix_copy_paste_duplicate_entity -> main
Attach cannon ball to hands when reloading cannons.
Tests: OcclusionGroupTests - add TestVisibilityAfterMovingToFarRange (32)
- added a couple TODOs
Tests: ran new unit tests, all's gud
Add `paste_grid {x} {y} {spacing}` command
Fix not being able to undo multiple pastes with a single `undopaste` command
Tests: OcclusionGroupTests - add move to near range visibility test (32)
Tests: ran new tests, all pass
Tests: OcclusionGroupTests - add test validating moving from outside net range to same cell (32 tests)
Need to add 2 more variations (move to near and far range), then can start moving to esoteric scenarios
Tests: ran new tests, all pass
Bugfix: OcclusionGroupTests - fixup invalid expectation of newlogic groups in TestVisibilityAfterMovementAway
We succesfully enforce newlogic's rule that networkable should always be in a local occlusion group
Tests: ran all unit tests, all green
Picture Frame - updated scrap set icons
Refactor from IsChildOfPlayerBoat to IsChildOfFinishedPlayerBoat (for now)
Picture frames - texture update, deploy volumes fix
remove_extra_scientist_weapons -> main
Remove unused weapons on boat scientists.
This removes the extra server generated weapons (that aren't used), saving us around 144~ unused networked entities across all AI boat scientists.
Not fully aware of the full performance impacts of having these (if there were any), but worth removing and we will see
Bugfix: OcclusionGroup - prevent unsubbing from own group
Can happen when player is dead/in limbo
Tests: ran unit tests, fixed TestUpdateSubs(newLogic, dead), but TestVisibilityAfterMovementAway(newLogic, dead, *) still fail, albeit for new reason
Tests: OcclusionGroupTests - add simple tests verifying group and sub updates
Need them to validate that new logic can unsub from group it's in (which is illegal)
Tests: ran new 24 tests, TestUpdateSubs(true, dead) failed as expected
boatai_balance_changes -> main
Refactored to pass a List<Vector3> from the client so we can implement different shapes & fixes without needing server update / mismatch of client & server RPCs
If pasting multiple "bases" at once (in a line) add all the entities to a single entry in the paste history so they can be undone in a single step
Refactor `paste` and `paste_line` into a single method one the client & server
- paste now acts like a repeating paste with count of 1
- pass repeat count inside the RPC proto
Picture Frames - texture update
Bugfix: OcclusionGroupTests - fix TestVisibilityAfterMovementAway(oldLogic, Dead) tests
Updating subs when in limbo unsubs you from limbo group (funky, but legal). Old logic ends up with empty groups (okay for it), but new logic ends up with an invalid occl group
Tests: ran unit tests, 4 failures left
Bugfix: OcclusionGroupTests - fix TestVisibilityAfterMovementAway(*, OutsideCell) tests
- Handle the fact that new occlusion group logic eagerly cleans up occlusion groups when moving out of range, even before subscription tick
- Fix invalid assertion for old logic when p2 moves, before subscription tick
Tests: ran tests, now 8 failing (all related to Dead players)
Tests: OcclusionGroupTests - add TestVisibilityAfterMovementAway tests (32)
Tests: ran new unit tests, 14 fail
hooked up workshop source to sks skinnable
added night ambience sounds to the deep sea islands
fixed paintable reference on XL lightup frame referencing the whole prefab not just the lod0
Easel fix, small and medium ornate frame fix
Tests: OcclusionGroupTests - Visibility tests now update network groups and update subscriptions
This validates that subscription mechanism works on a basic level
Tests: all 42 unit tests pass
SKS skinnable , still need to set up workshop source
Boat ai will now only drive the boat to 90% of its max speed, this allows players to be able to go slightly faster than them and get away (setup with a convar as well)
Merge from artist_pack_dlc_old/paintball_overalls
Bugfix: OcclusionGroupTests - use AreEquivalent instead of AreEqual when comparing occlusion groups
Old logic and new logic end up with differently ordered occlusion groups - but in real world we don't care about order
Tests: all 42 unit tests pass
merge from fixed artist_pack_dlc_2 branch to newly constructed artist_pack_dlc
merge from fixed ornate frames branch
Fixed Cherry-picked branch
merge from artist_pack_dlc
Bugfix: Eagerly initialize occlusion groups when player spawns
When player's network group switches on spawn, it's treated as a bot, so doesn't create an occlusion group, but it might be awhile till next group switch, so player might have uninitialized occlusion group for a bit.
Tests: unit tests - 42/45 pass
boat_ai_patrol_aggression_fix -> main
Think time 10 seconds -> 5 seconds
boat_ai_patrol_aggression_fix -> main
Fix boat ai getting stuck patrolling oil rig and not actually engaging a player driving up