public RiotProject GetProjectUnsafe(RiotProjectType projectType)
 {
     lock (synchronization) {
         RiotProject result;
         if (!projectsByType.TryGetValue(projectType, out result))
         {
             result = new RiotProjectLoader(solutionPath).LoadProject(projectType);
         }
         return(result);
     }
 }
Example #2
0
        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);
        }
Example #5
0
        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));
            }
        }
Example #6
0
 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;
      }
 }