public void AddOpenedEntityGroup(UTinyEntityGroup.Reference entityGroup) { if (!s_OpenedEntityGroupsProperty.Contains(this, entityGroup)) { s_OpenedEntityGroupsProperty.Add(this, entityGroup); } }
public void RemoveEntityGroup(UTinyEntityGroup.Reference entityGroupRef) { if (m_EntityGroups.Remove(entityGroupRef)) { Invalidate(); } }
public void AddEntityGroup(UTinyEntityGroup.Reference entityGroupRef) { if (!m_EntityGroups.Contains(entityGroupRef)) { m_EntityGroups.Add(entityGroupRef); Invalidate(); } }
private static void RemoveFromTrees(UTinyEntityGroup.Reference entityGroupRef) { foreach (var window in s_ActiveWindows) { window.m_TreeView.RemoveEntityGroup(entityGroupRef); window.Repaint(); } }
private static void AddToTrees(UTinyEntityGroup.Reference entityGroupRef) { EntityGroupManager?.RecreateEntityGroupGraph(entityGroupRef); foreach (var window in s_ActiveWindows) { window.m_TreeView.AddEntityGroup(entityGroupRef); window.Repaint(); } }
public void AddEntityGroupReference(UTinyEntityGroup.Reference entityGroup) { s_EntityGroupsProperty.Add(this, entityGroup); if (StartupEntityGroup.Equals(UTinyEntityGroup.Reference.None)) { StartupEntityGroup = entityGroup; } }
private static void AddToTrees(UTinyEntityGroup.Reference entityGroupRef) { foreach (var window in s_ActiveWindows) { window.m_TreeView.AddEntityGroup(entityGroupRef); window.Repaint(); } InvalidateSceneGraph(); }
public void RecreateEntityGroupGraph(UTinyEntityGroup.Reference entityGroupRef) { var entityGroup = entityGroupRef.Dereference(Registry); if (null == entityGroup) { return; } m_EntityGroupToGraph[entityGroupRef] = EntityGroupGraph.CreateFromEntityGroup(entityGroup); }
public void SetActiveEntityGroup(UTinyEntityGroup.Reference entityGroupRef, bool rebuildWorkspace = true) { if (m_ActiveEntityGroup.Equals(entityGroupRef)) { return; } m_ActiveEntityGroup = entityGroupRef; if (rebuildWorkspace) { RebuildWorkspace(); } }
public void RemoveEntityGroupReference(UTinyEntityGroup.Reference entityGroup) { if (s_EntityGroupsProperty.Contains(this, entityGroup)) { s_EntityGroupsProperty.Remove(this, entityGroup); } if (StartupEntityGroup.Equals(entityGroup)) { StartupEntityGroup = m_EntityGroups.FirstOrDefault(); } }
public void MoveUp(UTinyEntityGroup.Reference entityGroupRef) { var index = LoadedEntityGroups.IndexOf(entityGroupRef); if (index < 0 || index == 0) { return; } m_LoadedEntityGroups.Swap(index, index - 1); RebuildWorkspace(); OnEntityGroupsReordered?.Invoke(LoadedEntityGroups); }
public UTinyEntity.Reference CreateEntity(UTinyEntityGroup.Reference entityGroupRef, bool addTransform) { var graph = UTinyHierarchyWindow.GetSceneGraph(entityGroupRef); if (null == graph) { return(UTinyEntity.Reference.None); } var node = addTransform ? graph.Create() : graph.CreateStatic(); var ids = AsInstanceIds(node); Selection.instanceIDs = ids; IdsToExpand = ids; UTinyHierarchyWindow.InvalidateSceneGraph(); return(node.Entity); }
public UTinyEntity.Reference CreateEntity(UTinyEntityGroup.Reference entityGroupRef, bool addTransform) { var graph = EntityGroupManager.GetSceneGraph(entityGroupRef); if (null == graph) { return(UTinyEntity.Reference.None); } var node = addTransform ? graph.Create() : graph.CreateStatic(); var ids = AsInstanceIds(node); Selection.instanceIDs = ids; IdsToExpand = ids; UTinyEventDispatcher <ChangeSource> .Dispatch(ChangeSource.SceneGraph); return(node.Entity); }
private void UnloadEntityGroup(UTinyEntityGroup.Reference entityGroupRef, bool rebuildWorkspace = true) { if (!m_LoadedEntityGroups.Contains(entityGroupRef)) { Debug.Log($"{UTinyConstants.ApplicationName}: Cannot unload the group named '{entityGroupRef.Name}'. It is not loaded"); return; } if (m_EntityGroupToGraph.ContainsKey(entityGroupRef)) { OnWillUnloadEntityGroup?.Invoke(entityGroupRef); m_EntityGroupToGraph[entityGroupRef].Unlink(); m_EntityGroupToGraph.Remove(entityGroupRef); } m_LoadedEntityGroups.Remove(entityGroupRef); var entityGroup = entityGroupRef.Dereference(Registry); if (null != entityGroup) { Undo.FlushChanges(entityGroup); Undo.FlushChanges(entityGroup.Entities.Deref(entityGroup.Registry)); } if (m_LoadedEntityGroups.Count == 0) { SetActiveEntityGroup(UTinyEntityGroup.Reference.None, rebuildWorkspace); } else { if (entityGroupRef.Id == ActiveEntityGroup.Id) { SetActiveEntityGroup(m_LoadedEntityGroups[0]); } } if (rebuildWorkspace) { RebuildWorkspace(); } OnEntityGroupUnloaded?.Invoke(entityGroupRef); }
private void LoadEntityGroup(UTinyEntityGroup.Reference entityGroupRef, int index, bool rebuildWorkspace) { var entityGroup = entityGroupRef.Dereference(Registry); if (null == entityGroup) { Debug.Log($"{UTinyConstants.ApplicationName}: Could not load group named '{entityGroupRef.Name}' as the reference could not be resolved."); return; } if (m_LoadedEntityGroups.Contains(entityGroupRef)) { Debug.Log($"{UTinyConstants.ApplicationName}: Cannot load the group named '{entityGroupRef.Name}'. It is already loaded"); return; } if (HierarchyHelper.GetOrGenerateScratchPad(m_Context)) { OnWillLoadEntityGroup?.Invoke(entityGroupRef); if (index >= 0 && index < m_LoadedEntityGroups.Count) { m_LoadedEntityGroups.Insert(index, entityGroupRef); } else { m_LoadedEntityGroups.Add(entityGroupRef); } m_EntityGroupToGraph[entityGroupRef] = EntityGroupGraph.CreateFromEntityGroup(entityGroup); } if (rebuildWorkspace) { RebuildWorkspace(); } SetActiveEntityGroup(entityGroupRef, rebuildWorkspace); OnEntityGroupLoaded?.Invoke(entityGroupRef); }
public void UnloadAllEntityGroupsExcept(UTinyEntityGroup.Reference entityGroupRef) { var entityGroupList = Pooling.ListPool <UTinyEntityGroup.Reference> .Get(); try { foreach (var entityGroup in LoadedEntityGroups) { if (!entityGroup.Equals(entityGroupRef)) { entityGroupList.Add(entityGroup); } } foreach (var entityGroup in entityGroupList) { UnloadEntityGroup(entityGroup); } } finally { Pooling.ListPool <UTinyEntityGroup.Reference> .Release(entityGroupList); } }
public static EntityGroupGraph GetSceneGraph(UTinyEntityGroup.Reference entityGroupRef) { return(EntityGroupManager?.GetSceneGraph(entityGroupRef)); }
public void RemoveOpenedEntityGroup(UTinyEntityGroup.Reference entityGroup) { s_OpenedEntityGroupsProperty.Remove(this, entityGroup); }
public static IEnumerable <UTinyModule> GetModules(IRegistry registry, UTinyEntityGroup.Reference reference) { var modules = registry.FindAllByType <UTinyModule>(); return(modules.Where(module => module.EntityGroups.Contains(reference))); }
private static void SetEntityGroupActive(UTinyEntityGroup.Reference entityGroupRef) { EntityGroupManager.SetActiveEntityGroup(entityGroupRef, true); }
public UTinyEntity.Reference CreateEntity(UTinyEntityGroup.Reference entityGroupRef) { return(CreateEntity(entityGroupRef, true)); }
public static void ShowEntityGroupContextMenu(this HierarchyTree tree, UTinyEntityGroup.Reference entityGroupRef) { if (UTinyEntityGroup.Reference.None.Id == entityGroupRef.Id) { entityGroupRef = EntityGroupManager.ActiveEntityGroup; } var menu = new GenericMenu(); if (IsEntityGroupActive(entityGroupRef)) { menu.AddDisabledItem(new GUIContent("Set Active EntityGroup")); } else { menu.AddItem(new GUIContent("Set Active EntityGroup"), false, () => { SetEntityGroupActive(entityGroupRef); }); } if (EntityGroupManager.LoadedEntityGroups.IndexOf(entityGroupRef) > 0) { menu.AddItem(new GUIContent("Move EntityGroup Up"), false, () => { EntityGroupManager.MoveUp(entityGroupRef); }); } else { menu.AddDisabledItem(new GUIContent("Move EntityGroup Up")); } if (EntityGroupManager.LoadedEntityGroups.IndexOf(entityGroupRef) < EntityGroupManager.LoadedEntityGroupCount - 1) { menu.AddItem(new GUIContent("Move EntityGroup Down"), false, () => { EntityGroupManager.MoveDown(entityGroupRef); }); } else { menu.AddDisabledItem(new GUIContent("Move EntityGroup Down")); } menu.AddSeparator(""); if (EntityGroupManager.LoadedEntityGroupCount == 1) { menu.AddDisabledItem(new GUIContent("Unload EntityGroup")); menu.AddDisabledItem(new GUIContent("Unload Other EntityGroups")); } else { menu.AddItem(new GUIContent("Unload EntityGroup"), false, () => { EntityGroupManager.UnloadEntityGroup(entityGroupRef); }); menu.AddItem(new GUIContent("Unload Other EntityGroups"), false, () => { EntityGroupManager.UnloadAllEntityGroupsExcept(entityGroupRef); }); } menu.AddItem(new GUIContent("New EntityGroup"), false, () => { var context = EditorContext; if (null == context) { return; } var registry = context.Registry; var project = context.Project; CreateNewEntityGroup(project.Module.Dereference(registry)); }); menu.AddSeparator(""); menu.AddItem(new GUIContent("Create Entity"), false, () => { tree.CreateEntity(entityGroupRef); }); menu.AddItem(new GUIContent("Create Static Entity"), false, () => { tree.CreateStaticEntity(entityGroupRef); }); menu.ShowAsContext(); }
public void LoadEntityGroup(UTinyEntityGroup.Reference entityGroupRef, int index = -1) { LoadEntityGroup(entityGroupRef, index, true); }
public void UnloadEntityGroup(UTinyEntityGroup.Reference entityGroupRef) { UnloadEntityGroup(entityGroupRef, true); }
public void LoadSingleEntityGroup(UTinyEntityGroup.Reference entityGroupRef) { LoadEntityGroup(entityGroupRef); UnloadAllEntityGroupsExcept(entityGroupRef); }
public UTinyEntity.Reference CreateStaticEntity(UTinyEntityGroup.Reference entityGroupRef) { return(CreateEntity(entityGroupRef, false)); }
private static void HandleEntityGroupWillUnload(UTinyEntityGroup.Reference entityGroupRef) { UnloadingEntityGroups.Add(entityGroupRef); }
private static bool IsEntityGroupActive(UTinyEntityGroup.Reference entityGroupRef) { return(EntityGroupManager.ActiveEntityGroup.Equals(entityGroupRef)); }
private static void HandleEntityGroupUnloaded(UTinyEntityGroup.Reference entityGroupRef) { UnloadingEntityGroups.Remove(entityGroupRef); }
public void SetActiveEntityGroup(UTinyEntityGroup.Reference entityGroupRef) { SetActiveEntityGroup(entityGroupRef, true); }