Shihyeon
대표칭호 없음
Shihyeon bfcd1303f36041f8a4fb71adae41ee8b
이해도 | 초보자 |
---|---|
게임버전 (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)에 구현
노을넴
2024.05.21플레이어 리스트에 머리 정면 텍스쳐 띄우는거 참고해보셔욘
Shihyeon
2024.05.21PlayerListEntry playerListEntry = client.player.networkHandler.getPlayerListEntry(client.player.getUuid());
SkinTextures textures = playerListEntry.getSkinTextures();
Identifier skinTexture = skinTexture = textures.texture();
어떤 식으로 머리 앞면을 가져와야 하나요?
너무 Identifier에 매몰되어 있는 건가요? 머리 앞면을 context.drawTexture(Identifier, ...)을 사용하지 않고 띄우는 방법이 있나요?
Shihyeon
2024.05.22private 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()로 표시되는지 이유를 모르겠습니다.