--- trunk/ModularRex/RexNetwork/RexClientView.cs 2008/09/30 15:04:27 4 +++ trunk/ModularRex/RexNetwork/RexClientView.cs 2008/10/17 12:11:52 5 @@ -8,6 +8,7 @@ using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; +using OpenSim.Region.ClientStack; using OpenSim.Region.ClientStack.LindenUDP; namespace ModularRex.RexNetwork @@ -16,6 +17,8 @@ public delegate void RexFaceExpressionDelegate(RexClientView sender, List vParams); + public delegate void RexAvatarProperties(RexClientView sender, List parameters); + public class RexClientView : LLClientView, IClientRexFaceExpression, IClientRexAppearance { private static readonly ILog m_log = @@ -27,21 +30,22 @@ public event RexAppearanceDelegate OnRexAppearance; public event RexFaceExpressionDelegate OnRexFaceExpression; + public event RexAvatarProperties OnRexAvatarProperties; public RexClientView(EndPoint remoteEP, IScene scene, AssetCache assetCache, LLPacketServer packServer, AgentCircuitManager authenSessions, UUID agentId, - UUID sessionId, uint circuitCode, EndPoint proxyEP) + UUID sessionId, uint circuitCode, EndPoint proxyEP, ClientStackUserSettings userSettings) : base(remoteEP, scene, assetCache, packServer, authenSessions, agentId, - sessionId, circuitCode, proxyEP) + sessionId, circuitCode, proxyEP, userSettings) { OnGenericMessage += RealXtendClientView_OnGenericMessage; } public RexClientView(EndPoint remoteEP, IScene scene, AssetCache assetCache, LLPacketServer packServer, AgentCircuitManager authenSessions, UUID agentId, - UUID sessionId, uint circuitCode, EndPoint proxyEP, string rexAvatarURL, string rexAuthURL) + UUID sessionId, uint circuitCode, EndPoint proxyEP, string rexAvatarURL, string rexAuthURL, ClientStackUserSettings userSettings) : base(remoteEP, scene, assetCache, packServer, authenSessions, agentId, - sessionId, circuitCode, proxyEP) + sessionId, circuitCode, proxyEP, userSettings) { OnGenericMessage += RealXtendClientView_OnGenericMessage; @@ -97,8 +101,44 @@ if (OnRexFaceExpression != null) { OnRexFaceExpression(this, args); + return; } } + + if (method == "RexAvatarProp") + { + if(OnRexAvatarProperties != null) + { + OnRexAvatarProperties(this, args); + return; + } + } + + m_log.Warn("[REXCLIENTVIEW] Unhandled GenericMessage (" + method + ") {"); + foreach (string s in args) + { + m_log.Warn("\t" + s); + } + m_log.Warn("}"); + + } + + public void SendRexScriptCommand(string unit, string command, string parameters) + { + List pack = new List(); + + pack.Add(unit); + pack.Add(command); + + if (!string.IsNullOrEmpty(parameters)) + pack.Add(parameters); + + SendGenericMessage("RexScr", pack); + } + + public void SendRexInventoryMessage(string message) + { + SendRexScriptCommand("hud", "ShowInventoryMessage(\"" + message + "\")", ""); } public void SendRexFaceExpression(List expressionData)