47 lines
887 B
GDScript
47 lines
887 B
GDScript
|
|
extends Node
|
||
|
|
|
||
|
|
const months = [
|
||
|
|
"Jan", "Feb", "Mar", "Apr",
|
||
|
|
"May", "Jun", "Jul", "Aug",
|
||
|
|
"Sep", "Oct", "Nov", "Dec"
|
||
|
|
]
|
||
|
|
|
||
|
|
var counter: float = 0
|
||
|
|
const day_length = 2
|
||
|
|
var day_count: int = 0
|
||
|
|
|
||
|
|
var month = 1
|
||
|
|
var date = 1
|
||
|
|
var year = 2000
|
||
|
|
|
||
|
|
signal day_passed
|
||
|
|
signal resource_produce
|
||
|
|
signal resource_consume
|
||
|
|
|
||
|
|
func _process(delta: float):
|
||
|
|
counter += delta
|
||
|
|
if counter > day_length:
|
||
|
|
counter -= day_length
|
||
|
|
day_count += 1
|
||
|
|
date += 1
|
||
|
|
if date == 31:
|
||
|
|
date -= 30
|
||
|
|
month += 1
|
||
|
|
if month == 13:
|
||
|
|
month -= 12
|
||
|
|
year += 1
|
||
|
|
resource_produce.emit()
|
||
|
|
resource_consume.emit()
|
||
|
|
day_passed.emit()
|
||
|
|
|
||
|
|
func _nth_str(n: int):
|
||
|
|
if n == 0: return "0th"
|
||
|
|
if n >= 4 and n <= 20: return str(n) + "th"
|
||
|
|
if n % 10 == 1: return "1st"
|
||
|
|
if n % 10 == 2: return "2nd"
|
||
|
|
if n % 10 == 3: return "3rd"
|
||
|
|
return str(n) + "th"
|
||
|
|
|
||
|
|
func get_date_string():
|
||
|
|
return months[month - 1] + " " + _nth_str(date) + ", " + str(year)
|