osb/source/game/interfaces/StarInteractiveEntity.hpp

32 lines
750 B
C++
Raw Permalink Normal View History

#pragma once
2023-06-20 04:33:09 +00:00
#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;
};
}