Skip to content

Commit 53baee2

Browse files
committed
Fix missing armor texture when using Minecraft 24w36a or later.
1 parent bce0a36 commit 53baee2

1 file changed

Lines changed: 54 additions & 26 deletions

File tree

chunky/src/java/se/llbit/chunky/entity/PlayerEntity.java

Lines changed: 54 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -180,17 +180,17 @@ static JsonObject buildGear(PlayerEntityData data) {
180180
gear = parseEquipment(data.equipment);
181181
} else {
182182
gear = new JsonObject();
183-
if (!data.chestplate.asCompound().isEmpty()) {
184-
gear.add("chest", parseItem(data.chestplate.asCompound()));
185-
}
186-
if (!data.feet.asCompound().isEmpty()) {
187-
gear.add("feet", parseItem(data.feet.asCompound()));
188-
}
189-
if (!data.head.asCompound().isEmpty()) {
190-
gear.add("head", parseItem(data.head.asCompound()));
191-
}
192-
if (!data.legs.asCompound().isEmpty()) {
193-
gear.add("legs", parseItem(data.legs.asCompound()));
183+
if (!data.chestplate.asCompound().isEmpty()) {
184+
gear.add("chest", parseItem(data.chestplate.asCompound()));
185+
}
186+
if (!data.feet.asCompound().isEmpty()) {
187+
gear.add("feet", parseItem(data.feet.asCompound()));
188+
}
189+
if (!data.head.asCompound().isEmpty()) {
190+
gear.add("head", parseItem(data.head.asCompound()));
191+
}
192+
if (!data.legs.asCompound().isEmpty()) {
193+
gear.add("legs", parseItem(data.legs.asCompound()));
194194
}
195195
}
196196
return gear;
@@ -831,52 +831,78 @@ static Texture getTexture(JsonObject item) {
831831
case "leather_boots":
832832
case "leather_helmet":
833833
case "leather_chestplate":
834-
loader = leatherTexture("models/armor/leather_layer_1",
835-
item.get("color").intValue(0x96613A), texture);
834+
loader = new AlternateTextures(
835+
leatherTexture("entity/equipment/humanoid/leather",
836+
item.get("color").intValue(0x96613A), texture),
837+
leatherTexture("models/armor/leather_layer_1",
838+
item.get("color").intValue(0x96613A), texture));
836839
break;
837840
case "leather_leggings":
838-
loader = leatherTexture("models/armor/leather_layer_2",
839-
item.get("color").intValue(0x96613A), texture);
841+
loader = new AlternateTextures(
842+
leatherTexture("entity/equipment/humanoid_leggings/leather",
843+
item.get("color").intValue(0x96613A), texture),
844+
leatherTexture("models/armor/leather_layer_2",
845+
item.get("color").intValue(0x96613A), texture));
840846
break;
841847
case "golden_boots":
842848
case "golden_helmet":
843849
case "golden_chestplate":
844-
loader = simpleTexture("models/armor/gold_layer_1", texture);
850+
loader = new AlternateTextures(
851+
simpleTexture("entity/equipment/humanoid/gold", texture),
852+
simpleTexture("models/armor/gold_layer_1", texture));
845853
break;
846854
case "golden_leggings":
847-
loader = simpleTexture("models/armor/gold_layer_2", texture);
855+
loader = new AlternateTextures(
856+
simpleTexture("entity/equipment/humanoid_leggings/gold", texture),
857+
simpleTexture("models/armor/gold_layer_2", texture));
848858
break;
849859
case "iron_boots":
850860
case "iron_helmet":
851861
case "iron_chestplate":
852-
loader = simpleTexture("models/armor/iron_layer_1", texture);
862+
loader = new AlternateTextures(
863+
simpleTexture("entity/equipment/humanoid/iron", texture),
864+
simpleTexture("models/armor/iron_layer_1", texture));
853865
break;
854866
case "iron_leggings":
855-
loader = simpleTexture("models/armor/iron_layer_2", texture);
867+
loader = new AlternateTextures(
868+
simpleTexture("entity/equipment/humanoid_leggings/iron", texture),
869+
loader = simpleTexture("models/armor/iron_layer_2", texture));
856870
break;
857871
case "chainmail_boots":
858872
case "chainmail_helmet":
859873
case "chainmail_chestplate":
860-
loader = simpleTexture("models/armor/chainmail_layer_1", texture);
874+
loader = new AlternateTextures(
875+
simpleTexture("entity/equipment/humanoid/chainmail", texture),
876+
simpleTexture("models/armor/chainmail_layer_1", texture));
861877
break;
862878
case "chainmail_leggings":
863-
loader = simpleTexture("models/armor/chainmail_layer_2", texture);
879+
loader = new AlternateTextures(
880+
simpleTexture("entity/equipment/humanoid_leggings/chainmail", texture),
881+
simpleTexture("models/armor/chainmail_layer_2", texture));
864882
break;
865883
case "diamond_boots":
866884
case "diamond_helmet":
867885
case "diamond_chestplate":
868-
loader = simpleTexture("models/armor/diamond_layer_1", texture);
886+
loader = new AlternateTextures(
887+
simpleTexture("entity/equipment/humanoid/diamond", texture),
888+
simpleTexture("models/armor/diamond_layer_1", texture));
869889
break;
870890
case "diamond_leggings":
871-
loader = simpleTexture("models/armor/diamond_layer_2", texture);
891+
loader = new AlternateTextures(
892+
simpleTexture("entity/equipment/humanoid_leggings/diamond", texture),
893+
simpleTexture("models/armor/diamond_layer_2", texture));
872894
break;
873895
case "netherite_boots":
874896
case "netherite_helmet":
875897
case "netherite_chestplate":
876-
loader = simpleTexture("models/armor/netherite_layer_1", texture);
898+
loader = new AlternateTextures(
899+
simpleTexture("entity/equipment/humanoid/netherite", texture),
900+
simpleTexture("models/armor/netherite_layer_1", texture));
877901
break;
878902
case "netherite_leggings":
879-
loader = simpleTexture("models/armor/netherite_layer_2", texture);
903+
loader = new AlternateTextures(
904+
simpleTexture("entity/equipment/humanoid_leggings/netherite", texture),
905+
simpleTexture("models/armor/netherite_layer_2", texture));
880906
break;
881907
case "copper_boots":
882908
case "copper_helmet":
@@ -887,7 +913,9 @@ static Texture getTexture(JsonObject item) {
887913
loader = simpleTexture("entity/equipment/humanoid_leggings/copper", texture);
888914
break;
889915
case "turtle_helmet":
890-
loader = simpleTexture("models/armor/turtle_layer_1", texture);
916+
loader = new AlternateTextures(
917+
simpleTexture("entity/equipment/humanoid/turtle_scute", texture),
918+
simpleTexture("models/armor/turtle_layer_1", texture));
891919
break;
892920
case "player_head":
893921
String skin = item.get("skin").asString("");

0 commit comments

Comments
 (0)