1using System.Collections;
2using System.Collections.Generic;
3using System.Globalization;
11 private string savePath =
"";
12 private Transform iris;
13 public GameObject[]
hide;
18 internal bool showTable =
true;
20 private List<GameObject> deactivatedByDefault =
new List<GameObject>();
35 savePath = Path.Combine(Application.persistentDataPath,
"tableSettings.ini");
37 var player = GameObject.Find(
"Player");
40 yield
return new WaitForSeconds(0.1f);
41 player = GameObject.Find(
"Player");
43 iris = player.transform;
44 if (
File.Exists(savePath))
46 var settings =
File.ReadAllText(savePath).Split(
'\n');
55 var pos =
new Vector3(
float.Parse(settings[0]),
float.Parse(settings[1]),
float.Parse(settings[2]));
56 var euler =
new Vector3(
float.Parse(settings[3]),
float.Parse(settings[4]),
float.Parse(settings[5]));
58 iris.eulerAngles = euler;
61 if (settings.Length > 6)
65 showTable = settings[6].ToLower() ==
"true";
71 if (settings.Length > 7)
80 var buttonpos =
new Vector3(
float.Parse(settings[7]),
float.Parse(settings[8]),
float.Parse(settings[9]));
81 var buttoneuler =
new Vector3(
float.Parse(settings[10]),
float.Parse(settings[11]),
float.Parse(settings[12]));
84 startButton.transform.localEulerAngles = buttoneuler;
85 replayPoi.transform.localPosition = buttonpos;
86 replayPoi.transform.localEulerAngles = buttoneuler;
88 if (settings.Length > 12)
97 var quizpos =
new Vector3(
float.Parse(settings[13]),
float.Parse(settings[14]),
float.Parse(settings[15]));
98 var quizeuler =
new Vector3(
float.Parse(settings[16]),
float.Parse(settings[17]),
float.Parse(settings[18]));
104 SetTableVisibility(showTable);
106 if (deactivatedByDefault.Count == 0)
108 deactivatedByDefault.Add(gameObject);
113 File.WriteAllText(savePath, $
"{iris.position.x:F5}\n{iris.position.y:F5}\n{iris.position.z:F5}\n{iris.eulerAngles.x:F5}\n{iris.eulerAngles.y:F5}\n{iris.eulerAngles.z:F5}\n{showTable}\n{startButton.transform.localPosition.x:F5}\n{startButton.transform.localPosition.y:F5}\n{startButton.transform.localPosition.z:F5}\n{startButton.transform.localEulerAngles.x:F5}\n{startButton.transform.localEulerAngles.y:F5}\n{startButton.transform.localEulerAngles.z:F5}\n{quizPanel.position.x:F5}\n{quizPanel.position.y:F5}\n{quizPanel.position.z:F5}\n{quizPanel.eulerAngles.x:F5}\n{quizPanel.eulerAngles.y:F5}\n{quizPanel.eulerAngles.z:F5}");
119 void OnRemovedFromSelection(IEnumerable<GameObject> selection)
121 foreach (var o
in selection)
123 if (o == iris.gameObject)
125 foreach (var o1
in hide)
141 public void SetTableVisibility(
bool value)
143 SetTableVisibility(value,
true);
146 public void SetTableVisibility(
bool value,
bool save =
true)
149 RecursiveJob(
irisVisual, value, deactivatedByDefault.Count == 0);
154 private void RecursiveJob(Transform t,
bool show,
bool add =
false)
156 foreach (Transform o
in t)
161 if (o.childCount > 0)
163 RecursiveJob(o, show, add);
166 var mr = o.GetComponent<MeshRenderer>();
167 var c = o.GetComponent<Collider>();
168 var canvas = o.GetComponent<Canvas>();
169 var l = o.GetComponent<Light>();
171 if (add && !o.gameObject.activeSelf)
173 deactivatedByDefault.Add(o.gameObject);
177 if (deactivatedByDefault.Contains(o.gameObject))
183 mr.gameObject.SetActive(show);
186 c.gameObject.SetActive(show);
189 canvas.gameObject.SetActive(show);
192 l.gameObject.SetActive(show);
196 public void SetPosition()
198 foreach (var o1
in hide)
210 public void SetStartButtonPosition()
217 public void SetQuizPosition()
224 private void SavePosition()
226 File.WriteAllText(savePath, $
"{iris.position.x:F5}\n{iris.position.y:F5}\n{iris.position.z:F5}\n{iris.eulerAngles.x:F5}\n{iris.eulerAngles.y:F5}\n{iris.eulerAngles.z:F5}\n{showTable}\n{startButton.transform.localPosition.x:F5}\n{startButton.transform.localPosition.y:F5}\n{startButton.transform.localPosition.z:F5}\n{startButton.transform.localEulerAngles.x:F5}\n{startButton.transform.localEulerAngles.y:F5}\n{startButton.transform.localEulerAngles.z:F5}\n{quizPanel.position.x:F5}\n{quizPanel.position.y:F5}\n{quizPanel.position.z:F5}\n{quizPanel.eulerAngles.x:F5}\n{quizPanel.eulerAngles.y:F5}\n{quizPanel.eulerAngles.z:F5}");
static GameObject EpilepsyFixer
static void AddOnRemovedFromSelectionListener(Callback< IEnumerable< GameObject > > del)
static void AddToSelection(GameObject go)
static string NormalizeFraction(string value)
static TablePositionSetter instance
bool useGlobalIRISSettings