Example #1
0
        private void UpdateBundleSortList(List <SerializedBundleRef> sortedList, PostProcessEvent evt)
        {
            List <PostProcessBundle> effects = (from kvp in m_Bundles
                                                where kvp.Value.attribute.eventType == evt && !kvp.Value.attribute.builtinEffect
                                                select kvp.Value).ToList();

            sortedList.RemoveAll(delegate(SerializedBundleRef x)
            {
                string searchStr = x.assemblyQualifiedName;
                return(!effects.Exists((PostProcessBundle b) => b.settings.GetType().AssemblyQualifiedName == searchStr));
            });
            foreach (PostProcessBundle item2 in effects)
            {
                string typeName2 = item2.settings.GetType().AssemblyQualifiedName;
                if (!sortedList.Exists((SerializedBundleRef b) => b.assemblyQualifiedName == typeName2))
                {
                    SerializedBundleRef serializedBundleRef = new SerializedBundleRef();
                    serializedBundleRef.assemblyQualifiedName = typeName2;
                    SerializedBundleRef item = serializedBundleRef;
                    sortedList.Add(item);
                }
            }
            foreach (SerializedBundleRef sorted in sortedList)
            {
                string            typeName          = sorted.assemblyQualifiedName;
                PostProcessBundle postProcessBundle = sorted.bundle = effects.Find((PostProcessBundle b) => b.settings.GetType().AssemblyQualifiedName == typeName);
            }
        }
Example #2
0
        private void UpdateBundleSortList(List <SerializedBundleRef> sortedList, PostProcessEvent evt)
        {
            // First get all effects associated with the injection point
            var effects = m_Bundles
                          .Where(kvp => kvp.Value.attribute.eventType == evt && !kvp.Value.attribute.builtinEffect)
                          .Select(kvp => kvp.Value)
                          .ToList();

            // Remove types that don't exist anymore
            sortedList.RemoveAll(x =>
            {
                var searchStr = x.assemblyQualifiedName;
                return(!effects.Exists(b => b.settings.GetType().AssemblyQualifiedName == searchStr));
            });

            // Add new ones
            foreach (var effect in effects)
            {
                var typeName = effect.settings.GetType().AssemblyQualifiedName;

                if (!sortedList.Exists(b => b.assemblyQualifiedName == typeName))
                {
                    var sbr = new SerializedBundleRef {
                        assemblyQualifiedName = typeName
                    };
                    sortedList.Add(sbr);
                }
            }

            // Link internal references
            foreach (var effect in sortedList)
            {
                var typeName = effect.assemblyQualifiedName;
                var bundle   = effects.Find(b => b.settings.GetType().AssemblyQualifiedName == typeName);
                effect.bundle = bundle;
            }
        }