MapAdventureObjectPickupItem.h
1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//
//  MapAdventureObjectSlide.h
//  WattsenglishFoodApp
//
//  Created by Katarzyna Kalinowska-Górska on 21/03/2020.
//
#ifndef MapAdventureObjectPickupItem_h
#define MapAdventureObjectPickupItem_h
#include "IMapAdventureObject.h"
#include "AniMapUtils.h"
#include "AniJSONParseUtilsMap.h"
static IMapAdventureObjectEventType IMapAdventureObjectEventTypeItemPickedUp = "IMapAdventureObjectEventTypeItemPickedUp";
class MapAdventureObjectPickupItem : public IMapAdventureObject {
    
public:
    constexpr static char* const ClassName {const_cast<char* const>("MapAdventureObjectPickupItem")};
    
    // init
    MapAdventureObjectPickupItem(const rapidjson::Value& p_mapObjectData, IMapImageObject* p_mapImageObject, bool p_oneTile = false);
    MapAdventureObjectPickupItem(std::string objectName, IMapImageObject* p_mapImageObject, bool p_oneTile = false);
    
    // virtuals
    virtual std::vector<AniMapUtils::TileData> getOccupiedTiles() const  override;
    virtual std::vector<AniMapUtils::TileData> getOccupiedTilesRestrictedByIntersectionPercent(float percent) const;
    virtual std::vector<AniMapUtils::TileData> getEntryTiles() const  override;
    
    virtual void pickUp();
    virtual void reset() override;
    
    virtual void resetOccupiedTileIfNecessary();
    
protected:
    bool m_oneTile { false};
    // only use if single predefined tile
    AniMapUtils::TileData m_occupiedTile {-1,-1};
//    std::vector<MapUtils::TileData> m_occupiedTiles;
};
#endif /* MapAdventureObjectPickupItem_h */
