AniGardenMapController.h 2.07 KB
//
//  AniGardenMapController.h
//  SteveMaggieCpp
//
//  Created by Katarzyna Kalinowska-Górska on 17.05.2017.
//
//

#ifndef AniGardenMapController_h
#define AniGardenMapController_h

#include "AniBasicMapController.h"
#include "MapAdventureObjectPickupItem.h"


class AniGardenMapController : public AniBasicMapController {
    
public:
    AniGardenMapController(cocos2d::TMXTiledMap* p_map, IMapAdventureObjectMapper* p_adventureObjectMapper) : AniBasicMapController(p_map, p_adventureObjectMapper){};
    
    void shuffleConcretePickupMapAdventureObjects(const std::vector<MapAdventureObjectPickupItem*> objects); //just switch their places randomly
    void shuffleAllPickupMapAdventureObjects(const std::vector<std::string> excludedObjects = {}); //just switch their places randomly
    void distributeConcretePickupMapAdventureObjectsRandomly(const std::vector<MapAdventureObjectPickupItem*> objects); // distribute them randomly on the map
    void distributeAllPickupMapAdventureObjectsRandomly(const std::vector<std::string> excludedObjects = {}); // distribute them randomly on the map
    std::vector<MapAdventureObjectPickupItem*> generatePickupObjectsRandomly(int count, std::string baseName, std::string spriteFilePath, bool oneTileObjects);
//    void removePickupObjects(std::vector<std::string> objectNames);
    void deactivateAllObjects(const std::vector<std::string> excludedObjects = {});
    void activateAllObjects(const std::vector<std::string> excludedObjects = {});
    void activateConcreteObjects(const std::vector<MapAdventureObjectPickupItem*> objects);
    void showAllObjects(const std::vector<std::string> excludedObjects = {});
    void showConcreteObjects(const std::vector<MapAdventureObjectPickupItem*> objects);
    void hideAllObjects(const std::vector<std::string> excludedObjects = {});
    void hideObject(MapAdventureObjectPickupItem* object);
    void showObject(MapAdventureObjectPickupItem* object);
    
protected:
    std::vector<MapAdventureObjectPickupItem*> getAllPickupItems(const std::vector<std::string> except = {});
};

#endif /* AniGardenMapController_h */