net.dreditor.maps 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.
Files changed (132) hide show
  1. package/.attestation.p7m +0 -0
  2. package/CharacterMapMarkerUI.cs +94 -94
  3. package/CharacterMapMarkerUI.cs.meta +11 -11
  4. package/CharacterMapUITab.cs +171 -171
  5. package/CharacterMapUITab.cs.meta +11 -11
  6. package/ClearMapAreaData.cs +22 -22
  7. package/ClearMapAreaData.cs.meta +11 -11
  8. package/ClearMapInstanceData.cs +35 -35
  9. package/ClearMapInstanceData.cs.meta +11 -11
  10. package/ControlFastTravel.cs +56 -56
  11. package/ControlFastTravel.cs.meta +11 -11
  12. package/DREditor.Maps.asmdef +23 -23
  13. package/DREditor.Maps.asmdef.meta +7 -7
  14. package/DiscoverData.cs +22 -22
  15. package/DiscoverData.cs.meta +11 -11
  16. package/DiscoverableBase.cs +23 -23
  17. package/DiscoverableBase.cs.meta +11 -11
  18. package/FastTravelController.cs +35 -35
  19. package/FastTravelController.cs.meta +11 -11
  20. package/FastTravelData.cs +24 -24
  21. package/FastTravelData.cs.meta +11 -11
  22. package/FastTravelMarker.cs +106 -106
  23. package/FastTravelMarker.cs.meta +13 -13
  24. package/IDHolder.cs +46 -46
  25. package/IDHolder.cs.meta +11 -11
  26. package/IEntryLoader.cs +18 -18
  27. package/IEntryLoader.cs.meta +11 -11
  28. package/IMapManager.cs +26 -26
  29. package/IMapManager.cs.meta +11 -11
  30. package/IPlaceMarker.cs +25 -25
  31. package/IPlaceMarker.cs.meta +11 -11
  32. package/IPlaceOptionHolder.cs +52 -52
  33. package/IPlaceOptionHolder.cs.meta +11 -11
  34. package/MapAreaData.cs +52 -52
  35. package/MapAreaData.cs.meta +11 -11
  36. package/MapAreaEntry.cs +54 -54
  37. package/MapAreaEntry.cs.meta +11 -11
  38. package/MapAreaManager.cs +193 -193
  39. package/MapAreaManager.cs.meta +11 -11
  40. package/MapBaseData.cs +65 -65
  41. package/MapBaseData.cs.meta +11 -11
  42. package/MapData.cs +34 -34
  43. package/MapData.cs.meta +11 -11
  44. package/MapDatabase.cs +132 -132
  45. package/MapDatabase.cs.meta +11 -11
  46. package/MapEntry.cs +76 -76
  47. package/MapEntry.cs.meta +11 -11
  48. package/MapEntryChange.cs +320 -320
  49. package/MapEntryChange.cs.meta +11 -11
  50. package/MapEntryChanger.cs +44 -44
  51. package/MapEntryChanger.cs.meta +11 -11
  52. package/MapHoverSelector.cs +160 -160
  53. package/MapHoverSelector.cs.meta +11 -11
  54. package/MapManager.cs +287 -287
  55. package/MapManager.cs.meta +11 -11
  56. package/MapManagerBase.cs +259 -259
  57. package/MapManagerBase.cs.meta +11 -11
  58. package/MapMarkerSelectable.cs +70 -70
  59. package/MapMarkerSelectable.cs.meta +11 -11
  60. package/MapObjectiveData.cs +27 -27
  61. package/MapObjectiveData.cs.meta +11 -11
  62. package/MapSaveManager.cs +62 -62
  63. package/MapSaveManager.cs.meta +11 -11
  64. package/MapTabUIHandler.cs +97 -97
  65. package/MapTabUIHandler.cs.meta +11 -11
  66. package/MapUITab.cs +25 -25
  67. package/MapUITab.cs.meta +11 -11
  68. package/MapUtility.cs +182 -182
  69. package/MapUtility.cs.meta +11 -11
  70. package/MarkerData.cs +24 -24
  71. package/MarkerData.cs.meta +11 -11
  72. package/MarkerDatabase.cs +56 -56
  73. package/MarkerDatabase.cs.meta +11 -11
  74. package/MarkerUtility.cs +47 -47
  75. package/MarkerUtility.cs.meta +11 -11
  76. package/MarkerVessel.cs +37 -37
  77. package/MarkerVessel.cs.meta +11 -11
  78. package/PlaceData.cs +26 -26
  79. package/PlaceData.cs.meta +11 -11
  80. package/PlaceEntry.cs +82 -82
  81. package/PlaceEntry.cs.meta +11 -11
  82. package/PlaceManager.cs +292 -292
  83. package/PlaceManager.cs.meta +11 -11
  84. package/PlaceMapUITab.cs +202 -202
  85. package/PlaceMapUITab.cs.meta +11 -11
  86. package/{Samples → Samples~}/Clear_Map_Area_Data_Event.prefab +52 -52
  87. package/{Samples → Samples~}/Clear_Map_Area_Data_Event.prefab.meta +7 -7
  88. package/{Samples → Samples~}/Clear_Map_Instance_Data.prefab +56 -56
  89. package/{Samples → Samples~}/Clear_Map_Instance_Data.prefab.meta +7 -7
  90. package/{Samples → Samples~}/DRE_Map_UI.unity +461 -461
  91. package/{Samples → Samples~}/DRE_Map_UI.unity.meta +7 -7
  92. package/{Samples → Samples~}/Map_Entry_Changer.prefab +52 -52
  93. package/{Samples → Samples~}/Map_Entry_Changer.prefab.meta +7 -7
  94. package/{Samples → Samples~}/Map_Marker_Selectable_ETemplate.prefab +126 -126
  95. package/{Samples → Samples~}/Map_Marker_Selectable_ETemplate.prefab.meta +7 -7
  96. package/{Samples → Samples~}/Map_Tab_UI_Handler_Shell.prefab +134 -134
  97. package/{Samples → Samples~}/Map_Tab_UI_Handler_Shell.prefab.meta +7 -7
  98. package/{Samples → Samples~}/Map_Tab_UI_Handler_Template.prefab +404 -404
  99. package/{Samples → Samples~}/Map_Tab_UI_Handler_Template.prefab.meta +7 -7
  100. package/{Samples → Samples~}/Map_UI_Canvas_Shell.prefab +842 -842
  101. package/{Samples → Samples~}/Map_UI_Canvas_Shell.prefab.meta +7 -7
  102. package/{Samples → Samples~}/Map_UI_Canvas_Template.prefab +996 -996
  103. package/{Samples → Samples~}/Map_UI_Canvas_Template.prefab.meta +7 -7
  104. package/{Samples → Samples~}/Map_UI_Controls_ETemplate.prefab +538 -538
  105. package/{Samples → Samples~}/Map_UI_Controls_ETemplate.prefab.meta +7 -7
  106. package/{Samples → Samples~}/Map_UI_GO_FT_ETemplate.prefab +78 -78
  107. package/{Samples → Samples~}/Map_UI_GO_FT_ETemplate.prefab.meta +7 -7
  108. package/{Samples → Samples~}/Map_UI_Place_Place_Name_ETemplate.prefab +181 -181
  109. package/{Samples → Samples~}/Map_UI_Place_Place_Name_ETemplate.prefab.meta +7 -7
  110. package/{Samples → Samples~}/Map_UI_Place_Tab_Shell.prefab +57 -57
  111. package/{Samples → Samples~}/Map_UI_Place_Tab_Shell.prefab.meta +7 -7
  112. package/{Samples → Samples~}/Map_UI_Place_Tab_Template.prefab +806 -806
  113. package/{Samples → Samples~}/Map_UI_Place_Tab_Template.prefab.meta +7 -7
  114. package/{Samples → Samples~}/Map_UI_Place_Tab_UI_ETemplate.prefab +1265 -1265
  115. package/{Samples → Samples~}/Map_UI_Place_Tab_UI_ETemplate.prefab.meta +7 -7
  116. package/{Samples → Samples~}/Map_UI_Reticle_ETemplate.prefab +78 -78
  117. package/{Samples → Samples~}/Map_UI_Reticle_ETemplate.prefab.meta +7 -7
  118. package/{Samples → Samples~}/Map_UI_Student_Tab_Shell.prefab +267 -267
  119. package/{Samples → Samples~}/Map_UI_Student_Tab_Shell.prefab.meta +7 -7
  120. package/{Samples → Samples~}/Map_UI_Student_Tab_Template.prefab +544 -544
  121. package/{Samples → Samples~}/Map_UI_Student_Tab_Template.prefab.meta +7 -7
  122. package/{Samples → Samples~}/Map_UI_Student_Tab_UI_Shell.prefab +90 -90
  123. package/{Samples → Samples~}/Map_UI_Student_Tab_UI_Shell.prefab.meta +7 -7
  124. package/{Samples → Samples~}/Map_UI_Student_Tab_UI_Template.prefab +2031 -2031
  125. package/{Samples → Samples~}/Map_UI_Student_Tab_UI_Template.prefab.meta +7 -7
  126. package/{Samples → Samples~}/Map_UI_Title_ETemplate.prefab +672 -672
  127. package/{Samples → Samples~}/Map_UI_Title_ETemplate.prefab.meta +7 -7
  128. package/{Samples → Samples~}/Place_Template.prefab +200 -200
  129. package/{Samples → Samples~}/Place_Template.prefab.meta +7 -7
  130. package/package.json +45 -40
  131. package/package.json.meta +7 -7
  132. package/Samples.meta +0 -8
