public void Push(HUDFrame hudframe)
    {
        // Super hackey solution to minor problem.
        if (this.frameStack.Peek().gameObject.name == "MaterialsFrame" && hudframe.gameObject.name == "DoodleFrame" ||
            this.frameStack.Peek().gameObject.name == "DoodleFrame" && hudframe.gameObject.name == "MaterialsFrame")
        {
            this.Pop();
        }

        if (this.frameStack.Count >= 4)
        {
            this.Pop();
        }
        // deactivate current top level HUDframe
        if (!hudframe.isSubFrame)
        {
            this.frameStack.Peek().transform.gameObject.SetActive(false);
        }

        // activate new top level HUDframe
        hudframe.gameObject.SetActive(true);
        updateColor(hudframe);

        this.frameStack.Push(hudframe);
    }
 void updateColor(HUDFrame topFrame)
 {
     foreach (Transform child in topFrame.GetComponentsInChildren <Transform>())
     {
         bool isFrameObj  = false;
         bool isButtonObj = false;
         bool isTextObj   = false;
     }
 }
    public void Pop()
    {
        HUDFrame removedFrame = this.frameStack.Peek();

        /*foreach (SwapToolButton b in removedFrame.gameObject.GetComponentsInChildren<SwapToolButton>())
         *  if (b.toggled && b != this)
         *  {
         *      b.OnPress();
         *  }*/
        // never pop the mainFrame
        if (removedFrame != mainFrame)
        {
            // deactivate top level HUDFrame
            removedFrame.gameObject.SetActive(false);
            // pop top level HUDFrame from stack
            this.frameStack.Pop();
            // activate new top level HUDframe.
            this.frameStack.Peek().transform.gameObject.SetActive(true);
            updateColor(this.frameStack.Peek());
        }
    }
    // Use this for initialization
    void Start()
    {
        leapcontroller = new Leap.Controller();
        frame          = leapcontroller.Frame();

        util = new HandsUtil();

        frames    = HUDObject.transform.Find("Frames").gameObject;
        mainFrame = frames.transform.Find("MainFrame").GetComponent <HUDFrame>();

        // create the frameStack and initialize it with the mainFrame
        frameStack = new Stack <HUDFrame>();
        frameStack.Push(mainFrame);

        hudActive = true;

        // initialize HUDColor to gray
        HUDColor       = new Color(0.345f, 0.3568f, 0.3804f, 1.0f);
        anchor.Anchor += Placement;
        placed         = false;

        hudManager = this;
    }
Exemple #5
0
        public static void AddToGUIUpdateList(Character character)
        {
            if (GUI.DisableHUD)
            {
                return;
            }

            if (!character.IsIncapacitated && character.Stun <= 0.0f && !IsCampaignInterfaceOpen)
            {
                if (character.Inventory != null)
                {
                    for (int i = 0; i < character.Inventory.Capacity; i++)
                    {
                        var item = character.Inventory.GetItemAt(i);
                        if (item == null || character.Inventory.SlotTypes[i] == InvSlotType.Any)
                        {
                            continue;
                        }

                        foreach (ItemComponent ic in item.Components)
                        {
                            if (ic.DrawHudWhenEquipped)
                            {
                                ic.AddToGUIUpdateList();
                            }
                        }
                    }
                }

                if (character.Params.CanInteract && character.SelectedCharacter != null)
                {
                    character.SelectedCharacter.CharacterHealth.AddToGUIUpdateList();
                }
            }

            HUDFrame.AddToGUIUpdateList();
        }