NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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)