libBeatsaber/include/beatsaber-impl/beatlevelimpl.h

41 lines
970 B
C++

#pragma once
#include "beatlevel.h"
#include <nlohmann/json_fwd.hpp>
using json = nlohmann::json;
namespace Beatsaber {
class BeatLevelImpl : public BeatLevel, protected std::enable_shared_from_this<BeatLevelImpl> {
protected:
std::weak_ptr<BeatSet> parent;
Difficulty::Difficulty dif;
int32_t diffRank;
std::string filename;
double njs;
double nso;
const json& base;
public:
BeatLevelImpl(std::weak_ptr<BeatSet> p, const json& j);
virtual ~BeatLevelImpl();
virtual Difficulty::Difficulty getDifficulty() const override;
virtual int32_t getDifficultyRank() const override;
virtual std::string getFilename() const override;
virtual double getNoteJumpSpeed() const override; // in m
virtual double getNoteStartOffset() const override;
virtual std::string getCustomData() const override;
//TODO: get level content
virtual std::shared_ptr<BeatSet> getBeatSet() const override;
virtual std::shared_ptr<BeatMap> getBeatMap() const override;
};
}