diff options
author | Melanie | 2012-10-26 21:13:01 +0100 |
---|---|---|
committer | Melanie | 2012-10-26 21:13:01 +0100 |
commit | 26cc57b6cafda5168baab49cabe34d96f01dbd6d (patch) | |
tree | 94e078a75ab68825e64b15498f67d82988858dc9 /OpenSim/Framework | |
parent | Merge branch 'master' into careminster (diff) | |
parent | minor: Make the error thrown logged when a simulator in grid mode is trying t... (diff) | |
download | opensim-SC_OLD-26cc57b6cafda5168baab49cabe34d96f01dbd6d.zip opensim-SC_OLD-26cc57b6cafda5168baab49cabe34d96f01dbd6d.tar.gz opensim-SC_OLD-26cc57b6cafda5168baab49cabe34d96f01dbd6d.tar.bz2 opensim-SC_OLD-26cc57b6cafda5168baab49cabe34d96f01dbd6d.tar.xz |
Merge branch 'master' into careminster
Conflicts:
OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r-- | OpenSim/Framework/AvatarAppearance.cs | 3 | ||||
-rw-r--r-- | OpenSim/Framework/Client/IClientChat.cs | 7 | ||||
-rw-r--r-- | OpenSim/Framework/Console/ConsoleUtil.cs | 246 | ||||
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 16 |
4 files changed, 201 insertions, 71 deletions
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs index c5d9641..1638541 100644 --- a/OpenSim/Framework/AvatarAppearance.cs +++ b/OpenSim/Framework/AvatarAppearance.cs | |||
@@ -358,6 +358,9 @@ namespace OpenSim.Framework | |||
358 | SetVisualParams(visualParams); | 358 | SetVisualParams(visualParams); |
359 | } | 359 | } |
360 | 360 | ||
361 | /// <summary> | ||
362 | /// Set avatar height by a calculation based on their visual parameters. | ||
363 | /// </summary> | ||
361 | public virtual void SetHeight() | 364 | public virtual void SetHeight() |
362 | { | 365 | { |
363 | // Start with shortest possible female avatar height | 366 | // Start with shortest possible female avatar height |
diff --git a/OpenSim/Framework/Client/IClientChat.cs b/OpenSim/Framework/Client/IClientChat.cs index 078ea9b..86b1faa 100644 --- a/OpenSim/Framework/Client/IClientChat.cs +++ b/OpenSim/Framework/Client/IClientChat.cs | |||
@@ -33,7 +33,8 @@ namespace OpenSim.Framework.Client | |||
33 | { | 33 | { |
34 | event ChatMessage OnChatFromClient; | 34 | event ChatMessage OnChatFromClient; |
35 | 35 | ||
36 | void SendChatMessage(string message, byte type, Vector3 fromPos, string fromName, UUID fromAgentID, byte source, | 36 | void SendChatMessage( |
37 | byte audible); | 37 | string message, byte type, Vector3 fromPos, string fromName, UUID fromAgentID, UUID ownerID, byte source, |
38 | byte audible); | ||
38 | } | 39 | } |
39 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Console/ConsoleUtil.cs b/OpenSim/Framework/Console/ConsoleUtil.cs index a7cf0c0..16a63e0 100644 --- a/OpenSim/Framework/Console/ConsoleUtil.cs +++ b/OpenSim/Framework/Console/ConsoleUtil.cs | |||
@@ -27,88 +27,202 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.IO; | ||
30 | using System.Linq; | 31 | using System.Linq; |
31 | using System.Reflection; | 32 | using System.Reflection; |
32 | using log4net; | 33 | using log4net; |
33 | using OpenMetaverse; | 34 | using OpenMetaverse; |
34 | 35 | ||
35 | public class ConsoleUtil | 36 | namespace OpenSim.Framework.Console |
36 | { | 37 | { |
37 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 38 | public class ConsoleUtil |
38 | |||
39 | public const string MinRawConsoleVectorValue = "-~"; | ||
40 | public const string MaxRawConsoleVectorValue = "~"; | ||
41 | |||
42 | public const string VectorSeparator = ","; | ||
43 | public static char[] VectorSeparatorChars = VectorSeparator.ToCharArray(); | ||
44 | |||
45 | /// <summary> | ||
46 | /// Convert a minimum vector input from the console to an OpenMetaverse.Vector3 | ||
47 | /// </summary> | ||
48 | /// <param name='rawConsoleVector'>/param> | ||
49 | /// <param name='vector'></param> | ||
50 | /// <returns></returns> | ||
51 | public static bool TryParseConsoleMinVector(string rawConsoleVector, out Vector3 vector) | ||
52 | { | 39 | { |
53 | return TryParseConsoleVector(rawConsoleVector, c => float.MinValue.ToString(), out vector); | 40 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
54 | } | ||
55 | 41 | ||
56 | /// <summary> | 42 | public const int LocalIdNotFound = 0; |
57 | /// Convert a maximum vector input from the console to an OpenMetaverse.Vector3 | 43 | |
58 | /// </summary> | 44 | /// <summary> |
59 | /// <param name='rawConsoleVector'>/param> | 45 | /// Used by modules to display stock co-ordinate help, though possibly this should be under some general section |
60 | /// <param name='vector'></param> | 46 | /// rather than in each help summary. |
61 | /// <returns></returns> | 47 | /// </summary> |
62 | public static bool TryParseConsoleMaxVector(string rawConsoleVector, out Vector3 vector) | 48 | public const string CoordHelp |
63 | { | 49 | = @"Each component of the coord is comma separated. There must be no spaces between the commas. |
64 | return TryParseConsoleVector(rawConsoleVector, c => float.MaxValue.ToString(), out vector); | 50 | If you don't care about the z component you can simply omit it. |
65 | } | 51 | If you don't care about the x or y components then you can leave them blank (though a comma is still required) |
52 | If you want to specify the maxmimum value of a component then you can use ~ instead of a number | ||
53 | If you want to specify the minimum value of a component then you can use -~ instead of a number | ||
54 | e.g. | ||
55 | delete object pos 20,20,20 to 40,40,40 | ||
56 | delete object pos 20,20 to 40,40 | ||
57 | delete object pos ,20,20 to ,40,40 | ||
58 | delete object pos ,,30 to ,,~ | ||
59 | delete object pos ,,-~ to ,,30"; | ||
60 | |||
61 | public const string MinRawConsoleVectorValue = "-~"; | ||
62 | public const string MaxRawConsoleVectorValue = "~"; | ||
63 | |||
64 | public const string VectorSeparator = ","; | ||
65 | public static char[] VectorSeparatorChars = VectorSeparator.ToCharArray(); | ||
66 | 66 | ||
67 | /// <summary> | 67 | /// <summary> |
68 | /// Convert a vector input from the console to an OpenMetaverse.Vector3 | 68 | /// Check if the given file path exists. |
69 | /// </summary> | 69 | /// </summary> |
70 | /// <param name='rawConsoleVector'> | 70 | /// <remarks>If not, warning is printed to the given console.</remarks> |
71 | /// A string in the form <x>,<y>,<z> where there is no space between values. | 71 | /// <returns>true if the file does not exist, false otherwise.</returns> |
72 | /// Any component can be missing (e.g. ,,40). blankComponentFunc is invoked to replace the blank with a suitable value | 72 | /// <param name='console'></param> |
73 | /// Also, if the blank component is at the end, then the comma can be missed off entirely (e.g. 40,30 or 40) | 73 | /// <param name='path'></param> |
74 | /// The strings "~" and "-~" are valid in components. The first substitutes float.MaxValue whilst the second is float.MinValue | 74 | public static bool CheckFileDoesNotExist(ICommandConsole console, string path) |
75 | /// Other than that, component values must be numeric. | 75 | { |
76 | /// </param> | 76 | if (File.Exists(path)) |
77 | /// <param name='blankComponentFunc'></param> | 77 | { |
78 | /// <param name='vector'></param> | 78 | console.OutputFormat("File {0} already exists. Please move or remove it.", path); |
79 | /// <returns></returns> | 79 | return false; |
80 | public static bool TryParseConsoleVector( | 80 | } |
81 | string rawConsoleVector, Func<string, string> blankComponentFunc, out Vector3 vector) | ||
82 | { | ||
83 | List<string> components = rawConsoleVector.Split(VectorSeparatorChars).ToList(); | ||
84 | 81 | ||
85 | if (components.Count < 1 || components.Count > 3) | 82 | return true; |
83 | } | ||
84 | |||
85 | /// <summary> | ||
86 | /// Try to parse a console UUID from the console. | ||
87 | /// </summary> | ||
88 | /// <remarks> | ||
89 | /// Will complain to the console if parsing fails. | ||
90 | /// </remarks> | ||
91 | /// <returns></returns> | ||
92 | /// <param name='console'>If null then no complaint is printed.</param> | ||
93 | /// <param name='rawUuid'></param> | ||
94 | /// <param name='uuid'></param> | ||
95 | public static bool TryParseConsoleUuid(ICommandConsole console, string rawUuid, out UUID uuid) | ||
86 | { | 96 | { |
87 | vector = Vector3.Zero; | 97 | if (!UUID.TryParse(rawUuid, out uuid)) |
88 | return false; | 98 | { |
99 | if (console != null) | ||
100 | console.OutputFormat("{0} is not a valid uuid", rawUuid); | ||
101 | |||
102 | return false; | ||
103 | } | ||
104 | |||
105 | return true; | ||
89 | } | 106 | } |
90 | 107 | ||
91 | for (int i = components.Count; i < 3; i++) | 108 | public static bool TryParseConsoleLocalId(ICommandConsole console, string rawLocalId, out uint localId) |
92 | components.Add(""); | 109 | { |
110 | if (!uint.TryParse(rawLocalId, out localId)) | ||
111 | { | ||
112 | if (console != null) | ||
113 | console.OutputFormat("{0} is not a valid local id", localId); | ||
114 | |||
115 | return false; | ||
116 | } | ||
93 | 117 | ||
94 | List<string> semiDigestedComponents | 118 | if (localId == 0) |
95 | = components.ConvertAll<string>( | 119 | { |
96 | c => | 120 | if (console != null) |
97 | { | 121 | console.OutputFormat("{0} is not a valid local id - it must be greater than 0", localId); |
98 | if (c == "") | ||
99 | return blankComponentFunc.Invoke(c); | ||
100 | else if (c == MaxRawConsoleVectorValue) | ||
101 | return float.MaxValue.ToString(); | ||
102 | else if (c == MinRawConsoleVectorValue) | ||
103 | return float.MinValue.ToString(); | ||
104 | else | ||
105 | return c; | ||
106 | }); | ||
107 | 122 | ||
108 | string semiDigestedConsoleVector = string.Join(VectorSeparator, semiDigestedComponents.ToArray()); | 123 | return false; |
124 | } | ||
109 | 125 | ||
110 | // m_log.DebugFormat("[CONSOLE UTIL]: Parsing {0} into OpenMetaverse.Vector3", semiDigestedConsoleVector); | 126 | return true; |
127 | } | ||
128 | |||
129 | /// <summary> | ||
130 | /// Tries to parse the input as either a UUID or a local ID. | ||
131 | /// </summary> | ||
132 | /// <returns>true if parsing succeeded, false otherwise.</returns> | ||
133 | /// <param name='console'></param> | ||
134 | /// <param name='rawId'></param> | ||
135 | /// <param name='uuid'></param> | ||
136 | /// <param name='localId'> | ||
137 | /// Will be set to ConsoleUtil.LocalIdNotFound if parsing result was a UUID or no parse succeeded. | ||
138 | /// </param> | ||
139 | public static bool TryParseConsoleId(ICommandConsole console, string rawId, out UUID uuid, out uint localId) | ||
140 | { | ||
141 | if (TryParseConsoleUuid(null, rawId, out uuid)) | ||
142 | { | ||
143 | localId = LocalIdNotFound; | ||
144 | return true; | ||
145 | } | ||
146 | |||
147 | if (TryParseConsoleLocalId(null, rawId, out localId)) | ||
148 | { | ||
149 | return true; | ||
150 | } | ||
111 | 151 | ||
112 | return Vector3.TryParse(semiDigestedConsoleVector, out vector); | 152 | if (console != null) |
153 | console.OutputFormat("{0} is not a valid UUID or local id", rawId); | ||
154 | |||
155 | return false; | ||
156 | } | ||
157 | |||
158 | /// <summary> | ||
159 | /// Convert a minimum vector input from the console to an OpenMetaverse.Vector3 | ||
160 | /// </summary> | ||
161 | /// <param name='rawConsoleVector'>/param> | ||
162 | /// <param name='vector'></param> | ||
163 | /// <returns></returns> | ||
164 | public static bool TryParseConsoleMinVector(string rawConsoleVector, out Vector3 vector) | ||
165 | { | ||
166 | return TryParseConsoleVector(rawConsoleVector, c => float.MinValue.ToString(), out vector); | ||
167 | } | ||
168 | |||
169 | /// <summary> | ||
170 | /// Convert a maximum vector input from the console to an OpenMetaverse.Vector3 | ||
171 | /// </summary> | ||
172 | /// <param name='rawConsoleVector'>/param> | ||
173 | /// <param name='vector'></param> | ||
174 | /// <returns></returns> | ||
175 | public static bool TryParseConsoleMaxVector(string rawConsoleVector, out Vector3 vector) | ||
176 | { | ||
177 | return TryParseConsoleVector(rawConsoleVector, c => float.MaxValue.ToString(), out vector); | ||
178 | } | ||
179 | |||
180 | /// <summary> | ||
181 | /// Convert a vector input from the console to an OpenMetaverse.Vector3 | ||
182 | /// </summary> | ||
183 | /// <param name='rawConsoleVector'> | ||
184 | /// A string in the form <x>,<y>,<z> where there is no space between values. | ||
185 | /// Any component can be missing (e.g. ,,40). blankComponentFunc is invoked to replace the blank with a suitable value | ||
186 | /// Also, if the blank component is at the end, then the comma can be missed off entirely (e.g. 40,30 or 40) | ||
187 | /// The strings "~" and "-~" are valid in components. The first substitutes float.MaxValue whilst the second is float.MinValue | ||
188 | /// Other than that, component values must be numeric. | ||
189 | /// </param> | ||
190 | /// <param name='blankComponentFunc'></param> | ||
191 | /// <param name='vector'></param> | ||
192 | /// <returns></returns> | ||
193 | public static bool TryParseConsoleVector( | ||
194 | string rawConsoleVector, Func<string, string> blankComponentFunc, out Vector3 vector) | ||
195 | { | ||
196 | List<string> components = rawConsoleVector.Split(VectorSeparatorChars).ToList(); | ||
197 | |||
198 | if (components.Count < 1 || components.Count > 3) | ||
199 | { | ||
200 | vector = Vector3.Zero; | ||
201 | return false; | ||
202 | } | ||
203 | |||
204 | for (int i = components.Count; i < 3; i++) | ||
205 | components.Add(""); | ||
206 | |||
207 | List<string> semiDigestedComponents | ||
208 | = components.ConvertAll<string>( | ||
209 | c => | ||
210 | { | ||
211 | if (c == "") | ||
212 | return blankComponentFunc.Invoke(c); | ||
213 | else if (c == MaxRawConsoleVectorValue) | ||
214 | return float.MaxValue.ToString(); | ||
215 | else if (c == MinRawConsoleVectorValue) | ||
216 | return float.MinValue.ToString(); | ||
217 | else | ||
218 | return c; | ||
219 | }); | ||
220 | |||
221 | string semiDigestedConsoleVector = string.Join(VectorSeparator, semiDigestedComponents.ToArray()); | ||
222 | |||
223 | // m_log.DebugFormat("[CONSOLE UTIL]: Parsing {0} into OpenMetaverse.Vector3", semiDigestedConsoleVector); | ||
224 | |||
225 | return Vector3.TryParse(semiDigestedConsoleVector, out vector); | ||
226 | } | ||
113 | } | 227 | } |
114 | } \ No newline at end of file | 228 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index e95149d..a1df637 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -1112,8 +1112,20 @@ namespace OpenSim.Framework | |||
1112 | void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs); | 1112 | void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs); |
1113 | void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args); | 1113 | void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args); |
1114 | 1114 | ||
1115 | void SendChatMessage(string message, byte type, Vector3 fromPos, string fromName, UUID fromAgentID, byte source, | 1115 | /// <summary> |
1116 | byte audible); | 1116 | /// Send chat to the viewer. |
1117 | /// </summary> | ||
1118 | /// <param name='message'></param> | ||
1119 | /// <param name='type'></param> | ||
1120 | /// <param name='fromPos'></param> | ||
1121 | /// <param name='fromName'></param> | ||
1122 | /// <param name='fromAgentID'></param> | ||
1123 | /// <param name='ownerID'></param> | ||
1124 | /// <param name='source'></param> | ||
1125 | /// <param name='audible'></param> | ||
1126 | void SendChatMessage( | ||
1127 | string message, byte type, Vector3 fromPos, string fromName, UUID fromAgentID, UUID ownerID, byte source, | ||
1128 | byte audible); | ||
1117 | 1129 | ||
1118 | void SendInstantMessage(GridInstantMessage im); | 1130 | void SendInstantMessage(GridInstantMessage im); |
1119 | 1131 | ||