When you pinpointed your correct WaterState(1 when you are fishing in water, 0 otherwise) or StateWaterOffset(1 when you caught fish in water and it is still on a hook and 0 otherwise) you do pointerscan with depth of 6/7, then you restart the game, find WaterState/StateWaterOffset again, open up previous pointer scan results and scan for address you need.
You do that 3-4 times until you have ~10-300 pointers, after that you sort them by minimum amount of offsets and check if they have trove.exe as their pointer base(something like "trove.exe"+0x13371001 + 0x0C +0x128 +0x84 +0x20).
After you found your WaterState pointer you need to pointerscan for StateWaterOffset, but this time you can skip relaunching the game, just do 1 pointer scan, find base that looks like the first one("trove.exe"+0x13371001) and has same offsets except the last one.
So if your WaterState pointer was something like "trove.exe"+0x13371001 + 0x0C +0x128 +0x84 +0x20 you should look for something like "trove.exe"+0x13371001 + 0x0C +0x128 +0x84 +0x??
Congratulations, you just found both pointers for water.