Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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();
            }
        }
Exemplo n.º 6
0
 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);
 }