private VisualElement GetSystemSettingsElement()
        {
            var foldout = new Foldout
            {
                text = "Settings", value = false, contentContainer = { style = { marginLeft = 5 } }
            };


            if (GFSystemUtility.GetSystemsSettingsData(target as Setup))
            {
                LoadLocal();
            }
            else
            {
                LoadBase();
            }

            void LoadBase()
            {
                foldout.Clear();

                foldout.Add(new Button(LoadLocal)
                {
                    text = "Add local data"
                });

                var local = GFSystemUtility.GetSystemsSettingsData(target as Setup);

                if (local)
                {
                    GFSystemUtility.RemoveSystemsSettingsData(target as Setup);
                }
            }

            void LoadLocal()
            {
                foldout.Clear();
                var local = GFSystemUtility.GetSystemsSettingsData(target as Setup);

                if (!local)
                {
                    local = GFSystemUtility.AddSystemsSettingsData(target as Setup);
                }

                foldout.Add(new Button(LoadBase)
                {
                    text = "Remove local data"
                });

                var element = new InspectorElement(local);

                foldout.Add(element);
            }

            return(foldout);
        }
        protected override void OnInit()
        {
            _systemsTypes = GFSystemUtility.GetAllSystemTypes(SystemsUtility.SystemType.UpdateSystem);

            if (string.IsNullOrEmpty(target.name))
            {
                GFSystemUtility.AddDefaultSystemsToOrder(target as BaseGFSystemsOrder, SystemsUtility.SystemType.UpdateSystem);
            }
            else
            {
                SystemsUtility.CheckOrder(target as BaseGFSystemsOrder, _systemsTypes);
            }
        }
        private VisualElement GetBaseSystemsSettingsElement()
        {
            var foldout = new Foldout {
                text = "Settings", value = false, contentContainer = { style = { marginLeft = 5 } }
            };

            var o = GFSystemUtility.GetBaseSystemsSettingsData();

            if (o != null)
            {
                foldout.Add(new InspectorElement(o));
            }

            return(foldout);
        }
 protected override BaseSystemSettings GetSystemSettings(Type system, Type settings, ScriptableObject obj)
 {
     return(GFSystemUtility.AddSystemSetting(system, settings, _data));
 }
        protected override void OnInit()
        {
            _systemsTypes = GFSystemUtility.GetAllSystemTypes(SystemsUtility.SystemType.Both, true);

            GFSystemUtility.CheckSystemSettings(target as BaseGFSystemSettingsData, _systemsTypes);
        }