Conveyor face to face

This commit is contained in:
Rendo 2025-10-14 23:59:55 +05:00
commit 6a7d3d0e45

View file

@ -46,19 +46,26 @@ func add(stack: Stack) -> Stack:
return internal_array[0].merge_stack(stack) return internal_array[0].merge_stack(stack)
func add_from_side(stack : Stack, ang_diff : float) -> Stack: func add_from_side(stack : Stack, ang_diff : float) -> Stack:
if abs(ang_diff) >= PI/4: if is_equal_approx(abs(ang_diff),PI/2):
if internal_array[capacity/2].amount != 0: if internal_array[capacity/2].amount != 0:
return null return null
stack_added.emit(stack,capacity/2) stack_added.emit(stack,capacity/2)
return internal_array[capacity/2].merge_stack(stack) return internal_array[capacity/2].merge_stack(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)
return add(stack) return add(stack)
func can_add() -> bool: func can_add() -> bool:
return internal_array[0].amount == 0 return internal_array[0].amount == 0
func can_add_from_side(ang_diff : float) -> bool: func can_add_from_side(ang_diff : float) -> bool:
if abs(ang_diff) >= PI/4: if is_equal_approx(abs(ang_diff),PI/2):
return internal_array[capacity/2].amount == 0 return internal_array[capacity/2].amount == 0
elif is_equal_approx(abs(ang_diff),PI):
return internal_array[capacity-1].amount == 0
return can_add() return can_add()
## Tries to take first item. Returns null if no items in inventory ## Tries to take first item. Returns null if no items in inventory