Beispiel #1
0
 public AssetStream(Model.ConnectionData c, Node f, Node t, AssetReferenceStreamManager m)
 {
     connection  = c;
     nodeFrom    = f;
     nodeTo      = t;
     assetGroups = m.FindAssetGroup(c);
     output      = null;
 }
Beispiel #2
0
        public override bool OnAssetsReimported(
            Model.NodeData nodeData,
            AssetReferenceStreamManager streamManager,
            BuildTarget target,
            string[] importedAssets,
            string[] deletedAssets,
            string[] movedAssets,
            string[] movedFromAssetPaths)
        {
            if (streamManager == null)
            {
                return(true);
            }

            var loadPath = m_loadPath[target];

            // if loadPath is null/empty, loader load everything except for settings
            if (string.IsNullOrEmpty(loadPath))
            {
                // ignore config file path update
                var notConfigFilePath = importedAssets.Where(path => !TypeUtility.IsGraphToolSystemAsset(path));
                if (notConfigFilePath.Any())
                {
                    LogUtility.Logger.LogFormat(LogType.Log, "{0} is marked to revisit", nodeData.Name);
                    return(true);
                }
            }

            var assetGroup = streamManager.FindAssetGroup(nodeData.OutputPoints[0]);

            if (assetGroup.Count > 0)
            {
                var importPath = string.Format("Assets/{0}", m_loadPath[target]);

                foreach (var path in importedAssets)
                {
                    if (path.StartsWith(importPath))
                    {
                        // if this is reimport, we don't need to redo Loader
                        if (assetGroup["0"].Find(x => x.importFrom == path) == null)
                        {
                            LogUtility.Logger.LogFormat(LogType.Log, "{0} is marked to revisit", nodeData.Name);
                            return(true);
                        }
                    }
                }
                foreach (var path in deletedAssets)
                {
                    if (path.StartsWith(importPath))
                    {
                        LogUtility.Logger.LogFormat(LogType.Log, "{0} is marked to revisit", nodeData.Name);
                        return(true);
                    }
                }
                foreach (var path in movedAssets)
                {
                    if (path.StartsWith(importPath))
                    {
                        LogUtility.Logger.LogFormat(LogType.Log, "{0} is marked to revisit", nodeData.Name);
                        return(true);
                    }
                }
                foreach (var path in movedFromAssetPaths)
                {
                    if (path.StartsWith(importPath))
                    {
                        LogUtility.Logger.LogFormat(LogType.Log, "{0} is marked to revisit", nodeData.Name);
                        return(true);
                    }
                }
            }
            return(false);
        }