public override void HandleInput(InputEvent inputEvent) { if (inputEvent is ResearchButtonClickedInput) { ResearchButtonClickedInput researchButtonClickedInput = inputEvent as ResearchButtonClickedInput; ResearchAction researchAction = researchController.CreateResearch(researchButtonClickedInput.research); if (researchAction.CanExecute(player)) { researchAction.Execute(player); } } if (inputEvent is OpenResearchInput) { dispatcher.Dispatch <IdleState>(); } }
private void CreateResearchButton(ResearchBase research, Transform parent) { GameObject researchButton = Instantiate(m_ResearchButtonPrefab, parent); GameObject researchViewPrefab = m_ResearchController.GetResearchPrefab(research); GameObject researchViewObject = Instantiate(researchViewPrefab, researchButton.transform); researchButton.GetComponentInChildren <TextMeshProUGUI>().text = research.displayName; researchButton.GetComponentInChildren <Image>().sprite = researchViewPrefab.GetComponent <ResearchView>().Sprite; researchButton.GetComponentInChildren <Button>().onClick.AddListener(() => { ResearchButtonClickedInput researchButtonClickedInput = new ResearchButtonClickedInput() { research = research }; m_InputController.RegisterInputEvent(researchButtonClickedInput); }); m_ResearchButtons.Add(researchButton); }