osb/source/game/interfaces/StarInteractiveEntity.hpp
2024-02-25 15:46:47 +01:00

32 lines
750 B
C++

#pragma once
#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;
};
}