mirror of
https://github.com/DerTyp7/grow-ai-unity.git
synced 2025-10-30 21:07:09 +01:00
added freetime etc
This commit is contained in:
23
Assets/Scripts/Managers/EconomyManager.cs
Normal file
23
Assets/Scripts/Managers/EconomyManager.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class EconomyManager : MonoBehaviour
|
||||
{
|
||||
public static EconomyManager instance;
|
||||
|
||||
[SerializeField]
|
||||
float money = 0.0f;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (instance == null)
|
||||
instance = this;
|
||||
}
|
||||
|
||||
public void AddMoney(float value) => money += value;
|
||||
public float GetMoney() => money;
|
||||
public string GetMoneyStr() => money.ToString() + " <20>";
|
||||
public void SetMoney(float value) => money = value;
|
||||
public void RemoveMone(float value) => money -= value;
|
||||
}
|
||||
11
Assets/Scripts/Managers/EconomyManager.cs.meta
Normal file
11
Assets/Scripts/Managers/EconomyManager.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d01b08fa5ea32674c8ce7599f2d886ce
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
103
Assets/Scripts/Managers/TimeManager.cs
Normal file
103
Assets/Scripts/Managers/TimeManager.cs
Normal file
@@ -0,0 +1,103 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class TimeManager : MonoBehaviour
|
||||
{
|
||||
public static Action OnTimeUpdate;
|
||||
public static Action OnSecondUpdate;
|
||||
public static Action OnMinuteUpdate;
|
||||
public static Action OnHourUpdate;
|
||||
public static Action OnDayUpdate;
|
||||
public static Action OnMonthUpdate;
|
||||
public static Action OnYearUpdate;
|
||||
|
||||
public static TimeManager instance;
|
||||
|
||||
public enum PartOfDay
|
||||
{
|
||||
MORNING,
|
||||
AFTERNOON,
|
||||
EVENING,
|
||||
NIGHT
|
||||
}
|
||||
|
||||
public PartOfDay partOfDay;
|
||||
|
||||
[SerializeField]
|
||||
float intervalTime = 1.0f; // 1.0f -> 1 real second is 1 ingame minute
|
||||
|
||||
int minutesPerInterval = 1;
|
||||
|
||||
public CultureInfo cultureInfo = new CultureInfo("en-us");
|
||||
DateTime dateTime = new DateTime(1, 1, 1, 0, 0, 0);
|
||||
DateTime prevDateTime;
|
||||
float timer;
|
||||
|
||||
public DateTime GetDateTime() => dateTime;
|
||||
|
||||
public string GetTime() => dateTime.ToString("hh:mm tt", cultureInfo);
|
||||
public string GetDate() => dateTime.ToString("dd/MM/yyyy", cultureInfo);
|
||||
public float GetintervalTime() => intervalTime;
|
||||
|
||||
[Header("ReadOnly")]
|
||||
[SerializeField]
|
||||
string readOnlyTimeString;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (instance == null)
|
||||
instance = this;
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
timer = intervalTime;
|
||||
prevDateTime = dateTime;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
timer -= Time.deltaTime;
|
||||
|
||||
if (timer <= 0)
|
||||
{
|
||||
prevDateTime = dateTime;
|
||||
|
||||
dateTime = dateTime.AddMinutes(minutesPerInterval);
|
||||
CheckPartsOfDay();
|
||||
timer = intervalTime;
|
||||
readOnlyTimeString = GetTime() + " " + GetDate();
|
||||
|
||||
if (prevDateTime.Second != dateTime.Second)
|
||||
OnSecondUpdate?.Invoke();
|
||||
if (prevDateTime.Minute != dateTime.Minute)
|
||||
OnMinuteUpdate?.Invoke();
|
||||
if (prevDateTime.Hour != dateTime.Hour)
|
||||
OnHourUpdate?.Invoke();
|
||||
if (prevDateTime.Day != dateTime.Day)
|
||||
OnDayUpdate?.Invoke();
|
||||
if (prevDateTime.Month != dateTime.Month)
|
||||
OnMonthUpdate?.Invoke();
|
||||
if (dateTime.Year != dateTime.Year)
|
||||
OnYearUpdate?.Invoke();
|
||||
|
||||
OnTimeUpdate?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
void CheckPartsOfDay()
|
||||
{
|
||||
if (dateTime.Hour >= 22)
|
||||
partOfDay = PartOfDay.NIGHT;
|
||||
else if (dateTime.Hour < 6)
|
||||
partOfDay = PartOfDay.NIGHT;
|
||||
else if (dateTime.Hour >= 6 && dateTime.Hour < 12)
|
||||
partOfDay = PartOfDay.MORNING;
|
||||
else if (dateTime.Hour >= 12 && dateTime.Hour < 17)
|
||||
partOfDay = PartOfDay.AFTERNOON;
|
||||
else if (dateTime.Hour >= 17 && dateTime.Hour < 22)
|
||||
partOfDay = PartOfDay.EVENING;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Managers/TimeManager.cs.meta
Normal file
11
Assets/Scripts/Managers/TimeManager.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 19408a8c9044fc542b7045812e07e7fa
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user