27 lines
537 B
GDScript
27 lines
537 B
GDScript
extends Node
|
|
|
|
signal hour_signal
|
|
signal fifteen_minutes_signal
|
|
signal thirty_minutes_signal
|
|
|
|
var hour: int = 0
|
|
var minute: int = 0
|
|
|
|
@export var minutes_per_real_second: float = 1.0 # 1 in-game minute per second
|
|
|
|
var _accumulated_time := 0.0
|
|
|
|
func _process(delta: float) -> void:
|
|
_accumulated_time += delta * minutes_per_real_second
|
|
while _accumulated_time >= 1.0:
|
|
_accumulated_time -= 1.0
|
|
_add_minute()
|
|
|
|
func _add_minute():
|
|
minute += 1
|
|
if minute >= 60:
|
|
hour_signal.emit()
|
|
minute = 0
|
|
hour += 1
|
|
if hour >= 24:
|
|
hour = 0
|