Module SimEconomica.Inventory
Expand source code
from dataclasses import dataclass
#from Settings import NB_RESOURCES, INVENTORY_CAPACITY
from Settings import INVENTORY_CAPACITY
from Resources import RESOURCES
@dataclass
class InventorySlot(object):
Stock: int
Capacity: int
def GetFillRate(self) -> float:
return self.Stock / self.Capacity
@property
def FillRate(self) -> float:
return self.GetFillRate()
def __sub__(self, value: int) -> int:
return self.Stock - value
def __add__(self, value: int) -> int:
return self.Stock + value
def Add(self, value: int):
self.Stock = self + value
def Sub(self, value: int):
self.Stock = self - value
def GetCapacity(self) -> int:
return self.Capacity
def GetStock(self) -> int:
return self.Stock
def GetFreeSpace(self) -> int:
return self.Capacity - self.Stock
class Inventory(object):
def __init__(self):
self.mSlots = [InventorySlot(0, INVENTORY_CAPACITY) for _ in range(len(RESOURCES))]
def __getitem__(self, key: int) -> InventorySlot:
return self.mSlots[key]
def GetStock(self, key: int) -> int:
return self.mSlots[key].Stock
def GetCapacity(self, key: int) -> int:
return self.mSlots[key].Capacity
def GetFillRate(self, key: int) -> float:
return self.mSlots[key].FillRate
def GetFreeSpace(self, key: int) -> int:
return self.mSlots[key].GetFreeSpace()
Classes
class Inventory
-
Expand source code
class Inventory(object): def __init__(self): self.mSlots = [InventorySlot(0, INVENTORY_CAPACITY) for _ in range(len(RESOURCES))] def __getitem__(self, key: int) -> InventorySlot: return self.mSlots[key] def GetStock(self, key: int) -> int: return self.mSlots[key].Stock def GetCapacity(self, key: int) -> int: return self.mSlots[key].Capacity def GetFillRate(self, key: int) -> float: return self.mSlots[key].FillRate def GetFreeSpace(self, key: int) -> int: return self.mSlots[key].GetFreeSpace()
Methods
def GetCapacity(self, key: int) ‑> int
-
Expand source code
def GetCapacity(self, key: int) -> int: return self.mSlots[key].Capacity
def GetFillRate(self, key: int) ‑> float
-
Expand source code
def GetFillRate(self, key: int) -> float: return self.mSlots[key].FillRate
def GetFreeSpace(self, key: int) ‑> int
-
Expand source code
def GetFreeSpace(self, key: int) -> int: return self.mSlots[key].GetFreeSpace()
def GetStock(self, key: int) ‑> int
-
Expand source code
def GetStock(self, key: int) -> int: return self.mSlots[key].Stock
class InventorySlot (Stock: int, Capacity: int)
-
InventorySlot(Stock: int, Capacity: int)
Expand source code
@dataclass class InventorySlot(object): Stock: int Capacity: int def GetFillRate(self) -> float: return self.Stock / self.Capacity @property def FillRate(self) -> float: return self.GetFillRate() def __sub__(self, value: int) -> int: return self.Stock - value def __add__(self, value: int) -> int: return self.Stock + value def Add(self, value: int): self.Stock = self + value def Sub(self, value: int): self.Stock = self - value def GetCapacity(self) -> int: return self.Capacity def GetStock(self) -> int: return self.Stock def GetFreeSpace(self) -> int: return self.Capacity - self.Stock
Class variables
var Capacity : int
var Stock : int
Instance variables
var FillRate : float
-
Expand source code
@property def FillRate(self) -> float: return self.GetFillRate()
Methods
def Add(self, value: int)
-
Expand source code
def Add(self, value: int): self.Stock = self + value
def GetCapacity(self) ‑> int
-
Expand source code
def GetCapacity(self) -> int: return self.Capacity
def GetFillRate(self) ‑> float
-
Expand source code
def GetFillRate(self) -> float: return self.Stock / self.Capacity
def GetFreeSpace(self) ‑> int
-
Expand source code
def GetFreeSpace(self) -> int: return self.Capacity - self.Stock
def GetStock(self) ‑> int
-
Expand source code
def GetStock(self) -> int: return self.Stock
def Sub(self, value: int)
-
Expand source code
def Sub(self, value: int): self.Stock = self - value