Firstborn/Assets/Editor/Mod Uploader/ModUploader.cs

125 lines
4.0 KiB
C#
Raw Normal View History

using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;
using UnityEngine.AddressableAssets;
public class ModUploader : EditorWindow
{
private string ModName = "";
private string Author = "";
private string Description = "";
public Sprite MyImage;
private string Version = "1.0";
private string Category = "Armor";
private string path = "";
[MenuItem("Schaken-Mods/Mod Uploader/Open Window")]
private static void OpenWindow() {
ModUploader window = GetWindow<ModUploader>();
// Set Title
Texture2D icon = (Texture2D)AssetDatabase.LoadAssetAtPath("Assets/Editor/Mod Builder/ModBuilder.png", typeof(Texture2D));
GUIContent titleContent = new GUIContent("Mod Uploader", icon);
window.titleContent = titleContent;
window.minSize = new Vector2(340, 410);
window.maxSize = new Vector2(340, 410);
window.Show();
}
private void OnGUI() {
EditorGUIUtility.labelWidth = 45;
EditorGUILayout.Space(10);
EditorGUILayout.BeginVertical("box");
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("Selected a Mod")) {
string ModFolders = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+@"\My Games\Firstborn\Mods\";
path = EditorUtility.OpenFilePanel("Select a mod file", ModFolders, "fc1");
}
if (path.Length != 0) {
using (var sr = new StreamReader(path)) {
string A = sr.ReadToEnd();
Debug.Log(path);
Debug.Log(A);
string TempString = "/Firstborn/Mods/";
ModName = path.Split(TempString)[1].Split("/")[0];
TempString = "Author:";
Author = A.Split(TempString)[1].Split(";")[0];
TempString = "Description:";
Description = A.Split(TempString)[1].Split(";")[0];
TempString = "Author:";
//MyImage = A.Split(TempString)[1].Split(";")[0];
TempString = "Version:";
Version = A.Split(TempString)[1].Split(";")[0];
TempString = "Category:";
Category = A.Split(TempString)[1].Split(";")[0];
Debug.Log(sr);
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Mod Name: ", GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
ModName = GUILayout.TextField(ModName, 25, GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Version: ", GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
Version = GUILayout.TextField(Version, GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Author: ", GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
Author = GUILayout.TextField(Author, 25, GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Short Description: ", GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
Description = GUILayout.TextArea(Description, GUILayout.Height(100), GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Preview Picture: ", GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
MyImage = (Sprite)EditorGUILayout.ObjectField(MyImage, typeof(Sprite), false, GUILayout.Height(EditorGUIUtility.singleLineHeight), GUILayout.MaxWidth(160), GUILayout.MinWidth(160));
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
Sprite s = (MyImage) ? MyImage as Sprite : (Sprite)AssetDatabase.LoadAssetAtPath("Assets/Textures/UI/Background.png", typeof(Sprite));
EditorGUI.DrawTextureTransparent(new Rect(17, 225, 300, 160), s.texture);
EditorGUILayout.EndHorizontal();
EditorGUILayout.Space(165);
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("Build Mod", GUILayout.MaxWidth(320), GUILayout.MinWidth(320))) {
}
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
}
private void SetCategory(string A) {
Category = A;
}
}