package/PlaceManager.cs CHANGED
@@ -1,293 +1,293 @@
1
- //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
- using System.Collections.Generic;
3
- using System.Linq;
4
- using UnityEngine;
5
- using UnityEngine.UI;
6
-
7
- namespace DREditor.Maps
8
- {
9
- /// <summary>
10
- ///
11
- /// </summary>
12
- [ClassHeader("")]
13
- public class PlaceManager : MonoBehaviour
14
- {
15
- /// <summary>
16
- ///
17
- /// </summary>
18
- [Header("")]
19
- [Divider]
20
- [Tooltip("")]
21
- [SerializeField] protected PlaceEntry Entry;
22
-
23
- /// <summary>
24
- ///
25
- /// </summary>
26
- [Tooltip("")]
27
- [SerializeField] protected List<Image> markers = new();
28
-
29
- /// <summary>
30
- ///
31
- /// </summary>
32
- [Tooltip("")]
33
- [SerializeField] protected IPlaceMarker[] placeMarkers = null;
34
-
35
-
36
- /// <summary>
37
- ///
38
- /// </summary>
39
- [Header("")]
40
- [Divider]
41
- [Tooltip("")]
42
- public PlaceData Data;
43
-
44
- /// <summary>
45
- ///
46
- /// </summary>
47
- [Tooltip("")]
48
- [SerializeField] protected MarkerDatabase database = null;
49
-
50
- /// <summary>
51
- ///
52
- /// </summary>
53
- [Tooltip("")]
54
- [SerializeField] protected Image RoomImage = null;
55
-
56
-
57
- /// <summary>
58
- ///
59
- /// </summary>
60
- protected virtual void Awake() => InitializePlaceMarkers();
61
-
62
- /// <summary>
63
- ///
64
- /// </summary>
65
- protected virtual void InitializePlaceMarkers()
66
- {
67
- placeMarkers = GetComponentsInChildren<MonoBehaviour>().OfType<IPlaceMarker>().ToArray();
68
-
69
- foreach (var markers in placeMarkers)
70
- markers.Initialize(Data);
71
- }
72
-
73
- /// <summary>
74
- ///
75
- /// </summary>
76
- /// <returns></returns>
77
- public virtual PlaceEntry GetEntryInstance() => Entry;
78
-
79
- /// <summary>
80
- ///
81
- /// </summary>
82
- /// <param name="visible"></param>
83
- public virtual void SetPlaceVisibilityTo(bool visible)
84
- {
85
- if (RoomImage != null)
86
- RoomImage.enabled = visible;
87
- }
88
-
89
- /// <summary>
90
- ///
91
- /// </summary>
92
- /// <returns></returns>
93
- public virtual bool HasRoomImage() => RoomImage != null;
94
-
95
- /// <summary>
96
- ///
97
- /// </summary>
98
- /// <param name="entry"></param>
99
- public virtual void LoadPlace(PlaceEntry entry)
100
- {
101
- if (entry != Entry)
102
- {
103
- Entry = entry;
104
-
105
- Load();
106
-
107
- ClearMarkerList();
108
-
109
- LoadMarkerData();
110
-
111
- LoadHandlers();
112
- }
113
- else
114
- UnityEngine.Debug.Log("Place Marker: " + Data.name + " has Identified no change in state.");
115
- }
116
-
117
- /// <summary>
118
- ///
119
- /// </summary>
120
- protected virtual void LoadMarkerData()
121
- {
122
- ValidateEntry();
123
-
124
- foreach (var markerVessel in Entry.MarkerVessels)
125
- CreateMarker(markerVessel);
126
- }
127
-
128
- /// <summary>
129
- ///
130
- /// </summary>
131
- protected virtual void ValidateEntry()
132
- {
133
- if (Entry.MarkerDatas.Count > Entry.MarkerVessels.Count)
134
- foreach (var markerData in Entry.MarkerDatas)
135
- Entry.MarkerVessels.Add(database.GetVesselByData(markerData));
136
-
137
- if (Entry.MarkerDatas.Count < Entry.MarkerVessels.Count)
138
- foreach (var markerVessel in Entry.MarkerVessels)
139
- if (markerVessel != null)
140
- Entry.MarkerDatas.Add(markerVessel.markerData);
141
- }
142
-
143
- /// <summary>
144
- ///
145
- /// </summary>
146
- protected virtual void ClearMarkerList()
147
- {
148
- foreach (Image image in markers)
149
- Destroy(image.gameObject);
150
-
151
- markers.Clear();
152
- }
153
-
154
- /// <summary>
155
- ///
156
- /// </summary>
157
- protected virtual void LoadHandlers()
158
- {
159
- foreach (IEntryLoader entryLoader in GetComponentsInChildren<MonoBehaviour>().OfType<IEntryLoader>())
160
- entryLoader.LoadEntry(Entry, markers);
161
- }
162
-
163
- /// <summary>
164
- ///
165
- /// </summary>
166
- /// <param name="markerName"></param>
167
- /// <returns></returns>
168
- public virtual bool ContainsMarker(string markerName)
169
- {
170
- foreach (var marker in markers)
171
- if (marker.name == markerName)
172
- return true;
173
-
174
- return false;
175
- }
176
-
177
- /// <summary>
178
- ///
179
- /// </summary>
180
- public virtual void Load()
181
- {
182
- if (Entry.MarkerDatas.Count == 0)
183
- return;
184
-
185
- Entry.MarkerVessels.Clear();
186
-
187
- foreach (var marker in Entry.MarkerDatas)
188
- Entry.MarkerVessels.Add(database.GetVesselByData(marker));
189
- }
190
-
191
- /// <summary>
192
- ///
193
- /// </summary>
194
- /// <param name="markerVessel"></param>
195
- public virtual void CreateMarker(MarkerVessel markerVessel)
196
- {
197
- if (markerVessel != null && markerVessel.sprite != null)
198
- {
199
- GameObject go = new();
200
-
201
- Image image = go.AddComponent<Image>();
202
-
203
- image.sprite = markerVessel.sprite;
204
-
205
- if (markerVessel.markerData.sizeDelta == Vector2.zero)
206
- image.SetNativeSize();
207
- else
208
- image.rectTransform.sizeDelta = markerVessel.markerData.sizeDelta;
209
-
210
- go.transform.SetParent(gameObject.transform);
211
-
212
- go.transform.localPosition = markerVessel.markerData.localPosition;
213
-
214
- go.name = markerVessel.markerData.name;
215
-
216
- markers.Add(image);
217
- }
218
- }
219
-
220
- /// <summary>
221
- ///
222
- /// </summary>
223
- /// <param name="sprite"></param>
224
- public virtual void DestroyMarker(Sprite sprite)
225
- {
226
- if (GetMarkerImage(sprite) is Image image && image != null)
227
- {
228
- MarkerVessel marker = GetMarkerData(image.sprite);
229
-
230
- Entry.MarkerVessels.Remove(marker);
231
-
232
- markers.Remove(image);
233
-
234
- Destroy(image.gameObject);
235
- }
236
- }
237
-
238
- /// <summary>
239
- ///
240
- /// </summary>
241
- /// <param name="sprite"></param>
242
- /// <returns></returns>
243
- protected virtual Image GetMarkerImage(Sprite sprite)
244
- {
245
- foreach (var image in markers)
246
- if (image.sprite == sprite)
247
- return image;
248
-
249
- return null;
250
- }
251
-
252
- /// <summary>
253
- ///
254
- /// </summary>
255
- /// <param name="sprite"></param>
256
- /// <returns></returns>
257
- protected virtual MarkerVessel GetMarkerData(Sprite sprite)
258
- {
259
- var markerVessels = Entry.MarkerVessels.Where(marker => marker.sprite == sprite).ToList();
260
-
261
- if (markerVessels.Count > 0)
262
- return markerVessels[0];
263
- else
264
- return null;
265
- }
266
-
267
- /// <summary>
268
- ///
269
- /// </summary>
270
- /// <param name="unlocks"></param>
271
- /// <returns></returns>
272
- public virtual bool IsUnlocked(List<string> unlocks) => !HasRoomImage() || HasRoomImage() && unlocks.Contains(Data.GetID());
273
-
274
-
275
- /// <summary>
276
- ///
277
- /// </summary>
278
- public virtual void Select()
279
- {
280
- foreach (var place in placeMarkers)
281
- place.Select();
282
- }
283
-
284
- /// <summary>
285
- ///
286
- /// </summary>
287
- public virtual void Deselect()
288
- {
289
- foreach (var place in placeMarkers)
290
- place.Deselect();
291
- }
292
- }
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using System.Collections.Generic;
3
+ using System.Linq;
4
+ using UnityEngine;
5
+ using UnityEngine.UI;
6
+
7
+ namespace DREditor.Maps
8
+ {
9
+ /// <summary>
10
+ ///
11
+ /// </summary>
12
+ [ClassHeader("")]
13
+ public class PlaceManager : MonoBehaviour
14
+ {
15
+ /// <summary>
16
+ ///
17
+ /// </summary>
18
+ [Header("")]
19
+ [Divider]
20
+ [Tooltip("")]
21
+ [SerializeField] protected PlaceEntry Entry;
22
+
23
+ /// <summary>
24
+ ///
25
+ /// </summary>
26
+ [Tooltip("")]
27
+ [SerializeField] protected List<Image> markers = new();
28
+
29
+ /// <summary>
30
+ ///
31
+ /// </summary>
32
+ [Tooltip("")]
33
+ [SerializeField] protected IPlaceMarker[] placeMarkers = null;
34
+
35
+
36
+ /// <summary>
37
+ ///
38
+ /// </summary>
39
+ [Header("")]
40
+ [Divider]
41
+ [Tooltip("")]
42
+ public PlaceData Data;
43
+
44
+ /// <summary>
45
+ ///
46
+ /// </summary>
47
+ [Tooltip("")]
48
+ [SerializeField] protected MarkerDatabase database = null;
49
+
50
+ /// <summary>
51
+ ///
52
+ /// </summary>
53
+ [Tooltip("")]
54
+ [SerializeField] protected Image RoomImage = null;
55
+
56
+
57
+ /// <summary>
58
+ ///
59
+ /// </summary>
60
+ protected virtual void Awake() => InitializePlaceMarkers();
61
+
62
+ /// <summary>
63
+ ///
64
+ /// </summary>
65
+ protected virtual void InitializePlaceMarkers()
66
+ {
67
+ placeMarkers = GetComponentsInChildren<MonoBehaviour>().OfType<IPlaceMarker>().ToArray();
68
+
69
+ foreach (var markers in placeMarkers)
70
+ markers.Initialize(Data);
71
+ }
72
+
73
+ /// <summary>
74
+ ///
75
+ /// </summary>
76
+ /// <returns></returns>
77
+ public virtual PlaceEntry GetEntryInstance() => Entry;
78
+
79
+ /// <summary>
80
+ ///
81
+ /// </summary>
82
+ /// <param name="visible"></param>
83
+ public virtual void SetPlaceVisibilityTo(bool visible)
84
+ {
85
+ if (RoomImage != null)
86
+ RoomImage.enabled = visible;
87
+ }
88
+
89
+ /// <summary>
90
+ ///
91
+ /// </summary>
92
+ /// <returns></returns>
93
+ public virtual bool HasRoomImage() => RoomImage != null;
94
+
95
+ /// <summary>
96
+ ///
97
+ /// </summary>
98
+ /// <param name="entry"></param>
99
+ public virtual void LoadPlace(PlaceEntry entry)
100
+ {
101
+ if (entry != Entry)
102
+ {
103
+ Entry = entry;
104
+
105
+ Load();
106
+
107
+ ClearMarkerList();
108
+
109
+ LoadMarkerData();
110
+
111
+ LoadHandlers();
112
+ }
113
+ else
114
+ UnityEngine.Debug.Log("Place Marker: " + Data.name + " has Identified no change in state.");
115
+ }
116
+
117
+ /// <summary>
118
+ ///
119
+ /// </summary>
120
+ protected virtual void LoadMarkerData()
121
+ {
122
+ ValidateEntry();
123
+
124
+ foreach (var markerVessel in Entry.MarkerVessels)
125
+ CreateMarker(markerVessel);
126
+ }
127
+
128
+ /// <summary>
129
+ ///
130
+ /// </summary>
131
+ protected virtual void ValidateEntry()
132
+ {
133
+ if (Entry.MarkerDatas.Count > Entry.MarkerVessels.Count)
134
+ foreach (var markerData in Entry.MarkerDatas)
135
+ Entry.MarkerVessels.Add(database.GetVesselByData(markerData));
136
+
137
+ if (Entry.MarkerDatas.Count < Entry.MarkerVessels.Count)
138
+ foreach (var markerVessel in Entry.MarkerVessels)
139
+ if (markerVessel != null)
140
+ Entry.MarkerDatas.Add(markerVessel.markerData);
141
+ }
142
+
143
+ /// <summary>
144
+ ///
145
+ /// </summary>
146
+ protected virtual void ClearMarkerList()
147
+ {
148
+ foreach (Image image in markers)
149
+ Destroy(image.gameObject);
150
+
151
+ markers.Clear();
152
+ }
153
+
154
+ /// <summary>
155
+ ///
156
+ /// </summary>
157
+ protected virtual void LoadHandlers()
158
+ {
159
+ foreach (IEntryLoader entryLoader in GetComponentsInChildren<MonoBehaviour>().OfType<IEntryLoader>())
160
+ entryLoader.LoadEntry(Entry, markers);
161
+ }
162
+
163
+ /// <summary>
164
+ ///
165
+ /// </summary>
166
+ /// <param name="markerName"></param>
167
+ /// <returns></returns>
168
+ public virtual bool ContainsMarker(string markerName)
169
+ {
170
+ foreach (var marker in markers)
171
+ if (marker.name == markerName)
172
+ return true;
173
+
174
+ return false;
175
+ }
176
+
177
+ /// <summary>
178
+ ///
179
+ /// </summary>
180
+ public virtual void Load()
181
+ {
182
+ if (Entry.MarkerDatas.Count == 0)
183
+ return;
184
+
185
+ Entry.MarkerVessels.Clear();
186
+
187
+ foreach (var marker in Entry.MarkerDatas)
188
+ Entry.MarkerVessels.Add(database.GetVesselByData(marker));
189
+ }
190
+
191
+ /// <summary>
192
+ ///
193
+ /// </summary>
194
+ /// <param name="markerVessel"></param>
195
+ public virtual void CreateMarker(MarkerVessel markerVessel)
196
+ {
197
+ if (markerVessel != null && markerVessel.sprite != null)
198
+ {
199
+ GameObject go = new();
200
+
201
+ Image image = go.AddComponent<Image>();
202
+
203
+ image.sprite = markerVessel.sprite;
204
+
205
+ if (markerVessel.markerData.sizeDelta == Vector2.zero)
206
+ image.SetNativeSize();
207
+ else
208
+ image.rectTransform.sizeDelta = markerVessel.markerData.sizeDelta;
209
+
210
+ go.transform.SetParent(gameObject.transform);
211
+
212
+ go.transform.localPosition = markerVessel.markerData.localPosition;
213
+
214
+ go.name = markerVessel.markerData.name;
215
+
216
+ markers.Add(image);
217
+ }
218
+ }
219
+
220
+ /// <summary>
221
+ ///
222
+ /// </summary>
223
+ /// <param name="sprite"></param>
224
+ public virtual void DestroyMarker(Sprite sprite)
225
+ {
226
+ if (GetMarkerImage(sprite) is Image image && image != null)
227
+ {
228
+ MarkerVessel marker = GetMarkerData(image.sprite);
229
+
230
+ Entry.MarkerVessels.Remove(marker);
231
+
232
+ markers.Remove(image);
233
+
234
+ Destroy(image.gameObject);
235
+ }
236
+ }
237
+
238
+ /// <summary>
239
+ ///
240
+ /// </summary>
241
+ /// <param name="sprite"></param>
242
+ /// <returns></returns>
243
+ protected virtual Image GetMarkerImage(Sprite sprite)
244
+ {
245
+ foreach (var image in markers)
246
+ if (image.sprite == sprite)
247
+ return image;
248
+
249
+ return null;
250
+ }
251
+
252
+ /// <summary>
253
+ ///
254
+ /// </summary>
255
+ /// <param name="sprite"></param>
256
+ /// <returns></returns>
257
+ protected virtual MarkerVessel GetMarkerData(Sprite sprite)
258
+ {
259
+ var markerVessels = Entry.MarkerVessels.Where(marker => marker.sprite == sprite).ToList();
260
+
261
+ if (markerVessels.Count > 0)
262
+ return markerVessels[0];
263
+ else
264
+ return null;
265
+ }
266
+
267
+ /// <summary>
268
+ ///
269
+ /// </summary>
270
+ /// <param name="unlocks"></param>
271
+ /// <returns></returns>
272
+ public virtual bool IsUnlocked(List<string> unlocks) => !HasRoomImage() || HasRoomImage() && unlocks.Contains(Data.GetID());
273
+
274
+
275
+ /// <summary>
276
+ ///
277
+ /// </summary>
278
+ public virtual void Select()
279
+ {
280
+ foreach (var place in placeMarkers)
281
+ place.Select();
282
+ }
283
+
284
+ /// <summary>
285
+ ///
286
+ /// </summary>
287
+ public virtual void Deselect()
288
+ {
289
+ foreach (var place in placeMarkers)
290
+ place.Deselect();
291
+ }
292
+ }
293
293
  }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 59946d010f88a17488526187a4483092
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: 59946d010f88a17488526187a4483092
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: