public ModernMCP(string mc_version, string series, string tsrg_file, string[] csv_zips)
    {
        ClientVersion = mc_version;
        Series        = series;

        using (var reader = File.OpenText(tsrg_file))
            MappingsIO.ParseTsrg(LocalMappings.Client, reader);
        using (var reader = File.OpenText(tsrg_file))
            MappingsIO.ParseTsrg(LocalMappings.Server, reader);
        foreach (var csv in csv_zips)
        {
            using var zip = ZipFile.OpenRead(csv);
            StreamReader?read(string path)
            {
                var entry = zip.GetEntry(path);

                if (entry == null)
                {
                    return(null);
                }
                return(new(entry.Open()));
            }

            ParseCSVs(
                classes: read("classes.csv"),
                methods: read("methods.csv"),
                fields: read("fields.csv")
                );
        }
    }
Ejemplo n.º 2
0
    private Sided <Mappings> ParseTsrgs(string version)
    {
        var sided = new Sided <Mappings>();

        using var client_file = File.OpenText(Path.Combine(Folder, version, "client.tsrg"));
        using var server_file = File.OpenText(Path.Combine(Folder, version, "server.tsrg"));
        MappingsIO.ParseTsrg(sided.Client, client_file);
        MappingsIO.ParseTsrg(sided.Server, server_file);
        return(sided);
    }
Ejemplo n.º 3
0
    public RetroMCP(string folder, string matched_version)
    {
        Folder = folder;
        var mcp = ParseTsrgs(matched_version);

        MatchedMCP            = new(mcp.Client.Reversed(), mcp.Server.Reversed());
        MatchedMojang         = new();
        using var client_file = File.OpenText(Path.Combine(Folder, "matched_client.txt"));
        using var server_file = File.OpenText(Path.Combine(Folder, "matched_server.txt"));
        MappingsIO.ParseProguard(MatchedMojang.Client, client_file);
        MappingsIO.ParseProguard(MatchedMojang.Server, server_file);
        FoundRenames  = new((YamlMappingNode)YamlHelper.ParseFile(Path.Combine(folder, "mappings_found.yaml")));
        CustomRenames = new((YamlMappingNode)YamlHelper.ParseFile(Path.Combine(folder, "mappings_custom.yaml")));
        var found_equivs  = Equivalencies.Parse((YamlMappingNode)YamlHelper.ParseFile(Path.Combine(folder, "equivalencies_custom.yaml")));
        var custom_equivs = Equivalencies.Parse((YamlMappingNode)YamlHelper.ParseFile(Path.Combine(folder, "equivalencies_custom.yaml")));
        var client_equivs = new Equivalencies(found_equivs.Client, custom_equivs.Client);
        var server_equivs = new Equivalencies(found_equivs.Server, custom_equivs.Server);

        MergedEquivalencies = new(client_equivs, server_equivs);
    }