Files
Ipseity-Demo/Assets/_Content/Scripts/Features/LiminalSpaces/BoatOnLake/Water/WaterVolumeBox.cs
T

52 lines
1.5 KiB
C#

#region Using statements
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#endregion
namespace Unheimlich.VFX.StylisedWater
{
[AddComponentMenu("Bitgem/Water Volume (Box)")]
public class WaterVolumeBox : WaterVolumeBase
{
#region Public fields
public Vector3 Dimensions = Vector3.zero;
#endregion
#region Public methods
protected override void GenerateTiles(ref bool[,,] _tiles)
{
// calculate volume in tiles
var maxX = Mathf.Clamp(Mathf.RoundToInt(Dimensions.x / TileSize), 1, MAX_TILES_X);
var maxY = Mathf.Clamp(Mathf.RoundToInt(Dimensions.y / TileSize), 1, MAX_TILES_Y);
var maxZ = Mathf.Clamp(Mathf.RoundToInt(Dimensions.z / TileSize), 1, MAX_TILES_Z);
// populate the tiles with a box volume
for (var x = 0; x < maxX; x++)
{
for (var y = 0; y < maxY; y++)
{
for (var z = 0; z < maxZ; z++)
{
_tiles[x, y, z] = true;
}
}
}
}
public override void Validate()
{
// keep values sensible
Dimensions.x = Mathf.Clamp(Dimensions.x, 1, MAX_TILES_X);
Dimensions.y = Mathf.Clamp(Dimensions.y, 1, MAX_TILES_Y);
Dimensions.z = Mathf.Clamp(Dimensions.z, 1, MAX_TILES_Z);
}
#endregion
}
}