public ActionBarInfo SpawnChild(ActionBarInitialization ButtonInformation) { //Assign Button Size ActionBarButtonClone.transform.GetChild(0).transform.localScale = new Vector3(ButtonSize.x, ButtonSize.y, 1F); //Add Button as a child to the Action Bar Row ActionBarButton button = NGUITools.AddChild(this.gameObject, ActionBarButtonClone).GetComponentInChildren <ActionBarButton>(); //Assign MISC Information to Items/Spells if (ButtonInformation.Info.Stackable == true) { ButtonInformation.Info.Stack = ButtonInformation.Stacks; } if (ButtonInformation.Info.SeperateInstance == true) { button.SetInfo(Clone(ButtonInformation)); } else { if (ButtonInformation.isEmpty == false) { if (ButtonInformation.InfoNumber < ActionBarItem.Instance.ItemList.Count) { button.SetInfo(ActionBarItem.Instance.ItemList[ButtonInformation.InfoNumber]); //Assign the Spell/Item Information } else { Debug.LogWarning(gameObject.name + " is attempting to Assign Spell that no longer exists!"); button.SetInfo(null); } } else { button.SetInfo(null); } } //button.DisplayOneStack = ButtonInformation.DisplayOneStack; button.HotKey = ButtonInformation.HotKey; //Assign the Hotkey if (ActionBarSettings.Instance.HotKeyDictionary.ContainsKey(button.HotKey)) { button.HotKeyLabel.text = ActionBarSettings.Instance.HotKeyDictionary[button.HotKey]; } else //Check Keycode to see if it is None { button.HotKeyLabel.text = ""; //Assign Text to Blank since it has no Hotkey } button.isEmpty = ButtonInformation.isEmpty; button.isLocked = ButtonInformation.isLocked; button.isCloneOnPickup = ButtonInformation.isCloneOnPickup; button.BarRow = GetComponent <ActionBarRow>(); //Assign Parent Row ActionBarSettings.Instance.Buttons.Add(button); //Keep track of all buttons ButtonList.Add(button); //Add button to list ActionBarGrid.Reposition(); return(button.Info); }
//Creates a clone of the item/spell. This will be a seperate instance than the original. //It will share the same cooldown, yet will not share the same stacks. public static ActionBarInfo Clone(ActionBarInitialization ItemSlot) { ActionBarInfo tempObject = new ActionBarInfo(); tempObject.SetActionBarInfo(ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].Atlas, ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].Icon, ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].GroupID, false, ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].CooldownAmount); tempObject.FillDirection = ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].FillDirection; if (ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].Stackable == true) { tempObject.Stack = ItemSlot.Stacks; } tempObject.ActivateAbility = ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].ActivateAbility; tempObject.PlayCooldownAnimation = ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].PlayCooldownAnimation; tempObject.DestroyOnZeroStacks = ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].DestroyOnZeroStacks; tempObject.Target = ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].Target; tempObject.Function = ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].Function; tempObject.SeperateInstance = ActionBarItem.Instance.ItemList[ItemSlot.InfoNumber].SeperateInstance; return(tempObject); }