From 03e6ba5e614d1fb1d33b3a30ede39b6b632efa7b Mon Sep 17 00:00:00 2001 From: betalars Date: Sun, 6 Aug 2023 00:02:17 +0200 Subject: [PATCH 1/5] resetting music slider in startup --- src/logic-scenes/startup/startup.tscn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logic-scenes/startup/startup.tscn b/src/logic-scenes/startup/startup.tscn index b686f5d8..2f071bb6 100644 --- a/src/logic-scenes/startup/startup.tscn +++ b/src/logic-scenes/startup/startup.tscn @@ -410,7 +410,7 @@ size_flags_horizontal = 3 size_flags_vertical = 4 max_value = 1.0 step = 0.05 -value = 1.0 +value = 0.5 ticks_on_borders = true script = ExtResource("3_q2gbh") From 53e28108d70b91637a925072012bbf19917fd110 Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Sat, 12 Aug 2023 11:28:23 +0200 Subject: [PATCH 2/5] pressing ui left now works as expected --- src/logic-scenes/board/card-board.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index 91eb5645..109d3030 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -266,7 +266,7 @@ func _input(event): elif event.is_action_pressed("ui_left"): # left to switch context to the left active_context -= 1 - if active_context < -1: + if active_context <= -1: active_context = ui_context.POST_IT_LIST elif event.is_action_pressed("ui_right"): # right to switch context to the right From 57f9fc7c0707773552a534c1a8a241799502d26a Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Sat, 12 Aug 2023 12:19:27 +0200 Subject: [PATCH 3/5] fixed positioning of post it on the card --- src/logic-scenes/board/card-board.gd | 4 +++- src/logic-scenes/board/card.tscn | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index 109d3030..466490ed 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -187,7 +187,8 @@ func attach_postit_to_card(postit: Area2D, card: Area2D, update_dict = false): _return_postit_to_panels(postit) # don't attach if card has already a post-it attached return - postit.reparent(card) + postit.reparent(card.get_child(3, true)) + postit.position = Vector2(0,0) postit.on_board = false postit.set_owner(self) postit.position = card.get_child(3).position @@ -243,6 +244,7 @@ func _input(event): if event.is_action_pressed("ui_cancel"): State.leave_stage(self) + # Return, if the input is a mouse event (mouse events are handled separately) if event is InputEventMouse or !has_stage or not is_instance_valid(currently_selected_node): return diff --git a/src/logic-scenes/board/card.tscn b/src/logic-scenes/board/card.tscn index 75733c68..bf258e1d 100644 --- a/src/logic-scenes/board/card.tscn +++ b/src/logic-scenes/board/card.tscn @@ -83,7 +83,7 @@ theme_type_variation = &"card_text" autowrap_mode = 3 [node name="postit anchor" type="Node2D" parent="."] -position = Vector2(-65.6478, 60.3852) +position = Vector2(0, 21) [connection signal="input_event" from="." to="." method="_on_input_event"] [connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"] From 39c1969677ab9a1624d6702292dd7e7838c8ccfc Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Sat, 12 Aug 2023 12:20:05 +0200 Subject: [PATCH 4/5] fixed checks for if post it is attached or if card has post it attached --- src/logic-scenes/board/card.gd | 9 +++------ src/logic-scenes/board/post-it.gd | 5 ++--- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/logic-scenes/board/card.gd b/src/logic-scenes/board/card.gd index 2ecbc438..2d1e3f23 100644 --- a/src/logic-scenes/board/card.gd +++ b/src/logic-scenes/board/card.gd @@ -52,6 +52,7 @@ var scale_tween @export var voice_line: AudioStream = null @export var is_dragable: bool = false @onready var diameter = $CollisionShape2D.shape.height +@onready var postit_anchor = get_child(3) var is_dragged: bool = false: set(dragged): @@ -124,7 +125,7 @@ func _on_mouse_entered(): is_mouse_entered = true if not Input.is_action_pressed("mouse_left"): if has_postit_attached(): - if get_child(-1).highlighted: + if postit_anchor.get_child(-1).highlighted: return highlighted = true if "handle_hover" in owner: @@ -151,11 +152,7 @@ func _move_card(): position += (get_viewport().get_mouse_position() - position) - mouse_offset func has_postit_attached() -> bool: - var all_children = get_children() - for child in all_children: - if child is PostIt: - return true - return false + return postit_anchor.get_child(-1) is PostIt func check_hover(): if is_mouse_entered: diff --git a/src/logic-scenes/board/post-it.gd b/src/logic-scenes/board/post-it.gd index 4df1b0f4..c170e2f2 100644 --- a/src/logic-scenes/board/post-it.gd +++ b/src/logic-scenes/board/post-it.gd @@ -116,9 +116,8 @@ func _move_post_it(): position += (get_viewport().get_mouse_position() - position) - mouse_offset func is_postit_attached() -> bool: - if self.get_parent() is Card: - return true - return false + # there is probably a nicer way to do this + return self.get_parent().get_parent() is Card func tween_transform_to(target: Vector2): var transform_tween = create_tween() From 5d2f24c32a34348798ba2362ea6c9e0c2a969c5a Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Sat, 12 Aug 2023 13:02:00 +0200 Subject: [PATCH 5/5] added right click to return post it panels --- src/logic-scenes/board/card-board.gd | 19 +++++++++---------- src/logic-scenes/board/post-it.gd | 2 +- src/project.godot | 11 ++++++++--- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index 466490ed..52c1fca0 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -130,6 +130,7 @@ func is_in_dropzone(to_check: Node) -> bool: # called if a mouse button is pressed func handle_mouse_button(to_handle: Area2D, input: InputEvent): + # No two areas can be dragged at the same time. # Make sure that only the same area is dragged. # Otherwise overlapping areas are dragged at the same time. @@ -141,11 +142,8 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent): to_handle.is_dragged = input.pressed is_area_dragged = input.pressed - # TODO: We need a better way to recognize whether "to_handle" is a Card or a Post-It. - # (Tried checking for a script, didn't work, because script has no name attached. - # Alternative might be to check for specific values within the script ("is_card" f.e)) + # Check what is being dragged if to_handle is Card: - active_context = ui_context.DROPZONE if input.is_pressed(): reorder_areas("dropzone_content") @@ -154,13 +152,17 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent): dropzone.move_child(currently_dragged_area, -1) currently_dragged_area = null elif to_handle is PostIt: - if input.is_pressed(): + if input.is_action_pressed("mouse_left"): to_handle.reparent(dropzone) to_handle.on_board = true to_handle.set_owner(self) # needs to be here otherwise the owner disappears area_dict["post_its_in_list"].erase(to_handle) area_dict["dropzone_content"].push_back(to_handle) - # TODO (if needed): Add function to rearrange the array based on positions in the dropzone + elif input.is_action_pressed("mouse_right"): + _return_postit_to_panels(to_handle) + to_handle.is_dragged = false + is_area_dragged = false + currently_dragged_area = null else: if is_in_dropzone(to_handle): if to_handle.has_overlapping_areas(): @@ -284,8 +286,6 @@ func _input(event): else: _enter_assignment_context() - # TODO: I forgor the HECKING RIGHT-CLICK!!!!111 AAAAAAAAAAAAAAAAAAAA - # do some adjustments to loop elements (after last element, select first one etc.) if selected_dropzone_element < 0: selected_dropzone_element = area_dict["dropzone_content"].size()-1 @@ -358,15 +358,14 @@ func _leave_assignment_context(): # handles everything to return a post it to the panels func _return_postit_to_panels(post_it: Area2D): for panel in area_dict["post_it_panels"]: - print(area_dict["post_it_panels"]) if panel.get_child_count() == 1: area_dict["dropzone_content"].erase(post_it) post_it.on_board = false area_dict["post_its_in_list"].push_back(post_it) - #post_it.tween_transform_to(panel.get_child(0).position) post_it.reparent(panel) post_it.transform = panel.get_child(0).transform post_it.set_owner(self) + #post_it.position = Vector2(0,0) reorder_areas("dropzone_content") reorder_areas("post_its_in_list") break diff --git a/src/logic-scenes/board/post-it.gd b/src/logic-scenes/board/post-it.gd index c170e2f2..d28d648d 100644 --- a/src/logic-scenes/board/post-it.gd +++ b/src/logic-scenes/board/post-it.gd @@ -106,7 +106,7 @@ func _on_input_event(viewport, event, shape_idx): _move_post_it() if event is InputEventMouseButton: - if event.button_index == MOUSE_BUTTON_LEFT: + if event.button_index == MOUSE_BUTTON_LEFT or event.button_index == MOUSE_BUTTON_RIGHT: if "handle_mouse_button" in owner: mouse_offset = (get_viewport().get_mouse_position() - global_position) owner.handle_mouse_button(self, event) diff --git a/src/project.godot b/src/project.godot index ace50e8f..9bd18f6e 100644 --- a/src/project.godot +++ b/src/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="Frame of Mind" run/main_scene="res://main.tscn" -config/features=PackedStringArray("4.1", "Forward Plus") +config/features=PackedStringArray("4.0", "Forward Plus") run/max_fps=60 boot_splash/bg_color=Color(0.0313726, 0.0117647, 0.129412, 1) boot_splash/image="res://splash.png" @@ -31,7 +31,7 @@ gdscript/warnings/native_method_override=0 [display] window/size/viewport_width=1440 -window/size/viewport_height=1080 +window/size/viewport_height=960 window/stretch/mode="canvas_items" window/stretch/aspect="expand" mouse_cursor/custom_image="res://import/interface-elements/cursor.png" @@ -80,7 +80,12 @@ player_backwards={ } mouse_left={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +] +} +mouse_right={ +"deadzone": 0.5, +"events": [null, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null) ] } look_right={