def __init__(
      self,
      function: Callable[
          [PreEventFnArgsT, inventory_gm_component.InventoryType],
          inventory_gm_component.InventoryType,
      ],
      inventory: inventory_gm_component.Inventory,
      memory: associative_memory.AssociativeMemory,
      players: PlayersT,
      clock_now: Callable[[], datetime.datetime],
      name: str = '   \n',
      verbose: bool = False,
  ):
    """Initialize a component to track how events change inventories.

    Args:
      function: user-provided function that can modify the inventory based on an
        action attempt.
      inventory: the inventory component to use to get the inventory of players.
      memory: an associative memory
      players: sequence of players who can trigger an inventory event.
      clock_now: Function to call to get current time.
      name: the name of this component e.g. Possessions, Account, Property, etc
      verbose: whether to print the full update chain of thought or not
    """
    self._verbose = verbose

    self._memory = memory
    self._name = name
    self._clock_now = clock_now

    self._function = function
    self._inventory = inventory
    self._players = players

    self._current_scene = current_scene.CurrentScene(
        name='current scene type',
        memory=self._memory,
        clock_now=self._clock_now,
        verbose=self._verbose,
    )

    self._latest_update_log = None
Initialize a component to track how events change inventories.

    Args:
      function: user-provided function that can modify the inventory based on an
        action attempt.
      inventory: the inventory component to use to get the inventory of players.
      memory: an associative memory
      players: sequence of players who can trigger an inventory event.
      clock_now: Function to call to get current time.
      name: the name of this component e.g. Possessions, Account, Property, etc
      verbose: whether to print the full update chain of thought or not
    
concordia/components/game_master/deprecated/triggered_inventory_effect.py