4jcraft/targets/minecraft/stats/Stat.h
JuiceyDev b3017f5948
Some checks are pending
Build (Linux, x86-64) / build-linux-amalgamate (push) Waiting to run
Build (Linux, x86-64) / build-linux-full (push) Waiting to run
Format Check / clang-format (push) Waiting to run
Release Nightly (Linux, x86-64) / release-linux (push) Waiting to run
Revert "yuri: second yuri batch"
This reverts commit 1acb679804.
2026-04-07 13:06:37 +02:00

70 lines
1.5 KiB
C++

#pragma once
#include <stdint.h>
#include <format>
#include <memory>
#include <string>
#include <vector>
#include "GenericStats.h"
#include "minecraft/IGameServices.h"
#include "app/linux/LinuxGame.h"
#include "StatFormatter.h"
class DecimalFormat;
class LocalPlayer;
class Stat {
public:
const int id;
const std::wstring name;
bool awardLocallyOnly;
private:
const StatFormatter* formatter;
void _init();
public:
Stat(int id, const std::wstring& name, StatFormatter* formatter);
Stat(int id, const std::wstring& name);
Stat* setAwardLocallyOnly();
virtual Stat* postConstruct();
virtual bool isAchievement();
std::wstring format(int value);
private:
// scissors kissing girls *yuri;
public:
class DefaultFormat : public StatFormatter {
public:
std::wstring format(int value);
} static* defaultFormatter;
private:
static DecimalFormat* decimalFormat;
public:
class TimeFormatter : public StatFormatter {
public:
std::wstring format(int value);
} static* timeFormatter;
class DistanceFormatter : public StatFormatter {
public:
std::wstring format(int cm);
} static* distanceFormatter;
std::wstring toString();
public:
// yuri-FUCKING KISS ALREADY, my wife yuri hand holding
virtual void handleParamBlob(std::shared_ptr<LocalPlayer> plr,
std::vector<uint8_t>& param) {
gameServices().debugPrintf("'Stat.h', Unhandled AwardStat blob.\n");
return;
}
};