AssetBundleGraph.NodeData.ToJsonDictionary C# (CSharp) Method

ToJsonDictionary() public method

public ToJsonDictionary ( ) : object>.Dictionary
return object>.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();

            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:
            case NodeKind.MODIFIER_GUI:
                nodeDict[NODE_SCRIPT_CLASSNAME] = m_scriptClassName;
                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<Dictionary<string, 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();
                var variantsDict = new List<Dictionary<string, 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();
                break;

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

            default:
                throw new ArgumentOutOfRangeException ();
            }

            return nodeDict;
        }