개인 자료란 (JE)

  서버 커뮤니티

Profile Shihyeon 대표칭호 없음

Shihyeon bfcd1303f36041f8a4fb71adae41ee8b

Profile

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

mc1.20.4

yarn1.20.4


아래와 같이 머리 텍스쳐를 hud에 띄우고 싶은데, 잘 모르겠습니다. (텍스트 및 이미지는 띄우는 것 가능)

private static Identifier HEAD_TEXTURE;
context.drawTexture(HEAD_TEXTURE, PosX, PosY, 0, 0, 50, 50, 50, 50);

javadoc에 head, skin 관련된 것 찾아보고 했는데도 잘 모르겠어 어떤 방법을 사용하면 좋을 지 질문합니다.

@Mixin(InGameHud.class)에 구현







3개의 댓글

노을넴
2024.05.21

플레이어 리스트에 머리 정면 텍스쳐 띄우는거 참고해보셔욘

Shihyeon
2024.05.21
@노을넴

PlayerListEntry playerListEntry = client.player.networkHandler.getPlayerListEntry(client.player.getUuid());

SkinTextures textures = playerListEntry.getSkinTextures();

Identifier skinTexture = skinTexture = textures.texture();

 

어떤 식으로 머리 앞면을 가져와야 하나요?

너무 Identifier에 매몰되어 있는 건가요? 머리 앞면을 context.drawTexture(Identifier, ...)을 사용하지 않고 띄우는 방법이 있나요?

Shihyeon
2024.05.22
@노을넴

private Identifier getOrUpdatePlayerSkinTexture() {

 

PlayerListEntry playerListEntry = client.player.networkHandler.getPlayerListEntry(client.player.getUuid());

Identifier skinTexture = null;

if (playerListEntry != null) {

UUID playerUUID = playerListEntry.getProfile().getId();

SkinTextures defaultSkintexture = DefaultSkinHelper.getSkinTextures(playerUUID);

skinTexture = defaultSkintexture.comp_1626(); // comp_1626() == texture();

 

// 서버에 연결되지 않은 경우 기본 스킨 텍스처로 설정

if (skinTexture == null) {

skinTexture = DefaultSkinHelper.getTexture();

}

HEAD_TEXTURE = skinTexture;

}

return null;

}

 

Identifier headTexture = getOrUpdatePlayerSkinTexture();

if (headTexture != null) {

context.drawTexture(headTexture, textPosX - 60, textPosY - 3, 32, 32, 32, 32, 64, 64);

}

 

로 불러오는 건 성공했는데, 왜 texture() 메서드가 comp_1626()로 표시되는지 이유를 모르겠습니다.