public static TweakerOptions GetDefaultWithAdditionalFlags(TweakerOptionFlags flags) { TweakerOptions @default = GetDefault(); @default.Flags |= flags; return(@default); }
private void Awake() { global::Tweaker.Core.LogManager.Set(new LogManager()); logger = global::Tweaker.Core.LogManager.GetCurrentClassLogger(); logger.Info("Logger initialized"); tweaker = new Tweaker(); Scanner scanner = new Scanner(); ScanOptions scanOptions = new ScanOptions(); scanOptions.Assemblies.ScannableRefs = new Assembly[1] { typeof(TweakerConsoleTestbed).Assembly }; TweakerOptions tweakerOptions = new TweakerOptions(); tweakerOptions.Flags = TweakerOptionFlags.ScanForInvokables | TweakerOptionFlags.ScanForTweakables | TweakerOptionFlags.ScanForWatchables | TweakerOptionFlags.DoNotAutoScan | TweakerOptionFlags.IncludeTests; tweaker.Init(tweakerOptions, scanner); TweakerSerializer serializer = new TweakerSerializer(tweaker.Scanner); tweaker.Scanner.Scan(scanOptions); console = Object.Instantiate(ConsolePrefab); logger.Info("console instatiated: " + console); console.GetComponent <RectTransform>().SetParent(GetComponent <RectTransform>(), worldPositionStays: false); logger.Info("console parented to testbed canvas"); console.Init(tweaker, serializer); }
public static TweakerOptions GetDefault() { TweakerOptions tweakerOptions = new TweakerOptions(); tweakerOptions.Flags = GetDefaultFlags(); return(tweakerOptions); }
private IEnumerator Start() { IScanner scanner = new Scanner(); tweaker = new Tweaker(); TweakerOptions options = TweakerOptions.GetDefaultWithAdditionalFlags(TweakerOptionFlags.IncludeTests); tweaker.Init(options, scanner); AutoTweakable.Manager = tweaker.Tweakables; new TestClass(disposeTweakable: false); ITweakable tweakable = tweaker.Tweakables.GetTweakable(new SearchOptions("TestClass.AutoInt#")); IntegrationTest.Assert(tweakable != null); uint counter = 0u; while (tweaker.Tweakables.GetTweakable(new SearchOptions("TestClass.AutoInt#")) != null) { GC.Collect(); counter++; if (counter > 1000) { IntegrationTest.Fail("Failed to finalize AutoTweakable after " + counter + " frames."); yield break; } yield return(null); } IntegrationTest.Pass(); }
public BaseTweakerManager(IScanner scanner, TweakerOptions options) { objects = new TweakerDictionary <T>(); this.options = options; this.scanner = scanner; if (this.scanner != null) { this.scanner.GetResultProvider <T>().ResultProvided += OnObjectFound; } }
public override IEnumerator PerformFirstPass() { if (!enableTweaker.Value || Service.Get <ContentSchedulerService>().IsBeforeScheduleEventDates(TweakerAvailableDate)) { yield break; } LogManager.Set(new TweakerLogManager()); tweaker = new global::Tweaker.Tweaker(); scanner = new Scanner(); ScanOptions scanOptions = new ScanOptions { Assemblies = { NameRegex = string.Join("|", ClientInfo.Instance.GameAssemblyNames) } }; TweakerOptions tweakerOptions = new TweakerOptions { Flags = (TweakerOptionFlags.ScanForInvokables | TweakerOptionFlags.ScanForTweakables | TweakerOptionFlags.ScanForWatchables | TweakerOptionFlags.DoNotAutoScan) }; tweaker.Init(tweakerOptions, scanner); serializer = new TweakerSerializer(scanner); TweakablesClassList tweakablesClassList = Content.LoadImmediate <TweakablesClassList>("TweakableClassList"); for (int i = 0; i < tweakablesClassList.AssemblyList.Count; i++) { if (tweakablesClassList.AssemblyList[i] != null) { Type type = Type.GetType(tweakablesClassList.AssemblyList[i]); if (type != null) { tweaker.Scanner.ScanType(type); } } } Service.Set(TweakerController); TweakerController.Init(tweaker, serializer); TweakerController.gameObject.SetActive(value: false); yield return(new WaitForSeconds(1.5f)); }
public InvokableProcessor(TweakerOptions options) { this.options = options; }
public TweakableManager(IScanner scanner, TweakerOptions options) { baseManager = new BaseTweakerManager <ITweakable>(scanner, options); scanner?.AddProcessor(new TweakableProcessor(options)); }
public WatchableManager(IScanner scanner, TweakerOptions options) { }