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

38 lines
970 B
C++

#pragma once
#include "StarObject.hpp"
#include "StarLoungingEntities.hpp"
namespace Star {
class LoungeableObject : public Object, public virtual LoungeableEntity {
public:
LoungeableObject(ObjectConfigConstPtr config, Json const& parameters = Json());
void render(RenderCallback* renderCallback) override;
InteractAction interact(InteractRequest const& request) override;
size_t anchorCount() const override;
LoungeAnchorConstPtr loungeAnchor(size_t positionIndex) const override;
protected:
void setOrientationIndex(size_t orientationIndex) override;
private:
List<Vec2F> m_sitPositions;
bool m_sitFlipDirection;
LoungeOrientation m_sitOrientation;
float m_sitAngle;
String m_sitCoverImage;
bool m_flipImages;
List<PersistentStatusEffect> m_sitStatusEffects;
StringSet m_sitEffectEmitters;
Maybe<String> m_sitEmote;
Maybe<String> m_sitDance;
JsonObject m_sitArmorCosmeticOverrides;
Maybe<String> m_sitCursorOverride;
};
}