13,656 Commits over 2,741 Days - 0.21cph!
Don't play the disconnecting sfx and UI when holding RMB and looking at an IO socket that you don't have building privilege for (this was rejected on the server anyway)
Only abort an industrial conveyor job running long once it fully processes an output, can lead to strange output results otherwise
Fix some edge cases with blueprint min/max values
Fix splitters not splitting properly
Merge from contact_server_switch_fix
AuthCount convar will now list an auth type with each entity entry
AuthCount convar will now list a code lock if the player is authed via the guest code (auth type will list LockGuest in this case)
Add an industrial stress test server save
Added an extra slot for a storage adaptor on the front of the small wood box
Added a display in the conveyor filter window to show what buffer transfers are currently in process
Fixed some edge cases with filter "And" mode and buffer transfers (eg. a buffer/AND filter for 1 metal frag and 1k stone will wait until all of the stone is transferred before starting a new transfer and sending another frag)
Need to be standing to modify industrial filters
Fixed furnace power points not appearing reliably after a storage adaptor is attached
Added another storage adaptor socket to the front of the electric furnace
Remove the non-jobs path for pipe generation
Merge from industrial/cache
Industrial budget is now an exposed convar (server.industrialFrameBudgetMs), was 0.25ms now defaults to 0.5ms
Conveyors can now abort jobs halfway through if they go for too long, meaning dense industrial networks may move less items if too many containers are connected
Cache the storage adaptor item container reference, in high density industrial networks the EntityRef getter that occurs here can take up half of the total time of the transfer
Increased max stack size of a conveyor move to 60 (faster + splits nicer)
Reworked container split amounts to work in a branch based system (eg. each splitter will divide the maximum output amount per move by 3, nested splitters will further divide this amount)
Daisy chained output containers will now only be sent items if the preceding container in it's chain is full/could not accept item (eg. a conveyor outputting to a large box A which then outputs to another large box B, the B container will not receive items until A is full)
Increased maximum amount of containers that can be manipulated by a single conveyor to 64 (64 input + 64 output)
Increased maximum depth of container connections to 64
Stress testing, numbers are WIP
First pass on a refactor to cache the input/output destinations of an industrial conveyor instead of calculating them every move
Reduce the LOD distance on all of the lights on the electric furnace
Rework some elements of the IOEntity load process to prevent having to regenerate the IO connections (including the industrial pipes) every time any state on the IO entity changes
Prevents all industrial pipes getting regenerated multiple times every time a conveyor is turned on/off
Fixed NRE introduced in
79235
Enable GPU instancing on electric furnace materials
Don't unselect an IO connection if you mouse over an empty slot on another entity (affects electric/water/industrial)
Added a counter on the filter screen to show the number of filters and the maximum
Fixed item search field leaving results on when the search field is cleared
Slightly increased height of space check when ziplines are created, should make them more likely to avoid obstacles like terrain and seek alternate routes (0.5->0.75)
Adjust physics sweep radius for zipline obstacle detection to more closely match the player dismount capsule sweep, prevents zipline from travelling into a space it thinks is valid but the player dismount will reject and kill the player
Added an extra pre dismount check to the zipline, if it fails move the zipline player back slightly before attempting the dismount
Merge from watercatcher_perf_improvements
Better fix for catcher detecting if inventory of target liquid container is full
Fixed water catchers not filling up with water if the attached destination liquid container is full
Disabled the shaking on the crafter while it's on
Added a red flash to the crafter if it's output storage is full
Added 3 more blueprint slots to the industrial crafter
All 4 bp slots can be accessed via the bp in/out industrial ports
Crafter can only make one item at a time, will attempt to make the items in sequence left-right
Merge from industrial/inverse
Refactored conveyor filter variables:
Added a new field called Buffer that acts like the old Minimum system (transfer blocks of X items)
Minimum field will now transfer everything over the given value in the input container (eg. a minimum of 10 wood will transfer all wood until there is 10 left and then stop)
In a case where the Buffer and Minimum fields are both used, you will need the combination of both values to start a transfer (eg. a minimum of 10 and a buffer of 15 will need 25 before trhe transfer will begin)
Turning on "Require All" filter mode now disables the min/max filter fields
Bug fixes
Integrated every class that derives from LodComponent to use new FastLOD system
Initial work on an ECS based LOD system
Currently only supports RendererLOD components
Adds support for adjusting LOD bounds while aiming down a scope to ensure higher quality visuals when zoomed in
Added a ray extension mode
Conveyors will now turn back on after receiving power if they were on when they lost power
Add frustrum culling
Use bounds instead of a single point, will work with scaled bounds
Abstract out lod renderer class for easier rust integration
Editing is now locked while a player has a held entity (please don't shoot the mannequin)
Player no longer collides with mannequin rotation gizmos
UI fixes
Can now edit all three bones on each finger
Can no longer open the mannequin loot while editing is taking place
Eliminated the brief snap to incorrect pose when first spawning a mannequin