fix: sorting was not applied + context was not switched correctly

This commit is contained in:
Adrian Schmid 2023-07-15 14:09:41 +02:00
parent 44a5d653fb
commit 45b1fe3f14
1 changed files with 16 additions and 8 deletions

View File

@ -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