public static Setup Load(string path) { Setup setup = new Setup(); LOL lol = LOL.Load(path); using (var ms = new MemoryStream(lol.ReadAllBytes())) using (var sr = new StreamReader(ms)) { var testLine = sr.ReadLine(); var setupFile = testLine + "\r\n" + sr.ReadToEnd(); switch (testLine.Split(':')[0]) { case "car": setup.context = SetupContext.Vehicle; setup.settings = VehicleSetupCode.Parse(setupFile); break; default: return null; } } return setup; }
public override void Export(Asset asset, string path) { var model = (asset as Model); if (model.SupportingDocuments.ContainsKey("Setup")) { ((Setup)model.SupportingDocuments["Setup"]).Save(path); } else { var setup = new Setup(); switch (ExportSettings.GetSetting<SetupContext>("Context")) { case SetupContext.Vehicle: setup.Settings = new VehicleSetupCode(); break; } setup.Save(path); } }
private void btnOK_Click(object sender, EventArgs e) { SceneManager.Current.OnProgress += scene_OnProgress; btnOK.Visible = false; btnCancel.Visible = false; gbProgress.Visible = true; pbProgress.Visible = true; Application.DoEvents(); timer.Start(); if (!Directory.Exists(txtPath.Text)) { Directory.CreateDirectory(txtPath.Text); } flump.Settings["car"] = car; flump.Settings["pretty.name"] = txtPrettyCarName.Text; lblInfo = lblInfoMeshes; lblProgress = lblProgressMeshes; lblProgress.ForeColor = Color.FromKnownColor(KnownColor.ControlText); progressMax = 30; new CNTExporter().Export(SceneManager.Current.Models[0], txtPath.Text + "car.cnt"); new MDLExporter().Export(SceneManager.Current.Models[0], txtPath.Text); lblProgress.Text = "✓"; lblProgress.ForeColor = Color.Green; lblInfo.Text = "Meshes"; pbProgress.Value = progressMax; Application.DoEvents(); lblInfo = lblInfoTextures; lblProgress = lblProgressTextures; lblProgress.ForeColor = Color.FromKnownColor(KnownColor.ControlText); progressMax = 50; var textures = new List<string>(); foreach (var material in SceneManager.Current.Materials) { string fileName = txtPath.Text + "\\" + material.Texture.Name; if (!textures.Contains(material.Texture.Name)) { if (!File.Exists(fileName + ".tdx")) { var tx = new TDXExporter(); tx.ExportSettings.AddSetting("Format", ToxicRagers.Helpers.D3DFormat.DXT5); tx.Export(material.Texture, txtPath.Text); } //if (!File.Exists(fileName + ".img")) //{ // var tx = new IMGExporter(); // tx.Export(material.Texture, txtPath.Text); //} textures.Add(material.Texture.Name); } } lblProgress.Text = "✓"; lblProgress.ForeColor = Color.Green; lblInfo.Text = "Textures"; pbProgress.Value = progressMax; Application.DoEvents(); lblInfo = lblInfoMaterials; lblProgress = lblProgressMaterials; lblProgress.ForeColor = Color.FromKnownColor(KnownColor.ControlText); progressMax = 60; foreach (var material in SceneManager.Current.Materials) { string fileName = Path.Combine(txtPath.Text, material.Name + ".mt2"); if (!File.Exists(fileName)) { var simple = new ToxicRagers.CarmageddonReincarnation.Formats.Materials.simple_base(); simple.DiffuseColour = material.Texture.Name; simple.Save(fileName); } } lblProgress.Text = "✓"; lblProgress.ForeColor = Color.Green; lblInfo.Text = "Materials"; pbProgress.Value = progressMax; Application.DoEvents(); lblInfo = lblInfoPaperwork; lblProgress = lblProgressPaperwork; lblProgress.ForeColor = Color.FromKnownColor(KnownColor.ControlText); progressMax = 75; if (!File.Exists(txtPath.Text + "setup.lol")) { Setup setup = new Setup(SetupContext.Vehicle); setup.Settings.SetParameterForMethod("PowerMultiplier", "Value", 1.5f); setup.Settings.SetParameterForMethod("TractionFactor", "Factor", 1.2f); setup.Settings.SetParameterForMethod("RearGrip", "Value", 1.6f); setup.Settings.SetParameterForMethod("FrontGrip", "Value", 1.7f); setup.Settings.SetParameterForMethod("FrontRoll", "Value", 0.4f); setup.Settings.SetParameterForMethod("RearRoll", "Value", 0.3f); setup.Settings.SetParameterForMethod("FrontSuspGive", "Value", 0.1f); setup.Settings.SetParameterForMethod("RearSuspGive", "Value", 0.08f); setup.Settings.SetParameterForMethod("SteerCentreMultiplier", "Value", 2); setup.Settings.SetParameterForMethod("DragCoefficient", "Value", 0.4f); setup.Settings.SetParameterForMethod("Mass", "Value", 1300); setup.Settings.SetParameterForMethod("TorqueCurve", "1", 150); setup.Settings.SetParameterForMethod("TorqueCurve", "2", 232); SceneManager.Current.Models[0].SupportingDocuments["Setup"] = setup; var sx = new SetupLOLExporter(); sx.ExportSettings.AddSetting("Context", SetupContext.Vehicle); sx.Export(SceneManager.Current.Models[0], txtPath.Text); } if (!File.Exists(txtPath.Text + "Structure.xml")) { new StructureXMLExporter().Export(SceneManager.Current.Models[0], txtPath.Text); } if (!File.Exists(txtPath.Text + "SystemsDamage.xml")) { new SystemsDamageXMLExporter().Export(SceneManager.Current.Models[0], txtPath.Text); } if (!File.Exists(txtPath.Text + "vehicle_setup.cfg")) { var cfgx = new VehicleSetupCFGExporter(); cfgx.ExportSettings.AddSetting("VehicleName", txtCarName.Text); cfgx.Export(SceneManager.Current.Models[0], txtPath.Text); } lblProgress.Text = "✓"; lblProgress.ForeColor = Color.Green; lblInfo.Text = "Paperwork"; pbProgress.Value = progressMax; Application.DoEvents(); lblInfo = lblInfoZAD; lblProgress = lblProgressZAD; lblProgress.ForeColor = Color.FromKnownColor(KnownColor.ControlText); progressMax = 100; var minge = new ToxicRagers.CarmageddonReincarnation.Formats.MINGE(); minge.Name = txtPrettyCarName.Text; minge.Author = Properties.Settings.Default.PersonalAuthor; minge.Website = Properties.Settings.Default.PersonalWebsite; minge.Type = MINGE.ModType.Vehicle; minge.Save(Path.Combine(txtPath.Text, txtCarName.Text + ".minge")); var zad = ToxicRagers.Stainless.Formats.ZAD.Create(Path.Combine(txtPath.Text, txtCarName.Text + ".zip")); zad.AddDirectory(Path.GetDirectoryName(txtPath.Text)); lblProgress.Text = "✓"; lblProgress.ForeColor = Color.Green; lblInfo.Text = "CarMODgeddon ZIP file"; pbProgress.Value = progressMax; flump.Save(txtPath.Text + "car.flump"); timer.Stop(); SceneManager.Current.OnProgress -= scene_OnProgress; btnClose.Visible = true; Application.DoEvents(); SceneManager.Current.UpdateProgress(string.Format("Vehicle '{0}' saved successfully!", car)); }