new-horizons/NewHorizons/Components/Volumes/SphericalFluidVolume.cs
2022-11-25 20:48:42 -05:00

34 lines
1013 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace NewHorizons.Components.Volumes
{
public class SphericalFluidVolume : FluidVolume
{
public float radius;
public virtual void OnValidate()
{
SphereCollider collider = GetComponent<SphereCollider>();
if (collider != null) collider.radius = radius;
SphereShape shape = GetComponent<SphereShape>();
if (shape != null) shape.radius = radius;
}
public override bool IsSpherical() => true;
public override float GetFractionSubmerged(FluidDetector detector) => detector.GetBuoyancyData().CalculateSubmergedFraction((detector.transform.position - transform.position).magnitude, radius);
public virtual void OnDrawGizmosSelected()
{
Gizmos.color = Color.cyan;
Gizmos.DrawWireSphere(transform.position, radius);
}
}
}