public IEnumerable <Direction> GetValidDirs(IntVector3 p)
{
foreach (var d in DirectionExtensions.CardinalUpDownDirections.ToArray())
{
var dst = p + d;
if (m_terrain.Contains(dst) && m_terrain.GetTileData(dst).IsWaterPassable)
{
yield return(d);
}
}
}