net.dreditor.maps 0.0.0-stage → 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 +95 -0
  3. package/CharacterMapMarkerUI.cs.meta +11 -0
  4. package/CharacterMapUITab.cs +172 -0
  5. package/CharacterMapUITab.cs.meta +11 -0
  6. package/ClearMapAreaData.cs +23 -0
  7. package/ClearMapAreaData.cs.meta +11 -0
  8. package/ClearMapInstanceData.cs +36 -0
  9. package/ClearMapInstanceData.cs.meta +11 -0
  10. package/ControlFastTravel.cs +57 -0
  11. package/ControlFastTravel.cs.meta +11 -0
  12. package/DREditor.Maps.asmdef +24 -0
  13. package/DREditor.Maps.asmdef.meta +7 -0
  14. package/DiscoverData.cs +23 -0
  15. package/DiscoverData.cs.meta +11 -0
  16. package/DiscoverableBase.cs +24 -0
  17. package/DiscoverableBase.cs.meta +11 -0
  18. package/FastTravelController.cs +36 -0
  19. package/FastTravelController.cs.meta +11 -0
  20. package/FastTravelData.cs +25 -0
  21. package/FastTravelData.cs.meta +11 -0
  22. package/FastTravelMarker.cs +107 -0
  23. package/FastTravelMarker.cs.meta +13 -0
  24. package/IDHolder.cs +47 -0
  25. package/IDHolder.cs.meta +11 -0
  26. package/IEntryLoader.cs +19 -0
  27. package/IEntryLoader.cs.meta +11 -0
  28. package/IMapManager.cs +27 -0
  29. package/IMapManager.cs.meta +11 -0
  30. package/IPlaceMarker.cs +26 -0
  31. package/IPlaceMarker.cs.meta +11 -0
  32. package/IPlaceOptionHolder.cs +53 -0
  33. package/IPlaceOptionHolder.cs.meta +11 -0
  34. package/MapAreaData.cs +53 -0
  35. package/MapAreaData.cs.meta +11 -0
  36. package/MapAreaEntry.cs +55 -0
  37. package/MapAreaEntry.cs.meta +11 -0
  38. package/MapAreaManager.cs +194 -0
  39. package/MapAreaManager.cs.meta +11 -0
  40. package/MapBaseData.cs +66 -0
  41. package/MapBaseData.cs.meta +11 -0
  42. package/MapData.cs +35 -0
  43. package/MapData.cs.meta +11 -0
  44. package/MapDatabase.cs +133 -0
  45. package/MapDatabase.cs.meta +11 -0
  46. package/MapEntry.cs +77 -0
  47. package/MapEntry.cs.meta +11 -0
  48. package/MapEntryChange.cs +321 -0
  49. package/MapEntryChange.cs.meta +11 -0
  50. package/MapEntryChanger.cs +45 -0
  51. package/MapEntryChanger.cs.meta +11 -0
  52. package/MapHoverSelector.cs +161 -0
  53. package/MapHoverSelector.cs.meta +11 -0
  54. package/MapManager.cs +288 -0
  55. package/MapManager.cs.meta +11 -0
  56. package/MapManagerBase.cs +260 -0
  57. package/MapManagerBase.cs.meta +11 -0
  58. package/MapMarkerSelectable.cs +71 -0
  59. package/MapMarkerSelectable.cs.meta +11 -0
  60. package/MapObjectiveData.cs +28 -0
  61. package/MapObjectiveData.cs.meta +11 -0
  62. package/MapSaveManager.cs +63 -0
  63. package/MapSaveManager.cs.meta +11 -0
  64. package/MapTabUIHandler.cs +98 -0
  65. package/MapTabUIHandler.cs.meta +11 -0
  66. package/MapUITab.cs +26 -0
  67. package/MapUITab.cs.meta +11 -0
  68. package/MapUtility.cs +183 -0
  69. package/MapUtility.cs.meta +11 -0
  70. package/MarkerData.cs +25 -0
  71. package/MarkerData.cs.meta +11 -0
  72. package/MarkerDatabase.cs +57 -0
  73. package/MarkerDatabase.cs.meta +11 -0
  74. package/MarkerUtility.cs +48 -0
  75. package/MarkerUtility.cs.meta +11 -0
  76. package/MarkerVessel.cs +38 -0
  77. package/MarkerVessel.cs.meta +11 -0
  78. package/PlaceData.cs +27 -0
  79. package/PlaceData.cs.meta +11 -0
  80. package/PlaceEntry.cs +83 -0
  81. package/PlaceEntry.cs.meta +11 -0
  82. package/PlaceManager.cs +293 -0
  83. package/PlaceManager.cs.meta +11 -0
  84. package/PlaceMapUITab.cs +203 -0
  85. package/PlaceMapUITab.cs.meta +11 -0
  86. package/Samples~/Clear_Map_Area_Data_Event.prefab +52 -0
  87. package/Samples~/Clear_Map_Area_Data_Event.prefab.meta +7 -0
  88. package/Samples~/Clear_Map_Instance_Data.prefab +56 -0
  89. package/Samples~/Clear_Map_Instance_Data.prefab.meta +7 -0
  90. package/Samples~/DRE_Map_UI.unity +461 -0
  91. package/Samples~/DRE_Map_UI.unity.meta +7 -0
  92. package/Samples~/Map_Entry_Changer.prefab +52 -0
  93. package/Samples~/Map_Entry_Changer.prefab.meta +7 -0
  94. package/Samples~/Map_Marker_Selectable_ETemplate.prefab +126 -0
  95. package/Samples~/Map_Marker_Selectable_ETemplate.prefab.meta +7 -0
  96. package/Samples~/Map_Tab_UI_Handler_Shell.prefab +134 -0
  97. package/Samples~/Map_Tab_UI_Handler_Shell.prefab.meta +7 -0
  98. package/Samples~/Map_Tab_UI_Handler_Template.prefab +404 -0
  99. package/Samples~/Map_Tab_UI_Handler_Template.prefab.meta +7 -0
  100. package/Samples~/Map_UI_Canvas_Shell.prefab +842 -0
  101. package/Samples~/Map_UI_Canvas_Shell.prefab.meta +7 -0
  102. package/Samples~/Map_UI_Canvas_Template.prefab +996 -0
  103. package/Samples~/Map_UI_Canvas_Template.prefab.meta +7 -0
  104. package/Samples~/Map_UI_Controls_ETemplate.prefab +538 -0
  105. package/Samples~/Map_UI_Controls_ETemplate.prefab.meta +7 -0
  106. package/Samples~/Map_UI_GO_FT_ETemplate.prefab +78 -0
  107. package/Samples~/Map_UI_GO_FT_ETemplate.prefab.meta +7 -0
  108. package/Samples~/Map_UI_Place_Place_Name_ETemplate.prefab +181 -0
  109. package/Samples~/Map_UI_Place_Place_Name_ETemplate.prefab.meta +7 -0
  110. package/Samples~/Map_UI_Place_Tab_Shell.prefab +57 -0
  111. package/Samples~/Map_UI_Place_Tab_Shell.prefab.meta +7 -0
  112. package/Samples~/Map_UI_Place_Tab_Template.prefab +806 -0
  113. package/Samples~/Map_UI_Place_Tab_Template.prefab.meta +7 -0
  114. package/Samples~/Map_UI_Place_Tab_UI_ETemplate.prefab +1265 -0
  115. package/Samples~/Map_UI_Place_Tab_UI_ETemplate.prefab.meta +7 -0
  116. package/Samples~/Map_UI_Reticle_ETemplate.prefab +78 -0
  117. package/Samples~/Map_UI_Reticle_ETemplate.prefab.meta +7 -0
  118. package/Samples~/Map_UI_Student_Tab_Shell.prefab +267 -0
  119. package/Samples~/Map_UI_Student_Tab_Shell.prefab.meta +7 -0
  120. package/Samples~/Map_UI_Student_Tab_Template.prefab +544 -0
  121. package/Samples~/Map_UI_Student_Tab_Template.prefab.meta +7 -0
  122. package/Samples~/Map_UI_Student_Tab_UI_Shell.prefab +90 -0
  123. package/Samples~/Map_UI_Student_Tab_UI_Shell.prefab.meta +7 -0
  124. package/Samples~/Map_UI_Student_Tab_UI_Template.prefab +2031 -0
  125. package/Samples~/Map_UI_Student_Tab_UI_Template.prefab.meta +7 -0
  126. package/Samples~/Map_UI_Title_ETemplate.prefab +672 -0
  127. package/Samples~/Map_UI_Title_ETemplate.prefab.meta +7 -0
  128. package/Samples~/Place_Template.prefab +200 -0
  129. package/Samples~/Place_Template.prefab.meta +7 -0
  130. package/package.json +43 -4
  131. package/package.json.meta +7 -0
  132. package/README.md +0 -3
