D:\ValheimDev\Dumps\Old\assembly_valheim\WaterTrigger.cs D:\ValheimDev\Dumps\Latest\assembly_valheim\WaterTrigger.cs
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
   
.public class WaterTrigger : MonoBehaviour  public class WaterTrigger : MonoBehaviour, IMonoUpdater 
{ {
    private void Start()     private void Start()
    {     {
        this.m_cooldownTimer = UnityEngine.Random.Range(0f, 2f);         this.m_cooldownTimer = UnityEngine.Random.Range(0f, 2f);
    }     }
   
    private void OnEnable()     private void OnEnable()
    {     {
        WaterTrigger.Instances.Add(this);         WaterTrigger.Instances.Add(this);
    }     }
   
    private void OnDisable()     private void OnDisable()
    {     {
        WaterTrigger.Instances.Remove(this);         WaterTrigger.Instances.Remove(this);
    }     }
   
.    public void CustomUpdate(float deltaTime)     public void CustomUpdate(float deltaTime, float time)
    {     {
        this.m_cooldownTimer += deltaTime;         this.m_cooldownTimer += deltaTime;
        if (this.m_cooldownTimer <= this.m_cooldownDelay)         if (this.m_cooldownTimer <= this.m_cooldownDelay)
        {         {
            return;             return;
        }         }
        Transform transform = base.transform;         Transform transform = base.transform;
        Vector3 position = transform.position;         Vector3 position = transform.position;
        if (Floating.IsUnderWater(position, ref this.m_previousAndOut))         if (Floating.IsUnderWater(position, ref this.m_previousAndOut))
        {         {
            this.m_effects.Create(position, transform.rotation, transform, 1f, -1);             this.m_effects.Create(position, transform.rotation, transform, 1f, -1);
            this.m_cooldownTimer = 0f;             this.m_cooldownTimer = 0f;
        }         }
    }     }
   
.    public static List<WaterTrigger> Instances { get; } = new List<WaterTrigger>();     public static List<IMonoUpdater> Instances { get; } = new List<IMonoUpdater>();
   
    public EffectList m_effects = new EffectList();     public EffectList m_effects = new EffectList();
   
    public float m_cooldownDelay = 2f;     public float m_cooldownDelay = 2f;
   
    private float m_cooldownTimer;     private float m_cooldownTimer;
   
    private WaterVolume m_previousAndOut;     private WaterVolume m_previousAndOut;
} }