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.
- package/.attestation.p7m +0 -0
- package/CharacterMapMarkerUI.cs +95 -0
- package/CharacterMapMarkerUI.cs.meta +11 -0
- package/CharacterMapUITab.cs +172 -0
- package/CharacterMapUITab.cs.meta +11 -0
- package/ClearMapAreaData.cs +23 -0
- package/ClearMapAreaData.cs.meta +11 -0
- package/ClearMapInstanceData.cs +36 -0
- package/ClearMapInstanceData.cs.meta +11 -0
- package/ControlFastTravel.cs +57 -0
- package/ControlFastTravel.cs.meta +11 -0
- package/DREditor.Maps.asmdef +24 -0
- package/DREditor.Maps.asmdef.meta +7 -0
- package/DiscoverData.cs +23 -0
- package/DiscoverData.cs.meta +11 -0
- package/DiscoverableBase.cs +24 -0
- package/DiscoverableBase.cs.meta +11 -0
- package/FastTravelController.cs +36 -0
- package/FastTravelController.cs.meta +11 -0
- package/FastTravelData.cs +25 -0
- package/FastTravelData.cs.meta +11 -0
- package/FastTravelMarker.cs +107 -0
- package/FastTravelMarker.cs.meta +13 -0
- package/IDHolder.cs +47 -0
- package/IDHolder.cs.meta +11 -0
- package/IEntryLoader.cs +19 -0
- package/IEntryLoader.cs.meta +11 -0
- package/IMapManager.cs +27 -0
- package/IMapManager.cs.meta +11 -0
- package/IPlaceMarker.cs +26 -0
- package/IPlaceMarker.cs.meta +11 -0
- package/IPlaceOptionHolder.cs +53 -0
- package/IPlaceOptionHolder.cs.meta +11 -0
- package/MapAreaData.cs +53 -0
- package/MapAreaData.cs.meta +11 -0
- package/MapAreaEntry.cs +55 -0
- package/MapAreaEntry.cs.meta +11 -0
- package/MapAreaManager.cs +194 -0
- package/MapAreaManager.cs.meta +11 -0
- package/MapBaseData.cs +66 -0
- package/MapBaseData.cs.meta +11 -0
- package/MapData.cs +35 -0
- package/MapData.cs.meta +11 -0
- package/MapDatabase.cs +133 -0
- package/MapDatabase.cs.meta +11 -0
- package/MapEntry.cs +77 -0
- package/MapEntry.cs.meta +11 -0
- package/MapEntryChange.cs +321 -0
- package/MapEntryChange.cs.meta +11 -0
- package/MapEntryChanger.cs +45 -0
- package/MapEntryChanger.cs.meta +11 -0
- package/MapHoverSelector.cs +161 -0
- package/MapHoverSelector.cs.meta +11 -0
- package/MapManager.cs +288 -0
- package/MapManager.cs.meta +11 -0
- package/MapManagerBase.cs +260 -0
- package/MapManagerBase.cs.meta +11 -0
- package/MapMarkerSelectable.cs +71 -0
- package/MapMarkerSelectable.cs.meta +11 -0
- package/MapObjectiveData.cs +28 -0
- package/MapObjectiveData.cs.meta +11 -0
- package/MapSaveManager.cs +63 -0
- package/MapSaveManager.cs.meta +11 -0
- package/MapTabUIHandler.cs +98 -0
- package/MapTabUIHandler.cs.meta +11 -0
- package/MapUITab.cs +26 -0
- package/MapUITab.cs.meta +11 -0
- package/MapUtility.cs +183 -0
- package/MapUtility.cs.meta +11 -0
- package/MarkerData.cs +25 -0
- package/MarkerData.cs.meta +11 -0
- package/MarkerDatabase.cs +57 -0
- package/MarkerDatabase.cs.meta +11 -0
- package/MarkerUtility.cs +48 -0
- package/MarkerUtility.cs.meta +11 -0
- package/MarkerVessel.cs +38 -0
- package/MarkerVessel.cs.meta +11 -0
- package/PlaceData.cs +27 -0
- package/PlaceData.cs.meta +11 -0
- package/PlaceEntry.cs +83 -0
- package/PlaceEntry.cs.meta +11 -0
- package/PlaceManager.cs +293 -0
- package/PlaceManager.cs.meta +11 -0
- package/PlaceMapUITab.cs +203 -0
- package/PlaceMapUITab.cs.meta +11 -0
- package/Samples~/Clear_Map_Area_Data_Event.prefab +52 -0
- package/Samples~/Clear_Map_Area_Data_Event.prefab.meta +7 -0
- package/Samples~/Clear_Map_Instance_Data.prefab +56 -0
- package/Samples~/Clear_Map_Instance_Data.prefab.meta +7 -0
- package/Samples~/DRE_Map_UI.unity +461 -0
- package/Samples~/DRE_Map_UI.unity.meta +7 -0
- package/Samples~/Map_Entry_Changer.prefab +52 -0
- package/Samples~/Map_Entry_Changer.prefab.meta +7 -0
- package/Samples~/Map_Marker_Selectable_ETemplate.prefab +126 -0
- package/Samples~/Map_Marker_Selectable_ETemplate.prefab.meta +7 -0
- package/Samples~/Map_Tab_UI_Handler_Shell.prefab +134 -0
- package/Samples~/Map_Tab_UI_Handler_Shell.prefab.meta +7 -0
- package/Samples~/Map_Tab_UI_Handler_Template.prefab +404 -0
- package/Samples~/Map_Tab_UI_Handler_Template.prefab.meta +7 -0
- package/Samples~/Map_UI_Canvas_Shell.prefab +842 -0
- package/Samples~/Map_UI_Canvas_Shell.prefab.meta +7 -0
- package/Samples~/Map_UI_Canvas_Template.prefab +996 -0
- package/Samples~/Map_UI_Canvas_Template.prefab.meta +7 -0
- package/Samples~/Map_UI_Controls_ETemplate.prefab +538 -0
- package/Samples~/Map_UI_Controls_ETemplate.prefab.meta +7 -0
- package/Samples~/Map_UI_GO_FT_ETemplate.prefab +78 -0
- package/Samples~/Map_UI_GO_FT_ETemplate.prefab.meta +7 -0
- package/Samples~/Map_UI_Place_Place_Name_ETemplate.prefab +181 -0
- package/Samples~/Map_UI_Place_Place_Name_ETemplate.prefab.meta +7 -0
- package/Samples~/Map_UI_Place_Tab_Shell.prefab +57 -0
- package/Samples~/Map_UI_Place_Tab_Shell.prefab.meta +7 -0
- package/Samples~/Map_UI_Place_Tab_Template.prefab +806 -0
- package/Samples~/Map_UI_Place_Tab_Template.prefab.meta +7 -0
- package/Samples~/Map_UI_Place_Tab_UI_ETemplate.prefab +1265 -0
- package/Samples~/Map_UI_Place_Tab_UI_ETemplate.prefab.meta +7 -0
- package/Samples~/Map_UI_Reticle_ETemplate.prefab +78 -0
- package/Samples~/Map_UI_Reticle_ETemplate.prefab.meta +7 -0
- package/Samples~/Map_UI_Student_Tab_Shell.prefab +267 -0
- package/Samples~/Map_UI_Student_Tab_Shell.prefab.meta +7 -0
- package/Samples~/Map_UI_Student_Tab_Template.prefab +544 -0
- package/Samples~/Map_UI_Student_Tab_Template.prefab.meta +7 -0
- package/Samples~/Map_UI_Student_Tab_UI_Shell.prefab +90 -0
- package/Samples~/Map_UI_Student_Tab_UI_Shell.prefab.meta +7 -0
- package/Samples~/Map_UI_Student_Tab_UI_Template.prefab +2031 -0
- package/Samples~/Map_UI_Student_Tab_UI_Template.prefab.meta +7 -0
- package/Samples~/Map_UI_Title_ETemplate.prefab +672 -0
- package/Samples~/Map_UI_Title_ETemplate.prefab.meta +7 -0
- package/Samples~/Place_Template.prefab +200 -0
- package/Samples~/Place_Template.prefab.meta +7 -0
- package/package.json +43 -4
- package/package.json.meta +7 -0
- 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
|
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,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
|
+
}
|
package/MarkerUtility.cs
ADDED
|
@@ -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
|
package/MarkerVessel.cs
ADDED
|
@@ -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
|
+
}
|
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
|
+
}
|
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
|
+
}
|