internal AvatarAppearance ToAppearance(OpenMetaverse.UUID owner) { AvatarAppearance app = new AvatarAppearance { Owner = owner, Serial = this.Serial, VisualParams = this.VisualParams }; List <AvatarWearable> wearables = new List <AvatarWearable>(); for (int i = 0; i < AvatarWearable.MAX_WEARABLES && i < this.Wearables.Length; i++) { OpenMetaverse.UUID itemID = new OpenMetaverse.UUID(this.Wearables[i].ItemId); OpenMetaverse.UUID assetID = new OpenMetaverse.UUID(this.Wearables[i].AssetId); wearables.Add(new AvatarWearable(i, itemID, assetID)); } app.SetWearables(wearables); var te = new OpenMetaverse.Primitive.TextureEntry(this.TextureEntry, 0, this.TextureEntry.Length); app.SetTextureEntries(te); app.SetHeight(); return(app); }
public void UpdateAppearance() { if (Button.Enabled) { if (EnabledTexture == UUID.Zero) { string drawList = "MoveTo 30, 40;"; drawList += "FontSize 48;"; drawList += "Text " + Text + ";"; m_textureManager.AddDynamicTextureData( m_scene.RegionInfo.RegionID, Button.Part.UUID, "vector", drawList, "256", 0, false, 0, 255, -1); // m_textureManager.AddDynamicTextureData( // m_scene.RegionInfo.RegionID, m_part.UUID, "vector", drawList, "256", 0, false, 255); EnabledTexture = Button.Part.Shape.Textures.DefaultTexture.TextureID; } else { OpenMetaverse.Primitive.TextureEntry tex = Button.Part.Shape.Textures; for (uint i = 0; i < Button.Part.GetNumberOfSides(); i++) { if (tex.FaceTextures[i] != null) { tex.FaceTextures[i].TextureID = EnabledTexture; } } tex.DefaultTexture.TextureID = EnabledTexture; Button.Part.UpdateTextureEntry(tex); } } else { OpenMetaverse.Primitive.TextureEntry tex = Button.Part.Shape.Textures; for (uint i = 0; i < Button.Part.GetNumberOfSides(); i++) { if (tex.FaceTextures[i] != null) { tex.FaceTextures[i].TextureID = DisabledTexture; } } tex.DefaultTexture.TextureID = DisabledTexture; Button.Part.UpdateTextureEntry(tex); } }
public void UpdateAppearance() { Color4 color; if (Button.Enabled) { OpenMetaverse.Primitive.TextureEntry tex = Button.Part.Shape.Textures; for (uint i = 0; i < Button.Part.GetNumberOfSides(); i++) { if (tex.FaceTextures[i] != null) { color = tex.FaceTextures[i].RGBA; color.A = 0.9f; tex.FaceTextures[i].RGBA = color; } } color = tex.DefaultTexture.RGBA; color.A = 0.9f; tex.DefaultTexture.RGBA = color; Button.Part.UpdateTextureEntry(tex); } else { OpenMetaverse.Primitive.TextureEntry tex = Button.Part.Shape.Textures; for (uint i = 0; i < Button.Part.GetNumberOfSides(); i++) { if (tex.FaceTextures[i] != null) { color = tex.FaceTextures[i].RGBA; color.A = 0.1f; tex.FaceTextures[i].RGBA = color; } } color = tex.DefaultTexture.RGBA; color.A = 0.1f; tex.DefaultTexture.RGBA = color; Button.Part.UpdateTextureEntry(tex); } }
internal AvatarAppearance ToAppearance(OpenMetaverse.UUID owner) { AvatarAppearance app = new AvatarAppearance { Owner = owner, Serial = this.Serial, VisualParams = this.VisualParams }; List<AvatarWearable> wearables = new List<AvatarWearable>(); for (int i = 0; i < AvatarWearable.MAX_WEARABLES && i < this.Wearables.Length; i++) { OpenMetaverse.UUID itemID = new OpenMetaverse.UUID(this.Wearables[i].ItemId); OpenMetaverse.UUID assetID = new OpenMetaverse.UUID(this.Wearables[i].AssetId); wearables.Add(new AvatarWearable(i, itemID, assetID)); } app.SetWearables(wearables); var te = new OpenMetaverse.Primitive.TextureEntry(this.TextureEntry, 0, this.TextureEntry.Length); app.SetTextureEntries(te); app.SetHeight(); return app; }
public void CacheJ2kDecode(int threads) { if (threads < 1) { threads = 1; } IJ2KDecoder m_decoder = m_localScenes[0].RequestModuleInterface <IJ2KDecoder>(); List <UUID> assetRequestList = new List <UUID>(); #region AssetGathering! foreach (Scene scene in m_localScenes) { List <EntityBase> entitles = scene.GetEntities(); foreach (EntityBase entity in entitles) { if (entity is SceneObjectGroup) { SceneObjectGroup sog = (SceneObjectGroup)entity; foreach (SceneObjectPart part in sog.Children.Values) { if (part.Shape != null) { OpenMetaverse.Primitive.TextureEntry te = part.Shape.Textures; if (te.DefaultTexture != null) // this has been null for some reason... { if (te.DefaultTexture.TextureID != UUID.Zero) { assetRequestList.Add(te.DefaultTexture.TextureID); } } for (int i = 0; i < te.FaceTextures.Length; i++) { if (te.FaceTextures[i] != null) { if (te.FaceTextures[i].TextureID != UUID.Zero) { assetRequestList.Add(te.FaceTextures[i].TextureID); } } } if (part.Shape.SculptTexture != UUID.Zero) { assetRequestList.Add(part.Shape.SculptTexture); } } } } } } #endregion int entries_per_thread = (assetRequestList.Count / threads) + 1; UUID[] arrAssetRequestList = assetRequestList.ToArray(); List <UUID[]> arrvalus = new List <UUID[]>(); //split into separate arrays for (int j = 0; j < threads; j++) { List <UUID> val = new List <UUID>(); for (int k = j * entries_per_thread; k < ((j + 1) * entries_per_thread); k++) { if (k < arrAssetRequestList.Length) { val.Add(arrAssetRequestList[k]); } } arrvalus.Add(val.ToArray()); } for (int l = 0; l < arrvalus.Count; l++) { DecodeThreadContents threadworkItem = new DecodeThreadContents(); threadworkItem.sn = m_localScenes[0]; threadworkItem.j2kdecode = m_decoder; threadworkItem.arrassets = arrvalus[l]; System.Threading.Thread decodethread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(threadworkItem.run)); threadworkItem.SetThread(decodethread); decodethread.Priority = System.Threading.ThreadPriority.Lowest; decodethread.Name = "J2kCacheDecodeThread_" + l + 1; ThreadTracker.Add(decodethread); decodethread.Start(); } }
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); }