osb/source/game/interfaces/StarInteractiveEntity.hpp
2023-06-20 14:33:09 +10:00

35 lines
817 B
C++

#ifndef STAR_INTERACTIVE_ENTITY_HPP
#define STAR_INTERACTIVE_ENTITY_HPP
#include "StarInteractionTypes.hpp"
#include "StarEntity.hpp"
#include "StarQuestDescriptor.hpp"
namespace Star {
STAR_CLASS(InteractiveEntity);
class InteractiveEntity : public virtual Entity {
public:
// Interaction always takes place on the *server*, whether the interactive
// entity is master or slave there.
virtual InteractAction interact(InteractRequest const& request) = 0;
// Defaults to metaBoundBox
virtual RectF interactiveBoundBox() const;
// Defaults to true
virtual bool isInteractive() const;
// Defaults to empty
virtual List<QuestArcDescriptor> offeredQuests() const;
virtual StringSet turnInQuests() const;
// Defaults to position()
virtual Vec2F questIndicatorPosition() const;
};
}
#endif