channel-switcher/base modules/channel_controller.gd
2025-05-15 14:35:32 +10:00

57 lines
1.2 KiB
GDScript

extends Control
class_name Channel
signal channel_win
signal channel_lose
enum Mode{
Online,
Static,
Offline
}
@export var channel_name : String
@export var channel_scene : PackedScene
@export_group("Node References")
@export var offline_channel_cover : TextureRect
@export var static_channel_cover : TextureRect
@export var game_viewport : SubViewport
var channel_mode : Mode = Mode.Offline
func _ready() -> void:
#var new_scene = channel_scene.instantiate()
#game_viewport.add_child(new_scene)
#start_channel(channel_scene)
#if(channel_name == "Platformer"):
#start_channel(channel_scene)
pass
func _process(delta: float) -> void:
offline_channel_cover.visible = channel_mode == Mode.Offline
static_channel_cover.visible = channel_mode == Mode.Static
func start_channel(scene : PackedScene):
var new_scene = scene.instantiate()
game_viewport.add_child(new_scene)
channel_mode = Mode.Online
func end_channel():
channel_mode = Mode.Static
game_viewport.get_child(0).queue_free()
func make_static():
channel_mode = Mode.Static
func make_offline():
channel_mode = Mode.Offline
func win_channel():
channel_win.emit()
end_channel()
func lose_channel():
channel_lose.emit()
end_channel()