public uint GenerateClientFlags(UUID userID, ISceneChildEntity part)
        {
            // libomv will moan about PrimFlags.ObjectYouOfficer being
            // obsolete...
#pragma warning disable 0612
            const PrimFlags DEFAULT_FLAGS =
                PrimFlags.ObjectModify |
                PrimFlags.ObjectCopy |
                PrimFlags.ObjectMove |
                PrimFlags.ObjectTransfer |
                PrimFlags.ObjectYouOwner |
                PrimFlags.ObjectAnyOwner |
                PrimFlags.ObjectOwnerModify |
                PrimFlags.ObjectYouOfficer;
#pragma warning restore 0612

            if (part == null)
            {
                return(0);
            }

            uint perms = part.GetEffectiveObjectFlags() | (uint)DEFAULT_FLAGS;

            GenerateClientFlagsHandler handlerGenerateClientFlags = OnGenerateClientFlags;
            if (handlerGenerateClientFlags != null)
            {
                Delegate[] list = handlerGenerateClientFlags.GetInvocationList();
                perms = list.Cast <GenerateClientFlagsHandler>()
                        .Aggregate(perms, (current, check) => current & check(userID, part));
            }
            return(perms);
        }
Example #2
0
        public uint GenerateClientFlags(SceneObjectPart part, ScenePresence sp)
        {
            // libomv will moan about PrimFlags.ObjectYouOfficer being
            // obsolete...
#pragma warning disable 0612
            const PrimFlags DEFAULT_FLAGS =
                PrimFlags.ObjectModify |
                PrimFlags.ObjectCopy |
                PrimFlags.ObjectMove |
                PrimFlags.ObjectTransfer |
                PrimFlags.ObjectYouOwner |
                PrimFlags.ObjectAnyOwner |
                PrimFlags.ObjectOwnerModify;
#pragma warning restore 0612

            if (part == null)
            {
                return(0);
            }

            uint perms = part.GetEffectiveObjectFlags() | (uint)DEFAULT_FLAGS;

            GenerateClientFlagsHandler handlerGenerateClientFlags = OnGenerateClientFlags;
            if (handlerGenerateClientFlags != null)
            {
                Delegate[] list = handlerGenerateClientFlags.GetInvocationList();
                foreach (GenerateClientFlagsHandler check in list)
                {
                    perms &= check(part, sp, perms);
                }
            }
            return(perms);
        }
Example #3
0
        public uint GenerateClientFlags(UUID userID, UUID objectID, bool fastCheck)
        {
            SceneObjectPart part = m_scene.GetSceneObjectPart(objectID);

            if (part == null)
            {
                return(0);
            }

            // libomv will moan about PrimFlags.ObjectYouOfficer being
            // obsolete...
            #pragma warning disable 0612
            uint perms = (uint)part.GetEffectiveObjectFlags() |
                         (uint)PrimFlags.ObjectModify |
                         (uint)PrimFlags.ObjectCopy |
                         (uint)PrimFlags.ObjectMove |
                         (uint)PrimFlags.ObjectTransfer |
                         (uint)PrimFlags.ObjectYouOwner |
                         (uint)PrimFlags.ObjectAnyOwner |
                         (uint)PrimFlags.ObjectOwnerModify |
                         (uint)PrimFlags.ObjectYouOfficer;
            #pragma warning restore 0612

            GenerateClientFlagsHandler handlerGenerateClientFlags =
                OnGenerateClientFlags;

            if (handlerGenerateClientFlags != null)
            {
                Delegate[] list = handlerGenerateClientFlags.GetInvocationList();
                foreach (GenerateClientFlagsHandler check in list)
                {
                    perms &= check(userID, objectID, fastCheck);
                }
            }
            return(perms);
        }