Skip to content

Commit dc26d42

Browse files
committed
Bump to version 2.0.32U
Converted to Subnautica 2.0 | BepInEx & Nautilus
1 parent 9609180 commit dc26d42

File tree

7 files changed

+108
-81
lines changed

7 files changed

+108
-81
lines changed

ResourceMonitor/Components/ItemButton.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ public class ItemButton : OnScreenButton, IPointerEnterHandler, IPointerExitHand
1616
private void Awake()
1717
{
1818
rawImage = GetComponent<RawImage>();
19-
rawImage.color = Plugin.ItemButtonBackgroundColor.Value;
19+
rawImage.color = Options.Current.ItemButtonBackgroundColor;
2020
}
2121

2222
public TechType Type
2323
{
2424
set
2525
{
26-
if (Plugin.AllowSelectingItemsFromMonitor.Value)
26+
if (Options.Current.AllowSelectingItemsFromMonitor)
2727
HoverText = "Take " + Language.main.Get(value);
2828
else
2929
HoverText = Language.main.Get(value);
@@ -35,7 +35,7 @@ public TechType Type
3535
public override void OnPointerClick(PointerEventData eventData)
3636
{
3737
base.OnPointerClick(eventData);
38-
if (Plugin.AllowSelectingItemsFromMonitor.Value && IsHovered && ResourceMonitorDisplay != null && ResourceMonitorDisplay.ResourceMonitorLogic != null && type != TechType.None)
38+
if (Options.Current.AllowSelectingItemsFromMonitor && IsHovered && ResourceMonitorDisplay != null && ResourceMonitorDisplay.ResourceMonitorLogic != null && type != TechType.None)
3939
{
4040
ResourceMonitorDisplay.ResourceMonitorLogic.AttemptToTakeItem(type);
4141
}
@@ -46,14 +46,14 @@ public override void OnPointerEnter(PointerEventData eventData)
4646
base.OnPointerEnter(eventData);
4747
if (IsHovered)
4848
{
49-
rawImage.color = Plugin.ItemButtonHoverColor.Value;
49+
rawImage.color = Options.Current.ItemButtonHoverColor;
5050
}
5151
}
5252

5353
public override void OnPointerExit(PointerEventData eventData)
5454
{
5555
base.OnPointerExit(eventData);
56-
rawImage.color = Plugin.ItemButtonBackgroundColor.Value;
56+
rawImage.color = Options.Current.ItemButtonBackgroundColor;
5757
}
5858
}
5959
}

ResourceMonitor/Components/PaginatorButton.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ public void OnEnable()
2222
{
2323
if (text != null)
2424
{
25-
text.color = Plugin.PaginatorStartingColor.Value;
25+
text.color = Options.Current.PaginatorStartingColor;
2626
}
2727
}
2828

2929
public override void OnDisable()
3030
{
3131
if (text != null)
3232
{
33-
text.color = Plugin.PaginatorStartingColor.Value;
33+
text.color = Options.Current.PaginatorStartingColor;
3434
}
3535
base.OnDisable();
3636
}
@@ -40,14 +40,14 @@ public override void OnPointerEnter(PointerEventData eventData)
4040
base.OnPointerEnter(eventData);
4141
if (IsHovered)
4242
{
43-
text.color = Plugin.PaginatorHoverColor.Value;
43+
text.color = Options.Current.PaginatorHoverColor;
4444
}
4545
}
4646

4747
public override void OnPointerExit(PointerEventData eventData)
4848
{
4949
base.OnPointerExit(eventData);
50-
text.color = Plugin.PaginatorStartingColor.Value;
50+
text.color = Options.Current.PaginatorStartingColor;
5151
}
5252

5353
public override void OnPointerClick(PointerEventData eventData)

ResourceMonitor/Components/ResourceMonitorDisplay.cs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class ResourceMonitorDisplay : MonoBehaviour, IPointerClickHandler, IPoin
3030
private Dictionary<TechType, GameObject> trackedResourcesDisplayElements;
3131
public int currentPage = 1;
3232
public int maxPage = 1;
33-
private float idlePeriodLength = Plugin.IdleTime.Value;
33+
private float idlePeriodLength = Options.Current.IdleTime;
3434
private float timeSinceLastInteraction = 0f;
3535
private bool isIdle = false;
3636
private float nextColorTransitionCurrentTime;
@@ -212,7 +212,7 @@ public void Update()
212212
timeSinceLastInteraction += Time.deltaTime;
213213
}
214214

