public void InitializeAssemblyButtons() { CollectAllPurchaseables(); assemblyButtonList.Clear(); foreach (Transform child in assemblyButtonStart) { Destroy(child.gameObject); } // Condense these two into a single function later. for (int i = 0; i < assemblies.Length; i++) { GameObject butt = (GameObject)Instantiate(assemblyButton, assemblyButtonStart.position + Vector3.right * (purchaseButtonSize) * i, Quaternion.identity); assemblyButtonList.Add(butt.GetComponent <LoadAssemblyButton> ()); butt.transform.SetParent(assemblyButtonParent, true); LoadAssemblyButton button = butt.GetComponent <LoadAssemblyButton> (); button.assembly = assemblies[i]; AddAssemblyButtonListener(butt.GetComponent <Button> (), button); button.Initialize(); } for (int i = 0; i < specialAssemblies.Length; i++) { GameObject butt = (GameObject)Instantiate(assemblyButton, firstTopButton.position + Vector3.left * (purchaseButtonSize) * i, Quaternion.identity); assemblyButtonList.Add(butt.GetComponent <LoadAssemblyButton> ()); butt.transform.SetParent(firstTopButton, true); LoadAssemblyButton button = butt.GetComponent <LoadAssemblyButton> (); button.assembly = specialAssemblies[i]; AddAssemblyButtonListener(butt.GetComponent <Button> (), button); button.Initialize(); } }
void AddAssemblyButtonListener(Button button, LoadAssemblyButton loadButton) { button.onClick.AddListener(() => { loadButton.Purchase(); }); button.GetComponent <HoverContextElement>().text = loadButton.assemblyName + ", " + loadButton.cost.ToString() + " LoC"; button.transform.Find("Text").GetComponent <Text>().text = loadButton.assemblyName; }
public static void GetButtonData(Assembly assembly, LoadAssemblyButton button) { List <GameObject> objects = new List <GameObject>(); int cost = 0; GameObject module = null; for (int i = 0; i < assembly.parts.Count; i++) { module = PurchaseMenu.cur.GetModulePrefab(assembly.parts[i].type); if (module) { objects.Add(module); cost += module.GetComponent <Module>().moduleCost; } button.assemblyName = assembly.assemblyName; } button.requiredModules = objects.ToArray(); button.cost = cost; }