/// <summary> /// Event handler for outgoing IMs /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Netcom_InstantMessageSent(object sender, Radegast.Netcom.InstantMessageSentEventArgs e) { // Message to an individual Conversation.IMSession sess = (IMSession)control.converse.GetConversation(control.instance.Names.Get(e.TargetID, true)); if (sess != null) sess.OnMessage(Client.Self.AgentID, Client.Self.Name, e.Message); }
void ProcessAvatar(Radegast.Rendering.RenderAvatar av) { GameObject avatarGameObject = new GameObject(av.avatar.LocalID.ToString()); avatarGameObject.transform.position = new UnityEngine.Vector3(av.avatar.Position.X, av.avatar.Position.Y, -av.avatar.Position.Z); foreach (Radegast.Rendering.GLMesh mesh in av.glavatar._meshes.Values) { if (av.glavatar._showSkirt == false && mesh.Name == "skirtMesh") continue; UnityEngine.Vector3[] vertices = new UnityEngine.Vector3[mesh.RenderData.Vertices.Length / 3]; UnityEngine.Vector2[] uvs = new UnityEngine.Vector2[mesh.RenderData.Vertices.Length / 3]; UnityEngine.Vector3[] normals = new UnityEngine.Vector3[mesh.RenderData.Vertices.Length / 3]; int[] triangles = new int[mesh.RenderData.Indices.Length]; for (int i = 0; i < mesh.RenderData.Vertices.Length / 3; ++i) { vertices[i].x = mesh.RenderData.Vertices[3*i]; vertices[i].y = mesh.RenderData.Vertices[3*i+1]; vertices[i].z = -mesh.RenderData.Vertices[3*i+2]; uvs[i].x = mesh.RenderData.TexCoords[2*i]; uvs[i].y = mesh.RenderData.TexCoords[2*i+1]; normals[i].x = mesh.RenderData.Normals[3*i]; normals[i].y = mesh.RenderData.Normals[3*i+1]; normals[i].z = -mesh.RenderData.Normals[3*i+2]; } for (int i = 0; i < mesh.RenderData.Indices.Length; i += 3) { //HACK: OpenGL's default front face is counter-clock-wise triangles[i] = mesh.RenderData.Indices[i+2]; triangles[i+1] = mesh.RenderData.Indices[i+1]; triangles[i+2] = mesh.RenderData.Indices[i]; } GameObject part = new GameObject(mesh.Name); MeshRenderer mr = part.AddComponent("MeshRenderer") as MeshRenderer; if (Application.platform == RuntimePlatform.Android) mr.material = avMaterials[(AvatarTextureIndex)mesh.teFaceID]; part.AddComponent("MeshFilter"); part.transform.parent = avatarGameObject.transform; if (mesh.Name == "eyelashMesh") part.transform.localPosition = new UnityEngine.Vector3(-mesh.Position.X, 0, mesh.Position.Z); else part.transform.localPosition = new UnityEngine.Vector3(0, 0, 0); UnityEngine.Mesh meshUnity = (part.GetComponent<MeshFilter>() as MeshFilter).mesh; meshUnity.vertices = vertices; meshUnity.uv = uvs; meshUnity.triangles = triangles; meshUnity.normals = normals; } avatars.Add(av.avatar.LocalID, avatarGameObject); renderAvatars.Add(av.avatar.LocalID, av); avatarGameObject.transform.parent = avatarObjects.transform; }
void Netcom_ClientLoggingIn(object sender, Radegast.Netcom.OverrideEventArgs e) { Talker.SayMore("Logging in. Please wait."); }
private void IMSent(object sender, Radegast.Netcom.InstantMessageSentEventArgs e) { if (OnInstantMessageSent!=null) try { OnInstantMessageSent(this, new IMessageSentEventArgs(e.Message, e.TargetID, e.SessionID, e.Timestamp)); } catch (Exception ex) { LogException("ImSent", ex); } }