public static void SetGraphicalUiElement(this ElementSave elementSave, GraphicalUiElement toReturn, SystemManagers systemManagers) { // We need to set categories and states first since those are used below; toReturn.SetStatesAndCategoriesRecursively(elementSave); toReturn.CreateGraphicalComponent(elementSave, systemManagers); toReturn.AddExposedVariablesRecursively(elementSave); toReturn.CreateChildrenRecursively(elementSave, systemManagers); toReturn.Tag = elementSave; toReturn.SetInitialState(); }
public static void SetStatesAndCategoriesRecursively(this GraphicalUiElement graphicalElement, ElementSave elementSave) { if (!string.IsNullOrEmpty(elementSave.BaseType)) { var baseElementSave = Gum.Managers.ObjectFinder.Self.GetElementSave(elementSave.BaseType); if (baseElementSave != null) { graphicalElement.SetStatesAndCategoriesRecursively(baseElementSave); } } // We need to set categories and states before calling SetGraphicalUiElement so that the states can be used foreach (var category in elementSave.Categories) { graphicalElement.AddCategory(category); } graphicalElement.AddStates(elementSave.States); }