public void Setup(ObjectListController _controller, float _delay, SortStats _stats, int _direction) { delay = _delay; controller = _controller; stats = _stats; stats.Size = controller.GetSize(); direction = (SortDirection)_direction; }
// Start is called before the first frame update void Start() { sortType = 0; controller = ScriptableObject.CreateInstance <ObjectListController>(); sortHandler = gameObject.AddComponent <SortHandler>(); stats = new SortStats(statsSize, statsAccesses, statsCompares, statsSwaps, statsDelay, controller.GetSize(), delay); OnSetup(); OnDelayUpdate(1); }
public IEnumerator DoSort(ObjectListController _controller, int type, float delay, SortStats stats, int direction) { if (state == SortState.Sorting) { yield break; } stats.Init(); sortAlgorithm = sortFactory.GetSortAlgorithm(type); sortAlgorithm.Setup(_controller, delay, stats, direction); state = SortState.Sorting; yield return(StartCoroutine(sortAlgorithm.DoSort())); sortAlgorithm.DeselectAll(); if (state == SortState.Sorting) { Destroy(sortAlgorithm); } state = SortState.Idle; }