7,893 Commits over 1,004 Days - 0.33cph!
Disable the 4 RotationConstraint on horses when not wearing the LNY armour
Fixed map UI allocating 2.5KB per frame when open, UpdateTerrainShaderConstants now reads the splat settings directly instead of going through the TerrainConfig getters
merge from entityflagtoggle_skipsounds
Fixed the map fade never settling after closing it, every frame for ~4s it was notifying all its children UI behaviours (0.3ms/frame)
merge from entityflagtoggle_skipsounds
Added 3 new listener kinds to EntityFlag_Toggle so BBQ and flame turrets can benefit from the optim on
166947
Fixes BBQ and flame turrets playing wrong sounds when deployed
EntityFlag_Toggle events now skips one shot sounds the first time it runs, when entity spawns
- fixes furnaces playing their extinguish sound when spawned (many other entities had the same issue: campfire, mixing table..)
- it didn't cause any perf issues before: the sound manager drops one shot sounds beyond their audible range, and entities spawned at network range, far beyond it
- now that we have base occlusion, you could hear them spawning which was an issue for both gameplay and performance
merge from entityspawning_optims
Pooled industrial conveyors switch their hum off when retired
merge from arabic_ellipsis_fix
merge from genericpopup_rrp_fix
Fixed oversized and misplaced ellipsis "..." on Arabic text, was causing "Line breaking recursion max threshold hit"
Fixed generic popup sorting issue with rrp enabled
merge from genericpopup_rrp_fix
Fixed flying horse bullshit
merge from flyinghorse_fix
merge from console_autocomplete_improvements
merge from console_autocomplete_improvements
Fixed entity and item auto completion always showing SERVER realm
Same change as
166970 but for all furnace prefabs (furnace, electric furnace, large furnace)
Conveyors are poolable
We prewarm 10 copies
We now prefill our pool with up to 30 copies of the most used io entities. The first time you load a big base will be a tad faster at the expense of more upfront memory
You're going to load them as soon as you load the local zerg base anyway
Added SoundPlayerCull to industrial conveyors looping hum sound. It was spawned regardless of distance then paused
Editor profiling, 30 conveyors spawned 150m away:
- 9ms -> 2.3ms total
- ~470us -> ~220us per conveyor spawn
- Sound.DoUpdate per frame: 112us -> 20us (the 30 paused hums were still updated every frame)
Removed the pref to skip unity event listener baking in editor, wasn't necessary
(renamed the branch to entityspawning_optims)
Added entity/item autocompletion to more commands
spawngrid and teleportany autocomplete entity names
merge from console_autocomplete_improvements
Optimized entities with flag toggles spawning: EntityFlag_Toggle now bakes its listeners at prefab preprocessing and calls them directly instead of invoking its UnityEvent
The first UnityEvent invoke on every new instance looked its listeners up by reflection.
Rough profiling from the editor, loading in a mix of 248 entities (io, locks, doors and some random deployables)
EntityFlag.DoUpdate
26ms -> 2ms total
~100us -> ~9us per entity
~940 KB -> ~231 KB total
Fixed deep sea layer nuking all the monument markers
Fixed shop markers cache being filled with junk when disconnecting/reconnecting
merge from quickcraft_optims
Optimized prefab lookups by path, we now cache exact spelling hits. Makes each FindPrefab ~7x faster on repeat calls
(was around 6us per call in builds, up to 0.5ms in frames that spawn a lot when entering network range of a base)
We could make prefab paths case sensitive instead, but I'm not gonna change the million callers and that could break plugins
Fixed QuickCraft.FindItems spending ~2ms checking if you own a dlc after looting an item, SteamDownloadableContent now caches the answer for each DLC
Fixed the player name cache being cleared on every team update, causing the team UI to refilter every name through Steam (~1.5ms every 4s with 7 teammates)
merge from animalanimation_optims
Fixed AnimalAnimation out of range errors
merge from notices_rtl_fix
Fixed item dropped and item pickup notices not working with RTL languages
Fixed CraftingNotice allocating every frame when crafting an item
Also converted them to RustText so they can display RTL languages
merge from boateffects_optims
Optimized MotorRowboat.Update, it has a slow water height check for its effects, around 0.10ms
- culled by distance
- skipped when stationnary for >3s
Fixed AnimalAnimation allocating 80 bytes for each footstep