Tanoda
StartAction.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using System.Runtime.Serialization;
5using UnityEditor;
6using UnityEngine;
7using UnityEngine.UI;
8
9[Serializable]
11{
12 [SerializeField] private GameObject buttonImage, buttonText;
13 [SerializeField] private GameObject QualityOutput;
14
15 private void Awake()
16 {
17 action = GetType().Name;
18 }
19
20 public override void Start()
21 {
22 base.Start();
23 if (SavedUser.instance.courseType == SavedUser.CourseType.Quality)
24 {
26 }
27
28#if DANA
29 Macro.allActiveTCD.Clear();
31 try
32 {
33 buttonImage.SetActive(true);
34 buttonText.SetActive(false);
35 var colorBlock = GetComponentInChildren<Button>().colors;
36 colorBlock.normalColor = Color.clear;
37 GetComponentInChildren<Button>().colors = colorBlock;
38 Sprite body = Resources.Load<Sprite>("Body");//(Sprite)AssetDatabase.LoadAssetAtPath("Assets/Textures/UI/Actions/Body.png", typeof(Sprite));
39 var bodyImg = GetComponent<Image>();
40 bodyImg.sprite = body;
41 bodyImg.color = new Color(1f, 1f, 1f);
42 var texts = GetComponentsInChildren<Text>();
43 foreach (var item in texts)
44 {
45 item.color = new Color(0f, 38f / 255f, 137f / 255f);
46 }
47 if (GetComponentInChildren<Button>())
48 {
49 var button = GetComponentInChildren<Button>();
50 button.transition = Selectable.Transition.None;
51 var images = GetComponentInChildren<Button>().GetComponentsInChildren<Image>();
52 foreach (var image in images)
53 {
54 image.color = new Color(0f, 38f / 255f, 137f / 255f);
55 }
56 }
57 }
58 catch (Exception e)
59 {
60 //ignored
61 }
62 setupOk = true;
63#endif
64 }
65
66
67 private void OnDisable()
68 {
69 Debug.Log(setupOk);
70 }
71
72 public void Play()
73 {
74 if (SavedUser.instance.isEditor)
75 {
76 return;
77 }
78 Debug.Log("Play");
79
80 if (inPuts == null || outPuts == null)
81 {
82 Destroy(gameObject);
84 return;
85 }
86 UserStatManager.instance.PenaltyList.Clear();
87 UserStatManager.instance.RecognitionList.Clear();
88 UserStatManager.instance.TimeSpendList.Clear();
89 TriggerOutput(outPuts[0].name);
90
91 var fas = FindObjectsOfType<FinishAction>();
92 foreach (var finishAction in fas) finishAction.StartTimer();
93
94 ConveyorBeltManager.instance.started = true;
95 ConveyorBeltManager.instance.InitItems();
96 SavedUser.instance?.LevelStarted();
97 HandStatistics.instance?.StartCollecting();
98 }
99
101 {
102 QualityOutput.SetActive(true);
103 outPuts[0].SetActive(false);
104 }
106 {
107 QualityOutput.SetActive(false);
108 outPuts[0].SetActive(true);
109 }
110
111 public void StartGood()
112 {
113 TriggerOutput(outPuts[1].name);
114 }
115 public void StartBad()
116 {
117 TriggerOutput(outPuts[2].name);
118 }
119
120 internal GameObject GetInputGood()
121 {
122 try
123 {
125 var action = Controller.Instance.GetActionByInOut(connection.fromId);
126 GameObject retval = null;
127 if (action is GameObjectAction objectAction) retval = objectAction.GetGameObject();
128 if (action is WeldAction weldAction) retval = weldAction.GetGameObject();
129 if (action is ToolAction toolAction) retval = toolAction.GetGameObject();
130
131 return retval;
132 }
133 catch (Exception)
134 {
135 return null;
136 }
137 }
138
139 internal List<GameObject> GetInputsBad()
140 {
141 try
142 {
144 var retlist = new List<GameObject>();
145 foreach (var c in connections)
146 {
148 GameObject retval = null;
149 if (action is GameObjectAction objectAction) retval = objectAction.GetGameObject();
150 if (action is WeldAction weldAction) retval = weldAction.GetGameObject();
151 if (action is ToolAction toolAction) retval = toolAction.GetGameObject();
152
153 retlist.Add(retval);
154 }
155
156 return retlist;
157 }
158 catch (Exception)
159 {
160 return null;
161 }
162 }
163
164
165 public void PositionResaver()
166 {
167 var allPositioner = FindObjectsOfType<PositionAction>();
168 foreach (var pa in allPositioner)
169 {
170 pa.GetInputGO();
171 }
172 }
173
174 public StartAction(SerializationInfo info, StreamingContext context) : base(info, context)
175 {
176 var dontcrashhack = GameObject.Find((string) info.GetValue("name", typeof(string)));
177 var thiss = dontcrashhack.AddComponent<StartAction>();
178 thiss.acceptInputTypes =
179 (List<ClassTypeReference>) info.GetValue("acceptInputTypes", typeof(List<ClassTypeReference>));
180 thiss.inIDs = (Dictionary<string, GameObject>) info.GetValue("inIDs", typeof(Dictionary<string, GameObject>));
181 thiss.outIDs = (Dictionary<string, GameObject>) info.GetValue("outIDs", typeof(Dictionary<string, GameObject>));
182 thiss.transform.localPosition = (Vector3) info.GetValue("localPos", typeof(Vector3));
183 /*
184 info.AddValue("acceptInputTypes", acceptInputTypes);
185 info.AddValue("inIDs", inIDs);
186 info.AddValue("outIDs", outIDs);
187 info.AddValue("localPos", transform.localPosition, typeof(Vector3));
188 */
189 }
190}
UnityEngine.Debug Debug
Definition: TanodaServer.cs:19
System.Drawing.Image Image
Definition: TestScript.cs:37
UnityEngine.Color Color
Definition: TestScript.cs:32
void TriggerOutput(string id)
string action
Definition: ActionObject.cs:32
List< GameObject > inPuts
Definition: ActionObject.cs:18
List< GameObject > outPuts
Definition: ActionObject.cs:19
string GetInput()
List< ClassTypeReference > acceptInputTypes
Definition: ActionObject.cs:20
Connection[] GetConnectionsByEndPointId(string id)
Definition: Controller.cs:862
Connection GetConnectionByEndPointId(string id)
Definition: Controller.cs:857
ActionObject GetActionByInOut(string id)
Definition: Controller.cs:925
static Controller Instance
Definition: Controller.cs:16
static LevelEditorOnLoaded instance
Definition: Macro.cs:12
static void cacheAllTCD()
Definition: Macro.cs:430
void HideQualityConnections()
Definition: StartAction.cs:105
void Play()
Definition: StartAction.cs:72
override void Start()
Definition: StartAction.cs:20
void ShowQualityConnections()
Definition: StartAction.cs:100
void StartBad()
Definition: StartAction.cs:115
void PositionResaver()
Definition: StartAction.cs:165
void StartGood()
Definition: StartAction.cs:111
StartAction(SerializationInfo info, StreamingContext context)
Definition: StartAction.cs:174