Tanoda
MenuLoadScene.cs
Go to the documentation of this file.
1using System.Linq;
2using System.Collections.Generic;
3using System.IO;
4using GILES;
5using GILES.Interface;
6using UnityEngine;
7using UnityEngine.SceneManagement;
8using UnityEngine.UI;
9using Newtonsoft.Json;
10using System;
11using System.Collections;
12
13public class MenuLoadScene : MonoBehaviour
14{
16 public Dropdown StageType;
17 internal UserManager.User selectedUser;
18 public void OpenLoadPanel()
19 {
20 pb_FileDialog dlog = GameObject.Instantiate(dialogPrefab);
21 dlog.SetDirectory(System.IO.Directory.GetCurrentDirectory());
22 dlog.isFileBrowser = true;
23 dlog.filePattern = "*.json";
24 dlog.AddOnSaveListener(OnOpen);
25
26 pb_ModalWindow.SetContent(dlog.gameObject);
27 pb_ModalWindow.SetTitle("LOAD SCENE");
29 }
30
31 public void OpenAddPanel(UserManager.User user)
32 {
33
34 pb_FileDialog dlog = GameObject.Instantiate(dialogPrefab);
35 dlog.SetDirectory(System.IO.Directory.GetCurrentDirectory());
36 dlog.isFileBrowser = true;
37 dlog.filePattern = "*.json";
38 dlog.AddOnSaveListener(OnAdd);
39 selectedUser = user;
40 pb_ModalWindow.SetContent(dlog.gameObject);
41 pb_ModalWindow.SetTitle("OPEN SCENE");
43 }
44
45 private void OnOpen(string path)
46 {
47 Open(path);
48 }
49
50 private void OnAdd(string path)
51 {
52 Add(path);
53 }
54
55
56 public void Open(string path)
57 {
58 string san = pb_FileUtility.SanitizePath(path);
59
60 if(!pb_FileUtility.IsValidPath(san, ".json"))
61 {
62 Debug.LogWarning(san + " not found, or file is not a JSON scene.");
63 return;
64 }
65
66 string level = pb_FileUtility.ReadFile(san);
67
68 var go = new GameObject("loader");
69 var ssol = go.AddComponent<StartStageOnLoad>();
70 var filename = System.IO.Path.GetFileName(san);
71 filename = filename.Remove(filename.LastIndexOf('.'));
72 ssol.lastLevelName = filename;
73 ssol.stageJson = level;
74 ssol.levelName = Path.GetFileName(san);
75
76 ssol.filesToLoad = new List<string>();
77 var json = File.ReadAllText(san);
78 var scenenodeJson = json.Remove(Macro.FindClosingBracketIndex(json) + 1).Remove(0,1);
79 var sceneNode = JsonConvert.DeserializeObject<GILES.Serialization.pb_SceneNode>(scenenodeJson, GILES.Serialization.pb_Serialization.ConverterSettings);
80 Macro.GetAllPossibleFileName(sceneNode, ref ssol.filesToLoad);
81 SavedUser.instance.levelName = Path.GetFileName(san);
83
84 SceneManager.LoadScene(1);
85 }
86
87 public void Add(string path)
88 {
89 string san = pb_FileUtility.SanitizePath(path);
90
91 if (!pb_FileUtility.IsValidPath(san, ".json"))
92 {
93 Debug.LogWarning(san + " not found, or file is not a JSON scene.");
94 return;
95 }
96
97 string level = pb_FileUtility.ReadFile(san);
98
99 var go = new GameObject("loader");
100 var ssol = go.AddComponent<StartStageOnLoad>();
101 var filename = System.IO.Path.GetFileName(san);
102 var addtraining = new UserManager.AddedTrainings
103 {
104 TrainingName = Path.GetFileName(san),
105 Status = "AktĂ­v",
106 CreationDate = DateTime.Now.Date,
107 ModificationDate = DateTime.Now.Date,
108 };
109 //var currentUserValue = UserManager.instance.GetUserByName(SavedUser.instance.currentUser.Value.Username);
110 if (selectedUser.addedTrainings == null)
111 {
112 selectedUser.addedTrainings = new List<UserManager.AddedTrainings>();
113 }
114 selectedUser.addedTrainings.Add(addtraining);
115 UserManager.instance.UpdateUser(selectedUser);
116 UserManager.instance.PopulateCurseList(selectedUser);
117 //filename = filename.Remove(filename.LastIndexOf('.'));
118 //ssol.lastLevelName = filename;
119 //ssol.stageJson = level;
120 //ssol.levelName = Path.GetFileName(san);
121
122 //ssol.filesToLoad = new List<string>();
123 //var json = File.ReadAllText(san);
124 //var scenenodeJson = json.Remove(Macro.FindClosingBracketIndex(json) + 1).Remove(0, 1);
125 //var sceneNode = JsonConvert.DeserializeObject<GILES.Serialization.pb_SceneNode>(scenenodeJson, GILES.Serialization.pb_Serialization.ConverterSettings);
126 //Macro.GetAllPossibleFileName(sceneNode, ref ssol.filesToLoad);
128 }
129
130 public static void OpenTutorial(string path)
131 {
132 string san = pb_FileUtility.SanitizePath(path);
133
134 if (!pb_FileUtility.IsValidPath(san, ".json"))
135 {
136 Debug.LogWarning(san + " not found, or file is not a JSON scene.");
137 return;
138 }
139
140 string level = pb_FileUtility.ReadFile(san);
141
142 var go = new GameObject("ssol");
143 var ssol = go.AddComponent<StartStageOnLoad>();
144 var filename = System.IO.Path.GetFileName(san);
145 filename = filename.Remove(filename.LastIndexOf('.'));
146 ssol.lastLevelName = filename;
147 ssol.stageJson = level;
148 ssol.levelName = Path.GetFileName(san);
149 SavedUser.instance.levelName = Path.GetFileName(san);
151
152 //SceneManager.LoadScene(1);
153 }
154}
UnityEngine.Debug Debug
Definition: TanodaServer.cs:19
string filePattern
If isFileBrowser is true, this string my be used to filter file results (see https://msdn....
void AddOnSaveListener(Callback< string > listener)
void SetDirectory(string directory)
static void SetTitle(string title)
static void SetContent(GameObject prefab)
Definition: Macro.cs:12
static void GetAllPossibleFileName(GILES.Serialization.pb_SceneNode node, ref List< string > list)
Definition: Macro.cs:213
static int FindClosingBracketIndex(string text, char openedBracket='{', char closedBracket='}')
Definition: Macro.cs:249
void Add(string path)
Dropdown StageType
void OpenAddPanel(UserManager.User user)
static void OpenTutorial(string path)
void Open(string path)
void OpenLoadPanel()
pb_FileDialog dialogPrefab