215-
if (Plugin.EnableIdle.Value && isIdle == false && timeSinceLastInteraction >= idlePeriodLength)
215+
if (Options.Current.EnableIdle && isIdle == false && timeSinceLastInteraction >= idlePeriodLength)
216216
{
217217
EnterIdleScreen();
218218
}
@@ -256,7 +256,7 @@ public void Update()
256256

257257
private bool InIdleInteractionRange()
258258
{
259-
return Mathf.Abs(Vector3.Distance(gameObject.transform.position, Player.main.transform.position)) <= Plugin.MaxInteractionIdlePageDistance.Value;
259+
return Mathf.Abs(Vector3.Distance(gameObject.transform.position, Player.main.transform.position)) <= Options.Current.MaxInteractionIdlePageDistance;
260260
}
261261

262262
public void OnPointerClick(PointerEventData eventData)
@@ -324,7 +324,7 @@ private void ExitIdleScreen()
324324

325325
private void CalculateNewIdleTime()
326326
{
327-
idlePeriodLength = Plugin.IdleTime.Value + Random.Range(Plugin.IdleTimeRandomnessLowBound.Value, Plugin.IdleTimeRandomnessHighBound.Value);
327+
idlePeriodLength = Options.Current.IdleTime + Random.Range(Options.Current.IdleTimeRandomnessLowBound, Options.Current.IdleTimeRandomnessHighBound);
328328
}
329329

330330
public void ResetIdleTimer()
@@ -334,7 +334,7 @@ public void ResetIdleTimer()
334334

335335
private void CalculateNewColourTransitionTime()
336336
{
337-
transitionIdleTime = Plugin.IdleScreenColorTransitionTime.Value + Random.Range(Plugin.IdleScreenColorTransitionRandomnessLowBound.Value, Plugin.IdleScreenColorTransitionRandomnessHighBound.Value);
337+
transitionIdleTime = Options.Current.IdleScreenColorTransitionTime + Random.Range(Options.Current.IdleScreenColorTransitionRandomnessLowBound, Options.Current.IdleScreenColorTransitionRandomnessHighBound);
338338
}
339339

340340
public void OnApplicationQuit()
@@ -347,77 +347,77 @@ private bool FindAllComponents()
347347
CanvasGameObject = gameObject.GetComponentInChildren<Canvas>()?.gameObject;
348348
if (CanvasGameObject == null)
349349
{
350-
System.Console.WriteLine("[ResourceMonitor] Canvas not found.");
350+
Plugin.Logger.LogError("[ResourceMonitor] Canvas not found.");
351351
return false;
352352
}
353353

354354
animator = CanvasGameObject.GetComponent<Animator>();
355355
if (animator == null)
356356
{
357-
System.Console.WriteLine("[ResourceMonitor] Animator not found.");
357+
Plugin.Logger.LogError("[ResourceMonitor] Animator not found.");
358358
return false;
359359
}
360360

361361
blackCover = CanvasGameObject.FindChild("BlackCover")?.gameObject;
362362
if (blackCover == null)
363363
{
364-
System.Console.WriteLine("[ResourceMonitor] BlackCover not found.");
364+
Plugin.Logger.LogError("[ResourceMonitor] BlackCover not found.");
365365
return false;
366366
}
367367

368368
var screenHolder = CanvasGameObject.transform.Find("Screens")?.gameObject;
369369
if (screenHolder == null)
370370
{
371-
System.Console.WriteLine("[ResourceMonitor] Screen Holder Gameobject not found.");
371+
Plugin.Logger.LogError("[ResourceMonitor] Screen Holder Gameobject not found.");
372372
return false;
373373
}
374374

375375
welcomeScreen = screenHolder.FindChild("WelcomeScreen")?.gameObject;
376376
if (welcomeScreen == null)
377377
{
378-
System.Console.WriteLine("[ResourceMonitor] Screen: WelcomeScreen not found.");
378+
Plugin.Logger.LogError("[ResourceMonitor] Screen: WelcomeScreen not found.");
379379
return false;
380380
}
381381

382382
mainScreen = screenHolder.FindChild("MainScreen")?.gameObject;
383383
if (mainScreen == null)
384384
{
385-
System.Console.WriteLine("[ResourceMonitor] Screen: MainScreen not found.");
385+
Plugin.Logger.LogError("[ResourceMonitor] Screen: MainScreen not found.");
386386
return false;
387387
}
388388

