158,389 Commits over 4,566 Days - 1.45cph!
Switch the full server export for base occlusion export JSON -> protobuf
- although it was zipped it was taking 30s to deserialize, yikes
- still supports JSON exports for the smaller pastes
Fixed servers stalling for up to ~200ms when a player crafts a workshop skinned item for the first time after a restart or steam definitions update
- The steam item definitions warmup now runs on the server too, it was client only so dedicated servers always read them cold
- Also warms WorkshopId, (HasWorkshopSkin reads it for every owned item and each cold read is a native Steamworks call)
- Moved SteamItemDefinitionWarmup out of the Client folder
7.81ms -> 0.07ms on first call
Fixed repair bench reskins freezing the server for ~0.7s after a steam item definitions update
- Reskinning a redirect back to default or to a workshop skin went through skins2, scanning every steam definition
- Now a direct definition lookup, 1275ms -> 0.66ms in editor. Was happening ~95 times a day across official servers
Fix streams in waterguns not being colored for radwater
- Ensure boats spawn on the edge then travel inwards
- Code cleanup
Prototype Workbench Upgrade now has a 25% chance of success instead of fail
Previously would consume 2.67 blueprints on average
Now consumes 4 on average
Added a sound for failing the prototype
Fix terrain quality not reducing lod extents to the minimum
Fix cows not following smoothly and being very slow and annoying to lead
Fix renderer key allocating a materials array on every batch group lookup, now uses a pooled list
Saves ~620 KB when loading in a big base in editor
Also fixed a small logic error in RendererKey.Equals
▉ ▍▊▌▊▆ ▍▇▌▉▇▄▆ █▊▌▌▅ █▄▅▋ ▋█ ▌▇▍▄ ▍▆▋▊ ▌▄▆ ▊▌▊█▇ █▌▊▄ ▇▉█▋▌▍ ▊▋▇▅▅▌▅▅ ▍▆▇ ▌█▉▌▋▆▆
Use own custom convar for egress
Remove screenspace terrain hole texture (replaced by RRP stencil testing)
Optimize speed for base occlusion tests when ran across a full server
- only load the map once per set of tests
Add renaming for cows and sheep
Player instigated renames start a new name dynasty, utilising the existing name dynasty stuff
Players can't rename animals spawned with the raree special names/genes. These names now appear gold with a star
Stop bush clutter running physics queries on every LODManager visit and taking a large part of its budget, now only runs when bush culling blocks (foundations) change
Disable CullBushes on boat hull blocks, not needed
Moved MenuUI2's UIBlurCanvasesBehind from FadedBackground to PageBackground as it needs a CanvasRenderer
merge from uiblur_faded_fix
Uzi: mag drop and shell ejection
- Mag drop on world model reloads
- Shell ejection in first person and 3p: new eject_shell (viewmodel) and w_eject_pistol_shell (world, on the uzi shell_eject bone)
- viewmodel updated, shell eject position + enforceClipWeights on so fire/fire_ADS sharing a blend tree don't spawn two shells per shot
- 1-2 boat groups will spawn every 5-8 hours (spawn together)
- Each individual group gets a random lifetime of 30-60 minutes before egress
viewmodel lasersight/brake attachment placment
update base_occlusion/foundation_offset_fix
Cant take the pt boat out of the deepsea (just like the other boats)
More Uzi 3p setup - stock and no stock anims for world model and player
- w_uzi anim hooked up, now swaps between the stock/ no stock anim sets when rifle mode is is toggled
- 3p anims now using a subsystem, not an overrride....so I can use multiple masks (no stock = one handed, left arm stays on locomotion, left hand comes in for the reload, stock out = two handed
- removed holdtype controller (not needed now)
- Stock deploy / collapse anims play when toggling between the two
- 3p anim updates + deploy/collapse stock clips
- uzi.entity: ProjectileAnimationSubSystem driven by the StockDeployed flag, HoldType.uzi override removed
- Uzi.cs (client only): sets the rifle_mode float on the world model animator from the stock flag. Skipped while the animator is inactive, same approach as CrossbowWeapon/Handcuffs driving their world animators
Cherry pick alloc fix for pool table and fishing, and fix compile error
Fix industrial pipe segments being permanently dynamic via flag on the prefab, toggle their LODs only when on a moving parent like base io lines
merge from base_occlusion/vending_door_fix -> base_occlusion
Add support for doors to be "always closed" but still treated like portals between rooms
- allows vending machines to block visibility between rooms while keeping the same code as doors
Add the "door blocker" component for base occlusion to the vending machine prefab too
Fix entities placed in sockets (vending machines) not linking up with their sockets until stability runs (which doesn't apply for vending machines) or server restart
- part of the reason vending machines didn't block occlusion: they sometimes had no links
Fix entities that were forced dynamic due to being parented never resetting the flag when pooled and staying dynamic when reused without a parent
Update tests to be aware of the extra faces on foundations now
Fix a foundation surrounded by walls being connected to a foundation outside the base offset half below
- add faces on the sides of foundations & rely on existing face linking behavior to work properly
Reserialize foundation prefabs before adding new faces (for clean diff)
added example mesh for jarryd -
idea is to box’s position, dimensions and rotation
Use object-name suffixes to assign physics materials, e.g. floor_01_wood uses Wood.
Remove material suffixes from generated child names
Place aligned colliders directly on the parent; create separate children for rotated boxes
Remove the reference instance after conversion, with Undo/Redo support
Cherry pick old animals fixes (flee when attacked from afar, do not sleep)
UIBlurCanvasesBehind skips the capture while a CanvasGroup above is faded out
rename `demo.newui` to `demo.oldui`, enable demoui2 by default.
[old ui stays. we really don't have a reason to nuke it for now and there are still some people that prefer the old one.]
Set "occlusion_door_immediate" to false by default (was supposed to be since we show everything within 32m)
merge from aizone_sleep_fix
Add special staging-only gamepad UI button option that hackily enables gamepad override just for that session.
Hide all other gamepad options in the gamepad section until it is enabled.