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(); } } }
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); } }
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; }
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); }
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() }); }
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>()); }
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); } }
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 }); }
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(); } } }
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); }
public void Add(ScriptBehaviourManager system) { systems.Add(system); }
private static void SetSystemSelection(ScriptBehaviourManager system, World world) { }
public static void SetSystemSelection(ScriptBehaviourManager system, bool updateList, bool propagate) { }
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; }