1
0

improve transferring items between left and right

This commit is contained in:
Rokas Puzonas 2022-08-28 20:59:57 +00:00
parent fb214842b8
commit 56a6fb85bf

View File

@ -321,6 +321,7 @@ end
function main_view:on_key(key) function main_view:on_key(key)
local left_selected = self.left_store.filtered_names[self.left_store.selected_idx] local left_selected = self.left_store.filtered_names[self.left_store.selected_idx]
local right_selected = self.right_store.filtered_names[self.right_store.selected_idx] local right_selected = self.right_store.filtered_names[self.right_store.selected_idx]
local selected_item = self.is_left_active and left_selected or right_selected
if key == keys.rightCtrl or key == keys.leftCtrl then if key == keys.rightCtrl or key == keys.leftCtrl then
self.ctrl_down = true self.ctrl_down = true
@ -357,26 +358,27 @@ function main_view:on_key(key)
self:deposit_items() self:deposit_items()
end end
if self.is_left_active then if selected_item and (key == keys.l or key == keys.h) then
if key == keys.l and left_selected then local item = selected_item
local item = left_selected local stack_size = self.item_details[item].stack_size
local stack_size = self.item_details[item].stack_size local right_items = self.right_store.all_items
local transferred = math.min(self.left_store.all_items[item], stack_size) local left_items = self.left_store.all_items
self.left_store.all_items[item] = self.left_store.all_items[item] - transferred
self.right_store.all_items[item] = (self.right_store.all_items[item] or 0) + transferred if key == keys.l then
self:refresh_filtered_names(self.left_store, self.left_area) local transferred = math.min(left_items[item], stack_size)
self:refresh_filtered_names(self.right_store, self.right_area) left_items[item] = left_items[item] - transferred
self:select_item(self.left_store, self.left_area, item) right_items[item] = (right_items[item] or 0) + transferred
elseif key == keys.h then
local transferred = math.min(right_items[item] or 0, stack_size)
left_items[item] = left_items[item] + transferred
right_items[item] = (right_items[item] or 0) - transferred
end end
else
if key == keys.h and right_selected then self:refresh_filtered_names(self.left_store, self.left_area)
local item = right_selected self:refresh_filtered_names(self.right_store, self.right_area)
local stack_size = self.item_details[item].stack_size if self.is_left_active then
local transferred = math.min(self.right_store.all_items[item], stack_size) self:select_item(self.left_store, self.left_area, item)
self.left_store.all_items[item] = self.left_store.all_items[item] + transferred else
self.right_store.all_items[item] = self.right_store.all_items[item] - transferred
self:refresh_filtered_names(self.left_store, self.left_area)
self:refresh_filtered_names(self.right_store, self.right_area)
self:select_item(self.right_store, self.right_area, item) self:select_item(self.right_store, self.right_area, item)
end end
end end