Exemplo n.º 1
0
        internal void SetModinfo(ModInfo modInfo)
        {
            this.modInfo = modInfo;

            ModDependency[] dependencies    = modInfo.Dependencies ?? Array.Empty <ModDependency>();
            var             editorDataGroup = new ModDependencyEditorData[dependencies.Length];

            for (int i = 0; i < dependencies.Length; i++)
            {
                ModDependency           dependency = dependencies[i];
                ModDependencyEditorData editorData = new ModDependencyEditorData();

                editorData.ModIndex = availableMods.ToList().IndexOf(dependency.Name);
                if (editorData.ModIndex == -1)
                {
                    editorData.ModIndex = availableMods.Length - 1;
                }
                editorData.Name = dependency.Name;

                editorData.IsOptional = dependency.IsOptional ? 1 : 0;
                editorData.IsPeer     = dependency.IsPeer ? 1 : 0;

                editorData.RequireVersion = !string.IsNullOrWhiteSpace(dependency.Version);
                if (editorData.RequireVersion)
                {
                    int[] versionParts = dependency.Version.Split('.').Select(x => int.Parse(x)).ToArray();
                    editorData.Version = new Vector3Int(versionParts[0], versionParts[1], versionParts[2]);
                }

                editorDataGroup[i] = editorData;
            }

            this.dependencies = editorDataGroup.ToList();
        }