osb/source/game/StarDanceDatabase.hpp

45 lines
709 B
C++
Raw Normal View History

#pragma once
2023-06-20 04:33:09 +00:00
#include "StarRoot.hpp"
#include "StarAssets.hpp"
namespace Star {
STAR_STRUCT(DanceStep);
STAR_STRUCT(Dance);
STAR_CLASS(DanceDatabase);
struct DanceStep {
Maybe<String> bodyFrame;
Maybe<String> frontArmFrame;
Maybe<String> backArmFrame;
Vec2F headOffset;
Vec2F frontArmOffset;
Vec2F backArmOffset;
float frontArmRotation;
float backArmRotation;
};
struct Dance {
String name;
List<String> states;
float cycle;
bool cyclic;
float duration;
List<DanceStep> steps;
};
class DanceDatabase {
public:
DanceDatabase();
DancePtr getDance(String const& name) const;
private:
static DancePtr readDance(String const& path);
StringMap<DancePtr> m_dances;
};
}