A 2D Farming RPG
This is just a simple 2D farming RPG game
Loading...
Searching...
No Matches
TimeManager.cs
Go to the documentation of this file.
1using System.Collections;
2using System.Collections.Generic;
3using UnityEngine;
4
8public class TimeManager : SingletonMonobehaviour<TimeManager>
9{
10 private int m_GameYear = 1;
11 private Season m_GameSeason = Season.Spring;
12 private int m_GameDay = 1;
13 private int m_GameHour = 6;
14 private int m_GameMinute = 30;
15 private int m_GameSecond = 0;
16 private string m_GameDayOfWeek = "Mon";
17
19 private bool m_IsGameClockPaused = false;
20
21 private float m_GameTick = 0f;
22
26 private void Start()
27 {
29 }
30
34 private void Update()
35 {
37 {
38 GameTick();
39 }
40 }
41
45 private void GameTick()
46 {
47 m_GameTick += Time.deltaTime;
48
50 {
53 }
54 }
55
59 private void UpdateGameSecond()
60 {
62
63 if( m_GameSecond > 59 )
64 {
65 m_GameSecond = 0;
67
68 if( m_GameMinute > 59 )
69 {
70 m_GameMinute = 0;
71 m_GameHour++;
72
73 if( m_GameHour > 23 )
74 {
75 m_GameHour = 0;
76 m_GameDay++;
77
78 if( m_GameDay > 30 )
79 {
80 m_GameDay = 1;
81
82 int gs = (int)m_GameSeason;
83 gs++;
84
85 m_GameSeason = (Season)gs;
86
87 if( gs > 3 )
88 {
89 gs = 0;
90 m_GameSeason = (Season)gs;
91
92 m_GameYear++;
93
94 if( m_GameYear > 9999 )
95 {
96 m_GameYear = 1;
97 }
98
100 }
101
103 }
104
107 }
108
110 }
111
113 }
114
115 // Call to advance game second event would go here if required.
116 }
117
122 private string GetDayOfWeek()
123 {
124 int totalDays = ( ( (int)m_GameSeason ) * 30 ) + m_GameDay;
125 int dayOfWeek = totalDays % 7;
126
127 switch( dayOfWeek )
128 {
129 case 1:
130 return "Mon";
131
132 case 2:
133 return "Tue";
134
135 case 3:
136 return "Wed";
137
138 case 4:
139 return "Thu";
140
141 case 5:
142 return "Fri";
143
144 case 6:
145 return "Sat";
146
147 case 7:
148 return "Sun";
149
150 default:
151 return "Err";
152 }
153 }
154
160 {
161 for( int i = 0; i < 60; i++ )
162 {
164 }
165 }
166
171 public void TestAdvanceGameDay()
172 {
173 for( int i = 0; i < 86400; i++ )
174 {
176 }
177 }
178}
Season
Used for time mechanism
Definition: Enums.cs:128
Raise an handle event when a movement is triggered.
Definition: EventHandler.cs:15
static void CallAdvanceGameMinuteEvent(int gameYear, Season gameSeason, int gameDay, string gameDayOfWeek, int gameHour, int gameMinute, int gameSecond)
Call the event AdvanceGameMinuteEvent
Definition: EventHandler.cs:84
static void CallAdvanceGameDayEvent(int gameYear, Season gameSeason, int gameDay, string gameDayOfWeek, int gameHour, int gameMinute, int gameSecond)
Call the event AdvanceGameDayEvent
static void CallAdvanceGameHourEvent(int gameYear, Season gameSeason, int gameDay, string gameDayOfWeek, int gameHour, int gameMinute, int gameSecond)
Call the event AdvanceGameHourEvent
static void CallAdvanceGameSeasonEvent(int gameYear, Season gameSeason, int gameDay, string gameDayOfWeek, int gameHour, int gameMinute, int gameSecond)
Call the event AdvanceGameSeasonEvent
static void CallAdvanceGameYearEvent(int gameYear, Season gameSeason, int gameDay, string gameDayOfWeek, int gameHour, int gameMinute, int gameSecond)
Call the event AdvanceGameYearEvent
This class handle the game settings.
Definition: Settings.cs:9
const float m_SecondsPerGameSeconds
Definition: Settings.cs:67
Abstract class that inherited by all the game managers. All the game managers use singleton since gam...
A singleton manager class for time managements.
Definition: TimeManager.cs:9
bool m_IsGameClockPaused
Check the game paused or not.
Definition: TimeManager.cs:19
void Update()
Start the ticking
Definition: TimeManager.cs:34
int m_GameSecond
Definition: TimeManager.cs:15
float m_GameTick
Definition: TimeManager.cs:21
void TestAdvanceGameDay()
TODO: Remove before final product.
Definition: TimeManager.cs:171
void GameTick()
Convert delta time to ingame seconds.
Definition: TimeManager.cs:45
Season m_GameSeason
Definition: TimeManager.cs:11
void Start()
Call minute event
Definition: TimeManager.cs:26
void TestAdvanceGameMinute()
TODO: Remove before final product.
Definition: TimeManager.cs:159
int m_GameMinute
Definition: TimeManager.cs:14
string m_GameDayOfWeek
Definition: TimeManager.cs:16
int m_GameHour
Definition: TimeManager.cs:13
int m_GameYear
Definition: TimeManager.cs:10
void UpdateGameSecond()
Handles the progression of time.
Definition: TimeManager.cs:59
string GetDayOfWeek()
Return the day of the week
Definition: TimeManager.cs:122