public void ChangeSelectedProcess(int processIndex) { if (foregroundProcess != null) { foregroundProcess.inputEntities.ChangeAny -= UpdateUI; foregroundProcess.nonHumanEntities.ChangeAny -= UpdateUI; foregroundProcess.OnFinishProgressEvent -= UpdateUI; } foregroundProcess = GetConnected <Processor>().GetProcess(processIndex); SubscribableList <UseableEntity> input = foregroundProcess.inputEntities; SubscribableList <UseableEntity> output = foregroundProcess.nonHumanEntities; inputListUI.Init(input); nonHumanListUI.Init(output); input.ChangeAny += UpdateUI; output.ChangeAny += UpdateUI; foregroundProcess.OnFinishProgressEvent += UpdateUI; progressBarUI.Init(foregroundProcess); startButton.onClick.RemoveAllListeners(); startButton.onClick.AddListener(TryStartCurrentProcess); loopToggle.onValueChanged.RemoveAllListeners(); loopToggle.onValueChanged.AddListener(foregroundProcess.SetLoop); uIHeaderProcesses.HighlightElement = processIndex; UpdateUI(); }
IEnumerator MoveResultsRoutine(UseableEntity[] useableEntities, Transform origin) { UIUseableEntityList listUI = Instantiate(useableEntityListPrefab, Game.UIHandler.InWorldCanvas.transform); listUI.Init(new SubscribableList <UseableEntity>(useableEntities)); float duration = lerpToDockCurve.keys[lerpToDockCurve.length - 1].time; float dockOffsetLerpAmount = Game.Dock.GetFilledFloat(); float t = 0; while ((t += Time.deltaTime) < duration) { DockLocation dockL = Game.Camera.GetDockLocationInWorld(); listUI.transform.position = Vector3.Lerp(origin.position + SpawnOffsetFromOrigin, Vector3.Lerp(dockL.LeftBot, dockL.RightBot, dockOffsetLerpAmount), lerpToDockCurve.Evaluate(t)); yield return(null); } Game.Dock.Add(useableEntities); Destroy(listUI.gameObject); }
public void CreateUI(Dock dock) { UIUseableEntityList instance = Instantiate(uIdockPrefab, UICanvas.transform); instance.Init(dock.GetUseableEntityList()); }