#region ================== Namespaces using System; using System.IO; using System.Windows.Forms; using CodeImp.DoomBuilder.Windows; #endregion namespace CodeImp.DoomBuilder.BuilderEffects { public partial class ObjImportSettingsForm : DelayedForm { #region ================== Variables private ImportObjAsTerrainMode.UpAxis axis; private bool slopessupported; #endregion #region ================== Properties internal string FilePath { get { return tbImportPath.Text.Trim(); } } internal ImportObjAsTerrainMode.UpAxis UpAxis { get { return axis; } } internal float ObjScale { get { return (float)nudScale.Value; } } internal bool UseVertexHeights { get { return slopessupported && cbusevertexheight.Checked; } } //todo: floor/ceiling textures? height offsets? ceiling extra height? #endregion public ObjImportSettingsForm() { InitializeComponent(); //restore settings axis = (ImportObjAsTerrainMode.UpAxis)General.Settings.ReadPluginSetting("objexportupaxis", 0); nudScale.Value = (decimal)General.Settings.ReadPluginSetting("objexportscale", 1.0f); slopessupported = (General.Map.UDMF || General.Map.Data.GetThingInfoEx(ImportObjAsTerrainMode.VERTEX_HEIGHT_THING_TYPE) != null); if(slopessupported) cbusevertexheight.Checked = General.Settings.ReadPluginSetting("objusevertexheights", true); else cbusevertexheight.Enabled = false; switch(axis) { case ImportObjAsTerrainMode.UpAxis.X: axisx.Checked = true; break; case ImportObjAsTerrainMode.UpAxis.Y: axisy.Checked = true; break; case ImportObjAsTerrainMode.UpAxis.Z: axisz.Checked = true; break; default: axisy.Checked = true; break; } } #region ================== Events private void browse_Click(object sender, EventArgs e) { if(openFileDialog.ShowDialog() == DialogResult.OK) tbImportPath.Text = openFileDialog.FileName; } private void import_Click(object sender, EventArgs e) { if(nudScale.Value == 0) { MessageBox.Show("Scale should not be zero!"); return; } if(!File.Exists(tbImportPath.Text)) { MessageBox.Show("Selected path does not exist!"); return; } axis = (axisy.Checked ? ImportObjAsTerrainMode.UpAxis.Y : (axisz.Checked ? ImportObjAsTerrainMode.UpAxis.Z : ImportObjAsTerrainMode.UpAxis.X)); //save settings General.Settings.WritePluginSetting("objexportupaxis", (int)axis); General.Settings.WritePluginSetting("objexportscale", (float)nudScale.Value); if(slopessupported) General.Settings.WritePluginSetting("objusevertexheights", cbusevertexheight.Checked); this.DialogResult = DialogResult.OK; this.Close(); } private void cancel_Click(object sender, EventArgs e) { this.Close(); } #endregion } }