示例#1
0
        HideNode CreateNodeForSystem(int id, SystemSelection sel)
        {
            var active = true;
            var type   = sel.GetSystemType();

            if (!typeof(ComponentSystemGroup).IsAssignableFrom(type))
            {
                systemsById.Add(id, sel);
                worldsById.Add(id, sel.World);
                var recorder = Recorder.Get($"{sel.World?.Name ?? "none"} {type.FullName}");
                if (!recordersBySystem.ContainsKey(sel))
                {
                    recordersBySystem.Add(sel, new AverageRecorder(recorder));
                }
                else
                {
                    UnityEngine.Debug.LogError("System added twice: " + sel);
                }
                recorder.enabled = true;
                active           = false;
            }

            var typeName = Properties.Editor.TypeUtility.GetTypeDisplayName(type);
            var name     = getWorldSelection() == null ? $"{typeName} ({sel.World?.Name ?? "none"})" : typeName;
            var item     = new TreeViewItem {
                id = id, displayName = name
            };

            var hideNode = new HideNode(item)
            {
                Active = active
            };

            hideNodesById.Add(id, hideNode);
            return(hideNode);
        }