389389
mainScreensCover = mainScreen.FindChild("BlackCover")?.gameObject;
390390
if (mainScreensCover == null)
391391
{
392-
System.Console.WriteLine("[ResourceMonitor] Screen: MainScreen Cover not found.");
392+
Plugin.Logger.LogError("[ResourceMonitor] Screen: MainScreen Cover not found.");
393393
return false;
394394
}
395395

396396
var actualMainScreen = mainScreen.FindChild("ActualScreen")?.gameObject;
397397
if (actualMainScreen == null)
398398
{
399-
System.Console.WriteLine("[ResourceMonitor] Screen: Actual Main Screen not found.");
399+
Plugin.Logger.LogError("[ResourceMonitor] Screen: Actual Main Screen not found.");
400400
return false;
401401
}
402402

403403
mainScreenItemGrid = actualMainScreen.FindChild("MainGrid")?.gameObject;
404404
if (mainScreenItemGrid == null)
405405
{
406-
System.Console.WriteLine("[ResourceMonitor] Screen: Main Screen Item Grid not found.");
406+
Plugin.Logger.LogError("[ResourceMonitor] Screen: Main Screen Item Grid not found.");
407407
return false;
408408
}
409409

410410
var paginator = actualMainScreen.FindChild("Paginator")?.gameObject;
411411
if (paginator == null)
412412
{
413-
System.Console.WriteLine("[ResourceMonitor] Screen: Paginator not found.");
413+
Plugin.Logger.LogError("[ResourceMonitor] Screen: Paginator not found.");
414414
return false;
415415
}
416416

417417
previousPageGameObject = paginator.FindChild("PreviousPage")?.gameObject;
418418
if (previousPageGameObject == null)
419419
{
420-
System.Console.WriteLine("[ResourceMonitor] Screen: Previous Page GameObject not found.");
420+
Plugin.Logger.LogError("[ResourceMonitor] Screen: Previous Page GameObject not found.");
421421
return false;
422422
}
423423

@@ -428,7 +428,7 @@ private bool FindAllComponents()
428428
nextPageGameObject = paginator.FindChild("NextPage")?.gameObject;
429429
if (nextPageGameObject == null)
430430
{
431-
System.Console.WriteLine("[ResourceMonitor] Screen: Next Page GameObject not found.");
431+
Plugin.Logger.LogError("[ResourceMonitor] Screen: Next Page GameObject not found.");
432432
return false;
433433
}
434434
var pb2 = nextPageGameObject.AddComponent<PaginatorButton>();
@@ -438,35 +438,35 @@ private bool FindAllComponents()
438438
pageCounterGameObject = paginator.FindChild("PageCounter")?.gameObject;
439439
if (pageCounterGameObject == null)
440440
{
441-
System.Console.WriteLine("[ResourceMonitor] Screen: Page Counter GameObject not found.");
441+
Plugin.Logger.LogError("[ResourceMonitor] Screen: Page Counter GameObject not found.");
442442
return false;
443443
}
444444

445445
pageCounterText = pageCounterGameObject.GetComponent<Text>();
446446
if (pageCounterText == null)
447447
{
448-
System.Console.WriteLine("[ResourceMonitor] Screen: Page Counter Text not found.");
448+
Plugin.Logger.LogError("[ResourceMonitor] Screen: Page Counter Text not found.");
449449
return false;
450450
}
451451

452452
idleScreen = screenHolder.FindChild("IdleScreen")?.gameObject;
453453
if (idleScreen == null)
454454
{
455-
System.Console.WriteLine("[ResourceMonitor] Screen: IdleScreen not found.");
455+
Plugin.Logger.LogError("[ResourceMonitor] Screen: IdleScreen not found.");
456456
return false;
457457
}
458458

459459
var idleScreenTitleBackground = idleScreen.FindChild("AlterraTitleBackground")?.gameObject;
460460
if (idleScreenTitleBackground == null)
461461
{
462-
System.Console.WriteLine("[ResourceMonitor] Screen: IdleScreen Background not found.");
462+
Plugin.Logger.LogError("[ResourceMonitor] Screen: IdleScreen Background not found.");
463463
return false;
464464
}
465465

466466
idleScreenTitleBackgroundImage = idleScreenTitleBackground.GetComponent<Image>();
467467
if (idleScreenTitleBackground == null)
468468
{
469-
System.Console.WriteLine("[ResourceMonitor] Screen: IdleScreen Background Image not found.");
469+
Plugin.Logger.LogError("[ResourceMonitor] Screen: IdleScreen Background Image not found.");
470470
return false;
471471
}
472472

