PneumaticPlaything/Scripts/EditorScreen.gd

112 lines
2.7 KiB
GDScript

extends Control
var playing : bool = false
var recording : bool = false
var index : int = 0
var playback_rate : int = 1
signal step_forward()
signal step_backward()
signal start_recording()
signal end_recording()
signal return_to_zero()
func update_time_label() -> void:
var frames = index % 60
var seconds = floori(index/60) % 60
var minutes = floori(index/360) % 60
var hours = floori(index/7200)
$SequencerPanel/TransportControls/TimeLabel.text = "%d:%02d:%02d:%02d" % [hours, minutes, seconds, frames]
#$SequencerPanel/TransportControls/TimeLabel.text = str(index)
func _ready() -> void:
get_tree().get_root().size_changed.connect(_on_size_changed)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("toggle_editor_screen"):
$CameraPreview.visible = !$CameraPreview.visible;
$CameraFullScreen.visible = !$CameraFullScreen.visible;
func _physics_process(_delta: float) -> void:
if (playing || recording):
step_forward.emit()
index += 1
update_time_label()
func _on_size_changed() -> void:
$SubViewport.size = $ColorRect.size
func _on_controls_button_pressed() -> void:
$ControlsScreen.visible = true
func _on_credits_button_pressed() -> void:
$CreditsScreen.visible = true
func _on_controls_input_eater_pressed() -> void:
$ControlsScreen.visible = false
func _on_credits_input_eater_pressed() -> void:
$CreditsScreen.visible = false
func _on_v_scroll_bar_value_changed(value: float) -> void:
$SequencerPanel/TimelinePanel/InvisibleMask/RowsHandle.position.y = value * -44
func _on_play_button_pressed() -> void:
playback_rate = 1
playing = true
recording = false
end_recording.emit()
func _on_pause_button_pressed() -> void:
playing = false
recording = false
end_recording.emit()
func _on_play_backwards_button_pressed() -> void:
playback_rate = -1
playing = true
recording = false
end_recording.emit()
func _on_fast_backwards_button_pressed() -> void:
playback_rate = -2
playing = true
recording = false
end_recording.emit()
func _on_step_backwards_button_pressed() -> void:
playing = false
recording = false
end_recording.emit()
step_backward.emit()
if (index != 0): index -= 1
update_time_label()
func _on_fast_forward_button_pressed() -> void:
playback_rate = 2
playing = true
recording = false
end_recording.emit()
func _on_step_forward_button_pressed() -> void:
playing = false
recording = false
end_recording.emit()
step_forward.emit()
index += 1
update_time_label()
func _on_record_button_pressed() -> void:
playback_rate = 1
playing = false
recording = true
start_recording.emit()
func _on_stop_button_pressed() -> void:
playing = false
recording = false
index = 0
end_recording.emit()
return_to_zero.emit()
update_time_label()