116 lines
4.8 KiB
Java
116 lines
4.8 KiB
Java
package com.mojang.realmsclient.gui.screens;
|
|
|
|
import com.mojang.realmsclient.gui.LongRunningTask;
|
|
import com.mojang.realmsclient.util.RealmsTasks;
|
|
import net.minecraft.realms.RealmsGuiEventListener;
|
|
import net.minecraft.realms.Realms;
|
|
import net.minecraft.realms.AbstractRealmsButton;
|
|
import net.minecraft.realms.RealmsLabel;
|
|
import net.minecraft.realms.RealmsButton;
|
|
import net.minecraft.realms.RealmsEditBox;
|
|
import com.mojang.realmsclient.RealmsMainScreen;
|
|
import com.mojang.realmsclient.dto.RealmsServer;
|
|
import net.minecraft.realms.RealmsScreen;
|
|
|
|
public class RealmsCreateRealmScreen extends RealmsScreen {
|
|
private final RealmsServer server;
|
|
private final RealmsMainScreen lastScreen;
|
|
private RealmsEditBox nameBox;
|
|
private RealmsEditBox descriptionBox;
|
|
private RealmsButton createButton;
|
|
private RealmsLabel createRealmLabel;
|
|
|
|
public RealmsCreateRealmScreen(final RealmsServer realmsServer, final RealmsMainScreen cyu) {
|
|
this.server = realmsServer;
|
|
this.lastScreen = cyu;
|
|
}
|
|
|
|
@Override
|
|
public void tick() {
|
|
if (this.nameBox != null) {
|
|
this.nameBox.tick();
|
|
}
|
|
if (this.descriptionBox != null) {
|
|
this.descriptionBox.tick();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void init() {
|
|
this.setKeyboardHandlerSendRepeatsToGui(true);
|
|
this.buttonsAdd(this.createButton = new RealmsButton(0, this.width() / 2 - 100, this.height() / 4 + 120 + 17, 97, 20, RealmsScreen.getLocalizedString("mco.create.world")) {
|
|
@Override
|
|
public void onPress() {
|
|
RealmsCreateRealmScreen.this.createWorld();
|
|
}
|
|
});
|
|
this.buttonsAdd(new RealmsButton(1, this.width() / 2 + 5, this.height() / 4 + 120 + 17, 95, 20, RealmsScreen.getLocalizedString("gui.cancel")) {
|
|
@Override
|
|
public void onPress() {
|
|
Realms.setScreen(RealmsCreateRealmScreen.this.lastScreen);
|
|
}
|
|
});
|
|
this.createButton.active(false);
|
|
this.addWidget(this.nameBox = this.newEditBox(3, this.width() / 2 - 100, 65, 200, 20, RealmsScreen.getLocalizedString("mco.configure.world.name")));
|
|
this.focusOn(this.nameBox);
|
|
this.addWidget(this.descriptionBox = this.newEditBox(4, this.width() / 2 - 100, 115, 200, 20, RealmsScreen.getLocalizedString("mco.configure.world.description")));
|
|
this.addWidget(this.createRealmLabel = new RealmsLabel(RealmsScreen.getLocalizedString("mco.selectServer.create"), this.width() / 2, 11, 16777215));
|
|
this.narrateLabels();
|
|
}
|
|
|
|
@Override
|
|
public void removed() {
|
|
this.setKeyboardHandlerSendRepeatsToGui(false);
|
|
}
|
|
|
|
@Override
|
|
public boolean charTyped(final char character, final int integer) {
|
|
this.createButton.active(this.valid());
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean keyPressed(final int integer1, final int integer2, final int integer3) {
|
|
switch (integer1) {
|
|
case 256: {
|
|
Realms.setScreen(this.lastScreen);
|
|
return true;
|
|
}
|
|
default: {
|
|
this.createButton.active(this.valid());
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void createWorld() {
|
|
if (this.valid()) {
|
|
final RealmsResetWorldScreen daf2 = new RealmsResetWorldScreen(this.lastScreen, this.server, this.lastScreen.newScreen(), RealmsScreen.getLocalizedString("mco.selectServer.create"), RealmsScreen.getLocalizedString("mco.create.world.subtitle"), 10526880, RealmsScreen.getLocalizedString("mco.create.world.skip"));
|
|
daf2.setResetTitle(RealmsScreen.getLocalizedString("mco.create.world.reset.title"));
|
|
final RealmsTasks.WorldCreationTask j3 = new RealmsTasks.WorldCreationTask(this.server.id, this.nameBox.getValue(), this.descriptionBox.getValue(), daf2);
|
|
final RealmsLongRunningMcoTaskScreen czz4 = new RealmsLongRunningMcoTaskScreen(this.lastScreen, j3);
|
|
czz4.start();
|
|
Realms.setScreen(czz4);
|
|
}
|
|
}
|
|
|
|
private boolean valid() {
|
|
return this.nameBox.getValue() != null && !this.nameBox.getValue().trim().isEmpty();
|
|
}
|
|
|
|
@Override
|
|
public void render(final int integer1, final int integer2, final float float3) {
|
|
this.renderBackground();
|
|
this.createRealmLabel.render(this);
|
|
this.drawString(RealmsScreen.getLocalizedString("mco.configure.world.name"), this.width() / 2 - 100, 52, 10526880);
|
|
this.drawString(RealmsScreen.getLocalizedString("mco.configure.world.description"), this.width() / 2 - 100, 102, 10526880);
|
|
if (this.nameBox != null) {
|
|
this.nameBox.render(integer1, integer2, float3);
|
|
}
|
|
if (this.descriptionBox != null) {
|
|
this.descriptionBox.render(integer1, integer2, float3);
|
|
}
|
|
super.render(integer1, integer2, float3);
|
|
}
|
|
}
|