finally a working ui
This commit is contained in:
@@ -1,34 +1,18 @@
|
|||||||
package org.auraclient.auraclient.menus;
|
package org.auraclient.auraclient.menus;
|
||||||
|
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
|
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import org.auraclient.auraclient.AuraClient;
|
|
||||||
import org.auraclient.auraclient.ui.AuraUi;
|
|
||||||
import org.auraclient.auraclient.ui.AuraTexture;
|
|
||||||
import net.minecraft.util.Identifier;
|
|
||||||
import org.auraclient.auraclient.ui.AuraWidget;
|
|
||||||
|
|
||||||
public class CloakSelector extends AuraUi {
|
public class CloakSelector extends Screen {
|
||||||
public CloakSelector() {
|
public CloakSelector() {
|
||||||
super(Text.of("UI"));
|
super(Text.literal("Cloaks"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void ui(DrawContext context) {
|
protected void init() {
|
||||||
int width = (32 * (AuraClient.list.size() + 1));
|
ButtonWidget btn = ButtonWidget.builder(Text.literal("Cloaks"), (_button) -> {}).dimensions((this.width - 50) / 2, (this.height - 30) / 2, 50, 30).build();
|
||||||
int x = (context.getScaledWindowWidth() - (width - 8)) / 2;
|
|
||||||
int y = (context.getScaledWindowHeight() - 92) / 2;
|
|
||||||
|
|
||||||
widgets.add(new AuraWidget(AuraTexture.BOX, x - 8, y - 8, width, 108));
|
addDrawableChild(btn);
|
||||||
|
|
||||||
for (int i = 0; i < AuraClient.list.size(); i++) {
|
|
||||||
String cloak = AuraClient.list.get(i);
|
|
||||||
|
|
||||||
widgets.add(new AuraWidget(Identifier.of("auraclient", "textures/gui/cloaks/"+cloak.replaceAll("\\.(gif|png)", "")+".prev.png"), x, y, 32, 92, () -> {
|
|
||||||
AuraClient.cape = cloak;
|
|
||||||
}));
|
|
||||||
|
|
||||||
x += 40;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +1,18 @@
|
|||||||
package org.auraclient.auraclient.menus;
|
package org.auraclient.auraclient.menus;
|
||||||
|
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
|
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import org.auraclient.auraclient.AuraClient;
|
|
||||||
import org.auraclient.auraclient.ui.AuraTexture;
|
|
||||||
import org.auraclient.auraclient.ui.AuraUi;
|
|
||||||
import org.auraclient.auraclient.ui.AuraWidget;
|
|
||||||
|
|
||||||
public class MainMenu extends AuraUi {
|
public class MainMenu extends Screen {
|
||||||
public MainMenu() {
|
public MainMenu() {
|
||||||
super(Text.of("Main Menu"));
|
super(Text.literal("Custom Screen"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void ui(DrawContext context) {
|
protected void init() {
|
||||||
int x = (context.getScaledWindowWidth() - 30) / 2;
|
ButtonWidget btn = ButtonWidget.builder(Text.literal("Cloaks"), (_button) -> {}).dimensions((this.width - 50) / 2, (this.height - 30) / 2, 50, 30).build();
|
||||||
int y = (context.getScaledWindowHeight() - 14) / 2;
|
|
||||||
|
|
||||||
widgets.add(new AuraWidget(AuraTexture.BOX, x, y, 30, 14, () -> {
|
addDrawableChild(btn);
|
||||||
client.setScreen(new CloakSelector());
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package org.auraclient.auraclient.ui;
|
|
||||||
|
|
||||||
import net.minecraft.util.Identifier;
|
|
||||||
|
|
||||||
public class AuraTexture {
|
|
||||||
public static Identifier BOX = Identifier.of("auraclient", "textures/gui/box/box.png");
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
package org.auraclient.auraclient.ui;
|
|
||||||
|
|
||||||
import net.minecraft.client.gui.DrawContext;
|
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
|
||||||
import net.minecraft.text.Text;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public abstract class AuraUi extends Screen {
|
|
||||||
public final ArrayList<AuraWidget> widgets = new ArrayList<>();
|
|
||||||
|
|
||||||
protected AuraUi(Text title) {
|
|
||||||
super(title);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void init() {}
|
|
||||||
|
|
||||||
public void ui(DrawContext context) {}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
|
|
||||||
widgets.clear();
|
|
||||||
|
|
||||||
ui(context);
|
|
||||||
|
|
||||||
for (AuraWidget widget : widgets) {
|
|
||||||
widget.client = client;
|
|
||||||
widget.render(context, isInside(mouseX, mouseY, widget.x, widget.y, widget.x + widget.width, widget.y + widget.height));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean mouseClicked(double mouseX, double mouseY, int button) {
|
|
||||||
if (button == 0) {
|
|
||||||
for (AuraWidget widget : widgets) {
|
|
||||||
if (isInside(mouseX, mouseY, widget.x, widget.y, widget.x + widget.width, widget.y + widget.height)) {
|
|
||||||
widget.onClick.run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.mouseClicked(mouseX, mouseY, button);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isInside(double mouseX, double mouseY, int x1, int y1, int x2, int y2) {
|
|
||||||
return mouseX >= x1 && mouseX <= x2 && mouseY >= y1 && mouseY <= y2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package org.auraclient.auraclient.ui;
|
|
||||||
|
|
||||||
import net.minecraft.client.MinecraftClient;
|
|
||||||
import net.minecraft.client.gui.DrawContext;
|
|
||||||
import net.minecraft.client.render.RenderLayer;
|
|
||||||
import net.minecraft.util.Identifier;
|
|
||||||
|
|
||||||
public class AuraWidget {
|
|
||||||
public int x;
|
|
||||||
public int y;
|
|
||||||
public int width;
|
|
||||||
public int height;
|
|
||||||
public MinecraftClient client;
|
|
||||||
public Identifier sprite;
|
|
||||||
public Runnable onClick;
|
|
||||||
|
|
||||||
public AuraWidget(Identifier sprite, int x, int y, int width, int height) {
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
|
|
||||||
this.width = width;
|
|
||||||
this.height = height;
|
|
||||||
this.sprite = sprite;
|
|
||||||
this.onClick = () -> {};
|
|
||||||
}
|
|
||||||
|
|
||||||
public AuraWidget(Identifier sprite, int x, int y, int width, int height, Runnable onClick) {
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
|
|
||||||
this.width = width;
|
|
||||||
this.height = height;
|
|
||||||
this.sprite = sprite;
|
|
||||||
this.onClick = onClick;
|
|
||||||
}
|
|
||||||
|
|
||||||
void render(DrawContext context, boolean hover) {
|
|
||||||
context.drawTexture(RenderLayer::getGuiTextured, sprite, x, y, 0, 0, width, height, width, height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 391 B |
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"gui": {
|
||||||
|
"scaling": {
|
||||||
|
"type": "nine_slice",
|
||||||
|
"width": 300,
|
||||||
|
"height": 30,
|
||||||
|
"border": 9
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user