108,319 Commits over 3,867 Days - 1.17cph!
Clean: removing redundant ItemContainer.Kill calls
- Removed a comment since it became obsolete
Returning to Pool will "Kill" them.
Tests: None, trivial changes
Restrict storage barrel being able to be placed deep inside the world layer
thumb_up
13
thumb_down
11
Merge from elevator_parenting_collision_improvements
Fix Scene2Scene process running HLOD generation 3 times when generating prefabs and scenes
Only run the first bake, subsequent HLODBounds generation calls will use cached mesh and materials (still runs everything else)
Needs to be implemented when calling the S2P generation methods (see HLODBounds.ResetMultiBake in SceneToPrefab
merge from fix_ramp_wall_placement -> main
Fix wall placed beside ramp not able to be replaced after it's destroyed
- applies to all walls: full size, half size, doorway, frame, window & low wall
- https://files.facepunch.com/jakerich/iojYkzF7bnBKc9Sp/b0nGqYrAiPHtL3Zz.jpg
Merge from world_update_2
Rework UnwrapBakers final asset output process to update and resave assets instead of deleting and recreating assets
Fixes Scene2Scene workflow missing HLOD meshes because subsequent runs would delete the assets, losing their connection
merge from fix_foundation_terrain_placement -> main
initial viewmodel base rig file, anim clips, animator and viewmodel prefab setup
Merge from world_update_2
Fix foundations not being placeable when the middle is clipping into terrain or rocks
- as long as one corner or edge of a foundation is still above the terrain, it will place
- still block placement if the foundation is completely under the terrain
- add new SocketMod_Grouping to control multiple socket checks (which is how it checks multiple points on foundation)
- applied to both square foundation and triangle foundation
Converted hill cliffs generation to PlaceCliffsUniform
Lowered LOD distances on all cliffs
▋▉▄ ▇▋▄▇▉▅▍▍▆▌█ █▊ ▍▅▅▊▄▊▍▄█
add smoothness and specular reflectivity multipliers to splat base layers
re-exported viewmodel mesh fbx to face positive z
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
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
Add more perf markers to nav agent
Buffed radioactive water.
Hazmat still more than enough protection
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
Ensure ItemModConsumeContents also calls onItemAddedRemove
Drinking from a vessel now calls onItemAddedRemoved
Bugfix: don't invalidate ItemModContainer's availableSlots
- Also restricted access to availableItems to prevent future accidents and make it easier to reason about list's lifetime.
This is my bug - Pooling resets available slots on ItemContainer, so if they're shared by ref - original source gets nuked.
Tests: got ak47 with ext mag, dropped it, it despawned, spawned new one, tried to put rock into gear slots - it got rejected
Fixed above / below ground rail transitions not checking mountain topology when finding their spawn location
Split into different 1st and 3rd prefabs because reasons.
Movement improvements/fixes
Added static WaterTypes class. Swapped water Item Definition string lookup to a centralised set of definitions. Eg:
ItemManager.FindItemDefinition( "water" ) -> WaterTypes.WaterItemDef