using NWH.Common.CoM;
using UnityEngine;
namespace NWH.DWP2.WaterObjects
{
///
/// Calculates mass of a Rigidbody from the children that have MassFromVolume script attached.
///
[RequireComponent(typeof(Rigidbody))]
public class MassFromChildren : MonoBehaviour
{
private Rigidbody _rb;
private string _result;
public void Calculate()
{
_rb = GetComponent();
float massSum = 0;
_result = "Calculated mass from: ";
foreach (MassFromVolume mam in GetComponentsInChildren())
{
massSum += mam.mass;
_result += $"{mam.name} ({mam.mass})";
}
_result += $". Total mass: {massSum}.";
Debug.Log(_result);
if (massSum > 0.001f)
{
_rb.mass = massSum;
VariableCenterOfMass vcom = GetComponent();
if (vcom != null)
{
vcom.baseMass = massSum;
}
}
}
}
}