public RiotProject GetProjectUnsafe(RiotProjectType projectType) { lock (synchronization) { RiotProject result; if (!projectsByType.TryGetValue(projectType, out result)) { result = new RiotProjectLoader(solutionPath).LoadProject(projectType); } return(result); } }
public int Eval(string args) { string radsPath = args; while (string.IsNullOrWhiteSpace(radsPath)) { Console.Write("Enter RADS Path: "); radsPath = Console.ReadLine(); } Console.WriteLine($"Switching to RADS solution at path `{radsPath}`."); var riotProjectLoader = new RiotProjectLoader(streamFactory); var solution = DumperGlobals.Solution = new RiotSolutionLoader(riotProjectLoader).Load(radsPath); DumperGlobals.RootNode = DumperGlobals.CurrentNode = solution.ProjectsByType[RiotProjectType.GameClient].ReleaseManifest.Root; return(0); }
public void Initialize() { var projectLoader = new RiotProjectLoader(@"T:\Games\LeagueOfLegends\RADS"); var gameProject = projectLoader.LoadProject(RiotProjectType.GameClient); var gameArchiveIds = gameProject.ReleaseManifest.Files.Select(x => x.ArchiveId).Distinct().ToArray(); var archiveLoader = new RiotArchiveLoader(@"T:\Games\LeagueOfLegends\RADS"); foreach (var archiveId in gameArchiveIds) { IReadOnlyList<RiotArchive> archives; if (!archiveLoader.TryLoadArchives(archiveId, out archives)) { Console.WriteLine($"Failed to load archive: {archiveId}"); } else { archivesById.Add(archiveId, archives); } } }
public static void Main() { var ryu = new RyuFactory().Create(); ryu.Touch<ItzWartyCommonsRyuPackage>(); ryu.Touch<ItzWartyProxiesRyuPackage>(); ryu.Setup(); var application = Application.Current ?? new Application(); var projectLoader = new RiotProjectLoader(@"T:\Games\LeagueOfLegends\RADS"); var gameProject = projectLoader.LoadProject(RiotProjectType.GameClient); var nodeViewModelFactory = ryu.Get<NodeViewModelFactory>(); var viewModel = nodeViewModelFactory.CreateFromNode(gameProject.ReleaseManifest.Root); var window = new FileExplorer { DataContext = new[] { viewModel } }; application.Run(window); }
public void LoadProjectAndResolver(RiotProjectType projectType, out RiotProject riotProject, out Resolver resolver) { Tuple <WeakReference <RiotProject>, DateTime, WeakReference <Resolver> > tuple; if (cache.TryGetValue(projectType, out tuple) && tuple.Item1.TryGetTarget(out riotProject) && tuple.Item3.TryGetTarget(out resolver) && File.GetLastWriteTime(riotProject.ReleaseManifest.Path) == tuple.Item2) { logger?.Info("Successfully saved project and resolver from GCing: " + projectType); } else { logger?.Info("Constructing new project and resolver: " + projectType); var riotProjectLoader = new RiotProjectLoader(leagueConfiguration.RadsPath); riotProject = riotProjectLoader.LoadProject(projectType); resolver = new Resolver(riotProject.ReleaseManifest.Root, new ResolverConfigurationImpl(systemState)); var manifestLastModified = File.GetLastWriteTime(riotProject.ReleaseManifest.Path); cache[projectType] = new Tuple <WeakReference <RiotProject>, DateTime, WeakReference <Resolver> >(new WeakReference <RiotProject>(riotProject), manifestLastModified, new WeakReference <Resolver>(resolver)); } }
public int Eval(string args) { string radsPath = args; while (string.IsNullOrWhiteSpace(radsPath)) { Console.Write("Enter RADS Path: "); radsPath = Console.ReadLine(); } Console.WriteLine($"Switching to RADS solution at path `{radsPath}`."); var riotProjectLoader = new RiotProjectLoader(streamFactory); var solution = DumperGlobals.Solution = new RiotSolutionLoader(riotProjectLoader).Load(radsPath); DumperGlobals.RootNode = DumperGlobals.CurrentNode = solution.ProjectsByType[RiotProjectType.GameClient].ReleaseManifest.Root; return 0; }
public RiotProject GetProjectUnsafe(RiotProjectType projectType) { lock (synchronization) { RiotProject result; if (!projectsByType.TryGetValue(projectType, out result)) { result = new RiotProjectLoader(solutionPath).LoadProject(projectType); } return result; } }