- Статус
- Оффлайн
- Регистрация
- 1 Апр 2022
- Сообщения
- 84
- Реакции
- 1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дарова всем и это гайд как сделать анимацию открытия или закрытия кликгуи на базе экспа 2.0 + бонус (добавляем драйгейбл)
1) ищем класс Window.java (класс вашей кликгуи)
добавляем в переменные:
2) ищем public Window(ITextComponent titleIn)
добавляем:
3) ищем protected void init()
добавляем:
3) ищем public void render
добавляем:
4) ищем public boolean charTyped()
добавляем:
5) ищем public boolean mouseReleased()
добавляем:
6) ищем public void onClose()
добавляем:
и последнее ищем mouseClicked и добавляем
1) ищем класс Window.java (класс вашей кликгуи)
добавляем в переменные:
Код:
public boolean openAnimation;
public float animation;
private final Dragging dragging;
2) ищем public Window(ITextComponent titleIn)
добавляем:
Код:
dragging = new Dragging(null, "ClickGui", lastPosition.x, lastPosition.y);
dragging.setWidth(size.x);
dragging.setHeight(size.y);
position.x = lastPosition.x;
position.y = lastPosition.y;
animation = 0;
3) ищем protected void init()
добавляем:
Код:
if (lastPosition.x == 0 && lastPosition.y == 0) {
position = new Vector2f(mc.getMainWindow().scaledWidth() / 2f - size.x / 2f, mc.getMainWindow().scaledHeight() / 2f - size.y / 2f);
} else {
position.x = lastPosition.x;
position.y = lastPosition.y;
}
dragging.setX(position.x);
dragging.setY(position.y);
openAnimation = true;
animation = 0
3) ищем public void render
добавляем:
Код:
if (!openAnimation && animation <= 0.01f) {
this.minecraft.displayGuiScreen(null);
return;
}
float speed = openAnimation ? 20 : 25;
animation = AnimationMath.lerp(animation, openAnimation ? 1 : 0, speed);
position.x = dragging.getX();
position.y = dragging.getY();
dragging.onDraw(mouseX, mouseY, mc.getMainWindow());
mc.gameRenderer.setupOverlayRendering(2);
GlStateManager.pushMatrix();
float animScale = 0.85f + 0.15f * animation;
float offset = (1 - animation) * 50;
GlStateManager.translatef(position.x + size.x / 2f, position.y + size.y / 2f + offset, 0);
GlStateManager.scalef(animScale, animScale, 1);
GlStateManager.translatef(-(position.x + size.x / 2f), -(position.y + size.y / 2f + offset), 0);
//рендер
GlStateManager.popMatrix();
4) ищем public boolean charTyped()
добавляем:
Код:
if (keyCode == GLFW.GLFW_KEY_ESCAPE) {
openAnimation = false;
return true;
}
5) ищем public boolean mouseReleased()
добавляем:
Код:
dragging.onRelease(button);
6) ищем public void onClose()
добавляем:
Код:
openAnimation = false;
lastPosition.x = position.x;
lastPosition.y = position.y;
и последнее ищем mouseClicked и добавляем
Код:
dragging.onClick(mouseX, mouseY, button);