55 lines
No EOL
2.9 KiB
Java
55 lines
No EOL
2.9 KiB
Java
package com.axolotlmaid.optionsprofiles.gui;
|
|
|
|
import com.axolotlmaid.optionsprofiles.profiles.Profiles;
|
|
import net.minecraft.ChatFormatting;
|
|
import net.minecraft.client.gui.GuiGraphics;
|
|
import net.minecraft.client.gui.components.Button;
|
|
import net.minecraft.client.gui.components.EditBox;
|
|
import net.minecraft.client.gui.screens.Screen;
|
|
import net.minecraft.network.chat.CommonComponents;
|
|
import net.minecraft.network.chat.Component;
|
|
|
|
public class EditProfileScreen extends Screen {
|
|
private final Screen lastScreen;
|
|
private final Component profileName;
|
|
|
|
private EditBox profileNameEdit;
|
|
|
|
public EditProfileScreen(Screen screen, Component profileName) {
|
|
super(Component.literal(Component.translatable("gui.optionsprofiles.editing-profile-title").getString() + profileName.getString()));
|
|
this.lastScreen = screen;
|
|
this.profileName = profileName;
|
|
}
|
|
|
|
protected void init() {
|
|
this.profileNameEdit = new EditBox(this.font, this.width / 2 - 102, this.height - 130, 204, 20, Component.empty());
|
|
this.profileNameEdit.setValue(profileName.getString());
|
|
this.addWidget(this.profileNameEdit);
|
|
|
|
this.addRenderableWidget(Button.builder(Component.translatable("gui.optionsprofiles.overwrite-options"), (button) -> {
|
|
new Profiles().writeOptionsFilesIntoProfile(profileName.getString());
|
|
this.minecraft.setScreen(this.lastScreen);
|
|
}).size(100, 20).pos(this.width / 2 - 50, this.height - 85).build());
|
|
|
|
this.addRenderableWidget(Button.builder(Component.translatable("gui.optionsprofiles.rename-profile"), (button) -> {
|
|
new Profiles().renameProfile(profileName.getString(), this.profileNameEdit.getValue());
|
|
this.minecraft.setScreen(new EditProfileScreen(lastScreen, Component.literal(this.profileNameEdit.getValue())));
|
|
}).size(100, 20).pos(this.width / 2 - 50, this.height - 65).build());
|
|
|
|
this.addRenderableWidget(Button.builder(Component.translatable("gui.optionsprofiles.delete-profile").withStyle(ChatFormatting.RED), (button) -> {
|
|
new Profiles().deleteProfile(profileName.getString());
|
|
this.minecraft.setScreen(this.lastScreen);
|
|
}).size(100, 20).pos(5, this.height - 25).build());
|
|
|
|
this.addRenderableWidget(Button.builder(CommonComponents.GUI_DONE, (button) -> {
|
|
this.minecraft.setScreen(this.lastScreen);
|
|
}).size(100, 20).pos(this.width / 2 - 50, this.height - 40).build());
|
|
}
|
|
|
|
public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float delta) {
|
|
super.render(guiGraphics, mouseX, mouseY, delta);
|
|
this.profileNameEdit.render(guiGraphics, mouseX, mouseY, delta);
|
|
guiGraphics.drawCenteredString(this.font, this.title, this.width / 2, 8, 16777215);
|
|
guiGraphics.drawCenteredString(this.font, Component.translatable("gui.optionsprofiles.profile-name-text"), this.width / 2, this.height - 145, 16777215);
|
|
}
|
|
} |