2017-12-25 23:49:48 +00:00
# ifndef INVENTORY_HPP_INCLUDED
# define INVENTORY_HPP_INCLUDED
# include "../../../Core/Types/Box.hpp"
# include "../../../Core/Types/Convex.hpp"
# include <vector>
# include <cstdint>
# include <string>
/** @addtogroup GameTabs
* @ { */
class Inventory
{
public :
static bool IsOpen ( ) ;
static bool Open ( ) ;
static std : : vector < std : : int32_t > GetItemIDs ( ) ;
static std : : vector < std : : string > GetItemNames ( ) ;
static std : : vector < std : : int32_t > GetItemAmounts ( ) ;
static bool IsEmpty ( ) ;
static bool IsFull ( ) ;
static bool IsItemSelected ( ) ;
static bool IsItemSelected ( std : : int32_t ID ) ;
static bool IsItemSelected ( const std : : string & Name ) ;
static std : : string GetItemSelectedName ( ) ;
static std : : int32_t Count ( std : : int32_t ID ) ;
static std : : int32_t Count ( const std : : string & Name ) ;
static std : : int32_t Count ( const std : : vector < std : : int32_t > & IDs ) ;
static std : : int32_t Count ( const std : : vector < std : : string > & Names ) ;
static std : : int32_t CountOccupied ( ) ;
static std : : int32_t CountEmpty ( ) ;
static std : : int32_t GetIndexOf ( std : : int32_t ID ) ;
static std : : int32_t GetIndexOf ( const std : : string & Name ) ;
static std : : int32_t GetIndexOf ( const std : : vector < std : : int32_t > & IDs ) ; // Returns first found ID index
static std : : int32_t GetIndexOf ( const std : : vector < std : : string > & Names ) ; // Returns first found Name Index
static std : : vector < std : : int32_t > GetIndicesOf ( std : : int32_t ID ) ;
static std : : vector < std : : int32_t > GetIndicesOf ( const std : : string & Name ) ;
2018-05-10 01:08:38 +00:00
static Convex GetConvexByIndex ( std : : int32_t Index ) ;
static Convex GetConvexOf ( std : : int32_t ID ) ;
static Convex GetConvexOf ( const std : : string & Name ) ;
static Convex GetConvexOf ( const std : : vector < std : : int32_t > & IDs ) ; // Returns first found ID Convex
static Convex GetConvexOf ( const std : : vector < std : : string > & Names ) ; // Returns first found Name Convex
2017-12-25 23:49:48 +00:00
2018-05-10 01:08:38 +00:00
static Box GetBoxByIndex ( std : : int32_t Index ) ;
2017-12-25 23:49:48 +00:00
static Box GetBoxOf ( std : : int32_t ID ) ;
static Box GetBoxOf ( const std : : string & Name ) ;
static Box GetBoxOf ( const std : : vector < std : : int32_t > & IDs ) ; // Returns first found ID box
static Box GetBoxOf ( const std : : vector < std : : string > & Names ) ; // Returns first found Name box
static std : : vector < Box > GetSlotBoxes ( ) ;
static std : : vector < Box > GetBoxesOf ( std : : int32_t ID ) ;
static std : : vector < Box > GetBoxesOf ( const std : : string & Name ) ;
static bool Contains ( std : : int32_t ID ) ;
static bool Contains ( const std : : string & Name ) ;
2018-01-18 02:45:28 +00:00
static bool Contains ( const std : : vector < std : : int32_t > & IDs ) ; // true if all items are found at least once
static bool Contains ( const std : : vector < std : : string > & Names ) ; // true if all items are found at least once
2017-12-25 23:49:48 +00:00
static bool ContainsAny ( const std : : vector < std : : int32_t > & IDs ) ;
static bool ContainsAny ( const std : : vector < std : : string > & Names ) ;
static bool ContainsOnly ( std : : int32_t ID ) ;
static bool ContainsOnly ( const std : : string & Name ) ;
static bool ContainsOnly ( const std : : vector < std : : int32_t > & IDs ) ;
static bool ContainsOnly ( const std : : vector < std : : string > & Names ) ;
2018-05-10 01:08:38 +00:00
static bool InteractItemByIndex ( std : : int32_t Index , const std : : string & Option ) ;
2018-05-13 21:59:12 +00:00
static bool InteractItemByIndex ( std : : int32_t Index , const std : : vector < std : : string > & Options , bool RequireAllOptions = false ) ;
2018-05-10 01:08:38 +00:00
static bool InteractItem ( std : : int32_t ID , const std : : string & Option ) ;
static bool InteractItem ( const std : : string & Name , const std : : string & Option ) ;
2018-05-13 21:59:12 +00:00
static bool InteractItem ( const std : : vector < std : : int32_t > & IDs , const std : : vector < std : : string > & Options , bool RequireAllOptions = false ) ; //Interacts with first found ID
static bool InteractItem ( const std : : vector < std : : string > & Names , const std : : vector < std : : string > & Options , bool RequireAllOptions = false ) ; //Interacts with first found Name
2017-12-25 23:49:48 +00:00
static bool DropItemByIndex ( std : : int32_t Index , bool AllowShiftClick = true ) ;
static bool DropItem ( std : : int32_t ID , bool AllowShiftClick = true ) ;
static bool DropItem ( const std : : string & Name , bool AllowShiftClick = true ) ;
static bool UseItem ( std : : int32_t ID ) ;
static bool UseItem ( const std : : string & Name ) ;
2018-05-10 01:08:38 +00:00
static bool UseItemOn ( std : : int32_t FirstItemID , std : : int32_t SecondItemID ) ;
static bool UseItemOn ( const std : : string & FirstItemName , const std : : string & SecondItemName ) ;
2017-12-25 23:49:48 +00:00
} ;
/** @} */
# endif // INVENTORY_HPP_INCLUDED