Fully sync exosuits and drilling
- [x] Sync claw arms
- [x] Sync picking up items with claw arms
- [x] Sync drill arms
- [x] Sync drill arm position when drilling (automatically moves down to deposit)
- [x] Sync grappling arms
- [x] Sync grappling hook from grappling arms
- [x] Sync propulsion arms
- [x] Sync torpedo arms
- [x] Sync exosuit power cells
- [x] Sync drillable deposits visually disappearing in parts when drilled
- [x] Sync resources spawning from drillable deposits
- [x] Sync "pinata" resources automatically going into vehicle storage
- [x] Sync respawning ion cube deposit in primary containment facility antechamber
- [x] Persist destroyed status of deposits when saving
Fixes #2278, fixes #2303, fixes #2386, fixes #2577
GJ on the PR @SpaceMonkeyy86
I found 4 bugs that u might have missed
-
The second power cell in the exosuit isnβt synced at all.
-
If you swap an arm from one slot to another, it first vanishes for everyone, then reappearsβbut only for the second player.
-
If you repeatedly equip and unequip an arm, it can sometimes duplicate (this might be just lag but i can do it consistently).
-
The other player can still hear some sounds from the exosuit when the other player is far away (like 0,5km away). When u let go of the spacebar, they can hear for split second the jetpack/engine "revving off". Occasionally they can also hear a loud stomp from the exosuit.
Everything else works great :D. Keep up the good work
@leonidasjan These should be fixed now. For the sound effects, that is not really relevant for this PR since the sound is synced, but it was probably designed to play regardless of world position, since you are normally right on top of it. We will get around to reworking those sounds sometime, though.
Good work on the bug fixes @SpaceMonkeyy86 π
The bugs i listed are gone (except for the sound issues but i understand that its for the future).
The only thing ive noticed is that there are still some bugs while grabbing another player with the hook. If you want u can fix those issues but IMO grabbing other players should be disabled cause its a little weird.
from the bug testing perspective the pr is almost ready to merge
@leonidasjan Thanks, it should be impossible for other players to be hit with the grappling hook now.
LGTM π
Looks good from what I've seen IG, thank's for the PR
We noticed few things we noticed yesterday during test sessions :
- Seems to have some issue with global sound while an exosuit is walking
- Exosuit spawns with only one battery filled in
- We noticed some duplication/desync issue upon relog with deposits, might need some more deep testing on that part
Merging #2137 created a lot of merge conflicts with this PR since both of them completely rewrote a lot of the same subsystems code. I will need to do some more work to get everything back to a working state, then we need re-reviews and more in-game testing.
Never mind, that was suspiciously easy. We definitely need some in-game tests because I have a hard time believing everything is still working after that.
Test results(May 6 2025):
- Disabling pvp does not disable gas damage from torpedoes fired by other players(minor, for 1.9 or future)
- Beam of propulsion arm is not synced(minor, leave for future)
- Exosuit entering into moonpool anim does not sync, packet sends but is not effected on other client for some reason, once other player gets in the exosuit it warps to the pos though(major, must fix)
- Similar issue with undocking
- Ion cube pillar spinning and lowering in antechamber is not synced(minor, for 1.9 or future)
- Position of drill arms relative to ore that is being mined is way off(not sure if fixable, probably 1.9)
Results from in-game testing:
- "Couldn't find entity for ___" errors in server when swapping arms (sync still works)
- SFX of drill whirring is audible everywhere for other players
- Torpedos deal damage to other players even when PvP is off
- VFX of beam connecting propulsion arm to object is not synced
- When entering a moonpool, the exosuit usually stays outside for other players until the player enters it (then it immediately docks)
- Leaving a moonpool is usually not synced
- VFX of drill colliding with deposit is not synced
- Drill arm does not physically touch the deposit when drilling (vanilla bug, probably intended, maybe fix?)
All are very minor / wontfix except the moonpool issues
The docking and undocking issues were found to be unrelated to this PR, and the other fixes are not necessary for 1.8, so this PR should be considered all good regarding in-game tests.
Now that 1.8 is on a branch, we can now give it a deeper look. If you mind rebasing π
Test Results
244 testsβ +1βββ243 β +1βββ7s β±οΈ -1s ββ1 suites Β±0βββββ1 π€ Β±0β ββ1 filesββ Β±0βββββ0 β Β±0β
Results for commit 660c37be.βΒ± Comparison against base commit 2bf26678.
This pull request removes 1 and adds 2 tests. Note that renamed tests count towards both.
Nitrox.Test.Patcher.Patches.PatchesTranspilerTest β AllPatchesTranspilerSanity (NitroxPatcher.Patches.Dynamic.Equipment_RemoveItem_Patch,7)
Nitrox.Test.Patcher.Patches.PatchesTranspilerTest β AllPatchesTranspilerSanity (NitroxPatcher.Patches.Dynamic.Drillable_ManagedUpdate_Patch,3)
Nitrox.Test.Patcher.Patches.PatchesTranspilerTest β AllPatchesTranspilerSanity (NitroxPatcher.Patches.Dynamic.Drillable_SpawnLootAsync_Patch,2)