개인 자료란 (JE)

  서버 커뮤니티

Profile Shihyeon 대표칭호 없음

Shihyeon bfcd1303f36041f8a4fb71adae41ee8b

Profile

이해도 초보자 
게임버전 (JE) 1.20.1 
게임버전 (BE) 관련없음 

mc 1.20.6 and above

fabric 1.20.6 and above


두 그림과 같이 텍스트 뒤에 있는 텍스트 커서(언더바)의 위치를 얻는 방법이 있을까요?



아래 코드처럼 텍스트 커서 위치를 얻은 다음에 그걸로 화면에 텍스트 혹은 그림을 띄우고자 합니다.


// extends Screen
@Inject(at = {@At(value="RETURN")}, method = {"render"})
public void addCustomLabel(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci){
    int textCursorPosX; // How to declare this?
    int textCursorPosY;
    context.drawText(client.textRenderer, text, textCursorPosX, textCursorPosY, -1, false);  
}


텍스트 커서를 어떻게 얻어야 할지 모르겠습니다.


net.minecraft.client.gui.widget.TextFieldWidget에 getCursor()가 있긴 한데, 이걸 어떻게 사용해야 할지도 모르겠습니다...





2개의 댓글

커서 렌더링하는 부분:

bl2는 깜빡임 시 렌더링 여부, bl3은 커서가 텍스트 중간에 있는지 여부

위치는 Lnet/minecraft/client/gui/widget/TextFieldWidget;renderWidget(Lnet/minecraft/client/gui/DrawContext;IIF)V L46 브랜치 (429행)

@노을넴

이렇게 사용하는 것이 맞을까요?
getX(), getY()를 가져올 수는 없네요...


이 코드에서 o, l이 좌표인 것 같은데 이 변수를 가져올 수는 없나요?