예제 #1
0
    public static OpenFileDialog LoadROBLOXFileDialog(RobloxFileType type)
    {
        string typeFilter = "";

        switch (type)
        {
        case RobloxFileType.RBXL:
            typeFilter = "ROBLOX Level (*.rbxl)|*.rbxl|ROBLOX Level (*.rbxlx)|*.rbxlx";
            break;

        /*case RobloxFileType.Script:
         *  typeFilter = "Lua Script (*.lua)|*.lua";
         *  break;*/
        default:
            typeFilter = "ROBLOX Model (*.rbxm)|*.rbxm";
            break;
        }

        OpenFileDialog openFileDialog1 = new OpenFileDialog
        {
            Filter = typeFilter,
            Title  = "Open ROBLOX level or model",
        };

        return(openFileDialog1);
    }
예제 #2
0
    public static OpenFileDialog LoadROBLOXFileDialog(RobloxFileType type)
    {
        OpenFileDialog openFileDialog1 = new OpenFileDialog
        {
            Filter = (type == RobloxFileType.RBXL) ? "ROBLOX Level (*.rbxl)|*.rbxl|ROBLOX Level (*.rbxlx)|*.rbxlx" : "ROBLOX Model (*.rbxm)|*.rbxm",
            Title  = "Open ROBLOX level or model"
        };

        return(openFileDialog1);
    }
예제 #3
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);
        }
    }
예제 #4
0
    public static string GetProgressString(RobloxFileType type, int percent)
    {
        string progressString = "";

        switch (type)
        {
        case RobloxFileType.RBXL:
            switch (percent)
            {
            case 0:
                progressString = "Backing up RBXL...";
                break;

            case 5:
                progressString = "Downloading RBXL Meshes and Textures...";
                break;

            case 10:
                progressString = "Downloading RBXL Skybox Textures...";
                break;

            case 15:
                progressString = "Downloading RBXL Decal Textures...";
                break;

            case 20:
                progressString = "Downloading RBXL Textures...";
                break;

            case 25:
                progressString = "Downloading RBXL Tool Textures...";
                break;

            case 30:
                progressString = "Downloading RBXL HopperBin Textures...";
                break;

            case 40:
                progressString = "Downloading RBXL Sounds...";
                break;

            case 50:
                progressString = "Downloading RBXL GUI Textures...";
                break;

            case 60:
                progressString = "Downloading RBXL Shirt Textures...";
                break;

            case 65:
                progressString = "Downloading RBXL T-Shirt Textures...";
                break;

            case 70:
                progressString = "Downloading RBXL Pants Textures...";
                break;

            case 80:
                progressString = "Downloading RBXL Linked Scripts...";
                break;

            case 90:
                progressString = "Downloading RBXL Linked LocalScripts...";
                break;
                //case 95:
                //progressString = "Fixing RBXL Scripts...";
                //break;
                //case 97:
                //progressString = "Fixing RBXL LocalScripts...";
                //break;
            }
            break;

        case RobloxFileType.RBXM:
            switch (percent)
            {
            case 0:
                progressString = "Downloading RBXM Meshes and Textures...";
                break;

            case 10:
                progressString = "Downloading RBXM Skybox Textures...";
                break;

            case 15:
                progressString = "Downloading RBXM Decal Textures...";
                break;

            case 20:
                progressString = "Downloading RBXM Textures...";
                break;

            case 25:
                progressString = "Downloading RBXM Tool Textures...";
                break;

            case 30:
                progressString = "Downloading RBXM HopperBin Textures...";
                break;

            case 40:
                progressString = "Downloading RBXM Sounds...";
                break;

            case 50:
                progressString = "Downloading RBXM GUI Textures...";
                break;

            case 60:
                progressString = "Downloading RBXM Shirt Textures...";
                break;

            case 65:
                progressString = "Downloading RBXM T-Shirt Textures...";
                break;

            case 70:
                progressString = "Downloading RBXM Pants Textures...";
                break;

            case 80:
                progressString = "Downloading RBXM Linked Scripts...";
                break;

            case 90:
                progressString = "Downloading RBXM Linked LocalScripts...";
                break;
                //case 95:
                //progressString = "Fixing RBXM Scripts...";
                //break;
                //case 97:
                //progressString = "Fixing RBXM LocalScripts...";
                //break;
            }
            break;

        case RobloxFileType.Hat:
            switch (percent)
            {
            case 0:
                progressString = "Downloading Hat Meshes and Textures...";
                break;

            case 25:
                progressString = "Downloading Hat Sounds...";
                break;

            case 50:
                progressString = "Downloading Hat Linked Scripts...";
                break;

            case 75:
                progressString = "Downloading Hat Linked LocalScripts...";
                break;
            }
            break;

        case RobloxFileType.Head:
            //meshes
            switch (percent)
            {
            case 0:
                progressString = "Downloading Head Meshes and Textures...";
                break;
            }
            break;

        case RobloxFileType.Face:
            //decal
            switch (percent)
            {
            case 0:
                progressString = "Downloading Face Textures...";
                break;
            }
            break;

        case RobloxFileType.TShirt:
            //texture
            switch (percent)
            {
            case 0:
                progressString = "Downloading T-Shirt Textures...";
                break;
            }
            break;

        case RobloxFileType.Shirt:
            //texture
            switch (percent)
            {
            case 0:
                progressString = "Downloading Shirt Textures...";
                break;
            }
            break;

        case RobloxFileType.Pants:
            //texture
            switch (percent)
            {
            case 0:
                progressString = "Downloading Pants Textures...";
                break;
            }
            break;

        /*
         * case RobloxFileType.Script:
         * //script
         * switch (percent)
         * {
         *  case 0:
         *      progressString = "Fixing Script...";
         *      break;
         * }
         * break;*/
        default:
            progressString = "Idle";
            break;
        }

        return(progressString + " " + percent.ToString() + "%");
    }
예제 #5
0
 private void AssetLocalization_AssetTypeBox_SelectedIndexChanged(object sender, EventArgs e)
 {
     currentType = SDKFuncs.SelectROBLOXFileType(AssetLocalization_AssetTypeBox.SelectedIndex);
 }
예제 #6
0
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
     currentType = SDKFuncs.SelectROBLOXFileType(comboBox1.SelectedIndex);
 }