Beispiel #1
0
    public static void LocalizeAsset(RobloxFileType type, BackgroundWorker worker, string path, string itemname, string meshname)
    {
        try
        {
            switch (type)
            {
            case RobloxFileType.RBXL:
                //backup the original copy
                if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
                {
                    try
                    {
                        worker.ReportProgress(0);
                        File.Copy(path, path.Replace(".rbxl", " BAK.rbxl"));
                    }
                    catch (Exception)
                    {
                        worker.ReportProgress(100);
                    }
                }
                else
                {
                    worker.ReportProgress(0);
                }
                //meshes
                worker.ReportProgress(5);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Fonts);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Fonts, 1, 1, 1, 1);
                //skybox
                worker.ReportProgress(10);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 1, 0, 0, 0);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 2, 0, 0, 0);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 3, 0, 0, 0);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 4, 0, 0, 0);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 5, 0, 0, 0);
                //decal
                worker.ReportProgress(15);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Decal);
                //texture
                worker.ReportProgress(20);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Texture);
                //tools and hopperbin
                worker.ReportProgress(25);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Tool);
                worker.ReportProgress(30);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.HopperBin);
                //sound
                worker.ReportProgress(40);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sound);
                worker.ReportProgress(50);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ImageLabel);
                //clothing
                worker.ReportProgress(60);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Shirt);
                worker.ReportProgress(65);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ShirtGraphic);
                worker.ReportProgress(70);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Pants);
                //scripts
                worker.ReportProgress(80);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Script);
                worker.ReportProgress(90);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.LocalScript);
                //localize any scripts that are not handled

                /*
                 * worker.ReportProgress(95);
                 * RobloxXML.DownloadScriptFromNodes(path, "Script");
                 * worker.ReportProgress(97);
                 * RobloxXML.DownloadScriptFromNodes(path, "LocalScript");*/
                worker.ReportProgress(100);
                break;

            case RobloxFileType.RBXM:
                if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
                {
                    try
                    {
                        worker.ReportProgress(0);
                        File.Copy(path, path.Replace(".rbxm", " BAK.rbxm"));
                    }
                    catch (Exception)
                    {
                        worker.ReportProgress(100);
                    }
                }
                else
                {
                    worker.ReportProgress(0);
                }
                //meshes
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Fonts);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Fonts, 1, 1, 1, 1);
                //skybox
                worker.ReportProgress(10);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 1, 0, 0, 0);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 2, 0, 0, 0);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 3, 0, 0, 0);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 4, 0, 0, 0);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 5, 0, 0, 0);
                //decal
                worker.ReportProgress(15);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Decal);
                //texture
                worker.ReportProgress(20);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Texture);
                //tools and hopperbin
                worker.ReportProgress(25);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Tool);
                worker.ReportProgress(30);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.HopperBin);
                //sound
                worker.ReportProgress(40);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Sound);
                worker.ReportProgress(50);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ImageLabel);
                //clothing
                worker.ReportProgress(60);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Shirt);
                worker.ReportProgress(65);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ShirtGraphic);
                worker.ReportProgress(70);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Pants);
                //scripts
                worker.ReportProgress(80);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.Script);
                worker.ReportProgress(90);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.LocalScript);
                //localize any scripts that are not handled

                /*
                 * worker.ReportProgress(95);
                 * RobloxXML.DownloadScriptFromNodes(path, "Script");
                 * worker.ReportProgress(97);
                 * RobloxXML.DownloadScriptFromNodes(path, "LocalScript");*/
                worker.ReportProgress(100);
                break;

            case RobloxFileType.Hat:
                if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
                {
                    try
                    {
                        worker.ReportProgress(0);
                        File.Copy(path, path.Replace(".rbxm", " BAK.rbxm"));
                    }
                    catch (Exception)
                    {
                        worker.ReportProgress(100);
                    }
                }
                else
                {
                    worker.ReportProgress(0);
                }
                //meshes
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatFonts, itemname, meshname);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatFonts, 1, 1, 1, 1, itemname);
                worker.ReportProgress(25);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatSound);
                //scripts
                worker.ReportProgress(50);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatScript);
                worker.ReportProgress(75);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatLocalScript);
                worker.ReportProgress(100);
                break;

            case RobloxFileType.Head:
                if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
                {
                    try
                    {
                        worker.ReportProgress(0);
                        File.Copy(path, path.Replace(".rbxm", " BAK.rbxm"));
                    }
                    catch (Exception)
                    {
                        worker.ReportProgress(100);
                    }
                }
                else
                {
                    worker.ReportProgress(0);
                }
                //meshes
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHeadFonts, itemname);
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHeadFonts, 1, 1, 1, 1, itemname);
                worker.ReportProgress(100);
                break;

            case RobloxFileType.Face:
                if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
                {
                    try
                    {
                        worker.ReportProgress(0);
                        File.Copy(path, path.Replace(".rbxm", " BAK.rbxm"));
                    }
                    catch (Exception)
                    {
                        worker.ReportProgress(100);
                    }
                }
                else
                {
                    worker.ReportProgress(0);
                }
                //decal
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemFaceTexture, itemname);
                worker.ReportProgress(100);
                break;

            case RobloxFileType.TShirt:
                if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
                {
                    try
                    {
                        worker.ReportProgress(0);
                        File.Copy(path, path.Replace(".rbxm", " BAK.rbxm"));
                    }
                    catch (Exception)
                    {
                        worker.ReportProgress(100);
                    }
                }
                else
                {
                    worker.ReportProgress(0);
                }
                //texture
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemTShirtTexture, itemname);
                worker.ReportProgress(100);
                break;

            case RobloxFileType.Shirt:
                if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
                {
                    try
                    {
                        worker.ReportProgress(0);
                        File.Copy(path, path.Replace(".rbxm", " BAK.rbxm"));
                    }
                    catch (Exception)
                    {
                        worker.ReportProgress(100);
                    }
                }
                else
                {
                    worker.ReportProgress(0);
                }
                //texture
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemShirtTexture, itemname);
                worker.ReportProgress(100);
                break;

            case RobloxFileType.Pants:
                if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
                {
                    try
                    {
                        worker.ReportProgress(0);
                        File.Copy(path, path.Replace(".rbxm", " BAK.rbxm"));
                    }
                    catch (Exception)
                    {
                        worker.ReportProgress(100);
                    }
                }
                else
                {
                    worker.ReportProgress(0);
                }
                //texture
                RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemPantsTexture, itemname);
                worker.ReportProgress(100);
                break;

            /*case RobloxFileType.Script:
             *  if (GlobalVars.UserConfiguration.AssetLocalizerSaveBackups)
             *  {
             *      try
             *      {
             *          worker.ReportProgress(0);
             *          File.Copy(path, path.Replace(".lua", " BAK.lua"));
             *      }
             *      catch (Exception)
             *      {
             *          worker.ReportProgress(100);
             *      }
             *  }
             *  else
             *  {
             *      worker.ReportProgress(0);
             *  }
             *
             *  RobloxXML.DownloadFromScript(path);
             *  worker.ReportProgress(100);
             *  break;*/
            default:
                worker.ReportProgress(100);
                break;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error: Unable to localize the asset. " + ex.Message, "Novetus Asset Localizer", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
        private void CustomGraphicsOptions_Load(object sender, EventArgs e)
        {
            ClientName = GlobalVars.UserConfiguration.SelectedClient;
            info       = GlobalFuncs.GetClientInfoValues(ClientName);

            string terms = "_" + ClientName;

            string[] dirs = Directory.GetFiles(GlobalPaths.ConfigDirClients);

            foreach (string dir in dirs)
            {
                if (dir.Contains(terms) && !dir.Contains("_default"))
                {
                    string    oldfile   = "";
                    string    fixedfile = "";
                    XDocument doc       = null;

                    try
                    {
                        oldfile   = File.ReadAllText(dir);
                        fixedfile = RobloxXML.RemoveInvalidXmlChars(RobloxXML.ReplaceHexadecimalSymbols(oldfile));
                        doc       = XDocument.Parse(fixedfile);
                    }
                    catch (Exception)
                    {
                        return;
                    }

                    //read a few handpicked things to not take up memory

                    try
                    {
                        MeshDetail = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "maxMeshDetail", XMLTypes.Float));
                        GraphicsMeshQuality.Value = MeshDetail;
                    }
                    catch (Exception)
                    {
                        GraphicsMeshQuality.Enabled = false;
                    }

                    try
                    {
                        ShadingQuality = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "maxShadingQuality", XMLTypes.Float));
                        GraphicsShadingQuality.Value = ShadingQuality;
                    }
                    catch (Exception)
                    {
                        GraphicsShadingQuality.Enabled = false;
                    }

                    try
                    {
                        MaterialQuality = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "WoodQuality", XMLTypes.Token));
                        GraphicsMaterialQuality.SelectedIndex = MaterialQuality;
                    }
                    catch (Exception)
                    {
                        try
                        {
                            MaterialQuality = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "TrussDetail", XMLTypes.Token));
                            GraphicsMaterialQuality.SelectedIndex = MaterialQuality;
                        }
                        catch (Exception)
                        {
                            GraphicsMaterialQuality.Enabled = false;
                        }
                    }

                    try
                    {
                        AA = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "Antialiasing", XMLTypes.Token));
                        GraphicsAntiAliasing.SelectedIndex = AA;
                    }
                    catch (Exception)
                    {
                        GraphicsAntiAliasing.Enabled = false;
                    }

                    try
                    {
                        AASamples = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "AASamples", XMLTypes.Token));

                        switch (AASamples)
                        {
                        case 4:
                            GraphicsAASamples.SelectedIndex = 1;
                            break;

                        case 8:
                            GraphicsAASamples.SelectedIndex = 2;
                            break;

                        default:
                            GraphicsAASamples.SelectedIndex = 0;
                            break;
                        }
                    }
                    catch (Exception)
                    {
                        GraphicsAASamples.Enabled = false;
                    }

                    try
                    {
                        Bevels = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "Bevels", XMLTypes.Token));
                        GraphicsBevels.SelectedIndex = Bevels;
                    }
                    catch (Exception)
                    {
                        GraphicsBevels.Enabled = false;
                    }

                    try
                    {
                        Shadows_2008 = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "Shadow", XMLTypes.Token));
                        GraphicsShadows2008.SelectedIndex = Shadows_2008;
                    }
                    catch (Exception)
                    {
                        GraphicsShadows2008.Enabled = false;
                    }

                    try
                    {
                        Shadows_2007 = Convert.ToBoolean(RobloxXML.GetRenderSettings(doc, "Shadows", XMLTypes.Bool));

                        switch (Shadows_2007)
                        {
                        case false:
                            GraphicsShadows2007.SelectedIndex = 1;
                            break;

                        default:
                            GraphicsShadows2007.SelectedIndex = 0;
                            break;
                        }
                    }
                    catch (Exception)
                    {
                        GraphicsShadows2007.Enabled = false;
                    }

                    try
                    {
                        QualityLevel        = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "QualityLevel", XMLTypes.Token));
                        GraphicsLevel.Value = QualityLevel;
                    }
                    catch (Exception)
                    {
                        GraphicsLevel.Enabled = false;
                    }

                    doc = null;
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            }
        }
