class_name BaseController extends Node @export var jets_collection: JetsCollection var controller_message_bus: ControllerMessageBus = null func _controller_message(_event: BaseEvent) -> void: assert(false, "Controller Base '_controller_message' must be overridden...") func set_controller_message_bus(message_bus: ControllerMessageBus) -> void: controller_message_bus = message_bus func unset_controller_message_bus() -> void: controller_message_bus = null func message(event: BaseEvent): return controller_message_bus.message.call(event) func message_to(message_str: String, event: BaseEvent): return controller_message_bus.message_to.call(message_str, event) func message_to_selected(cnames: Array[String], event: BaseEvent): var responses: Array = Array() for cname: String in cnames: responses.append( controller_message_bus.message_to.call(name, event) ) return responses func register_controller(cname: String, controller: BaseController) -> void: controller_message_bus.register_controller.call(cname, controller) func unregister_controller(cname: String) -> void: controller_message_bus.unregister_controller.call(cname)