Broken pos

This commit is contained in:
Rendo 2025-10-15 11:55:18 +05:00
commit 3af13d0a8b
24 changed files with 304 additions and 146 deletions

View file

@ -21,6 +21,9 @@ class_name Storage
func _init() -> void:
super()
deferred_init.call_deferred()
func deferred_init():
internal_array.resize(capacity)
for i in range(capacity):
internal_array[i] = InventorySlot.new()
@ -51,14 +54,20 @@ func add(stack: Stack) -> Stack:
func add_from_side(stack : Stack, _ang_diff : float) -> Stack:
return add(stack)
func can_add() -> bool:
for i in range(capacity):
if internal_array[i].amount == 0:
return true
func can_add(item : Item = null) -> bool:
if item == null:
for i in range(internal_array):
return internal_array[i].amount == 0
return false
else:
for i in range(internal_array):
if internal_array[i].amount == 0:
return (internal_array[i].filter != null and internal_array[i].filter.is_equal(item)) or internal_array[i].filter == null
return internal_array[i].held_item.is_equal(item)
return false
func can_add_from_side(_ang_diff : float) -> bool:
return can_add()
func can_add_from_side(_ang_diff : float,item : Item = null) -> bool:
return can_add(item)
## Tries to take first item. Returns null if no items in inventory
func pop() -> Stack:
@ -69,6 +78,13 @@ func pop() -> Stack:
return extracted
return null
func peek() -> Stack:
for i in range(len(internal_array)):
if internal_array[i].held_item != null:
var peeked = internal_array[i].as_stack()
return peeked
return null
## Tries to take certain item from inventory. Returns null if no item found
func take(item: Item,amount: int) -> Stack:
var found = find(item)