@nodecraft/rendermite 0.0.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (764) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +92 -0
  3. package/assets/README.md +17 -0
  4. package/assets/builtin/minecraft/atlases/misc.json +24 -0
  5. package/assets/builtin/minecraft/items/black_banner.json +12 -0
  6. package/assets/builtin/minecraft/items/black_shulker_box.json +6 -0
  7. package/assets/builtin/minecraft/items/blue_banner.json +12 -0
  8. package/assets/builtin/minecraft/items/blue_shulker_box.json +6 -0
  9. package/assets/builtin/minecraft/items/brown_banner.json +12 -0
  10. package/assets/builtin/minecraft/items/brown_shulker_box.json +6 -0
  11. package/assets/builtin/minecraft/items/chest.json +6 -0
  12. package/assets/builtin/minecraft/items/conduit.json +6 -0
  13. package/assets/builtin/minecraft/items/copper_chest.json +6 -0
  14. package/assets/builtin/minecraft/items/copper_golem_statue.json +6 -0
  15. package/assets/builtin/minecraft/items/creeper_head.json +6 -0
  16. package/assets/builtin/minecraft/items/cyan_banner.json +12 -0
  17. package/assets/builtin/minecraft/items/cyan_shulker_box.json +6 -0
  18. package/assets/builtin/minecraft/items/decorated_pot.json +6 -0
  19. package/assets/builtin/minecraft/items/dragon_head.json +6 -0
  20. package/assets/builtin/minecraft/items/ender_chest.json +6 -0
  21. package/assets/builtin/minecraft/items/exposed_copper_chest.json +6 -0
  22. package/assets/builtin/minecraft/items/exposed_copper_golem_statue.json +6 -0
  23. package/assets/builtin/minecraft/items/gray_banner.json +12 -0
  24. package/assets/builtin/minecraft/items/gray_shulker_box.json +6 -0
  25. package/assets/builtin/minecraft/items/green_banner.json +12 -0
  26. package/assets/builtin/minecraft/items/green_shulker_box.json +6 -0
  27. package/assets/builtin/minecraft/items/light_blue_banner.json +12 -0
  28. package/assets/builtin/minecraft/items/light_blue_shulker_box.json +6 -0
  29. package/assets/builtin/minecraft/items/light_gray_banner.json +12 -0
  30. package/assets/builtin/minecraft/items/light_gray_shulker_box.json +6 -0
  31. package/assets/builtin/minecraft/items/lime_banner.json +12 -0
  32. package/assets/builtin/minecraft/items/lime_shulker_box.json +6 -0
  33. package/assets/builtin/minecraft/items/magenta_banner.json +12 -0
  34. package/assets/builtin/minecraft/items/magenta_shulker_box.json +6 -0
  35. package/assets/builtin/minecraft/items/orange_banner.json +12 -0
  36. package/assets/builtin/minecraft/items/orange_shulker_box.json +6 -0
  37. package/assets/builtin/minecraft/items/oxidized_copper_chest.json +6 -0
  38. package/assets/builtin/minecraft/items/oxidized_copper_golem_statue.json +6 -0
  39. package/assets/builtin/minecraft/items/piglin_head.json +6 -0
  40. package/assets/builtin/minecraft/items/pink_banner.json +12 -0
  41. package/assets/builtin/minecraft/items/pink_shulker_box.json +6 -0
  42. package/assets/builtin/minecraft/items/player_head.json +6 -0
  43. package/assets/builtin/minecraft/items/purple_banner.json +12 -0
  44. package/assets/builtin/minecraft/items/purple_shulker_box.json +6 -0
  45. package/assets/builtin/minecraft/items/rc_filled_map_base.json +6 -0
  46. package/assets/builtin/minecraft/items/rc_filled_map_overlay.json +7 -0
  47. package/assets/builtin/minecraft/items/rc_firework_star_base.json +6 -0
  48. package/assets/builtin/minecraft/items/rc_firework_star_overlay.json +6 -0
  49. package/assets/builtin/minecraft/items/rc_potion_bottle.json +6 -0
  50. package/assets/builtin/minecraft/items/rc_potion_bottle_lingering.json +6 -0
  51. package/assets/builtin/minecraft/items/rc_potion_bottle_splash.json +6 -0
  52. package/assets/builtin/minecraft/items/rc_potion_content.json +6 -0
  53. package/assets/builtin/minecraft/items/rc_tipped_arrow_base.json +6 -0
  54. package/assets/builtin/minecraft/items/rc_tipped_arrow_head.json +6 -0
  55. package/assets/builtin/minecraft/items/red_banner.json +12 -0
  56. package/assets/builtin/minecraft/items/red_shulker_box.json +6 -0
  57. package/assets/builtin/minecraft/items/shield.json +6 -0
  58. package/assets/builtin/minecraft/items/shulker_box.json +6 -0
  59. package/assets/builtin/minecraft/items/skeleton_skull.json +6 -0
  60. package/assets/builtin/minecraft/items/trapped_chest.json +6 -0
  61. package/assets/builtin/minecraft/items/waxed_copper_chest.json +6 -0
  62. package/assets/builtin/minecraft/items/waxed_copper_golem_statue.json +6 -0
  63. package/assets/builtin/minecraft/items/waxed_exposed_copper_chest.json +6 -0
  64. package/assets/builtin/minecraft/items/waxed_exposed_copper_golem_statue.json +6 -0
  65. package/assets/builtin/minecraft/items/waxed_oxidized_copper_chest.json +6 -0
  66. package/assets/builtin/minecraft/items/waxed_oxidized_copper_golem_statue.json +6 -0
  67. package/assets/builtin/minecraft/items/waxed_weathered_copper_chest.json +6 -0
  68. package/assets/builtin/minecraft/items/waxed_weathered_copper_golem_statue.json +6 -0
  69. package/assets/builtin/minecraft/items/weathered_copper_chest.json +6 -0
  70. package/assets/builtin/minecraft/items/weathered_copper_golem_statue.json +6 -0
  71. package/assets/builtin/minecraft/items/white_banner.json +12 -0
  72. package/assets/builtin/minecraft/items/white_shulker_box.json +6 -0
  73. package/assets/builtin/minecraft/items/wither_skeleton_skull.json +6 -0
  74. package/assets/builtin/minecraft/items/yellow_banner.json +12 -0
  75. package/assets/builtin/minecraft/items/yellow_shulker_box.json +6 -0
  76. package/assets/builtin/minecraft/items/zombie_head.json +6 -0
  77. package/assets/builtin/minecraft/models/item/generated.json +30 -0
  78. package/assets/builtin/minecraft/textures/item/empty.png +0 -0
  79. package/assets/builtin/minecraft/textures/item/unknown.png +0 -0
  80. package/assets/builtin/mobheads/items/allay.json +6 -0
  81. package/assets/builtin/mobheads/items/armadillo.json +6 -0
  82. package/assets/builtin/mobheads/items/axolotl.json +6 -0
  83. package/assets/builtin/mobheads/items/bat.json +6 -0
  84. package/assets/builtin/mobheads/items/bee.json +6 -0
  85. package/assets/builtin/mobheads/items/blaze.json +6 -0
  86. package/assets/builtin/mobheads/items/bogged.json +6 -0
  87. package/assets/builtin/mobheads/items/breeze.json +6 -0
  88. package/assets/builtin/mobheads/items/camel.json +6 -0
  89. package/assets/builtin/mobheads/items/camel_husk.json +6 -0
  90. package/assets/builtin/mobheads/items/cat.json +6 -0
  91. package/assets/builtin/mobheads/items/cave_spider.json +6 -0
  92. package/assets/builtin/mobheads/items/chicken.json +6 -0
  93. package/assets/builtin/mobheads/items/cod.json +6 -0
  94. package/assets/builtin/mobheads/items/copper_golem.json +6 -0
  95. package/assets/builtin/mobheads/items/cow.json +6 -0
  96. package/assets/builtin/mobheads/items/creaking.json +6 -0
  97. package/assets/builtin/mobheads/items/creeper.json +6 -0
  98. package/assets/builtin/mobheads/items/dolphin.json +6 -0
  99. package/assets/builtin/mobheads/items/donkey.json +6 -0
  100. package/assets/builtin/mobheads/items/drowned.json +6 -0
  101. package/assets/builtin/mobheads/items/elder_guardian.json +6 -0
  102. package/assets/builtin/mobheads/items/ender_dragon.json +6 -0
  103. package/assets/builtin/mobheads/items/enderman.json +6 -0
  104. package/assets/builtin/mobheads/items/endermite.json +6 -0
  105. package/assets/builtin/mobheads/items/evoker.json +6 -0
  106. package/assets/builtin/mobheads/items/fox.json +6 -0
  107. package/assets/builtin/mobheads/items/frog.json +6 -0
  108. package/assets/builtin/mobheads/items/ghast.json +6 -0
  109. package/assets/builtin/mobheads/items/giant.json +6 -0
  110. package/assets/builtin/mobheads/items/glow_squid.json +6 -0
  111. package/assets/builtin/mobheads/items/goat.json +6 -0
  112. package/assets/builtin/mobheads/items/guardian.json +6 -0
  113. package/assets/builtin/mobheads/items/happy_ghast.json +6 -0
  114. package/assets/builtin/mobheads/items/hoglin.json +6 -0
  115. package/assets/builtin/mobheads/items/horse.json +6 -0
  116. package/assets/builtin/mobheads/items/husk.json +6 -0
  117. package/assets/builtin/mobheads/items/illusioner.json +6 -0
  118. package/assets/builtin/mobheads/items/iron_golem.json +6 -0
  119. package/assets/builtin/mobheads/items/llama.json +6 -0
  120. package/assets/builtin/mobheads/items/magma_cube.json +6 -0
  121. package/assets/builtin/mobheads/items/mannequin.json +6 -0
  122. package/assets/builtin/mobheads/items/mooshroom.json +6 -0
  123. package/assets/builtin/mobheads/items/mule.json +6 -0
  124. package/assets/builtin/mobheads/items/nautilus.json +6 -0
  125. package/assets/builtin/mobheads/items/ocelot.json +6 -0
  126. package/assets/builtin/mobheads/items/panda.json +6 -0
  127. package/assets/builtin/mobheads/items/parched.json +6 -0
  128. package/assets/builtin/mobheads/items/parrot.json +6 -0
  129. package/assets/builtin/mobheads/items/phantom.json +6 -0
  130. package/assets/builtin/mobheads/items/pig.json +6 -0
  131. package/assets/builtin/mobheads/items/piglin.json +6 -0
  132. package/assets/builtin/mobheads/items/piglin_brute.json +6 -0
  133. package/assets/builtin/mobheads/items/pillager.json +6 -0
  134. package/assets/builtin/mobheads/items/player.json +6 -0
  135. package/assets/builtin/mobheads/items/polar_bear.json +6 -0
  136. package/assets/builtin/mobheads/items/pufferfish.json +6 -0
  137. package/assets/builtin/mobheads/items/rabbit.json +6 -0
  138. package/assets/builtin/mobheads/items/ravager.json +6 -0
  139. package/assets/builtin/mobheads/items/salmon.json +6 -0
  140. package/assets/builtin/mobheads/items/sheep.json +6 -0
  141. package/assets/builtin/mobheads/items/shulker.json +6 -0
  142. package/assets/builtin/mobheads/items/silverfish.json +6 -0
  143. package/assets/builtin/mobheads/items/skeleton.json +6 -0
  144. package/assets/builtin/mobheads/items/skeleton_horse.json +6 -0
  145. package/assets/builtin/mobheads/items/slime.json +6 -0
  146. package/assets/builtin/mobheads/items/sniffer.json +6 -0
  147. package/assets/builtin/mobheads/items/snow_golem.json +6 -0
  148. package/assets/builtin/mobheads/items/spider.json +6 -0
  149. package/assets/builtin/mobheads/items/squid.json +6 -0
  150. package/assets/builtin/mobheads/items/stray.json +6 -0
  151. package/assets/builtin/mobheads/items/strider.json +6 -0
  152. package/assets/builtin/mobheads/items/sulfur_cube.json +6 -0
  153. package/assets/builtin/mobheads/items/tadpole.json +6 -0
  154. package/assets/builtin/mobheads/items/trader_llama.json +6 -0
  155. package/assets/builtin/mobheads/items/tropical_fish.json +14 -0
  156. package/assets/builtin/mobheads/items/turtle.json +6 -0
  157. package/assets/builtin/mobheads/items/vex.json +6 -0
  158. package/assets/builtin/mobheads/items/villager.json +6 -0
  159. package/assets/builtin/mobheads/items/vindicator.json +6 -0
  160. package/assets/builtin/mobheads/items/wandering_trader.json +6 -0
  161. package/assets/builtin/mobheads/items/warden.json +6 -0
  162. package/assets/builtin/mobheads/items/witch.json +6 -0
  163. package/assets/builtin/mobheads/items/wither.json +6 -0
  164. package/assets/builtin/mobheads/items/wither_skeleton.json +6 -0
  165. package/assets/builtin/mobheads/items/wolf.json +6 -0
  166. package/assets/builtin/mobheads/items/zoglin.json +6 -0
  167. package/assets/builtin/mobheads/items/zombie.json +6 -0
  168. package/assets/builtin/mobheads/items/zombie_horse.json +6 -0
  169. package/assets/builtin/mobheads/items/zombie_nautilus.json +6 -0
  170. package/assets/builtin/mobheads/items/zombie_villager.json +6 -0
  171. package/assets/builtin/mobheads/items/zombified_piglin.json +6 -0
  172. package/assets/builtin/mobheads/models/item/allay.json +6 -0
  173. package/assets/builtin/mobheads/models/item/armadillo.json +41 -0
  174. package/assets/builtin/mobheads/models/item/axolotl.json +36 -0
  175. package/assets/builtin/mobheads/models/item/base/camel.json +59 -0
  176. package/assets/builtin/mobheads/models/item/base/cat.json +52 -0
  177. package/assets/builtin/mobheads/models/item/base/cow.json +56 -0
  178. package/assets/builtin/mobheads/models/item/base/donkey.json +68 -0
  179. package/assets/builtin/mobheads/models/item/base/guardian.json +272 -0
  180. package/assets/builtin/mobheads/models/item/base/head_32_32.json +19 -0
  181. package/assets/builtin/mobheads/models/item/base/head_64_32.json +34 -0
  182. package/assets/builtin/mobheads/models/item/base/head_64_64.json +34 -0
  183. package/assets/builtin/mobheads/models/item/base/head_64_64_overlay.json +34 -0
  184. package/assets/builtin/mobheads/models/item/base/head_display.json +8 -0
  185. package/assets/builtin/mobheads/models/item/base/hoglin.json +81 -0
  186. package/assets/builtin/mobheads/models/item/base/horse.json +80 -0
  187. package/assets/builtin/mobheads/models/item/base/llama.json +64 -0
  188. package/assets/builtin/mobheads/models/item/base/nautilus.json +213 -0
  189. package/assets/builtin/mobheads/models/item/base/piglin.json +80 -0
  190. package/assets/builtin/mobheads/models/item/base/spider.json +32 -0
  191. package/assets/builtin/mobheads/models/item/base/squid.json +116 -0
  192. package/assets/builtin/mobheads/models/item/base/villager.json +43 -0
  193. package/assets/builtin/mobheads/models/item/bat.json +41 -0
  194. package/assets/builtin/mobheads/models/item/bee.json +59 -0
  195. package/assets/builtin/mobheads/models/item/blaze.json +6 -0
  196. package/assets/builtin/mobheads/models/item/bogged.json +113 -0
  197. package/assets/builtin/mobheads/models/item/breeze.json +49 -0
  198. package/assets/builtin/mobheads/models/item/camel.json +6 -0
  199. package/assets/builtin/mobheads/models/item/camel_husk.json +6 -0
  200. package/assets/builtin/mobheads/models/item/cat.json +6 -0
  201. package/assets/builtin/mobheads/models/item/cave_spider.json +6 -0
  202. package/assets/builtin/mobheads/models/item/chicken.json +62 -0
  203. package/assets/builtin/mobheads/models/item/cod.json +98 -0
  204. package/assets/builtin/mobheads/models/item/copper_golem.json +85 -0
  205. package/assets/builtin/mobheads/models/item/cow.json +6 -0
  206. package/assets/builtin/mobheads/models/item/creaking.json +120 -0
  207. package/assets/builtin/mobheads/models/item/creeper.json +6 -0
  208. package/assets/builtin/mobheads/models/item/dolphin.json +33 -0
  209. package/assets/builtin/mobheads/models/item/donkey.json +6 -0
  210. package/assets/builtin/mobheads/models/item/drowned.json +8 -0
  211. package/assets/builtin/mobheads/models/item/elder_guardian.json +6 -0
  212. package/assets/builtin/mobheads/models/item/ender_dragon.json +113 -0
  213. package/assets/builtin/mobheads/models/item/enderman.json +41 -0
  214. package/assets/builtin/mobheads/models/item/endermite.json +59 -0
  215. package/assets/builtin/mobheads/models/item/evoker.json +6 -0
  216. package/assets/builtin/mobheads/models/item/fox.json +55 -0
  217. package/assets/builtin/mobheads/models/item/frog.json +159 -0
  218. package/assets/builtin/mobheads/models/item/ghast.json +131 -0
  219. package/assets/builtin/mobheads/models/item/giant.json +6 -0
  220. package/assets/builtin/mobheads/models/item/glow_squid.json +6 -0
  221. package/assets/builtin/mobheads/models/item/goat.json +56 -0
  222. package/assets/builtin/mobheads/models/item/guardian.json +6 -0
  223. package/assets/builtin/mobheads/models/item/happy_ghast.json +131 -0
  224. package/assets/builtin/mobheads/models/item/hoglin.json +6 -0
  225. package/assets/builtin/mobheads/models/item/horse.json +6 -0
  226. package/assets/builtin/mobheads/models/item/husk.json +6 -0
  227. package/assets/builtin/mobheads/models/item/illusioner.json +6 -0
  228. package/assets/builtin/mobheads/models/item/iron_golem.json +34 -0
  229. package/assets/builtin/mobheads/models/item/llama.json +7 -0
  230. package/assets/builtin/mobheads/models/item/magma_cube.json +100 -0
  231. package/assets/builtin/mobheads/models/item/mooshroom.json +6 -0
  232. package/assets/builtin/mobheads/models/item/mule.json +6 -0
  233. package/assets/builtin/mobheads/models/item/nautilus.json +6 -0
  234. package/assets/builtin/mobheads/models/item/ocelot.json +6 -0
  235. package/assets/builtin/mobheads/models/item/panda.json +61 -0
  236. package/assets/builtin/mobheads/models/item/parched.json +6 -0
  237. package/assets/builtin/mobheads/models/item/parrot.json +73 -0
  238. package/assets/builtin/mobheads/models/item/phantom.json +33 -0
  239. package/assets/builtin/mobheads/models/item/pig.json +35 -0
  240. package/assets/builtin/mobheads/models/item/piglin.json +6 -0
  241. package/assets/builtin/mobheads/models/item/piglin_brute.json +6 -0
  242. package/assets/builtin/mobheads/models/item/pillager.json +6 -0
  243. package/assets/builtin/mobheads/models/item/player.json +6 -0
  244. package/assets/builtin/mobheads/models/item/polar_bear.json +61 -0
  245. package/assets/builtin/mobheads/models/item/pufferfish.json +113 -0
  246. package/assets/builtin/mobheads/models/item/rabbit.json +50 -0
  247. package/assets/builtin/mobheads/models/item/ravager.json +75 -0
  248. package/assets/builtin/mobheads/models/item/salmon.json +80 -0
  249. package/assets/builtin/mobheads/models/item/sheep.json +34 -0
  250. package/assets/builtin/mobheads/models/item/shulker.json +109 -0
  251. package/assets/builtin/mobheads/models/item/silverfish.json +148 -0
  252. package/assets/builtin/mobheads/models/item/skeleton.json +6 -0
  253. package/assets/builtin/mobheads/models/item/skeleton_horse.json +6 -0
  254. package/assets/builtin/mobheads/models/item/slime.json +69 -0
  255. package/assets/builtin/mobheads/models/item/sniffer.json +85 -0
  256. package/assets/builtin/mobheads/models/item/snow_golem.json +24 -0
  257. package/assets/builtin/mobheads/models/item/spider.json +6 -0
  258. package/assets/builtin/mobheads/models/item/squid.json +6 -0
  259. package/assets/builtin/mobheads/models/item/stray.json +8 -0
  260. package/assets/builtin/mobheads/models/item/strider.json +101 -0
  261. package/assets/builtin/mobheads/models/item/sulfur_cube.json +38 -0
  262. package/assets/builtin/mobheads/models/item/tadpole.json +31 -0
  263. package/assets/builtin/mobheads/models/item/trader_llama.json +7 -0
  264. package/assets/builtin/mobheads/models/item/tropical_fish.json +141 -0
  265. package/assets/builtin/mobheads/models/item/turtle.json +23 -0
  266. package/assets/builtin/mobheads/models/item/vex.json +23 -0
  267. package/assets/builtin/mobheads/models/item/villager.json +6 -0
  268. package/assets/builtin/mobheads/models/item/vindicator.json +6 -0
  269. package/assets/builtin/mobheads/models/item/wandering_trader.json +6 -0
  270. package/assets/builtin/mobheads/models/item/warden.json +92 -0
  271. package/assets/builtin/mobheads/models/item/witch.json +110 -0
  272. package/assets/builtin/mobheads/models/item/wither.json +22 -0
  273. package/assets/builtin/mobheads/models/item/wither_skeleton.json +6 -0
  274. package/assets/builtin/mobheads/models/item/wolf.json +59 -0
  275. package/assets/builtin/mobheads/models/item/zoglin.json +6 -0
  276. package/assets/builtin/mobheads/models/item/zombie.json +6 -0
  277. package/assets/builtin/mobheads/models/item/zombie_horse.json +6 -0
  278. package/assets/builtin/mobheads/models/item/zombie_nautilus.json +6 -0
  279. package/assets/builtin/mobheads/models/item/zombie_villager.json +6 -0
  280. package/assets/builtin/mobheads/models/item/zombified_piglin.json +6 -0
  281. package/assets/builtin/renderchest/atlases/items.json +9 -0
  282. package/assets/builtin/renderchest/items/empty.json +5 -0
  283. package/assets/builtin/renderchest/items/unknown.json +6 -0
  284. package/assets/builtin/renderchest/models/item/banner.json +50 -0
  285. package/assets/builtin/renderchest/models/item/chest/chest.json +6 -0
  286. package/assets/builtin/renderchest/models/item/chest/copper_chest.json +6 -0
  287. package/assets/builtin/renderchest/models/item/chest/ender_chest.json +6 -0
  288. package/assets/builtin/renderchest/models/item/chest/exposed_copper_chest.json +6 -0
  289. package/assets/builtin/renderchest/models/item/chest/oxidized_copper_chest.json +6 -0
  290. package/assets/builtin/renderchest/models/item/chest/trapped_chest.json +6 -0
  291. package/assets/builtin/renderchest/models/item/chest/weathered_copper_chest.json +6 -0
  292. package/assets/builtin/renderchest/models/item/chest.json +47 -0
  293. package/assets/builtin/renderchest/models/item/conduit.json +24 -0
  294. package/assets/builtin/renderchest/models/item/copper_golem_statue/copper_golem_statue.json +6 -0
  295. package/assets/builtin/renderchest/models/item/copper_golem_statue/exposed_copper_golem_statue.json +6 -0
  296. package/assets/builtin/renderchest/models/item/copper_golem_statue/oxidized_copper_golem_statue.json +6 -0
  297. package/assets/builtin/renderchest/models/item/copper_golem_statue/weathered_copper_golem_statue.json +6 -0
  298. package/assets/builtin/renderchest/models/item/copper_golem_statue.json +132 -0
  299. package/assets/builtin/renderchest/models/item/decorated_pot.json +69 -0
  300. package/assets/builtin/renderchest/models/item/decorated_pot_base.json +37 -0
  301. package/assets/builtin/renderchest/models/item/decorated_pot_overlay.json +14 -0
  302. package/assets/builtin/renderchest/models/item/empty.json +6 -0
  303. package/assets/builtin/renderchest/models/item/filled_map/base.json +6 -0
  304. package/assets/builtin/renderchest/models/item/filled_map/overlay.json +6 -0
  305. package/assets/builtin/renderchest/models/item/firework_star/base.json +6 -0
  306. package/assets/builtin/renderchest/models/item/firework_star/overlay.json +6 -0
  307. package/assets/builtin/renderchest/models/item/potion/arrow_base.json +6 -0
  308. package/assets/builtin/renderchest/models/item/potion/arrow_head.json +6 -0
  309. package/assets/builtin/renderchest/models/item/potion/bottle.json +6 -0
  310. package/assets/builtin/renderchest/models/item/potion/bottle_lingering.json +6 -0
  311. package/assets/builtin/renderchest/models/item/potion/bottle_splash.json +6 -0
  312. package/assets/builtin/renderchest/models/item/potion/content.json +6 -0
  313. package/assets/builtin/renderchest/models/item/shield.json +41 -0
  314. package/assets/builtin/renderchest/models/item/shulker_box/black_shulker_box.json +6 -0
  315. package/assets/builtin/renderchest/models/item/shulker_box/blue_shulker_box.json +6 -0
  316. package/assets/builtin/renderchest/models/item/shulker_box/brown_shulker_box.json +6 -0
  317. package/assets/builtin/renderchest/models/item/shulker_box/cyan_shulker_box.json +6 -0
  318. package/assets/builtin/renderchest/models/item/shulker_box/gray_shulker_box.json +6 -0
  319. package/assets/builtin/renderchest/models/item/shulker_box/green_shulker_box.json +6 -0
  320. package/assets/builtin/renderchest/models/item/shulker_box/light_blue_shulker_box.json +6 -0
  321. package/assets/builtin/renderchest/models/item/shulker_box/light_gray_shulker_box.json +6 -0
  322. package/assets/builtin/renderchest/models/item/shulker_box/lime_shulker_box.json +6 -0
  323. package/assets/builtin/renderchest/models/item/shulker_box/magenta_shulker_box.json +6 -0
  324. package/assets/builtin/renderchest/models/item/shulker_box/orange_shulker_box.json +6 -0
  325. package/assets/builtin/renderchest/models/item/shulker_box/pink_shulker_box.json +6 -0
  326. package/assets/builtin/renderchest/models/item/shulker_box/purple_shulker_box.json +6 -0
  327. package/assets/builtin/renderchest/models/item/shulker_box/red_shulker_box.json +6 -0
  328. package/assets/builtin/renderchest/models/item/shulker_box/shulker_box.json +6 -0
  329. package/assets/builtin/renderchest/models/item/shulker_box/white_shulker_box.json +6 -0
  330. package/assets/builtin/renderchest/models/item/shulker_box/yellow_shulker_box.json +6 -0
  331. package/assets/builtin/renderchest/models/item/shulker_box.json +98 -0
  332. package/assets/builtin/renderchest/models/item/unknown.json +6 -0
  333. package/assets/builtin/renderchest/textures/item/empty.png +0 -0
  334. package/assets/builtin/renderchest/textures/item/unknown.png +0 -0
  335. package/assets/builtin-bed-compat/minecraft/models/item/black_bed.json +6 -0
  336. package/assets/builtin-bed-compat/minecraft/models/item/blue_bed.json +6 -0
  337. package/assets/builtin-bed-compat/minecraft/models/item/brown_bed.json +6 -0
  338. package/assets/builtin-bed-compat/minecraft/models/item/cyan_bed.json +6 -0
  339. package/assets/builtin-bed-compat/minecraft/models/item/gray_bed.json +6 -0
  340. package/assets/builtin-bed-compat/minecraft/models/item/green_bed.json +6 -0
  341. package/assets/builtin-bed-compat/minecraft/models/item/light_blue_bed.json +6 -0
  342. package/assets/builtin-bed-compat/minecraft/models/item/light_gray_bed.json +6 -0
  343. package/assets/builtin-bed-compat/minecraft/models/item/lime_bed.json +6 -0
  344. package/assets/builtin-bed-compat/minecraft/models/item/magenta_bed.json +6 -0
  345. package/assets/builtin-bed-compat/minecraft/models/item/orange_bed.json +6 -0
  346. package/assets/builtin-bed-compat/minecraft/models/item/pink_bed.json +6 -0
  347. package/assets/builtin-bed-compat/minecraft/models/item/purple_bed.json +6 -0
  348. package/assets/builtin-bed-compat/minecraft/models/item/red_bed.json +6 -0
  349. package/assets/builtin-bed-compat/minecraft/models/item/white_bed.json +6 -0
  350. package/assets/builtin-bed-compat/minecraft/models/item/yellow_bed.json +6 -0
  351. package/assets/builtin-bed-compat/renderchest/models/item/bed.json +72 -0
  352. package/assets/builtin-legacy/minecraft/atlases/misc.json +19 -0
  353. package/assets/builtin-legacy/minecraft/models/item/black_banner.json +3 -0
  354. package/assets/builtin-legacy/minecraft/models/item/black_bed.json +6 -0
  355. package/assets/builtin-legacy/minecraft/models/item/black_shulker_box.json +6 -0
  356. package/assets/builtin-legacy/minecraft/models/item/blue_banner.json +3 -0
  357. package/assets/builtin-legacy/minecraft/models/item/blue_bed.json +6 -0
  358. package/assets/builtin-legacy/minecraft/models/item/blue_shulker_box.json +6 -0
  359. package/assets/builtin-legacy/minecraft/models/item/brown_banner.json +3 -0
  360. package/assets/builtin-legacy/minecraft/models/item/brown_bed.json +6 -0
  361. package/assets/builtin-legacy/minecraft/models/item/brown_shulker_box.json +6 -0
  362. package/assets/builtin-legacy/minecraft/models/item/chest.json +6 -0
  363. package/assets/builtin-legacy/minecraft/models/item/conduit.json +6 -0
  364. package/assets/builtin-legacy/minecraft/models/item/creeper_head.json +3 -0
  365. package/assets/builtin-legacy/minecraft/models/item/cyan_banner.json +3 -0
  366. package/assets/builtin-legacy/minecraft/models/item/cyan_bed.json +6 -0
  367. package/assets/builtin-legacy/minecraft/models/item/cyan_shulker_box.json +6 -0
  368. package/assets/builtin-legacy/minecraft/models/item/decorated_pot.json +3 -0
  369. package/assets/builtin-legacy/minecraft/models/item/dragon_head.json +3 -0
  370. package/assets/builtin-legacy/minecraft/models/item/empty.json +3 -0
  371. package/assets/builtin-legacy/minecraft/models/item/ender_chest.json +6 -0
  372. package/assets/builtin-legacy/minecraft/models/item/gray_banner.json +3 -0
  373. package/assets/builtin-legacy/minecraft/models/item/gray_bed.json +6 -0
  374. package/assets/builtin-legacy/minecraft/models/item/gray_shulker_box.json +6 -0
  375. package/assets/builtin-legacy/minecraft/models/item/green_banner.json +3 -0
  376. package/assets/builtin-legacy/minecraft/models/item/green_bed.json +6 -0
  377. package/assets/builtin-legacy/minecraft/models/item/green_shulker_box.json +6 -0
  378. package/assets/builtin-legacy/minecraft/models/item/light_blue_banner.json +3 -0
  379. package/assets/builtin-legacy/minecraft/models/item/light_blue_bed.json +6 -0
  380. package/assets/builtin-legacy/minecraft/models/item/light_blue_shulker_box.json +6 -0
  381. package/assets/builtin-legacy/minecraft/models/item/light_gray_banner.json +3 -0
  382. package/assets/builtin-legacy/minecraft/models/item/light_gray_bed.json +6 -0
  383. package/assets/builtin-legacy/minecraft/models/item/light_gray_shulker_box.json +6 -0
  384. package/assets/builtin-legacy/minecraft/models/item/lime_banner.json +3 -0
  385. package/assets/builtin-legacy/minecraft/models/item/lime_bed.json +6 -0
  386. package/assets/builtin-legacy/minecraft/models/item/lime_shulker_box.json +6 -0
  387. package/assets/builtin-legacy/minecraft/models/item/magenta_banner.json +3 -0
  388. package/assets/builtin-legacy/minecraft/models/item/magenta_bed.json +6 -0
  389. package/assets/builtin-legacy/minecraft/models/item/magenta_shulker_box.json +6 -0
  390. package/assets/builtin-legacy/minecraft/models/item/orange_banner.json +3 -0
  391. package/assets/builtin-legacy/minecraft/models/item/orange_bed.json +6 -0
  392. package/assets/builtin-legacy/minecraft/models/item/orange_shulker_box.json +6 -0
  393. package/assets/builtin-legacy/minecraft/models/item/piglin_head.json +3 -0
  394. package/assets/builtin-legacy/minecraft/models/item/pink_banner.json +3 -0
  395. package/assets/builtin-legacy/minecraft/models/item/pink_bed.json +6 -0
  396. package/assets/builtin-legacy/minecraft/models/item/pink_shulker_box.json +6 -0
  397. package/assets/builtin-legacy/minecraft/models/item/player_head.json +3 -0
  398. package/assets/builtin-legacy/minecraft/models/item/purple_banner.json +3 -0
  399. package/assets/builtin-legacy/minecraft/models/item/purple_bed.json +6 -0
  400. package/assets/builtin-legacy/minecraft/models/item/purple_shulker_box.json +6 -0
  401. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_amethyst_trim.json +7 -0
  402. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_base.json +6 -0
  403. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_copper_trim.json +7 -0
  404. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_diamond_trim.json +7 -0
  405. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_emerald_trim.json +7 -0
  406. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_gold_trim.json +7 -0
  407. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_iron_trim.json +7 -0
  408. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_lapis_trim.json +7 -0
  409. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_netherite_trim.json +7 -0
  410. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_overlay.json +6 -0
  411. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_quartz_trim.json +7 -0
  412. package/assets/builtin-legacy/minecraft/models/item/rc_leather_boots_redstone_trim.json +7 -0
  413. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_amethyst_trim.json +7 -0
  414. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_base.json +6 -0
  415. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_copper_trim.json +7 -0
  416. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_diamond_trim.json +7 -0
  417. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_emerald_trim.json +7 -0
  418. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_gold_trim.json +7 -0
  419. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_iron_trim.json +7 -0
  420. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_lapis_trim.json +7 -0
  421. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_netherite_trim.json +7 -0
  422. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_overlay.json +6 -0
  423. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_quartz_trim.json +7 -0
  424. package/assets/builtin-legacy/minecraft/models/item/rc_leather_chestplate_redstone_trim.json +7 -0
  425. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_amethyst_trim.json +7 -0
  426. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_base.json +6 -0
  427. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_copper_trim.json +7 -0
  428. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_diamond_trim.json +7 -0
  429. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_emerald_trim.json +7 -0
  430. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_gold_trim.json +7 -0
  431. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_iron_trim.json +7 -0
  432. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_lapis_trim.json +7 -0
  433. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_netherite_trim.json +7 -0
  434. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_overlay.json +6 -0
  435. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_quartz_trim.json +7 -0
  436. package/assets/builtin-legacy/minecraft/models/item/rc_leather_helmet_redstone_trim.json +7 -0
  437. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_amethyst_trim.json +7 -0
  438. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_base.json +6 -0
  439. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_copper_trim.json +7 -0
  440. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_diamond_trim.json +7 -0
  441. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_emerald_trim.json +7 -0
  442. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_gold_trim.json +7 -0
  443. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_iron_trim.json +7 -0
  444. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_lapis_trim.json +7 -0
  445. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_netherite_trim.json +7 -0
  446. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_overlay.json +6 -0
  447. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_quartz_trim.json +7 -0
  448. package/assets/builtin-legacy/minecraft/models/item/rc_leather_leggings_redstone_trim.json +7 -0
  449. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_angler_pottery_sherd.json +9 -0
  450. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_archer_pottery_sherd.json +9 -0
  451. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_arms_up_pottery_sherd.json +9 -0
  452. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_blade_pottery_sherd.json +9 -0
  453. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_brewer_pottery_sherd.json +9 -0
  454. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_brick.json +9 -0
  455. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_burn_pottery_sherd.json +9 -0
  456. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_danger_pottery_sherd.json +9 -0
  457. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_explorer_pottery_sherd.json +9 -0
  458. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_friend_pottery_sherd.json +9 -0
  459. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_heart_pottery_sherd.json +9 -0
  460. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_heartbreak_pottery_sherd.json +9 -0
  461. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_howl_pottery_sherd.json +9 -0
  462. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_miner_pottery_sherd.json +9 -0
  463. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_mourner_pottery_sherd.json +9 -0
  464. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_plenty_pottery_sherd.json +9 -0
  465. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_prize_pottery_sherd.json +9 -0
  466. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_sheaf_pottery_sherd.json +9 -0
  467. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_shelter_pottery_sherd.json +9 -0
  468. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_skull_pottery_sherd.json +9 -0
  469. package/assets/builtin-legacy/minecraft/models/item/rc_pot_b_snort_pottery_sherd.json +9 -0
  470. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_angler_pottery_sherd.json +6 -0
  471. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_archer_pottery_sherd.json +6 -0
  472. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_arms_up_pottery_sherd.json +6 -0
  473. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_blade_pottery_sherd.json +6 -0
  474. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_brewer_pottery_sherd.json +6 -0
  475. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_brick.json +6 -0
  476. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_burn_pottery_sherd.json +6 -0
  477. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_danger_pottery_sherd.json +6 -0
  478. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_explorer_pottery_sherd.json +6 -0
  479. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_friend_pottery_sherd.json +6 -0
  480. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_heart_pottery_sherd.json +6 -0
  481. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_heartbreak_pottery_sherd.json +6 -0
  482. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_howl_pottery_sherd.json +6 -0
  483. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_miner_pottery_sherd.json +6 -0
  484. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_mourner_pottery_sherd.json +6 -0
  485. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_plenty_pottery_sherd.json +6 -0
  486. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_prize_pottery_sherd.json +6 -0
  487. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_sheaf_pottery_sherd.json +6 -0
  488. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_shelter_pottery_sherd.json +6 -0
  489. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_skull_pottery_sherd.json +6 -0
  490. package/assets/builtin-legacy/minecraft/models/item/rc_pot_o_snort_pottery_sherd.json +6 -0
  491. package/assets/builtin-legacy/minecraft/models/item/rc_potion_bottle.json +6 -0
  492. package/assets/builtin-legacy/minecraft/models/item/rc_potion_bottle_lingering.json +6 -0
  493. package/assets/builtin-legacy/minecraft/models/item/rc_potion_bottle_splash.json +6 -0
  494. package/assets/builtin-legacy/minecraft/models/item/rc_potion_content.json +6 -0
  495. package/assets/builtin-legacy/minecraft/models/item/rc_tipped_arrow_base.json +6 -0
  496. package/assets/builtin-legacy/minecraft/models/item/rc_tipped_arrow_head.json +6 -0
  497. package/assets/builtin-legacy/minecraft/models/item/red_banner.json +3 -0
  498. package/assets/builtin-legacy/minecraft/models/item/red_bed.json +6 -0
  499. package/assets/builtin-legacy/minecraft/models/item/red_shulker_box.json +6 -0
  500. package/assets/builtin-legacy/minecraft/models/item/shield.json +6 -0
  501. package/assets/builtin-legacy/minecraft/models/item/shulker_box.json +6 -0
  502. package/assets/builtin-legacy/minecraft/models/item/skeleton_skull.json +3 -0
  503. package/assets/builtin-legacy/minecraft/models/item/trapped_chest.json +6 -0
  504. package/assets/builtin-legacy/minecraft/models/item/unknown.json +3 -0
  505. package/assets/builtin-legacy/minecraft/models/item/white_banner.json +3 -0
  506. package/assets/builtin-legacy/minecraft/models/item/white_bed.json +6 -0
  507. package/assets/builtin-legacy/minecraft/models/item/white_shulker_box.json +6 -0
  508. package/assets/builtin-legacy/minecraft/models/item/wither_skeleton_skull.json +3 -0
  509. package/assets/builtin-legacy/minecraft/models/item/yellow_banner.json +3 -0
  510. package/assets/builtin-legacy/minecraft/models/item/yellow_bed.json +6 -0
  511. package/assets/builtin-legacy/minecraft/models/item/yellow_shulker_box.json +6 -0
  512. package/assets/builtin-legacy/minecraft/models/item/zombie_head.json +3 -0
  513. package/assets/builtin-legacy/mobheads/models/item/allay.json +6 -0
  514. package/assets/builtin-legacy/mobheads/models/item/armadillo.json +41 -0
  515. package/assets/builtin-legacy/mobheads/models/item/axolotl.json +36 -0
  516. package/assets/builtin-legacy/mobheads/models/item/base/cat.json +52 -0
  517. package/assets/builtin-legacy/mobheads/models/item/base/cow.json +43 -0
  518. package/assets/builtin-legacy/mobheads/models/item/base/donkey.json +68 -0
  519. package/assets/builtin-legacy/mobheads/models/item/base/guardian.json +272 -0
  520. package/assets/builtin-legacy/mobheads/models/item/base/head_32_32.json +19 -0
  521. package/assets/builtin-legacy/mobheads/models/item/base/head_64_32.json +19 -0
  522. package/assets/builtin-legacy/mobheads/models/item/base/head_64_64.json +19 -0
  523. package/assets/builtin-legacy/mobheads/models/item/base/head_display.json +8 -0
  524. package/assets/builtin-legacy/mobheads/models/item/base/hoglin.json +81 -0
  525. package/assets/builtin-legacy/mobheads/models/item/base/horse.json +80 -0
  526. package/assets/builtin-legacy/mobheads/models/item/base/llama.json +64 -0
  527. package/assets/builtin-legacy/mobheads/models/item/base/piglin.json +80 -0
  528. package/assets/builtin-legacy/mobheads/models/item/base/spider.json +32 -0
  529. package/assets/builtin-legacy/mobheads/models/item/base/squid.json +116 -0
  530. package/assets/builtin-legacy/mobheads/models/item/base/villager.json +43 -0
  531. package/assets/builtin-legacy/mobheads/models/item/bat.json +41 -0
  532. package/assets/builtin-legacy/mobheads/models/item/bee.json +59 -0
  533. package/assets/builtin-legacy/mobheads/models/item/blaze.json +6 -0
  534. package/assets/builtin-legacy/mobheads/models/item/breeze.json +49 -0
  535. package/assets/builtin-legacy/mobheads/models/item/camel.json +62 -0
  536. package/assets/builtin-legacy/mobheads/models/item/cat.json +6 -0
  537. package/assets/builtin-legacy/mobheads/models/item/cave_spider.json +6 -0
  538. package/assets/builtin-legacy/mobheads/models/item/chicken.json +46 -0
  539. package/assets/builtin-legacy/mobheads/models/item/cod.json +98 -0
  540. package/assets/builtin-legacy/mobheads/models/item/cow.json +6 -0
  541. package/assets/builtin-legacy/mobheads/models/item/creeper.json +6 -0
  542. package/assets/builtin-legacy/mobheads/models/item/dolphin.json +33 -0
  543. package/assets/builtin-legacy/mobheads/models/item/donkey.json +6 -0
  544. package/assets/builtin-legacy/mobheads/models/item/drowned.json +35 -0
  545. package/assets/builtin-legacy/mobheads/models/item/elder_guardian.json +6 -0
  546. package/assets/builtin-legacy/mobheads/models/item/ender_dragon.json +113 -0
  547. package/assets/builtin-legacy/mobheads/models/item/enderman.json +41 -0
  548. package/assets/builtin-legacy/mobheads/models/item/endermite.json +59 -0
  549. package/assets/builtin-legacy/mobheads/models/item/evoker.json +6 -0
  550. package/assets/builtin-legacy/mobheads/models/item/fox.json +55 -0
  551. package/assets/builtin-legacy/mobheads/models/item/frog.json +159 -0
  552. package/assets/builtin-legacy/mobheads/models/item/ghast.json +131 -0
  553. package/assets/builtin-legacy/mobheads/models/item/giant.json +6 -0
  554. package/assets/builtin-legacy/mobheads/models/item/glow_squid.json +6 -0
  555. package/assets/builtin-legacy/mobheads/models/item/goat.json +56 -0
  556. package/assets/builtin-legacy/mobheads/models/item/guardian.json +6 -0
  557. package/assets/builtin-legacy/mobheads/models/item/hoglin.json +6 -0
  558. package/assets/builtin-legacy/mobheads/models/item/horse.json +6 -0
  559. package/assets/builtin-legacy/mobheads/models/item/husk.json +6 -0
  560. package/assets/builtin-legacy/mobheads/models/item/illusioner.json +6 -0
  561. package/assets/builtin-legacy/mobheads/models/item/iron_golem.json +34 -0
  562. package/assets/builtin-legacy/mobheads/models/item/llama.json +7 -0
  563. package/assets/builtin-legacy/mobheads/models/item/magma_cube.json +52 -0
  564. package/assets/builtin-legacy/mobheads/models/item/mooshroom.json +6 -0
  565. package/assets/builtin-legacy/mobheads/models/item/mule.json +6 -0
  566. package/assets/builtin-legacy/mobheads/models/item/ocelot.json +6 -0
  567. package/assets/builtin-legacy/mobheads/models/item/panda.json +61 -0
  568. package/assets/builtin-legacy/mobheads/models/item/parrot.json +73 -0
  569. package/assets/builtin-legacy/mobheads/models/item/phantom.json +33 -0
  570. package/assets/builtin-legacy/mobheads/models/item/pig.json +35 -0
  571. package/assets/builtin-legacy/mobheads/models/item/piglin.json +6 -0
  572. package/assets/builtin-legacy/mobheads/models/item/piglin_brute.json +6 -0
  573. package/assets/builtin-legacy/mobheads/models/item/pillager.json +6 -0
  574. package/assets/builtin-legacy/mobheads/models/item/player.json +6 -0
  575. package/assets/builtin-legacy/mobheads/models/item/polar_bear.json +61 -0
  576. package/assets/builtin-legacy/mobheads/models/item/pufferfish.json +113 -0
  577. package/assets/builtin-legacy/mobheads/models/item/rabbit.json +59 -0
  578. package/assets/builtin-legacy/mobheads/models/item/ravager.json +75 -0
  579. package/assets/builtin-legacy/mobheads/models/item/salmon.json +80 -0
  580. package/assets/builtin-legacy/mobheads/models/item/sheep.json +34 -0
  581. package/assets/builtin-legacy/mobheads/models/item/shulker.json +109 -0
  582. package/assets/builtin-legacy/mobheads/models/item/silverfish.json +148 -0
  583. package/assets/builtin-legacy/mobheads/models/item/skeleton.json +6 -0
  584. package/assets/builtin-legacy/mobheads/models/item/skeleton_horse.json +6 -0
  585. package/assets/builtin-legacy/mobheads/models/item/slime.json +69 -0
  586. package/assets/builtin-legacy/mobheads/models/item/sniffer.json +85 -0
  587. package/assets/builtin-legacy/mobheads/models/item/snow_golem.json +24 -0
  588. package/assets/builtin-legacy/mobheads/models/item/spider.json +6 -0
  589. package/assets/builtin-legacy/mobheads/models/item/squid.json +6 -0
  590. package/assets/builtin-legacy/mobheads/models/item/stray.json +35 -0
  591. package/assets/builtin-legacy/mobheads/models/item/strider.json +101 -0
  592. package/assets/builtin-legacy/mobheads/models/item/tadpole.json +31 -0
  593. package/assets/builtin-legacy/mobheads/models/item/trader_llama.json +7 -0
  594. package/assets/builtin-legacy/mobheads/models/item/tropical_fish.json +141 -0
  595. package/assets/builtin-legacy/mobheads/models/item/turtle.json +23 -0
  596. package/assets/builtin-legacy/mobheads/models/item/vex.json +23 -0
  597. package/assets/builtin-legacy/mobheads/models/item/villager.json +6 -0
  598. package/assets/builtin-legacy/mobheads/models/item/vindicator.json +6 -0
  599. package/assets/builtin-legacy/mobheads/models/item/wandering_trader.json +6 -0
  600. package/assets/builtin-legacy/mobheads/models/item/warden.json +92 -0
  601. package/assets/builtin-legacy/mobheads/models/item/witch.json +110 -0
  602. package/assets/builtin-legacy/mobheads/models/item/wither.json +22 -0
  603. package/assets/builtin-legacy/mobheads/models/item/wither_skeleton.json +6 -0
  604. package/assets/builtin-legacy/mobheads/models/item/wolf.json +59 -0
  605. package/assets/builtin-legacy/mobheads/models/item/zoglin.json +6 -0
  606. package/assets/builtin-legacy/mobheads/models/item/zombie.json +6 -0
  607. package/assets/builtin-legacy/mobheads/models/item/zombie_horse.json +6 -0
  608. package/assets/builtin-legacy/mobheads/models/item/zombie_villager.json +6 -0
  609. package/assets/builtin-legacy/mobheads/models/item/zombified_piglin.json +6 -0
  610. package/assets/builtin-legacy/renderchest/atlases/items.json +9 -0
  611. package/assets/builtin-legacy/renderchest/models/item/banner.json +53 -0
  612. package/assets/builtin-legacy/renderchest/models/item/bed.json +72 -0
  613. package/assets/builtin-legacy/renderchest/models/item/chest.json +49 -0
  614. package/assets/builtin-legacy/renderchest/models/item/conduit.json +24 -0
  615. package/assets/builtin-legacy/renderchest/models/item/decorated_pot.json +69 -0
  616. package/assets/builtin-legacy/renderchest/models/item/decorated_pot_base.json +34 -0
  617. package/assets/builtin-legacy/renderchest/models/item/decorated_pot_overlay.json +14 -0
  618. package/assets/builtin-legacy/renderchest/models/item/empty.json +6 -0
  619. package/assets/builtin-legacy/renderchest/models/item/shield.json +38 -0
  620. package/assets/builtin-legacy/renderchest/models/item/shulker_box.json +103 -0
  621. package/assets/builtin-legacy/renderchest/models/item/unknown.json +6 -0
  622. package/assets/builtin-legacy/renderchest/textures/item/empty.png +0 -0
  623. package/assets/builtin-legacy/renderchest/textures/item/unknown.png +0 -0
  624. package/dist/atlas/registry.d.ts +8 -0
  625. package/dist/atlas/registry.js +2 -0
  626. package/dist/atlas/sources.d.ts +2 -0
  627. package/dist/atlas/sources.js +2 -0
  628. package/dist/blend-CHP2-j9U.js +90 -0
  629. package/dist/blend-Qvrn6YgK.d.ts +36 -0
  630. package/dist/builtin-C8GZEN40.js +16 -0
  631. package/dist/builtin.d.ts +5 -0
  632. package/dist/builtin.js +2 -0
  633. package/dist/cli.d.ts +1 -0
  634. package/dist/cli.js +174 -0
  635. package/dist/compose-cph4bfdr.js +27 -0
  636. package/dist/definition-3MBm8ar_.js +117 -0
  637. package/dist/definition-BwX6Xxv0.d.ts +34 -0
  638. package/dist/discovery-BzaOti7l.js +91 -0
  639. package/dist/discovery-CmNYzKPr.d.ts +18 -0
  640. package/dist/download-D9aARBFp.js +34 -0
  641. package/dist/dynamic/generators.d.ts +2 -0
  642. package/dist/dynamic/generators.js +2 -0
  643. package/dist/encode-3u49i-eD.js +108 -0
  644. package/dist/encode-C5kdAm45.d.ts +34 -0
  645. package/dist/entity-fallback-CodtI6v8.js +265 -0
  646. package/dist/face-DC6cNMdz.d.ts +24 -0
  647. package/dist/face-Wfia-_Yx.js +92 -0
  648. package/dist/fluid-bucket-D-GpUQjg.js +88 -0
  649. package/dist/generators-CCB8h0mP.d.ts +23 -0
  650. package/dist/generators-CcVRG30y.js +145 -0
  651. package/dist/geo-B5VqGulc.js +333 -0
  652. package/dist/geometry-BSVmKx5b.d.ts +28 -0
  653. package/dist/geometry-uIDha8S4.js +229 -0
  654. package/dist/index.d.ts +20 -0
  655. package/dist/index.js +20 -0
  656. package/dist/item-styles-DJ3LWZS2.js +174 -0
  657. package/dist/items/definition.d.ts +2 -0
  658. package/dist/items/definition.js +2 -0
  659. package/dist/items/discovery.d.ts +2 -0
  660. package/dist/items/discovery.js +2 -0
  661. package/dist/jar-6T3xdgaL.d.ts +21 -0
  662. package/dist/jar-Bt3i0ls4.js +119 -0
  663. package/dist/legacy-reshape-CewShfF3.js +203 -0
  664. package/dist/legacy-tints-B09J0Rxh.js +169 -0
  665. package/dist/lighting--5myudVu.js +83 -0
  666. package/dist/lighting-3FGRC3Af.d.ts +42 -0
  667. package/dist/loader-C-eqwp3M.js +359 -0
  668. package/dist/loader-CBzn3Koc.js +228 -0
  669. package/dist/loader-TFFNV4Jl.d.ts +88 -0
  670. package/dist/loader-lCkMRDH4.d.ts +69 -0
  671. package/dist/locator-jDbdUeTd.d.ts +24 -0
  672. package/dist/locator-ycZzh_6z.js +54 -0
  673. package/dist/manager-CoZaeQTu.d.ts +88 -0
  674. package/dist/manager-dfI7b9N4.js +150 -0
  675. package/dist/minify-CIV6enbr.d.ts +11 -0
  676. package/dist/minify-bjMRmr5J.js +31 -0
  677. package/dist/models/loader.d.ts +2 -0
  678. package/dist/models/loader.js +2 -0
  679. package/dist/models/types.d.ts +2 -0
  680. package/dist/models/types.js +11 -0
  681. package/dist/mods/prepare.d.ts +2 -0
  682. package/dist/mods/prepare.js +2 -0
  683. package/dist/mods/synthesize.d.ts +10 -0
  684. package/dist/mods/synthesize.js +2 -0
  685. package/dist/output/encode.d.ts +2 -0
  686. package/dist/output/encode.js +2 -0
  687. package/dist/output/item-styles.d.ts +10 -0
  688. package/dist/output/item-styles.js +2 -0
  689. package/dist/output/minify.d.ts +2 -0
  690. package/dist/output/minify.js +2 -0
  691. package/dist/output/stylesheet.d.ts +2 -0
  692. package/dist/output/stylesheet.js +2 -0
  693. package/dist/prepare-Bvc5ve2m.js +68 -0
  694. package/dist/prepare-DROxBZp1.js +112 -0
  695. package/dist/prepare-DnnGGv9k.d.ts +25 -0
  696. package/dist/prepare-wfWtaz_X.d.ts +45 -0
  697. package/dist/rasterizer-ABgsWTYN.js +139 -0
  698. package/dist/rasterizer-CVOlRsuw.d.ts +41 -0
  699. package/dist/registry-C9E7jyzG.js +28 -0
  700. package/dist/render/blend.d.ts +2 -0
  701. package/dist/render/blend.js +2 -0
  702. package/dist/render/compose.d.ts +6 -0
  703. package/dist/render/compose.js +2 -0
  704. package/dist/render/entity-fallback.d.ts +30 -0
  705. package/dist/render/entity-fallback.js +2 -0
  706. package/dist/render/face.d.ts +2 -0
  707. package/dist/render/face.js +2 -0
  708. package/dist/render/fluid-bucket.d.ts +14 -0
  709. package/dist/render/fluid-bucket.js +2 -0
  710. package/dist/render/geo.d.ts +54 -0
  711. package/dist/render/geo.js +2 -0
  712. package/dist/render/geometry.d.ts +2 -0
  713. package/dist/render/geometry.js +2 -0
  714. package/dist/render/legacy-tints.d.ts +12 -0
  715. package/dist/render/legacy-tints.js +2 -0
  716. package/dist/render/lighting.d.ts +2 -0
  717. package/dist/render/lighting.js +2 -0
  718. package/dist/render/obj.d.ts +24 -0
  719. package/dist/render/obj.js +2 -0
  720. package/dist/render/rasterizer.d.ts +2 -0
  721. package/dist/render/rasterizer.js +2 -0
  722. package/dist/render/renderer.d.ts +2 -0
  723. package/dist/render/renderer.js +2 -0
  724. package/dist/render/tints.d.ts +2 -0
  725. package/dist/render/tints.js +2 -0
  726. package/dist/render/vector.d.ts +2 -0
  727. package/dist/render/vector.js +2 -0
  728. package/dist/renderer-CmOz6WI9.js +507 -0
  729. package/dist/renderer-DQfv6axF.d.ts +44 -0
  730. package/dist/resources/jar.d.ts +2 -0
  731. package/dist/resources/jar.js +2 -0
  732. package/dist/resources/locator.d.ts +2 -0
  733. package/dist/resources/locator.js +2 -0
  734. package/dist/resources/manager.d.ts +2 -0
  735. package/dist/resources/manager.js +2 -0
  736. package/dist/resources/synthetic.d.ts +2 -0
  737. package/dist/resources/synthetic.js +2 -0
  738. package/dist/run-BK7Q8WZ3.d.ts +54 -0
  739. package/dist/run-Dr6BfyN9.js +316 -0
  740. package/dist/run.d.ts +3 -0
  741. package/dist/run.js +3 -0
  742. package/dist/sources-Bxk-WOzH.js +202 -0
  743. package/dist/sources-DH9dk3KF.d.ts +104 -0
  744. package/dist/stylesheet-CovT3B2S.js +71 -0
  745. package/dist/stylesheet-i-t_7sZ7.d.ts +53 -0
  746. package/dist/synthesize-CRgSEmEp.js +128 -0
  747. package/dist/synthetic-CDsj--li.d.ts +34 -0
  748. package/dist/synthetic-DC2bSnGe.js +0 -0
  749. package/dist/textures/loader.d.ts +2 -0
  750. package/dist/textures/loader.js +2 -0
  751. package/dist/tints-FQlxTzUL.js +108 -0
  752. package/dist/tints-Fr6WoPaU.d.ts +22 -0
  753. package/dist/types-COGbtA1t.d.ts +69 -0
  754. package/dist/vector-CCxLae_T.js +190 -0
  755. package/dist/vector-DRKRi4--.d.ts +43 -0
  756. package/dist/versions/download.d.ts +9 -0
  757. package/dist/versions/download.js +2 -0
  758. package/dist/versions/legacy-reshape.d.ts +9 -0
  759. package/dist/versions/legacy-reshape.js +2 -0
  760. package/dist/versions/prepare.d.ts +2 -0
  761. package/dist/versions/prepare.js +2 -0
  762. package/dist/workers/pool.d.ts +23 -0
  763. package/dist/workers/pool.js +67 -0
  764. package/package.json +71 -22
