public string RunMyFunction(string basedir, Test3DEngine engine, string representid, string socket, SqlConnection conn) { Form1 frm = new Form1(basedir, engine, representid, socket, conn); frm.ShowDialog(); return(frm.m_strFirstDesc); }
public string show4ff(string strPath, string strDefaultFile, Test3DEngine engine, SqlConnection conn) { if (null == fs) { fs = new frmSelect(engine, conn); } fs.strSelectedFileName = strDefaultFile; fs.Text = "请选择文件"; fs.nQueMax = 10; //fs.strFilter = ";.mdl;.mtl;.ani;.mesh;"; fs.strFilter = ";.mdl;.ani;.tani;.mesh;"; fs.showFolder = true; fs.LoadFolder(strPath); System.Windows.Forms.DialogResult r = fs.ShowDialog(); if (r == System.Windows.Forms.DialogResult.OK) { string srt = fs.strSelectedFileName; //fs.Hide(); return(fs.strSelectedFileName); } else { //fs.Hide(); return(null); } }
private void MainForm_FormClosed(object sender, FormClosedEventArgs e) { if (K3DEngine != null) { K3DEngine.UnInit(); K3DEngine = null; } }
/// <summary> /// 设置spr文件名,会自动出现预览界面 /// </summary> /// <param name="strFileName">SPR文件名,包含全路经</param> public void SetFileName(string strFileName, Test3DEngine engine) { if (strFileName.LastIndexOf('.') == -1) { throw (new Exception("传入文件名不合法")); } string strExt = strFileName.Substring(strFileName.LastIndexOf('.') + 1).ToLower(); ft.timer1.Enabled = false; ft.labError.Visible = false; this.strFileName = strFileName; if (!File.Exists(strFileName)) { ft.labError.Visible = true; ft.pb1.Image = new Bitmap(10, 10); return; } SPRItem si; if (strExt == "mdl") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MDL, engine); } else if (strExt == "mtl") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MTL, engine); } else if (strExt == "mesh") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MESH, engine); } else if (strExt == "ani") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.ANI, engine); } else if (strExt == "tani") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.ANI, engine); } else //spr { si = new SPRItem(strFileName); } ft.sio = si; ft.timer1.Enabled = true; }
/// <summary> /// 设置spr文件名,会自动出现预览界面 /// </summary> /// <param name="strFileName">SPR文件名,包含全路经</param> public void SetFileName(string strFileName, Test3DEngine engine) { if (strFileName.LastIndexOf('.') == -1) { throw (new Exception("传入文件名不合法")); } string strExt = strFileName.Substring(strFileName.LastIndexOf('.') + 1).ToLower(); ft.timer1.Enabled = false; ft.labError.Visible = false; this.strFileName = strFileName; if(!File.Exists(strFileName)) { ft.labError.Visible = true; ft.pb1.Image = new Bitmap(10, 10); return; } SPRItem si; if(strExt == "mdl") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MDL, engine); } else if(strExt == "mtl") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MTL, engine); } else if (strExt == "mesh") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MESH, engine); } else if (strExt == "ani") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.ANI, engine); } else if (strExt == "tani") { si = new SPRItem(strFileName, SPRItem.PIC_TYPE.ANI, engine); } else //spr { si = new SPRItem(strFileName); } ft.sio = si; ft.timer1.Enabled = true; }
public Form1(string enginedir, Test3DEngine engine, string representid, string socket, SqlConnection conn) { InitializeComponent(); m_EngineDir = enginedir; m_engine = engine; m_RepresentID = representid; m_Socket = socket; Conn = conn; m_sql = string.Format("SELECT Model FROM npc WHERE RepresentID = {0}", representid); DataTable tbl_npc = Helper.GetDataTable(m_sql, Conn); string strTitle = string.Format("{0} - {1}, {2}, {3}", this.Text, representid, tbl_npc.Rows[0][0], socket); this.Text = strTitle; UpdateGVData(); }
private void Form1_Load(object sender, EventArgs e) { //ArrayList[] a = { new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList() }; //ArrayList elem = (ArrayList)a[0]; //elem.Add("aaa"); m_strSockets = new string[9]; m_strSockets[0] = "s_hat"; m_strSockets[1] = "s_spine2"; m_strSockets[2] = "s_spine"; m_strSockets[3] = "s_rp"; m_strSockets[4] = "s_lp"; m_strSockets[5] = "s_rc"; m_strSockets[6] = "s_lc"; m_strSockets[7] = "s_rh"; m_strSockets[8] = "s_lh"; m_HeadFilePath = new ArrayList(); m_HandFilePath = new ArrayList(); m_LegFilePath = new ArrayList(); m_BodyFilePath = new ArrayList(); m_BeltFilePath = new ArrayList(); m_FaceFilePath = new ArrayList(); m_AniFilePath = new ArrayList(); m_ItemFilePath = new ArrayList(); m_MdlFile = new ArrayList(); m_3DEngie = new Test3DEngine(); m_3DEngie.Init((int)this.pictureBox1.Handle); string DirName = Application.StartupPath; string PlayerName = DirName + "\\Data\\public\\PlayerCheckTool\\Checker.mdl"; // DirName + "\\Data\\public\\PlayerCheckTool\\Checker_skin.ani"; string AniFileName = DirName + "\\data\\source\\player\\F2\\动作\\F2b01aq攻击22.ani"; m_3DEngie.LoadPlayerModel(PlayerName); m_3DEngie.LoadAni(AniFileName); m_PartDirPath = PlayerPathText.Text; FindModelInDirectory(PlayerPathText.Text); for (int i = m_MdlFile.Count - 1; i >= 0; i--) { this.Player_comboBox.Items.Add(m_MdlFile[i]); } ItemsRefresh(); this.Player_comboBox.SelectedIndex = 0; if (Ani_listBox.Items.Count > 0) { this.Ani_listBox.SelectedIndex = 0; } }
public string show4ff_new_socket(int representid, string socketname, string strBasePath, string strBrowsePath, string strDefaultFile, Test3DEngine engine, string strFilter, SqlConnection conn) { string sql = string.Format("SELECT FileName FROM dic_npc_socket_desc WHERE RepresentID = {0} AND Socket = '{1}'", representid, socketname); DataTable tbl = GetDataTable(sql, conn); if (null == fs) { fs = new frmSelect(engine, conn); } fs.Label3.Enabled = true; fs.ButtonX5.Enabled = true; fs.ComboBox1.Enabled = true; fs.ComboBox1.Items.Clear(); foreach (DataRow row in tbl.Rows) { fs.ComboBox1.Items.Add(row[0].ToString()); } return show4ff_new(strBasePath, strBrowsePath, strDefaultFile, engine, strFilter, conn); }
private void Form1_Load(object sender, EventArgs e) { //ArrayList[] a = { new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList() }; //ArrayList elem = (ArrayList)a[0]; //elem.Add("aaa"); m_strSockets = new string[9]; m_strSockets[0] = "s_hat"; m_strSockets[1] = "s_spine2"; m_strSockets[2] = "s_spine"; m_strSockets[3] = "s_rp"; m_strSockets[4] = "s_lp"; m_strSockets[5] = "s_rc"; m_strSockets[6] = "s_lc"; m_strSockets[7] = "s_rh"; m_strSockets[8] = "s_lh"; m_HeadFilePath = new ArrayList(); m_HandFilePath = new ArrayList(); m_LegFilePath = new ArrayList(); m_BodyFilePath = new ArrayList(); m_BeltFilePath = new ArrayList(); m_FaceFilePath = new ArrayList(); m_AniFilePath = new ArrayList(); m_ItemFilePath = new ArrayList(); m_MdlFile = new ArrayList(); m_3DEngie = new Test3DEngine(); m_3DEngie.Init((int)this.pictureBox1.Handle); string DirName = Application.StartupPath; string PlayerName = DirName + "\\Data\\public\\PlayerCheckTool\\Checker.mdl"; // DirName + "\\Data\\public\\PlayerCheckTool\\Checker_skin.ani"; string AniFileName = DirName + "\\data\\source\\player\\F2\\动作\\F2b01aq攻击22.ani"; m_3DEngie.LoadPlayerModel(PlayerName); m_3DEngie.LoadAni(AniFileName); m_PartDirPath = PlayerPathText.Text; FindModelInDirectory(PlayerPathText.Text); for (int i = m_MdlFile.Count-1; i >= 0; i--) this.Player_comboBox.Items.Add(m_MdlFile[i]); ItemsRefresh(); this.Player_comboBox.SelectedIndex = 0; if (Ani_listBox.Items.Count > 0) this.Ani_listBox.SelectedIndex = 0; }
public string show4ff_new(string strBasePath, string strBrowsePath, string strDefaultFile, Test3DEngine engine, string strFilter, SqlConnection conn) { m_strBase = strBasePath; sprViewer.SPRItem.IconFolder = strBasePath; if (null == fs) { fs = new frmSelect(engine, conn); } fs.strSelectedFileName = strDefaultFile; fs.Text = "请选择文件"; fs.nQueMax = 10; switch (strFilter.ToLower()) { case "mdl,mesh":fs.strFilter = ";.mesh;.mdl;"; break; case "mesh": fs.strFilter = ";.mesh;"; break; case "mdl": fs.strFilter = ";.mdl;"; break; case "ani": fs.strFilter = ";.ani;.tani;"; break; default: throw new Exception("unrecognized type."); } fs.showFolder = true; fs.LoadFolder(strBrowsePath); System.Windows.Forms.DialogResult r = fs.ShowDialog(); if (r == System.Windows.Forms.DialogResult.OK) { string srt = fs.strSelectedFileName.Replace(strBasePath, string.Empty); //fs.Hide(); return srt; } else { //fs.Hide(); return null; } }
public frmSelect(Test3DEngine engine, SqlConnection conn) { m_engine = engine; Conn = conn; Init(); }
private void doInitPreview(int iOption) { int old_wrong_index = this.tabControl1.SelectedTabIndex; int new_right_index = init_preview_index; // new_right_index 是从1 开始的下标。 string strTabIndex = "[" + new_right_index.ToString() + "]"; if (Program.EngineDir.Trim().Length <= 0) { if (!m_bWarning3dEngine) { m_bWarning3dEngine = true; MessageBox.Show("3DEngine 路径为空,不能正常打开预览窗口", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } return; } string strdir = ""; if (Program.EngineDir.Substring(Program.EngineDir.Length - 1) != "\\") strdir = Program.EngineDir + "\\"; else strdir = Program.EngineDir; if (m_3DEngie == null) { bool bSuc = Helper.RegComDll("atlax.dll"); m_3DEngie = new Test3DEngine(); if (m_3DEngie == null) { MessageBox.Show("3D Engine 初始化失败!m_3DEngie = null。"); return; } m_3DEngie.Init((int)(preview_panels[new_right_index - 1].Handle), Program.EngineDir, Application.StartupPath); // 传给mainform, 让它关闭时uninit 引擎。 ((MainForm)ParentForm).K3DEngine = m_3DEngie; string content = string.Format(@" RegComDll: {0} m_3DEngie: {1} EngineDir: {2} Engine: {3} Enginenull:{4} ", bSuc, m_3DEngie, strdir, m_3DEngie, m_3DEngie == null?"null":"not null"); FileFolderHelper.StringToFile(content, Application.StartupPath + "/GameDesignerTools.log"); } m_lua["EngineDir"] = strdir; m_lua["Engine"] = m_3DEngie; int count; m_3DEngie.GetEditorSceneCount(ModelName + strTabIndex, out count); if (count > 0) return; m_3DEngie.AddScene((int)preview_panels[new_right_index - 1].Handle, ModelName + strTabIndex, iOption); //string DirName = strdir; //string PlayerName = DirName + "\\Data\\public\\PlayerCheckTool\\Male\\Normal\\M2.mdl"; //string AniFileName = DirName + "\\data\\source\\player\\M2\\动作\\M2b04ty空手普通待机.ani"; //m_3DEngie.LoadPlayerModel(PlayerName); //m_3DEngie.LoadAni(AniFileName, 1); this.SetTmrRenderInterval(Program.m_3d_tmrRender); tmrRender.Enabled = true; PreviewBar.Visible = true; PreviewBar.RecalcLayout(); this.ResumeLayout(); }
public string show4ff_new(string strBasePath, string strBrowsePath, string strDefaultFile, Test3DEngine engine, string strFilter, SqlConnection conn) { m_strBase = strBasePath; sprViewer.SPRItem.IconFolder = strBasePath; if (null == fs) { fs = new frmSelect(engine, conn); } fs.strSelectedFileName = strDefaultFile; fs.Text = "请选择文件"; fs.nQueMax = 10; switch (strFilter.ToLower()) { case "mdl,mesh": fs.strFilter = ";.mesh;.mdl;"; break; case "mesh": fs.strFilter = ";.mesh;"; break; case "mdl": fs.strFilter = ";.mdl;"; break; case "ani": fs.strFilter = ";.ani;.tani;"; break; default: throw new Exception("unrecognized type."); } fs.showFolder = true; fs.LoadFolder(strBrowsePath); System.Windows.Forms.DialogResult r = fs.ShowDialog(); if (r == System.Windows.Forms.DialogResult.OK) { string srt = fs.strSelectedFileName.Replace(strBasePath, string.Empty); //fs.Hide(); return(srt); } else { //fs.Hide(); return(null); } }
public string show4ff_new_socket(int representid, string socketname, string strBasePath, string strBrowsePath, string strDefaultFile, Test3DEngine engine, string strFilter, SqlConnection conn) { string sql = string.Format("SELECT FileName FROM dic_npc_socket_desc WHERE RepresentID = {0} AND Socket = '{1}'", representid, socketname); DataTable tbl = GetDataTable(sql, conn); if (null == fs) { fs = new frmSelect(engine, conn); } fs.Label3.Enabled = true; fs.ButtonX5.Enabled = true; fs.ComboBox1.Enabled = true; fs.ComboBox1.Items.Clear(); foreach (DataRow row in tbl.Rows) { fs.ComboBox1.Items.Add(row[0].ToString()); } return(show4ff_new(strBasePath, strBrowsePath, strDefaultFile, engine, strFilter, conn)); }
//for other public SPRItem(string strFileName, PIC_TYPE pictype, Test3DEngine engine) { Init(strFileName, pictype, engine, false); }
public SPRItem(string strFileName, PIC_TYPE pictype, Test3DEngine engine, bool bForceRefresh) { Init(strFileName, pictype, engine, bForceRefresh); }
private void doInitPreview(int iOption) { int old_wrong_index = this.tabControl1.SelectedTabIndex; int new_right_index = init_preview_index; // new_right_index 是从1 开始的下标。 string strTabIndex = "[" + new_right_index.ToString() + "]"; if (Program.EngineDir.Trim().Length <= 0) { if (!m_bWarning3dEngine) { m_bWarning3dEngine = true; MessageBox.Show("3DEngine 路径为空,不能正常打开预览窗口", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } return; } string strdir = ""; if (Program.EngineDir.Substring(Program.EngineDir.Length - 1) != "\\") { strdir = Program.EngineDir + "\\"; } else { strdir = Program.EngineDir; } if (m_3DEngie == null) { bool bSuc = Helper.RegComDll("atlax.dll"); m_3DEngie = new Test3DEngine(); if (m_3DEngie == null) { MessageBox.Show("3D Engine 初始化失败!m_3DEngie = null。"); return; } m_3DEngie.Init((int)(preview_panels[new_right_index - 1].Handle), Program.EngineDir, Application.StartupPath); // 传给mainform, 让它关闭时uninit 引擎。 ((MainForm)ParentForm).K3DEngine = m_3DEngie; string content = string.Format(@" RegComDll: {0} m_3DEngie: {1} EngineDir: {2} Engine: {3} Enginenull:{4} ", bSuc, m_3DEngie, strdir, m_3DEngie, m_3DEngie == null?"null":"not null"); FileFolderHelper.StringToFile(content, Application.StartupPath + "/GameDesignerTools.log"); } m_lua["EngineDir"] = strdir; m_lua["Engine"] = m_3DEngie; int count; m_3DEngie.GetEditorSceneCount(ModelName + strTabIndex, out count); if (count > 0) { return; } m_3DEngie.AddScene((int)preview_panels[new_right_index - 1].Handle, ModelName + strTabIndex, iOption); //string DirName = strdir; //string PlayerName = DirName + "\\Data\\public\\PlayerCheckTool\\Male\\Normal\\M2.mdl"; //string AniFileName = DirName + "\\data\\source\\player\\M2\\动作\\M2b04ty空手普通待机.ani"; //m_3DEngie.LoadPlayerModel(PlayerName); //m_3DEngie.LoadAni(AniFileName, 1); this.SetTmrRenderInterval(Program.m_3d_tmrRender); tmrRender.Enabled = true; PreviewBar.Visible = true; PreviewBar.RecalcLayout(); this.ResumeLayout(); }
private bool Init(string strFileName, PIC_TYPE pictype, Test3DEngine engine, bool bForceRefresh) { m_forceRefresh = bForceRefresh; this.time = File.GetLastWriteTime(strFileName); this.sprFileName = strFileName; string strExt = Enum.GetName(typeof(PIC_TYPE), pictype).ToLower(); this.cachePath = string.Format(@"{0}\_cache\{1}\", Application.StartupPath, strExt); this.tgaFolderName = this.cachePath; this.tgaFileName = string.Format("{0}{1}", this.cachePath, ConverFileName(strFileName)); if (!Directory.Exists(cachePath)) { Directory.CreateDirectory(cachePath); } int nFrameCount = 0; //GetFrameCount(strFileName) 思豪的获取帧总数的函数 strFileName = strFileName.ToLower(); if (strFileName.EndsWith(".mdl") || strFileName.EndsWith(".mesh")) { nFrameCount = 1; } else if (strFileName.EndsWith(".ani") || strFileName.EndsWith(".tani")) { nFrameCount = 20; } for (int i = 1; i <= nFrameCount; i++) { string ii = i.ToString(); while (ii.Length < 3) { ii = "0" + ii; } TGAList[i.ToString()] = string.Format("{0}{1}.JPG", this.tgaFileName, ii); } string imageFileName = string.Format("{0}001.jpg", tgaFileName); switch (FileChanged()) { case -1: { Image image = Helper.GetHelper().GetImageFromCache(GetTGAFileName(), "TGA"); if (image != null) { if (!File.Exists(imageFileName)) { File.Create(imageFileName).Close(); if (saveImageTable[imageFileName] == null) { try { image.Save(imageFileName, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (ExternalException ex) { Helper.GetHelper().RecordLog(string.Format("保存图片文件{0}错误:{1}", imageFileName, ex.Message)); } finally { saveImageTable[imageFileName] = "1"; } } } } iconImage = image; break; } case 0: { if (!File.Exists(imageFileName)) // 本地图片文件不存在的话需要创建出来 { Image image = Helper.GetHelper().GetImageFromCache(GetTGAFileName(), "TGA"); if (image != null) { File.Create(imageFileName).Close(); if (saveImageTable[imageFileName] == null) { try { image.Save(imageFileName, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (ExternalException ex) { ; } finally { saveImageTable[imageFileName] = "1"; } } } iconImage = image; } break; } case 1: { try { engine.FileToImage(strFileName, this.tgaFileName); } catch(Exception ex) { Helper.GetHelper().RecordLog(string.Format("保存图片文件{0}错误:{1}", imageFileName, ex.Message)); } finally { saveImageTable[imageFileName] = "1"; } Helper.GetHelper().UpdateIcon(GetTGAFileName(), "TGA", imageFileName, GetLastWriteTime()); break; } } return true; }
public string show4ff(string strPath, string strDefaultFile, Test3DEngine engine, SqlConnection conn) { if( null == fs ) { fs = new frmSelect(engine, conn); } fs.strSelectedFileName = strDefaultFile; fs.Text = "请选择文件"; fs.nQueMax = 10; //fs.strFilter = ";.mdl;.mtl;.ani;.mesh;"; fs.strFilter = ";.mdl;.ani;.tani;.mesh;"; fs.showFolder = true; fs.LoadFolder(strPath); System.Windows.Forms.DialogResult r = fs.ShowDialog(); if (r == System.Windows.Forms.DialogResult.OK) { string srt = fs.strSelectedFileName; //fs.Hide(); return (fs.strSelectedFileName); } else { //fs.Hide(); return null; } }
private bool Init(string strFileName, PIC_TYPE pictype, Test3DEngine engine, bool bForceRefresh) { m_forceRefresh = bForceRefresh; this.time = File.GetLastWriteTime(strFileName); this.sprFileName = strFileName; string strExt = Enum.GetName(typeof(PIC_TYPE), pictype).ToLower(); this.cachePath = string.Format(@"{0}\_cache\{1}\", Application.StartupPath, strExt); this.tgaFolderName = this.cachePath; this.tgaFileName = string.Format("{0}{1}", this.cachePath, ConverFileName(strFileName)); if (!Directory.Exists(cachePath)) { Directory.CreateDirectory(cachePath); } int nFrameCount = 0; //GetFrameCount(strFileName) 思豪的获取帧总数的函数 strFileName = strFileName.ToLower(); if (strFileName.EndsWith(".mdl") || strFileName.EndsWith(".mesh")) { nFrameCount = 1; } else if (strFileName.EndsWith(".ani") || strFileName.EndsWith(".tani")) { nFrameCount = 20; } for (int i = 1; i <= nFrameCount; i++) { string ii = i.ToString(); while (ii.Length < 3) { ii = "0" + ii; } TGAList[i.ToString()] = string.Format("{0}{1}.JPG", this.tgaFileName, ii); } string imageFileName = string.Format("{0}001.jpg", tgaFileName); switch (FileChanged()) { case -1: { Image image = Helper.GetHelper().GetImageFromCache(GetTGAFileName(), "TGA"); if (image != null) { if (!File.Exists(imageFileName)) { File.Create(imageFileName).Close(); if (saveImageTable[imageFileName] == null) { try { image.Save(imageFileName, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (ExternalException ex) { Helper.GetHelper().RecordLog(string.Format("保存图片文件{0}错误:{1}", imageFileName, ex.Message)); } finally { saveImageTable[imageFileName] = "1"; } } } } iconImage = image; break; } case 0: { if (!File.Exists(imageFileName)) // 本地图片文件不存在的话需要创建出来 { Image image = Helper.GetHelper().GetImageFromCache(GetTGAFileName(), "TGA"); if (image != null) { File.Create(imageFileName).Close(); if (saveImageTable[imageFileName] == null) { try { image.Save(imageFileName, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (ExternalException ex) { ; } finally { saveImageTable[imageFileName] = "1"; } } } iconImage = image; } break; } case 1: { try { engine.FileToImage(strFileName, this.tgaFileName); } catch (Exception ex) { Helper.GetHelper().RecordLog(string.Format("保存图片文件{0}错误:{1}", imageFileName, ex.Message)); } finally { saveImageTable[imageFileName] = "1"; } Helper.GetHelper().UpdateIcon(GetTGAFileName(), "TGA", imageFileName, GetLastWriteTime()); break; } } return(true); }
public string RunMyFunction(string basedir, Test3DEngine engine, string representid, string socket, SqlConnection conn) { Form1 frm = new Form1(basedir, engine, representid, socket, conn); frm.ShowDialog(); return frm.m_strFirstDesc; }