AssetBundleGraph.SerializableMultiTargetInt.ToJsonDictionary C# (CSharp) Method

ToJsonDictionary() public method

public ToJsonDictionary ( ) : object>.Dictionary
return object>.Dictionary
        public Dictionary<string, object> ToJsonDictionary()
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();
            foreach(Entry e in m_values) {
                dic.Add(e.targetGroup.ToString(), e.value);
            }
            return dic;
        }

Usage Example

Example #1
0
        /**
         * Serialize to JSON dictionary
         */
        public Dictionary <string, object> ToJsonDictionary()
        {
            var nodeDict = new Dictionary <string, object>();

            nodeDict[NODE_NAME] = m_name;
            nodeDict[NODE_ID]   = m_id;
            nodeDict[NODE_KIND] = m_kind.ToString();

            if (!string.IsNullOrEmpty(m_scriptClassName))
            {
                nodeDict[NODE_SCRIPT_CLASSNAME] = m_scriptClassName;
            }

            var inputs  = new List <object>();
            var outputs = new List <object>();

            foreach (var p in m_inputPoints)
            {
                inputs.Add(p.ToJsonDictionary());
            }

            foreach (var p in m_outputPoints)
            {
                outputs.Add(p.ToJsonDictionary());
            }

            nodeDict[NODE_INPUTPOINTS]  = inputs;
            nodeDict[NODE_OUTPUTPOINTS] = outputs;

            nodeDict[NODE_POS] = new Dictionary <string, object>()
            {
                { NODE_POS_X, m_x },
                { NODE_POS_Y, m_y }
            };

            switch (m_kind)
            {
            case NodeKind.PREFABBUILDER_GUI:
                nodeDict[NODE_PREFABBUILDER_REPLACEPREFABOPTIONS] = m_prefabBuilderReplacePrefabOptions;
                nodeDict[NODE_SCRIPT_INSTANCE_DATA] = m_scriptInstanceData.ToJsonDictionary();
                break;

            case NodeKind.MODIFIER_GUI:
                nodeDict[NODE_SCRIPT_INSTANCE_DATA] = m_scriptInstanceData.ToJsonDictionary();
                break;

            case NodeKind.LOADER_GUI:
                nodeDict[NODE_LOADER_LOAD_PATH] = m_loaderLoadPath.ToJsonDictionary();
                break;

            case NodeKind.FILTER_GUI:
                var filterDict = new List <object>();
                foreach (var f in m_filter)
                {
                    var df = new Dictionary <string, object>();
                    df[NODE_FILTER_KEYWORD] = f.FilterKeyword;
                    df[NODE_FILTER_KEYTYPE] = f.FilterKeytype;
                    df[NODE_FILTER_POINTID] = f.ConnectionPoint.Id;
                    filterDict.Add(df);
                }
                nodeDict[NODE_FILTER] = filterDict;
                break;

            case NodeKind.GROUPING_GUI:
                nodeDict[NODE_GROUPING_KEYWORD] = m_groupingKeyword.ToJsonDictionary();
                break;

            case NodeKind.BUNDLECONFIG_GUI:
                nodeDict[NODE_BUNDLECONFIG_BUNDLENAME_TEMPLATE] = m_bundleConfigBundleNameTemplate.ToJsonDictionary();
                nodeDict[NODE_BUNDLECONFIG_USE_GROUPASVARIANTS] = m_bundleConfigUseGroupAsVariants;
                var variantsDict = new List <object>();
                foreach (var v in m_variants)
                {
                    var dv = new Dictionary <string, object>();
                    dv[NODE_BUNDLECONFIG_VARIANTS_NAME]    = v.Name;
                    dv[NODE_BUNDLECONFIG_VARIANTS_POINTID] = v.ConnectionPoint.Id;
                    variantsDict.Add(dv);
                }
                nodeDict[NODE_BUNDLECONFIG_VARIANTS] = variantsDict;
                break;

            case NodeKind.BUNDLEBUILDER_GUI:
                nodeDict[NODE_BUNDLEBUILDER_ENABLEDBUNDLEOPTIONS] = m_bundleBuilderEnabledBundleOptions.ToJsonDictionary();
                break;

            case NodeKind.EXPORTER_GUI:
                nodeDict[NODE_EXPORTER_EXPORT_PATH]   = m_exporterExportPath.ToJsonDictionary();
                nodeDict[NODE_EXPORTER_EXPORT_OPTION] = m_exporterExportOption.ToJsonDictionary();
                break;

            case NodeKind.IMPORTSETTING_GUI:
                // nothing to do
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(nodeDict);
        }