134,863 Commits over 4,293 Days - 1.31cph!
Clean: refactored out OcclusionOnDestroy, as it was getitng messy
- also added a null check to avoid pooling issues
Tests: none, trivial changes
Actually renamed it to Bear Skin Rug this time
Bugfix: OcclusionGroups - ensure sleepers are tracked when player transitions to a different occlusiongroup
This is an edge case when being in subscription range of a sleeper - sleeper's group would contain it and player, but player's group would have sleeper missing
Tests: moved around in the vicinity of sleeper, checked internal state
Fixed muzzle brake not unlocking via HV pistol ammo in tech tree
Bugfix: OcclusionGroups - fix NRE when moving out of group with a sleeper
- replaced with a IsVisibleFromFar check
- also reworked teleportation logic via IsVisibleFromFar, as that's more correct
- also IsVisibleFrom range check was wrong, so fixed that
Previous code relied on subscriber to check if move-out-of-bounds occurred, but sleepers don't have a subscriber, so it NREed
Tests: moved away from a cell with a sleeper, checked internal state
Update: NetworkVisibilityGrid gains IsVisibleFromNear/Far(Group from, Group to)
- expose via provider interface
Needed for occlusion groups case of moving sleepers (as I can't rely on subscriber check)
Tests: testted as part of followup bugfix
Minor cleanups
* Makes CBaseAnimating::m_OverrideViewTarget private
Fixed potential crash issue with look door
Jalopy no longer spawns trigger_vehicle_cargo at all times
* Instead, spawn the entity only when asked to, i.e. `CargoVisible` key value is set before Entity.Spawn is called (maps), or SetCargoHopperVisibility input is used on the car. This input can now also be used to properly disable the functionality by doing `SetCargoHopperVisibility 0`
* This means that Sandbox Jalopy no longer uses 2 edicts, and will not be able to hold a magnusson device in the invisible holder (unless explicitly enabled beforehand)
Added ReleaseBusterFromCargo input to Jalopy
Remove "Ember type" from env_embers in Hammer (did nothing)
Make env_embers compile with parenting support
* So basically there's this stupid system of "if a brush entity doesn't have "origin" keyvalue at map compile time, the brush model bounds will be in world space". env_embers did not use it and therefore was incompatible with parenting. We now make this entity use that system (like all entities should really be doing to be honest) and try to detect the difference in code for old maps and new maps, and apply the entity's position to the particles if we detect the map as "newly compiled with support for parenting" for this entity
FGD: Add auto generated values of func_breakable_surf
* So they do not appear as broken in Hammer, and provide explanation as to what they do.
merge from artist_pack_dlc
paintable reactive target setup and script
update all ornate frames with label code
Light up Picture frames - added lods to xl and xxl versions, swapped material to new standard shader, fixed paintable area UVs
Fix the values so they can orbit smoothly
Bugfix: OcclusionGroups - eagerly clean up occlusion group when teleporting
- consolidated occlusion-group leaving logic
Caught the bastard - due to over-time nature of subscription updating, there was a window in which the player could teleport and disconnect, leading to a leak of occlusion group and a null participant.
Tests: on client, teleport2marker;kill, then separatelly disconnect; then on server run OcclusionValidateGroupson - all's gud
Fix some minor bugs with the new orbit state. Still needs some more work
Updating skinning for paintball overalls
- Updated worldmodel (scaled up to match existing asset, removed internals from LOD3 & re-positioned to be central to the world)
- Updated world rig with updated model
- Updated bounds in .worldmodel & .entity
- Re-cached textures in .viewmodel (material updates broke this connection)
paintable reactive target rig/anims exported and setup in prefab. Also world model animator controller created
merge from artist_pack_dlc
Fix npcZone OOB translation being wrong when parented to a ghostship
Add hack to not check if underwater if parented to a ghostship
Instead of removing the shadow mask mode completely from the UI, it's now only disabled to ensure it doesn't break graphics presets
Adjust npc zones on ghostships to prevent samples lying exactly on zone boundary
- First pass on fixing ghostship npc zones
- Allow rotating and moving zones
- Allow destroying zones
- When samping in a donut around the unit, use navmesh space instead of world space (fixes sampling wrong ghostship floors)
- Fix search origin being corrupted
- Fix lastChosenHidingSpot never being set
Extra debugging
Simplify the state
Increase radius
New Orbit state. Used when protecting Oilrig and intecepting a ghost ship when the a crate is hacked:
- AI boats will move towards the target
- Reach a specific point then begin patroling around the target
- Try and maintain group cohesion
mirror 05 model and collision
boatai_avoid_trigger_fix -> main
Avoidance cache gets stale quicker - should help prevent times where the boats will ignore avoid triggers
Turn off boat ai state sleeping
Helps make them way better behaviourly and since everything is budgetted it looks fine
Update: minor changes
- comment explaining why occlusion group isn't retired
- error log for cases where we're unsubscribing from network group but we're not in it's occlusion group
- TODO comment outlining a desync between group transitions on the border of subscription range and networkable destruction
Tests: none, trivial changes
Merge from naval_scientist_fixes, fix wrong space coordinate for scientists zone and water checks (navmesh space instead of world space)
Add npc zones to ghost ships, fixes scientists not rushing or flanking well
-Fix navmesh being full of holes and unusable on plank made structures on deepsea islands.
-Fix scientists walking on top of static canons of islands
-Fix scientists walking through trees on islands
-Not fixed: loot crates present on island spawn are forever baked into the navmesh
Fix for anchored status.
Slightly more lenient anchor-to-water check.
Additional debug drawing.
Fix potential "Look rotation viewing vector is zero" error
Fix scientists spawn markers sometimes being placed too far from dwellings on islands, sometimes causing them to spawn in rocks
Removed shadow mask setting from the Graphics Settings menu as we don't use a shader mask in Rust as it's for baked lighting only
Bugfix: check if occlusion group participant is null when cleaning up occlusion groups
Should not be needed, but until I track down where nulls are happening this can prevent other issues
Tests: none, trivial change
▉ ▌▋▇▅█ █▌▅▆ ▅▅▄█▅▄▇▌▋█▄▊▋▆▅▊▇▇▊▅▋▊█▅▊▌▋
▄ ▉▄▅ ▋▊▍▇ ▄▌███ ▌██▍▆▋▅ ▍▇▉▍ ▄▍▉▊ █▇▇▇ ▄▅▆▌▌ ▊▍▅▆▊▅▆▋▍▄▅▍ ▌▋▆▇ ▉▉ ▊▍▅▄▋▄▆▍▋▉▅▇▆ ▊▊▉▆▆▉▌
Reduce deploy volume collider on boat stairs so it can be correctly placed in all rotations with surrounding walls
Added a new Additional Mask Blend Settings section to the Standard shader's Detail Layer for further control over the detail mask's blending and UVs
▇▌▋▆▊▋ ▍▌▍▉ ▌▇▆▆▅▌▅▊█▊▋▅▄▋▆▆▋▅▍▄▄▍
▋▉▄▄▅▌▉ ▇▌▆▄ ▊▉▊█▅▋▄█▆▊▍▌█▅▉▍
Change steering wheel lock sound
vclouds:
- cap full res image to 4k in either dimension (prevents GPU murder when taking high res screenshot, aspect ratio is maintained when scaling down)
- don't reproject when taking a screenshot, render the full cloud image from scratch
- respect time.timescale