extends "midi/MidiPlayer.gd" const Tetromino = preload("res://Tetrominos/Tetromino.gd") const LINE_CLEAR_CHANNELS = [3] var muted_events = [] func _ready(): ._ready() mute_channels(LINE_CLEAR_CHANNELS) func _init_channel( ): ._init_channel() for channel in max_channel: self.muted_events.append({}) func resume(): play(position) func _process_track_event_note_off( channel, event ): muted_events[channel.number].erase(event.note) ._process_track_event_note_off( channel, event ) func _process_track_event_note_on( channel, event ): if self.channel_mute[channel.number]: muted_events[channel.number][event.note] = event ._process_track_event_note_on( channel, event ) func mute_channels(channels): for channel_id in channels: channel_mute[channel_id] = true func unmute_channels(channels): for channel_id in channels: channel_mute[channel_id] = false for note in muted_events[channel_id]: _process_track_event_note_on(channel_status[channel_id], muted_events[channel_id][note]) func piece_locked(lines): if lines == Tetromino.NB_MINOES: for channel in LINE_CLEAR_CHANNELS: channel_status[channel].vomume = 127 $LineCLearTimer.wait_time = 0.86 else: for channel in LINE_CLEAR_CHANNELS: channel_status[channel].vomume = 100 $LineCLearTimer.wait_time = 0.43 unmute_channels(LINE_CLEAR_CHANNELS) $LineCLearTimer.start() func _on_LineCLearTimer_timeout(): mute_channels(LINE_CLEAR_CHANNELS)