net.dreditor.backlog 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/BacklogSlot.cs CHANGED
@@ -1,252 +1,252 @@
1
- // Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
- // Original Author: LeotheDev
3
- using DREditor.Characters;
4
- using DREditor.Dialogues;
5
- using DREditor.UI;
6
- using System.Linq;
7
- using TMPro;
8
- using UnityEngine;
9
- using UnityEngine.UI;
10
-
11
- namespace DREditor.Backlogging
12
- {
13
- /// <summary>
14
- ///
15
- /// </summary>
16
- [ClassHeader("")]
17
- public class BacklogSlot : MonoBehaviour, IGridIconSlot
18
- {
19
- /// <summary>
20
- ///
21
- /// </summary>
22
- [Header("")]
23
- [Divider]
24
- [Tooltip("")]
25
- [SerializeField] protected CharacterDatabase characterDatabase = null;
26
-
27
- /// <summary>
28
- ///
29
- /// </summary>
30
- [Tooltip("")]
31
- [SerializeField] protected Backlog backlog = null;
32
-
33
- /// <summary>
34
- ///
35
- /// </summary>
36
- [Tooltip("")]
37
- [SerializeField] protected string headmasterFirstName = "Tozu";
38
-
39
- /// <summary>
40
- ///
41
- /// </summary>
42
- [Tooltip("")]
43
- [SerializeField] private BacklogMugBind[] Mugshots;
44
-
45
-
46
- /// <summary>
47
- ///
48
- /// </summary>
49
- [Header("")]
50
- [Divider]
51
- [Tooltip("")]
52
- [SerializeField] protected GameObject voiceIcon = null;
53
-
54
- /// <summary>
55
- ///
56
- /// </summary>
57
- [Tooltip("")]
58
- [SerializeField] protected Image overlayImage = null;
59
-
60
- /// <summary>
61
- ///
62
- /// </summary>
63
- [Tooltip("")]
64
- [SerializeField] protected Sprite overlayOn;
65
-
66
- /// <summary>
67
- ///
68
- /// </summary>
69
- [Tooltip("")]
70
- [SerializeField] protected Sprite overlayOff;
71
-
72
- /// <summary>
73
- ///
74
- /// </summary>
75
- [Tooltip("")]
76
- [SerializeField] protected TextMeshProUGUI backlogText = null;
77
-
78
- /// <summary>
79
- ///
80
- /// </summary>
81
- [Tooltip("")]
82
- [SerializeField] protected Image mugshotImage = null;
83
-
84
- /// <summary>
85
- ///
86
- /// </summary>
87
- [Tooltip("")]
88
- [SerializeField] protected RawImage nameplate = null;
89
-
90
-
91
- /// <inheritdoc/>
92
- public virtual void ClearSlotState() => DisplayEmptyBacklogEntry();
93
-
94
- /// <summary>
95
- ///
96
- /// </summary>
97
- protected virtual void DisplayEmptyBacklogEntry()
98
- {
99
- mugshotImage.gameObject.SetActive(false);
100
-
101
- overlayImage.sprite = overlayOff;
102
-
103
- nameplate.gameObject.SetActive(false);
104
-
105
- voiceIcon.SetActive(false);
106
-
107
- backlogText.text = string.Empty;
108
- }
109
-
110
-
111
- /// <inheritdoc/>
112
- public virtual void UpdateSlot(int globalIndex, bool selected)
113
- => UpdateBacklogSlot(backlog.Lines.ToArray().Reverse().ToArray()[globalIndex], selected);
114
-
115
- /// <summary>
116
- ///
117
- /// </summary>
118
- /// <param name="entry"></param>
119
- /// <param name="localSelected"></param>
120
- protected virtual void UpdateBacklogSlot(BacklogLines entry, bool localSelected)
121
- {
122
- Character character = characterDatabase.GetCharacter(entry.CharFirstName);
123
-
124
- if (character == null)
125
- return;
126
-
127
- EvaluateMugshot(character, localSelected, entry.AliasNum);
128
-
129
- nameplate.gameObject.SetActive(true);
130
-
131
- nameplate.texture = entry.AliasNum != -1
132
- ? characterDatabase.GetCharacter(entry.CharFirstName).Aliases[entry.AliasNum].Nameplate
133
- : characterDatabase.GetCharacter(entry.CharFirstName).Nameplate;
134
-
135
- overlayImage.sprite = localSelected ? overlayOn : overlayOff;
136
-
137
- backlogText.text = entry.Text;
138
-
139
- backlogText.color = entry.Color;
140
-
141
- voiceIcon.SetActive(!string.IsNullOrEmpty(entry.Voice));
142
- }
143
-
144
- /// <summary>
145
- ///
146
- /// </summary>
147
- /// <param name="character"></param>
148
- /// <param name="localSelected"></param>
149
- /// <param name="entryAliasNum"></param>
150
- protected virtual void EvaluateMugshot(Character character, bool localSelected, int entryAliasNum)
151
- {
152
- if (MugshotValid())
153
- PopulateMugshot(character, localSelected, entryAliasNum);
154
- }
155
-
156
- /// <summary>
157
- ///
158
- /// </summary>
159
- /// <returns></returns>
160
- protected virtual bool MugshotValid() => Mugshots != null && Mugshots.Length != 0;
161
-
162
- /// <summary>
163
- ///
164
- /// </summary>
165
- /// <param name="character"></param>
166
- /// <param name="localSelected"></param>
167
- /// <param name="entryAliasNum"></param>
168
- protected virtual void PopulateMugshot(Character character, bool localSelected, int entryAliasNum)
169
- {
170
- BacklogMugBind mug = Mugshots.First(f => f != null && f.charaName == character.FirstName);
171
-
172
- if (mug != null && mug.Mug_ON != null && mug.Mug_OFF != null)
173
- {
174
- mugshotImage.gameObject.SetActive(true);
175
-
176
- mugshotImage.sprite = localSelected ? mug.Mug_ON : mug.Mug_OFF;
177
-
178
- mugshotImage.transform.SetSiblingIndex(localSelected ? mugshotImage.transform.parent.childCount : 0);
179
- }
180
-
181
- if (mug == null || (character.FirstName == headmasterFirstName && entryAliasNum == 0))
182
- mugshotImage.gameObject.SetActive(false);
183
- }
184
-
185
- #if UNITY_EDITOR
186
- /// <summary>
187
- ///
188
- /// </summary>
189
- [ContextMenu("Generate Mugshot List")]
190
- public void GenerateMugshotList()
191
- {
192
- if (characterDatabase != null)
193
- {
194
- Mugshots = new BacklogMugBind[characterDatabase.Characters.Count];
195
-
196
- for (int i = 0; i < characterDatabase.Characters.Count; i++)
197
- Mugshots[i] = new(characterDatabase.Characters[i].FirstName, UnityEditor.Selection.objects);
198
- }
199
- else
200
- UnityEngine.Debug.LogWarning("ALERT: Must have Character Database assigned.");
201
- }
202
- #endif
203
-
204
- /// <summary>
205
- ///
206
- /// </summary>
207
- [System.Serializable]
208
- sealed class BacklogMugBind
209
- {
210
- /// <summary>
211
- ///
212
- /// </summary>
213
- [Tooltip("")]
214
- [SerializeField] internal string charaName;
215
-
216
- /// <summary>
217
- ///
218
- /// </summary>
219
- [Tooltip("")]
220
- [SerializeField] internal Sprite Mug_ON;
221
-
222
- /// <summary>
223
- ///
224
- /// </summary>
225
- [Tooltip("")]
226
- [SerializeField] internal Sprite Mug_OFF;
227
-
228
- /// <summary>
229
- ///
230
- /// </summary>
231
- /// <param name="charaName"></param>
232
- /// <param name="objects"></param>
233
- internal BacklogMugBind(string charaName, Object[] objects)
234
- {
235
- this.charaName = charaName;
236
-
237
- UnityEngine.Debug.Log(nameof(BacklogMugBind) + ": Note when importing. " +
238
- "Ensure you select all the headshot images of all characters so that they can be assigned.");
239
-
240
- UnityEngine.Debug.Log(nameof(BacklogMugBind) + ": Note when importing. Ensure that the names of the mug shot sprites " +
241
- "contain the characters name, and the words \"Selected\" or \"Unselected\" for proper importing.");
242
-
243
- foreach (var sprite in objects)
244
- if (sprite.name.Contains(charaName))
245
- if (sprite.name.Contains("Unselected"))
246
- Mug_OFF = (Sprite)sprite;
247
- else
248
- Mug_ON = (Sprite)sprite;
249
- }
250
- }
251
- }
1
+ // Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ // Original Author: LeotheDev
3
+ using DREditor.Characters;
4
+ using DREditor.Dialogues;
5
+ using DREditor.UI;
6
+ using System.Linq;
7
+ using TMPro;
8
+ using UnityEngine;
9
+ using UnityEngine.UI;
10
+
11
+ namespace DREditor.Backlogging
12
+ {
13
+ /// <summary>
14
+ ///
15
+ /// </summary>
16
+ [ClassHeader("")]
17
+ public class BacklogSlot : MonoBehaviour, IGridIconSlot
18
+ {
19
+ /// <summary>
20
+ ///
21
+ /// </summary>
22
+ [Header("")]
23
+ [Divider]
24
+ [Tooltip("")]
25
+ [SerializeField] protected CharacterDatabase characterDatabase = null;
26
+
27
+ /// <summary>
28
+ ///
29
+ /// </summary>
30
+ [Tooltip("")]
31
+ [SerializeField] protected Backlog backlog = null;
32
+
33
+ /// <summary>
34
+ ///
35
+ /// </summary>
36
+ [Tooltip("")]
37
+ [SerializeField] protected string headmasterFirstName = "Tozu";
38
+
39
+ /// <summary>
40
+ ///
41
+ /// </summary>
42
+ [Tooltip("")]
43
+ [SerializeField] private BacklogMugBind[] Mugshots;
44
+
45
+
46
+ /// <summary>
47
+ ///
48
+ /// </summary>
49
+ [Header("")]
50
+ [Divider]
51
+ [Tooltip("")]
52
+ [SerializeField] protected GameObject voiceIcon = null;
53
+
54
+ /// <summary>
55
+ ///
56
+ /// </summary>
57
+ [Tooltip("")]
58
+ [SerializeField] protected Image overlayImage = null;
59
+
60
+ /// <summary>
61
+ ///
62
+ /// </summary>
63
+ [Tooltip("")]
64
+ [SerializeField] protected Sprite overlayOn;
65
+
66
+ /// <summary>
67
+ ///
68
+ /// </summary>
69
+ [Tooltip("")]
70
+ [SerializeField] protected Sprite overlayOff;
71
+
72
+ /// <summary>
73
+ ///
74
+ /// </summary>
75
+ [Tooltip("")]
76
+ [SerializeField] protected TextMeshProUGUI backlogText = null;
77
+
78
+ /// <summary>
79
+ ///
80
+ /// </summary>
81
+ [Tooltip("")]
82
+ [SerializeField] protected Image mugshotImage = null;
83
+
84
+ /// <summary>
85
+ ///
86
+ /// </summary>
87
+ [Tooltip("")]
88
+ [SerializeField] protected RawImage nameplate = null;
89
+
90
+
91
+ /// <inheritdoc/>
92
+ public virtual void ClearSlotState() => DisplayEmptyBacklogEntry();
93
+
94
+ /// <summary>
95
+ ///
96
+ /// </summary>
97
+ protected virtual void DisplayEmptyBacklogEntry()
98
+ {
99
+ mugshotImage.gameObject.SetActive(false);
100
+
101
+ overlayImage.sprite = overlayOff;
102
+
103
+ nameplate.gameObject.SetActive(false);
104
+
105
+ voiceIcon.SetActive(false);
106
+
107
+ backlogText.text = string.Empty;
108
+ }
109
+
110
+
111
+ /// <inheritdoc/>
112
+ public virtual void UpdateSlot(int globalIndex, bool selected)
113
+ => UpdateBacklogSlot(backlog.Lines.ToArray().Reverse().ToArray()[globalIndex], selected);
114
+
115
+ /// <summary>
116
+ ///
117
+ /// </summary>
118
+ /// <param name="entry"></param>
119
+ /// <param name="localSelected"></param>
120
+ protected virtual void UpdateBacklogSlot(BacklogLines entry, bool localSelected)
121
+ {
122
+ Character character = characterDatabase.GetCharacter(entry.CharFirstName);
123
+
124
+ if (character == null)
125
+ return;
126
+
127
+ EvaluateMugshot(character, localSelected, entry.AliasNum);
128
+
129
+ nameplate.gameObject.SetActive(true);
130
+
131
+ nameplate.texture = entry.AliasNum != -1
132
+ ? characterDatabase.GetCharacter(entry.CharFirstName).Aliases[entry.AliasNum].Nameplate
133
+ : characterDatabase.GetCharacter(entry.CharFirstName).Nameplate;
134
+
135
+ overlayImage.sprite = localSelected ? overlayOn : overlayOff;
136
+
137
+ backlogText.text = entry.Text;
138
+
139
+ backlogText.color = entry.Color;
140
+
141
+ voiceIcon.SetActive(!string.IsNullOrEmpty(entry.Voice));
142
+ }
143
+
144
+ /// <summary>
145
+ ///
146
+ /// </summary>
147
+ /// <param name="character"></param>
148
+ /// <param name="localSelected"></param>
149
+ /// <param name="entryAliasNum"></param>
150
+ protected virtual void EvaluateMugshot(Character character, bool localSelected, int entryAliasNum)
151
+ {
152
+ if (MugshotValid())
153
+ PopulateMugshot(character, localSelected, entryAliasNum);
154
+ }
155
+
156
+ /// <summary>
157
+ ///
158
+ /// </summary>
159
+ /// <returns></returns>
160
+ protected virtual bool MugshotValid() => Mugshots != null && Mugshots.Length != 0;
161
+
162
+ /// <summary>
163
+ ///
164
+ /// </summary>
165
+ /// <param name="character"></param>
166
+ /// <param name="localSelected"></param>
167
+ /// <param name="entryAliasNum"></param>
168
+ protected virtual void PopulateMugshot(Character character, bool localSelected, int entryAliasNum)
169
+ {
170
+ BacklogMugBind mug = Mugshots.First(f => f != null && f.charaName == character.FirstName);
171
+
172
+ if (mug != null && mug.Mug_ON != null && mug.Mug_OFF != null)
173
+ {
174
+ mugshotImage.gameObject.SetActive(true);
175
+
176
+ mugshotImage.sprite = localSelected ? mug.Mug_ON : mug.Mug_OFF;
177
+
178
+ mugshotImage.transform.SetSiblingIndex(localSelected ? mugshotImage.transform.parent.childCount : 0);
179
+ }
180
+
181
+ if (mug == null || (character.FirstName == headmasterFirstName && entryAliasNum == 0))
182
+ mugshotImage.gameObject.SetActive(false);
183
+ }
184
+
185
+ #if UNITY_EDITOR
186
+ /// <summary>
187
+ ///
188
+ /// </summary>
189
+ [ContextMenu("Generate Mugshot List")]
190
+ public void GenerateMugshotList()
191
+ {
192
+ if (characterDatabase != null)
193
+ {
194
+ Mugshots = new BacklogMugBind[characterDatabase.Characters.Count];
195
+
196
+ for (int i = 0; i < characterDatabase.Characters.Count; i++)
197
+ Mugshots[i] = new(characterDatabase.Characters[i].FirstName, UnityEditor.Selection.objects);
198
+ }
199
+ else
200
+ UnityEngine.Debug.LogWarning("ALERT: Must have Character Database assigned.");
201
+ }
202
+ #endif
203
+
204
+ /// <summary>
205
+ ///
206
+ /// </summary>
207
+ [System.Serializable]
208
+ sealed class BacklogMugBind
209
+ {
210
+ /// <summary>
211
+ ///
212
+ /// </summary>
213
+ [Tooltip("")]
214
+ [SerializeField] internal string charaName;
215
+
216
+ /// <summary>
217
+ ///
218
+ /// </summary>
219
+ [Tooltip("")]
220
+ [SerializeField] internal Sprite Mug_ON;
221
+
222
+ /// <summary>
223
+ ///
224
+ /// </summary>
225
+ [Tooltip("")]
226
+ [SerializeField] internal Sprite Mug_OFF;
227
+
228
+ /// <summary>
229
+ ///
230
+ /// </summary>
231
+ /// <param name="charaName"></param>
232
+ /// <param name="objects"></param>
233
+ internal BacklogMugBind(string charaName, Object[] objects)
234
+ {
235
+ this.charaName = charaName;
236
+
237
+ UnityEngine.Debug.Log(nameof(BacklogMugBind) + ": Note when importing. " +
238
+ "Ensure you select all the headshot images of all characters so that they can be assigned.");
239
+
240
+ UnityEngine.Debug.Log(nameof(BacklogMugBind) + ": Note when importing. Ensure that the names of the mug shot sprites " +
241
+ "contain the characters name, and the words \"Selected\" or \"Unselected\" for proper importing.");
242
+
243
+ foreach (var sprite in objects)
244
+ if (sprite.name.Contains(charaName))
245
+ if (sprite.name.Contains("Unselected"))
246
+ Mug_OFF = (Sprite)sprite;
247
+ else
248
+ Mug_ON = (Sprite)sprite;
249
+ }
250
+ }
251
+ }
252
252
  }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 8acb6b541e1be7243af2af6b5b232703
3
- MonoImporter:
4
- externalObjects: {}
5
- serializedVersion: 2
6
- defaultReferences: []
7
- executionOrder: 0
8
- icon: {instanceID: 0}
9
- userData:
10
- assetBundleName:
11
- assetBundleVariant:
1
+ fileFormatVersion: 2
2
+ guid: 8acb6b541e1be7243af2af6b5b232703
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: