INNER CODE UNIT · Python
try_loading
ikatsov/tensor-house · supply-chain/world_of_supply/world_of_supply_environment.py:105
def try_loading(self, quantity):
if self.source.storage.try_take_units({ self.product_id: quantity }):
self.payload = quantity
def try_unloading(self):
unloaded = self.destination.storage.try_add_units({ self.product_id: self.payload }, all_or_nothing = False)
if len(unloaded) > 0:
unloaded_units = sum(unloaded.values())
self.destination.consumer.on_order_reception(self.source.id, self.product_id, unloaded_units)
self.payload = 0 # all units that were not sucessfully unloaded will be lost
def act(self, control):
if self.step > 0:
if self.location_pointer == 0 and self.payload == 0:
self.try_loading(self.requested_quantity)
if self.payload > 0: # will stay at the source until loaded
if self.location_pointer < len(self.path) - 1: