Stack rework

This commit is contained in:
Rendo 2025-10-15 17:56:18 +05:00
commit ea9c41054b
7 changed files with 60 additions and 39 deletions

View file

@ -43,19 +43,22 @@ func add(stack: Stack) -> Stack:
if internal_array[0].amount != 0:
return null
stack_added.emit(stack,0)
return internal_array[0].merge_stack(stack)
internal_array[0].merge_stack(stack)
return stack
func add_from_side(stack : Stack, ang_diff : float) -> Stack:
if is_equal_approx(abs(ang_diff),PI/2):
if internal_array[capacity/2].amount != 0:
return null
stack_added.emit(stack,capacity/2)
return internal_array[capacity/2].merge_stack(stack)
internal_array[capacity/2].merge_stack(stack)
return stack
elif is_equal_approx(abs(ang_diff), PI):
if internal_array[capacity-1].amount != 0:
return null
stack_added.emit(stack,capacity-1)
return internal_array[capacity-1].merge_stack(stack)
internal_array[capacity-1].merge_stack(stack)
return stack
return add(stack)
func can_add(_item : Item = null) -> bool:
@ -111,4 +114,7 @@ func sort() -> void:
if progress_array[i-1] >= 1.0 and internal_array[i].amount == 0:
progress_array[i-1] = 0
progress_array[i] = 0
internal_array[i].merge_stack(internal_array[i-1].extract())
var extracted_stack = internal_array[i-1].extract()
internal_array[i].merge_stack(extracted_stack)
if extracted_stack.is_valid():
internal_array[i-1].merge_stack(extracted_stack)