-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
notification:
import com.mojang.blaze3d.matrix.MatrixStack;
import lombok.Getter;
import lombok.Setter;
import java.util.concurrent.CopyOnWriteArrayList;
public class NotificationManager {
private final CopyOnWriteArrayList<Notification> notifications = new CopyOnWriteArrayList<>();
public void add(String text, String content, int time) {
notifications.add(new Notification(text, content, time));
}
public void draw(MatrixStack stack) {
int yOffset = 0;
for (Notification notification : notifications) {
long currentTime = System.currentTimeMillis();
if (currentTime - notification.getTime() < notification.time2 * 800L) {
notification.yAnimation.setDirection(Direction.FORWARDS);
} else {
notification.yAnimation.setDirection(Direction.BACKWARDS);
}
if (notification.yAnimation.finished(Direction.BACKWARDS)) {
notifications.remove(notification);
continue;
}
float screenWidth = mc.getMainWindow().getScaledWidth();
float screenHeight = mc.getMainWindow().getScaledHeight();
float notificationWidth = Fonts.msSemiBold[12].getWidth(notification.getText()) + 100;
float targetY = screenHeight - 60.0F - yOffset;
float animatedY = AnimationMath.fast(notification.getY(), targetY, 25);
float x = (screenWidth - notificationWidth) / 2.0F;
notification.setX(x);
notification.setY(animatedY);
yOffset += 25;
notification.draw(stack);
}
}
private class Notification {
[USER=270918]@Getter[/USER]
[USER=1132491]@setter[/USER]
private float x, y = mc.getMainWindow().getScaledHeight() + 5;
[USER=270918]@Getter[/USER]
private String text;
[USER=270918]@Getter[/USER]
private String content;
[USER=270918]@Getter[/USER]
private long time = System.currentTimeMillis();
public Animation yAnimation = new DecelerateAnimation(600, 1, Direction.FORWARDS);
int time2 = 3;
public Notification(String text, String content, int time) {
this.text = text;
this.content = content;
this.time2 = time;
}
public float draw(MatrixStack stack) {
float textWidth = Fonts.comfortaa[12].getWidth(text) + 40;
float screenWidth = mc.getMainWindow().getScaledWidth();
float centerX = (screenWidth - textWidth) / 2.0F;
int backgroundColor = ClientHUD.getCurrentBackgroundColor();
int textColor = ClientHUD.getCurrentTextColor();
RenderUtil.Render2D.drawRoundedCorner(centerX, y, textWidth, 14 + 1, 5.5F, backgroundColor);
RenderUtil.Render2D.drawRoundedCorner(centerX, y, textWidth - 1, 14, 5.5F, backgroundColor);
Fonts.comfortaa[13].drawString(stack, text, centerX + 12, y + 6, textColor);
String symbol = text.contains("§2вкл.") ? "F" : "F";
Fonts.zloboocgip[16].drawString(stack, symbol, centerX + 2, y + 5, ColorUtil.getColorStyle(90f));
return 10; // Высота уведомления
}
}
}
Последнее редактирование: