2021-05-30 21:56:21 +02:00
|
|
|
#include "beatset.h"
|
|
|
|
|
|
|
|
#include <nlohmann/json_fwd.hpp>
|
|
|
|
|
|
|
|
using json = nlohmann::json;
|
|
|
|
|
|
|
|
namespace Beatsaber {
|
|
|
|
|
2021-06-01 11:47:41 +02:00
|
|
|
class BeatSetImpl : public BeatSet, protected std::enable_shared_from_this<BeatSetImpl> {
|
2021-05-30 21:56:21 +02:00
|
|
|
protected:
|
|
|
|
|
2021-06-01 11:47:41 +02:00
|
|
|
std::weak_ptr<BeatMap> parent;
|
2021-05-30 21:56:21 +02:00
|
|
|
BeatmapCharacteristic::BeatmapCharacteristic characteristic;
|
|
|
|
|
2021-06-01 11:47:41 +02:00
|
|
|
|
2021-05-30 21:56:21 +02:00
|
|
|
public:
|
2021-06-01 11:47:41 +02:00
|
|
|
BeatSetImpl(std::weak_ptr<BeatMap> p, const json& j);
|
2021-05-30 21:56:21 +02:00
|
|
|
BeatSetImpl(const BeatSetImpl& c) = default;
|
|
|
|
BeatSetImpl() = default;
|
|
|
|
virtual ~BeatSetImpl();
|
|
|
|
|
2021-06-01 11:47:41 +02:00
|
|
|
virtual BeatmapCharacteristic::BeatmapCharacteristic getCharacteristic() const override;
|
|
|
|
virtual std::shared_ptr<BeatMap> getBeatMap() const override;
|
2021-05-30 21:56:21 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|