private void World_OnEntityUpdate(IEntity ent, World.UpdateCodes what) { IEntityAvatar av = null; if (ent.TryGet <IEntityAvatar>(out av)) { m_log.Log(LogLevel.DUPDATEDETAIL | LogLevel.DVIEWDETAIL, "OnEntityUpdate: Avatar: {0}", ent.Name.Name); this.Renderer.RenderUpdate(ent, what); } else { m_log.Log(LogLevel.DUPDATEDETAIL | LogLevel.DVIEWDETAIL, "OnEntityUpdate: Other. w={0}", what); this.Renderer.RenderUpdate(ent, what); } return; }
private OMVSD.OSD GetHandler(RestHandler handler, Uri uri, String after) { OMVSD.OSDMap ret = new OMVSD.OSDMap(); lock (m_avatars) { foreach (KeyValuePair <string, IEntityAvatar> kvp in m_avatars) { OMVSD.OSDMap oneAV = new OMVSD.OSDMap(); IEntityAvatar iav = kvp.Value; try { oneAV.Add("Name", new OMVSD.OSDString(iav.DisplayName)); oneAV.Add("Region", new OMVSD.OSDString(iav.RegionContext.Name.Name)); oneAV.Add("X", new OMVSD.OSDString(iav.RegionPosition.X.ToString("###0.###"))); oneAV.Add("Y", new OMVSD.OSDString(iav.RegionPosition.Y.ToString("###0.###"))); oneAV.Add("Z", new OMVSD.OSDString(iav.RegionPosition.Z.ToString("###0.###"))); float dist = 0f; if (m_agentAV != null) { dist = OMV.Vector3.Distance(m_agentAV.RegionPosition, iav.RegionPosition); } oneAV.Add("Distance", new OMVSD.OSDString(dist.ToString("###0.###"))); oneAV.Add("Flags", new OMVSD.OSDString(iav.ActivityFlags)); if (iav is LLEntityAvatar) { OMV.Avatar av = ((LLEntityAvatar)iav).Avatar; if (av != null) { OMVSD.OSDMap avTextures = new OMVSD.OSDMap(); OMV.Primitive.TextureEntry texEnt = av.Textures; if (texEnt != null) { OMV.Primitive.TextureEntryFace[] texFaces = texEnt.FaceTextures; if (texFaces != null) { if (texFaces[(int)OMV.AvatarTextureIndex.HeadBaked] != null) { avTextures.Add("head", new OMVSD.OSDString(texFaces[(int)OMV.AvatarTextureIndex.HeadBaked].TextureID.ToString())); } if (texFaces[(int)OMV.AvatarTextureIndex.UpperBaked] != null) { avTextures.Add("upper", new OMVSD.OSDString(texFaces[(int)OMV.AvatarTextureIndex.UpperBaked].TextureID.ToString())); } if (texFaces[(int)OMV.AvatarTextureIndex.LowerBaked] != null) { avTextures.Add("lower", new OMVSD.OSDString(texFaces[(int)OMV.AvatarTextureIndex.LowerBaked].TextureID.ToString())); } if (texFaces[(int)OMV.AvatarTextureIndex.EyesBaked] != null) { avTextures.Add("eyes", new OMVSD.OSDString(texFaces[(int)OMV.AvatarTextureIndex.EyesBaked].TextureID.ToString())); } if (texFaces[(int)OMV.AvatarTextureIndex.HairBaked] != null) { avTextures.Add("hair", new OMVSD.OSDString(texFaces[(int)OMV.AvatarTextureIndex.HairBaked].TextureID.ToString())); } if (texFaces[(int)OMV.AvatarTextureIndex.SkirtBaked] != null) { avTextures.Add("skirt", new OMVSD.OSDString(texFaces[(int)OMV.AvatarTextureIndex.SkirtBaked].TextureID.ToString())); } oneAV.Add("LLtextures", avTextures); } } } } } catch (Exception e) { LogManager.Log.Log(LogLevel.DBADERROR, "AvatarTracker.GetHandler: exception building response: {0}", e); } ret.Add(kvp.Value.Name.Name.Replace('/', '-'), oneAV); } } return(ret); }