@@ -0,0 +1,316 @@
1
+ import { n as ResourceLocator } from "./locator-ycZzh_6z.js";
2
+ import { n as LayeredResourceManager, t as FolderResourceManager } from "./manager-dfI7b9N4.js";
3
+ import { t as loadAtlasResolver } from "./registry-C9E7jyzG.js";
4
+ import { a as builtinDynamicResources } from "./generators-CcVRG30y.js";
5
+ import { a as defaultProperties } from "./definition-3MBm8ar_.js";
6
+ import { n as discoverItems, r as resolveItem } from "./discovery-BzaOti7l.js";
7
+ import { t as ModelLoader } from "./loader-C-eqwp3M.js";
8
+ import { s as toFloatTexture, t as blendPixel } from "./blend-CHP2-j9U.js";
9
+ import { r as encodeRasterAsset, t as encodeAnimatedIcon } from "./encode-3u49i-eD.js";
10
+ import { t as classifyItemStyle } from "./item-styles-DJ3LWZS2.js";
11
+ import { t as minifyStylesheet } from "./minify-bjMRmr5J.js";
12
+ import { t as generateStylesheet } from "./stylesheet-CovT3B2S.js";
13
+ import { a as renderModelFrames, i as renderModel, n as boxDownscale, r as pointResize } from "./renderer-CmOz6WI9.js";
14
+ import { n as renderEntityFallback, r as spawnEggTints, t as renderDyedVariantFallback } from "./entity-fallback-CodtI6v8.js";
15
+ import { i as renderGeo, t as findGeoForItem } from "./geo-B5VqGulc.js";
16
+ import { t as legacyTintsForChain } from "./legacy-tints-B09J0Rxh.js";
17
+ import { a as resolveTints } from "./tints-FQlxTzUL.js";
18
+ import { n as TextureLoader } from "./loader-CBzn3Koc.js";
19
+ import path from "node:path";
20
+ import { mkdir, writeFile } from "node:fs/promises";
21
+ //#region src/run.ts
22
+ /**
23
+ * Render-run orchestration: discover items, evaluate definitions, render,
24
+ * encode, write images + stylesheet + item list. Unlike upstream, failures are
25
+ * per-item, collected, and reported — a run summary counts files, never log lines.
26
+ */
27
+ async function run(options) {
28
+ const namespaces = options.namespaces ?? ["minecraft"];
29
+ const size = options.size ?? 64;
30
+ const quality = options.quality ?? 2;
31
+ const prefix = options.prefix ?? "rc-";
32
+ const format = options.format ?? "webp";
33
+ const fallback = options.fallback ?? true;
34
+ const lightingProfile = options.lightingProfile ?? "modern";
35
+ const dynamic = options.builtin ? builtinDynamicResources() : null;
36
+ const resources = options.builtin && dynamic ? new LayeredResourceManager([
37
+ new FolderResourceManager(options.builtin),
38
+ dynamic.layer,
39
+ options.resources
40
+ ]) : options.resources;
41
+ const models = new ModelLoader(resources);
42
+ const textures = new TextureLoader(resources);
43
+ const glint = await resolveEnchantmentGlint(resources);
44
+ if (!glint) throw new Error("Missing enchantment glint texture (minecraft:misc/enchanted_glint_item or enchanted_item_glint)");
45
+ const encodedGlint = await encodeRasterAsset(glint, fallback ? ["png", format] : [format]);
46
+ textures.setAtlasResolver(await loadAtlasResolver(resources, (locator) => textures.load(locator)));
47
+ const ids = [];
48
+ const seen = /* @__PURE__ */ new Set();
49
+ if (options.builtin) for (const placeholder of ["renderchest:unknown", "renderchest:empty"]) {
50
+ seen.add(placeholder);
51
+ ids.push(placeholder);
52
+ }
53
+ for (const namespace of namespaces) for (const item of await discoverItems(resources, namespace)) {
54
+ if (seen.has(item.id)) continue;
55
+ if (options.builtin && !await itemExistsIn(options.resources, item.id)) continue;
56
+ seen.add(item.id);
57
+ ids.push(item.id);
58
+ }
59
+ if (dynamic && namespaces.includes("minecraft")) {
60
+ const hasTrims = await resources.hasResource("texture", ResourceLocator.parse("minecraft:trims/color_palettes/trim_palette"));
61
+ const groupAvailable = {
62
+ _armor_trims: hasTrims,
63
+ _leather_armor: hasTrims,
64
+ _decorated_pot: await resources.hasResource("texture", ResourceLocator.parse("minecraft:entity/decorated_pot/decorated_pot_base")),
65
+ _crossbow: await resources.hasResource("model", ResourceLocator.parse("minecraft:item/crossbow_arrow"))
66
+ };
67
+ for (const item of dynamic.items) if ((groupAvailable[item.id.split(":", 1)[0]] ?? true) && !seen.has(item.id)) {
68
+ seen.add(item.id);
69
+ ids.push(item.id);
70
+ }
71
+ }
72
+ const rendered = [];
73
+ const failed = [];
74
+ const spriteFallbacks = [];
75
+ const skippedTemplates = [];
76
+ const styles = [];
77
+ let writtenFiles = 0;
78
+ await mkdir(options.output, { recursive: true });
79
+ for (const [extension, buffer] of encodedGlint) {
80
+ await writeFile(path.join(options.output, `${prefix}enchantment.${extension}`), buffer);
81
+ writtenFiles++;
82
+ }
83
+ let templateParents = null;
84
+ const loadTemplateParents = async () => {
85
+ const parents = /* @__PURE__ */ new Set();
86
+ for (const namespace of namespaces) for (const modelLocator of await resources.listResources("model", namespace)) {
87
+ if (!modelLocator.path.startsWith("item/")) continue;
88
+ const raw = await resources.getResource("model", modelLocator);
89
+ if (!raw) continue;
90
+ try {
91
+ const parent = JSON.parse(raw.toString("utf8")).parent;
92
+ if (typeof parent === "string") parents.add(ResourceLocator.parse(parent).toString());
93
+ } catch {}
94
+ }
95
+ return parents;
96
+ };
97
+ const isTemplateModel = async (id) => {
98
+ const locator = ResourceLocator.parse(id);
99
+ if (await resources.hasResource("itemDefinition", locator)) return false;
100
+ templateParents ??= loadTemplateParents();
101
+ return (await templateParents).has(new ResourceLocator(locator.namespace, `item/${locator.path}`).toString());
102
+ };
103
+ /**
104
+ * Code-rendered models often still ship a flat item sprite (the old
105
+ * pipeline's black-icon audit checked exactly this). A real sprite beats
106
+ * no icon; the fallback is recorded so it is never a silent substitution.
107
+ */
108
+ const spriteFallback = async (id) => {
109
+ const locator = ResourceLocator.parse(id);
110
+ for (const directory of ["item", "items"]) {
111
+ const texture = await textures.load(new ResourceLocator(locator.namespace, `${directory}/${locator.path}`));
112
+ if (texture) {
113
+ const float = toFloatTexture(texture);
114
+ const upscaled = pointResize(float, size * quality, size * quality);
115
+ return quality === 1 ? upscaled : boxDownscale(upscaled, quality);
116
+ }
117
+ }
118
+ return null;
119
+ };
120
+ const concurrency = Math.max(1, options.concurrency ?? 8);
121
+ let nextIndex = 0;
122
+ let completed = 0;
123
+ const renderFrames = async (id) => {
124
+ const instructions = await resolveItem(resources, id, defaultProperties());
125
+ let frames;
126
+ let delaysMs;
127
+ if (instructions.length === 1) {
128
+ const model = await models.load(instructions[0].model);
129
+ let tints = instructions[0].tints.length > 0 ? await resolveTints(instructions[0].tints, { textures }) : await legacyTintsForChain(model.chain, textures);
130
+ if (!tints && model.chain.some((entry) => entry.endsWith("item/template_spawn_egg"))) tints = await spawnEggTints(id, resources, textures).catch(() => null);
131
+ tints ??= [];
132
+ const result = await renderModelFrames(model, textures, {
133
+ size,
134
+ quality,
135
+ lightingProfile,
136
+ itemTransform: instructions[0].transform,
137
+ tints,
138
+ resources
139
+ });
140
+ frames = result.frames;
141
+ delaysMs = result.delaysMs;
142
+ } else {
143
+ let combined = null;
144
+ for (const instruction of instructions) {
145
+ const model = await models.load(instruction.model);
146
+ const tints = instruction.tints.length > 0 ? await resolveTints(instruction.tints, { textures }) : await legacyTintsForChain(model.chain, textures) ?? [];
147
+ const renderedModel = await renderModel(model, textures, {
148
+ size,
149
+ quality,
150
+ lightingProfile,
151
+ itemTransform: instruction.transform,
152
+ tints,
153
+ resources
154
+ });
155
+ combined = combined === null ? renderedModel : blendOver(combined, renderedModel);
156
+ }
157
+ frames = [combined ?? {
158
+ width: size,
159
+ height: size,
160
+ data: new Float64Array(size * size * 4)
161
+ }];
162
+ delaysMs = [50];
163
+ }
164
+ if (frames.length === 0) {
165
+ frames = [{
166
+ width: size,
167
+ height: size,
168
+ data: new Float64Array(size * size * 4)
169
+ }];
170
+ delaysMs = [50];
171
+ }
172
+ return {
173
+ frames,
174
+ delaysMs
175
+ };
176
+ };
177
+ const renderOne = async (index) => {
178
+ const id = ids[index];
179
+ let frames;
180
+ let delaysMs;
181
+ let usedFallback = false;
182
+ try {
183
+ ({frames, delaysMs} = await renderFrames(id));
184
+ } catch (err) {
185
+ const blockLocator = ResourceLocator.parse(id);
186
+ const blockRender = await models.load(new ResourceLocator(blockLocator.namespace, `block/${blockLocator.path}`)).then((model) => renderModel(model, textures, {
187
+ size,
188
+ quality,
189
+ lightingProfile,
190
+ resources
191
+ })).catch(() => null);
192
+ const geo = blockRender ? null : await findGeoForItem(resources, id).catch(() => null);
193
+ const geoRender = geo ? await renderGeo(geo.geo, geo.texture, textures, {
194
+ size,
195
+ quality,
196
+ lightingProfile
197
+ }).catch(() => null) : null;
198
+ let fallbackRender = blockRender ?? (geoRender && quality !== 1 ? boxDownscale(geoRender, quality) : geoRender);
199
+ fallbackRender ??= options.builtin ? await renderEntityFallback(id, models, textures, resources, {
200
+ size,
201
+ quality,
202
+ lightingProfile,
203
+ resources
204
+ }).catch(() => null) : null;
205
+ fallbackRender ??= await renderDyedVariantFallback(id, models, textures, {
206
+ size,
207
+ quality,
208
+ lightingProfile,
209
+ resources
210
+ }).catch(() => null);
211
+ if (fallbackRender) {
212
+ frames = [fallbackRender];
213
+ delaysMs = [50];
214
+ } else {
215
+ const fallback = await spriteFallback(id).catch(() => null);
216
+ if (!fallback) {
217
+ if (await isTemplateModel(id).catch(() => false)) skippedTemplates.push(id);
218
+ else failed.push({
219
+ id,
220
+ error: err.message
221
+ });
222
+ completed++;
223
+ options.onProgress?.(completed, ids.length, id, err.message);
224
+ return;
225
+ }
226
+ frames = [fallback];
227
+ delaysMs = [50];
228
+ usedFallback = true;
229
+ }
230
+ }
231
+ try {
232
+ const encoded = await encodeAnimatedIcon(frames, delaysMs, {
233
+ webp: true,
234
+ gif: options.gif,
235
+ avif: options.avif || format === "avif"
236
+ });
237
+ const [namespace, itemPath] = id.split(":", 2);
238
+ const imageBase = path.join(options.output, "items", namespace, `${itemPath}`);
239
+ await mkdir(path.dirname(imageBase), { recursive: true });
240
+ await writeFile(`${imageBase}.png`, encoded.png);
241
+ writtenFiles++;
242
+ for (const [extension, buffer] of [
243
+ ["webp", encoded.webp],
244
+ ["gif", encoded.gif],
245
+ ["avif", encoded.avif]
246
+ ]) {
247
+ if (!buffer) continue;
248
+ await writeFile(`${imageBase}.${extension}`, buffer);
249
+ writtenFiles++;
250
+ }
251
+ rendered.push(id);
252
+ if (usedFallback) spriteFallbacks.push(id);
253
+ completed++;
254
+ options.onProgress?.(completed, ids.length, id);
255
+ } catch (err) {
256
+ failed.push({
257
+ id,
258
+ error: err.message
259
+ });
260
+ completed++;
261
+ options.onProgress?.(completed, ids.length, id, err.message);
262
+ }
263
+ };
264
+ await Promise.all(Array.from({ length: Math.min(concurrency, ids.length) }, async () => {
265
+ while (nextIndex < ids.length) {
266
+ const index = nextIndex++;
267
+ await renderOne(index);
268
+ }
269
+ }));
270
+ rendered.sort((left, right) => left.localeCompare(right));
271
+ const renderedSet = new Set(rendered);
272
+ for (const id of rendered) {
273
+ const style = classifyItemStyle(id, renderedSet);
274
+ if (style) styles.push(style);
275
+ }
276
+ const stylesheet = generateStylesheet(styles, {
277
+ prefix,
278
+ format,
279
+ fallback
280
+ });
281
+ const finalStylesheet = options.minify === false ? stylesheet : minifyStylesheet(stylesheet, (message) => options.onProgress?.(0, 0, "stylesheet", message));
282
+ await writeFile(path.join(options.output, `${prefix}${namespaces[0]}-${size}.css`), finalStylesheet);
283
+ if (options.itemList !== false) {
284
+ await writeFile(path.join(options.output, `${prefix}${namespaces[0]}.json`), JSON.stringify(rendered));
285
+ await writeFile(path.join(options.output, `${prefix}${namespaces[0]}-failures.json`), JSON.stringify(failed, null, " "));
286
+ }
287
+ return {
288
+ rendered,
289
+ failed,
290
+ spriteFallbacks,
291
+ skippedTemplates,
292
+ writtenFiles
293
+ };
294
+ }
295
+ async function itemExistsIn(resources, id) {
296
+ const locator = ResourceLocator.parse(id);
297
+ if (await resources.hasResource("itemDefinition", locator)) return true;
298
+ return resources.hasResource("model", new ResourceLocator(locator.namespace, `item/${locator.path}`));
299
+ }
300
+ /** Resolve both names used on either side of Minecraft 1.19.3. */
301
+ async function resolveEnchantmentGlint(resources) {
302
+ for (const path of ["misc/enchanted_glint_item", "misc/enchanted_item_glint"]) {
303
+ const texture = await resources.getResource("texture", new ResourceLocator("minecraft", path));
304
+ if (texture) return texture;
305
+ }
306
+ return null;
307
+ }
308
+ function blendOver(base, layer) {
309
+ for (let offset = 0; offset < base.data.length; offset += 4) {
310
+ const alpha = layer.data[offset + 3];
311
+ if (alpha > 0) blendPixel(base.data, offset, layer.data[offset], layer.data[offset + 1], layer.data[offset + 2], alpha);
312
+ }
313
+ return base;
314
+ }
315
+ //#endregion
316
+ export { run as t };
package/dist/run.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { l as evaluateItemModel } from "./definition-BwX6Xxv0.js";
2
+ import { i as run, n as RunOptions, r as RunResult, t as ItemFailure } from "./run-BK7Q8WZ3.js";
3
+ export { ItemFailure, RunOptions, RunResult, evaluateItemModel, run };
package/dist/run.js ADDED
@@ -0,0 +1,3 @@
1
+ import { o as evaluateItemModel } from "./definition-3MBm8ar_.js";
2
+ import { t as run } from "./run-Dr6BfyN9.js";
3
+ export { evaluateItemModel, run };
@@ -0,0 +1,202 @@
1
+ import { n as ResourceLocator } from "./locator-ycZzh_6z.js";
2
+ //#region src/atlas/sources.ts
3
+ /**
4
+ * Atlas texture sources (docs/research/renderchest-spec.md §6): directory,
5
+ * single, unstitch, paletted_permutations. Sources resolve sprite ids to
6
+ * texture content; the resolver checks sources in reverse load order
7
+ * (last-loaded wins, matching upstream's unshift behavior).
8
+ */
9
+ var AtlasSourceError = class extends Error {};
10
+ var DirectoryAtlasSource = class {
11
+ namespace;
12
+ settings;
13
+ hasTexture;
14
+ constructor(namespace, settings, hasTexture) {
15
+ this.namespace = namespace;
16
+ this.settings = settings;
17
+ this.hasTexture = hasTexture;
18
+ }
19
+ target(locator) {
20
+ const rest = locator.path.slice(this.settings.prefix.length);
21
+ return new ResourceLocator(locator.namespace, `${this.settings.source}/${rest}`);
22
+ }
23
+ /**
24
+ * The rewritten file must actually exist — gui.json ships a directory source
25
+ * with an empty prefix that would otherwise claim every sprite id.
26
+ */
27
+ async has(locator) {
28
+ if (locator.namespace !== this.namespace || !locator.path.startsWith(this.settings.prefix)) return false;
29
+ return this.hasTexture(this.target(locator));
30
+ }
31
+ async resolve(locator) {
32
+ if (!await this.has(locator)) return null;
33
+ return {
34
+ kind: "file",
35
+ locator: this.target(locator)
36
+ };
37
+ }
38
+ };
39
+ var SingleAtlasSource = class {
40
+ spriteId;
41
+ resource;
42
+ hasTexture;
43
+ constructor(settings, hasTexture) {
44
+ this.resource = ResourceLocator.parse(settings.resource);
45
+ this.spriteId = ResourceLocator.parse(settings.sprite ?? settings.resource);
46
+ this.hasTexture = hasTexture;
47
+ }
48
+ async has(locator) {
49
+ return locator.equals(this.spriteId) && this.hasTexture(this.resource);
50
+ }
51
+ async resolve(locator) {
52
+ return await this.has(locator) ? {
53
+ kind: "file",
54
+ locator: this.resource
55
+ } : null;
56
+ }
57
+ };
58
+ /**
59
+ * Armor-trim style palette swaps: a key palette maps colors → indices; each
60
+ * permutation palette replaces pixels whose exact RGBA matches a key entry
61
+ * with the pixel at the same row-major index in the permutation image.
62
+ */
63
+ var PalettedPermutationsSource = class PalettedPermutationsSource {
64
+ static encode(r, g, b, a) {
65
+ return r * 16777216 + g * 65536 + b * 256 + a;
66
+ }
67
+ settings;
68
+ sprites = /* @__PURE__ */ new Map();
69
+ keyPalette = null;
70
+ loadTexture;
71
+ constructor(settings, loadTexture) {
72
+ this.loadTexture = loadTexture;
73
+ this.settings = settings;
74
+ const separator = settings.separator ?? "_";
75
+ for (const [name, palette] of Object.entries(settings.permutations)) {
76
+ const paletteLocator = ResourceLocator.parse(palette);
77
+ for (const base of settings.textures) {
78
+ const baseLocator = ResourceLocator.parse(base.replace(/\.png$/, ""));
79
+ const sprite = new ResourceLocator(baseLocator.namespace, `${baseLocator.path}${separator}${name}`);
80
+ this.sprites.set(sprite.toString(), {
81
+ base: baseLocator,
82
+ palette: paletteLocator
83
+ });
84
+ }
85
+ }
86
+ }
87
+ async getKeyPalette() {
88
+ if (this.keyPalette) return this.keyPalette;
89
+ const keyTexture = await this.loadTexture(ResourceLocator.parse(this.settings.palette_key));
90
+ if (!keyTexture) throw new AtlasSourceError(`Missing palette key ${this.settings.palette_key}`);
91
+ const palette = /* @__PURE__ */ new Map();
92
+ for (let index = 0; index < keyTexture.width * keyTexture.height; index++) {
93
+ const offset = index * 4;
94
+ palette.set(PalettedPermutationsSource.encode(keyTexture.data[offset], keyTexture.data[offset + 1], keyTexture.data[offset + 2], keyTexture.data[offset + 3]), index);
95
+ }
96
+ this.keyPalette = palette;
97
+ return palette;
98
+ }
99
+ has(locator) {
100
+ return this.sprites.has(locator.toString());
101
+ }
102
+ async resolve(locator) {
103
+ const sprite = this.sprites.get(locator.toString());
104
+ if (!sprite) return null;
105
+ const base = await this.loadTexture(sprite.base);
106
+ if (!base) return null;
107
+ const permutation = await this.loadTexture(sprite.palette);
108
+ if (!permutation) return null;
109
+ const keyPalette = await this.getKeyPalette();
110
+ const data = new Uint8ClampedArray(base.data);
111
+ for (let offset = 0; offset < data.length; offset += 4) {
112
+ const index = keyPalette.get(PalettedPermutationsSource.encode(data[offset], data[offset + 1], data[offset + 2], data[offset + 3]));
113
+ if (index === void 0) continue;
114
+ const x = index % permutation.width;
115
+ const y = Math.floor(index / permutation.width);
116
+ if (y >= permutation.height) continue;
117
+ const src = (y * permutation.width + x) * 4;
118
+ data[offset] = permutation.data[src];
119
+ data[offset + 1] = permutation.data[src + 1];
120
+ data[offset + 2] = permutation.data[src + 2];
121
+ data[offset + 3] = permutation.data[src + 3];
122
+ }
123
+ return {
124
+ kind: "pixels",
125
+ texture: {
126
+ width: base.width,
127
+ height: base.height,
128
+ data
129
+ }
130
+ };
131
+ }
132
+ };
133
+ var UnstitchAtlasSource = class {
134
+ settings;
135
+ loadTexture;
136
+ constructor(settings, loadTexture) {
137
+ this.settings = settings;
138
+ this.loadTexture = loadTexture;
139
+ }
140
+ has(locator) {
141
+ return this.settings.regions.some((region) => ResourceLocator.parse(region.sprite).equals(locator));
142
+ }
143
+ async resolve(locator) {
144
+ const region = this.settings.regions.find((entry) => ResourceLocator.parse(entry.sprite).equals(locator));
145
+ if (!region) return null;
146
+ const base = await this.loadTexture(ResourceLocator.parse(this.settings.resource));
147
+ if (!base) return null;
148
+ const divisorX = this.settings.divisor_x ?? 1;
149
+ const divisorY = this.settings.divisor_y ?? 1;
150
+ const width = Math.round(region.width / divisorX * base.width);
151
+ const height = Math.round(region.height / divisorY * base.height);
152
+ const left = Math.round(region.x / divisorX * base.width);
153
+ const top = Math.round(region.y / divisorY * base.height);
154
+ const data = new Uint8ClampedArray(width * height * 4);
155
+ for (let y = 0; y < height; y++) {
156
+ const srcStart = ((top + y) * base.width + left) * 4;
157
+ data.set(base.data.subarray(srcStart, srcStart + width * 4), y * width * 4);
158
+ }
159
+ return {
160
+ kind: "pixels",
161
+ texture: {
162
+ width,
163
+ height,
164
+ data
165
+ }
166
+ };
167
+ }
168
+ };
169
+ /**
170
+ * Parses one atlas JSON's sources array. Unknown types are reported and
171
+ * skipped rather than failing the file — mods ship experimental source types,
172
+ * and losing a whole atlas over one is how items vanish.
173
+ */
174
+ function parseAtlasSources(namespace, atlasJson, loadTexture, onUnknown, hasTexture = async (locator) => await loadTexture(locator) !== null) {
175
+ const sources = [];
176
+ for (const entry of atlasJson.sources ?? []) switch (String(entry.type ?? "").replace(/^minecraft:/, "")) {
177
+ case "directory":
178
+ sources.push(new DirectoryAtlasSource(namespace, entry, hasTexture));
179
+ break;
180
+ case "single":
181
+ sources.push(new SingleAtlasSource(entry, hasTexture));
182
+ break;
183
+ case "paletted_permutations":
184
+ sources.push(new PalettedPermutationsSource(entry, loadTexture));
185
+ break;
186
+ case "unstitch":
187
+ sources.push(new UnstitchAtlasSource(entry, loadTexture));
188
+ break;
189
+ case "filter": break;
190
+ default: onUnknown?.(String(entry.type));
191
+ }
192
+ return sources;
193
+ }
194
+ /** Sources checked in reverse insertion order (last added wins), per upstream. */
195
+ function createAtlasResolver(sources) {
196
+ return { async resolve(locator) {
197
+ for (let i = sources.length - 1; i >= 0; i--) if (await sources[i].has(locator)) return sources[i].resolve(locator);
198
+ return null;
199
+ } };
200
+ }
201
+ //#endregion
202
+ export { UnstitchAtlasSource as a, SingleAtlasSource as i, DirectoryAtlasSource as n, createAtlasResolver as o, PalettedPermutationsSource as r, parseAtlasSources as s, AtlasSourceError as t };
@@ -0,0 +1,104 @@
1
+ import { n as ResourceLocator } from "./locator-jDbdUeTd.js";
2
+ import { r as Texture } from "./loader-TFFNV4Jl.js";
3
+ //#region src/atlas/sources.d.ts
4
+ declare class AtlasSourceError extends Error {}
5
+ interface AtlasSource {
6
+ /** Does this source provide the sprite id? */
7
+ has(locator: ResourceLocator): boolean | Promise<boolean>;
8
+ /** Resolve to the actual texture file locator, or synthesized pixels. */
9
+ resolve(locator: ResourceLocator): Promise<ResolvedSprite | null>;
10
+ }
11
+ type ResolvedSprite = {
12
+ kind: 'file';
13
+ locator: ResourceLocator;
14
+ } | {
15
+ kind: 'pixels';
16
+ texture: Texture;
17
+ };
18
+ interface DirectorySettings {
19
+ source: string;
20
+ prefix: string;
21
+ }
22
+ type HasTexture = (locator: ResourceLocator) => Promise<boolean>;
23
+ declare class DirectoryAtlasSource implements AtlasSource {
24
+ private readonly namespace;
25
+ private readonly settings;
26
+ private readonly hasTexture;
27
+ constructor(namespace: string, settings: DirectorySettings, hasTexture: HasTexture);
28
+ private target;
29
+ /**
30
+ * The rewritten file must actually exist — gui.json ships a directory source
31
+ * with an empty prefix that would otherwise claim every sprite id.
32
+ */
33
+ has(locator: ResourceLocator): Promise<boolean>;
34
+ resolve(locator: ResourceLocator): Promise<ResolvedSprite | null>;
35
+ }
36
+ interface SingleSettings {
37
+ resource: string;
38
+ sprite?: string;
39
+ }
40
+ declare class SingleAtlasSource implements AtlasSource {
41
+ private readonly spriteId;
42
+ private readonly resource;
43
+ private readonly hasTexture;
44
+ constructor(settings: SingleSettings, hasTexture: HasTexture);
45
+ has(locator: ResourceLocator): Promise<boolean>;
46
+ resolve(locator: ResourceLocator): Promise<ResolvedSprite | null>;
47
+ }
48
+ interface PalettedPermutationsSettings {
49
+ textures: string[];
50
+ palette_key: string;
51
+ permutations: Record<string, string>;
52
+ separator?: string;
53
+ }
54
+ /**
55
+ * Armor-trim style palette swaps: a key palette maps colors → indices; each
56
+ * permutation palette replaces pixels whose exact RGBA matches a key entry
57
+ * with the pixel at the same row-major index in the permutation image.
58
+ */
59
+ declare class PalettedPermutationsSource implements AtlasSource {
60
+ private static encode;
61
+ private readonly settings;
62
+ private readonly sprites;
63
+ private keyPalette;
64
+ private readonly loadTexture;
65
+ constructor(settings: PalettedPermutationsSettings, loadTexture: (locator: ResourceLocator) => Promise<Texture | null>);
66
+ private getKeyPalette;
67
+ has(locator: ResourceLocator): boolean;
68
+ resolve(locator: ResourceLocator): Promise<ResolvedSprite | null>;
69
+ }
70
+ interface UnstitchRegion {
71
+ sprite: string;
72
+ x: number;
73
+ y: number;
74
+ width: number;
75
+ height: number;
76
+ }
77
+ interface UnstitchSettings {
78
+ resource: string;
79
+ regions: UnstitchRegion[];
80
+ divisor_x?: number;
81
+ divisor_y?: number;
82
+ }
83
+ declare class UnstitchAtlasSource implements AtlasSource {
84
+ private readonly settings;
85
+ private readonly loadTexture;
86
+ constructor(settings: UnstitchSettings, loadTexture: (locator: ResourceLocator) => Promise<Texture | null>);
87
+ has(locator: ResourceLocator): boolean;
88
+ resolve(locator: ResourceLocator): Promise<ResolvedSprite | null>;
89
+ }
90
+ /**
91
+ * Parses one atlas JSON's sources array. Unknown types are reported and
92
+ * skipped rather than failing the file — mods ship experimental source types,
93
+ * and losing a whole atlas over one is how items vanish.
94
+ */
95
+ declare function parseAtlasSources(namespace: string, atlasJson: {
96
+ sources?: Array<Record<string, unknown>>;
97
+ }, loadTexture: (locator: ResourceLocator) => Promise<Texture | null>, onUnknown?: (type: string) => void, hasTexture?: HasTexture): AtlasSource[];
98
+ interface AtlasResolver {
99
+ resolve(locator: ResourceLocator): Promise<ResolvedSprite | null>;
100
+ }
101
+ /** Sources checked in reverse insertion order (last added wins), per upstream. */
102
+ declare function createAtlasResolver(sources: AtlasSource[]): AtlasResolver;
103
+ //#endregion
104
+ export { HasTexture as a, SingleAtlasSource as c, parseAtlasSources as d, DirectoryAtlasSource as i, UnstitchAtlasSource as l, AtlasSource as n, PalettedPermutationsSource as o, AtlasSourceError as r, ResolvedSprite as s, AtlasResolver as t, createAtlasResolver as u };