250,302 Commits over 3,959 Days - 2.63cph!
Tileset layering fixes, bounds calculated per-layer
Converted hill cliffs generation to PlaceCliffsUniform
Lowered LOD distances on all cliffs
Added TilesetComponent.LayerDistance
▋▉▄ ▇▋▄▇▉▅▍▍▆▌█ █▊ ▍▅▅▊▄▊▍▄█
add smoothness and specular reflectivity multipliers to splat base layers
re-exported viewmodel mesh fbx to face positive z
Always do light footstep particles
Added SFX for begin and end running state. Also added wooshing sfx and speed lines while in running state.
Better sprinting feedback, updated particles, Punch ability no longer starts in improper state. Fixed footstep particles spawning in the air sometimes.
Better feedback from punching, particles when swinging, punching cancels running speed.
Added SFX for Punching, Swinging, and Breaking Punchables
Added Punchable.IsBreakable so not all punchables can be destroyed
Case sensitive include (Linux compile fix)
Groundwork for PE changes
Particle browser with previews for Particle Editor
https://files.facepunch.com/rubat/2024/September16-554-RoughAsiansmallclawedotter.png
Added MovieMaker Library
Added Interactables, NPCs, and a basic CutsceneManager. Created a Test NPC with Test Cutscene.
Huge reword and restructure to radioactive items~
Any item can now be radioactive
Added new flag on containers to check if any radioactive material is inside before they end up having to count up all their rads. Only used on the ItemModContainerRads for the moment
BaseRadioactiveMaterial now declared
Extra comments
Huge code cleanup with clearer method names
Clean: removing overriden-but-not-really method from LootableCorpse
Tests: none, trivial change
Clean: simplifying ItemContainer.MarkDirty
Tests: none, trivial changes
Update: ModularVehicleInventory pools ItemContainer
- Had to cause it to discard MVI on server destroy to properly clean up pool containers. Can add MVI pooling later.
Tests: on craggy approached one of spawned vehicles, inserted pistons in the engine then blew up with c4. Pistons dropped, next spawned vehicle didn't have them. Telemetry had expected values.
only apply surface breaking drag to non-kinematic players
(fixes warning when DPV would submerge)
Quick change to rear ratchet
Defined limits.
Tweak strength and duration.
Update: ContainerIOEntity pools ItemContainer
- reimplemented inventory accessor to be backed by an explicit private var
Tests: spawned small rain collector, destroyed it - saw expected changes in telemetry
Prune unused child nodes during validation
Was doing this when removing links, but this would sometimes break graphs during deserialization
Poll rad amount inside container when opening
Centralised MaterialToRadsRatio inside Radiation.cs
Blockout of catapult (not functional yet)
sanity checking tools for non-convex mesh colliders
Update: ItemBasedFlowRestrictor pools ItemContainer
Tests: in editor on Craggy made fusebox mortal and shot it - saw ItemContainer returned to pool
Test Bench Gibs + Break on Destroy
Fix prefab references since files moved
Add more perf markers to nav agent
Actually punch in the direction player is facing instead of looking
Buffed radioactive water.
Hazmat still more than enough protection
Punching now stops the player in-place and lunges them forward a bit
Update: DroppedItemContainer pools ItemContainer
Tests: spawned a wooden box, added rock and torch, destoyed it with AK. Looted the dropped container, it disappeared. Saw the uptick and downtick in telemetry when expected.
Reworked ItemModContainerRads to only cache rad updates on item added/removed
Should improve reliability whilst also preventing checks on OnDirty providing a decent performance increase
Bugfix: Avoid dangling ItemContainer reference on Clear.
- ItemContainer.Clear now removes items immediately, rather than deferring them to ItemManager's removal queue
- Callbacks are also invoked earlier, before the ItemManager's removal queue pumping
- Instead of sending out per-item ItemContainer-MarkDirty events, we only do 1 for all
- ItemContainer.Kill also clears onPreItemRemove and parent
This prevents a pooling bug where we recycle ItemContainers in same frame before ItemManager removal queue being pumped. It would lead to "invisible" items occupying the inventory.
Tests: Spawned a wooden box, filled it up with stuffs, destroyed it - dropped container spawned with inventory(instead of dropping on the ground). Looting it caused it to despawn(instead of stay in the world).
TerrainFilter supports a radius
TerrainTopologyMap.GetTopology checks an actual circle, not a square
Move DestroyBetweenRounds to GameLoop rules
Move sound emitter to a library, document it, add AutoStart prop