-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
code:
ublic class Notifications extends Module {
private static List<Notify> notifies = new ArrayList();
public static void notify(String title, String text, Notify.NotifyType type, int second) {
notifies.add(new Notify(title, text, type).setMaxTime(second * 50));
}
@EventTarget
public void tick(EventTick eventTick) {
notifies.forEach(notify -> notify.updateAnimation());
notifies.removeIf(Notify::updateAnimation);
}
public static void render(ScaledResolution res) {
float yOffset = -24;
if (Utility.mc.currentScreen instanceof GuiChat) {
int i = Utility.mc.gameSettings.guiScale;
if (i == 0) {
yOffset -= 26;
}
if (i == 2) {
yOffset -= 14;
}
}
for (Notify notify : notifies) {
GL11.glPushMatrix();
yOffset -= notify.draw(res, yOffset);
GL11.glPopMatrix();
}
}
public static class Notify {
private final Animation animation = new Animation();
private String title, text;
private float width;
private int ticks, maxTime = 30;
private final NotifyType type;
public Notify(String title, String text, NotifyType type) {
this.title = title;
this.text = text;
this.type = type;
this.width = Math.max(Fonts.SEMI_BOLD_12.getStringWidth(title), Fonts.SEMI_BOLD_12.getStringWidth(text));
}
public float draw(ScaledResolution res, float yOffset) {
int w = res.getScaledWidth(), h = res.getScaledHeight();
double anim = animation.get();
GL11.glTranslated(w - (width + 29) * anim, h + yOffset, 0);
RenderUtility.drawRound(-2, -2f, width + 27, 21f, 0, new Color(ColorUtility.rgba(47, 47, 47, 50 * anim)));
RenderUtility.horizontalGradient(-2, -4, width + 27, 1.5f, UI.getColor(280).getRGB(), UI.getColor(0).getRGB(), UI.getColor(80).getRGB(), UI.getColor(180).getRGB());
Fonts.MONTSERRAT12.drawString(this.title, 1, 3f, ColorUtility.rgba(200, 200, 200, 255 * anim));
Fonts.MONTSERRAT12.drawString(this.text, 1, 12f, ColorUtility.rgba(170, 170, 170, 255 * anim));
return 26 * (float) animation.get();
}
public enum NotifyType {
SUCCESS, INFO, ERROR
}
public boolean updateAnimation() {
this.animation.update(++this.ticks < maxTime);
return this.animation.get() == 0;
}
public Notify setMaxTime(int maxTime) {
this.maxTime = maxTime;
return this;
}
}
}