mirror of
https://github.com/refactorinqq/SLC-1.8.9.git
synced 2024-11-10 08:51:32 +01:00
Basic element system & added some helper functions to RenderUtil
This commit is contained in:
parent
3d5049d662
commit
b6faa000aa
@ -21,6 +21,10 @@ public class RenderUtil {
|
|||||||
final static Minecraft mc = Minecraft.getMinecraft();
|
final static Minecraft mc = Minecraft.getMinecraft();
|
||||||
final static FontRenderer fr = mc.fontRendererObj;
|
final static FontRenderer fr = mc.fontRendererObj;
|
||||||
|
|
||||||
|
public static void drawRoundXYWH(float x, float y, float width, float height, float r, int col) {
|
||||||
|
drawRoundedRect(x, y, x + width, y + height, r, col);
|
||||||
|
}
|
||||||
|
|
||||||
public static void drawRoundedRect(float x, float y, float x1, float y1, float radius, int color) {
|
public static void drawRoundedRect(float x, float y, float x1, float y1, float radius, int color) {
|
||||||
x1 = x + x1;
|
x1 = x + x1;
|
||||||
y1 = y + y1;
|
y1 = y + y1;
|
||||||
@ -66,6 +70,11 @@ public class RenderUtil {
|
|||||||
glLineWidth(1);
|
glLineWidth(1);
|
||||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void drawRoundOutlineXYWH(float x, float y, float w, float h, float r, float lw, int col) {
|
||||||
|
drawRoundedOutline(x, y, x + w, y + h, r, lw, col);
|
||||||
|
}
|
||||||
|
|
||||||
public static void drawRoundedOutline(float x, float y, float x1, float y1, float radius,float lineWidth, int color) {
|
public static void drawRoundedOutline(float x, float y, float x1, float y1, float radius,float lineWidth, int color) {
|
||||||
x1 = x + x1;
|
x1 = x + x1;
|
||||||
y1 = y + y1;
|
y1 = y + y1;
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package net.silentclient.client.ui.framework;
|
||||||
|
|
||||||
|
import net.minecraft.client.gui.Gui;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author refactoring
|
||||||
|
*/
|
||||||
|
public abstract class UIElement extends Gui {
|
||||||
|
public float x, y, w, h;
|
||||||
|
|
||||||
|
public UIElement(float x, float y, float w, float h) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
this.w = w;
|
||||||
|
this.h = h;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isMouseInside(float mx, float my) {
|
||||||
|
return mx >= this.x && my >= this.y && mx < this.x + this.w && my < this.y + this.h;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void render(float mouseX, float mouseY) {}
|
||||||
|
public void click(float mouseX, float mouseY, int button) {}
|
||||||
|
public void released(float mouseX, float mouseY, int button) {}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package net.silentclient.client.ui.framework;
|
||||||
|
|
||||||
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Solely exists for the purpose of making everything custom ;)
|
||||||
|
*
|
||||||
|
* @author refactoring
|
||||||
|
*/
|
||||||
|
public class UIScreen extends GuiScreen { }
|
@ -0,0 +1,13 @@
|
|||||||
|
package net.silentclient.client.ui.screen;
|
||||||
|
|
||||||
|
import net.silentclient.client.ui.framework.UIScreen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author refactoring
|
||||||
|
*/
|
||||||
|
public class ScreenModMenu extends UIScreen {
|
||||||
|
@Override
|
||||||
|
public void drawScreen(int mx, int my, float btn) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package net.silentclient.client.ui.screen.component;
|
||||||
|
|
||||||
|
import net.silentclient.client.Client;
|
||||||
|
import net.silentclient.client.gui.animation.SimpleAnimation;
|
||||||
|
import net.silentclient.client.gui.font.SilentFontRenderer;
|
||||||
|
import net.silentclient.client.gui.util.RenderUtil;
|
||||||
|
import net.silentclient.client.ui.framework.UIElement;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author refactoring
|
||||||
|
*/
|
||||||
|
public class ElementIconButton extends UIElement {
|
||||||
|
private final Runnable clickHandler;
|
||||||
|
private final String icon;
|
||||||
|
private final SimpleAnimation anim = new SimpleAnimation(0f);
|
||||||
|
|
||||||
|
public ElementIconButton(String icon, float x, float y, float w, float h, Runnable handler) {
|
||||||
|
super(x, y, w, h);
|
||||||
|
this.icon = icon;
|
||||||
|
this.clickHandler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(float mouseX, float mouseY) {
|
||||||
|
RenderUtil.drawRoundXYWH(x, y, w, h, 7f, new Color(0, 0, 0, 125).getRGB());
|
||||||
|
RenderUtil.drawRoundOutlineXYWH(x, y, w, h, 7f, 1f, new Color(255, 255, 255, 125).getRGB());
|
||||||
|
RenderUtil.drawRoundXYWH(x, y, w, h, 7f, new Color(255, 255, 255, (int)anim.getValue()).getRGB());
|
||||||
|
|
||||||
|
Client.getInstance().getSilentFontRenderer().drawCenteredString(icon, (int) (x + w / 2), (int) (y + h / 2), 25, SilentFontRenderer.FontType.TEXT, 25);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void click(float mouseX, float mouseY, int button) {
|
||||||
|
if(isMouseInside(mouseX, mouseY) && button == 0) {
|
||||||
|
clickHandler.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user