begin work on cape chooser

This commit is contained in:
ThisIsALegitUsername 2023-02-21 14:18:39 +00:00
parent 9cfb18d0ba
commit 7cf3516828
2 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,39 @@
package dev.resent.cape;
import net.lax1dude.eaglercraft.v1_8.EagRuntime;
import net.lax1dude.eaglercraft.v1_8.internal.FileChooserResult;
import net.lax1dude.eaglercraft.v1_8.opengl.ImageData;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.DynamicTexture;
import net.minecraft.util.ResourceLocation;
public class CapeManager {
public static void displayChooser(){
EagRuntime.displayFileChooser("image/png", "png");
}
public static ResourceLocation capeLocation;
public static void loadCape(){
CapeManager.free();
if (EagRuntime.fileChooserHasResult()) {
FileChooserResult result = EagRuntime.getFileChooserResult();
if (result != null) {
ImageData loadedCape = ImageData.loadImageFile(result.fileData);
if(loadedCape != null){
capeLocation = Minecraft.getMinecraft().getTextureManager().getDynamicTextureLocation("uploadedcape", new DynamicTexture(loadedCape));
Minecraft.getMinecraft().getTextureManager().bindTexture(capeLocation);
} else {
EagRuntime.showPopup("The selected file '" + result.fileName + "' is not a PNG file!");
}
}
}
}
public static void free(){
Minecraft.getMinecraft().getTextureManager().deleteTexture(capeLocation);
capeLocation = null;
}
}

View File

@ -0,0 +1,32 @@
package dev.resent.cape;
import dev.resent.client.Resent;
import dev.resent.module.base.RenderMod;
import dev.resent.ui.ClickGUI;
import net.lax1dude.eaglercraft.v1_8.Keyboard;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
public class CapeUi extends GuiScreen {
public void initGui() {
this.buttonList.add(new GuiButton(200, this.width / 2 - 100, this.height / 6 + 148, "Back"));
}
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
mc.gameSettings.saveOptions();
}
public void drawScreen(int mx, int my, float par3) {
this.drawDefaultBackground();
Resent.INSTANCE.modManager.modules.stream().filter(m -> m.isEnabled() && m instanceof RenderMod).forEach(rm -> ((RenderMod)rm).renderLayout(mx, my));
super.drawScreen(mx, my, par3);
}
protected void actionPerformed(GuiButton par1GuiButton) {
if (par1GuiButton.id == 200) {
this.mc.displayGuiScreen(new ClickGUI());
}
}
}