From 45b1fe3f14ef3ea02369441976b7af14b60c1eed Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Sat, 15 Jul 2023 14:09:41 +0200 Subject: [PATCH] fix: sorting was not applied + context was not switched correctly --- src/logic-scenes/board/card-board.gd | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index cc306bc..4ce7de7 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -2,7 +2,8 @@ extends PanelContainer var area_dict = { "dropzone_content": [], - "post_its_in_list": [] + "post_its_in_list": [], + "post_it_panels": [] } enum ui_context {DROPZONE, POST_IT_LIST, ASSIGN_POST_IT} @@ -15,7 +16,6 @@ var has_stage = false: has_stage = false self.mouse_filter = Control.MOUSE_FILTER_IGNORE if is_node_ready(): - #fixme: thie should be replaced by a reference that holds all children ... for child in area_dict["dropzone_content"]+area_dict["post_its_in_list"]: if focus: child.process_mode = Node.PROCESS_MODE_INHERIT @@ -40,7 +40,7 @@ var selected_card_for_assignment # Called when the node enters the scene tree for the first time. func _ready(): - var test_arr = ["c_Joy","p_effort","c_backlash","c_body","c_hit","p_slut","p_worried_mother","p_cross_friend"] + #var test_arr = ["c_Joy","p_effort","c_backlash","c_body","c_hit","p_slut","p_worried_mother","p_cross_friend"] #var test_arr = ["c_Joy","c_body","c_hit"] #populate_board(test_arr) @@ -57,6 +57,8 @@ func _process(delta): currently_dragged_area.is_dragged = false is_area_dragged = false currently_dragged_area = null + + # we should maybe consider moving this to _input() for consistency if Input.is_action_just_pressed("ui_cancel"): populate_board(["c_Joy","p_effort","c_backlash","c_body","c_hit","p_slut","p_worried_mother","p_cross_friend"]) @@ -114,6 +116,10 @@ func populate_board(card_names: Array): break currently_selected_node = area_dict["dropzone_content"][0] # set first Card as currently selected node by default + + reorder_areas("dropzone_content") + reorder_areas("post_its_in_list") + # Handy function to filter an array of areas by the name of a card func _find_area_by_string(area_arr: Array, name: String) -> Area2D: @@ -211,15 +217,17 @@ func handle_hover(to_handle: Area2D): func reorder_areas(reorder: String): var old_order = area_dict[reorder] var new_order = Array() - + for obj in old_order: var i = 0 if !new_order.is_empty(): for obj_2 in new_order: - if obj_2.position.y < obj.position.y: + if obj_2.global_position.y < obj.global_position.y: i += 1 new_order.insert(i, obj) - + + area_dict[reorder] = new_order + # Takes the inputs for control inputs func _input(event): @@ -246,12 +254,12 @@ func _input(event): elif event.is_action_pressed("ui_left"): # left to switch context to the left active_context -= 1 - if active_context < 0: + 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 active_context += 1 - if active_context > 2: + if active_context > 1: active_context = ui_context.DROPZONE elif event.is_action_pressed("ui_accept"): # select the selected post it