protected void BuildVariableBlocks() { Transform parent = mRootList[Define.VARIABLE_CATEGORY_NAME].transform; //build createVar button GameObject obj = GameObject.Instantiate(BlockViewSettings.Get().PrefabBtnCreateVar); obj.transform.SetParent(parent, false); obj.GetComponentInChildren <Image>().color = mConfig.GetBlockCategory(Define.VARIABLE_CATEGORY_NAME).Color; obj.GetComponent <Button>().onClick.AddListener(() => { DialogFactory.CreateDialog("variable_name"); }); List <VariableModel> allVars = mWorkspace.GetAllVariables(); if (allVars.Count == 0) { return; } CreateVariableHelperViews(); //list all variable getter views foreach (VariableModel variable in mWorkspace.GetAllVariables()) { CreateVariableGetterView(variable.Name); } }
public void SetActiveBlocks(Dictionary <string, CategoryBlocks> activeCategories, Dictionary <string, PopUpData> categoriesTutorials = null) { this.activeCategories = activeCategories; nActiveCategories = activeCategories.Keys.Count; TutorialTrigger trigger = GetComponent <TutorialTrigger>(); if (trigger != null) { trigger.enabled = nActiveCategories > 0; } Block.blocksAvailable = new Dictionary <string, int>(); int priority = 400; //Activate the category if it's not in the active list foreach (var category in mConfig.BlockCategoryList) { bool active = activeCategories.ContainsKey(category.CategoryName.ToLower()); mMenuList[category.CategoryName].gameObject.SetActive(active); if (categoriesTutorials != null && categoriesTutorials.ContainsKey(category.CategoryName)) { TutorialTrigger categoryTrigger = mMenuList[category.CategoryName].gameObject.AddComponent <TutorialTrigger>(); categoryTrigger.isSaveCheckpoint = true; categoryTrigger.priority = priority++; categoryTrigger.highlightObject = true; categoryTrigger.info = categoriesTutorials[category.CategoryName]; } //Set Block Count if (active) { mMenuList[category.CategoryName].gameObject.SetActive(true); List <string> blockTypes = mConfig.GetBlockCategory(category.CategoryName).BlockList; foreach (string blockType in blockTypes) { CategoryBlocks info = activeCategories[category.CategoryName.ToLower()]; if (info.activate == (info.activeBlocks.ContainsKey(blockType))) { int value = (info.activeBlocks.ContainsKey(blockType) ? info.activeBlocks[blockType] : Int16.MaxValue); Block.blocksAvailable[blockType] = value; } } } } }