src/main/java/spectraclient/Client.java (main entrypoint in fabric.mod.json)
package spectraclient;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.glfw.GLFW;
import net.fabricmc.api.ModInitializer;
import net.minecraft.client.MinecraftClient;
import spectraclient.ui.screens.clickgui.ClickGUI;
public class Client implements ModInitializer {
public Logger logger = LogManager.getLogger();
private MinecraftClient mc = MinecraftClient.getInstance();
public void onKeyPress(int key, int action) {
if (action == GLFW.GLFW_PRESS && key == GLFW.GLFW_KEY_RIGHT_SHIFT) {
mc.setScreen(ClickGUI.INSTANCE);
}
}
@Override
public void onInitialize() {
logger.info("Hello world");
}
}
package spectraclient.ui.screens.clickgui;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.Text;
import spectraclient.module.Mod.Category;
public class ClickGUI extends Screen {
public static final ClickGUI INSTANCE = new ClickGUI();
private List<Frame> frames;
private ClickGUI() {
super(Text.literal("Click GUI"));
frames = new ArrayList<>();
int offset = 20;
for (Category category : Category.values()) {
frames.add(new Frame(category, offset, 30, 100, 30));
offset += 120;
}
}
@Override
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
for (Frame frame : frames) {
frame.render(context, mouseX, mouseY, delta);
}
super.render(context, mouseX, mouseY, delta);
}
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
for (Frame frame : frames) {
frame.mouseClicked(mouseX, mouseY, button);
}
return super.mouseClicked(mouseX, mouseY, button);
}
}
package spectraclient.ui.screens.clickgui;
import java.awt.Color;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import spectraclient.module.Mod.Category;
public class Frame {
public int x, y, width, height;
public Category category;
public boolean dragging;
private MinecraftClient mc = MinecraftClient.getInstance();
public Frame(Category category, int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.height = height;
this.width = width;
this.category = category;
this.dragging = false;
}
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
context.fill(x, y, x + width, y + height, -1);
context.drawCenteredTextWithShadow(mc.textRenderer, "Test", x + 2, y + 2, Color.black.getRGB());
}
public void mouseClicked(double mouseX, double mouseY, int button) {
}
}