extends Node2D var sprite_scene = preload("res://mini-game/scenes/decor/ForegroundSprite.tscn") var textures := [] var moving := false func _ready(): textures.append($ForegroundSprite) stop() func stop(): moving = false for t in textures: t.stop() func start(): moving = true for t in textures: t.start() func _on_ForegroundSprite_viewport_entered(object: Sprite) -> void: var new_sprite = sprite_scene.instance() new_sprite.position = Vector2(1920, 0) new_sprite.connect("viewport_entered", self, "_on_ForegroundSprite_viewport_entered") new_sprite.connect("viewport_exited", self, "_on_ForegroundSprite_viewport_exited") if moving: new_sprite.start() add_child(new_sprite) textures.append(new_sprite) func _on_ForegroundSprite_viewport_exited(object: Sprite) -> void: textures.remove(textures.find(object)) object.queue_free()