コード例 #1
0
 public void SetSystemSelection(ScriptBehaviourManager manager, World world, bool updateList, bool propagate)
 {
     if (manager != null && world == null)
     {
         throw new ArgumentNullException("System cannot have null world");
     }
     SystemSelection      = manager;
     SystemSelectionWorld = world;
     if (updateList)
     {
         systemListView.SetSystemSelection(manager, world);
     }
     CreateComponentGroupListView();
     if (propagate)
     {
         if (SystemSelection is ComponentSystemBase)
         {
             componentGroupListView.TouchSelection();
         }
         else
         {
             ApplyAllEntitiesFilter();
         }
     }
 }
コード例 #2
0
        public void EntityListView_ShowNothingWithoutWorld()
        {
            m_Manager.CreateEntity();
            var emptySystem = World.Active.GetOrCreateManager <EmptySystem>();
            ScriptBehaviourManager currentSystem = null;

            using (var listView = new EntityListView(new TreeViewState(), null, SetEntitySelection, () => null,
                                                     () => currentSystem, x => {}))
            {
                currentSystem = World.Active.GetExistingManager <EntityManager>();
                listView.SelectedEntityQuery = null;
                Assert.IsFalse(listView.ShowingSomething);

                currentSystem = emptySystem;
                listView.SelectedEntityQuery = null;
                Assert.IsFalse(listView.ShowingSomething);

                currentSystem = null;
                listView.SelectedEntityQuery = null;
                Assert.IsFalse(listView.ShowingSomething);

                currentSystem = null;
                listView.SelectedEntityQuery = AllQuery;
                Assert.IsFalse(listView.ShowingSomething);
            }
        }
コード例 #3
0
        public void EntityListView_ShowEntitiesFromWorld()
        {
            m_Manager.CreateEntity();
            var emptySystem   = World.Active.GetOrCreateManager <EmptySystem>();
            var selectedWorld = World.Active;
            ScriptBehaviourManager currentSystem = null;

            using (var listView = new EntityListView(new TreeViewState(), null, SetEntitySelection, () => selectedWorld,
                                                     () => currentSystem, x => {}))
            {
                currentSystem = World.Active.GetExistingManager <EntityManager>();
                listView.SelectedEntityQuery = AllQuery;
                Assert.IsTrue(listView.ShowingSomething);
                Assert.AreEqual(1, listView.GetRows().Count);

                currentSystem = World.Active.GetExistingManager <EntityManager>();
                listView.SelectedEntityQuery = null;
                Assert.IsTrue(listView.ShowingSomething);
                Assert.AreEqual(1, listView.GetRows().Count);

                currentSystem = emptySystem;
                listView.SelectedEntityQuery = null;
                Assert.IsFalse(listView.ShowingSomething);
            }
        }
        void CreateSystemRecorder(ScriptBehaviourManager manager)
        {
            var recorder = Recorder.Get($"{world.Name} {manager.GetType().FullName}");

            recordersByManager.Add(manager, new AverageRecorder(recorder));
            recorder.enabled = true;
        }
コード例 #5
0
        private HideNode BuildNodesForComponentSystem(ScriptBehaviourManager manager, ref int currentId)
        {
            switch (manager)
            {
            case ComponentSystemGroup group:
                List <HideNode> children = null;
                if (group.Systems != null)
                {
                    foreach (var child in group.Systems)
                    {
                        AddNodeIgnoreNulls(ref children, BuildNodesForComponentSystem(child, ref currentId));
                    }
                }

                if (children != null || getWorldSelection() == null || getWorldSelection() == group.World)
                {
                    var groupNode = CreateNodeForManager(currentId++, group);
                    groupNode.Children = children;
                    return(groupNode);
                }
                break;

            case ComponentSystemBase system:
            {
                if (getWorldSelection() == null || getWorldSelection() == system.World)
                {
                    return(CreateNodeForManager(currentId++, system));
                }
            }
            break;
            }

            return(null);
        }
