| 19 |
|
|
| 20 |
public delegate void RexAvatarProperties(RexClientView sender, List<string> parameters); |
public delegate void RexAvatarProperties(RexClientView sender, List<string> parameters); |
| 21 |
|
|
| 22 |
|
/// <summary> |
| 23 |
|
/// Inherits from LLClientView the majority of functionality |
| 24 |
|
/// Overrides and extends for Rex-specific functionality. |
| 25 |
|
/// |
| 26 |
|
/// In the case whereby functionality uses the same packets but differs |
| 27 |
|
/// between Rex and LL, you can use a override on those specific functions |
| 28 |
|
/// to overload the request. |
| 29 |
|
/// </summary> |
| 30 |
public class RexClientView : LLClientView, IClientRexFaceExpression, IClientRexAppearance |
public class RexClientView : LLClientView, IClientRexFaceExpression, IClientRexAppearance |
| 31 |
{ |
{ |
| 32 |
private static readonly ILog m_log = |
private static readonly ILog m_log = |
| 47 |
: base(remoteEP, scene, assetCache, packServer, authenSessions, agentId, |
: base(remoteEP, scene, assetCache, packServer, authenSessions, agentId, |
| 48 |
sessionId, circuitCode, proxyEP, userSettings) |
sessionId, circuitCode, proxyEP, userSettings) |
| 49 |
{ |
{ |
| 50 |
|
// Rex communication now occurs via GenericMessage |
| 51 |
|
// We have a special handler here below. |
| 52 |
OnGenericMessage += RealXtendClientView_OnGenericMessage; |
OnGenericMessage += RealXtendClientView_OnGenericMessage; |
| 53 |
} |
} |
| 54 |
|
|
| 58 |
: base(remoteEP, scene, assetCache, packServer, authenSessions, agentId, |
: base(remoteEP, scene, assetCache, packServer, authenSessions, agentId, |
| 59 |
sessionId, circuitCode, proxyEP, userSettings) |
sessionId, circuitCode, proxyEP, userSettings) |
| 60 |
{ |
{ |
| 61 |
|
// Rex communication now occurs via GenericMessage |
| 62 |
|
// We have a special handler here below. |
| 63 |
OnGenericMessage += RealXtendClientView_OnGenericMessage; |
OnGenericMessage += RealXtendClientView_OnGenericMessage; |
| 64 |
|
|
| 65 |
RexAvatarURL = rexAvatarURL; |
RexAvatarURL = rexAvatarURL; |
| 66 |
RexAuthURL = rexAuthURL; |
RexAuthURL = rexAuthURL; |
| 67 |
} |
} |
| 68 |
|
|
| 69 |
|
/// <summary> |
| 70 |
|
/// Registers interfaces for IClientCore, |
| 71 |
|
/// every time you make a new Rex-specific |
| 72 |
|
/// Interface. Make sure to register it here. |
| 73 |
|
/// </summary> |
| 74 |
protected override void RegisterInterfaces() |
protected override void RegisterInterfaces() |
| 75 |
{ |
{ |
| 76 |
RegisterInterface<IClientRexAppearance>(this); |
RegisterInterface<IClientRexAppearance>(this); |
| 80 |
base.RegisterInterfaces(); |
base.RegisterInterfaces(); |
| 81 |
} |
} |
| 82 |
|
|
| 83 |
|
/// <summary> |
| 84 |
|
/// The avatar URL for this avatar |
| 85 |
|
/// Eg: http://avatar.com:10000/uuid/ |
| 86 |
|
/// </summary> |
| 87 |
public string RexAvatarURL |
public string RexAvatarURL |
| 88 |
{ |
{ |
| 89 |
get { return m_rexAvatarURL; } |
get { return m_rexAvatarURL; } |
| 98 |
} |
} |
| 99 |
} |
} |
| 100 |
|
|
| 101 |
|
/// <summary> |
| 102 |
|
/// Skype username of the avatar |
| 103 |
|
/// eg: Skypeuser |
| 104 |
|
/// </summary> |
| 105 |
public string RexSkypeURL |
public string RexSkypeURL |
| 106 |
{ |
{ |
| 107 |
get { return m_rexSkypeURL; } |
get { return m_rexSkypeURL; } |
| 108 |
set { m_rexSkypeURL = value; } |
set { m_rexSkypeURL = value; } |
| 109 |
} |
} |
| 110 |
|
|
| 111 |
|
/// <summary> |
| 112 |
|
/// The full Rex Username of this account |
| 113 |
|
/// Eg: user@hostname.com:10001 |
| 114 |
|
/// |
| 115 |
|
/// Note: This is not filled immedietely on |
| 116 |
|
/// creation. This property is filled in |
| 117 |
|
/// via Login and may not be availible |
| 118 |
|
/// immedietely upon connect. |
| 119 |
|
/// |
| 120 |
|
/// The above glitch is scheduled to be |
| 121 |
|
/// fixed by a new RexCommsManager which |
| 122 |
|
/// will allow this to be set at spawn in |
| 123 |
|
/// login. |
| 124 |
|
/// </summary> |
| 125 |
public string RexAccount |
public string RexAccount |
| 126 |
{ |
{ |
| 127 |
get { return m_rexAccountID; } |
get { return m_rexAccountID; } |
| 133 |
} |
} |
| 134 |
} |
} |
| 135 |
|
|
| 136 |
|
/// <summary> |
| 137 |
|
/// The URL of the Avatar's Authentication Server |
| 138 |
|
/// Eg: http://authentication.com:10001/ |
| 139 |
|
/// </summary> |
| 140 |
public string RexAuthURL |
public string RexAuthURL |
| 141 |
{ |
{ |
| 142 |
get { return m_rexAuthURL; } |
get { return m_rexAuthURL; } |
| 149 |
} |
} |
| 150 |
} |
} |
| 151 |
|
|
| 152 |
|
/// <summary> |
| 153 |
|
/// Special - used to convert GenericMessage packets |
| 154 |
|
/// to their appropriate Rex equivilents. |
| 155 |
|
/// |
| 156 |
|
/// Eg: GenericMessage(RexAppearance) -> |
| 157 |
|
/// OnRexAppearance(...) |
| 158 |
|
/// </summary> |
| 159 |
void RealXtendClientView_OnGenericMessage(object sender, string method, List<string> args) |
void RealXtendClientView_OnGenericMessage(object sender, string method, List<string> args) |
| 160 |
{ |
{ |
| 161 |
//TODO: Convert to Dictionary<Method, GenericMessageHandler> |
//TODO: Convert to Dictionary<Method, GenericMessageHandler> |
| 194 |
|
|
| 195 |
} |
} |
| 196 |
|
|
| 197 |
|
/// <summary> |
| 198 |
|
/// Sends a Rex Script Command to the viewer |
| 199 |
|
/// attached to this ClientView. |
| 200 |
|
/// |
| 201 |
|
/// If you are coding something, try use |
| 202 |
|
/// SendRex*** instead, as many of them |
| 203 |
|
/// will trigger this instead with type |
| 204 |
|
/// and parameter checking. |
| 205 |
|
/// </summary> |
| 206 |
public void SendRexScriptCommand(string unit, string command, string parameters) |
public void SendRexScriptCommand(string unit, string command, string parameters) |
| 207 |
{ |
{ |
| 208 |
List<string> pack = new List<string>(); |
List<string> pack = new List<string>(); |