class_name RemixTable extends StaticBody3D @export var remix_menu_scene: PackedScene @export var button: InteractButton var reply_player: Hero func _ready() -> void: button.hover_text = tr("PROMPT_REMIX_INTERACT") func _on_static_body_3d_button_interacted(_value: int, callback: Hero) -> void: if callback.hand.size >= 1: reply_player = callback var menu: TrackEditor = remix_menu_scene.instantiate() as TrackEditor var cassette_array: Array[Cassette] = [] for cassette: Cassette in callback.hand.contents: cassette_array.append(cassette) menu.hero = reply_player menu.set_money(reply_player.currency) menu.populate_feature_slots() menu.add_option(cassette_array) menu.cassettes_remixed.connect(output) menu.press_check_button(false) reply_player.pause() reply_player.hud.add_child(menu) func output(cassettes_to_remove: Array[Cassette], cassettes_to_add: Array[Cassette], amount_spent: int) -> void: for cassette: Cassette in cassettes_to_remove: reply_player.hand.contents.erase(cassette) reply_player.hud.hot_wheel.update_cassettes(reply_player.get_wheel_cassettes()) for cassette: Cassette in cassettes_to_add: reply_player.add_cassette(cassette) reply_player.currency -= amount_spent reply_player.unpause()