157,292 Commits over 4,566 Days - 1.44cph!
Remove HeightSlope slope only used by map rendering saves ~11MB, more in deepsea
Use normals instead of slope for map rendering
Add iso grid topology option
Fix bases decaying despite TC having upkeep when the decay tick gets slowed down on very high entity count servers
- change decay tick from being a hardcoded 5 entities per tick to budgetted to 0.25ms per tick
- in practice most servers won't hit this: this is 200k decay entities & 10 server FPS to start reaching the budget
- paces so we don't burn budget looping through the list too quickly
Enable terrain normal mips and use for lower detailed lods
Fix ring position rounding issues at lower cell sizes
Remove terrain stencil material from terrainConfig (is now the default)
Use y-distance from terrain to skip LOD rings
Refactor how files (paintings, cassettes, etc) are keyed internally
Fixes signs with the same contents (uploadsign) being cleared unexpectedly
Switch batches from channel 1 -> channel 0 so it's ordered with all the other packets (since we no longer use unordered for position packets)
development_server_fix -> main
Cleanup cache query return
Hooked up new mount forward animations (sheep still has issues)
Merge from Animal_Jumping
Fixed failing NPC mounting tests (switched tests to use sheep and not cow)
MeshPaintable3D uses 16-bit unorm UV buffer instead of Half float. Increases precision up to 32x without increasing memory since all 3d painted meshes have UVs in the 0-1 space. Fixes blotchy and jagged brush strokes. Also effects egg suit.
██▉▌█▇▊▉▉▉▄▋▄▄▊▅▆▊▍▄▊ █▄▅█▉▋
Restore opacity slider to tattoo UI
Changed tattoo UI to sample colours from a .asset instead of colour picking from an image so we can use tattoo-appropriate colours (currently uses same colours as before except black)
▌▉█▆▄▊▇▄ ▅█▌█▄▉ ▉▆ ▍▋▌▌▆▋▉▄▅▊ ▅▊ ▉▄██▍ ▆▊ ▊ ▅▋▅▊▅▉ ▉█ ▍▊▅█▊▉▆▅ ▅▉ ▋ ▅▄▇▅█ ▉▊▉
Add bump effect to tattoos
Fix servers saying 'Development Server' in the pause menu when you're connected to a normal server
Lower quant from 1cm -> 1mm for position
- switch from sending delta position to sending quantized acceleration so we can keep 1 byte per update after moving to a 10x smaller quant
- if acceleration is larger than 0.127m / tick then it will send full acceleration (allows it to support instant teleports and large changes in velocity)
- will fine-tune values further
- Disable clan features in softcore, like they already are in hardcore
- Add clan table as a restricted item in softcore and hardcore. You can't use them anyway
- Fix tech trees showing restricted items. Saved me having to make a whole new tech tree for softcore just to hide the clan table
- Fix the custom inspector stuff on ItemDefinition for setting a restricted item not working in all prefab modes
- Add dictionary lookup for finding gamemode item restrictions
Disabled saving on both the apple.tree and coconut.tree prefabs (this stops the fruit piling up and floating after server restarts oops).
Replaced array with a list and use Facepunch.pool instead of allocating an array each time.
Set the positon and rotation of the fruit straight away.
Removed apple chance from oak_f. Instead move to oak_e which has a chance of spawning apples and a beehive.
General code clean up.
merge from weapon_refresh_nailgun
Fixed nailgun missing muzzlepoint, was erroring when put in a turret
Fixed nailgun world model outlline
merge from skinviewer_nailgun
Added nailgun to the skin viewer
Tattoo layer tweaks, subdermal+ink layer
Some test assets
Only check if quant settings have changed once per frame in flush instead of every single position packet
Added modular contraption kit, textures and materials for testing purposes.
merge from weapon_refresh_nailgun
updated workshopsource nailgun model
Switch from generic stream -> BufferStream in the EntityPositionBatchReader since both demos and network data share the same class of stream for packets
Send positions & rotations quantized
- reduce the 3x positions floats from 4 -> 1 bytes when they are within 1.27m per tick (1cm quantization)
- reduce the 3x rotations from 4 -> 1 byte when they are within 25 degrees per tick (0.2 degree quantization)
- will fine tune the values if it's too high a quant
- fallback to sending the full value when it changes by more than a delta
- tell the client what the quantization is so it can be changed during the session and be captured by demos
Set a bunch of textures to non readable
Update: meta changes for some(?) textures on reimport
Tests: none
Update: patch ugui fork to keep up with API changes
Replicated relevant code from upstream package
Tests: editor boots
Update: automatic package upgrades
Tests: none
Lighthouse rework WIP.
Lighthouse now needs repairing, like the airwolf helipad.
Repairing it restores the light and opens the deep sea.
Moved airwolf airpad to use a new RepairableStructure base clase which the lighthouse now also uses.
merge from server_packet_capture -> main
merge from boat_dismount_points_preprocess
Add `packet_capture` command to capture outbound packets on the server
- will capture up until a certain size or time limit is reached
- writes to disk with 8MB buffer
- intended to allow capturing network data so we can simulate optimizations on the raw data
- no overhead when turned off
rust 13th birthday cake;
- textures added
- icon updated
- material updated
- prefab updated
Playerboat dismount points are now baked into prefab attributes instead of a transform array on the block
Authoring is the same in the prefab but the transforms can now get stripped during preprocess
Saves a couple gameobjects and the array per block, but opens the door to do more stripping on all building blocks