public void ToggleIntervals(bool isOn)
        {
            if (IntervalTransform == null || panelInterface == null)
            {
                return;
            }

            panelInterface.IntervalVisible = isOn;

            IntervalTransform.gameObject.SetActive(isOn);

            if (!isOn)
            {
                return;
            }

            for (int i = intervalTypes.Count - 1; i >= 0; i--)
            {
                CW_IntervalTypes node = intervalTypes[i];

                if (node == null)
                {
                    continue;
                }

                if (node.IntervalInterface == null)
                {
                    continue;
                }

                node.gameObject.SetActive(node.IntervalInterface.IsReached);
            }
        }
        private void CreateIntervalType(IIntervalNode n)
        {
            GameObject obj = Instantiate(IntervalPrefab);

            if (obj == null)
            {
                return;
            }

            obj.transform.SetParent(IntervalTransform, false);

            CW_IntervalTypes nodeObject = obj.GetComponent <CW_IntervalTypes>();

            if (nodeObject == null)
            {
                return;
            }

            nodeObject.setIntervalType(n);

            intervalTypes.Add(nodeObject);
        }
        public void Refresh()
        {
            if (panelInterface == null)
            {
                return;
            }

            if (POIToggle != null)
            {
                POIToggle.gameObject.SetActive(panelInterface.AnyPOI);

                if (POIToggle.isOn)
                {
                    TogglePOIs(true);
                }
            }

            if (StandardToggle != null)
            {
                StandardToggle.gameObject.SetActive(panelInterface.AnyStandard);

                if (StandardToggle.isOn)
                {
                    ToggleStandards(true);
                }
            }

            if (IntervalToggle != null)
            {
                IntervalToggle.gameObject.SetActive(panelInterface.AnyInterval);

                if (IntervalToggle.isOn)
                {
                    for (int i = intervalTypes.Count - 1; i >= 0; i--)
                    {
                        CW_IntervalTypes type = intervalTypes[i];

                        if (type == null)
                        {
                            continue;
                        }

                        if (type.IntervalInterface == null)
                        {
                            continue;
                        }

                        if (!type.IntervalInterface.IsReached)
                        {
                            continue;
                        }

                        type.gameObject.SetActive(true);

                        type.Refresh();
                    }
                }
            }

            if (BodyToggle != null)
            {
                BodyToggle.gameObject.SetActive(panelInterface.AnyBody);

                if (BodyToggle.isOn)
                {
                    for (int i = bodyNodes.Count - 1; i >= 0; i--)
                    {
                        CW_BodyNode body = bodyNodes[i];

                        if (body == null)
                        {
                            continue;
                        }

                        if (!panelInterface.AnyBodyNode(body.BodyName))
                        {
                            continue;
                        }

                        body.gameObject.SetActive(true);

                        body.Refresh();
                    }
                }
            }
        }