Reushing the file rearangement
This commit is contained in:
		
							parent
							
								
									8fd215aec0
								
							
						
					
					
						commit
						da289b8f1c
					
				
					 2 changed files with 55 additions and 18 deletions
				
			
		|  | @ -13,7 +13,11 @@ public class ChatUI : SRSingleton<ChatUI> | ||||||
|     private float fadeTime; |     private float fadeTime; | ||||||
|     private List<ChatMessage> messages = new List<ChatMessage>(); |     private List<ChatMessage> messages = new List<ChatMessage>(); | ||||||
|     private Vector2 chatScroll; |     private Vector2 chatScroll; | ||||||
|  |     int maxWidth = 290; | ||||||
| 
 | 
 | ||||||
|  |     /// <summary> | ||||||
|  |     /// create a chat message to be displayed | ||||||
|  |     /// </summary> | ||||||
|     public class ChatMessage |     public class ChatMessage | ||||||
|     { |     { | ||||||
|         public string Text; |         public string Text; | ||||||
|  | @ -27,52 +31,68 @@ public class ChatUI : SRSingleton<ChatUI> | ||||||
|             Time = DateTime.Now; |             Time = DateTime.Now; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 |     /// <summary> | ||||||
|  |     /// On chat ui update triggered, handle it | ||||||
|  |     /// </summary> | ||||||
|     private void Update() |     private void Update() | ||||||
|     { |     { | ||||||
|  |         //only display chat if in multiplayer mode | ||||||
|         if (!Globals.IsMultiplayer) |         if (!Globals.IsMultiplayer) | ||||||
|         { |         { | ||||||
|             openChat = false; |             openChat = false; | ||||||
|             message = ""; |             message = ""; | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
| 
 |         //if enter is pressed start chat typing mode | ||||||
|         if (Input.GetKeyUp(KeyCode.Return)) |         if (Input.GetKeyUp(KeyCode.Return)) | ||||||
|         { |         { | ||||||
|             StartCoroutine(FocusChat()); |             StartCoroutine(FocusChat()); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 |     /// <summary> | ||||||
|  |     /// Crreate the Chat gui | ||||||
|  |     /// </summary> | ||||||
|     private void OnGUI() |     private void OnGUI() | ||||||
|     { |     { | ||||||
|  |         //only mess with the gui in multiplayer mode | ||||||
|         if (!Globals.IsMultiplayer) return; |         if (!Globals.IsMultiplayer) return; | ||||||
| 
 | 
 | ||||||
|         if (openChat) |         if (openChat) | ||||||
|         { |         { | ||||||
|             GUILayout.BeginArea(new Rect(20, Screen.height / 2, 500, 300), GUI.skin.box); |             //draw chat area  | ||||||
|  |             GUILayout.BeginArea(new Rect(20, Screen.height / 2, maxWidth + 10, 300), GUI.skin.box); | ||||||
|             chatScroll = GUILayout.BeginScrollView(chatScroll); |             chatScroll = GUILayout.BeginScrollView(chatScroll); | ||||||
|             var skin = GUI.skin.box; |             var skin = GUI.skin.box; | ||||||
|             skin.wordWrap = true; |             skin.wordWrap = true; | ||||||
|             skin.alignment = TextAnchor.MiddleLeft; |             skin.alignment = TextAnchor.MiddleLeft; | ||||||
|  | 
 | ||||||
|  |             //add each mesage into the chat box scroller | ||||||
|             foreach (var msg in messages) |             foreach (var msg in messages) | ||||||
|             { |             { | ||||||
|                 GUILayout.Label(wrapString(msg.Text, 490), skin, GUILayout.MaxWidth(490)); |                 GUILayout.Label(wrapString(msg.Text, maxWidth), skin, GUILayout.MaxWidth(maxWidth)); | ||||||
|             } |             } | ||||||
|             GUILayout.EndScrollView(); |             GUILayout.EndScrollView(); | ||||||
|  | 
 | ||||||
|  |             //add display for text input area | ||||||
|             GUI.SetNextControlName("ChatInput"); |             GUI.SetNextControlName("ChatInput"); | ||||||
|             message = GUILayout.TextField(message); |             message = GUILayout.TextField(message); | ||||||
|             GUILayout.EndArea(); |             GUILayout.EndArea(); | ||||||
| 
 | 
 | ||||||
|  |             //focus the input | ||||||
|             GUI.FocusControl("ChatInput"); |             GUI.FocusControl("ChatInput"); | ||||||
| 
 | 
 | ||||||
|  |             //watch for changes to the text input | ||||||
|             Event e = Event.current; |             Event e = Event.current; | ||||||
|             if (e.rawType == EventType.KeyUp && e.keyCode == KeyCode.Return) |             if (e.rawType == EventType.KeyUp && e.keyCode == KeyCode.Return) | ||||||
|             { |             { | ||||||
|  |                 //on send close chat | ||||||
|                 openChat = !openChat; |                 openChat = !openChat; | ||||||
|                 if (!string.IsNullOrWhiteSpace(message)) |                 if (!string.IsNullOrWhiteSpace(message)) | ||||||
|                 { |                 { | ||||||
|  |                     //if server send message to all plauers | ||||||
|                     if (Globals.IsServer) |                     if (Globals.IsServer) | ||||||
|                     { |                     { | ||||||
|  |                         //if server send it to the server | ||||||
|                         AddChatMessage(Globals.Username + ": " + message); |                         AddChatMessage(Globals.Username + ": " + message); | ||||||
|                         new PacketPlayerChat() |                         new PacketPlayerChat() | ||||||
|                         { |                         { | ||||||
|  | @ -81,6 +101,7 @@ public class ChatUI : SRSingleton<ChatUI> | ||||||
|                     } |                     } | ||||||
|                     else |                     else | ||||||
|                     { |                     { | ||||||
|  |                         //if player send it to the server | ||||||
|                         new PacketPlayerChat() |                         new PacketPlayerChat() | ||||||
|                         { |                         { | ||||||
|                             message = message |                             message = message | ||||||
|  | @ -90,13 +111,16 @@ public class ChatUI : SRSingleton<ChatUI> | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         else |         else //if chat isnt open yet  | ||||||
|         { |         { | ||||||
|             GUILayout.BeginArea(new Rect(20, Screen.height / 2, 500, 300)); |             //draw chat area  | ||||||
|  |             GUILayout.BeginArea(new Rect(20, Screen.height / 2, maxWidth+ 10, 300)); | ||||||
|             chatScroll = GUILayout.BeginScrollView(chatScroll); |             chatScroll = GUILayout.BeginScrollView(chatScroll); | ||||||
|             var skin = GUI.skin.box; |             var skin = GUI.skin.box; | ||||||
|             skin.wordWrap = true; |             skin.wordWrap = true; | ||||||
|             skin.alignment = TextAnchor.MiddleLeft; |             skin.alignment = TextAnchor.MiddleLeft; | ||||||
|  | 
 | ||||||
|  |             //add each mesage into the chat box scroller | ||||||
|             foreach (var msg in messages) |             foreach (var msg in messages) | ||||||
|             { |             { | ||||||
|                 if (msg.FadeTime > 0f) |                 if (msg.FadeTime > 0f) | ||||||
|  | @ -105,26 +129,34 @@ public class ChatUI : SRSingleton<ChatUI> | ||||||
|                     var c = GUI.color; |                     var c = GUI.color; | ||||||
|                     c.a = (msg.FadeTime / 5f); |                     c.a = (msg.FadeTime / 5f); | ||||||
|                     GUI.color = c; |                     GUI.color = c; | ||||||
|                     GUILayout.Label(wrapString(msg.Text, 490), skin, GUILayout.MaxWidth(490)); |                     GUILayout.Label(wrapString(msg.Text, maxWidth), skin, GUILayout.MaxWidth(maxWidth)); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             GUILayout.EndScrollView(); |             GUILayout.EndScrollView(); | ||||||
|             GUILayout.EndArea(); |             GUILayout.EndArea(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 |     /// <summary> | ||||||
|  |     /// Add a chat message to be displayed | ||||||
|  |     /// </summary> | ||||||
|  |     /// <param name="message">Message to display</param> | ||||||
|     public void AddChatMessage(string message) |     public void AddChatMessage(string message) | ||||||
|     { |     { | ||||||
|         fadeTime = 10f; |         fadeTime = 10f; | ||||||
|         messages.Add(new ChatMessage(message)); |         messages.Add(new ChatMessage(message)); | ||||||
|         chatScroll = new Vector2(0, 100000); |         chatScroll = new Vector2(0, 100000); | ||||||
|     } |     } | ||||||
| 
 |     /// <summary> | ||||||
|  |     /// Trigger a full clear of the chat | ||||||
|  |     /// </summary> | ||||||
|     public void Clear() |     public void Clear() | ||||||
|     { |     { | ||||||
|         messages.Clear(); |         messages.Clear(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /// <summary> | ||||||
|  |     /// Trigger focus on the chat box for when the uer hits enter | ||||||
|  |     /// </summary> | ||||||
|     private IEnumerator FocusChat() |     private IEnumerator FocusChat() | ||||||
|     { |     { | ||||||
|         yield return new WaitForEndOfFrame(); |         yield return new WaitForEndOfFrame(); | ||||||
|  | @ -133,6 +165,12 @@ public class ChatUI : SRSingleton<ChatUI> | ||||||
|         GUI.FocusControl("ChatInput"); |         GUI.FocusControl("ChatInput"); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /// <summary> | ||||||
|  |     /// Create the wrapped string to display in the chat box | ||||||
|  |     /// </summary> | ||||||
|  |     /// <param name="msg">Message to display</param> | ||||||
|  |     /// <param name="width">Width of the chat box</param> | ||||||
|  |     /// <returns></returns> | ||||||
|     string wrapString(string msg, int width) |     string wrapString(string msg, int width) | ||||||
|     { |     { | ||||||
|         string[] words = msg.Split(" "[0]); |         string[] words = msg.Split(" "[0]); | ||||||
|  |  | ||||||
|  | @ -160,11 +160,11 @@ | ||||||
|     </Reference> |     </Reference> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Compile Include="ChatUI.cs" /> |  | ||||||
|     <Compile Include="Compression.cs" /> |  | ||||||
|     <Compile Include="Console\ConsoleInput.cs" /> |     <Compile Include="Console\ConsoleInput.cs" /> | ||||||
|     <Compile Include="Console\ConsoleWindow.cs" /> |     <Compile Include="Console\ConsoleWindow.cs" /> | ||||||
|     <Compile Include="Extensions.cs" /> |     <Compile Include="Custom UI\ChatUI.cs" /> | ||||||
|  |     <Compile Include="Custom UI\MultiplayerUI.cs" /> | ||||||
|  |     <Compile Include="Custom UI\TestUI.cs" /> | ||||||
|     <Compile Include="Globals.cs" /> |     <Compile Include="Globals.cs" /> | ||||||
|     <Compile Include="Lidgren.Network\Encryption\NetAESEncryption.cs" /> |     <Compile Include="Lidgren.Network\Encryption\NetAESEncryption.cs" /> | ||||||
|     <Compile Include="Lidgren.Network\Encryption\NetBlockEncryptionBase.cs" /> |     <Compile Include="Lidgren.Network\Encryption\NetBlockEncryptionBase.cs" /> | ||||||
|  | @ -242,7 +242,6 @@ | ||||||
|     <Compile Include="Lidgren.Network\Platform\PlatformWinRT.cs" /> |     <Compile Include="Lidgren.Network\Platform\PlatformWinRT.cs" /> | ||||||
|     <Compile Include="MainSRML.cs" /> |     <Compile Include="MainSRML.cs" /> | ||||||
|     <Compile Include="MainStandalone.cs" /> |     <Compile Include="MainStandalone.cs" /> | ||||||
|     <Compile Include="MultiplayerUI.cs" /> |  | ||||||
|     <Compile Include="Networking\NetworkAccessDoor.cs" /> |     <Compile Include="Networking\NetworkAccessDoor.cs" /> | ||||||
|     <Compile Include="Networking\NetworkActor.cs" /> |     <Compile Include="Networking\NetworkActor.cs" /> | ||||||
|     <Compile Include="Networking\NetworkAmmo.cs" /> |     <Compile Include="Networking\NetworkAmmo.cs" /> | ||||||
|  | @ -476,7 +475,6 @@ | ||||||
|     <Compile Include="Patches\Patch_WeaponVacuum.cs" /> |     <Compile Include="Patches\Patch_WeaponVacuum.cs" /> | ||||||
|     <Compile Include="Patches\Patch_WorldStateMasterSwitch.cs" /> |     <Compile Include="Patches\Patch_WorldStateMasterSwitch.cs" /> | ||||||
|     <Compile Include="Patches\Patch_ZoneDirector.cs" /> |     <Compile Include="Patches\Patch_ZoneDirector.cs" /> | ||||||
|     <Compile Include="PauseState.cs" /> |  | ||||||
|     <Compile Include="Properties\AssemblyInfo.cs"> |     <Compile Include="Properties\AssemblyInfo.cs"> | ||||||
|       <AutoGen>True</AutoGen> |       <AutoGen>True</AutoGen> | ||||||
|       <DesignTime>True</DesignTime> |       <DesignTime>True</DesignTime> | ||||||
|  | @ -484,9 +482,10 @@ | ||||||
|     </Compile> |     </Compile> | ||||||
|     <Compile Include="SRMP.cs" /> |     <Compile Include="SRMP.cs" /> | ||||||
|     <Compile Include="Console\SRMPConsole.cs" /> |     <Compile Include="Console\SRMPConsole.cs" /> | ||||||
|     <Compile Include="TestUI.cs" /> |     <Compile Include="Utils\Compression.cs" /> | ||||||
|     <Compile Include="UserData.cs" /> |     <Compile Include="Utils\Extensions.cs" /> | ||||||
|     <Compile Include="Utils.cs" /> |     <Compile Include="Utils\Objects.cs" /> | ||||||
|  |     <Compile Include="Utils\Utils.cs" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Content Include="Console\Console Commands.txt" /> |     <Content Include="Console\Console Commands.txt" /> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Twirlbug
						Twirlbug