Indexed Object Provider
An object provider interface is used to acquire the objs that exist in different inventories. These objs are bit-packed into a long, which gets further placed into a long array. This is all in order to avoid garbage creation with inventories, as this can be a considerable hot-spot for that.