コード例 #6
0
        private TreeViewItem CreateManagerItem(int id, ScriptBehaviourManager manager)
        {
            managersByID.Add(id, manager);
            var recorder = Recorder.Get($"{window.WorldSelection.Name} {manager.GetType().FullName}");

            recordersByManager.Add(manager, new AverageRecorder(recorder));
            recorder.enabled = true;
            return(new TreeViewItem {
                id = id, displayName = manager.GetType().Name.ToString()
            });
        }
コード例 #7
0
 public void SetSystemSelection(ScriptBehaviourManager manager, World world)
 {
     foreach (var pair in managersById)
     {
         if (pair.Value == manager)
         {
             SetSelection(new List <int> {
                 pair.Key
             });
             return;
         }
     }
     SetSelection(new List <int>());
 }
コード例 #8
0
        static int CompareSystem(ScriptBehaviourManager x, ScriptBehaviourManager y)
        {
            var xIsEntityManager = x is EntityManager;
            var yIsEntityManager = y is EntityManager;

            if (xIsEntityManager == yIsEntityManager)
            {
                return(string.CompareOrdinal(x.GetType().Name, y.GetType().Name));
            }
            else
            {
                return(xIsEntityManager ? -1 : 1);
            }
        }
コード例 #9
0
        private TreeViewItem CreateManagerItem(int id, ScriptBehaviourManager manager, World world)
        {
            managersById.Add(id, manager);
            worldsById.Add(id, world);
            var recorder = Recorder.Get($"{world.Name} {manager.GetType().FullName}");

            recordersByManager.Add(manager, new AverageRecorder(recorder));
            recorder.enabled = true;
            var name = getWorldSelection() == null ? $"{manager.GetType().Name} ({world.Name})" : manager.GetType().Name;

            return(new TreeViewItem {
                id = id, displayName = name
            });
        }
コード例 #10
0
ファイル: EntityDebugger.cs プロジェクト: vesper666/UnityECS
 public void SetSystemSelection(ScriptBehaviourManager manager, bool updateList, bool propagate)
 {
     systemSelection = manager;
     if (updateList)
     {
         systemListView.SetSystemSelection(manager);
     }
     CreateComponentGroupListView();
     if (propagate)
     {
         if (systemSelection is ComponentSystemBase)
         {
             componentGroupListView.TouchSelection();
         }
         else
         {
             ApplyAllEntitiesFilter();
         }
     }
 }
コード例 #11
0
        private HideNode CreateManagerItem(int id, ScriptBehaviourManager manager, World world)
        {
            managersById.Add(id, manager);
            worldsById.Add(id, world);
            var recorder = Recorder.Get($"{world.Name} {manager.GetType().FullName}");

            recordersByManager.Add(manager, new AverageRecorder(recorder));
            recorder.enabled = true;
            var name = getWorldSelection() == null ? $"{manager.GetType().Name} ({world.Name})" : manager.GetType().Name;
            var item = new TreeViewItem {
                id = id, displayName = name
            };

            var componentSystemBase = manager as ComponentSystemBase;
            var hideNode            = new HideNode(item)
            {
                Active = componentSystemBase == null
            };

            hideNodesById.Add(id, hideNode);
            return(hideNode);
        }
コード例 #12
0
 public void Add(ScriptBehaviourManager system)
 {
     systems.Add(system);
 }
コード例 #13
0
 private static void SetSystemSelection(ScriptBehaviourManager system, World world)
 {
 }
コード例 #14
0
ファイル: ListViewTests.cs プロジェクト: vesper666/UnityECS
 public static void SetSystemSelection(ScriptBehaviourManager system, bool updateList, bool propagate)
 {
 }
コード例 #15
0
 public SystemElement(World world, ScriptBehaviourManager manager, int id = 0, int depth = 1) : base(id, depth, manager.GetType().Name)
 {
     Manager    = manager as ComponentSystemBase;
     this.world = world;
 }