Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Добрый день. Пишу свой клиент. База: 1.16.5 mcp.
Хочу реализовать закругленный борд. Подскажите, пожалуйста, как такое реализовать? Не надо мне давать уже готовый код, моя задача — понять, как это реализовать, и самому реализовать.
Моя цель -
Что сейчас имеется -
Код:
Хочу реализовать закругленный борд. Подскажите, пожалуйста, как такое реализовать? Не надо мне давать уже готовый код, моя задача — понять, как это реализовать, и самому реализовать.
Моя цель -
Пожалуйста, авторизуйтесь для просмотра ссылки.
Что сейчас имеется -
Пожалуйста, авторизуйтесь для просмотра ссылки.
Код:
code:
private void func_238447_a_(MatrixStack matrixStack, ScoreObjective objective) {
final Scoreboard scoreboard = objective.getScoreboard();
List<Score> scores = scoreboard.getSortedScores(objective).stream()
.filter(score -> !score.getPlayerName().startsWith("#"))
.collect(Collectors.toList());
if (scores.size() > 15) scores = scores.subList(scores.size() - 15, scores.size());
final List<Pair<Score, ITextComponent>> scoreComponents = new ArrayList<>(scores.size());
final ITextComponent title = objective.getDisplayName();
final int titleWidth = this.getFontRenderer().getStringPropertyWidth(title);
int maxWidth = titleWidth;
final int colonSpaceWidth = this.getFontRenderer().getStringWidth(": ");
for (Score score : scores) {
final ScorePlayerTeam team = scoreboard.getPlayersTeam(score.getPlayerName());
final ITextComponent playerName = ScorePlayerTeam.func_237500_a_(team, new StringTextComponent(score.getPlayerName()));
scoreComponents.add(Pair.of(score, playerName));
final int scoreWidth = this.getFontRenderer().getStringPropertyWidth(playerName)
+ colonSpaceWidth
+ this.getFontRenderer().getStringWidth(Integer.toString(score.getScorePoints()));
maxWidth = Math.max(maxWidth, scoreWidth);
}
final int totalHeight = scores.size() * 10 + 12;
final int startY = this.scaledHeight / 2 + totalHeight / 3;
final int startX = this.scaledWidth - maxWidth - 10;
final int backgroundColor = this.mc.gameSettings.getTextBackgroundColor(1.5F);
final int titleBackgroundColor = this.mc.gameSettings.getTextBackgroundColor(1.5F);
for (int i = 0; i < scoreComponents.size(); i++) {
final Pair<Score, ITextComponent> pair = scoreComponents.get(i);
final ITextComponent component = pair.getSecond();
final int yPos = startY - (i + 1) * 9;
final int rightEdge = this.scaledWidth - 3 + 2;
fill(matrixStack, startX - 2, yPos, rightEdge, yPos + 9, backgroundColor);
this.getFontRenderer().func_243248_b(matrixStack, component, (float)startX, (float)yPos, -1);
if (i == scoreComponents.size() - 1) {
fill(matrixStack, startX - 2, yPos - 10, rightEdge, yPos, titleBackgroundColor);
final int titleX = startX + (maxWidth - titleWidth) / 2;
this.getFontRenderer().func_243248_b(matrixStack, title, (float)titleX, (float)(yPos - 9), -1);
}
}
}