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
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Services;
|
|
3
|
+
using System.Collections;
|
|
4
|
+
using TMPro;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.Events;
|
|
7
|
+
using UnityEngine.EventSystems;
|
|
8
|
+
using static UnityEngine.InputSystem.InputAction;
|
|
9
|
+
|
|
10
|
+
namespace DREditor.Maps
|
|
11
|
+
{
|
|
12
|
+
/// <summary>
|
|
13
|
+
///
|
|
14
|
+
/// </summary>
|
|
15
|
+
public abstract class MapManagerBase : ServiceHolder<IMapManager>, IMapManager
|
|
16
|
+
{
|
|
17
|
+
/// <summary>
|
|
18
|
+
///
|
|
19
|
+
/// </summary>
|
|
20
|
+
[Header("")]
|
|
21
|
+
[Divider]
|
|
22
|
+
[Tooltip("")]
|
|
23
|
+
[SerializeField] protected MapEntry InstanceData = null;
|
|
24
|
+
|
|
25
|
+
/// <summary>
|
|
26
|
+
///
|
|
27
|
+
/// </summary>
|
|
28
|
+
[Tooltip("")]
|
|
29
|
+
[SerializeField] protected GameObject areaGameObject = null;
|
|
30
|
+
|
|
31
|
+
/// <summary>
|
|
32
|
+
///
|
|
33
|
+
/// </summary>
|
|
34
|
+
[Tooltip("")]
|
|
35
|
+
[SerializeField] protected MapAreaManager currentAreaManager = null;
|
|
36
|
+
|
|
37
|
+
/// <summary>
|
|
38
|
+
///
|
|
39
|
+
/// </summary>
|
|
40
|
+
[Tooltip("")]
|
|
41
|
+
[SerializeField] protected int currentAreaIndex = 0;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
/// <summary>
|
|
45
|
+
///
|
|
46
|
+
/// </summary>
|
|
47
|
+
[Header("")]
|
|
48
|
+
[Divider]
|
|
49
|
+
[Tooltip("")]
|
|
50
|
+
[SerializeField] protected MapDatabase mapDatabase = null;
|
|
51
|
+
|
|
52
|
+
/// <summary>
|
|
53
|
+
///
|
|
54
|
+
/// </summary>
|
|
55
|
+
[Tooltip("")]
|
|
56
|
+
[SerializeField] protected GameObject root = null;
|
|
57
|
+
|
|
58
|
+
/// <summary>
|
|
59
|
+
///
|
|
60
|
+
/// </summary>
|
|
61
|
+
[Tooltip("")]
|
|
62
|
+
[SerializeField] protected TextMeshProUGUI areaText = null;
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
[Header("")]
|
|
66
|
+
[SerializeField] protected UnityEvent onMapChanging = null;
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
/// <summary>
|
|
70
|
+
///
|
|
71
|
+
/// </summary>
|
|
72
|
+
protected int shiftNumber = 0;
|
|
73
|
+
|
|
74
|
+
/// <summary>
|
|
75
|
+
///
|
|
76
|
+
/// </summary>
|
|
77
|
+
protected IPlaceOptionHolder placeOptionHolder;
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
protected virtual void Start() => placeOptionHolder = GetComponentInChildren<IPlaceOptionHolder>();
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
/// <summary>
|
|
84
|
+
///
|
|
85
|
+
/// </summary>
|
|
86
|
+
protected virtual void UpdateMapUI()
|
|
87
|
+
{
|
|
88
|
+
shiftNumber = 0;
|
|
89
|
+
|
|
90
|
+
if (currentAreaManager != null &&
|
|
91
|
+
currentAreaManager.Data.name == mapDatabase.ValidFloorList(InstanceData.UnlockedAreas)[currentAreaIndex].name)
|
|
92
|
+
return;
|
|
93
|
+
|
|
94
|
+
StopAllCoroutines();
|
|
95
|
+
|
|
96
|
+
onMapChanging?.Invoke();
|
|
97
|
+
|
|
98
|
+
StartCoroutine(UpdateMapArea());
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/// <summary>
|
|
102
|
+
///
|
|
103
|
+
/// </summary>
|
|
104
|
+
protected virtual IEnumerator UpdateMapArea()
|
|
105
|
+
{
|
|
106
|
+
DestroyAreaUI();
|
|
107
|
+
|
|
108
|
+
yield return null;
|
|
109
|
+
|
|
110
|
+
SpawnLoadAreaUI();
|
|
111
|
+
|
|
112
|
+
yield return null;
|
|
113
|
+
|
|
114
|
+
PopulateMapUIText(0);
|
|
115
|
+
|
|
116
|
+
ServiceLocator.GetService<MapTabUIHandler>().InitializeTab();
|
|
117
|
+
|
|
118
|
+
if (ServiceLocator.GetService<MapTabUIHandler>().IsOnDefaultTab())
|
|
119
|
+
NavigateSelectVisual(new CallbackContext());
|
|
120
|
+
|
|
121
|
+
AnimateToHoveredPlace();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/// <summary>
|
|
125
|
+
///
|
|
126
|
+
/// </summary>
|
|
127
|
+
protected virtual void DestroyAreaUI()
|
|
128
|
+
{
|
|
129
|
+
if (areaGameObject != null)
|
|
130
|
+
Destroy(areaGameObject);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/// <summary>
|
|
134
|
+
///
|
|
135
|
+
/// </summary>
|
|
136
|
+
protected virtual void SpawnLoadAreaUI()
|
|
137
|
+
{
|
|
138
|
+
areaGameObject = Instantiate(mapDatabase.ValidFloorList(InstanceData.UnlockedAreas)[currentAreaIndex].prefab, root.transform);
|
|
139
|
+
|
|
140
|
+
if (areaGameObject == null)
|
|
141
|
+
return;
|
|
142
|
+
|
|
143
|
+
currentAreaManager = areaGameObject.GetComponent<MapAreaManager>();
|
|
144
|
+
|
|
145
|
+
currentAreaManager
|
|
146
|
+
.LoadEntry(InstanceData.GetAreaEntry(currentAreaManager.Data.name), InstanceData.UnlockedAreas);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/// <summary>
|
|
150
|
+
///
|
|
151
|
+
/// </summary>
|
|
152
|
+
/// <param name="shiftNum"></param>
|
|
153
|
+
protected virtual void PopulateMapUIText(int shiftNum)
|
|
154
|
+
{
|
|
155
|
+
areaText.text = currentAreaManager.Data.name;
|
|
156
|
+
|
|
157
|
+
var placeNames = currentAreaManager.GetNamesOfUnlockedPlaces(InstanceData.UnlockedAreas);
|
|
158
|
+
|
|
159
|
+
placeOptionHolder.PopulatePlaceUIText(shiftNum, placeNames);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/// <summary>
|
|
163
|
+
///
|
|
164
|
+
/// </summary>
|
|
165
|
+
/// <param name="ctx"></param>
|
|
166
|
+
protected void NavigateSelectVisual(CallbackContext ctx)
|
|
167
|
+
{
|
|
168
|
+
float vertical = ctx.ReadValue<Vector2>().y;
|
|
169
|
+
|
|
170
|
+
bool movingUp = IsMovingUp(vertical);
|
|
171
|
+
|
|
172
|
+
if (vertical == 0 && !movingUp)
|
|
173
|
+
return;
|
|
174
|
+
|
|
175
|
+
bool movingDown = IsMovingDown(vertical);
|
|
176
|
+
|
|
177
|
+
if (movingUp || movingDown)
|
|
178
|
+
ShiftThenHover(movingUp);
|
|
179
|
+
|
|
180
|
+
if (ServiceLocator.GetService<MapTabUIHandler>().IsOnDefaultTab())
|
|
181
|
+
AnimateToHoveredPlace();
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/// <summary>
|
|
185
|
+
///
|
|
186
|
+
/// </summary>
|
|
187
|
+
/// <param name="vertical"></param>
|
|
188
|
+
/// <returns></returns>
|
|
189
|
+
protected virtual bool IsMovingUp(float vertical) =>
|
|
190
|
+
vertical > 0 &&
|
|
191
|
+
shiftNumber > 0 &&
|
|
192
|
+
EventSystem.current.currentSelectedGameObject == placeOptionHolder.GetTopOption();
|
|
193
|
+
|
|
194
|
+
/// <summary>
|
|
195
|
+
///
|
|
196
|
+
/// </summary>
|
|
197
|
+
/// <param name="vertical"></param>
|
|
198
|
+
/// <returns></returns>
|
|
199
|
+
protected virtual bool IsMovingDown(float vertical) =>
|
|
200
|
+
vertical < 0 &&
|
|
201
|
+
shiftNumber < placeOptionHolder.GetMaxShiftIndex() &&
|
|
202
|
+
EventSystem.current.currentSelectedGameObject == placeOptionHolder.GetBottomOption();
|
|
203
|
+
|
|
204
|
+
/// <summary>
|
|
205
|
+
///
|
|
206
|
+
/// </summary>
|
|
207
|
+
/// <param name="movingUp"></param>
|
|
208
|
+
protected virtual void ShiftThenHover(bool movingUp)
|
|
209
|
+
{
|
|
210
|
+
if (movingUp)
|
|
211
|
+
shiftNumber--;
|
|
212
|
+
else
|
|
213
|
+
shiftNumber++;
|
|
214
|
+
|
|
215
|
+
PopulateMapUIText(shiftNumber);
|
|
216
|
+
|
|
217
|
+
AnimateToHoveredPlace();
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/// <summary>
|
|
221
|
+
///
|
|
222
|
+
/// </summary>
|
|
223
|
+
protected virtual void AnimateToHoveredPlace() => StartCoroutine(WaitForAreaLoaded());
|
|
224
|
+
|
|
225
|
+
/// <summary>
|
|
226
|
+
///
|
|
227
|
+
/// </summary>
|
|
228
|
+
protected virtual IEnumerator WaitForAreaLoaded()
|
|
229
|
+
{
|
|
230
|
+
yield return new WaitUntil(() => ServiceLocator.HasService<MapAreaManager>());
|
|
231
|
+
|
|
232
|
+
if (!ServiceLocator.HasService(out currentAreaManager))
|
|
233
|
+
yield break;
|
|
234
|
+
|
|
235
|
+
ServiceLocator.GetService<MapHoverSelector>().AnimateToHoveredPlace(placeOptionHolder.GetCurrentlyHoveredPlace());
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
/// <inheritdoc/>
|
|
240
|
+
public virtual MapEntry GetInstanceData() => InstanceData;
|
|
241
|
+
|
|
242
|
+
/// <inheritdoc/>
|
|
243
|
+
public virtual void SetInstanceData(MapEntry InstanceData) => this.InstanceData = InstanceData;
|
|
244
|
+
|
|
245
|
+
/// <inheritdoc/>
|
|
246
|
+
public virtual void AddUnlockedArea(string areaName)
|
|
247
|
+
{
|
|
248
|
+
MapAreaData areaData = mapDatabase.GetArea(areaName);
|
|
249
|
+
|
|
250
|
+
PlaceData placeData = mapDatabase.GetPlace(areaName);
|
|
251
|
+
|
|
252
|
+
if (areaData != null)
|
|
253
|
+
InstanceData.UnlockedAreas.Add(areaData.GetID());
|
|
254
|
+
else if (placeData != null)
|
|
255
|
+
InstanceData.UnlockedAreas.Add(placeData.GetID());
|
|
256
|
+
else
|
|
257
|
+
UnityEngine.Debug.LogWarning($"ALERT: {ToString()}: Couldn't find the area/place to unlock: " + areaName);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using UnityEngine;
|
|
3
|
+
using UnityEngine.Events;
|
|
4
|
+
using UnityEngine.EventSystems;
|
|
5
|
+
using UnityEngine.UI;
|
|
6
|
+
|
|
7
|
+
namespace DREditor.Maps
|
|
8
|
+
{
|
|
9
|
+
/// <summary>
|
|
10
|
+
///
|
|
11
|
+
/// </summary>
|
|
12
|
+
public class MapMarkerSelectable : Selectable
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
///
|
|
16
|
+
/// </summary>
|
|
17
|
+
[Header("")]
|
|
18
|
+
[Divider]
|
|
19
|
+
[Tooltip("")]
|
|
20
|
+
[SerializeField] protected string markerName = "";
|
|
21
|
+
|
|
22
|
+
/// <summary>
|
|
23
|
+
///
|
|
24
|
+
/// </summary>
|
|
25
|
+
[Tooltip("")]
|
|
26
|
+
[SerializeField] protected Color availableColor = Color.white;
|
|
27
|
+
|
|
28
|
+
/// <summary>
|
|
29
|
+
///
|
|
30
|
+
/// </summary>
|
|
31
|
+
[Tooltip("")]
|
|
32
|
+
[SerializeField] protected Color unavailableColor = Color.white;
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
[Header("")]
|
|
36
|
+
public UnityEvent<string> OnHover;
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
/// <inheritdoc/>
|
|
40
|
+
public override void OnSelect(BaseEventData eventData)
|
|
41
|
+
{
|
|
42
|
+
base.OnSelect(eventData);
|
|
43
|
+
|
|
44
|
+
OnHover?.Invoke(markerName);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/// <summary>
|
|
48
|
+
///
|
|
49
|
+
/// </summary>
|
|
50
|
+
/// <returns></returns>
|
|
51
|
+
public virtual string GetMarkerName() => markerName;
|
|
52
|
+
|
|
53
|
+
/// <summary>
|
|
54
|
+
///
|
|
55
|
+
/// </summary>
|
|
56
|
+
public virtual void SetAvailable()
|
|
57
|
+
{
|
|
58
|
+
if (targetGraphic != null)
|
|
59
|
+
targetGraphic.color = availableColor;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/// <summary>
|
|
63
|
+
///
|
|
64
|
+
/// </summary>
|
|
65
|
+
public virtual void SetUnavailable()
|
|
66
|
+
{
|
|
67
|
+
if (targetGraphic != null)
|
|
68
|
+
targetGraphic.color = unavailableColor;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
/// <remarks></remarks>
|
|
10
|
+
[Serializable]
|
|
11
|
+
public class MapObjectiveData
|
|
12
|
+
{
|
|
13
|
+
/// <summary>
|
|
14
|
+
///
|
|
15
|
+
/// </summary>
|
|
16
|
+
public int chapter;
|
|
17
|
+
|
|
18
|
+
/// <summary>
|
|
19
|
+
///
|
|
20
|
+
/// </summary>
|
|
21
|
+
public bool isObjective;
|
|
22
|
+
|
|
23
|
+
/// <summary>
|
|
24
|
+
///
|
|
25
|
+
/// </summary>
|
|
26
|
+
public string objectiveID;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.EventObjects;
|
|
3
|
+
using DREditor.Saveables;
|
|
4
|
+
using DREditor.Services;
|
|
5
|
+
using System.Collections.Generic;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
|
|
8
|
+
namespace DREditor.Maps
|
|
9
|
+
{
|
|
10
|
+
/// <summary>
|
|
11
|
+
///
|
|
12
|
+
/// </summary>
|
|
13
|
+
[ClassHeader(nameof(ISaveManager) +
|
|
14
|
+
"\n\n")]
|
|
15
|
+
public class MapSaveManager : MonoBehaviour, ISaveManager
|
|
16
|
+
{
|
|
17
|
+
/// <summary>
|
|
18
|
+
///
|
|
19
|
+
/// </summary>
|
|
20
|
+
[Tooltip("")]
|
|
21
|
+
[SerializeField] protected BoolWithEvent canFastTravel = null;
|
|
22
|
+
|
|
23
|
+
/// <summary>
|
|
24
|
+
///
|
|
25
|
+
/// </summary>
|
|
26
|
+
[Tooltip("")]
|
|
27
|
+
[SerializeField] protected int subID;
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
public int SubID { get => subID; }
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
/// <inheritdoc/>
|
|
34
|
+
public virtual string Save()
|
|
35
|
+
{
|
|
36
|
+
ServiceLocator.GetService<IMapManager>().GetInstanceData().Save();
|
|
37
|
+
|
|
38
|
+
MapData mapData = new(ServiceLocator.GetService<IMapManager>().GetInstanceData(), canFastTravel.Value);
|
|
39
|
+
|
|
40
|
+
return JsonUtility.ToJson(mapData);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/// <inheritdoc/>
|
|
44
|
+
public virtual void Load(string data)
|
|
45
|
+
{
|
|
46
|
+
try
|
|
47
|
+
{
|
|
48
|
+
MapData mapData = JsonUtility.FromJson<MapData>(data);
|
|
49
|
+
|
|
50
|
+
ServiceLocator.GetService<IMapManager>().SetInstanceData(mapData.Entry);
|
|
51
|
+
|
|
52
|
+
canFastTravel.SetValue(mapData.allowFastTravel);
|
|
53
|
+
}
|
|
54
|
+
catch
|
|
55
|
+
{
|
|
56
|
+
ServiceLocator.GetService<IMapManager>().SetInstanceData(JsonUtility.FromJson<MapEntry>(data));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/// <inheritdoc/>
|
|
61
|
+
public virtual List<string> GetPreviousNames() => new() { "MapManager" };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Services;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
using UnityEngine.EventSystems;
|
|
6
|
+
|
|
7
|
+
namespace DREditor.Maps
|
|
8
|
+
{
|
|
9
|
+
/// <summary>
|
|
10
|
+
///
|
|
11
|
+
/// </summary>
|
|
12
|
+
[ClassHeader(nameof(ServiceHolder<MapTabUIHandler>) + " for type: " + nameof(MapTabUIHandler) +
|
|
13
|
+
"\n\n")]
|
|
14
|
+
public class MapTabUIHandler : ServiceHolder<MapTabUIHandler>
|
|
15
|
+
{
|
|
16
|
+
/// <summary>
|
|
17
|
+
///
|
|
18
|
+
/// </summary>
|
|
19
|
+
[Space]
|
|
20
|
+
[Divider]
|
|
21
|
+
[Tooltip("")]
|
|
22
|
+
[SerializeField] protected MapUITab defaultTab;
|
|
23
|
+
|
|
24
|
+
/// <summary>
|
|
25
|
+
///
|
|
26
|
+
/// </summary>
|
|
27
|
+
[Tooltip("")]
|
|
28
|
+
[SerializeField] protected List<MapUITab> tabs = new();
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
/// <summary>
|
|
32
|
+
///
|
|
33
|
+
/// </summary>
|
|
34
|
+
protected MapUITab currentTab = null;
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
/// <summary>
|
|
38
|
+
///
|
|
39
|
+
/// </summary>
|
|
40
|
+
protected virtual void Start()
|
|
41
|
+
{
|
|
42
|
+
currentTab = defaultTab;
|
|
43
|
+
|
|
44
|
+
ShowDefaultTab();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/// <summary>
|
|
48
|
+
///
|
|
49
|
+
/// </summary>
|
|
50
|
+
public virtual void ShowDefaultTab()
|
|
51
|
+
{
|
|
52
|
+
if (currentTab != defaultTab)
|
|
53
|
+
{
|
|
54
|
+
currentTab.HideTab();
|
|
55
|
+
|
|
56
|
+
currentTab = defaultTab;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
defaultTab.ShowTab();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/// <summary>
|
|
63
|
+
///
|
|
64
|
+
/// </summary>
|
|
65
|
+
public virtual void InitializeTab()
|
|
66
|
+
{
|
|
67
|
+
foreach (var tab in tabs)
|
|
68
|
+
if (currentTab == tab)
|
|
69
|
+
tab.InitializeTab();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/// <summary>
|
|
73
|
+
///
|
|
74
|
+
/// </summary>
|
|
75
|
+
/// <returns></returns>
|
|
76
|
+
public virtual bool IsOnDefaultTab() => currentTab == defaultTab;
|
|
77
|
+
|
|
78
|
+
/// <summary>
|
|
79
|
+
///
|
|
80
|
+
/// </summary>
|
|
81
|
+
public virtual void UpdateTab()
|
|
82
|
+
{
|
|
83
|
+
EventSystem.current.SetSelectedGameObject(null);
|
|
84
|
+
|
|
85
|
+
foreach (var tab in tabs)
|
|
86
|
+
tab.HideTab();
|
|
87
|
+
|
|
88
|
+
int nextIndex = tabs.IndexOf(currentTab) + 1;
|
|
89
|
+
|
|
90
|
+
if (nextIndex < 0 || nextIndex >= tabs.Count)
|
|
91
|
+
nextIndex = 0;
|
|
92
|
+
|
|
93
|
+
currentTab = tabs[nextIndex];
|
|
94
|
+
|
|
95
|
+
currentTab.ShowTab();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
package/MapUITab.cs
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using UnityEngine;
|
|
3
|
+
|
|
4
|
+
namespace DREditor.Maps
|
|
5
|
+
{
|
|
6
|
+
/// <summary>
|
|
7
|
+
///
|
|
8
|
+
/// </summary>
|
|
9
|
+
public abstract class MapUITab : MonoBehaviour
|
|
10
|
+
{
|
|
11
|
+
/// <summary>
|
|
12
|
+
///
|
|
13
|
+
/// </summary>
|
|
14
|
+
public abstract void InitializeTab();
|
|
15
|
+
|
|
16
|
+
/// <summary>
|
|
17
|
+
///
|
|
18
|
+
/// </summary>
|
|
19
|
+
public abstract void ShowTab();
|
|
20
|
+
|
|
21
|
+
/// <summary>
|
|
22
|
+
///
|
|
23
|
+
/// </summary>
|
|
24
|
+
public abstract void HideTab();
|
|
25
|
+
}
|
|
26
|
+
}
|
package/MapUITab.cs.meta
ADDED