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