inventory.py (2276B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\utility\inventory.py 2 import logging 3 from inventorycommon import FakeItemNotHere 4 from inventorycommon.const import flagCargo 5 logger = logging.getLogger(__name__) 6 7 def get_inventory_item(task, item_id): 8 try: 9 return get_inventory2(task).GetItem(item_id) 10 except (RuntimeError, FakeItemNotHere): 11 return None 12 13 14 def get_inventory2(task): 15 return task.context.ballpark.inventory2 16 17 18 def get_inventory_mgr(task): 19 return task.context.ballpark.inventoryMgr 20 21 22 def get_type_id_by_item_id(task, item_id): 23 item = get_inventory_item(task, item_id) 24 if item: 25 return item.typeID 26 else: 27 return None 28 29 30 def get_cargo_capacity(task, item_id): 31 return get_cargo_inventory(item_id, task).GetCapacity() 32 33 34 def get_cargo_inventory(item_id, task): 35 return get_inventory_mgr(task).GetInventoryFromIdEx(item_id, -1) 36 37 38 def is_my_cargo_full(task): 39 cargo_capacity = get_cargo_capacity(task, task.context.myItemId) 40 return cargo_capacity.used + 1e-07 >= cargo_capacity.capacity 41 42 43 def is_my_cargo_empty(task): 44 cargo_capacity = get_cargo_capacity(task, task.context.myItemId) 45 return cargo_capacity.used == 0 46 47 48 def get_cargo_used_fraction(task, item_id): 49 cargo_capacity = get_cargo_capacity(task, item_id) 50 return cargo_capacity.used / cargo_capacity.capacity 51 52 53 def get_cargo_used(task, item_id): 54 cargo_capacity = get_cargo_capacity(task, item_id) 55 return cargo_capacity.used 56 57 58 def get_cargo_capacity_max(task, item_id): 59 cargo_capacity = get_cargo_capacity(task, item_id) 60 return cargo_capacity.capacity 61 62 63 def remove_all_items(task, item_id): 64 inventory2 = get_inventory2(task) 65 inventory_mgr = get_inventory_mgr(task) 66 logger.debug('removing all items from item %s', item_id) 67 for item in inventory2.SelectItems(item_id): 68 inventory_mgr.DestroyItem(item.itemID) 69 logger.debug('removing item %s', item) 70 71 72 def add_type_to_cargo(task, item_id, typeid, amount): 73 inventory_mgr = get_inventory_mgr(task) 74 inventory_mgr.ManufactureItemRaw(typeid=typeid, portions=amount, locationid=item_id, flag=flagCargo) 75 logger.debug('Adding type %s in quantity %s to item %s', typeid, amount, item_id)