diff --git a/Models/3-Stage/3stHelen.glb b/Models/3-Stage/3stHelen.glb index a3e3958..a2bdb2f 100644 Binary files a/Models/3-Stage/3stHelen.glb and b/Models/3-Stage/3stHelen.glb differ diff --git a/Scenes/GUI/EditorScreen.tscn b/Scenes/GUI/EditorScreen.tscn index 9b1788a..4d28b33 100644 --- a/Scenes/GUI/EditorScreen.tscn +++ b/Scenes/GUI/EditorScreen.tscn @@ -247,7 +247,7 @@ offset_right = -8.0 offset_bottom = 16.0 grow_horizontal = 0 grow_vertical = 2 -text = "Pneumatic Plaything v0.5" +text = "Pneumatic Plaything v0.5.1" horizontal_alignment = 2 vertical_alignment = 1 diff --git a/Scripts/EditorScreen.gd b/Scripts/EditorScreen.gd index 1e84e94..5b72fd7 100644 --- a/Scripts/EditorScreen.gd +++ b/Scripts/EditorScreen.gd @@ -621,14 +621,12 @@ func _on_step_forward_button_pressed() -> void: update_time_label() func _on_record_button_toggled(toggled_on: bool) -> void: - var later_flag = false if (playing): - _on_pause_button_pressed() - later_flag = true + # starting recording while playing causes issues + _on_stop_button_pressed() recording = toggled_on if (toggled_on): start_recording.emit() else: end_recording.emit() - if (later_flag): _on_play_button_pressed() func _on_stop_button_pressed() -> void: playing = false @@ -658,21 +656,21 @@ func save_data() -> String: for j in temp_data: if (index_get_safe(i, temp_data[j])): if (j <= 32): - frame_long_1 += 1 << (j&64)-1 + frame_long_1 += 1 << (j&32)-1 elif (j <= 64): - frame_long_2 += 1 << (j&64)-1 + frame_long_2 += 1 << (j&32)-1 elif (j <= 96): - frame_long_3 += 1 << (j&64)-1 + frame_long_3 += 1 << (j&32)-1 elif (j <= 128): - frame_long_4 += 1 << (j&64)-1 + frame_long_4 += 1 << (j&32)-1 elif (j <= 160): - frame_long_5 += 1 << (j&64)-1 + frame_long_5 += 1 << (j&32)-1 elif (j <= 192): - frame_long_6 += 1 << (j&64)-1 + frame_long_6 += 1 << (j&32)-1 elif (j <= 224): - frame_long_7 += 1 << (j&64)-1 + frame_long_7 += 1 << (j&32)-1 elif (j <= 256): - frame_long_8 += 1 << (j&64)-1 + frame_long_8 += 1 << (j&32)-1 write_out += (("%08X%08X%08X%08X%08X%08X%08X%08X,") % [frame_long_8, frame_long_7, frame_long_6, frame_long_5, frame_long_4, frame_long_3, frame_long_2, frame_long_1]) return write_out @@ -713,9 +711,11 @@ func plot_data(data: String): check_frame_segment = frame_long_8 if ((check_frame_segment & int(pow(2, check_i))) >> check_i == 1): er = true + $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_child(evil_glass.find(i)).forced_etchable = true $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_child(evil_glass.find(i)).etching = er step.emit(1) for movement_row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children(): + movement_row.forced_etchable = false movement_row.etching = false end_recording.emit() return_to_zero.emit() diff --git a/Scripts/MovementRow.gd b/Scripts/MovementRow.gd index bc86b60..36b96e4 100644 --- a/Scripts/MovementRow.gd +++ b/Scripts/MovementRow.gd @@ -7,6 +7,7 @@ extends Panel @export var animatronic : String @export var movements : Array[bool] @export var etching: bool = false +@export var forced_etchable: bool = false var in_flow : float = 1.0 var out_flow : float = 1.0 @@ -54,8 +55,12 @@ func check_at_index(cindex: int) -> bool: if (out == null): return false return out +func check_if_erasing() -> bool: + if (forced_etchable): return true + return (!$LockButton.button_pressed) && key_binding.keycode != 0 + func _step(amount: int): - if (recording && !$LockButton.button_pressed): + if (recording && check_if_erasing()): if (etching): set_at_current() else: unset_at_current() if (playing): @@ -77,7 +82,6 @@ func _return_to_zero(): func _erase_all() -> void: _return_to_zero() - $LockButton.button_pressed = false _on_clear_button_pressed() func _start_recording(): @@ -163,8 +167,8 @@ func _input(event: InputEvent) -> void: update_text() return - func _on_clear_button_pressed() -> void: + if ($LockButton.button_pressed): return movements = [] for indicator in $MovementsBG/InvisibleMask/MovementsHandle.get_children(): indicator.queue_free() diff --git a/project.godot b/project.godot index b79e99f..7ba3e56 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Pneumatic Plaything" -config/version="v0.5" +config/version="v0.5.1" run/main_scene="uid://oiehbor0dlqx" config/features=PackedStringArray("4.4", "GL Compatibility") boot_splash/show_image=false