13,656 Commits over 2,741 Days - 0.21cph!
Fixed camlerp position not working
Fixed camera position/rotation changing when changing parent (either via keybind or convar)
Reduce condition loss when spraying, add some condition loss when free spraying
Fixed offsets not recalculating when entering/exiting parented space (still not 100% right)
Fix Client.camlerp not working in parented camera mode (lerp is applied in local space)
Added debugging.debugcamera_orbitwhileparented, true is legacy behaviour, false is new default and uses same controls as unparented mode
Parenting to an entity now properly converts the debug camera's position and rotation calculation to be in local space (previously rotation was in local space but position was world space)
Removed debugcamera_bonerotation, this functionality is now active whenever the camera is parented to something
Now emulates a physically attached camera
Add Tools/Scene/Add Parent GameObject editor shortcut
Add Tools/Scene/Focus Camera To Main Camera editor shortcut
If the dev_cam root is found it uses that for the focus zoom calculation and enables that gameobject
Merge from shot_parenting
Merge from spraycan_merge2
Fixed NotifyLod components not respecting mesh.quality convar (will affect sprays as well as boom boxes)
Fixed spray sfx looping incorrectly when spray can breaks mid spray
Sprays that detect a sudden detection change will now break the line and start a new line
This looks a lot better than attempting to make the turn with the limited geometry we're using
This still only counts as one spray entity
Remove point culling features, no longer needed
Merge from spraycan_merge2
Change name of freehand item
Disable default blueprint on spray inserts (for initial testing)
Disable point culling, still needs some work
Fixed icon rendering
Added frog boot spray
Cull free spray vert points that overlap each other
Fix colliders not being properly reassigned on server load
Better freehand spray icon
Fix MaxSpraysPerPlayer not properly applying to free hand sprays
Better item descriptions
Add global.MaxSpraysPerPlayer convar
Track timestamp and player responsible for every spray
Restructure spray save data, remove some unused fields
Add global.ClearAllSprays convar
Add server convar global.deleteallsprays
Adjust free hand spray item icon
Fix premade decals getting incorrectly destroyed while spawning, fixes save/load issues
Sprays are now decay entities and last three hours
Exposed via global.SprayDuration/global.SprayOutOfAuthMultiplier convars
Fix not being able to use stored water on a spray when sprayed on terrain
Increased spray duration to 6 hours (temp, will convert to decay soon)
Re-enabled rain check invoke
Added a free hand spray attachment, must be inserted into the spray can to allow free painting
Fixed zipline building blocks not properly calculating on multiple hops
Fixed some inconsistencies between client and server building block generation
Fixed default string value of input field text
Potential improvement for layout fps drop when item pickup notice is on-screen (eg. after hitting a tree)
Remove RustLayout and replace with a simple spacing component that doesn't implement the layout interfaces and runs in an update
Fixed placeholder New text on blueprint buttons
Add support for the player to transition directly to another parenting trigger instead of briefly unparenting entirely (allowTransitionToOtherParentingVolume on TriggerParent)
Should provide more reliable behaviour when moving between parenting volumes at high speeds
Only enabled on above ground train cars
Fixed some alignment issues on answering machine UI
Fixed input field not using an empty string by default
Merge from spraycan_merge2
Replace Color.Parse with a span based version
Removes most of the garbage, still leaves a little bit that could be removed with a .net update
Consolidate type parsing into one method
Cache fonts rather than loading them from the file system every time a text label is created
Fixed button listeners not being properly cleared when pooling
Fix needskeyboard and FadeOut params not working with pooling
Add support for pooling
Since UI components are assembled programmatically at runtime this generates a hash for each instance to reuse later
Reduces allocations by 75%, increases speed by 95% and should work without any input required by plugin developers
Better fix, just remove the inside group checks