diff --git a/MudDesigner/..svnbridge/.svnbridge b/MudDesigner/..svnbridge/.svnbridge new file mode 100644 index 0000000..bdf168c --- /dev/null +++ b/MudDesigner/..svnbridge/.svnbridge @@ -0,0 +1,3 @@ +svn:ignorebin +obj + \ No newline at end of file diff --git a/MudDesigner/Client.cs b/MudDesigner/Client.cs new file mode 100644 index 0000000..699238c --- /dev/null +++ b/MudDesigner/Client.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Net; +using System.Net.Sockets; + +namespace MudDesigner +{ + public class Client + { + public Client() + { + } + ~Client() + { + } + public Boolean Initialize(string i, int p) + { + try + { + if (i.Length <= 0) + return false; + ip = i; + if (p <= 0) + return false; + port = p; + sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + } + catch (Exception) + { + return false; + } + return true; + } + public Boolean Connect() + { + try + { + sock.Connect(ip, port); + } + catch (Exception) + { + return false; + } + return true; + } + public Boolean Send(string data,Boolean newLine) + { + try + { + System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); + if(newLine) + data += "\n"; + sock.Send(encoding.GetBytes(data)); + } + catch (Exception) + { + return false; + } + return true; + } + public Boolean Receive(out string rs,int size) + { + try + { + byte[] data = new byte[size]; + sock.Receive(data); + System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); + rs = enc.GetString(data.ToArray()); + } + catch (Exception) + { + rs = ""; + return false; + } + return true; + } + public Boolean End() + { + try + { + sock.Close(); + } + catch (Exception) + { + return false; + } + return true; + } + private string ip; + private int port; + + private Socket sock; + } +} diff --git a/MudDesigner/MudDesigner.csproj b/MudDesigner/MudDesigner.csproj index 97e9dea..235a3fa 100644 --- a/MudDesigner/MudDesigner.csproj +++ b/MudDesigner/MudDesigner.csproj @@ -46,6 +46,7 @@ + Form diff --git a/MudDesigner/frmDesigner.Designer.cs b/MudDesigner/frmDesigner.Designer.cs index 6549a21..8f6144b 100644 --- a/MudDesigner/frmDesigner.Designer.cs +++ b/MudDesigner/frmDesigner.Designer.cs @@ -28,38 +28,293 @@ /// private void InitializeComponent() { + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.closeProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.cutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); + this.preferencesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.createObjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.environmentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.realmToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.zoneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.roomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.txtCommand = new System.Windows.Forms.TextBox(); + this.txtConsole = new System.Windows.Forms.RichTextBox(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.menuStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); this.SuspendLayout(); // + // statusStrip1 + // + this.statusStrip1.Location = new System.Drawing.Point(0, 695); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(993, 22); + this.statusStrip1.TabIndex = 1; + this.statusStrip1.Text = "statusStrip1"; + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.editToolStripMenuItem, + this.createObjectToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(993, 24); + this.menuStrip1.TabIndex = 2; + this.menuStrip1.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.saveProjectToolStripMenuItem, + this.toolStripMenuItem1, + this.closeProjectToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // saveProjectToolStripMenuItem + // + this.saveProjectToolStripMenuItem.Name = "saveProjectToolStripMenuItem"; + this.saveProjectToolStripMenuItem.Size = new System.Drawing.Size(143, 22); + this.saveProjectToolStripMenuItem.Text = "Save Project"; + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(140, 6); + // + // closeProjectToolStripMenuItem + // + this.closeProjectToolStripMenuItem.Name = "closeProjectToolStripMenuItem"; + this.closeProjectToolStripMenuItem.Size = new System.Drawing.Size(143, 22); + this.closeProjectToolStripMenuItem.Text = "Close Project"; + // + // editToolStripMenuItem + // + this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.cutToolStripMenuItem, + this.copyToolStripMenuItem, + this.pasteToolStripMenuItem, + this.toolStripMenuItem2, + this.preferencesToolStripMenuItem}); + this.editToolStripMenuItem.Name = "editToolStripMenuItem"; + this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20); + this.editToolStripMenuItem.Text = "Edit"; + // + // cutToolStripMenuItem + // + this.cutToolStripMenuItem.Name = "cutToolStripMenuItem"; + this.cutToolStripMenuItem.Size = new System.Drawing.Size(135, 22); + this.cutToolStripMenuItem.Text = "Cut"; + // + // copyToolStripMenuItem + // + this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; + this.copyToolStripMenuItem.Size = new System.Drawing.Size(135, 22); + this.copyToolStripMenuItem.Text = "Copy"; + // + // pasteToolStripMenuItem + // + this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; + this.pasteToolStripMenuItem.Size = new System.Drawing.Size(135, 22); + this.pasteToolStripMenuItem.Text = "Paste"; + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(132, 6); + // + // preferencesToolStripMenuItem + // + this.preferencesToolStripMenuItem.Name = "preferencesToolStripMenuItem"; + this.preferencesToolStripMenuItem.Size = new System.Drawing.Size(135, 22); + this.preferencesToolStripMenuItem.Text = "Preferences"; + // + // createObjectToolStripMenuItem + // + this.createObjectToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.environmentToolStripMenuItem}); + this.createObjectToolStripMenuItem.Name = "createObjectToolStripMenuItem"; + this.createObjectToolStripMenuItem.Size = new System.Drawing.Size(91, 20); + this.createObjectToolStripMenuItem.Text = "Create Object"; + // + // environmentToolStripMenuItem + // + this.environmentToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.realmToolStripMenuItem, + this.zoneToolStripMenuItem, + this.roomToolStripMenuItem}); + this.environmentToolStripMenuItem.Name = "environmentToolStripMenuItem"; + this.environmentToolStripMenuItem.Size = new System.Drawing.Size(142, 22); + this.environmentToolStripMenuItem.Text = "Environment"; + // + // realmToolStripMenuItem + // + this.realmToolStripMenuItem.Name = "realmToolStripMenuItem"; + this.realmToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.realmToolStripMenuItem.Text = "Realm"; + // + // zoneToolStripMenuItem + // + this.zoneToolStripMenuItem.Name = "zoneToolStripMenuItem"; + this.zoneToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.zoneToolStripMenuItem.Text = "Zone"; + // + // roomToolStripMenuItem + // + this.roomToolStripMenuItem.Name = "roomToolStripMenuItem"; + this.roomToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.roomToolStripMenuItem.Text = "Room"; + // + // splitContainer1 + // + this.splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point(0, 24); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.txtCommand); + this.splitContainer1.Panel1.Controls.Add(this.txtConsole); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); + this.splitContainer1.Size = new System.Drawing.Size(993, 671); + this.splitContainer1.SplitterDistance = 714; + this.splitContainer1.TabIndex = 3; + // + // txtCommand + // + this.txtCommand.Location = new System.Drawing.Point(0, 324); + this.txtCommand.Name = "txtCommand"; + this.txtCommand.Size = new System.Drawing.Size(698, 20); + this.txtCommand.TabIndex = 1; + this.txtCommand.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtCommand_KeyDown); + // + // txtConsole + // + this.txtConsole.Location = new System.Drawing.Point(0, 0); + this.txtConsole.Name = "txtConsole"; + this.txtConsole.Size = new System.Drawing.Size(698, 318); + this.txtConsole.TabIndex = 0; + this.txtConsole.Text = ""; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.groupBox1); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.propertyGrid1); + this.splitContainer2.Size = new System.Drawing.Size(273, 669); + this.splitContainer2.SplitterDistance = 213; + this.splitContainer2.TabIndex = 0; + // + // groupBox1 + // + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox1.Location = new System.Drawing.Point(0, 0); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(273, 213); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Project Settings"; + // // propertyGrid1 // - this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Right; - this.propertyGrid1.Location = new System.Drawing.Point(525, 0); + this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid1.Location = new System.Drawing.Point(0, 0); this.propertyGrid1.Name = "propertyGrid1"; - this.propertyGrid1.Size = new System.Drawing.Size(259, 564); - this.propertyGrid1.TabIndex = 0; - this.propertyGrid1.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.propertyGrid1_PropertyValueChanged); + this.propertyGrid1.Size = new System.Drawing.Size(273, 452); + this.propertyGrid1.TabIndex = 4; // // frmDesigner // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.ClientSize = new System.Drawing.Size(784, 564); - this.Controls.Add(this.propertyGrid1); + this.ClientSize = new System.Drawing.Size(993, 717); + this.Controls.Add(this.splitContainer1); + this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.menuStrip1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MainMenuStrip = this.menuStrip1; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "frmDesigner"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Mud Designer"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmDesigner_FormClosing); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel1.PerformLayout(); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); this.ResumeLayout(false); + this.PerformLayout(); } #endregion + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveProjectToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem closeProjectToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem cutToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem preferencesToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem createObjectToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem environmentToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem realmToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem zoneToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem roomToolStripMenuItem; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.PropertyGrid propertyGrid1; + private System.Windows.Forms.TextBox txtCommand; + private System.Windows.Forms.RichTextBox txtConsole; + } } \ No newline at end of file diff --git a/MudDesigner/frmDesigner.cs b/MudDesigner/frmDesigner.cs index 0fc1345..4a28c31 100644 --- a/MudDesigner/frmDesigner.cs +++ b/MudDesigner/frmDesigner.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; +using System.Threading; using MudEngine.GameManagement; using MudEngine.FileSystem; @@ -16,18 +17,27 @@ namespace MudDesigner public partial class frmDesigner : Form { private Game _Game; + private Client _Client; + private Thread _ClientThread; private Boolean _IsRenaming; private String _OldName; - public frmDesigner(Game game) + private Boolean _TimeOut; + private Object _SelectedObject; + + public frmDesigner(Game game, Client client) { InitializeComponent(); _Game = game; + _Client = client; MudEngine.GameObjects.Environment.Room r = new MudEngine.GameObjects.Environment.Room(_Game); this.propertyGrid1.SelectedObject = _Game; + + _TimeOut = false; + _Client.Send("Hello world", false); } /// @@ -73,5 +83,58 @@ namespace MudDesigner _OldName = e.OldValue.ToString(); } } + + private void ChangeObject(Object obj) + { + _SelectedObject = obj; + propertyGrid1.SelectedObject = obj; + } + + private void btnNewRealm_Click(object sender, EventArgs e) + { + ChangeObject(new MudEngine.GameObjects.Environment.Realm(_Game)); + } + + private void button1_Click(object sender, EventArgs e) + { + ChangeObject(new MudEngine.GameObjects.Environment.Zone(_Game)); + } + + private void txtCommand_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + _Client.Send(txtCommand.Text, true); + + System.Windows.Forms.Timer t = new System.Windows.Forms.Timer(); + t.Interval = 10000; + t.Tick += new EventHandler(timerTick); + + _TimeOut = false; + String result; + + while (!_TimeOut) + { + if (_Client.Receive(out result, 1)) + { + txtConsole.Text += result; + } + else + _TimeOut = true; + } + + txtConsole.Text += "\n"; + } + } + + void timerTick(object sender, EventArgs e) + { + _TimeOut = true; + } + + void UpdateConsole(String message) + { + txtConsole.Text += message; + } } } diff --git a/MudDesigner/frmDesigner.resx b/MudDesigner/frmDesigner.resx index 29dcb1b..a50688d 100644 --- a/MudDesigner/frmDesigner.resx +++ b/MudDesigner/frmDesigner.resx @@ -117,4 +117,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + + + 133, 17 + \ No newline at end of file diff --git a/MudDesigner/frmProjectManager.Designer.cs b/MudDesigner/frmProjectManager.Designer.cs index 485715d..851b91f 100644 --- a/MudDesigner/frmProjectManager.Designer.cs +++ b/MudDesigner/frmProjectManager.Designer.cs @@ -34,9 +34,6 @@ this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.lstProjects = new System.Windows.Forms.ListBox(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.btnClose = new System.Windows.Forms.Button(); - this.btnNewProject = new System.Windows.Forms.Button(); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); this.launchServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); @@ -44,6 +41,11 @@ this.renameProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); this.deleteProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.btnClose = new System.Windows.Forms.Button(); + this.btnNewProject = new System.Windows.Forms.Button(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.comServerType = new System.Windows.Forms.ComboBox(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -53,8 +55,9 @@ this.splitContainer2.Panel2.SuspendLayout(); this.splitContainer2.SuspendLayout(); this.groupBox1.SuspendLayout(); - this.groupBox2.SuspendLayout(); this.contextMenuStrip1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); this.SuspendLayout(); // // splitContainer1 @@ -71,8 +74,8 @@ // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); - this.splitContainer1.Size = new System.Drawing.Size(624, 444); - this.splitContainer1.SplitterDistance = 169; + this.splitContainer1.Size = new System.Drawing.Size(624, 461); + this.splitContainer1.SplitterDistance = 175; this.splitContainer1.TabIndex = 0; // // button1 @@ -88,7 +91,7 @@ this.button1.ForeColor = System.Drawing.Color.White; this.button1.Location = new System.Drawing.Point(0, 0); this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(624, 169); + this.button1.Size = new System.Drawing.Size(624, 175); this.button1.TabIndex = 0; this.button1.Text = "Mud Designer\r\nAlpha 1"; this.button1.UseVisualStyleBackColor = false; @@ -107,8 +110,8 @@ // splitContainer2.Panel2 // this.splitContainer2.Panel2.Controls.Add(this.groupBox2); - this.splitContainer2.Size = new System.Drawing.Size(624, 271); - this.splitContainer2.SplitterDistance = 216; + this.splitContainer2.Size = new System.Drawing.Size(624, 282); + this.splitContainer2.SplitterDistance = 224; this.splitContainer2.TabIndex = 0; // // groupBox1 @@ -117,7 +120,7 @@ this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox1.Location = new System.Drawing.Point(0, 0); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(624, 216); + this.groupBox1.Size = new System.Drawing.Size(624, 224); this.groupBox1.TabIndex = 1; this.groupBox1.TabStop = false; this.groupBox1.Text = "Available Projects"; @@ -130,43 +133,9 @@ this.lstProjects.FormattingEnabled = true; this.lstProjects.Location = new System.Drawing.Point(3, 16); this.lstProjects.Name = "lstProjects"; - this.lstProjects.Size = new System.Drawing.Size(618, 197); + this.lstProjects.Size = new System.Drawing.Size(618, 205); this.lstProjects.TabIndex = 0; // - // groupBox2 - // - this.groupBox2.Controls.Add(this.btnClose); - this.groupBox2.Controls.Add(this.btnNewProject); - this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupBox2.Location = new System.Drawing.Point(0, 0); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(624, 51); - this.groupBox2.TabIndex = 0; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "Options"; - // - // btnClose - // - this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.btnClose.Location = new System.Drawing.Point(509, 16); - this.btnClose.Name = "btnClose"; - this.btnClose.Size = new System.Drawing.Size(109, 32); - this.btnClose.TabIndex = 2; - this.btnClose.Text = "Close"; - this.btnClose.UseVisualStyleBackColor = true; - this.btnClose.Click += new System.EventHandler(this.btnClose_Click); - // - // btnNewProject - // - this.btnNewProject.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.btnNewProject.Location = new System.Drawing.Point(6, 16); - this.btnNewProject.Name = "btnNewProject"; - this.btnNewProject.Size = new System.Drawing.Size(109, 32); - this.btnNewProject.TabIndex = 0; - this.btnNewProject.Text = "New Project"; - this.btnNewProject.UseVisualStyleBackColor = true; - this.btnNewProject.Click += new System.EventHandler(this.btnNewProject_Click); - // // contextMenuStrip1 // this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -214,12 +183,68 @@ this.deleteProjectToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.deleteProjectToolStripMenuItem.Text = "Delete Project"; // + // groupBox2 + // + this.groupBox2.Controls.Add(this.groupBox3); + this.groupBox2.Controls.Add(this.btnClose); + this.groupBox2.Controls.Add(this.btnNewProject); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox2.Location = new System.Drawing.Point(0, 0); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(624, 54); + this.groupBox2.TabIndex = 0; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Options"; + // + // btnClose + // + this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnClose.Location = new System.Drawing.Point(509, 16); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(109, 32); + this.btnClose.TabIndex = 2; + this.btnClose.Text = "Close"; + this.btnClose.UseVisualStyleBackColor = true; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // btnNewProject + // + this.btnNewProject.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnNewProject.Location = new System.Drawing.Point(6, 16); + this.btnNewProject.Name = "btnNewProject"; + this.btnNewProject.Size = new System.Drawing.Size(109, 32); + this.btnNewProject.TabIndex = 0; + this.btnNewProject.Text = "New Project"; + this.btnNewProject.UseVisualStyleBackColor = true; + this.btnNewProject.Click += new System.EventHandler(this.btnNewProject_Click); + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.comServerType); + this.groupBox3.Location = new System.Drawing.Point(121, 10); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(195, 41); + this.groupBox3.TabIndex = 3; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Server Type"; + // + // comServerType + // + this.comServerType.Dock = System.Windows.Forms.DockStyle.Fill; + this.comServerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comServerType.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.comServerType.FormattingEnabled = true; + this.comServerType.Location = new System.Drawing.Point(3, 16); + this.comServerType.Name = "comServerType"; + this.comServerType.Size = new System.Drawing.Size(189, 21); + this.comServerType.TabIndex = 0; + // // frmProjectManager // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.ClientSize = new System.Drawing.Size(624, 444); + this.ClientSize = new System.Drawing.Size(624, 461); this.Controls.Add(this.splitContainer1); this.ForeColor = System.Drawing.Color.Silver; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; @@ -237,8 +262,9 @@ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); this.splitContainer2.ResumeLayout(false); this.groupBox1.ResumeLayout(false); - this.groupBox2.ResumeLayout(false); this.contextMenuStrip1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); this.ResumeLayout(false); } @@ -260,6 +286,8 @@ private System.Windows.Forms.ToolStripMenuItem renameProjectToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; private System.Windows.Forms.ToolStripMenuItem deleteProjectToolStripMenuItem; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.ComboBox comServerType; } } diff --git a/MudDesigner/frmProjectManager.cs b/MudDesigner/frmProjectManager.cs index 9f362bf..e0aa2fa 100644 --- a/MudDesigner/frmProjectManager.cs +++ b/MudDesigner/frmProjectManager.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; +using System.Threading; using MudEngine.FileSystem; using MudEngine.GameManagement; @@ -23,6 +24,8 @@ namespace MudDesigner dynamic _Game; ScriptEngine _ScriptEngine; + Client client; + Thread r; public frmProjectManager() { @@ -64,6 +67,18 @@ namespace MudDesigner //TODO: Do I need to Re-initialize _ScriptEngine? + RefreshProjects(); + + client = new Client(); + client.Initialize("localhost", 555); + + comServerType.Items.Add("Local Server"); + comServerType.Items.Add("Test Server"); + comServerType.SelectedIndex = 0; + } + + private void RefreshProjects() + { _ProjectFiles = Directory.GetFiles(Environment.CurrentDirectory, "*.ini"); foreach (String filename in _ProjectFiles) @@ -102,15 +117,42 @@ namespace MudDesigner private void ShowDesigner() { - frmDesigner form = new frmDesigner(_Game); + frmDesigner form = new frmDesigner(_Game, client); form.Show(); this.Hide(); + + if (comServerType.SelectedItem.ToString() == "Test Server") + { + } + else + { + frmInputBox input = new frmInputBox("Enter the Port that your local server is currently running on."); + + input.ShowDialog(); + + if (input.IsCancel) + return; + + client.Initialize("localhost", Convert.ToInt32(input.Input)); + + if (!client.Connect() || !client.Send("hello", false)) // test send + client data + { + MessageBox.Show("Failed to connect to a local server. Is the server running?", "Mud Designer"); + return; + } + } + while (form.Visible) { Application.DoEvents(); } + //Refresh the project list incase the project was renamed. + lstProjects.Items.Clear(); + + RefreshProjects(); + this.Show(); form = null; } diff --git a/MudEngine/GameManagement/Game.cs b/MudEngine/GameManagement/Game.cs index 0cdc500..2f60d7c 100644 --- a/MudEngine/GameManagement/Game.cs +++ b/MudEngine/GameManagement/Game.cs @@ -50,11 +50,13 @@ namespace MudEngine.GameManagement /// /// Gets or Sets the paths to various project related objects. /// + [Browsable(false)] public SaveDataPaths DataPaths { get; set; } /// /// Gets the scripting engine used by the game. /// + [Browsable(false)] public ScriptEngine scriptEngine { get; internal set; } /// @@ -68,6 +70,7 @@ namespace MudEngine.GameManagement /// [Category("Project Settings")] [Description("If enabled, all objects will be loaded during server startup resulting in a slower server start time, but faster load time during gameplay")] + [Browsable(false)] public Boolean PreCacheObjects { get; set; } /// @@ -154,8 +157,10 @@ namespace MudEngine.GameManagement [DefaultValue("Copper")] public String BaseCurrencyName { get; set; } + [Browsable(false)] public GameTime WorldTime { get; set; } + [Browsable(false)] public GameWorld World { get; set; } #endregion @@ -168,6 +173,7 @@ namespace MudEngine.GameManagement /// /// Gets the current running Server object. /// + [Browsable(false)] public Server Server { get; internal set; } ///