본문으로 건너뛰기
버전: Minecraft 26.2

모드 화면

ModScreen을 구현하면 라벨, 버튼, 입력칸이 있는 화면을 만들 수 있습니다.

ShowcaseScreen.java
final class ShowcaseScreen implements ModScreen {

private TextInput name;

@Override
public String title() {
return "My Menu";
}

@Override
public void init(ScreenBuilder screen) {
int centre = screen.width() / 2;
screen.label("Hello", centre - screen.textWidth("Hello") / 2, 40, 0xFFFFFFFF);
name = screen.textInput(centre - 100, 70, 200, "Steve");
screen.button("OK", centre - 50, 100, 100, 20, screen::close);
}

@Override
public void render(HudCanvas canvas) {
// 위젯 위에 자유롭게 그리기(선택)
}

@Override
public void onClosed() {
LOGGER.info("name was {}", name.value());
}
}

열고 닫기​

화면은 ClientView를 받는 콜백(예: ClientEvents.TICK)에서 엽니다.

mod.events().register(ClientEvents.TICK, view -> {
if (open.consumeClick()) {
view.openScreen(new ShowcaseScreen());
}
});

동작​

  • 화면은 게임의 Screen 위에서 동작하며, 버튼과 입력칸은 게임 위젯입니다.
  • ScreenBuilder: width(), height(), textWidth, label, button(label, x, y, width, height, onPress), textInput(x, y, width, initialValue), close()
  • render(HudCanvas)로 자유롭게 그릴 수 있습니다.
  • pausesGame()을 재정의하면 싱글 플레이에서 게임을 멈출지 정할 수 있습니다.
  • onClosed는 Esc, closeScreen, 다른 화면으로의 전환 등 화면이 닫히는 모든 경우에 호출됩니다.

블록 엔티티의 인벤토리 메뉴는 화면이 아니라 서버가 여는 메뉴입니다. 자세한 내용은 블록 엔티티와 메뉴를 참고하세요.

Buy me a coffee