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

@ -20,17 +20,11 @@ func _init() -> void:
resize.call_deferred()
func add(stack : Stack) -> Stack:
var found_index : int = find_input(stack.held_item)
if found_index != -1:
stack_added.emit(stack,found_index)
stack = input_array[found_index].merge_stack(stack)
if stack == null:
return null
for i in range(input_capacity):
if input_array[i].can_be_merged(stack.held_item):
stack_added.emit(stack,i)
stack = input_array[i].merge_stack(stack)
if stack == null:
input_array[i].merge_stack(stack)
if stack.is_valid() == false:
return null
return stack
@ -39,15 +33,12 @@ func add_from_side(stack : Stack, _ang_diff : float) -> Stack:
func can_add(item : Item = null) -> bool:
if item == null:
for i in range(input_capacity):
return input_array[i].amount == 0
return false
else:
for i in range(input_capacity):
if input_array[i].can_be_merged(item):
return true
#return true
return false
return false
func can_add_from_side(_ang_diff : float,item: Item = null) -> bool:
return can_add(item)
@ -68,6 +59,8 @@ func peek() -> Stack:
## Tries to take certain item from inventory. Returns null if no item found
func take(item: Item,amount: int) -> Stack:
if item != output_slot.filter:
return null
var extracted = output_slot.extract_stack(amount)
return extracted