class_name SilverGeneratorextends Nodestatic var ref : SilverGeneratorfunc _init() -> void : if not ref : ref = self else : queue_free()signal generated_silversignal generator_startedsignal generator_stoppedvar _generated_silver_per_tick : int = 1var _tick_duration : float = 1.0## onready informs engine to load the variable when its ready. loads it when in the scene tree.## !add Timer node as child!@onready var _timer : Timer = get_node("Timer")func _ready() -> void : _timer.wait_time = _tick_duration _timer.timeout.connect(_on_timer_timeout)func start() -> void : _timer.start() generator_started.emit()func stop() -> void : _timer.stop() generator_stopped.emit()func is_active() -> bool : return not _timer.is_stopped()func toggle() -> void: if is_active() : stop() else: start()func _generate_silver() -> void : ManagerSilver.ref.create_silver(_generated_silver_per_tick) generated_silver.emit()## functions with _on at the start needs to be connected somewhere, so its a reminderfunc _on_timer_timeout() -> void : _generate_silver()