public void Build(IPsiSourceFile sourceFile, ProjectSettingsCacheItem cacheItem)
        {
            {
                var file   = sourceFile.GetDominantPsiFile <YamlLanguage>() as IYamlFile;
                var inputs = GetCollection(file, "InputManager", "m_Axes");

                if (inputs == null)
                {
                    myLogger.Error("inputs != null");
                    return;
                }

                if (inputs is IBlockSequenceNode node)
                {
                    foreach (var s in node.Entries)
                    {
                        var input       = s.Value;
                        var inputRecord = input as IBlockMappingNode;
                        if (inputRecord == null)
                        {
                            continue;
                        }

                        var name = inputRecord.Entries.FirstOrDefault(t => t.Key.GetText().Equals(UnityYamlConstants.NameProperty))?.Content.Value.GetPlainScalarText();

                        if (!name.IsNullOrEmpty())
                        {
                            cacheItem.Inputs.Add(name);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
 private static void Write(UnsafeWriter writer, ProjectSettingsCacheItem value)
 {
     value.Scenes.Write(writer);
     WriteSet(writer, value.Inputs);
     WriteSet(writer, value.Tags);
     WriteSet(writer, value.Layers);
 }
        public void Build(IPsiSourceFile sourceFile, ProjectSettingsCacheItem cacheItem)
        {
            var file        = sourceFile.GetDominantPsiFile <YamlLanguage>() as IYamlFile;
            var scenesArray = GetSceneCollection(file);

            if (scenesArray == null)
            {
                myLogger.Error("scenesArray != null");
                return;
            }

            if (scenesArray is IBlockSequenceNode node)
            {
                foreach (var s in node.Entries)
                {
                    var scene       = s.Value;
                    var sceneRecord = scene as IBlockMappingNode;
                    if (sceneRecord == null)
                    {
                        continue;
                    }

                    if (sceneRecord.Entries.Count < 2)
                    {
                        continue;
                    }

                    var scenePath = sceneRecord.Entries[1].Content?.Value.GetPlainScalarText();
                    if (scenePath == null)
                    {
                        continue;
                    }

                    var path = GetUnityScenePathRepresentation(scenePath);
                    var isEnabledPlaneScalarNode = sceneRecord.Entries[0].Content?.Value as IPlainScalarNode;
                    var isEnabled = isEnabledPlaneScalarNode?.Text.GetText().Equals("1");
                    if (path == null || !isEnabled.HasValue)
                    {
                        continue;
                    }

                    cacheItem.Scenes.SceneNamesFromBuildSettings.Add(path);
                    if (!isEnabled.Value)
                    {
                        cacheItem.Scenes.DisabledSceneNamesFromBuildSettings.Add(path);
                    }
                }
            }
        }
Esempio n. 4
0
        public void Build(IPsiSourceFile sourceFile, ProjectSettingsCacheItem cacheItem)
        {
            var file      = sourceFile.GetDominantPsiFile <UnityYamlLanguage>() as IYamlFile;
            var tagsArray = GetCollection(file, "TagManager", "tags");

            if (tagsArray == null)
            {
                myLogger.Error("tagsArray != null");
                return;
            }

            if (tagsArray is IBlockSequenceNode node)
            {
                foreach (var s in node.Entries)
                {
                    var text = (s.Value as IPlainScalarNode)?.Text.GetText();
                    if (!text.IsNullOrEmpty())
                    {
                        cacheItem.Tags.Add(text);
                    }
                }
            }

            var layersArray = GetCollection(file, "TagManager", "layers");

            if (layersArray == null)
            {
                myLogger.Error("layersArray != null");
                return;
            }

            if (layersArray is IBlockSequenceNode layersNode)
            {
                foreach (var s in layersNode.Entries)
                {
                    var text = (s.Value as IPlainScalarNode)?.Text.GetText();
                    if (!text.IsNullOrEmpty())
                    {
                        cacheItem.Layers.Add(text);
                    }
                }
            }
        }