Class InteractablesContainer

class InteractablesContainer : public BaseContainer<std::unique_ptr<Interactable>>

Container of Interactables that is to be used by a Room

Public Functions

InteractablesContainer()

Empty constructor

Interactable *add(IVector pos, const std::string &type)

Add a new Interactable with tile position and type

void addBin(InteractableInRoomBin bin)

Add a new Interactable using a bin structure

void addBinFromTypename(Vector2 pos, const std::string &type)

Add a new Interactable using a Vector2 tile position and an interactable type in the GameBin

Interactable *getInt(IVector pos)

Get an Interactable by its tile position

void setInteractableType(IVector pos, const std::string &type)

Change the Interactable’s type at the specified tile position

std::vector<Interactable*> getList()

Get the vector that contains all Interactables

void addBinVector(const std::vector<InteractableInRoomBin> &bin)

Add interactables from binary structures.

void addJsonData(json roomJson)

Add interactables from a Room json object. Must contain ‘interactables’ and ‘interactables_props’ keys.