package/MapUtility.cs ADDED
@@ -0,0 +1,183 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ #if UNITY_EDITOR
3
+ using DREditor.Editor.Utility;
4
+ using System.Collections.Generic;
5
+ using System.Linq;
6
+ using UnityEditor;
7
+ using UnityEngine;
8
+
9
+ namespace DREditor.Maps
10
+ {
11
+ /// <summary>
12
+ ///
13
+ /// </summary>
14
+ public static class MapUtility
15
+ {
16
+ /// <summary>
17
+ ///
18
+ /// </summary>
19
+ [MenuItem("DREditor/Import/Map/Selected Area into Database")]
20
+ public static void ImportAreas()
21
+ {
22
+ MapDatabase database = DatabaseUtility.LoadDatabase<MapDatabase>();
23
+
24
+ if (database == null)
25
+ return;
26
+
27
+ List<MapAreaManager> managers = GetSelectedAreaManagers();
28
+
29
+ for (int i = 0; i < managers.Count; i++)
30
+ {
31
+ UpdateAreaPlaces(managers[i]);
32
+
33
+ if (CheckForExistingAreas(database, managers[i]))
34
+ continue;
35
+ }
36
+
37
+ EditorUtility.SetDirty(database);
38
+ }
39
+
40
+ /// <summary>
41
+ ///
42
+ /// </summary>
43
+ /// <param name="area"></param>
44
+ /// <param name="places"></param>
45
+ static void MissingPlacesWindow(MapAreaManager area, PlaceManager[] places)
46
+ {
47
+ if (area.Data.places.Count != places.Length &&
48
+ EditorUtility.DisplayDialog("Missing Places Detected",
49
+ "Missing Places detected, import?", "Yes", "No"))
50
+ {
51
+ UnityEngine.Debug.Log(area.Data.name + " Had Missing ref's : " + area.Data.places.Count + " To Found: " + places.Length);
52
+
53
+ foreach (var place in places)
54
+ area.AddPlaceManager(place);
55
+
56
+ EditorUtility.SetDirty(area);
57
+ }
58
+ }
59
+
60
+ /// <summary>
61
+ ///
62
+ /// </summary>
63
+ /// <param name="database"></param>
64
+ /// <param name="area"></param>
65
+ /// <returns></returns>
66
+ static bool CheckForExistingAreas(MapDatabase database, MapAreaManager area)
67
+ {
68
+ List<MapAreaData> dataList = database.floors.Where(databaseArea => databaseArea.GetID() == area.Data.GetID()).ToList();
69
+
70
+ if (dataList.Count == 0)
71
+ database.floors.Add(area.Data);
72
+ else if (!ExistingAreaWindow(database, area, dataList))
73
+ return true;
74
+
75
+ var areaPrefab = PrefabUtility.GetCorrespondingObjectFromSource(area.gameObject);
76
+
77
+ area.Data.SetPrefab(areaPrefab);
78
+
79
+ return false;
80
+ }
81
+
82
+ /// <summary>
83
+ ///
84
+ /// </summary>
85
+ /// <param name="database"></param>
86
+ /// <param name="area"></param>
87
+ /// <param name="dataList"></param>
88
+ /// <returns></returns>
89
+ static bool ExistingAreaWindow(MapDatabase database, MapAreaManager area, List<MapAreaData> dataList)
90
+ {
91
+ if (EditorUtility.DisplayDialog("Existing Area Data Detected",
92
+ "Database contains Data for area " + area.Data.name + ", replace it?", "Yes", "No"))
93
+ {
94
+ int areaIDX = database.floors.IndexOf(dataList[0]);
95
+
96
+ database.floors[areaIDX] = area.Data;
97
+
98
+ return false;
99
+ }
100
+ else
101
+ {
102
+ UnityEngine.Debug.Log("Skipping Area " + area.Data.name + " Import Process");
103
+
104
+ return true;
105
+ }
106
+ }
107
+
108
+ /// <summary>
109
+ ///
110
+ /// </summary>
111
+ /// <remarks></remarks>
112
+ [MenuItem("DREditor/Import/Map/Area Places")]
113
+ public static void ImportAreaPlaces()
114
+ {
115
+ List<MapAreaManager> managers = GetSelectedAreaManagers();
116
+
117
+ for (int i = 0; i < managers.Count; i++)
118
+ UpdateAreaPlaces(managers[i]);
119
+ }
120
+
121
+ /// <summary>
122
+ ///
123
+ /// </summary>
124
+ /// <returns></returns>
125
+ static List<MapAreaManager> GetSelectedAreaManagers()
126
+ {
127
+ List<MapAreaManager> managers = new();
128
+
129
+ foreach (var selectedObject in Selection.objects)
130
+ if (selectedObject is GameObject go && go.TryGetComponent<MapAreaManager>(out var area))
131
+ managers.Add(area);
132
+
133
+ return managers;
134
+ }
135
+
136
+ /// <summary>
137
+ ///
138
+ /// </summary>
139
+ /// <param name="area"></param>
140
+ /// <returns></returns>
141
+ static MapAreaData UpdateAreaPlaces(MapAreaManager area)
142
+ {
143
+ PlaceManager[] places = area.gameObject.GetComponentsInChildren<PlaceManager>();
144
+
145
+ GenerateMissingPlaceIDs(places);
146
+
147
+ MissingPlacesWindow(area, places);
148
+
149
+ EditorUtility.SetDirty(area);
150
+
151
+ return area.Data;
152
+ }
153
+
154
+ /// <summary>
155
+ ///
156
+ /// </summary>
157
+ /// <param name="places"></param>
158
+ static void GenerateMissingPlaceIDs(PlaceManager[] places)
159
+ {
160
+ foreach (var place in places)
161
+ if (place.Data.GetID() == "")
162
+ place.Data.GenerateID();
163
+ }
164
+
165
+ /// <summary>
166
+ ///
167
+ /// </summary>
168
+ [MenuItem("DREditor/Map/Update Map Database Data From Prefabs")]
169
+ public static void UpdateMapData()
170
+ {
171
+ MapDatabase database = DatabaseUtility.LoadDatabase<MapDatabase>();
172
+
173
+ if (database == null)
174
+ UnityEngine.Debug.LogWarning($"{nameof(MapUtility)}: UpdateMapData: " +
175
+ $"No Map Database could be found to use this function!");
176
+ else
177
+ for (int i = 0; i < database.floors.Count; i++)
178
+ if (database.floors[i].prefab != null)
179
+ database.floors[i] = UpdateAreaPlaces(database.floors[i].prefab.GetComponent<MapAreaManager>());
180
+ }
181
+ }
182
+ }
183
+ #endif
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 799a9186b2dbc7e4fa217ffbd2c86e44
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
package/MarkerData.cs ADDED
@@ -0,0 +1,25 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using System;
3
+ using UnityEngine;
4
+
5
+ namespace DREditor.Maps
6
+ {
7
+ /// <summary>
8
+ ///
9
+ /// </summary>
10
+ [Serializable]
11
+ public class MarkerData : MapBaseData
12
+ {
13
+ /// <summary>
14
+ ///
15
+ /// </summary>
16
+ [Tooltip("")]
17
+ public Vector3 localPosition = Vector3.zero;
18
+
19
+ /// <summary>
20
+ ///
21
+ /// </summary>
22
+ [Tooltip("")]
23
+ public Vector2 sizeDelta = Vector2.zero;
24
+ }
25
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 02960165bca338d489349bbb3369cbea
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,57 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using System;
3
+ using System.Collections.Generic;
4
+ using System.Linq;
5
+ using UnityEngine;
6
+
7
+ namespace DREditor.Maps
8
+ {
9
+ /// <summary>
10
+ ///
11
+ /// </summary>
12
+ [CreateAssetMenu(menuName = "DREditor/Map/Marker Database", fileName = "Marker_Database")]
13
+ [Serializable]
14
+ public class MarkerDatabase : ScriptableObject
15
+ {
16
+ /// <summary>
17
+ ///
18
+ /// </summary>
19
+ [Header("")]
20
+ [Divider]
21
+ [Tooltip("")]
22
+ public List<MarkerVessel> Entries = new();
23
+
24
+
25
+ /// <summary>
26
+ ///
27
+ /// </summary>
28
+ /// <param name="data"></param>
29
+ /// <returns></returns>
30
+ public virtual MarkerVessel GetVesselByData(MarkerData data)
31
+ {
32
+ if (Entries.Where(e => e.markerData.name == data.name).ToList() is List<MarkerVessel> list &&
33
+ list.Count > 0)
34
+ return list[0];
35
+
36
+ if (Entries.Where(e => e.markerData.GetID() == data.GetID()).ToList() is List<MarkerVessel> idList &&
37
+ idList.Count > 0)
38
+ return idList[0];
39
+
40
+ return null;
41
+ }
42
+
43
+ /// <summary>
44
+ ///
45
+ /// </summary>
46
+ /// <returns></returns>
47
+ public virtual string[] GetVesselNames()
48
+ {
49
+ string[] names = new string[Entries.Count];
50
+
51
+ for(int i = 0; i < Entries.Count; i++)
52
+ names[i] = Entries[i].name;
53
+
54
+ return names;
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 2279639fbd10a574da79d267fa01a304
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,48 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ #if UNITY_EDITOR
3
+ using UnityEditor;
4
+ using UnityEngine;
5
+
6
+ namespace DREditor.Maps
7
+ {
8
+ /// <summary>
9
+ ///
10
+ /// </summary>
11
+ public static class MarkerUtility
12
+ {
13
+ /// <summary>
14
+ ///
15
+ /// </summary>
16
+ [MenuItem("DREditor/Import/Map/Markers")]
17
+ public static void ImportImage()
18
+ {
19
+ foreach(var selectedObject in Selection.objects)
20
+ if (selectedObject is Sprite sprite)
21
+ ImportImageMarker(sprite);
22
+ }
23
+
24
+ /// <summary>
25
+ ///
26
+ /// </summary>
27
+ /// <param name="sprite"></param>
28
+ static void ImportImageMarker(Sprite sprite)
29
+ {
30
+ MarkerVessel data = ScriptableObject.CreateInstance<MarkerVessel>();
31
+
32
+ data.name = sprite.name;
33
+
34
+ data.markerData.SetName(sprite.name);
35
+
36
+ data.SetTexture(sprite);
37
+
38
+ string path = AssetDatabase.GetAssetPath(sprite);
39
+
40
+ path = path.Remove(path.LastIndexOf("/") + 1);
41
+
42
+ path += sprite.name + ".asset";
43
+
44
+ AssetDatabase.CreateAsset(data, path);
45
+ }
46
+ }
47
+ }
48
+ #endif
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 93118f3a345d7d74586e0c42069686d5
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,38 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using System;
3
+ using UnityEngine;
4
+ using UnityEngine.Serialization;
5
+
6
+ namespace DREditor.Maps
7
+ {
8
+ /// <summary>
9
+ ///
10
+ /// </summary>
11
+ /// <remarks></remarks>
12
+ [CreateAssetMenu(menuName = "DREditor/Map/Marker Vessel", fileName = "Marker_Vessel")]
13
+ [Serializable]
14
+ public class MarkerVessel : ScriptableObject
15
+ {
16
+ /// <summary>
17
+ ///
18
+ /// </summary>
19
+ [Header("")]
20
+ [Divider]
21
+ [Tooltip("")]
22
+ public MarkerData markerData = new();
23
+
24
+ /// <summary>
25
+ ///
26
+ /// </summary>
27
+ [FormerlySerializedAs("texture")]
28
+ [Tooltip("")]
29
+ public Sprite sprite;
30
+
31
+
32
+ /// <summary>
33
+ ///
34
+ /// </summary>
35
+ /// <param name="sprite"></param>
36
+ public virtual void SetTexture(Sprite sprite) => this.sprite = sprite;
37
+ }
38
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 9fcd43cb627318f42ba0e0926ebe6b74
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
package/PlaceData.cs ADDED
@@ -0,0 +1,27 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using System;
3
+
4
+ namespace DREditor.Maps
5
+ {
6
+ /// <summary>
7
+ ///
8
+ /// </summary>
9
+ [Serializable]
10
+ public class PlaceData : DiscoverableBase
11
+ {
12
+ /// <summary>
13
+ ///
14
+ /// </summary>
15
+ public bool fastTravelable = false;
16
+
17
+ /// <summary>
18
+ ///
19
+ /// </summary>
20
+ public string sceneName = "";
21
+
22
+ /// <summary>
23
+ ///
24
+ /// </summary>
25
+ public int fastTravelIndex = -1;
26
+ }
27
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 5d09208edbd3f804cbcd3cb7edd5d76a
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
package/PlaceEntry.cs ADDED
@@ -0,0 +1,83 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using System;
3
+ using System.Collections.Generic;
4
+ using UnityEngine;
5
+
6
+ namespace DREditor.Maps
7
+ {
8
+ /// <summary>
9
+ ///
10
+ /// </summary>
11
+ [Serializable]
12
+ public class PlaceEntry : MapBaseData
13
+ {
14
+ /// <summary>
15
+ ///
16
+ /// </summary>
17
+ [Tooltip("")]
18
+ public bool enableFastTravelForThisEntryInstance = true;
19
+
20
+ /// <summary>
21
+ ///
22
+ /// </summary>
23
+ [Tooltip("")]
24
+ public List<MarkerVessel> MarkerVessels = new();
25
+
26
+ /// <summary>
27
+ ///
28
+ /// </summary>
29
+ [Tooltip("")]
30
+ public List<MarkerData> MarkerDatas = new();
31
+
32
+
33
+ /// <summary>
34
+ ///
35
+ /// </summary>
36
+ /// <remarks></remarks>
37
+ public virtual void Save()
38
+ {
39
+ #if UNITY_EDITOR
40
+ if (!MarkerVessels.Contains(null))
41
+ MarkerDatas = GetMarkerData();
42
+ #endif
43
+ }
44
+
45
+ /// <summary>
46
+ ///
47
+ /// </summary>
48
+ /// <returns></returns>
49
+ protected virtual List<MarkerData> GetMarkerData()
50
+ {
51
+ List<MarkerData> data = new();
52
+
53
+ foreach (MarkerVessel v in MarkerVessels)
54
+ if (v != null)
55
+ data.Add(v.markerData);
56
+ else
57
+ UnityEngine.Debug.LogWarning("ALERT: MARKER VESSEL WAS NULL!");
58
+
59
+ return data;
60
+ }
61
+
62
+ /// <summary>
63
+ ///
64
+ /// </summary>
65
+ /// <param name="markerName"></param>
66
+ /// <returns></returns>
67
+ public virtual PlaceEntry Contains(string markerName)
68
+ {
69
+ for (int i = 0; i < MarkerDatas.Count; i++)
70
+ if (MarkerDatas[i].name == markerName)
71
+ return this;
72
+
73
+ return null;
74
+ }
75
+
76
+ /// <summary>
77
+ ///
78
+ /// </summary>
79
+ /// <param name="enableFastTravelForThisEntryInstance"></param>
80
+ public virtual void SetFastTravel(bool enableFastTravelForThisEntryInstance)
81
+ => this.enableFastTravelForThisEntryInstance = enableFastTravelForThisEntryInstance;
82
+ }
83
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: f0a274da6d5811e47b9dd37ac78e9c45
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: