- 103
- 2
- 2
Кто делал текстовые поля на 1.15.2? гайдов на эту версию нет, а в исходниках недоделанные мапинги и кроме создания виджета и рендеринга поля, я не смог ничего понять.
class YourScreen extends Screen {
private TextFieldWidget password;
@Override
public void tick() {
this.password.tick();
}
@Override
protected void init() {
this.password = new TextFieldWidget(this.font, this.width / 2 - 150, this.height / 2 - 10, 300, 20, "Your password");
this.password.setMaxStringLength(1000);
this.password.setResponder((text) -> {
// Делать что-то, когда пишут в поле
});
this.children.add(this.password);
}
@Override
public void render(int mouseX, int mouseY, float partialTicks) {
this.password.render(mouseX, mouseY, partialTicks);
}
}
class YourScreen extends Screen {
private TextFieldWidget password;
@Override
public void tick() {
this.password.tick();
}
@Override
protected void init() {
this.password = new TextFieldWidget(this.font, this.width / 2 - 150, this.height / 2 - 10, 300, 20, "Your password");
this.password.setMaxStringLength(1000);
this.password.setResponder((text) -> {
// Делать что-то, когда пишут в поле
});
this.children.add(this.password);
}
@Override
public void render(int mouseX, int mouseY, float partialTicks) {
this.password.render(mouseX, mouseY, partialTicks);
}
}
this.addButton(new Button( this.guiLeft+50, this.guiTop+50, 70, 20, I18n.format("button.allyouneed.apply"), (button) -> {
boolean noletter=true;
for(int i=0;i<this.ticks.getText().length();i++){
if (!Character.isDigit(this.ticks.getText().charAt(i))){
noletter=false;
}
}
if (noletter==true) {
Networking.INSTANCE.sendToServer(new PacketChangeRedstoneTime(this.container.windowId, Integer.valueOf(this.ticks.getText())));
}
}));
text.matches(".[I]\\d+.[/I]")