private void RebuildMinionWidgets() { if (MinionWidgetsNeedRebuild()) { foreach (ScheduleMinionWidget minionWidget in minionWidgets) { Util.KDestroyGameObject(minionWidget); } minionWidgets.Clear(); foreach (Ref <Schedulable> item in schedule.GetAssigned()) { ScheduleMinionWidget scheduleMinionWidget = Util.KInstantiateUI <ScheduleMinionWidget>(minionWidgetPrefab.gameObject, minionWidgetContainer, true); scheduleMinionWidget.Setup(item.Get()); minionWidgets.Add(scheduleMinionWidget); } if (Components.LiveMinionIdentities.Count > schedule.GetAssigned().Count) { blankMinionWidget.transform.SetAsLastSibling(); blankMinionWidget.gameObject.SetActive(true); } else { blankMinionWidget.gameObject.SetActive(false); } } }
public void Setup(Schedule schedule, Dictionary <string, ColorStyleSetting> paintStyles, Action <ScheduleScreenEntry, float> onPaintDragged) { this.schedule = schedule; base.gameObject.name = "Schedule_" + schedule.name; title.SetTitle(schedule.name); title.OnNameChanged += OnNameChanged; blockButtonContainer.Setup(delegate(float f) { onPaintDragged(this, f); }); int num = 0; blockButtons = new List <ScheduleBlockButton>(); List <ScheduleBlock> blocks = schedule.GetBlocks(); int count = blocks.Count; foreach (ScheduleBlock block in schedule.GetBlocks()) { ScheduleBlockButton scheduleBlockButton = Util.KInstantiateUI <ScheduleBlockButton>(blockButtonPrefab.gameObject, blockButtonContainer.gameObject, true); scheduleBlockButton.Setup(num++, paintStyles, count); scheduleBlockButton.SetBlockTypes(block.allowed_types); blockButtons.Add(scheduleBlockButton); } minionWidgets = new List <ScheduleMinionWidget>(); blankMinionWidget = Util.KInstantiateUI <ScheduleMinionWidget>(minionWidgetPrefab.gameObject, minionWidgetContainer, false); blankMinionWidget.SetupBlank(schedule); RebuildMinionWidgets(); RefreshNotes(); RefreshAlarmButton(); optionsButton.onClick += OnOptionsClicked; HierarchyReferences component = optionsPanel.GetComponent <HierarchyReferences>(); MultiToggle reference = component.GetReference <MultiToggle>("AlarmButton"); reference.onClick = (System.Action)Delegate.Combine(reference.onClick, new System.Action(OnAlarmClicked)); component.GetReference <KButton>("ResetButton").onClick += OnResetClicked; component.GetReference <KButton>("DeleteButton").onClick += OnDeleteClicked; schedule.onChanged = (Action <Schedule>)Delegate.Combine(schedule.onChanged, new Action <Schedule>(OnScheduleChanged)); }