mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 10:33:39 +00:00
54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
#include "../Platform/stdafx.h"
|
|
#include "../Headers/net.minecraft.world.scores.h"
|
|
#include "../Headers/net.minecraft.world.scores.criteria.h"
|
|
#include "Score.h"
|
|
|
|
Score::Score(Scoreboard* scoreboard, Objective* objective,
|
|
const std::wstring& owner) {
|
|
this->scoreboard = scoreboard;
|
|
this->objective = objective;
|
|
this->owner = owner;
|
|
count = 0;
|
|
}
|
|
|
|
void Score::add(int count) {
|
|
// if (objective.getCriteria().isReadOnly()) throw new
|
|
// IllegalStateException("Cannot modify read-only score");
|
|
setScore(getScore() + count);
|
|
}
|
|
|
|
void Score::remove(int count) {
|
|
// if (objective.getCriteria().isReadOnly()) throw new
|
|
// IllegalStateException("Cannot modify read-only score");
|
|
setScore(getScore() - count);
|
|
}
|
|
|
|
void Score::increment() {
|
|
// if (objective.getCriteria().isReadOnly()) throw new
|
|
// IllegalStateException("Cannot modify read-only score");
|
|
add(1);
|
|
}
|
|
|
|
void Score::decrement() {
|
|
// if (objective.getCriteria().isReadOnly()) throw new
|
|
// IllegalStateException("Cannot modify read-only score");
|
|
remove(1);
|
|
}
|
|
|
|
int Score::getScore() { return count; }
|
|
|
|
void Score::setScore(int score) {
|
|
int old = count;
|
|
count = score;
|
|
if (old != score) getScoreboard()->onScoreChanged(this);
|
|
}
|
|
|
|
Objective* Score::getObjective() { return objective; }
|
|
|
|
std::wstring Score::getOwner() { return owner; }
|
|
|
|
Scoreboard* Score::getScoreboard() { return scoreboard; }
|
|
|
|
void Score::updateFor(std::vector<std::shared_ptr<Player> >* players) {
|
|
setScore(objective->getCriteria()->getScoreModifier(players));
|
|
} |