ResourceMonitor/Components/ResourceMonitorLogic.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ private IEnumerator Startup()
4545
if (seaBase == null)
4646
{
4747
ErrorMessage.AddMessage("[ResourceMonitor] ERROR: Can not work out what base it was placed inside.");
48-
System.Console.WriteLine("[ResourceMonitor] ERROR: Can not work out what base it was placed inside.");
48+
Plugin.Logger.LogError("[ResourceMonitor] ERROR: Can not work out what base it was placed inside.");
4949
yield break;
5050
}
5151

ResourceMonitor/Options.cs

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using Nautilus.Json;
2+
using Nautilus.Options.Attributes;
3+
using System;
4+
using System.Collections.Generic;
5+
using UnityEngine;
6+
7+
namespace ResourceMonitor
8+
{
9+
[Menu("Resource Monitor")]
10+
public class Options : ConfigFile
11+
{
12+
public static Options Current => Plugin.Options;
13+
14+
15+
[Toggle("AllowSelectingItemsFromMonitor", Tooltip = "Allows the player to click an item and automatically retreive it from storage.")]
16+
public Boolean AllowSelectingItemsFromMonitor = true;
17+
18+
[Choice("PaginatorStartingColor", Tooltip = "Color for the page selection.")]
19+
public Color PaginatorStartingColor = Color.white;
20+
21+
[ColorPicker("PaginatorHoverColor", Tooltip = "Color for the page selection hover.")]
22+
public Color PaginatorHoverColor = new Color(0.07f, 0.38f, 0.7f, 1f);
23+
24+
[Slider("MaxInteractionDistance", Min = 1f, Max = 20f, DefaultValue = 2.5f, Tooltip = "Max Interaction Distance.")]
25+
public float MaxInteractionDistance = 2.5f;
26+
27+
[Slider("MaxInteractionIdlePageDistance", Min = 1f, Max = 20f, DefaultValue = 5f, Tooltip = "Applies for idle mode.")]
28+
public float MaxInteractionIdlePageDistance = 5f;
29+
30+
[Toggle("EnableIdle", Tooltip = "If disabled, resource monitor may require manual overriding to display accurate numbers.")]
31+
public Boolean EnableIdle = true;
32+
33+
[Slider("IdleTime", Min = 1f, Max = 60f, DefaultValue = 20f, Tooltip = "How many seconds beyond idle page distance until the idle screen appears.")]
34+
public float IdleTime = 20f;
35+
36+
[Slider("IdleTimeRandomnessLowBound", Min = 0f, Max = 20f, DefaultValue = 1f, Tooltip = "Low bounduary for idle time randomness.")]
37+
public float IdleTimeRandomnessLowBound = 1f;
38+
39+
[Slider("IdleTimeRandomnessHighBound", Min = 0f, Max = 20f, DefaultValue = 10f, Tooltip = "High bounduary for idle time randomness.")]
40+
public float IdleTimeRandomnessHighBound = 10f;
41+
42+
[Slider("IdleScreenColorTransitionTime", Min = 1f, Max = 20f, DefaultValue = 2f, Tooltip = "Idle screen color transition time")]
43+
public float IdleScreenColorTransitionTime = 2f;
44+
45+
[Slider("IdleScreenColorTransitionRandomnessHighBound", Min = 0f, Max = 20f, DefaultValue = 2f, Tooltip = "High bounduary for color transition randomness")]
46+
public float IdleScreenColorTransitionRandomnessHighBound = 0f;
47+
48+
[Slider("IdleScreenColorTransitionRandomnessLowBound", Min = 0f, Max = 20f, DefaultValue = 0f, Tooltip = "Low bounduary for color transition randomness")]
49+
public float IdleScreenColorTransitionRandomnessLowBound = 0f;
50+
51+
[ColorPicker("ItemButtonBackgroundColor", Tooltip = "Background colors for item buttons")]
52+
public Color ItemButtonBackgroundColor = new Color(0.07843138f, 0.3843137f, 0.7058824f);
53+
54+
[ColorPicker("ItemButtonHoverColor", Tooltip = "Background colors for item buttons - hover")]
55+
public Color ItemButtonHoverColor = new Color(0.07843137f, 0.1459579f, 0.7058824f);
56+
57+
}
58+
}

0 commit comments

Comments
 (0)