Beispiel #3
0
        private void CustomGraphicsOptions_Load(object sender, EventArgs e)
        {
            ClientName = GlobalVars.UserConfiguration.SelectedClient;
            info       = GlobalFuncs.GetClientInfoValues(ClientName);

            string terms       = "_" + ClientName;
            bool   hasFoundDir = false;

            string[] dirs = Directory.GetFiles(GlobalPaths.ConfigDirClients);

            foreach (string dir in dirs)
            {
                if (dir.Contains(terms) && !dir.Contains("_default"))
                {
                    string    oldfile   = "";
                    string    fixedfile = "";
                    XDocument doc       = null;

                    try
                    {
                        oldfile   = File.ReadAllText(dir);
                        fixedfile = RobloxXML.RemoveInvalidXmlChars(RobloxXML.ReplaceHexadecimalSymbols(oldfile));
                        doc       = XDocument.Parse(fixedfile);
                    }
                    catch (Exception)
                    {
                        return;
                    }

                    //read a few handpicked things to not take up memory

                    try
                    {
                        MeshDetail = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "maxMeshDetail", XMLTypes.Float));
                        GraphicsMeshQuality.Value = MeshDetail;
                    }
                    catch (Exception)
                    {
                        GraphicsMeshQuality.Enabled = false;
                    }

                    try
                    {
                        ShadingQuality = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "maxShadingQuality", XMLTypes.Float));
                        GraphicsShadingQuality.Value = ShadingQuality;
                    }
                    catch (Exception)
                    {
                        GraphicsShadingQuality.Enabled = false;
                    }

                    try
                    {
                        MaterialQuality = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "WoodQuality", XMLTypes.Token));
                        GraphicsMaterialQuality.SelectedIndex = MaterialQuality;
                    }
                    catch (Exception)
                    {
                        try
                        {
                            MaterialQuality = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "TrussDetail", XMLTypes.Token));
                            GraphicsMaterialQuality.SelectedIndex = MaterialQuality;
                        }
                        catch (Exception)
                        {
                            GraphicsMaterialQuality.Enabled = false;
                        }
                    }

                    try
                    {
                        AA = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "Antialiasing", XMLTypes.Token));
                        GraphicsAntiAliasing.SelectedIndex = AA;
                    }
                    catch (Exception)
                    {
                        GraphicsAntiAliasing.Enabled = false;
                    }

                    try
                    {
                        AASamples = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "AASamples", XMLTypes.Token));

                        switch (AASamples)
                        {
                        case 4:
                            GraphicsAASamples.SelectedIndex = 1;
                            break;

                        case 8:
                            GraphicsAASamples.SelectedIndex = 2;
                            break;

                        default:
                            GraphicsAASamples.SelectedIndex = 0;
                            break;
                        }
                    }
                    catch (Exception)
                    {
                        GraphicsAASamples.Enabled = false;
                    }

                    try
                    {
                        Bevels = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "Bevels", XMLTypes.Token));
                        GraphicsBevels.SelectedIndex = Bevels;
                    }
                    catch (Exception)
                    {
                        GraphicsBevels.Enabled = false;
                    }

                    try
                    {
                        Shadows_2008 = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "Shadow", XMLTypes.Token));
                        GraphicsShadows2008.SelectedIndex = Shadows_2008;
                    }
                    catch (Exception)
                    {
                        GraphicsShadows2008.Enabled = false;
                    }

                    try
                    {
                        Shadows_2007 = Convert.ToBoolean(RobloxXML.GetRenderSettings(doc, "Shadows", XMLTypes.Bool));
                    }
                    catch (Exception)
                    {
                        // try doing march 2007.
                        try
                        {
                            Shadows_2007 = Convert.ToBoolean(RobloxXML.GetRenderSettings(doc, "shadows", XMLTypes.Bool));
                        }
                        catch (Exception)
                        {
                            GraphicsShadows2007.Enabled = false;
                        }
                    }

                    if (GraphicsShadows2007.Enabled)
                    {
                        switch (Shadows_2007)
                        {
                        case false:
                            GraphicsShadows2007.SelectedIndex = 1;
                            break;

                        default:
                            GraphicsShadows2007.SelectedIndex = 0;
                            break;
                        }
                    }

                    try
                    {
                        bool checkSkin = RobloxXML.IsRenderSettingStringValid(doc, "_skinFile", XMLTypes.String);
                        if (checkSkin)
                        {
                            Style_2007     = RobloxXML.GetRenderSettings(doc, "_skinFile", XMLTypes.String).Replace(@"Styles\", "");
                            Style2007.Text = Style_2007;
                        }
                        else
                        {
                            Style2007.Enabled             = false;
                            Style2007FolderFinder.Enabled = false;
                        }
                    }
                    catch (Exception)
                    {
                        Style2007.Enabled             = false;
                        Style2007FolderFinder.Enabled = false;
                    }

                    try
                    {
                        QualityLevel        = Convert.ToInt32(RobloxXML.GetRenderSettings(doc, "QualityLevel", XMLTypes.Token));
                        GraphicsLevel.Value = QualityLevel;
                    }
                    catch (Exception)
                    {
                        GraphicsLevel.Enabled = false;
                    }

                    doc = null;
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    hasFoundDir = true;
                }
            }

            if (!hasFoundDir)
            {
                MessageBox.Show("This client does not support setting adjustment through the Novetus Launcher.\nTry opening this client in ROBLOX Studio and adjust it through the settings in Tools -> Settings.");
                Close();
            }
        }