Files

70 lines
1.3 KiB
GDScript

extends Node
signal game_event_fired(
event_name: StringName,
cabinet_id: StringName
)
var active_assignment: ScenarioAssignment
func configure(assignment: ScenarioAssignment) -> void:
if assignment == null:
push_error("Cannot configure RoomRuntime with null assignment.")
return
active_assignment = assignment
HardwareManager.configure(assignment.cabinet)
print("")
print("======= ROOM RUNTIME =======")
print("Cabinet: ", assignment.cabinet.display_name)
print("Game: ", assignment.game.display_name)
print("Variant: ", assignment.variant)
print("============================")
print("")
func fire_game_event(event_name: StringName) -> void:
if active_assignment == null:
push_error("RoomRuntime has no active assignment.")
return
print("")
print(
"[GAME EVENT] %s -> %s"
% [
active_assignment.game.game_id,
event_name
]
)
game_event_fired.emit(
event_name,
active_assignment.cabinet.cabinet_id
)
var actions := active_assignment.get_actions_for_event(
event_name
)
if actions.is_empty():
print("[SCENARIO] No hardware actions mapped.")
return
for action_id in actions:
print(
"[SCENARIO] %s -> %s"
% [event_name, action_id]
)
HardwareManager.trigger(
action_id,
{
"game_event": event_name
}
)