icons.png in Java Edition 1.18.2.
icons.png is a texture sheet used by the game to store the textures of several UI elements.
Content
icons.png contains the sprites of all UI elements, including health, hunger, experience, and armor.
Unlike a large amount of texture sheets, it is still used in the current version, and has not been split into constituent elements.
The following image map shows you how the elements are used when you hover over them. (Several of them are unused, so they have no label.)[1]
Logic for determining what heart or haunch icon to use:
def draw_heart(x, y):
if is_hardcore:
v = 45
else:
v = 0
# Draw background/outline
if recently_changed:
# White outline
draw(x, y, 16 + 9, v, 9, 9) # 25
else:
# Black outline
draw(x, y, 16, v, 9, 9)
if not is_absorption_heart:
# Above check did not exist until 20w49a, causing invisible absorption hearts
# https://bugs.mojang.com/browse/MC-18880
if is_poisoned:
u = 16 + 36 # 52
elif is_withered:
u = 16 + 72 # 88
elif is_frozen:
u = 16 + 126 # 142
else:
u = 16
if recently_lost:
# These are always drawn, but are overwritten in most cases
# (They draw up to the previous health value, while the regular hearts
# draw to the current health value)
# This references a nonexistent texture when frozen:
# https://bugs.mojang.com/browse/MC-206881
if half_heart:
draw(x, y, u + 54 + 9, v, 9, 9) # 79 / 115 / 151 / 205 (invalid)
else:
draw(x, y, u + 54, v, 9, 9) # 70 / 106 / 142 / 196 (invalid)
if is_absorption_heart:
# Prior to MC-18880 being fixed this could use missing textures
# After the fix u is always 16
if half_heart:
draw(x, y, u + 144 + 9, v, 9, 9) # 169
else:
draw(x, y, u + 144, v, 9, 9) # 160
else:
if half_heart:
draw(x, y, u + 36 + 9, v, 9, 9) # 61 / 97 / 133 / 203
else:
draw(x, y, u + 36, v, 9, 9) # 52 / 88 / 124 / 194
# 34 and 43 (red outline, white outline) seem to be unused)
def draw_haunch(x, y):
# Draw background/outline
if has_hunger:
# Green outline
draw(x, y, 16 + 13 * 9, 27, 9, 9) # 133
u = 16 + 36 # 52
else:
# Black outline
draw(x, y, 16, 27, 9, 9)
u = 16
if half_haunch:
draw(x, y, u + 45, 27, 9, 9) # 61 / 97
else:
draw(x, y, u + 36, 27, 9, 9) # 52 / 88
# 25, 34, 43, and 124 (white, red, white, and brown outlines) go unused
# As are 70, 79, 106, 155 (lighter variants that could have served the same
# purpose as recently lost hearts, but that doesn't really make sense for
# hunger)
There are a few additional invisible textures that have alpha set to zero but still have color data.
History
- Duplicate armor bar texture added in 20100218
- Duplicate connection icons added in Beta 1.8
- Mirrored hunger icon added in Beta 1.8
- Golden outlined empty hunger icon added in Beta 1.8
- Diamond circle things added in 12w25a
- Blue armor outline textures added in 15w34b.
The file was compressed in 13w09c, 15w49a, 1.11-pre1, 17w50a and 19w41a.
| Java Edition Classic | |||||
|---|---|---|---|---|---|
| 0.24_SURVIVAL_TEST | Added icons.png. The crosshair texture has been added. Eight heart textures have been added for the health bar. Their uses are: empty,[verify] unknown, unknown, unknown, full heart (2 HP), half heart (1 HP), full heart while being damaged, half heart being damaged Textures for the armor bar have been added, with icons for 2, 1 and 0 points. A bubble and bubble popping icon for the air meter has been added. There is a large region of purple grid closely resembling the | ||||
| Java Edition Indev | |||||
| ? | icons.png has been updated. The heart textures appear to have been very slightly changed - no other sprites appear different. | ||||
| Minecraft Indev | 20100218 | icons.png has been updated. The armor bar textures appear to have been repositioned, and a duplicate 2 armor points icon added - whether it has use or is an unused duplicate is unknown. | |||
| Java Edition Beta | |||||
| 1.8 | Pre-release | icons.png has been updated. Textures for the hunger bar have been added, like with the health bar: empty,[verify] unknown, unknown, unknown, full icon (2), half icon (1), unknown, unknown. Textures for hearts with the Poison status effect have been added: full, half, full taking damage, half taking damage. Textures for hunger with the Hunger effect have been added: full, half, unknown, unknown. There are two empty hunger shaped icons, one likely for empty hunger under the Hunger effect. The other is unknown. There is a mirrored hunger icon, its use unknown. There are two sets of connection icons. Their exact use cases are unknown, and it is unknown if one is composed of unused duplicates. Textures for the experience bar have been added. The half armor bar icon has been mirrored to reflect its new placement. | |||
| Java Edition | |||||
| 1.0.0 | Beta 1.9 Prerelease 2 | icons.png has been updated. Textures for hearts in hardcore mode have been added:empty,[verify] unknown, unknown, unknown, full heart (2 HP), half heart (1 HP), full heart while being damaged, half heart being damaged, poisoned full heart, poisoned half heart, poisoned full heart being damaged, poisoned half heart being damaged | |||
| Beta 1.9 Prerelease 6 | icons.png has been updated. The boss bar textures have been added. | ||||
| 1.3.1 | 12w25a | Added unknown white textures. | |||
| 1.4.2 | 12w34a | Added textures for hearts with the Wither effect: full, half, full damaging, half damaging, hardcore full, hardcore half, hardcore full damaging and hardcore half damaging. | |||
| 1.6.1 | 13w16a | Added icons for hearts of mobs the player is riding: empty,[verify] unknown, unknown, unknown, full heart (2 HP), half heart (1 HP), full heart while being damaged, half heart being damaged The horse jump bar has been added. | |||
| 13w25a | Added absorption hearts: full, half, hardcore full, hardcore half | ||||
| 1.9 | 15w31a | The boss bar textures are no longer used with the addition of bars.png. | |||
| 15w34a | Added attack cooldown indicators: an empty and full hotbar indicator and an empty and full crosshair indicator. | ||||
| 15w34b | icons.png has been updated. Two light blue armor icon outlines have been added, of completely unknown use. | ||||
| 1.11.1 | 16w50a | A third crosshair attack indicator with an exclamation mark (!) has been added, displayed when fully loaded and aiming at entity in range of attack. | |||
| release | icons.png has been updated. Attack indicator when focussing on entity now shows plus-sign (+) rather than an exclamation mark. | ||||
| 1.17 | 20w46a | Added hearts for taking freezing damage. | |||
| 20w49a | icons.png has been updated. This version duplicates frozen hearts for hardcore mode. | ||||
| 21w07a | Unknown changes | ||||
| 21w11a | icons.png has been updated. This version frozen hearts actually unique in hardcore mode.[2] | ||||
| Upcoming Java Edition | |||||
| Combat Tests | Combat Test 3 | Added four icons for shield blocking cooldown. | |||
| Pocket Edition Alpha | |||||
| v0.1.0 | Added icons.png. | ||||
| v0.6.0 | icons.png has been updated. | ||||
| v0.11.0 | build 1 | icons.png has been updated. | |||
| v0.13.0 | ? | icons.png has been updated. | |||
| v0.15.0 | build 1 | icons.png has been updated. | |||
See also
| In use |
| ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Removed |
| ||||||||||
