using System; using Leopotam.Ecs; using UnityEngine; using static Asset_Cleaner.AufCtx; namespace Asset_Cleaner { class SysProcessSearch : IEcsRunSystem { EcsFilter _from = null; EcsFilter SceneResultRows = null; EcsFilter ScenePaths = null; EcsFilter.Exclude SearchArgMain = null; EcsFilter FileResultRows = null; public void Run() { if (_from.IsEmpty()) return; SearchArgMain.AllDestroy(); ScenePaths.AllDestroy(); FileResultRows.AllDestroy(); SceneResultRows.AllDestroy(); var wd = Globals.Value; if (wd.Window) wd.Window.Repaint(); foreach (var i in _from.Out(out var get1, out _)) { var t1 = get1[i]; if (!t1.Target) continue; wd.FindFrom = t1.From; try { switch (t1.From) { case FindModeEnum.Scene: World.NewEntityWith(out SearchArg st); SearchUtils.Init(st, t1.Target, t1.Scene); SearchUtils.InScene(st, t1.Scene); break; case FindModeEnum.File: World.NewEntityWith(out SearchArg arg); SearchUtils.Init(arg, t1.Target); SearchUtils.FilesThatReference(arg); SearchUtils.ScenesThatContain(t1.Target); break; } } catch (Exception e) { Debug.LogException(e); } } _from.AllUnset(); } } }